prime-dev-cli 1.0.23 → 2.0.1
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/dist/server/.next/BUILD_ID +1 -1
- package/dist/server/.next/app-build-manifest.json +2 -2
- package/dist/server/.next/app-path-routes-manifest.json +1 -0
- package/dist/server/.next/build-manifest.json +6 -6
- package/dist/server/.next/cache/.rscinfo +1 -1
- package/dist/server/.next/cache/.tsbuildinfo +1 -1
- package/dist/server/.next/cache/eslint/.cache_1qa5vxt +1 -1
- package/dist/server/.next/fallback-build-manifest.json +6 -6
- package/dist/server/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/server/.next/next-server.js.nft.json +1 -1
- package/dist/server/.next/prerender-manifest.json +9 -9
- package/dist/server/.next/server/app/_not-found.html +1 -1
- package/dist/server/.next/server/app/_not-found.rsc +1 -1
- package/dist/server/.next/server/app/api/admin-git-batch-create-branch/route.js +3 -2
- package/dist/server/.next/server/app/api/admin-git-batch-create-branch/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/admin-git-batch-delete-branch/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/admin-git-batch-merge/route.js +3 -2
- package/dist/server/.next/server/app/api/admin-git-batch-merge/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route/app-build-manifest.json +10 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route/app-paths-manifest.json +3 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route/build-manifest.json +16 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route/next-font-manifest.json +6 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route/react-loadable-manifest.json +1 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route/server-reference-manifest.json +4 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route.js +8 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route.js.map +5 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/admin-git-batch-probe-remote-branch/route_client-reference-manifest.js +2 -0
- package/dist/server/.next/server/app/api/check-workspace/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/gwh-git-flow/route.js +3 -2
- package/dist/server/.next/server/app/api/gwh-git-flow/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/initialize-workspace/route.js +1 -1
- package/dist/server/.next/server/app/api/initialize-workspace/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/open-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/project-config/route.js +1 -1
- package/dist/server/.next/server/app/api/project-config/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/retry-project/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/uat-git-flow/route.js +3 -2
- package/dist/server/.next/server/app/api/uat-git-flow/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/api/uat-git-flow/step/route.js +3 -2
- package/dist/server/.next/server/app/api/uat-git-flow/step/route.js.nft.json +1 -1
- package/dist/server/.next/server/app/configuration/page/app-build-manifest.json +1 -1
- package/dist/server/.next/server/app/configuration/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/configuration.html +1 -1
- package/dist/server/.next/server/app/configuration.rsc +2 -2
- package/dist/server/.next/server/app/index.html +1 -1
- package/dist/server/.next/server/app/index.rsc +1 -1
- package/dist/server/.next/server/app/initialization/page/app-build-manifest.json +1 -1
- package/dist/server/.next/server/app/initialization/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/initialization.html +1 -1
- package/dist/server/.next/server/app/initialization.rsc +2 -2
- package/dist/server/.next/server/app-paths-manifest.json +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__0879b2d6._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__0d56f35b._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__0e8a08fc._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__1e792460._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__2a29597f._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__2a78acef._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__2f8b52da._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__2ffbf0d3._.js +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__2ffbf0d3._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__37bfbf6b._.js.map +1 -1
- package/dist/server/.next/server/chunks/{[root-of-the-server]__66dc5e6b._.js → [root-of-the-server]__3952b86e._.js} +6 -6
- package/dist/server/.next/server/chunks/[root-of-the-server]__3952b86e._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__452b5f9c._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__4ec3205b._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__4fd52ac1._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__54f2f032._.js +3 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__54f2f032._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__5c9f62f9._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__8637b7f1._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__9e44bbc8._.js +20 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__9e44bbc8._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__a6fbefc6._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__c18498ef._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__c43cf810._.js +5 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__c43cf810._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__d3078133._.js +16 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__d3078133._.js.map +1 -0
- package/dist/server/.next/server/chunks/[root-of-the-server]__dda45cac._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__de18efbd._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__e0b7050d._.js.map +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__ec681197._.js.map +1 -1
- package/dist/server/.next/server/chunks/_7a0784b7._.js +3 -0
- package/dist/server/.next/server/chunks/_7a0784b7._.js.map +1 -0
- package/dist/server/.next/server/chunks/_7ecb08a3._.js +3 -0
- package/dist/server/.next/server/chunks/_7ecb08a3._.js.map +1 -0
- package/dist/server/.next/server/chunks/packages_server_ccc16996._.js +3 -0
- package/dist/server/.next/server/chunks/packages_server_ccc16996._.js.map +1 -0
- package/dist/server/.next/server/chunks/packages_server_d1209331._.js +3 -0
- package/dist/server/.next/server/chunks/packages_server_d1209331._.js.map +1 -0
- package/dist/server/.next/server/chunks/packages_server_fbb3d3c1._.js +3 -0
- package/dist/server/.next/server/chunks/packages_server_fbb3d3c1._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_5579d68f._.js +2 -2
- package/dist/server/.next/server/chunks/ssr/_5579d68f._.js.map +1 -1
- package/dist/server/.next/server/chunks/ssr/_89496b8a._.js +1 -1
- package/dist/server/.next/server/chunks/ssr/_89496b8a._.js.map +1 -1
- package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js +1 -1
- package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js.map +1 -1
- package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js +1 -1
- package/dist/server/.next/server/chunks/ssr/packages_server_src_7cef6dbd._.js.map +1 -1
- package/dist/server/.next/server/middleware-build-manifest.js +4 -4
- package/dist/server/.next/server/pages/404.html +1 -1
- package/dist/server/.next/server/pages/500.html +1 -1
- package/dist/server/.next/server/pages/_app/build-manifest.json +2 -2
- package/dist/server/.next/server/pages/_error/build-manifest.json +2 -2
- package/dist/server/.next/server/server-reference-manifest.js +1 -1
- package/dist/server/.next/server/server-reference-manifest.json +1 -1
- package/dist/server/.next/static/chunks/51208386dbc1874e.js.map +1 -0
- package/dist/server/.next/static/chunks/6a5a3e57e911834d.js +3 -0
- package/dist/server/.next/static/chunks/{6803a56f8e33c487.js → 8ade09a4b436cb9d.js} +2 -2
- package/dist/server/.next/static/chunks/8c850efc5ffddd02.js +57 -0
- package/dist/server/.next/static/chunks/{8f80ca1e88635b12.js → aa6cbf0011bc69d5.js} +1 -1
- package/dist/server/.next/static/chunks/{acb330991f8ec5eb.js.map → b18e8b227375accd.js.map} +1 -1
- package/dist/server/.next/static/chunks/{0a55e0a2ff3b09e0.js → cf8cd3228a692db3.js} +1 -1
- package/dist/server/.next/static/chunks/e4ebccc6363cd9f1.js.map +1 -0
- package/dist/server/.next/static/chunks/pages/_app.js +2 -2
- package/dist/server/.next/static/chunks/pages/_error.js +2 -2
- package/dist/server/.next/trace +2 -2
- package/package.json +1 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__66dc5e6b._.js.map +0 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__8a8561ea._.js +0 -16
- package/dist/server/.next/server/chunks/[root-of-the-server]__8a8561ea._.js.map +0 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__9f7a6c58._.js +0 -16
- package/dist/server/.next/server/chunks/[root-of-the-server]__9f7a6c58._.js.map +0 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__a74239fc._.js +0 -3
- package/dist/server/.next/server/chunks/[root-of-the-server]__a74239fc._.js.map +0 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__aaa3fe74._.js +0 -5
- package/dist/server/.next/server/chunks/[root-of-the-server]__aaa3fe74._.js.map +0 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__ac6efee1._.js +0 -16
- package/dist/server/.next/server/chunks/[root-of-the-server]__ac6efee1._.js.map +0 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__b176e8df._.js +0 -20
- package/dist/server/.next/server/chunks/[root-of-the-server]__b176e8df._.js.map +0 -1
- package/dist/server/.next/server/chunks/[root-of-the-server]__f111df8e._.js +0 -16
- package/dist/server/.next/server/chunks/[root-of-the-server]__f111df8e._.js.map +0 -1
- package/dist/server/.next/static/chunks/13acbe5989647429.js +0 -3
- package/dist/server/.next/static/chunks/205cbae70a6c50e1.js.map +0 -1
- package/dist/server/.next/static/chunks/2d2322acba49236a.js +0 -57
- package/dist/server/.next/static/chunks/f5014a46b22ea191.js.map +0 -1
- /package/dist/server/.next/static/{FFQIKXlgcLTQYLDJOFtvJ → hKvS6HjDU-eBShMXMQ7An}/_buildManifest.js +0 -0
- /package/dist/server/.next/static/{FFQIKXlgcLTQYLDJOFtvJ → hKvS6HjDU-eBShMXMQ7An}/_clientMiddlewareManifest.json +0 -0
- /package/dist/server/.next/static/{FFQIKXlgcLTQYLDJOFtvJ → hKvS6HjDU-eBShMXMQ7An}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports={88174:a=>{var{g:b,__dirname:c}=a;a.n(a.i(12369))},39568:a=>{var{g:b,__dirname:c}=a;a.n(a.i(29590))},93725:a=>{var{g:b,__dirname:c}=a;a.n(a.i(30507))},21893:a=>{var{g:b,__dirname:c}=a;a.n(a.i(53772))},29366:a=>{var{g:b,__dirname:c}=a;a.n(a.i(63060))},96260:a=>{var{g:b,__dirname:c}=a;a.n(a.i(82653))},80887:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.r(29549)},36459:a=>{var{g:b,__dirname:c}=a;a.n(a.i(96228))},64640:a=>{var{g:b,__dirname:c}=a;a.n(a.i(97236))},8399:a=>{var{g:b,__dirname:c}=a;a.n(a.i(62876))},31229:a=>{var{g:b,__dirname:c}=a;a.n(a.i(22169))},86591:function(a){var{g:b,__dirname:c,m:d,e:e}=a},46409:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>
|
|
1
|
+
module.exports={88174:a=>{var{g:b,__dirname:c}=a;a.n(a.i(12369))},39568:a=>{var{g:b,__dirname:c}=a;a.n(a.i(29590))},93725:a=>{var{g:b,__dirname:c}=a;a.n(a.i(30507))},21893:a=>{var{g:b,__dirname:c}=a;a.n(a.i(53772))},29366:a=>{var{g:b,__dirname:c}=a;a.n(a.i(63060))},96260:a=>{var{g:b,__dirname:c}=a;a.n(a.i(82653))},80887:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.r(29549)},36459:a=>{var{g:b,__dirname:c}=a;a.n(a.i(96228))},64640:a=>{var{g:b,__dirname:c}=a;a.n(a.i(97236))},8399:a=>{var{g:b,__dirname:c}=a;a.n(a.i(62876))},31229:a=>{var{g:b,__dirname:c}=a;a.n(a.i(22169))},86591:function(a){var{g:b,__dirname:c,m:d,e:e}=a},46409:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({buildBatchProbeRemoteBranchPayload:()=>b,default:()=>c,mapProbeRemoteBranchResultText:()=>e,validateBatchProbeRemoteBranchForm:()=>f});var d=a.i(17203);let b=(0,d.registerClientReference)(function(){throw Error("Attempted to call buildBatchProbeRemoteBranchPayload() from the server but buildBatchProbeRemoteBranchPayload is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>","buildBatchProbeRemoteBranchPayload"),c=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/packages/server/src/components/project-initializer.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>","default"),e=(0,d.registerClientReference)(function(){throw Error("Attempted to call mapProbeRemoteBranchResultText() from the server but mapProbeRemoteBranchResultText is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>","mapProbeRemoteBranchResultText"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call validateBatchProbeRemoteBranchForm() from the server but validateBatchProbeRemoteBranchForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>","validateBatchProbeRemoteBranchForm")}},23352:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({buildBatchProbeRemoteBranchPayload:()=>b,default:()=>c,mapProbeRemoteBranchResultText:()=>e,validateBatchProbeRemoteBranchForm:()=>f});var d=a.i(17203);let b=(0,d.registerClientReference)(function(){throw Error("Attempted to call buildBatchProbeRemoteBranchPayload() from the server but buildBatchProbeRemoteBranchPayload is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx","buildBatchProbeRemoteBranchPayload"),c=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/packages/server/src/components/project-initializer.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx","default"),e=(0,d.registerClientReference)(function(){throw Error("Attempted to call mapProbeRemoteBranchResultText() from the server but mapProbeRemoteBranchResultText is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx","mapProbeRemoteBranchResultText"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call validateBatchProbeRemoteBranchForm() from the server but validateBatchProbeRemoteBranchForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/components/project-initializer.tsx","validateBatchProbeRemoteBranchForm")}},67776:a=>{"use strict";var{g:b,__dirname:c}=a;a.i(46409);var d=a.i(23352);a.n(d)},83962:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({default:()=>f});var d=a.i(93200),e=a.i(67776);function f(){return(0,d.jsx)(e.default,{})}},10858:a=>{var{g:b,__dirname:c}=a;a.n(a.i(83962))},54455:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({__next_app__:()=>m,pages:()=>c,routeModule:()=>n,tree:()=>b});var d=a.i(88174),e=a.i(39568),f=a.i(93725),g=a.i(21893),h=a.i(29366),i=a.i(96260),j=a.i(10858),k=a.i(80887),l=a.i(36459);a.i(64640),a.i(8399);let b=["",{children:["initialization",{children:["__PAGE__",{},{metadata:{},page:[()=>j,"[project]/packages/server/src/app/initialization/page.tsx"]}]},{metadata:{}}]},{metadata:{icon:[async a=>[{url:(0,d.fillMetadataSegment)("//",await a.params,"favicon.ico")+`?${e.default.src.split("/").splice(-1)[0]}`,sizes:`${e.default.width}x${e.default.height}`,type:"image/x-icon"}]]},layout:[()=>f,"[project]/packages/server/src/app/layout.tsx"],"not-found":[()=>g,"[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/components/not-found-error.js"],forbidden:[()=>h,"[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/components/forbidden-error.js"],unauthorized:[()=>i,"[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/components/unauthorized-error.js"]}],c=["[project]/packages/server/src/app/initialization/page.tsx"],m={require:a.r,loadChunk:a.l},n=new k.AppPageRouteModule({definition:{kind:l.RouteKind.APP_PAGE,page:"/initialization/page",pathname:"/initialization",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:b}})}},35909:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({}),a.i(88174),a.i(39568),a.i(93725),a.i(21893),a.i(29366),a.i(96260),a.i(10858),a.i(80887),a.i(36459),a.i(64640),a.i(8399),a.i(54455)},51365:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({ClientPageRoot:()=>e.ClientPageRoot,ClientSegmentRoot:()=>e.ClientSegmentRoot,GlobalError:()=>d.default,HTTPAccessFallbackBoundary:()=>e.HTTPAccessFallbackBoundary,LayoutRouter:()=>e.LayoutRouter,MetadataBoundary:()=>e.MetadataBoundary,OutletBoundary:()=>e.OutletBoundary,Postpone:()=>e.Postpone,RenderFromTemplateContext:()=>e.RenderFromTemplateContext,ViewportBoundary:()=>e.ViewportBoundary,__next_app__:()=>f.__next_app__,actionAsyncStorage:()=>e.actionAsyncStorage,collectSegmentData:()=>e.collectSegmentData,createMetadataComponents:()=>e.createMetadataComponents,createPrerenderParamsForClientSegment:()=>e.createPrerenderParamsForClientSegment,createPrerenderSearchParamsForClientPage:()=>e.createPrerenderSearchParamsForClientPage,createServerParamsForServerSegment:()=>e.createServerParamsForServerSegment,createServerSearchParamsForServerPage:()=>e.createServerSearchParamsForServerPage,createTemporaryReferenceSet:()=>e.createTemporaryReferenceSet,decodeAction:()=>e.decodeAction,decodeFormState:()=>e.decodeFormState,decodeReply:()=>e.decodeReply,pages:()=>f.pages,patchFetch:()=>e.patchFetch,preconnect:()=>e.preconnect,preloadFont:()=>e.preloadFont,preloadStyle:()=>e.preloadStyle,prerender:()=>e.prerender,renderToReadableStream:()=>e.renderToReadableStream,routeModule:()=>f.routeModule,serverHooks:()=>e.serverHooks,taintObjectReference:()=>e.taintObjectReference,tree:()=>f.tree,workAsyncStorage:()=>e.workAsyncStorage,workUnitAsyncStorage:()=>e.workUnitAsyncStorage});var d=a.i(64640),e=a.i(31229),f=a.i(54455)},97284:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({ClientPageRoot:()=>d.ClientPageRoot,ClientSegmentRoot:()=>d.ClientSegmentRoot,GlobalError:()=>d.GlobalError,HTTPAccessFallbackBoundary:()=>d.HTTPAccessFallbackBoundary,LayoutRouter:()=>d.LayoutRouter,MetadataBoundary:()=>d.MetadataBoundary,OutletBoundary:()=>d.OutletBoundary,Postpone:()=>d.Postpone,RenderFromTemplateContext:()=>d.RenderFromTemplateContext,ViewportBoundary:()=>d.ViewportBoundary,__next_app__:()=>d.__next_app__,actionAsyncStorage:()=>d.actionAsyncStorage,collectSegmentData:()=>d.collectSegmentData,createMetadataComponents:()=>d.createMetadataComponents,createPrerenderParamsForClientSegment:()=>d.createPrerenderParamsForClientSegment,createPrerenderSearchParamsForClientPage:()=>d.createPrerenderSearchParamsForClientPage,createServerParamsForServerSegment:()=>d.createServerParamsForServerSegment,createServerSearchParamsForServerPage:()=>d.createServerSearchParamsForServerPage,createTemporaryReferenceSet:()=>d.createTemporaryReferenceSet,decodeAction:()=>d.decodeAction,decodeFormState:()=>d.decodeFormState,decodeReply:()=>d.decodeReply,pages:()=>d.pages,patchFetch:()=>d.patchFetch,preconnect:()=>d.preconnect,preloadFont:()=>d.preloadFont,preloadStyle:()=>d.preloadStyle,prerender:()=>d.prerender,renderToReadableStream:()=>d.renderToReadableStream,routeModule:()=>d.routeModule,serverHooks:()=>d.serverHooks,taintObjectReference:()=>d.taintObjectReference,tree:()=>d.tree,workAsyncStorage:()=>d.workAsyncStorage,workUnitAsyncStorage:()=>d.workUnitAsyncStorage}),a.i(35909);var d=a.i(51365)}};
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_89496b8a._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/server/route-modules/app-page/module.compiled.js","turbopack:///[project]/packages/server/src/components/project-initializer.tsx/proxy.mjs","turbopack:///[project]/packages/server/src/app/initialization/page.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/build/templates/app-page.ts"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","import { registerClientReference } from \"react-server-dom-turbopack/server.edge\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/packages/server/src/components/project-initializer.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>\",\n \"default\",\n);\n","import ProjectInitializer from '@/components/project-initializer';\n\nexport default function InitializationPage() {\n return <ProjectInitializer />;\n} ","import type { LoaderTree } from '../../server/lib/app-dir-module'\nimport { AppPageRouteModule } from '../../server/route-modules/app-page/module.compiled' with { 'turbopack-transition': 'next-ssr' }\nimport { RouteKind } from '../../server/route-kind' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\n\n/**\n * The tree created in next-app-loader that holds component segments and modules\n * and I've updated it.\n */\ndeclare const tree: LoaderTree\ndeclare const pages: any\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\n// INJECT:tree\n// INJECT:pages\n\nexport { tree, pages }\n\nexport { default as GlobalError } from 'VAR_MODULE_GLOBAL_ERROR' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\ndeclare const __next_app_require__: (id: string | number) => unknown\ndeclare const __next_app_load_chunk__: (id: string | number) => Promise<unknown>\n\n// INJECT:__next_app_require__\n// INJECT:__next_app_load_chunk__\n\nexport const __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n}\n\nexport * from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\n\n// Create and export the route module that will be consumed.\nexport const routeModule = new AppPageRouteModule({\n definition: {\n kind: RouteKind.APP_PAGE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: [],\n },\n userland: {\n loaderTree: tree,\n },\n})\n"],"names":["process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","module","exports","require","AppPageRouteModule","tree","pages","loadChunk","__next_app_load_chunk__","routeModule","definition","kind","RouteKind","APP_PAGE","page","pathname","bundlePath","filename","appPaths","userland","loaderTree"],"mappings":"6WA0BQM,EAAOC,OAAO,CAAGC,EAAQ,CAAA,CAAA,IAAA,
|
|
1
|
+
{"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/server/route-modules/app-page/module.compiled.js","turbopack:///[project]/packages/server/src/components/project-initializer.tsx/proxy.mjs","turbopack:///[project]/packages/server/src/app/initialization/page.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/build/templates/app-page.ts"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","import { registerClientReference } from \"react-server-dom-turbopack/server.edge\";\nexport const buildBatchProbeRemoteBranchPayload = registerClientReference(\n function() { throw new Error(\"Attempted to call buildBatchProbeRemoteBranchPayload() from the server but buildBatchProbeRemoteBranchPayload is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>\",\n \"buildBatchProbeRemoteBranchPayload\",\n);\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/packages/server/src/components/project-initializer.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>\",\n \"default\",\n);\nexport const mapProbeRemoteBranchResultText = registerClientReference(\n function() { throw new Error(\"Attempted to call mapProbeRemoteBranchResultText() from the server but mapProbeRemoteBranchResultText is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>\",\n \"mapProbeRemoteBranchResultText\",\n);\nexport const validateBatchProbeRemoteBranchForm = registerClientReference(\n function() { throw new Error(\"Attempted to call validateBatchProbeRemoteBranchForm() from the server but validateBatchProbeRemoteBranchForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/components/project-initializer.tsx <module evaluation>\",\n \"validateBatchProbeRemoteBranchForm\",\n);\n","import ProjectInitializer from '@/components/project-initializer';\n\nexport default function InitializationPage() {\n return <ProjectInitializer />;\n} ","import type { LoaderTree } from '../../server/lib/app-dir-module'\nimport { AppPageRouteModule } from '../../server/route-modules/app-page/module.compiled' with { 'turbopack-transition': 'next-ssr' }\nimport { RouteKind } from '../../server/route-kind' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\n\n/**\n * The tree created in next-app-loader that holds component segments and modules\n * and I've updated it.\n */\ndeclare const tree: LoaderTree\ndeclare const pages: any\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\n// INJECT:tree\n// INJECT:pages\n\nexport { tree, pages }\n\nexport { default as GlobalError } from 'VAR_MODULE_GLOBAL_ERROR' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\ndeclare const __next_app_require__: (id: string | number) => unknown\ndeclare const __next_app_load_chunk__: (id: string | number) => Promise<unknown>\n\n// INJECT:__next_app_require__\n// INJECT:__next_app_load_chunk__\n\nexport const __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n}\n\nexport * from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\n\n// Create and export the route module that will be consumed.\nexport const routeModule = new AppPageRouteModule({\n definition: {\n kind: RouteKind.APP_PAGE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: [],\n },\n userland: {\n loaderTree: tree,\n },\n})\n"],"names":["process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","module","exports","require","AppPageRouteModule","tree","pages","loadChunk","__next_app_load_chunk__","routeModule","definition","kind","RouteKind","APP_PAGE","page","pathname","bundlePath","filename","appPaths","userland","loaderTree"],"mappings":"6WA0BQM,EAAOC,OAAO,CAAGC,EAAQ,CAAA,CAAA,IAAA,wbC1BjC,IAAA,EAAA,EAAA,CAAA,CAAA,OACO,IAAM,EAAqC,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACpE,WAD8C,AACjC,MAAM,AAAI,MAAM,kRAAoR,EACjT,uFACA,wCAEW,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACjC,WAAa,AADF,MACQ,AAAI,MAAM,wTAA0T,EACvV,uFACA,WAES,EAAiC,CAAA,EAAA,EAAA,uBAAA,AAAsB,EAChE,WAD0C,AAC7B,MAAM,AAAI,MAAM,0QAA4Q,EACzS,uFACA,kCAES,EAAqC,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACpE,WAD8C,AACjC,MAAM,AAAI,MAAM,kRAAoR,EACjT,uFACA,mOAnBJ,IAAA,EAAA,EAAA,CAAA,CAAA,OACO,IAAM,EAAqC,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACpE,WAD8C,AACjC,MAAM,AAAI,MAAM,kRAAoR,EACjT,mEACA,wCAEW,GAAA,EAAA,uBAAA,AAAsB,EACjC,WAAa,AADF,MACY,AAAJ,MAAU,oSAAsS,EACnU,mEACA,WAES,EAAiC,CAAA,EAAA,EAAA,uBAAA,AAAsB,EAChE,WAD0C,AAC7B,MAAM,AAAI,MAAM,0QAA4Q,EACzS,mEACA,kCAES,EAAqC,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACpE,WAAa,AADiC,MAC3B,AAAI,MAAM,kRAAoR,EACjT,mEACA,8MCnBJ,EAAA,EAAA,CAAA,CAAA,OAEe,SAAS,IACtB,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAkB,CAAA,CAAA,EAC5B,yBADU,8ICFV,IAAA,EAAmC,EAAA,CAA1BC,AAA0B,CAAA,OAA6D,EAAwB,EAAA,CAAA,CAAA,IAA7F,GAAyG,EAAA,EAAA,CAAtC,AAAsC,AAAjG,CAAiG,KAAZ,EAC7D,EAAwB,EAAA,CAAA,CAAA,OAWnF,EAAA,EAAA,CAAA,CAAA,IAAyE,CAXU,EAanF,EAAc,EAAA,CAAA,CAAA,IAAA,GAGd,EAAsB,EAAA,CAAbC,AAAa,CAAA,GAAT,EAAEC,EAEyD,EAAwB,CAF5E,CAE4E,CAAA,CAF1E,AAE0E,OAOhG,EAAiC,EAAA,CAAA,CAAA,KAP+D,kBAO/D,KAOjC,IAAA,EAAA,CAAc,GAAA,KAA4C,KAAA,CAAA,eAAwB,EAAA,CAAsB,EAAC,OAAjD,AAAiD,CAAA,WAAA,CAEzG,EAAA,CACA,KAAO,IAAA,CAAMG,EAAAA,KAAc,CAAA,GAAIL,CAAAA,EAAmB,cAAA,kBADU,4BACV,IAChDM,KACEC,EACAG,GAAAA,CADMF,AACA,CAFI,AAEJ,EAAA,OACNG,AAFgBF,EAGhB,GAAA,CAAA,EAHwB,EAEd,CACV,EACAG,KAAAA,GAAY,CAAA,CACZC,CADY,GACZA,CAAAA,EAAAA,EAAU,AAAVA,OAF2C,YAEjC,AAAVA,EAAU,KAAA,MAAA,EAAA,EAAVA,IAAU,CAAA,eAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,GAAA,CAAA,KAAA,CAAA,KAAA,MAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CACVC,MAAAA,CAAAA,EAAAA,EAAU,EAAE,KAAA,CAAA,KAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CACd,KAAA,CAAA,YAAA,CADc,AACd,AACAC,EAAAA,GAEA,CADEC,EADQ,IAEV,CAAA,IAAA,CADcf,CACd,+CAAA,CACF,CAAE,WAAA,CAAA,IAAA,EAAA,mJAAA","ignoreList":[0,3]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports={88174:a=>{var{g:b,__dirname:c}=a;a.n(a.i(12369))},39568:a=>{var{g:b,__dirname:c}=a;a.n(a.i(29590))},93725:a=>{var{g:b,__dirname:c}=a;a.n(a.i(30507))},21893:a=>{var{g:b,__dirname:c}=a;a.n(a.i(53772))},29366:a=>{var{g:b,__dirname:c}=a;a.n(a.i(63060))},96260:a=>{var{g:b,__dirname:c}=a;a.n(a.i(82653))},80887:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.r(29549)},36459:a=>{var{g:b,__dirname:c}=a;a.n(a.i(96228))},64640:a=>{var{g:b,__dirname:c}=a;a.n(a.i(97236))},8399:a=>{var{g:b,__dirname:c}=a;a.n(a.i(62876))},31229:a=>{var{g:b,__dirname:c}=a;a.n(a.i(22169))},97541:function(a){var{g:b,__dirname:c,m:d,e:e}=a},99977:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>
|
|
1
|
+
module.exports={88174:a=>{var{g:b,__dirname:c}=a;a.n(a.i(12369))},39568:a=>{var{g:b,__dirname:c}=a;a.n(a.i(29590))},93725:a=>{var{g:b,__dirname:c}=a;a.n(a.i(30507))},21893:a=>{var{g:b,__dirname:c}=a;a.n(a.i(53772))},29366:a=>{var{g:b,__dirname:c}=a;a.n(a.i(63060))},96260:a=>{var{g:b,__dirname:c}=a;a.n(a.i(82653))},80887:function(a){var{g:b,__dirname:c,m:d,e:e}=a;d.exports=a.r(29549)},36459:a=>{var{g:b,__dirname:c}=a;a.n(a.i(96228))},64640:a=>{var{g:b,__dirname:c}=a;a.n(a.i(97236))},8399:a=>{var{g:b,__dirname:c}=a;a.n(a.i(62876))},31229:a=>{var{g:b,__dirname:c}=a;a.n(a.i(22169))},97541:function(a){var{g:b,__dirname:c,m:d,e:e}=a},99977:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({buildApiProxiesPayload:()=>b,default:()=>c,validateApiProxiesForSave:()=>e});var d=a.i(17203);let b=(0,d.registerClientReference)(function(){throw Error("Attempted to call buildApiProxiesPayload() from the server but buildApiProxiesPayload is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/app/configuration/page.tsx <module evaluation>","buildApiProxiesPayload"),c=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/packages/server/src/app/configuration/page.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/app/configuration/page.tsx <module evaluation>","default"),e=(0,d.registerClientReference)(function(){throw Error("Attempted to call validateApiProxiesForSave() from the server but validateApiProxiesForSave is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/app/configuration/page.tsx <module evaluation>","validateApiProxiesForSave")}},15676:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({buildApiProxiesPayload:()=>b,default:()=>c,validateApiProxiesForSave:()=>e});var d=a.i(17203);let b=(0,d.registerClientReference)(function(){throw Error("Attempted to call buildApiProxiesPayload() from the server but buildApiProxiesPayload is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/app/configuration/page.tsx","buildApiProxiesPayload"),c=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/packages/server/src/app/configuration/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/app/configuration/page.tsx","default"),e=(0,d.registerClientReference)(function(){throw Error("Attempted to call validateApiProxiesForSave() from the server but validateApiProxiesForSave is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/packages/server/src/app/configuration/page.tsx","validateApiProxiesForSave")}},44090:a=>{"use strict";var{g:b,__dirname:c}=a;a.i(99977);var d=a.i(15676);a.n(d)},26451:a=>{var{g:b,__dirname:c}=a;a.n(a.i(44090))},89701:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({__next_app__:()=>m,pages:()=>c,routeModule:()=>n,tree:()=>b});var d=a.i(88174),e=a.i(39568),f=a.i(93725),g=a.i(21893),h=a.i(29366),i=a.i(96260),j=a.i(26451),k=a.i(80887),l=a.i(36459);a.i(64640),a.i(8399);let b=["",{children:["configuration",{children:["__PAGE__",{},{metadata:{},page:[()=>j,"[project]/packages/server/src/app/configuration/page.tsx"]}]},{metadata:{}}]},{metadata:{icon:[async a=>[{url:(0,d.fillMetadataSegment)("//",await a.params,"favicon.ico")+`?${e.default.src.split("/").splice(-1)[0]}`,sizes:`${e.default.width}x${e.default.height}`,type:"image/x-icon"}]]},layout:[()=>f,"[project]/packages/server/src/app/layout.tsx"],"not-found":[()=>g,"[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/components/not-found-error.js"],forbidden:[()=>h,"[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/components/forbidden-error.js"],unauthorized:[()=>i,"[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/components/unauthorized-error.js"]}],c=["[project]/packages/server/src/app/configuration/page.tsx"],m={require:a.r,loadChunk:a.l},n=new k.AppPageRouteModule({definition:{kind:l.RouteKind.APP_PAGE,page:"/configuration/page",pathname:"/configuration",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:b}})}},30857:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({}),a.i(88174),a.i(39568),a.i(93725),a.i(21893),a.i(29366),a.i(96260),a.i(26451),a.i(80887),a.i(36459),a.i(64640),a.i(8399),a.i(89701)},12786:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({ClientPageRoot:()=>e.ClientPageRoot,ClientSegmentRoot:()=>e.ClientSegmentRoot,GlobalError:()=>d.default,HTTPAccessFallbackBoundary:()=>e.HTTPAccessFallbackBoundary,LayoutRouter:()=>e.LayoutRouter,MetadataBoundary:()=>e.MetadataBoundary,OutletBoundary:()=>e.OutletBoundary,Postpone:()=>e.Postpone,RenderFromTemplateContext:()=>e.RenderFromTemplateContext,ViewportBoundary:()=>e.ViewportBoundary,__next_app__:()=>f.__next_app__,actionAsyncStorage:()=>e.actionAsyncStorage,collectSegmentData:()=>e.collectSegmentData,createMetadataComponents:()=>e.createMetadataComponents,createPrerenderParamsForClientSegment:()=>e.createPrerenderParamsForClientSegment,createPrerenderSearchParamsForClientPage:()=>e.createPrerenderSearchParamsForClientPage,createServerParamsForServerSegment:()=>e.createServerParamsForServerSegment,createServerSearchParamsForServerPage:()=>e.createServerSearchParamsForServerPage,createTemporaryReferenceSet:()=>e.createTemporaryReferenceSet,decodeAction:()=>e.decodeAction,decodeFormState:()=>e.decodeFormState,decodeReply:()=>e.decodeReply,pages:()=>f.pages,patchFetch:()=>e.patchFetch,preconnect:()=>e.preconnect,preloadFont:()=>e.preloadFont,preloadStyle:()=>e.preloadStyle,prerender:()=>e.prerender,renderToReadableStream:()=>e.renderToReadableStream,routeModule:()=>f.routeModule,serverHooks:()=>e.serverHooks,taintObjectReference:()=>e.taintObjectReference,tree:()=>f.tree,workAsyncStorage:()=>e.workAsyncStorage,workUnitAsyncStorage:()=>e.workUnitAsyncStorage});var d=a.i(64640),e=a.i(31229),f=a.i(89701)},10489:a=>{"use strict";var{g:b,__dirname:c}=a;a.s({ClientPageRoot:()=>d.ClientPageRoot,ClientSegmentRoot:()=>d.ClientSegmentRoot,GlobalError:()=>d.GlobalError,HTTPAccessFallbackBoundary:()=>d.HTTPAccessFallbackBoundary,LayoutRouter:()=>d.LayoutRouter,MetadataBoundary:()=>d.MetadataBoundary,OutletBoundary:()=>d.OutletBoundary,Postpone:()=>d.Postpone,RenderFromTemplateContext:()=>d.RenderFromTemplateContext,ViewportBoundary:()=>d.ViewportBoundary,__next_app__:()=>d.__next_app__,actionAsyncStorage:()=>d.actionAsyncStorage,collectSegmentData:()=>d.collectSegmentData,createMetadataComponents:()=>d.createMetadataComponents,createPrerenderParamsForClientSegment:()=>d.createPrerenderParamsForClientSegment,createPrerenderSearchParamsForClientPage:()=>d.createPrerenderSearchParamsForClientPage,createServerParamsForServerSegment:()=>d.createServerParamsForServerSegment,createServerSearchParamsForServerPage:()=>d.createServerSearchParamsForServerPage,createTemporaryReferenceSet:()=>d.createTemporaryReferenceSet,decodeAction:()=>d.decodeAction,decodeFormState:()=>d.decodeFormState,decodeReply:()=>d.decodeReply,pages:()=>d.pages,patchFetch:()=>d.patchFetch,preconnect:()=>d.preconnect,preloadFont:()=>d.preloadFont,preloadStyle:()=>d.preloadStyle,prerender:()=>d.prerender,renderToReadableStream:()=>d.renderToReadableStream,routeModule:()=>d.routeModule,serverHooks:()=>d.serverHooks,taintObjectReference:()=>d.taintObjectReference,tree:()=>d.tree,workAsyncStorage:()=>d.workAsyncStorage,workUnitAsyncStorage:()=>d.workUnitAsyncStorage}),a.i(30857);var d=a.i(12786)}};
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_b0947ff2._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/server/route-modules/app-page/module.compiled.js","turbopack:///[project]/packages/server/src/app/configuration/page.tsx/proxy.mjs","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/build/templates/app-page.ts"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","import { registerClientReference } from \"react-server-dom-turbopack/server.edge\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/packages/server/src/app/configuration/page.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/app/configuration/page.tsx <module evaluation>\",\n \"default\",\n);\n","import type { LoaderTree } from '../../server/lib/app-dir-module'\nimport { AppPageRouteModule } from '../../server/route-modules/app-page/module.compiled' with { 'turbopack-transition': 'next-ssr' }\nimport { RouteKind } from '../../server/route-kind' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\n\n/**\n * The tree created in next-app-loader that holds component segments and modules\n * and I've updated it.\n */\ndeclare const tree: LoaderTree\ndeclare const pages: any\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\n// INJECT:tree\n// INJECT:pages\n\nexport { tree, pages }\n\nexport { default as GlobalError } from 'VAR_MODULE_GLOBAL_ERROR' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\ndeclare const __next_app_require__: (id: string | number) => unknown\ndeclare const __next_app_load_chunk__: (id: string | number) => Promise<unknown>\n\n// INJECT:__next_app_require__\n// INJECT:__next_app_load_chunk__\n\nexport const __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n}\n\nexport * from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\n\n// Create and export the route module that will be consumed.\nexport const routeModule = new AppPageRouteModule({\n definition: {\n kind: RouteKind.APP_PAGE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: [],\n },\n userland: {\n loaderTree: tree,\n },\n})\n"],"names":["process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","module","exports","require","AppPageRouteModule","tree","pages","loadChunk","__next_app_load_chunk__","routeModule","definition","kind","RouteKind","APP_PAGE","page","pathname","bundlePath","filename","appPaths","userland","loaderTree"],"mappings":"6WA0BQM,EAAOC,OAAO,CAAGC,EAAQ,CAAA,CAAA,IAAA,
|
|
1
|
+
{"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/server/route-modules/app-page/module.compiled.js","turbopack:///[project]/packages/server/src/app/configuration/page.tsx/proxy.mjs","turbopack:///[project]/node_modules/.pnpm/next@15.3.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/src/build/templates/app-page.ts"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","import { registerClientReference } from \"react-server-dom-turbopack/server.edge\";\nexport const buildApiProxiesPayload = registerClientReference(\n function() { throw new Error(\"Attempted to call buildApiProxiesPayload() from the server but buildApiProxiesPayload is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/app/configuration/page.tsx <module evaluation>\",\n \"buildApiProxiesPayload\",\n);\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/packages/server/src/app/configuration/page.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/app/configuration/page.tsx <module evaluation>\",\n \"default\",\n);\nexport const validateApiProxiesForSave = registerClientReference(\n function() { throw new Error(\"Attempted to call validateApiProxiesForSave() from the server but validateApiProxiesForSave is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/packages/server/src/app/configuration/page.tsx <module evaluation>\",\n \"validateApiProxiesForSave\",\n);\n","import type { LoaderTree } from '../../server/lib/app-dir-module'\nimport { AppPageRouteModule } from '../../server/route-modules/app-page/module.compiled' with { 'turbopack-transition': 'next-ssr' }\nimport { RouteKind } from '../../server/route-kind' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\n\n/**\n * The tree created in next-app-loader that holds component segments and modules\n * and I've updated it.\n */\ndeclare const tree: LoaderTree\ndeclare const pages: any\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\n// INJECT:tree\n// INJECT:pages\n\nexport { tree, pages }\n\nexport { default as GlobalError } from 'VAR_MODULE_GLOBAL_ERROR' with { 'turbopack-transition': 'next-server-utility' }\n\n// These are injected by the loader afterwards.\ndeclare const __next_app_require__: (id: string | number) => unknown\ndeclare const __next_app_load_chunk__: (id: string | number) => Promise<unknown>\n\n// INJECT:__next_app_require__\n// INJECT:__next_app_load_chunk__\n\nexport const __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n}\n\nexport * from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\n\n// Create and export the route module that will be consumed.\nexport const routeModule = new AppPageRouteModule({\n definition: {\n kind: RouteKind.APP_PAGE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: [],\n },\n userland: {\n loaderTree: tree,\n },\n})\n"],"names":["process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","module","exports","require","AppPageRouteModule","tree","pages","loadChunk","__next_app_load_chunk__","routeModule","definition","kind","RouteKind","APP_PAGE","page","pathname","bundlePath","filename","appPaths","userland","loaderTree"],"mappings":"6WA0BQM,EAAOC,OAAO,CAAGC,EAAQ,CAAA,CAAA,IAAA,8XC1BjC,IAAA,EAAA,EAAA,CAAA,CAAA,OACO,IAAM,EAAyB,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACxD,WADkC,AACrB,MAAM,AAAI,MAAM,0PAA4P,EACzR,+EACA,4BAEW,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACjC,WADW,AACE,MAAM,AAAI,MAAM,gTAAkT,EAC/U,+EACA,WAES,EAA4B,CAAA,EAAA,EAAA,uBAAsB,AAAtB,EACrC,WAAa,AADwB,MAClB,AAAI,MAAM,gQAAkQ,EAC/R,+EACA,gKAdJ,IAAA,EAAA,EAAA,CAAA,CAAA,OACO,IAAM,EAAyB,CAAA,EAAA,EAAA,uBAAA,AAAsB,EACxD,WADkC,AACrB,MAAM,AAAI,MAAM,0PAA4P,EACzR,2DACA,4BAEW,CAAA,EAAA,EAAA,uBAAsB,AAAtB,EACX,WAAa,AADF,MACQ,AAAI,MAAM,4RAA8R,EAC3T,2DACA,WAES,EAA4B,GAAA,EAAA,uBAAsB,AAAtB,EACrC,WAAa,AADwB,MAClB,AAAI,MAAM,gQAAkQ,EAC/R,2DACA,qRCbJ,IAAA,EAAmC,EAAA,CAA1BC,AAA0B,CAAA,OAA6D,EAAwB,EAAA,CAAA,CAAA,IAA7F,GAAyG,EAAA,EAAA,CAAtC,AAAsC,AAAjG,CAAiG,KAAZ,EAC7D,EAAwB,EAAA,CAAA,CAAA,OAWnF,EAAA,EAAA,CAAA,CAAA,IAAyE,CAXU,EAanF,EAAc,EAAA,CAAA,CAAA,IAAA,GAGd,EAAsB,EAAA,CAAbC,AAAa,CAAA,GAAT,EAAEC,EAEyD,EAAwB,CAF5E,CAE4E,CAAA,CAAA,AAF1E,OAStB,EAAiC,EAAA,CAAA,CAAA,KAP+D,kBAO/D,KAOjC,IAAA,EAAA,CAAc,GAAA,KAA4C,KAAA,CAAA,eAAwB,CAAA,CAAsB,EAAC,OAAA,CAAA,AAAjD,WAAiD,CAEzG,EAAA,CACA,KAAO,IAAA,CAAMG,EAAAA,KAAc,CAAA,GAAIL,CAAAA,EAAmB,cAAA,kBADU,2BACV,IAChDM,KACEC,EACAG,GAAAA,CADMF,AACA,CAFI,AAEJ,EAAA,OACNG,AAFgBF,EAGhB,GAAA,CAAA,EAHwB,EAEd,CACV,EACAG,KAAAA,GAAY,CAAA,CACZC,CADY,GACZA,CAAAA,EAAAA,EAAU,AAAVA,OAF2C,YAE3CA,AAAU,EAAA,KAAA,MAAA,EAAA,EAAVA,IAAU,CAAA,eAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,GAAA,CAAA,KAAA,CAAA,KAAA,MAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CACVC,MAAAA,CAAAA,EAAAA,EAAU,EAAE,KAAA,CAAA,KAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CACd,KAAA,CAAA,YAAA,CADc,AACd,AACAC,EAAAA,GAEA,CADEC,EADQ,IAEV,CAAA,IAAA,CADcf,CACd,+CAAA,CACF,CAAE,WAAA,CAAA,IAAA,EAAA,mJAAA","ignoreList":[0,2]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports={67450:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({PROJECT_CONFIG_PATH:()=>c,ProjectStatus:()=>f,WORKSPACE_CONFIG:()=>b});var d=a.i(13442),e=a.i(30331);let b={WORKSPACE_ROOT:(0,e.join)((0,d.homedir)(),"Documents","prime-workspace"),GIT_TIMEOUT:3e5,MAX_CONCURRENT_CLONES:Math.max(2,Math.min((0,d.cpus)().length,8)),MAX_RETRY_ATTEMPTS:3},c=(0,e.join)((0,d.homedir)(),".prime-projects.json");var f=function(a){return a.PENDING="pending",a.EXISTING="existing",a.CLONING="cloning",a.SUCCESS="success",a.FAILED="failed",a.RETRYING="retrying",a.INCOMPLETE="incomplete",a}({})}},90250:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({default:()=>b});var d=a.i(99559),e=a.i(57560),f=a.i(40490),g=a.i(50923),h=a.i(2031),i=a.i(94688),j=a.i(58413),k=a.i(22529),l=a.i(67450);let b=()=>{let a=(0,f.useRouter)(),[b,c]=(0,e.useState)({isInitializing:!1,isCompleted:!1,isLoading:!0,hasCompleted:!1,globalProgress:0,globalMessage:"正在检查工作空间状态...",projects:{}}),[m,n]=(0,e.useState)({selectedProjects:[],createBranch:"release/",baseBranch:"main",mergeBranch:"feature/"}),[o,p]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],runId:""}),[q,r]=(0,e.useState)({selectedProjects:[],createBranch:"release/",baseBranch:"GWH",mergeBranch:"feature/"}),[s,t]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],runId:""}),[u,v]=(0,e.useState)({selectedProjects:[],targetBranch:"main",sourceBranch:""}),[w,x]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],progress:0,totalProjects:0,completedProjects:0,currentProject:""}),[y,z]=(0,e.useState)({selectedProjects:[],createBranch:"",baseBranch:"main"}),[A,B]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],progress:0,totalProjects:0,completedProjects:0,currentProject:""}),[C,D]=(0,e.useState)({selectedProjects:[],branchName:""}),[E,F]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],progress:0,totalProjects:0,completedProjects:0,currentProject:""}),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)([]),[Q,R]=(0,e.useState)({});(0,e.useEffect)(()=>{S()},[]),(0,e.useEffect)(()=>{(async()=>{try{let a=await fetch("/api/admin-status"),b=await a.json();H(!!b?.isAdmin)}catch(a){console.error("获取管理员状态失败:",a),H(!1)}})()},[]);let S=async()=>{try{c(a=>({...a,isLoading:!0,globalMessage:"正在检查工作空间状态..."}));let a=await fetch("/api/check-workspace"),b=await a.json();if(b.success){let a={};b.projects.forEach(b=>{a[b.name]={name:b.name,status:b.status,progress:100*(b.status===l.ProjectStatus.EXISTING),message:b.message,canRetry:!1,needsCleanup:b.needsCleanup||!1}}),c(c=>({...c,isLoading:!1,projects:a,globalMessage:b.message||"检查完成"}))}else c(a=>({...a,isLoading:!1,globalMessage:b.error||"检查工作空间状态失败"}))}catch(a){c(a=>({...a,isLoading:!1,globalMessage:"无法连接到服务器,请刷新页面重试"})),console.error("检查工作空间状态失败:",a)}},T=a=>{switch(a.type){case"initialization":case"workspace_created":case"projects_loaded":if(c(b=>({...b,globalProgress:a.progress||0,globalMessage:a.message||""})),a.projects&&Array.isArray(a.projects)){let b={};a.projects.forEach(a=>{b[a]={name:a,status:l.ProjectStatus.PENDING,progress:0,message:"等待开始...",canRetry:!1}}),c(a=>({...a,projects:b}))}break;case"project_existing":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,globalMessage:a.message??"",projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.EXISTING,message:"项目已存在",progress:100,canRetry:!1}}}))}break;case"project_start":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,globalMessage:a.message??"",projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.CLONING,message:"开始克隆...",progress:0}}}))}break;case"project_progress":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,projects:{...c.projects,[b]:{...c.projects[b],message:a.message??"",progress:Math.min(a.progress??0,100)}}}))}break;case"project_success":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.SUCCESS,message:"克隆成功",progress:100,canRetry:!1}}}))}break;case"project_failed":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.FAILED,message:"克隆失败",error:a.error,canRetry:!0}}}))}break;case"command_log":if(a.projectName&&a.logType&&void 0!==a.content&&a.timestamp){let b=a.projectName,d=a.logType,e=a.content,f=a.timestamp;c(a=>({...a,projects:{...a.projects,[b]:{...a.projects[b],logs:[...a.projects[b]?.logs||[],{type:d,content:e,timestamp:f}].slice(-1e3)}}}))}break;case"completion":c(b=>({...b,isInitializing:!1,isCompleted:!0,hasCompleted:!0,globalProgress:100,globalMessage:a.message??"初始化完成",completionSummary:a.result?{success:a.result.success,totalProjects:a.result.totalProjects,successCount:a.result.successCount,failedCount:a.result.failedCount,duration:a.result.duration}:void 0}));break;case"error":c(b=>({...b,isInitializing:!1,hasCompleted:!0,globalMessage:a.message??"发生错误",globalProgress:a.progress??b.globalProgress}))}},U=async(a,b="cursor")=>{c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isOpening:!0}}}));try{let d=await fetch("/api/open-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:a,editor:b})}),e=await d.json();if(e.success&&e.editorUrl){let a=document.createElement("a");a.href=e.editorUrl,a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a)}else console.error("打开项目失败:",e.error);c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isOpening:!1}}}))}catch(b){c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isOpening:!1}}})),console.error("打开项目失败:",b)}},V=async a=>{c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isCleaningUp:!0}}}));try{let b=await fetch("/api/cleanup-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:a})}),d=await b.json();d.success?c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],status:l.ProjectStatus.PENDING,message:"已清理,待克隆",isCleaningUp:!1,needsCleanup:!1}}})):c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isCleaningUp:!1,error:d.error}}}))}catch(b){c(c=>({...c,projects:{...c.projects,[a]:{...c.projects[a],isCleaningUp:!1,error:b instanceof Error?b.message:String(b)}}}))}},W=async a=>{c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],status:l.ProjectStatus.RETRYING,message:"正在重试...",progress:0,canRetry:!1}}}));try{let b=await fetch("/api/retry-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:a})}),d=await b.json();c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],status:d.success?l.ProjectStatus.SUCCESS:l.ProjectStatus.FAILED,message:d.message,error:d.error,progress:d.success?100:b.projects[a].progress,canRetry:!d.success}}}))}catch(b){c(c=>({...c,projects:{...c.projects,[a]:{...c.projects[a],status:l.ProjectStatus.FAILED,message:"重试失败",error:b instanceof Error?b.message:String(b),canRetry:!0}}}))}},X=a=>{switch(a){case l.ProjectStatus.EXISTING:case l.ProjectStatus.SUCCESS:return"text-green-600 bg-green-50 border-green-200";case l.ProjectStatus.FAILED:return"text-red-600 bg-red-50 border-red-200";case l.ProjectStatus.INCOMPLETE:return"text-orange-600 bg-orange-50 border-orange-200";case l.ProjectStatus.CLONING:case l.ProjectStatus.RETRYING:return"text-blue-600 bg-blue-50 border-blue-200";case l.ProjectStatus.PENDING:default:return"text-gray-600 bg-gray-50 border-gray-200"}},Y=a=>{switch(a){case l.ProjectStatus.PENDING:return"待克隆";case l.ProjectStatus.EXISTING:return"已存在";case l.ProjectStatus.CLONING:return"克隆中";case l.ProjectStatus.SUCCESS:return"成功";case l.ProjectStatus.FAILED:return"失败";case l.ProjectStatus.INCOMPLETE:return"不完整";case l.ProjectStatus.RETRYING:return"重试中";default:return"未知"}},Z=()=>{let a=Object.values(b.projects);return a.length>0&&a.every(a=>a.status===l.ProjectStatus.EXISTING)},$=b=>{a.push(`/configuration?project=${encodeURIComponent(b)}`)},_=(a,b)=>{n(c=>({...c,[a]:b}))},aa=(a,b)=>{r(c=>({...c,[a]:b}))},ab=(a,b)=>{v(c=>({...c,[a]:b}))},ac=(a,b)=>{z(c=>({...c,[a]:b}))},ad=a=>{D(b=>({...b,branchName:a}))},ae=async a=>{let b=[];if(0===u.selectedProjects.length&&b.push("请先选择至少一个项目。"),u.targetBranch.trim()||b.push("请填写合入分支名称。"),u.sourceBranch.trim()||b.push("请填写被合入分支名称。"),b.length>0)return void x({isRunning:!1,operationLogs:[],feedbacks:b,progress:0,totalProjects:0,completedProjects:0,currentProject:""});let c=u.selectedProjects.length;x({isRunning:!0,operationLogs:[`开始批量分支合并,共 ${c} 个项目...`],feedbacks:[],progress:0,totalProjects:c,completedProjects:0,currentProject:""});let d=[],e=[];for(let b=0;b<u.selectedProjects.length;b++){let f=u.selectedProjects[b];x(a=>({...a,currentProject:f,completedProjects:b,progress:Math.round(b/c*100),operationLogs:[...a.operationLogs,`[进度] ${b+1}/${c} 开始处理项目 ${f}`]}));try{let b=await fetch("/api/admin-git-batch-merge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:[f],targetBranch:u.targetBranch.trim(),sourceBranch:u.sourceBranch.trim(),dryRun:a})}),c=await b.json(),g=Array.isArray(c.operationLogs)?c.operationLogs:[],h=Array.isArray(c.feedbacks)?c.feedbacks:[c.error||"执行失败"];x(a=>({...a,operationLogs:[...a.operationLogs,...g],feedbacks:[...a.feedbacks,...h]})),e.push(...h),Array.isArray(c.projectResults)&&d.push(...c.projectResults)}catch(b){let a=b instanceof Error?b.message:"执行失败";x(b=>({...b,operationLogs:[...b.operationLogs,`[${f}] 请求失败: ${a}`],feedbacks:[...b.feedbacks,`[${f}] ${a}`]})),e.push(`[${f}] ${a}`),d.push({projectName:f,success:!1,reason:a})}}x(a=>({...a,isRunning:!1,progress:100,completedProjects:c,currentProject:"",operationLogs:[...a.operationLogs,"批量分支合并执行完成。"],feedbacks:e.length>0?e:a.feedbacks})),d.length>0?(P(d),N(!0)):(P([]),N(!1))},af=async a=>{let b=[];if(0===y.selectedProjects.length&&b.push("请先选择至少一个项目。"),y.createBranch.trim()||b.push("请填写新分支名称。"),y.baseBranch.trim()||b.push("请填写来源分支名称。"),b.length>0)return void B({isRunning:!1,operationLogs:[],feedbacks:b,progress:0,totalProjects:0,completedProjects:0,currentProject:""});let c=y.selectedProjects.length;B({isRunning:!0,operationLogs:[`开始批量新建分支,共 ${c} 个项目...`],feedbacks:[],progress:0,totalProjects:c,completedProjects:0,currentProject:""});let d=[],e=[];for(let b=0;b<y.selectedProjects.length;b++){let f=y.selectedProjects[b];B(a=>({...a,currentProject:f,completedProjects:b,progress:Math.round(b/c*100),operationLogs:[...a.operationLogs,`[进度] ${b+1}/${c} 开始处理项目 ${f}`]}));try{let b=await fetch("/api/admin-git-batch-create-branch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:[f],createBranch:y.createBranch.trim(),baseBranch:y.baseBranch.trim(),dryRun:a})}),c=await b.json(),g=Array.isArray(c.operationLogs)?c.operationLogs:[],h=Array.isArray(c.feedbacks)?c.feedbacks:[c.error||"执行失败"];B(a=>({...a,operationLogs:[...a.operationLogs,...g],feedbacks:[...a.feedbacks,...h]})),e.push(...h),Array.isArray(c.projectResults)&&d.push(...c.projectResults)}catch(b){let a=b instanceof Error?b.message:"执行失败";B(b=>({...b,operationLogs:[...b.operationLogs,`[${f}] 请求失败: ${a}`],feedbacks:[...b.feedbacks,`[${f}] ${a}`]})),e.push(`[${f}] ${a}`),d.push({projectName:f,success:!1,reason:a})}}B(a=>({...a,isRunning:!1,progress:100,completedProjects:c,currentProject:"",operationLogs:[...a.operationLogs,"批量新建分支执行完成。"],feedbacks:e.length>0?e:a.feedbacks})),d.length>0?(P(d),N(!0)):(P([]),N(!1))},ag=async a=>{let b=[];if(0===C.selectedProjects.length&&b.push("请先选择至少一个项目。"),C.branchName.trim()||b.push("请填写远端分支名称。"),b.length>0)return void F({isRunning:!1,operationLogs:[],feedbacks:b,progress:0,totalProjects:0,completedProjects:0,currentProject:""});let c=C.selectedProjects.length;F({isRunning:!0,operationLogs:[`开始批量删除远端分支,共 ${c} 个项目...`],feedbacks:[],progress:0,totalProjects:c,completedProjects:0,currentProject:""});let d=[],e=[];for(let b=0;b<C.selectedProjects.length;b++){let f=C.selectedProjects[b];F(a=>({...a,currentProject:f,completedProjects:b,progress:Math.round(b/c*100),operationLogs:[...a.operationLogs,`[进度] ${b+1}/${c} 开始处理项目 ${f}`]}));try{let b=await fetch("/api/admin-git-batch-delete-branch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:[f],branchName:C.branchName.trim(),dryRun:a})}),c=await b.json(),g=Array.isArray(c.operationLogs)?c.operationLogs:[],h=Array.isArray(c.feedbacks)?c.feedbacks:[c.error||"执行失败"];F(a=>({...a,operationLogs:[...a.operationLogs,...g],feedbacks:[...a.feedbacks,...h]})),e.push(...h),Array.isArray(c.projectResults)&&d.push(...c.projectResults)}catch(b){let a=b instanceof Error?b.message:"执行失败";F(b=>({...b,operationLogs:[...b.operationLogs,`[${f}] 请求失败: ${a}`],feedbacks:[...b.feedbacks,`[${f}] ${a}`]})),e.push(`[${f}] ${a}`),d.push({projectName:f,success:!1,reason:a})}}F(a=>({...a,isRunning:!1,progress:100,completedProjects:c,currentProject:"",operationLogs:[...a.operationLogs,"批量删除远端分支执行完成。"],feedbacks:e.length>0?e:a.feedbacks})),d.length>0?(P(d),N(!0)):(P([]),N(!1))},ah=async a=>{let b=[];if(0===m.selectedProjects.length&&b.push("请先选择至少一个项目。"),m.createBranch.trim()||b.push("请填写创建分支名。"),m.baseBranch.trim()||b.push("请填写从 origin 哪个分支创建。"),m.mergeBranch.trim()||b.push("请填写被合并分支名称。"),b.length>0)return void p({isRunning:!1,operationLogs:[],feedbacks:b,runId:""});let c=`uat-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;p({isRunning:!0,operationLogs:[],feedbacks:[],runId:c});try{let b=await fetch("/api/uat-git-flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:m.selectedProjects,createBranch:m.createBranch.trim(),baseBranch:"main",mergeBranch:m.mergeBranch.trim(),dryRun:a,runId:c})}),d=await b.json();p({isRunning:!1,operationLogs:Array.isArray(d.operationLogs)?d.operationLogs:[],feedbacks:Array.isArray(d.feedbacks)?d.feedbacks:[d.error||"执行失败"],runId:""}),Array.isArray(d.projectResults)&&(P(d.projectResults),N(!0))}catch(a){p({isRunning:!1,operationLogs:[],feedbacks:[a instanceof Error?a.message:"执行失败"],runId:""}),P([]),N(!1)}},ai=async a=>{let b=[];if(0===q.selectedProjects.length&&b.push("请先选择至少一个项目。"),q.createBranch.trim()||b.push("请填写创建分支名。"),q.baseBranch.trim()||b.push("请填写从 origin 哪个分支创建。"),q.mergeBranch.trim()||b.push("请填写被合并分支名称。"),b.length>0)return void t({isRunning:!1,operationLogs:[],feedbacks:b,runId:""});let c=`gwh-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;t({isRunning:!0,operationLogs:[],feedbacks:[],runId:c});try{let b=await fetch("/api/gwh-git-flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:q.selectedProjects,createBranch:q.createBranch.trim(),baseBranch:"GWH",mergeBranch:q.mergeBranch.trim(),dryRun:a,runId:c})}),d=await b.json();t({isRunning:!1,operationLogs:Array.isArray(d.operationLogs)?d.operationLogs:[],feedbacks:Array.isArray(d.feedbacks)?d.feedbacks:[d.error||"执行失败"],runId:""}),Array.isArray(d.projectResults)&&(P(d.projectResults),N(!0))}catch(a){t({isRunning:!1,operationLogs:[],feedbacks:[a instanceof Error?a.message:"执行失败"],runId:""}),P([]),N(!1)}},aj=async()=>{if(I&&o.runId)try{let a=await fetch("/api/uat-git-flow/step",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"execute",runId:o.runId,stepId:I.stepId})}),b=await a.json(),c=Array.isArray(b.operationLogs)?b.operationLogs:[],d=Array.isArray(b.feedbacks)?b.feedbacks:[b.error||"执行失败"];if(!b.success){p(a=>({...a,isRunning:!1,operationLogs:c,feedbacks:d,runId:""})),J(null),L(!1);return}p(a=>({...a,operationLogs:c,feedbacks:d,isRunning:!b.isComplete,runId:b.isComplete?"":a.runId})),b.nextStep?(J(b.nextStep),L(!0)):(J(null),L(!1),Array.isArray(b.projectResults)&&(P(b.projectResults),N(!0)))}catch(a){p(b=>({...b,isRunning:!1,operationLogs:b.operationLogs,feedbacks:[...b.feedbacks,a instanceof Error?a.message:"执行失败"],runId:""})),J(null),L(!1)}},ak=async()=>{if(o.runId)try{let a=await fetch("/api/uat-git-flow/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runId:o.runId})}),b=await a.json();b&&Array.isArray(b.operationLogs)?p(a=>({...a,isRunning:!1,operationLogs:b.operationLogs,feedbacks:Array.isArray(b.feedbacks)?b.feedbacks:a.feedbacks,runId:""})):p(a=>({...a,isRunning:!1,runId:""})),Array.isArray(b.projectResults)&&(P(b.projectResults),N(!0)),J(null),L(!1)}catch(a){p(b=>({...b,feedbacks:[...b.feedbacks,a instanceof Error?a.message:"中断失败"]}))}},al=async()=>{if(s.runId)try{let a=await fetch("/api/gwh-git-flow/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runId:s.runId})}),b=await a.json();b&&Array.isArray(b.operationLogs)?t(a=>({...a,isRunning:!1,operationLogs:b.operationLogs,feedbacks:Array.isArray(b.feedbacks)?b.feedbacks:a.feedbacks,runId:""})):t(a=>({...a,isRunning:!1,runId:""})),Array.isArray(b.projectResults)&&(P(b.projectResults),N(!0))}catch(a){t(b=>({...b,feedbacks:[...b.feedbacks,a instanceof Error?a.message:"中断失败"]}))}};return(0,d.jsxs)("div",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,d.jsx)("h1",{className:"text-2xl font-bold",children:"项目初始化"}),b.isLoading?(0,d.jsx)(g.Button,{disabled:!0,children:"检查中..."}):(0,d.jsx)(g.Button,{onClick:()=>{c(a=>({...a,isInitializing:!0,isCompleted:!1,hasCompleted:!1,globalProgress:0,globalMessage:"正在连接服务器...",projects:{},completionSummary:void 0}));let a=new EventSource("/api/initialize-workspace");a.onmessage=a=>{try{let b=JSON.parse(a.data);T(b)}catch(a){console.error("解析 SSE 消息失败:",a)}},a.onerror=()=>{c(a=>a.hasCompleted?a:{...a,isInitializing:!1,globalMessage:"连接服务器失败,请重试"}),a.close()},a.addEventListener("error",()=>{a.close()})},disabled:b.isInitializing,children:b.isInitializing?"初始化中...":"创建项目空间"})]}),(b.isInitializing||b.isCompleted)&&!Z()&&(0,d.jsxs)("div",{className:"mb-6 p-4 bg-gray-50 rounded-lg",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium",children:b.globalMessage}),(0,d.jsxs)("span",{className:"text-sm text-gray-600",children:[b.globalProgress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${b.globalProgress}%`}})})]}),b.completionSummary&&!Z()&&(0,d.jsxs)("div",{className:`mb-6 p-4 rounded-lg border ${b.completionSummary.success?"bg-green-50 border-green-200":"bg-yellow-50 border-yellow-200"}`,children:[(0,d.jsx)("h3",{className:"font-semibold mb-2",children:"初始化完成"}),(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-sm",children:[(0,d.jsxs)("div",{children:["总项目数: ",b.completionSummary.totalProjects]}),(0,d.jsxs)("div",{className:"text-green-600",children:["成功: ",b.completionSummary.successCount]}),(0,d.jsxs)("div",{className:"text-red-600",children:["失败: ",b.completionSummary.failedCount]}),(0,d.jsxs)("div",{children:["耗时: ",Math.round(b.completionSummary.duration/1e3),"s"]})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:Object.keys(b.projects).length>0?Object.values(b.projects).map(a=>(0,d.jsxs)("div",{className:`border rounded-lg p-4 ${X(a.status)}`,children:[(0,d.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,d.jsx)("h2",{className:"font-semibold cursor-pointer hover:text-blue-600 transition-colors",onClick:()=>$(a.name),title:"点击进入项目配置",children:a.name}),(0,d.jsx)("span",{className:"text-xs px-2 py-1 rounded-full bg-white",children:Y(a.status)})]}),(0,d.jsx)("p",{className:"text-sm mb-2",children:a.message}),a.status===l.ProjectStatus.CLONING||a.status===l.ProjectStatus.RETRYING?(0,d.jsxs)("div",{className:"mb-2",children:[(0,d.jsx)("div",{className:"w-full bg-white rounded-full h-1",children:(0,d.jsx)("div",{className:"bg-current h-1 rounded-full transition-all duration-300",style:{width:`${a.progress}%`}})}),(0,d.jsxs)("span",{className:"text-xs",children:[a.progress,"%"]})]}):null,a.error&&(0,d.jsx)("p",{className:"text-xs text-red-600 mb-2",children:a.error}),(0,d.jsxs)("div",{className:"space-y-2",children:[a.canRetry&&(0,d.jsx)(g.Button,{size:"sm",variant:"outline",onClick:()=>W(a.name),className:"w-full",children:"重试"}),a.needsCleanup&&a.status===l.ProjectStatus.INCOMPLETE&&(0,d.jsx)(g.Button,{size:"sm",variant:"destructive",onClick:()=>V(a.name),disabled:a.isCleaningUp,className:"w-full",children:a.isCleaningUp?"清理中...":"清理项目"}),(a.status===l.ProjectStatus.EXISTING||a.status===l.ProjectStatus.SUCCESS)&&(0,d.jsx)(h.EditorSplitButton,{onOpen:b=>U(a.name,b),loading:a.isOpening,loadingText:"打开中...",size:"sm",variant:"default",className:"w-full"}),a.logs&&a.logs.length>0&&(0,d.jsx)(g.Button,{size:"sm",variant:"outline",onClick:()=>R(b=>({...b,[a.name]:!b[a.name]})),className:"w-full",children:Q[a.name]?"隐藏日志":`查看日志 (${a.logs.length})`})]}),Q[a.name]&&a.logs&&a.logs.length>0&&(0,d.jsx)("div",{className:"mt-3 border-t pt-3",children:(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:a.logs.map((a,b)=>(0,d.jsxs)("div",{className:`mb-1 ${"stderr"===a.type?"text-red-400":"progress"===a.type?"text-yellow-400":"text-green-400"}`,children:[(0,d.jsx)("span",{className:"text-gray-500 mr-2",children:new Date(a.timestamp).toLocaleTimeString()}),(0,d.jsxs)("span",{className:"text-blue-400 mr-2",children:["[",a.type,"]"]}),(0,d.jsx)("span",{className:"whitespace-pre-wrap",children:a.content})]},b))})})]},a.name)):(0,d.jsx)("div",{className:"col-span-full text-center text-gray-500 py-8",children:b.isLoading?"正在检查项目状态...":b.isInitializing?"正在加载项目...":'点击"创建项目空间"开始初始化'})}),G&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"UAT上线前 Git 操作流"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>ah(!1),disabled:o.isRunning,children:o.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>ah(!0),disabled:o.isRunning,children:"DRY RUN"}),(0,d.jsx)(g.Button,{variant:"destructive",onClick:ak,disabled:!o.isRunning,children:"中断"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"uat-projects",multiple:!0,value:m.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);n(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-create-branch",children:"创建分支名"}),(0,d.jsx)(i.Input,{id:"uat-create-branch",value:m.createBranch,onChange:a=>_("createBranch",a.target.value),placeholder:"例如: release/uat-2026-01"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-base-branch",children:"从 origin 哪个分支创建(固定)"}),(0,d.jsx)(i.Input,{id:"uat-base-branch",value:m.baseBranch,disabled:!0,placeholder:"main"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-merge-branch",children:"被合并分支名称"}),(0,d.jsx)(i.Input,{id:"uat-merge-branch",value:m.mergeBranch,onChange:a=>_("mergeBranch",a.target.value),placeholder:"例如: feature/xxx"})]})]})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===o.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:o.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===o.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:o.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),G&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"武汉协和版本上线前 Git 操作流"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>ai(!1),disabled:s.isRunning,children:s.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>ai(!0),disabled:s.isRunning,children:"DRY RUN"}),(0,d.jsx)(g.Button,{variant:"destructive",onClick:al,disabled:!s.isRunning,children:"中断"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"gwh-projects",multiple:!0,value:q.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);r(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-create-branch",children:"创建分支名"}),(0,d.jsx)(i.Input,{id:"gwh-create-branch",value:q.createBranch,onChange:a=>aa("createBranch",a.target.value),placeholder:"例如: release/whxh-2026-03"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-base-branch",children:"从 origin 哪个分支创建(固定)"}),(0,d.jsx)(i.Input,{id:"gwh-base-branch",value:q.baseBranch,disabled:!0,placeholder:"GWH"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-merge-branch",children:"被合并分支名称"}),(0,d.jsx)(i.Input,{id:"gwh-merge-branch",value:q.mergeBranch,onChange:a=>aa("mergeBranch",a.target.value),placeholder:"例如: feature/xxx"})]})]})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===s.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:s.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===s.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:s.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),G&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"常用 Git 分支操作 · 批量分支合并"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>ae(!1),disabled:w.isRunning,children:w.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>ae(!0),disabled:w.isRunning,children:"DRY RUN"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-merge-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"batch-merge-projects",multiple:!0,value:u.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);v(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-merge-target-branch",children:"合入分支名称"}),(0,d.jsx)(i.Input,{id:"batch-merge-target-branch",value:u.targetBranch,onChange:a=>ab("targetBranch",a.target.value),placeholder:"例如: main"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-merge-source-branch",children:"被合入分支名称"}),(0,d.jsx)(i.Input,{id:"batch-merge-source-branch",value:u.sourceBranch,onChange:a=>ab("sourceBranch",a.target.value),placeholder:"例如: release/candidate"})]})]})]}),(w.isRunning||w.progress>0)&&(0,d.jsxs)("div",{className:"mt-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2 text-sm",children:[(0,d.jsxs)("span",{children:["进度: ",w.completedProjects,"/",w.totalProjects,w.currentProject?` \xb7 当前项目: ${w.currentProject}`:""]}),(0,d.jsxs)("span",{children:[w.progress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${w.progress}%`}})})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===w.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:w.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===w.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:w.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),G&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"常用 Git 分支操作 · 批量新建分支"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>af(!1),disabled:A.isRunning,children:A.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>af(!0),disabled:A.isRunning,children:"DRY RUN"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-create-branch-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"batch-create-branch-projects",multiple:!0,value:y.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);z(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-create-branch-name",children:"新分支名称"}),(0,d.jsx)(i.Input,{id:"batch-create-branch-name",value:y.createBranch,onChange:a=>ac("createBranch",a.target.value),placeholder:"例如: release/2026-03"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-create-branch-base",children:"来源分支名称"}),(0,d.jsx)(i.Input,{id:"batch-create-branch-base",value:y.baseBranch,onChange:a=>ac("baseBranch",a.target.value),placeholder:"例如: main"})]})]})]}),(A.isRunning||A.progress>0)&&(0,d.jsxs)("div",{className:"mt-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2 text-sm",children:[(0,d.jsxs)("span",{children:["进度: ",A.completedProjects,"/",A.totalProjects,A.currentProject?` \xb7 当前项目: ${A.currentProject}`:""]}),(0,d.jsxs)("span",{children:[A.progress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${A.progress}%`}})})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===A.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:A.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===A.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:A.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),G&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"常用 Git 分支操作 · 批量删除远端分支"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>ag(!1),disabled:E.isRunning,children:E.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>ag(!0),disabled:E.isRunning,children:"DRY RUN"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-delete-branch-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"batch-delete-branch-projects",multiple:!0,value:C.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);D(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsx)("div",{className:"grid gap-4",children:(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-delete-branch-name",children:"远端分支名称"}),(0,d.jsx)(i.Input,{id:"batch-delete-branch-name",value:C.branchName,onChange:a=>ad(a.target.value),placeholder:"例如: release/2026-03"})]})})]}),(E.isRunning||E.progress>0)&&(0,d.jsxs)("div",{className:"mt-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2 text-sm",children:[(0,d.jsxs)("span",{children:["进度: ",E.completedProjects,"/",E.totalProjects,E.currentProject?` \xb7 当前项目: ${E.currentProject}`:""]}),(0,d.jsxs)("span",{children:[E.progress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${E.progress}%`}})})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===E.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:E.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===E.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:E.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),(0,d.jsx)(k.Dialog,{open:!1,onOpenChange:a=>{!a&&I&&o.isRunning||L(a)},children:(0,d.jsxs)(k.DialogContent,{showCloseButton:!1,children:[(0,d.jsxs)(k.DialogHeader,{children:[(0,d.jsx)(k.DialogTitle,{children:"确认执行下一步"}),(0,d.jsx)(k.DialogDescription,{children:I?`${I.projectName} \xb7 ${I.description}`:"准备下一步执行"})]}),(0,d.jsx)("div",{className:"rounded-md border bg-gray-50 p-3 text-sm font-mono text-gray-700",children:I?I.command:""}),(0,d.jsxs)(k.DialogFooter,{children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:ak,children:"取消执行"}),(0,d.jsx)(g.Button,{onClick:aj,disabled:!I,children:"确认并执行"})]})]})}),(0,d.jsx)(k.Dialog,{open:G&&M,onOpenChange:N,children:(0,d.jsxs)(k.DialogContent,{children:[(0,d.jsxs)(k.DialogHeader,{children:[(0,d.jsx)(k.DialogTitle,{children:"操作结果"}),(0,d.jsx)(k.DialogDescription,{children:"查看所有项目执行结果"})]}),(0,d.jsx)("div",{className:"space-y-2",children:0===O.length?(0,d.jsx)("p",{className:"text-sm text-gray-500",children:"暂无结果"}):O.map(a=>(0,d.jsxs)("div",{className:`rounded-md border px-3 py-2 text-sm ${a.success?"bg-green-50 text-green-700":"bg-red-50 text-red-700"}`,children:[(0,d.jsxs)("div",{className:"flex items-start justify-between",children:[(0,d.jsx)("span",{className:"font-medium",children:a.projectName}),(0,d.jsx)("span",{className:"ml-4 text-right",children:a.success?"成功":a.reason||"失败"})]}),!a.success&&a.rollbackActions&&a.rollbackActions.length>0&&(0,d.jsxs)("div",{className:"mt-2 text-xs text-gray-600",children:[(0,d.jsx)("div",{className:"font-semibold text-gray-700",children:"已回滚操作:"}),(0,d.jsx)("ul",{className:"mt-1 list-disc pl-4",children:a.rollbackActions.map((b,c)=>(0,d.jsx)("li",{children:b},`${a.projectName}-rollback-${c}`))})]})]},a.projectName))}),(0,d.jsx)(k.DialogFooter,{children:(0,d.jsx)(g.Button,{onClick:()=>N(!1),children:"关闭"})})]})})]})}}}};
|
|
1
|
+
module.exports={67450:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({PROJECT_CONFIG_PATH:()=>c,ProjectStatus:()=>f,WORKSPACE_CONFIG:()=>b});var d=a.i(13442),e=a.i(30331);let b={WORKSPACE_ROOT:(0,e.join)((0,d.homedir)(),"Documents","prime-workspace"),GIT_TIMEOUT:3e5,MAX_CONCURRENT_CLONES:Math.max(2,Math.min((0,d.cpus)().length,8)),MAX_RETRY_ATTEMPTS:3},c=(0,e.join)((0,d.homedir)(),".prime-projects.json");var f=function(a){return a.PENDING="pending",a.EXISTING="existing",a.CLONING="cloning",a.SUCCESS="success",a.FAILED="failed",a.RETRYING="retrying",a.INCOMPLETE="incomplete",a}({})}},90250:a=>{"use strict";var{g:b,__dirname:c}=a;{a.s({buildBatchProbeRemoteBranchPayload:()=>n,default:()=>b,mapProbeRemoteBranchResultText:()=>o,validateBatchProbeRemoteBranchForm:()=>m});var d=a.i(99559),e=a.i(57560),f=a.i(40490),g=a.i(50923),h=a.i(2031),i=a.i(94688),j=a.i(58413),k=a.i(22529),l=a.i(67450);function m(a,b){let c=[];return 0===a.length&&c.push("请先选择至少一个项目。"),b.trim()||c.push("请填写远端分支名称。"),c}function n(a,b,c){return{projects:[a],branchName:b.trim(),dryRun:c}}function o(a){return!0===a.exists?"存在":!1===a.exists?"不存在":a.success?"成功":"执行失败"}let b=()=>{let a=(0,f.useRouter)(),[b,c]=(0,e.useState)({isInitializing:!1,isCompleted:!1,isLoading:!0,hasCompleted:!1,globalProgress:0,globalMessage:"正在检查工作空间状态...",projects:{}}),[p,q]=(0,e.useState)({selectedProjects:[],createBranch:"release/",baseBranch:"main",mergeBranch:"feature/"}),[r,s]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],runId:""}),[t,u]=(0,e.useState)({selectedProjects:[],createBranch:"release/",baseBranch:"GWH",mergeBranch:"feature/"}),[v,w]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],runId:""}),[x,y]=(0,e.useState)({selectedProjects:[],targetBranch:"main",sourceBranch:""}),[z,A]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],progress:0,totalProjects:0,completedProjects:0,currentProject:""}),[B,C]=(0,e.useState)({selectedProjects:[],createBranch:"",baseBranch:"main"}),[D,E]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],progress:0,totalProjects:0,completedProjects:0,currentProject:""}),[F,G]=(0,e.useState)({selectedProjects:[],branchName:""}),[H,I]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],progress:0,totalProjects:0,completedProjects:0,currentProject:""}),[J,K]=(0,e.useState)({selectedProjects:[],branchName:""}),[L,M]=(0,e.useState)({isRunning:!1,operationLogs:[],feedbacks:[],progress:0,totalProjects:0,completedProjects:0,currentProject:""}),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)(null),[R,S]=(0,e.useState)(!1),[T,U]=(0,e.useState)(!1),[V,W]=(0,e.useState)([]),[X,Y]=(0,e.useState)({});(0,e.useEffect)(()=>{Z()},[]),(0,e.useEffect)(()=>{(async()=>{try{let a=await fetch("/api/admin-status"),b=await a.json();O(!!b?.isAdmin)}catch(a){console.error("获取管理员状态失败:",a),O(!1)}})()},[]);let Z=async()=>{try{c(a=>({...a,isLoading:!0,globalMessage:"正在检查工作空间状态..."}));let a=await fetch("/api/check-workspace"),b=await a.json();if(b.success){let a={};b.projects.forEach(b=>{a[b.name]={name:b.name,status:b.status,progress:100*(b.status===l.ProjectStatus.EXISTING),message:b.message,canRetry:!1,needsCleanup:b.needsCleanup||!1}}),c(c=>({...c,isLoading:!1,projects:a,globalMessage:b.message||"检查完成"}))}else c(a=>({...a,isLoading:!1,globalMessage:b.error||"检查工作空间状态失败"}))}catch(a){c(a=>({...a,isLoading:!1,globalMessage:"无法连接到服务器,请刷新页面重试"})),console.error("检查工作空间状态失败:",a)}},$=a=>{switch(a.type){case"initialization":case"workspace_created":case"projects_loaded":if(c(b=>({...b,globalProgress:a.progress||0,globalMessage:a.message||""})),a.projects&&Array.isArray(a.projects)){let b={};a.projects.forEach(a=>{b[a]={name:a,status:l.ProjectStatus.PENDING,progress:0,message:"等待开始...",canRetry:!1}}),c(a=>({...a,projects:b}))}break;case"project_existing":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,globalMessage:a.message??"",projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.EXISTING,message:"项目已存在",progress:100,canRetry:!1}}}))}break;case"project_start":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,globalMessage:a.message??"",projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.CLONING,message:"开始克隆...",progress:0}}}))}break;case"project_progress":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,projects:{...c.projects,[b]:{...c.projects[b],message:a.message??"",progress:Math.min(a.progress??0,100)}}}))}break;case"project_success":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.SUCCESS,message:"克隆成功",progress:100,canRetry:!1}}}))}break;case"project_failed":if(a.projectName){let b=a.projectName;c(c=>({...c,globalProgress:a.progress??c.globalProgress,projects:{...c.projects,[b]:{...c.projects[b],status:l.ProjectStatus.FAILED,message:"克隆失败",error:a.error,canRetry:!0}}}))}break;case"command_log":if(a.projectName&&a.logType&&void 0!==a.content&&a.timestamp){let b=a.projectName,d=a.logType,e=a.content,f=a.timestamp;c(a=>({...a,projects:{...a.projects,[b]:{...a.projects[b],logs:[...a.projects[b]?.logs||[],{type:d,content:e,timestamp:f}].slice(-1e3)}}}))}break;case"completion":c(b=>({...b,isInitializing:!1,isCompleted:!0,hasCompleted:!0,globalProgress:100,globalMessage:a.message??"初始化完成",completionSummary:a.result?{success:a.result.success,totalProjects:a.result.totalProjects,successCount:a.result.successCount,failedCount:a.result.failedCount,duration:a.result.duration}:void 0}));break;case"error":c(b=>({...b,isInitializing:!1,hasCompleted:!0,globalMessage:a.message??"发生错误",globalProgress:a.progress??b.globalProgress}))}},_=async(a,b="cursor")=>{c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isOpening:!0}}}));try{let d=await fetch("/api/open-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:a,editor:b})}),e=await d.json();if(e.success&&e.editorUrl){let a=document.createElement("a");a.href=e.editorUrl,a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a)}else console.error("打开项目失败:",e.error);c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isOpening:!1}}}))}catch(b){c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isOpening:!1}}})),console.error("打开项目失败:",b)}},aa=async a=>{c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isCleaningUp:!0}}}));try{let b=await fetch("/api/cleanup-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:a})}),d=await b.json();d.success?c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],status:l.ProjectStatus.PENDING,message:"已清理,待克隆",isCleaningUp:!1,needsCleanup:!1}}})):c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],isCleaningUp:!1,error:d.error}}}))}catch(b){c(c=>({...c,projects:{...c.projects,[a]:{...c.projects[a],isCleaningUp:!1,error:b instanceof Error?b.message:String(b)}}}))}},ab=async a=>{c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],status:l.ProjectStatus.RETRYING,message:"正在重试...",progress:0,canRetry:!1}}}));try{let b=await fetch("/api/retry-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:a})}),d=await b.json();c(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],status:d.success?l.ProjectStatus.SUCCESS:l.ProjectStatus.FAILED,message:d.message,error:d.error,progress:d.success?100:b.projects[a].progress,canRetry:!d.success}}}))}catch(b){c(c=>({...c,projects:{...c.projects,[a]:{...c.projects[a],status:l.ProjectStatus.FAILED,message:"重试失败",error:b instanceof Error?b.message:String(b),canRetry:!0}}}))}},ac=a=>{switch(a){case l.ProjectStatus.EXISTING:case l.ProjectStatus.SUCCESS:return"text-green-600 bg-green-50 border-green-200";case l.ProjectStatus.FAILED:return"text-red-600 bg-red-50 border-red-200";case l.ProjectStatus.INCOMPLETE:return"text-orange-600 bg-orange-50 border-orange-200";case l.ProjectStatus.CLONING:case l.ProjectStatus.RETRYING:return"text-blue-600 bg-blue-50 border-blue-200";case l.ProjectStatus.PENDING:default:return"text-gray-600 bg-gray-50 border-gray-200"}},ad=a=>{switch(a){case l.ProjectStatus.PENDING:return"待克隆";case l.ProjectStatus.EXISTING:return"已存在";case l.ProjectStatus.CLONING:return"克隆中";case l.ProjectStatus.SUCCESS:return"成功";case l.ProjectStatus.FAILED:return"失败";case l.ProjectStatus.INCOMPLETE:return"不完整";case l.ProjectStatus.RETRYING:return"重试中";default:return"未知"}},ae=()=>{let a=Object.values(b.projects);return a.length>0&&a.every(a=>a.status===l.ProjectStatus.EXISTING)},af=b=>{a.push(`/configuration?project=${encodeURIComponent(b)}`)},ag=(a,b)=>{q(c=>({...c,[a]:b}))},ah=(a,b)=>{u(c=>({...c,[a]:b}))},ai=(a,b)=>{y(c=>({...c,[a]:b}))},aj=(a,b)=>{C(c=>({...c,[a]:b}))},ak=a=>{G(b=>({...b,branchName:a}))},al=a=>{K(b=>({...b,branchName:a}))},am=async a=>{let b=[];if(0===x.selectedProjects.length&&b.push("请先选择至少一个项目。"),x.targetBranch.trim()||b.push("请填写合入分支名称。"),x.sourceBranch.trim()||b.push("请填写被合入分支名称。"),b.length>0)return void A({isRunning:!1,operationLogs:[],feedbacks:b,progress:0,totalProjects:0,completedProjects:0,currentProject:""});let c=x.selectedProjects.length;A({isRunning:!0,operationLogs:[`开始批量分支合并,共 ${c} 个项目...`],feedbacks:[],progress:0,totalProjects:c,completedProjects:0,currentProject:""});let d=[],e=[];for(let b=0;b<x.selectedProjects.length;b++){let f=x.selectedProjects[b];A(a=>({...a,currentProject:f,completedProjects:b,progress:Math.round(b/c*100),operationLogs:[...a.operationLogs,`[进度] ${b+1}/${c} 开始处理项目 ${f}`]}));try{let b=await fetch("/api/admin-git-batch-merge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:[f],targetBranch:x.targetBranch.trim(),sourceBranch:x.sourceBranch.trim(),dryRun:a})}),c=await b.json(),g=Array.isArray(c.operationLogs)?c.operationLogs:[],h=Array.isArray(c.feedbacks)?c.feedbacks:[c.error||"执行失败"];A(a=>({...a,operationLogs:[...a.operationLogs,...g],feedbacks:[...a.feedbacks,...h]})),e.push(...h),Array.isArray(c.projectResults)&&d.push(...c.projectResults)}catch(b){let a=b instanceof Error?b.message:"执行失败";A(b=>({...b,operationLogs:[...b.operationLogs,`[${f}] 请求失败: ${a}`],feedbacks:[...b.feedbacks,`[${f}] ${a}`]})),e.push(`[${f}] ${a}`),d.push({projectName:f,success:!1,reason:a})}}A(a=>({...a,isRunning:!1,progress:100,completedProjects:c,currentProject:"",operationLogs:[...a.operationLogs,"批量分支合并执行完成。"],feedbacks:e.length>0?e:a.feedbacks})),d.length>0?(W(d),U(!0)):(W([]),U(!1))},an=async a=>{let b=[];if(0===B.selectedProjects.length&&b.push("请先选择至少一个项目。"),B.createBranch.trim()||b.push("请填写新分支名称。"),B.baseBranch.trim()||b.push("请填写来源分支名称。"),b.length>0)return void E({isRunning:!1,operationLogs:[],feedbacks:b,progress:0,totalProjects:0,completedProjects:0,currentProject:""});let c=B.selectedProjects.length;E({isRunning:!0,operationLogs:[`开始批量新建分支,共 ${c} 个项目...`],feedbacks:[],progress:0,totalProjects:c,completedProjects:0,currentProject:""});let d=[],e=[];for(let b=0;b<B.selectedProjects.length;b++){let f=B.selectedProjects[b];E(a=>({...a,currentProject:f,completedProjects:b,progress:Math.round(b/c*100),operationLogs:[...a.operationLogs,`[进度] ${b+1}/${c} 开始处理项目 ${f}`]}));try{let b=await fetch("/api/admin-git-batch-create-branch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:[f],createBranch:B.createBranch.trim(),baseBranch:B.baseBranch.trim(),dryRun:a})}),c=await b.json(),g=Array.isArray(c.operationLogs)?c.operationLogs:[],h=Array.isArray(c.feedbacks)?c.feedbacks:[c.error||"执行失败"];E(a=>({...a,operationLogs:[...a.operationLogs,...g],feedbacks:[...a.feedbacks,...h]})),e.push(...h),Array.isArray(c.projectResults)&&d.push(...c.projectResults)}catch(b){let a=b instanceof Error?b.message:"执行失败";E(b=>({...b,operationLogs:[...b.operationLogs,`[${f}] 请求失败: ${a}`],feedbacks:[...b.feedbacks,`[${f}] ${a}`]})),e.push(`[${f}] ${a}`),d.push({projectName:f,success:!1,reason:a})}}E(a=>({...a,isRunning:!1,progress:100,completedProjects:c,currentProject:"",operationLogs:[...a.operationLogs,"批量新建分支执行完成。"],feedbacks:e.length>0?e:a.feedbacks})),d.length>0?(W(d),U(!0)):(W([]),U(!1))},ao=async a=>{let b=[];if(0===F.selectedProjects.length&&b.push("请先选择至少一个项目。"),F.branchName.trim()||b.push("请填写远端分支名称。"),b.length>0)return void I({isRunning:!1,operationLogs:[],feedbacks:b,progress:0,totalProjects:0,completedProjects:0,currentProject:""});let c=F.selectedProjects.length;I({isRunning:!0,operationLogs:[`开始批量删除远端分支,共 ${c} 个项目...`],feedbacks:[],progress:0,totalProjects:c,completedProjects:0,currentProject:""});let d=[],e=[];for(let b=0;b<F.selectedProjects.length;b++){let f=F.selectedProjects[b];I(a=>({...a,currentProject:f,completedProjects:b,progress:Math.round(b/c*100),operationLogs:[...a.operationLogs,`[进度] ${b+1}/${c} 开始处理项目 ${f}`]}));try{let b=await fetch("/api/admin-git-batch-delete-branch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:[f],branchName:F.branchName.trim(),dryRun:a})}),c=await b.json(),g=Array.isArray(c.operationLogs)?c.operationLogs:[],h=Array.isArray(c.feedbacks)?c.feedbacks:[c.error||"执行失败"];I(a=>({...a,operationLogs:[...a.operationLogs,...g],feedbacks:[...a.feedbacks,...h]})),e.push(...h),Array.isArray(c.projectResults)&&d.push(...c.projectResults)}catch(b){let a=b instanceof Error?b.message:"执行失败";I(b=>({...b,operationLogs:[...b.operationLogs,`[${f}] 请求失败: ${a}`],feedbacks:[...b.feedbacks,`[${f}] ${a}`]})),e.push(`[${f}] ${a}`),d.push({projectName:f,success:!1,reason:a})}}I(a=>({...a,isRunning:!1,progress:100,completedProjects:c,currentProject:"",operationLogs:[...a.operationLogs,"批量删除远端分支执行完成。"],feedbacks:e.length>0?e:a.feedbacks})),d.length>0?(W(d),U(!0)):(W([]),U(!1))},ap=async a=>{let b=m(J.selectedProjects,J.branchName);if(b.length>0)return void M({isRunning:!1,operationLogs:[],feedbacks:b,progress:0,totalProjects:0,completedProjects:0,currentProject:""});let c=J.selectedProjects.length;M({isRunning:!0,operationLogs:[`开始批量探测远端分支,共 ${c} 个项目...`],feedbacks:[],progress:0,totalProjects:c,completedProjects:0,currentProject:""});let d=[],e=[];for(let b=0;b<J.selectedProjects.length;b++){let f=J.selectedProjects[b];M(a=>({...a,currentProject:f,completedProjects:b,progress:Math.round(b/c*100),operationLogs:[...a.operationLogs,`[进度] ${b+1}/${c} 开始处理项目 ${f}`]}));try{let b=await fetch("/api/admin-git-batch-probe-remote-branch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(f,J.branchName,a))}),c=await b.json(),g=Array.isArray(c.operationLogs)?c.operationLogs:[],h=Array.isArray(c.feedbacks)?c.feedbacks:[c.error||"执行失败"];M(a=>({...a,operationLogs:[...a.operationLogs,...g],feedbacks:[...a.feedbacks,...h]})),e.push(...h),Array.isArray(c.projectResults)&&d.push(...c.projectResults)}catch(b){let a=b instanceof Error?b.message:"执行失败";M(b=>({...b,operationLogs:[...b.operationLogs,`[${f}] 请求失败: ${a}`],feedbacks:[...b.feedbacks,`[${f}] ${a}`]})),e.push(`[${f}] ${a}`),d.push({projectName:f,success:!1,reason:a})}}M(a=>({...a,isRunning:!1,progress:100,completedProjects:c,currentProject:"",operationLogs:[...a.operationLogs,"批量探测远端分支执行完成。"],feedbacks:e.length>0?e:a.feedbacks})),d.length>0?(W(d),U(!0)):(W([]),U(!1))},aq=async a=>{let b=[];if(0===p.selectedProjects.length&&b.push("请先选择至少一个项目。"),p.createBranch.trim()||b.push("请填写创建分支名。"),p.baseBranch.trim()||b.push("请填写从 origin 哪个分支创建。"),p.mergeBranch.trim()||b.push("请填写被合并分支名称。"),b.length>0)return void s({isRunning:!1,operationLogs:[],feedbacks:b,runId:""});let c=`uat-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;s({isRunning:!0,operationLogs:[],feedbacks:[],runId:c});try{let b=await fetch("/api/uat-git-flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:p.selectedProjects,createBranch:p.createBranch.trim(),baseBranch:"main",mergeBranch:p.mergeBranch.trim(),dryRun:a,runId:c})}),d=await b.json();s({isRunning:!1,operationLogs:Array.isArray(d.operationLogs)?d.operationLogs:[],feedbacks:Array.isArray(d.feedbacks)?d.feedbacks:[d.error||"执行失败"],runId:""}),Array.isArray(d.projectResults)&&(W(d.projectResults),U(!0))}catch(a){s({isRunning:!1,operationLogs:[],feedbacks:[a instanceof Error?a.message:"执行失败"],runId:""}),W([]),U(!1)}},ar=async a=>{let b=[];if(0===t.selectedProjects.length&&b.push("请先选择至少一个项目。"),t.createBranch.trim()||b.push("请填写创建分支名。"),t.baseBranch.trim()||b.push("请填写从 origin 哪个分支创建。"),t.mergeBranch.trim()||b.push("请填写被合并分支名称。"),b.length>0)return void w({isRunning:!1,operationLogs:[],feedbacks:b,runId:""});let c=`gwh-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;w({isRunning:!0,operationLogs:[],feedbacks:[],runId:c});try{let b=await fetch("/api/gwh-git-flow",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:t.selectedProjects,createBranch:t.createBranch.trim(),baseBranch:"GWH",mergeBranch:t.mergeBranch.trim(),dryRun:a,runId:c})}),d=await b.json();w({isRunning:!1,operationLogs:Array.isArray(d.operationLogs)?d.operationLogs:[],feedbacks:Array.isArray(d.feedbacks)?d.feedbacks:[d.error||"执行失败"],runId:""}),Array.isArray(d.projectResults)&&(W(d.projectResults),U(!0))}catch(a){w({isRunning:!1,operationLogs:[],feedbacks:[a instanceof Error?a.message:"执行失败"],runId:""}),W([]),U(!1)}},as=async()=>{if(P&&r.runId)try{let a=await fetch("/api/uat-git-flow/step",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"execute",runId:r.runId,stepId:P.stepId})}),b=await a.json(),c=Array.isArray(b.operationLogs)?b.operationLogs:[],d=Array.isArray(b.feedbacks)?b.feedbacks:[b.error||"执行失败"];if(!b.success){s(a=>({...a,isRunning:!1,operationLogs:c,feedbacks:d,runId:""})),Q(null),S(!1);return}s(a=>({...a,operationLogs:c,feedbacks:d,isRunning:!b.isComplete,runId:b.isComplete?"":a.runId})),b.nextStep?(Q(b.nextStep),S(!0)):(Q(null),S(!1),Array.isArray(b.projectResults)&&(W(b.projectResults),U(!0)))}catch(a){s(b=>({...b,isRunning:!1,operationLogs:b.operationLogs,feedbacks:[...b.feedbacks,a instanceof Error?a.message:"执行失败"],runId:""})),Q(null),S(!1)}},at=async()=>{if(r.runId)try{let a=await fetch("/api/uat-git-flow/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runId:r.runId})}),b=await a.json();b&&Array.isArray(b.operationLogs)?s(a=>({...a,isRunning:!1,operationLogs:b.operationLogs,feedbacks:Array.isArray(b.feedbacks)?b.feedbacks:a.feedbacks,runId:""})):s(a=>({...a,isRunning:!1,runId:""})),Array.isArray(b.projectResults)&&(W(b.projectResults),U(!0)),Q(null),S(!1)}catch(a){s(b=>({...b,feedbacks:[...b.feedbacks,a instanceof Error?a.message:"中断失败"]}))}},au=async()=>{if(v.runId)try{let a=await fetch("/api/gwh-git-flow/abort",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runId:v.runId})}),b=await a.json();b&&Array.isArray(b.operationLogs)?w(a=>({...a,isRunning:!1,operationLogs:b.operationLogs,feedbacks:Array.isArray(b.feedbacks)?b.feedbacks:a.feedbacks,runId:""})):w(a=>({...a,isRunning:!1,runId:""})),Array.isArray(b.projectResults)&&(W(b.projectResults),U(!0))}catch(a){w(b=>({...b,feedbacks:[...b.feedbacks,a instanceof Error?a.message:"中断失败"]}))}};return(0,d.jsxs)("div",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,d.jsx)("h1",{className:"text-2xl font-bold",children:"项目初始化"}),b.isLoading?(0,d.jsx)(g.Button,{disabled:!0,children:"检查中..."}):(0,d.jsx)(g.Button,{onClick:()=>{c(a=>({...a,isInitializing:!0,isCompleted:!1,hasCompleted:!1,globalProgress:0,globalMessage:"正在连接服务器...",projects:{},completionSummary:void 0}));let a=new EventSource("/api/initialize-workspace");a.onmessage=a=>{try{let b=JSON.parse(a.data);$(b)}catch(a){console.error("解析 SSE 消息失败:",a)}},a.onerror=()=>{c(a=>a.hasCompleted?a:{...a,isInitializing:!1,globalMessage:"连接服务器失败,请重试"}),a.close()},a.addEventListener("error",()=>{a.close()})},disabled:b.isInitializing,children:b.isInitializing?"初始化中...":"创建项目空间"})]}),(b.isInitializing||b.isCompleted)&&!ae()&&(0,d.jsxs)("div",{className:"mb-6 p-4 bg-gray-50 rounded-lg",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,d.jsx)("span",{className:"text-sm font-medium",children:b.globalMessage}),(0,d.jsxs)("span",{className:"text-sm text-gray-600",children:[b.globalProgress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${b.globalProgress}%`}})})]}),b.completionSummary&&!ae()&&(0,d.jsxs)("div",{className:`mb-6 p-4 rounded-lg border ${b.completionSummary.success?"bg-green-50 border-green-200":"bg-yellow-50 border-yellow-200"}`,children:[(0,d.jsx)("h3",{className:"font-semibold mb-2",children:"初始化完成"}),(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-sm",children:[(0,d.jsxs)("div",{children:["总项目数: ",b.completionSummary.totalProjects]}),(0,d.jsxs)("div",{className:"text-green-600",children:["成功: ",b.completionSummary.successCount]}),(0,d.jsxs)("div",{className:"text-red-600",children:["失败: ",b.completionSummary.failedCount]}),(0,d.jsxs)("div",{children:["耗时: ",Math.round(b.completionSummary.duration/1e3),"s"]})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:Object.keys(b.projects).length>0?Object.values(b.projects).map(a=>(0,d.jsxs)("div",{className:`border rounded-lg p-4 ${ac(a.status)}`,children:[(0,d.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,d.jsx)("h2",{className:"font-semibold cursor-pointer hover:text-blue-600 transition-colors",onClick:()=>af(a.name),title:"点击进入项目配置",children:a.name}),(0,d.jsx)("span",{className:"text-xs px-2 py-1 rounded-full bg-white",children:ad(a.status)})]}),(0,d.jsx)("p",{className:"text-sm mb-2",children:a.message}),a.status===l.ProjectStatus.CLONING||a.status===l.ProjectStatus.RETRYING?(0,d.jsxs)("div",{className:"mb-2",children:[(0,d.jsx)("div",{className:"w-full bg-white rounded-full h-1",children:(0,d.jsx)("div",{className:"bg-current h-1 rounded-full transition-all duration-300",style:{width:`${a.progress}%`}})}),(0,d.jsxs)("span",{className:"text-xs",children:[a.progress,"%"]})]}):null,a.error&&(0,d.jsx)("p",{className:"text-xs text-red-600 mb-2",children:a.error}),(0,d.jsxs)("div",{className:"space-y-2",children:[a.canRetry&&(0,d.jsx)(g.Button,{size:"sm",variant:"outline",onClick:()=>ab(a.name),className:"w-full",children:"重试"}),a.needsCleanup&&a.status===l.ProjectStatus.INCOMPLETE&&(0,d.jsx)(g.Button,{size:"sm",variant:"destructive",onClick:()=>aa(a.name),disabled:a.isCleaningUp,className:"w-full",children:a.isCleaningUp?"清理中...":"清理项目"}),(a.status===l.ProjectStatus.EXISTING||a.status===l.ProjectStatus.SUCCESS)&&(0,d.jsx)(h.EditorSplitButton,{onOpen:b=>_(a.name,b),loading:a.isOpening,loadingText:"打开中...",size:"sm",variant:"default",className:"w-full"}),a.logs&&a.logs.length>0&&(0,d.jsx)(g.Button,{size:"sm",variant:"outline",onClick:()=>Y(b=>({...b,[a.name]:!b[a.name]})),className:"w-full",children:X[a.name]?"隐藏日志":`查看日志 (${a.logs.length})`})]}),X[a.name]&&a.logs&&a.logs.length>0&&(0,d.jsx)("div",{className:"mt-3 border-t pt-3",children:(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:a.logs.map((a,b)=>(0,d.jsxs)("div",{className:`mb-1 ${"stderr"===a.type?"text-red-400":"progress"===a.type?"text-yellow-400":"text-green-400"}`,children:[(0,d.jsx)("span",{className:"text-gray-500 mr-2",children:new Date(a.timestamp).toLocaleTimeString()}),(0,d.jsxs)("span",{className:"text-blue-400 mr-2",children:["[",a.type,"]"]}),(0,d.jsx)("span",{className:"whitespace-pre-wrap",children:a.content})]},b))})})]},a.name)):(0,d.jsx)("div",{className:"col-span-full text-center text-gray-500 py-8",children:b.isLoading?"正在检查项目状态...":b.isInitializing?"正在加载项目...":'点击"创建项目空间"开始初始化'})}),N&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"UAT上线前 Git 操作流"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>aq(!1),disabled:r.isRunning,children:r.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>aq(!0),disabled:r.isRunning,children:"DRY RUN"}),(0,d.jsx)(g.Button,{variant:"destructive",onClick:at,disabled:!r.isRunning,children:"中断"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"uat-projects",multiple:!0,value:p.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);q(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-create-branch",children:"创建分支名"}),(0,d.jsx)(i.Input,{id:"uat-create-branch",value:p.createBranch,onChange:a=>ag("createBranch",a.target.value),placeholder:"例如: release/uat-2026-01"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-base-branch",children:"从 origin 哪个分支创建(固定)"}),(0,d.jsx)(i.Input,{id:"uat-base-branch",value:p.baseBranch,disabled:!0,placeholder:"main"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"uat-merge-branch",children:"被合并分支名称"}),(0,d.jsx)(i.Input,{id:"uat-merge-branch",value:p.mergeBranch,onChange:a=>ag("mergeBranch",a.target.value),placeholder:"例如: feature/xxx"})]})]})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===r.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:r.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===r.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:r.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),N&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"武汉协和版本上线前 Git 操作流"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>ar(!1),disabled:v.isRunning,children:v.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>ar(!0),disabled:v.isRunning,children:"DRY RUN"}),(0,d.jsx)(g.Button,{variant:"destructive",onClick:au,disabled:!v.isRunning,children:"中断"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"gwh-projects",multiple:!0,value:t.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);u(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-create-branch",children:"创建分支名"}),(0,d.jsx)(i.Input,{id:"gwh-create-branch",value:t.createBranch,onChange:a=>ah("createBranch",a.target.value),placeholder:"例如: release/whxh-2026-03"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-base-branch",children:"从 origin 哪个分支创建(固定)"}),(0,d.jsx)(i.Input,{id:"gwh-base-branch",value:t.baseBranch,disabled:!0,placeholder:"GWH"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"gwh-merge-branch",children:"被合并分支名称"}),(0,d.jsx)(i.Input,{id:"gwh-merge-branch",value:t.mergeBranch,onChange:a=>ah("mergeBranch",a.target.value),placeholder:"例如: feature/xxx"})]})]})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===v.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:v.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===v.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:v.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),N&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"常用 Git 分支操作 · 批量分支合并"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>am(!1),disabled:z.isRunning,children:z.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>am(!0),disabled:z.isRunning,children:"DRY RUN"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-merge-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"batch-merge-projects",multiple:!0,value:x.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);y(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-merge-target-branch",children:"合入分支名称"}),(0,d.jsx)(i.Input,{id:"batch-merge-target-branch",value:x.targetBranch,onChange:a=>ai("targetBranch",a.target.value),placeholder:"例如: main"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-merge-source-branch",children:"被合入分支名称"}),(0,d.jsx)(i.Input,{id:"batch-merge-source-branch",value:x.sourceBranch,onChange:a=>ai("sourceBranch",a.target.value),placeholder:"例如: release/candidate"})]})]})]}),(z.isRunning||z.progress>0)&&(0,d.jsxs)("div",{className:"mt-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2 text-sm",children:[(0,d.jsxs)("span",{children:["进度: ",z.completedProjects,"/",z.totalProjects,z.currentProject?` \xb7 当前项目: ${z.currentProject}`:""]}),(0,d.jsxs)("span",{children:[z.progress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${z.progress}%`}})})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===z.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:z.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===z.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:z.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),N&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"常用 Git 分支操作 · 批量新建分支"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>an(!1),disabled:D.isRunning,children:D.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>an(!0),disabled:D.isRunning,children:"DRY RUN"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-create-branch-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"batch-create-branch-projects",multiple:!0,value:B.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);C(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsxs)("div",{className:"grid gap-4",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-create-branch-name",children:"新分支名称"}),(0,d.jsx)(i.Input,{id:"batch-create-branch-name",value:B.createBranch,onChange:a=>aj("createBranch",a.target.value),placeholder:"例如: release/2026-03"})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-create-branch-base",children:"来源分支名称"}),(0,d.jsx)(i.Input,{id:"batch-create-branch-base",value:B.baseBranch,onChange:a=>aj("baseBranch",a.target.value),placeholder:"例如: main"})]})]})]}),(D.isRunning||D.progress>0)&&(0,d.jsxs)("div",{className:"mt-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2 text-sm",children:[(0,d.jsxs)("span",{children:["进度: ",D.completedProjects,"/",D.totalProjects,D.currentProject?` \xb7 当前项目: ${D.currentProject}`:""]}),(0,d.jsxs)("span",{children:[D.progress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${D.progress}%`}})})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===D.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:D.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===D.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:D.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),N&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"常用 Git 分支操作 · 批量删除远端分支"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>ao(!1),disabled:H.isRunning,children:H.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>ao(!0),disabled:H.isRunning,children:"DRY RUN"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-delete-branch-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"batch-delete-branch-projects",multiple:!0,value:F.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);G(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsx)("div",{className:"grid gap-4",children:(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-delete-branch-name",children:"远端分支名称"}),(0,d.jsx)(i.Input,{id:"batch-delete-branch-name",value:F.branchName,onChange:a=>ak(a.target.value),placeholder:"例如: release/2026-03"})]})})]}),(H.isRunning||H.progress>0)&&(0,d.jsxs)("div",{className:"mt-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2 text-sm",children:[(0,d.jsxs)("span",{children:["进度: ",H.completedProjects,"/",H.totalProjects,H.currentProject?` \xb7 当前项目: ${H.currentProject}`:""]}),(0,d.jsxs)("span",{children:[H.progress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${H.progress}%`}})})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===H.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:H.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===H.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:H.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),N&&(0,d.jsxs)("div",{className:"mt-8 rounded-lg border bg-white p-4 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"常用 Git 分支操作 · 批量探测远端分支"}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.Button,{onClick:()=>ap(!1),disabled:L.isRunning,children:L.isRunning?"执行中...":"执行"}),(0,d.jsx)(g.Button,{variant:"outline",onClick:()=>ap(!0),disabled:L.isRunning,children:"DRY RUN"})]})]}),(0,d.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-probe-branch-projects",children:"选择项目"}),(0,d.jsx)("select",{id:"batch-probe-branch-projects",multiple:!0,value:J.selectedProjects,onChange:a=>{let b=Array.from(a.target.selectedOptions).map(a=>a.value);K(a=>({...a,selectedProjects:b}))},className:"w-full min-h-[140px] rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",children:0===Object.keys(b.projects).length?(0,d.jsx)("option",{value:"",disabled:!0,children:"暂无可用项目"}):Object.keys(b.projects).map(a=>(0,d.jsx)("option",{value:a,children:a},a))}),(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"按住 Command / Ctrl 可多选"})]}),(0,d.jsx)("div",{className:"grid gap-4",children:(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(j.Label,{htmlFor:"batch-probe-branch-name",children:"远端分支名称"}),(0,d.jsx)(i.Input,{id:"batch-probe-branch-name",value:J.branchName,onChange:a=>al(a.target.value),placeholder:"例如: release/2026-03"})]})})]}),(L.isRunning||L.progress>0)&&(0,d.jsxs)("div",{className:"mt-4 rounded-lg border p-3",children:[(0,d.jsxs)("div",{className:"flex justify-between items-center mb-2 text-sm",children:[(0,d.jsxs)("span",{children:["进度: ",L.completedProjects,"/",L.totalProjects,L.currentProject?` \xb7 当前项目: ${L.currentProject}`:""]}),(0,d.jsxs)("span",{children:[L.progress,"%"]})]}),(0,d.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,d.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all duration-300",style:{width:`${L.progress}%`}})})]}),(0,d.jsxs)("div",{className:"mt-6 grid gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"操作记录"}),0===L.operationLogs.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无记录"}):(0,d.jsx)("div",{className:"bg-black text-white rounded text-xs font-mono p-2 max-h-48 overflow-y-auto",children:L.operationLogs.map((a,b)=>(0,d.jsx)("div",{className:"mb-1 whitespace-pre-wrap",children:a},b))})]}),(0,d.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",children:"反馈信息"}),0===L.feedbacks.length?(0,d.jsx)("p",{className:"text-xs text-gray-500",children:"暂无反馈"}):(0,d.jsx)("div",{className:"space-y-1 text-sm",children:L.feedbacks.map((a,b)=>(0,d.jsx)("div",{className:"rounded bg-gray-50 px-2 py-1 text-gray-700",children:a},b))})]})]})]}),(0,d.jsx)(k.Dialog,{open:!1,onOpenChange:a=>{!a&&P&&r.isRunning||S(a)},children:(0,d.jsxs)(k.DialogContent,{showCloseButton:!1,children:[(0,d.jsxs)(k.DialogHeader,{children:[(0,d.jsx)(k.DialogTitle,{children:"确认执行下一步"}),(0,d.jsx)(k.DialogDescription,{children:P?`${P.projectName} \xb7 ${P.description}`:"准备下一步执行"})]}),(0,d.jsx)("div",{className:"rounded-md border bg-gray-50 p-3 text-sm font-mono text-gray-700",children:P?P.command:""}),(0,d.jsxs)(k.DialogFooter,{children:[(0,d.jsx)(g.Button,{variant:"outline",onClick:at,children:"取消执行"}),(0,d.jsx)(g.Button,{onClick:as,disabled:!P,children:"确认并执行"})]})]})}),(0,d.jsx)(k.Dialog,{open:N&&T,onOpenChange:U,children:(0,d.jsxs)(k.DialogContent,{children:[(0,d.jsxs)(k.DialogHeader,{children:[(0,d.jsx)(k.DialogTitle,{children:"操作结果"}),(0,d.jsx)(k.DialogDescription,{children:"查看所有项目执行结果"})]}),(0,d.jsx)("div",{className:"space-y-2",children:0===V.length?(0,d.jsx)("p",{className:"text-sm text-gray-500",children:"暂无结果"}):V.map(a=>(0,d.jsxs)("div",{className:`rounded-md border px-3 py-2 text-sm ${a.success?"bg-green-50 text-green-700":"bg-red-50 text-red-700"}`,children:[(0,d.jsxs)("div",{className:"flex items-start justify-between",children:[(0,d.jsx)("span",{className:"font-medium",children:a.projectName}),(0,d.jsx)("span",{className:"ml-4 text-right",children:!0===a.exists||!1===a.exists?o(a):a.success?"成功":a.reason||"失败"})]}),!a.success&&a.rollbackActions&&a.rollbackActions.length>0&&(0,d.jsxs)("div",{className:"mt-2 text-xs text-gray-600",children:[(0,d.jsx)("div",{className:"font-semibold text-gray-700",children:"已回滚操作:"}),(0,d.jsx)("ul",{className:"mt-1 list-disc pl-4",children:a.rollbackActions.map((b,c)=>(0,d.jsx)("li",{children:b},`${a.projectName}-rollback-${c}`))})]})]},a.projectName))}),(0,d.jsx)(k.DialogFooter,{children:(0,d.jsx)(g.Button,{onClick:()=>U(!1),children:"关闭"})})]})})]})}}}};
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_server_src_7cef6dbd._.js.map
|