viba-cli 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/credentials/page/server-reference-manifest.json +7 -7
- package/.next/server/app/credentials/page.js.nft.json +1 -1
- package/.next/server/app/credentials/page_client-reference-manifest.js +1 -1
- package/.next/server/app/credentials.html +1 -1
- package/.next/server/app/credentials.rsc +4 -3
- package/.next/server/app/credentials.segments/_full.segment.rsc +4 -3
- package/.next/server/app/credentials.segments/_head.segment.rsc +1 -1
- package/.next/server/app/credentials.segments/_index.segment.rsc +3 -2
- package/.next/server/app/credentials.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/credentials.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +4 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +3 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/new/page/server-reference-manifest.json +26 -26
- package/.next/server/app/new/page.js.nft.json +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page/server-reference-manifest.json +26 -26
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +19 -34
- package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__01151db2._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__01151db2._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0522f852._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__30652385._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__30652385._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__352d2b3c._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__352d2b3c._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__4c388861._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__4c388861._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__59834c63._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__59834c63._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__6c63d5b8._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6c63d5b8._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__9201693f._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9201693f._.js.map +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__e720c99b._.js → [root-of-the-server]__b2d91bdd._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__b2d91bdd._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__c790b631._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__c790b631._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__d5eaad6d._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__d5eaad6d._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__e5ccf6ef._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e5ccf6ef._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_8cba5059._.js → node_modules_1924b56e._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_1924b56e._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_e604472b._.js → node_modules_4ebcf1df._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_4ebcf1df._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_8d27431f._.js → node_modules_9819fed1._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_9819fed1._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_61fa9608._.js → node_modules_a6b22d4e._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_a6b22d4e._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js +1 -1
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js +8 -2
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js.map +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +46 -61
- package/.next/static/chunks/13c27cbcbed10be4.js +9 -0
- package/.next/static/chunks/2473c16c0c2f6b5f.css +2 -0
- package/.next/static/chunks/2648731e67ebd2ac.js +1 -0
- package/.next/static/chunks/453fc76d2d553c51.js +3 -0
- package/.next/static/chunks/63e62f1fed4c4271.js +3 -0
- package/.next/static/chunks/afd3fb06f06c56af.js +3 -0
- package/.next/static/chunks/d658bac82c8382da.js +3 -0
- package/.next/static/chunks/dc6ca47e0eb2b1af.css +1 -0
- package/package.json +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__44008467._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__44008467._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__d0ecc669._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__d0ecc669._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__e720c99b._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__f797cdfb._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__f797cdfb._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_61fa9608._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_8cba5059._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_8d27431f._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_e604472b._.js.map +0 -1
- package/.next/static/chunks/01ea2eea578d04e4.js +0 -3
- package/.next/static/chunks/0fe747dafb7e669b.js +0 -3
- package/.next/static/chunks/3ed77fc1d432b1ee.css +0 -3
- package/.next/static/chunks/6569d5ce24eb155c.js +0 -3
- package/.next/static/chunks/9a5719fb5b563570.js +0 -3
- package/.next/static/chunks/c8a39071afb558db.js +0 -1
- package/.next/static/chunks/f46bab62009fa1fe.js +0 -3
- /package/.next/static/{PPdLLbDtsQuxOYX2tF4ds → FS2_5AqvTArHxxuNAA0Or}/_buildManifest.js +0 -0
- /package/.next/static/{PPdLLbDtsQuxOYX2tF4ds → FS2_5AqvTArHxxuNAA0Or}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{PPdLLbDtsQuxOYX2tF4ds → FS2_5AqvTArHxxuNAA0Or}/_ssgManifest.js +0 -0
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
module.exports=[96514,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70106);let e=(0,d.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);var f=a.i(10948),g=a.i(15618);let h=(0,d.default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),i=(0,d.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),j=(0,d.default)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),k=(0,d.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var l=a.i(81560),m=a.i(25015),n=a.i(37047);let o=(0,d.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var p=a.i(52495);let q=(0,d.default)("cloud-download",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]]);var r=a.i(5050);let s=(0,r.createServerReference)("4005188af65ce2eb429c67e8429c92f2d190d4c6e3",r.callServer,void 0,r.findSourceMapURL,"checkDirectoryAccessible"),t=(0,r.createServerReference)("40a20d6e616b36d32a26cb21720e7533f0c7df11a1",r.callServer,void 0,r.findSourceMapURL,"listDirectories");var u=a.i(8176),v=a.i(92596),w=a.i(210);let x=(0,d.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);var y=a.i(11431),z=a.i(94659);function A({title:a,initialPath:d,onSelect:e,onCancel:f,checkRepo:g}){let[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null);(0,c.useEffect)(()=>{let a=!0;return(async()=>{try{let b=await (0,u.getHomeDirectory)();if(!a)return;k(b),i(d||b)}catch(b){if(console.error("Failed to resolve home directory:",b),!a)return;q("Failed to access your home directory."),i(d||"/")}})(),()=>{a=!1}},[d]),(0,c.useEffect)(()=>{if(!h)return;let a=!0;return(async()=>{o(!0),q(null);try{let b=await t(h);if(!a)return;if(0===b.length&&j&&h!==j){let b=await s(h);if(!a)return;if(!b){q(`Could not access "${h}". Showing home directory.`),i(j);return}}let c=b.map(a=>({name:a.name,path:a.path,isDirectory:a.isDirectory,isGitRepo:a.isGitRepo}));m(c)}catch(b){if(console.error(b),!a)return;if(j&&h!==j){q(`Could not access "${h}". Showing home directory.`),i(j);return}m([]),q("Failed to load directory contents")}finally{a&&o(!1)}})(),()=>{a=!1}},[h,j]);let r=(0,c.useCallback)(async a=>{if(g&&!await g(a)){q("Selected directory is not a valid git repository."),setTimeout(()=>q(null),3e3);return}await e(a)},[g,e]),A=(0,c.useCallback)(async()=>{await r(h)},[h,r]);return(0,z.useDialogKeyboardShortcuts)({onConfirm:A,onDismiss:f,canConfirm:!!h}),(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,b.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-3xl h-[80vh] flex flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,b.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,b.jsx)(v.Folder,{className:"w-5 h-5"}),a||"Browse Local Repository"]}),(0,b.jsx)("button",{onClick:f,className:"btn btn-sm btn-ghost btn-circle",children:"✕"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,b.jsx)("button",{onClick:()=>{let a=(0,y.getDirName)(h);a&&a!==h&&i(a)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===h||!h,children:(0,b.jsx)(w.ArrowLeft,{className:"w-4 h-4"})}),(0,b.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:h}),(0,b.jsx)("button",{onClick:A,className:"btn btn-sm btn-primary",children:"Select Current Folder"})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:n?(0,b.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,b.jsx)("span",{className:"loading loading-spinner loading-lg"})}):p?(0,b.jsx)("div",{className:"alert alert-error",children:p}):0===l.length?(0,b.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):(0,b.jsx)("div",{className:"grid grid-cols-1 gap-1",children:l.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between p-2 hover:bg-base-100 rounded-md cursor-pointer transition-colors",onClick:()=>{i(a.path)},children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[(0,b.jsx)(v.Folder,{className:`w-5 h-5 ${a.isGitRepo?"text-primary":"text-base-content/70"}`}),(0,b.jsx)("span",{className:"truncate",children:a.name}),a.isGitRepo&&(0,b.jsx)("span",{className:"badge badge-xs badge-primary",children:"git"})]}),a.isGitRepo&&(0,b.jsxs)("button",{className:"btn btn-xs btn-primary",onClick:b=>{b.stopPropagation(),r(a.path)},title:`Select ${a.name}`,children:[(0,b.jsx)(x,{className:"w-3 h-3"}),"Select"]})]},a.path))})}),(0,b.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/50 text-center",children:'Navigate to a folder and click "Select Current Folder" to choose it.'})]})})}let B=(0,r.createServerReference)("40c9bd4a5c391bfb6e2fd0fbd055bea77487e9bba4",r.callServer,void 0,r.findSourceMapURL,"checkIsGitRepo"),C=(0,r.createServerReference)("40f66593dd4e40b5562d10cdc6684fe2b320041b67",r.callServer,void 0,r.findSourceMapURL,"getBranches"),D=(0,r.createServerReference)("60d5797cafa1363778ffea4e72c0d93d10c5a0be32",r.callServer,void 0,r.findSourceMapURL,"checkoutBranch");var E=a.i(73059);let F=(0,r.createServerReference)("7f36c1dbe7505a064152f94e7555f8d429b5d7cdc2",r.callServer,void 0,r.findSourceMapURL,"getStartupScript"),G=(0,r.createServerReference)("7f891a301398718ef67851b62b24b4f6234680ab0e",r.callServer,void 0,r.findSourceMapURL,"getDefaultDevServerScript"),H=(0,r.createServerReference)("7ff129be2596a1b1057259e743df1b583c0b1d1832",r.callServer,void 0,r.findSourceMapURL,"listRepoFiles");var I=a.i(54017);let J=(0,r.createServerReference)("40ca3515aac45f608a0cc573d2ae3cdbb9e4152ed4",r.callServer,void 0,r.findSourceMapURL,"checkAgentCliInstalled"),K=(0,r.createServerReference)("408bacf930c3bcc003edd92e54ad90b364e001b6e3",r.callServer,void 0,r.findSourceMapURL,"installAgentCli"),L=(0,r.createServerReference)("604df314f079e46a242f1b1eb0b89a899e87a4b2b0",r.callServer,void 0,r.findSourceMapURL,"cloneRemoteRepository"),M=(0,r.createServerReference)("401429b6ad670112668875e8fd06b7378bed4a746f",r.callServer,void 0,r.findSourceMapURL,"resolveRepositoryByName"),N=(0,r.createServerReference)("709f526a0c121988dcba5672af5aa933799c08d0e1",r.callServer,void 0,r.findSourceMapURL,"copySessionAttachments"),O=(0,r.createServerReference)("704d7c8bc68f84dce9abbc3619c5eb536a3724ca58",r.callServer,void 0,r.findSourceMapURL,"createSession"),P=(0,r.createServerReference)("4034a673e468eef5df48765dc1c31a038724250662",r.callServer,void 0,r.findSourceMapURL,"deleteSession"),Q=(0,r.createServerReference)("40ab0aa6db63b491a80ef445ae104ff95c64739143",r.callServer,void 0,r.findSourceMapURL,"getSessionPrefillContext"),R=(0,r.createServerReference)("403521711fa1ea2e231c56910629661a86560c9232",r.callServer,void 0,r.findSourceMapURL,"listSessions"),S=(0,r.createServerReference)("60849d9d6bb313714c02757a542b732eb4e1b877a7",r.callServer,void 0,r.findSourceMapURL,"saveSessionLaunchContext");var T=a.i(57165),U=a.i(45824);let V=(0,r.createServerReference)("608a275cea94f2aa35cc6960854eb4fee1ce447089",r.callServer,void 0,r.findSourceMapURL,"updateRepoSettings");var W=a.i(75523),X=a.i(4614),Y=a.i(50944),Z=a.i(12627),$=a.i(71987);function _(a){if("github"===a.type)return`GitHub - ${a.username}`;let b=a.serverUrl;try{b=new URL(a.serverUrl).host}catch{}return`GitLab - ${a.username} @ ${b}`}let aa="viba:new-session-mode",ab={codex:"codex"},ac={codex:"Codex CLI"};function ad({mode:a="home",repoPath:d=null,fromRepoName:r=null,prefillFromSession:s=null}){let[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),[x,ad]=(0,c.useState)(!1),[ae,af]=(0,c.useState)(!1),[ag,ah]=(0,c.useState)(""),[ai,aj]=(0,c.useState)("auto"),[ak,al]=(0,c.useState)(null),[am,an]=(0,c.useState)(!1),[ao,ap]=(0,c.useState)(!1),[aq,ar]=(0,c.useState)(null),[as,at]=(0,c.useState)(null),[au,av]=(0,c.useState)(null),[aw,ax]=(0,c.useState)("auto"),[ay,az]=(0,c.useState)([]),aA=(0,Y.useRouter)(),[aB,aC]=(0,c.useState)([]),[aD,aE]=(0,c.useState)(""),[aF,aG]=(0,c.useState)([]),[aH,aI]=(0,c.useState)([]),[aJ,aK]=(0,c.useState)(""),[aL,aM]=(0,c.useState)(""),[aN,aO]=(0,c.useState)(!1),[aP,aQ]=(0,c.useState)(""),[aR,aS]=(0,c.useState)(""),[aT,aU]=(0,c.useState)("fast"),[aV,aW]=(0,c.useState)([]),[aX,aY]=(0,c.useState)([]),[aZ,a$]=(0,c.useState)(null),[a_,a0]=(0,c.useState)(!1),[a1,a2]=(0,c.useState)(!1),[a3,a4]=(0,c.useState)(null),[a5,a6]=(0,c.useState)(null),[a7,a8]=(0,c.useState)(!1),[a9,ba]=(0,c.useState)(!1),[bb,bc]=(0,c.useState)(!1),[bd,be]=(0,c.useState)(null),[bf,bg]=(0,c.useState)(!1),[bh,bi]=(0,c.useState)(null),[bj,bk]=(0,c.useState)(""),[bl,bm]=(0,c.useState)(!1),[bn,bo]=(0,c.useState)(null),[bp,bq]=(0,c.useState)(null),[br,bs]=(0,c.useState)(!1),[bt,bu]=(0,c.useState)(!1),bv=(0,c.useRef)(null),bw=(0,c.useCallback)(()=>{(0,Z.notifySessionsUpdated)()},[]),bx=(0,c.useCallback)(async(a=as)=>{try{let[b,c]=await Promise.all([R(),a?R(a):Promise.resolve([])]);aI(b),a&&aG(c)}catch(a){console.error("Failed to refresh sessions",a)}},[as]),by=(0,c.useCallback)((a,b=ay)=>{let c=aq?.repoSettings?.[a];if(!c)return"auto";if(c.credentialId)return c.credentialId;let d=c.credentialPreference;if("github"===d||"gitlab"===d){let a=b.find(a=>a.type===d);if(a)return a.id}return"auto"},[aq,ay]),bz=(0,c.useCallback)(a=>{let b=aq?.repoSettings?.[a];if(!b)return"Auto";if(b.credentialId){let a=ay.find(a=>a.id===b.credentialId);return a?_(a):"Selected credential"}return"github"===b.credentialPreference?"GitHub (legacy)":"gitlab"===b.credentialPreference?"GitLab (legacy)":"Auto"},[aq,ay]),bA=(0,c.useCallback)(()=>{bt||(ad(!1),av(null),ax("auto"),bq(null),bs(!1))},[bt]),bB=(0,c.useCallback)(()=>{af(!0),ah(""),aj("auto"),al(null),ap(!0),(async()=>{try{let a=await (0,X.listCredentials)();if(!a.success)return void al(a.error);az(a.credentials)}catch(a){console.error(a),al("Failed to load credentials.")}finally{ap(!1)}})()},[]),bC=(0,c.useCallback)(()=>{am||(af(!1),ah(""),aj("auto"),al(null),ap(!1))},[am]);(0,c.useEffect)(()=>{(async()=>{try{let[a,b,c]=await Promise.all([(0,T.getConfig)(),R(),(0,X.listCredentials)()]);ar(a),aI(b),c.success&&az(c.credentials)}catch(a){console.error("Failed to load data",a)}finally{ba(!0)}})()},[]),(0,c.useEffect)(()=>{if("new"===a)try{let a=window.localStorage.getItem(aa);("fast"===a||"plan"===a)&&aU(a)}catch{}},[a]),(0,c.useEffect)(()=>{let b=()=>{bx("new"===a?as:null)},c=a=>{a.key===Z.SESSIONS_UPDATED_STORAGE_KEY&&b()},d=()=>{b()},e=()=>{b()};return window.addEventListener("storage",c),window.addEventListener("focus",d),window.addEventListener(Z.SESSIONS_UPDATED_EVENT,e),()=>{window.removeEventListener("storage",c),window.removeEventListener("focus",d),window.removeEventListener(Z.SESSIONS_UPDATED_EVENT,e)}},[a,bx,as]);let bD=async a=>{at(a),b_([]),await bH(a),await bJ(a),await bx(a)},bE=async b=>{a2(!0),a6(null);try{if(!await B(b))return a6("Selected directory is not a valid git repository."),!1;let c=[...(aq||await (0,T.getConfig)()).recentRepos];c.includes(b)?c=[b,...c.filter(a=>a!==b)]:c.unshift(b);let d=await (0,U.updateConfig)({recentRepos:c});if(ar(d),u(!1),"home"===a)return aA.push(`/new?repo=${encodeURIComponent(b)}`),!0;return await bD(b),!0}catch(a){return console.error(a),a6("Failed to open repository."),!1}finally{a2(!1)}},bF=async()=>{if(am)return;let a=ag.trim();if(!a)return void al("Please enter a remote repository URL.");an(!0),al(null),a6(null);try{let b=await L(a,"auto"===ai?null:ai);if(!b.success||!b.repoPath)return void al(b.error||"Failed to clone repository.");if(!await bE(b.repoPath))return void al("Repository was cloned, but failed to open it.");af(!1),ah(""),aj("auto"),al(null)}catch(a){console.error(a),al("Failed to clone repository.")}finally{an(!1)}},bG=async b=>{if("new"!==a)return;let c=b.target.value;if(!c||c===as||!await bE(c))return;let d=new URLSearchParams;d.set("repo",c),s&&d.set("prefillFromSession",s),aA.replace(`/new?${d.toString()}`)};(0,c.useEffect)(()=>{if("new"===a){if(!d){at(null),aG([]),aC([]),aE("");return}d!==as&&bE(d)}},[a,d,as]),(0,c.useEffect)(()=>{if("new"!==a)return;if(d)return void a8(!1);let b=r?.trim()??"";if(!b)return void a8(!1);let c=!1;return(async()=>{a6(null),a8(!0);let a=await M(b);if(c)return;if(!a.success){a6(a.error||"Failed to search repositories."),a8(!1);return}if(!a.repoPath){a6(`Could not find a matching repository for "${b}".`),a8(!1);return}let d=new URLSearchParams;d.set("repo",a.repoPath),s&&d.set("prefillFromSession",s),aA.replace(`/new?${d.toString()}`)})(),()=>{c=!0}},[r,a,s,d,aA]),(0,c.useEffect)(()=>{a0(!1),aY([]),a$(null)},[s]),(0,c.useEffect)(()=>{if("new"!==a||!as||!s||a_)return;let b=!1;return(async()=>{let a=await Q(s);if(b)return;if(!a.success||!a.context){a.error&&a6(a.error),a0(!0);return}let c=a.context;c.repoPath!==as||(aS(c.title||""),aQ(c.initialMessage||""),aY(c.attachmentNames||[]),a$(c.sourceSessionName),aO(!0)),a0(!0)})(),()=>{b=!0}},[a_,a,s,as]);let bH=async a=>{let b=aq||await (0,T.getConfig)();aq||ar(b);let c=b.repoSettings[a]||{},d=c.startupScript,e=c.devServerScript;null!=d?aK(d):aK(await F(a)),null!=e?aM(e):aM(await G(a))},bI=async a=>{ar(await (0,U.updateConfig)({defaultRoot:a})),w(!1)},bJ=async a=>{try{let b=await C(a);aC(b);let c=((aq||await (0,T.getConfig)()).repoSettings[a]||{}).lastBranch,d=b.find(a=>a.current)?.name;if(c&&b.some(a=>a.name===c)){if(aE(c),c!==d)try{await D(a,c);let b=await C(a);aC(b)}catch(a){console.warn("Could not auto-checkout to remembered branch",a),d&&aE(d)}}else d&&aE(d)}catch(a){console.error("Failed to load branches",a),a6("Failed to load branches.")}},bK=async a=>{let b=a.target.value;if(as){a2(!0);try{await D(as,b),aE(b);let a=await V(as,{lastBranch:b});ar(a);let c=await C(as);aC(c)}catch{a6(`Failed to checkout branch ${b}`)}finally{a2(!1)}}},bL=async a=>{aK(a.target.value)},bM=async()=>{as&&ar(await V(as,{startupScript:aJ}))},bN=async a=>{as&&ar(await V(as,{devServerScript:a}))},bO=async()=>{await bN(aL)},bP=(0,c.useCallback)((a,b)=>{if(a.name&&a.name.trim().length>0)return a;let c=a.type&&a.type.split("/")[1]?.split("+")[0]||"bin";return new File([a],`pasted-file-${Date.now()}-${b+1}.${c}`,{type:a.type,lastModified:a.lastModified||Date.now()})},[]),bQ=(0,c.useCallback)(a=>{0!==a.length&&aW(b=>{let c=new Map(b.map(a=>[a.name,a]));return a.forEach(a=>{c.set(a.name,a)}),Array.from(c.values())})},[]),[bR,bS]=(0,c.useState)(!1),[bT,bU]=(0,c.useState)([]),[,bV]=(0,c.useState)(""),[bW,bX]=(0,c.useState)(0),[bY,bZ]=(0,c.useState)(0),[b$,b_]=(0,c.useState)([]),b0=async a=>{let b=a.target.value,c=a.target.selectionStart;aQ(b),bX(c);let d=b.substring(0,c),e=d.lastIndexOf("@");if(-1!==e){let a=d.substring(e+1);if(!/\s/.test(a)){if(bV(a),bS(!0),as){var f;let b,c=b$;0===b$.length&&b_(c=await H(as)),f=c,b=a.toLowerCase(),bU([...[...aV.map(a=>a.name),...aX].filter(a=>a.toLowerCase().includes(b)),...f.filter(a=>a.toLowerCase().includes(b)).slice(0,20)]),bZ(0)}return}}bS(!1)},b1=a=>{let b=aP.substring(0,bW).lastIndexOf("@");if(-1!==b){let c=aP.substring(0,b),d=aP.substring(bW);aQ(`${c}@${a} ${d}`),bS(!1)}};(0,c.useEffect)(()=>{if("new"!==a||!as)return;let b=a=>{let b=a.clipboardData;if(!b)return;let c=Array.from(b.items).filter(a=>"file"===a.kind).map(a=>a.getAsFile()).filter(a=>null!==a),d=(c.length>0?c:Array.from(b.files)).map((a,b)=>bP(a,b));0!==d.length&&(a.preventDefault(),bQ(d))};return window.addEventListener("paste",b),()=>{window.removeEventListener("paste",b)}},[bQ,a,bP,as]);let b2=async(a,b)=>{if(a.stopPropagation(),aq){let a=aq.recentRepos.filter(a=>a!==b);ar(await (0,U.updateConfig)({recentRepos:a}))}},b3=async(a,b)=>{a.stopPropagation(),av(b),ax(by(b)),bq(null),ad(!0),bs(!0);try{let a=await (0,X.listCredentials)();a.success?(az(a.credentials),ax(by(b,a.credentials))):(bq(a.error),az([]))}catch(a){console.error(a),bq("Failed to load credentials."),az([])}finally{bs(!1)}},b4=async()=>{if(!au)return;let a="auto"===aw?null:aw;if(a&&!ay.some(b=>b.id===a))return void bq("Selected credential no longer exists. Please choose another credential.");bu(!0),bq(null);try{let b=await V(au,{credentialId:a,credentialPreference:void 0});ar(b),bA()}catch(a){console.error(a),bq("Failed to save repository settings.")}finally{bu(!1)}},b5=(0,c.useCallback)(()=>{if(!bf||!bj||!bv.current)return;let a=bv.current,b=(c=0)=>{if(c>40)return void bo("Timed out while waiting for terminal to initialize.");try{let d=a.contentWindow;if(d?.term){d.term.paste(`${bj}\r`),bm(!0),bo(null),d.focus();return}setTimeout(()=>b(c+1),300)}catch(a){console.error("Failed to inject login command into terminal iframe:",a),bo("Could not access ttyd terminal. Ensure ttyd is running and try again.")}};setTimeout(()=>b(),500)},[bf,bj]),b6=(0,c.useCallback)(async a=>{try{let b=await (0,W.listAgentApiCredentials)();if(!b.success)return!1;return b.credentials.some(b=>b.agent===a)}catch{return!1}},[]),b7=(0,c.useCallback)(async()=>{let a="codex",b=await J(a);if(!b.success)return a6(b.error||`Failed to verify ${ac[a]} installation status.`),!1;if(b.installed)return!0;bc(!0),be(a),a6(null);let c=await K(a);if(bc(!1),be(null),!c.success)return a6(c.error||`Failed to install ${ac[a]}.`),!1;let d=await (0,E.startTtydProcess)();return d.success?!!await b6(a)||(bi(a),bk(ab[a]),bm(!1),bo(null),bg(!0),!1):(a6(d.error||"Failed to start ttyd"),!1)},[b6]),b8=async(a={})=>{if(as){a2(!0),a6(null);try{if(!a.skipAgentSetup&&!await b7())return void a2(!1);let b=aL.trim();!b&&(b=await G(as))&&aM(b),await bM(),await bN(b);let c=await (0,E.startTtydProcess)();if(!c.success){a6(c.error||"Failed to start ttyd"),a2(!1);return}let d=await O(as,aD||"main",{agent:"codex",model:"",title:aR,devServerScript:b||void 0});if(d.success&&d.sessionName&&d.worktreePath&&d.branchName){let a=[],b=[];if(aV.length>0){let b=new FormData;aV.forEach(a=>b.append(a.name,a)),a=await (0,I.saveAttachments)(d.worktreePath,b)}if(aZ&&aX.length>0){let a=await N(aZ,d.worktreePath,aX);if(!a.success){a6(a.error||"Failed to carry over attachments from source session"),a2(!1);return}b=a.copiedAttachmentNames}let c=Array.from(new Set([...a,...b])),e=aP.trim(),f=e;f=f.replace(/@(\S+)/g,(a,b)=>c.includes(b)?`${d.worktreePath}-attachments/${b}`:b);let g=await S(d.sessionName,{title:aR||void 0,initialMessage:f||void 0,rawInitialMessage:e||void 0,startupScript:aJ||void 0,attachmentNames:c,agentProvider:"codex",model:"",sessionMode:aT});if(!g.success){a6(g.error||"Failed to save session context"),a2(!1);return}let h=`/session/${d.sessionName}`;bw(),aA.push(h),a2(!1)}else a6(d.error||"Failed to create session worktree"),a2(!1)}catch(a){console.error(a),a6("Failed to start session"),a2(!1)}}},b9=()=>{b8()},ca=(0,c.useCallback)(()=>{bg(!1),bi(null),bk(""),bm(!1),bo(null)},[]),cb=async()=>{ca(),await b8({skipAgentSetup:!0})};(0,z.useDialogKeyboardShortcuts)({enabled:"new"===a&&bf&&!!bh,onConfirm:cb,onDismiss:ca,canConfirm:!a1}),(0,z.useDialogKeyboardShortcuts)({enabled:"home"===a&&x&&!!au,onConfirm:b4,onDismiss:bA,canConfirm:!bt}),(0,z.useDialogKeyboardShortcuts)({enabled:"home"===a&&ae,onConfirm:bF,onDismiss:bC,canConfirm:!am&&ag.trim().length>0&&!ao});let cc=async a=>{if(as){a2(!0);try{let b=await (0,E.startTtydProcess)();if(!b.success){a6(b.error||"Failed to start ttyd"),a2(!1);return}let c=`/session/${a.sessionName}`;aA.push(c),a2(!1)}catch(a){console.error(a),a6("Failed to resume session"),a2(!1)}}},cd=async a=>{if(as&&confirm(`Delete session "${a.sessionName}"?
|
|
1
|
+
module.exports=[96514,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70106);let e=(0,d.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);var f=a.i(15618);let g=(0,d.default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var h=a.i(50522),i=a.i(5784);let j=(0,d.default)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),k=(0,d.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var l=a.i(81560),m=a.i(37047);let n=(0,d.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var o=a.i(52495);let p=(0,d.default)("cloud-download",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]]),q=(0,d.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var r=a.i(5050);let s=(0,r.createServerReference)("403a91cd6c4dd299e377991b05c24b694c35d631ad",r.callServer,void 0,r.findSourceMapURL,"checkDirectoryAccessible"),t=(0,r.createServerReference)("40c55bf7b4d0c0d00a28f84c0e869db369112068ef",r.callServer,void 0,r.findSourceMapURL,"listDirectories");var u=a.i(75756),v=a.i(92596),w=a.i(210);let x=(0,d.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);var y=a.i(11431),z=a.i(94659);function A({title:a,initialPath:d,onSelect:e,onCancel:f,checkRepo:g}){let[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null);(0,c.useEffect)(()=>{let a=!0;return(async()=>{try{let b=await (0,u.getHomeDirectory)();if(!a)return;k(b),i(d||b)}catch(b){if(console.error("Failed to resolve home directory:",b),!a)return;q("Failed to access your home directory."),i(d||"/")}})(),()=>{a=!1}},[d]),(0,c.useEffect)(()=>{if(!h)return;let a=!0;return(async()=>{o(!0),q(null);try{let b=await t(h);if(!a)return;if(0===b.length&&j&&h!==j){let b=await s(h);if(!a)return;if(!b){q(`Could not access "${h}". Showing home directory.`),i(j);return}}let c=b.map(a=>({name:a.name,path:a.path,isDirectory:a.isDirectory,isGitRepo:a.isGitRepo}));m(c)}catch(b){if(console.error(b),!a)return;if(j&&h!==j){q(`Could not access "${h}". Showing home directory.`),i(j);return}m([]),q("Failed to load directory contents")}finally{a&&o(!1)}})(),()=>{a=!1}},[h,j]);let r=(0,c.useCallback)(async a=>{if(g&&!await g(a)){q("Selected directory is not a valid git repository."),setTimeout(()=>q(null),3e3);return}await e(a)},[g,e]),A=(0,c.useCallback)(async()=>{await r(h)},[h,r]);return(0,z.useDialogKeyboardShortcuts)({onConfirm:A,onDismiss:f,canConfirm:!!h}),(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,b.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-3xl h-[80vh] flex flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,b.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,b.jsx)(v.Folder,{className:"w-5 h-5"}),a||"Browse Local Repository"]}),(0,b.jsx)("button",{onClick:f,className:"btn btn-sm btn-ghost btn-circle",children:"✕"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,b.jsx)("button",{onClick:()=>{let a=(0,y.getDirName)(h);a&&a!==h&&i(a)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===h||!h,children:(0,b.jsx)(w.ArrowLeft,{className:"w-4 h-4"})}),(0,b.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:h}),(0,b.jsx)("button",{onClick:A,className:"btn btn-sm btn-primary",children:"Select Current Folder"})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:n?(0,b.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,b.jsx)("span",{className:"loading loading-spinner loading-lg"})}):p?(0,b.jsx)("div",{className:"alert alert-error",children:p}):0===l.length?(0,b.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):(0,b.jsx)("div",{className:"grid grid-cols-1 gap-1",children:l.map(a=>(0,b.jsxs)("div",{className:"group flex items-center justify-between p-2 hover:bg-base-100 rounded-md cursor-pointer transition-colors",onClick:()=>{i(a.path)},children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[(0,b.jsx)(v.Folder,{className:`w-5 h-5 ${a.isGitRepo?"text-primary":"text-base-content/70"}`}),(0,b.jsx)("span",{className:"truncate",children:a.name}),a.isGitRepo&&(0,b.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-bold bg-slate-200 text-slate-600 border border-slate-300 uppercase tracking-wide",children:"GIT"})]}),a.isGitRepo&&(0,b.jsxs)("button",{className:"flex items-center justify-center p-1.5 rounded-md bg-primary/10 text-primary hover:bg-primary hover:text-white transition-colors",onClick:b=>{b.stopPropagation(),r(a.path)},title:`Select ${a.name}`,children:[(0,b.jsx)(x,{className:"h-[18px] w-[18px]"}),(0,b.jsx)("span",{className:"sr-only",children:"Select"})]})]},a.path))})}),(0,b.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/50 text-center",children:'Navigate to a folder and click "Select Current Folder" to choose it.'})]})})}let B=(0,r.createServerReference)("403487cb68411809c7176236043abff671bfc73293",r.callServer,void 0,r.findSourceMapURL,"checkIsGitRepo"),C=(0,r.createServerReference)("408afca08d03d654fa0c08ac92b70df0f08fa3e602",r.callServer,void 0,r.findSourceMapURL,"getBranches"),D=(0,r.createServerReference)("60b0f9a4bc37887d785acdbada3f4fef6c52f2d2e0",r.callServer,void 0,r.findSourceMapURL,"checkoutBranch");var E=a.i(75170);let F=(0,r.createServerReference)("7ff12f43b8493f24eed19a88ff4aa38922f9380b36",r.callServer,void 0,r.findSourceMapURL,"getStartupScript"),G=(0,r.createServerReference)("7f3b95a6dd4be9498014339de58b9213722569b211",r.callServer,void 0,r.findSourceMapURL,"getDefaultDevServerScript"),H=(0,r.createServerReference)("7fd7c9ea27398f8984956bdcfffb9ece83f53cb3db",r.callServer,void 0,r.findSourceMapURL,"listRepoFiles");var I=a.i(58866);let J=(0,r.createServerReference)("40a83f00a7f1a7b02e09d6f15f1f2c7a04615598ec",r.callServer,void 0,r.findSourceMapURL,"checkAgentCliInstalled"),K=(0,r.createServerReference)("4041de2f7bb6af0b56369f9e323be73c4673e9c3e7",r.callServer,void 0,r.findSourceMapURL,"installAgentCli"),L=(0,r.createServerReference)("60ed8bc1a64ceeb92bff88ce0981ea6bf083f76392",r.callServer,void 0,r.findSourceMapURL,"cloneRemoteRepository"),M=(0,r.createServerReference)("4049a5b2db629077fb7339be6f394f57adad5908a5",r.callServer,void 0,r.findSourceMapURL,"resolveRepositoryByName"),N=(0,r.createServerReference)("7071e732bce3733c50a450da5855fba4917a4dd643",r.callServer,void 0,r.findSourceMapURL,"copySessionAttachments"),O=(0,r.createServerReference)("7066dd9be576a5164d05bc682d076f394ace4fd616",r.callServer,void 0,r.findSourceMapURL,"createSession"),P=(0,r.createServerReference)("40b74648865c3f96a89f2120707ee6d90b41f44fb6",r.callServer,void 0,r.findSourceMapURL,"deleteSession"),Q=(0,r.createServerReference)("40aaed6b3cf41086823030eea94f06c1bb60d4d68b",r.callServer,void 0,r.findSourceMapURL,"getSessionPrefillContext"),R=(0,r.createServerReference)("407a7efc36c0bc482ceba47501668efd9d3a54aa5d",r.callServer,void 0,r.findSourceMapURL,"listSessions"),S=(0,r.createServerReference)("60b016bcf07bca25b0f2375839c271c241748f3068",r.callServer,void 0,r.findSourceMapURL,"saveSessionLaunchContext");var T=a.i(97543),U=a.i(73881);let V=(0,r.createServerReference)("60a021ad5d6b8db3ea7848f99beee1a6f598eb03b4",r.callServer,void 0,r.findSourceMapURL,"updateRepoSettings");var W=a.i(54653),X=a.i(9809),Y=a.i(50944);function Z(a,b,c){return Math.max(b,Math.min(c,a))}function $(a,b,c){let d=Z(b,20,70),e=Z(c,86,94);return`hsl(${(a%360+360)%360} ${d}% ${e}%)`}var _=a.i(12627),aa=a.i(71987);let ab="npm install",ac="npm run dev";function ad(a){if("github"===a.type)return`GitHub - ${a.username}`;let b=a.serverUrl;try{b=new URL(a.serverUrl).host}catch{}return`GitLab - ${a.username} @ ${b}`}let ae="viba:new-session-mode",af={codex:"codex"},ag={codex:"Codex CLI"};function ah({mode:a="home",repoPath:d=null,fromRepoName:r=null,prefillFromSession:s=null}){let[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),[x,Z]=(0,c.useState)(!1),[ah,ai]=(0,c.useState)(!1),[aj,ak]=(0,c.useState)(""),[al,am]=(0,c.useState)("auto"),[an,ao]=(0,c.useState)(null),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(!1),[at,au]=(0,c.useState)(null),[av,aw]=(0,c.useState)(null),[ax,ay]=(0,c.useState)(null),[az,aA]=(0,c.useState)("auto"),[aB,aC]=(0,c.useState)(ab),[aD,aE]=(0,c.useState)(ac),[aF,aG]=(0,c.useState)([]),aH=(0,Y.useRouter)(),[aI,aJ]=(0,c.useState)([]),[aK,aL]=(0,c.useState)(""),[aM,aN]=(0,c.useState)([]),[aO,aP]=(0,c.useState)([]),[aQ,aR]=(0,c.useState)(""),[aS,aT]=(0,c.useState)(""),[aU,aV]=(0,c.useState)(!1),[aW,aX]=(0,c.useState)(""),[aY,aZ]=(0,c.useState)("fast"),[a$,a_]=(0,c.useState)([]),[a0,a1]=(0,c.useState)([]),[a2,a3]=(0,c.useState)(null),[a4,a5]=(0,c.useState)(!1),[a6,a7]=(0,c.useState)(!1),[a8,a9]=(0,c.useState)(null),[ba,bb]=(0,c.useState)(null),[bc,bd]=(0,c.useState)(!1),[be,bf]=(0,c.useState)(!1),[bg,bh]=(0,c.useState)(!1),[bi,bj]=(0,c.useState)(null),[bk,bl]=(0,c.useState)(!1),[bm,bn]=(0,c.useState)(null),[bo,bp]=(0,c.useState)(""),[bq,br]=(0,c.useState)(""),[bs,bt]=(0,c.useState)(!1),[bu,bv]=(0,c.useState)(null),[bw,bx]=(0,c.useState)(null),[by,bz]=(0,c.useState)(!1),[bA,bB]=(0,c.useState)(!1),bC=(0,c.useRef)(null),bD=(0,c.useCallback)(()=>{(0,_.notifySessionsUpdated)()},[]),bE=(0,c.useCallback)(async(a=av)=>{try{let[b,c]=await Promise.all([R(),a?R(a):Promise.resolve([])]);aP(b),a&&aN(c)}catch(a){console.error("Failed to refresh sessions",a)}},[av]),bF=(0,c.useCallback)((a,b=aF)=>{let c=at?.repoSettings?.[a];if(!c)return"auto";if(c.credentialId)return c.credentialId;let d=c.credentialPreference;if("github"===d||"gitlab"===d){let a=b.find(a=>a.type===d);if(a)return a.id}return"auto"},[at,aF]),bG=(0,c.useCallback)(a=>{let b=at?.repoSettings?.[a];if(!b)return"Auto";if(b.credentialId){let a=aF.find(a=>a.id===b.credentialId);return a?ad(a):"Selected credential"}return"github"===b.credentialPreference?"GitHub (legacy)":"gitlab"===b.credentialPreference?"GitLab (legacy)":"Auto"},[at,aF]),bH=(0,c.useCallback)(()=>{bA||(Z(!1),ay(null),aA("auto"),aC(ab),aE(ac),bx(null),bz(!1))},[bA]),bI=(0,c.useCallback)(()=>{ai(!0),ak(""),am("auto"),ao(null),as(!0),(async()=>{try{let a=await (0,X.listCredentials)();if(!a.success)return void ao(a.error);aG(a.credentials)}catch(a){console.error(a),ao("Failed to load credentials.")}finally{as(!1)}})()},[]),bJ=(0,c.useCallback)(()=>{ap||(ai(!1),ak(""),am("auto"),ao(null),as(!1))},[ap]);(0,c.useEffect)(()=>{(async()=>{try{let[a,b,c]=await Promise.all([(0,T.getConfig)(),R(),(0,X.listCredentials)()]);au(a),aP(b),c.success&&aG(c.credentials)}catch(a){console.error("Failed to load data",a)}finally{bf(!0)}})()},[]),(0,c.useEffect)(()=>{if("new"===a)try{let a=window.localStorage.getItem(ae);("fast"===a||"plan"===a)&&aZ(a)}catch{}},[a]),(0,c.useEffect)(()=>{let b=()=>{bE("new"===a?av:null)},c=a=>{a.key===_.SESSIONS_UPDATED_STORAGE_KEY&&b()},d=()=>{b()},e=()=>{b()};return window.addEventListener("storage",c),window.addEventListener("focus",d),window.addEventListener(_.SESSIONS_UPDATED_EVENT,e),()=>{window.removeEventListener("storage",c),window.removeEventListener("focus",d),window.removeEventListener(_.SESSIONS_UPDATED_EVENT,e)}},[a,bE,av]);let bK=async a=>{aw(a),b6([]),await bO(a),await bQ(a),await bE(a)},bL=async b=>{a7(!0),bb(null);try{if(!await B(b))return bb("Selected directory is not a valid git repository."),!1;let c=[...(at||await (0,T.getConfig)()).recentRepos];c.includes(b)?c=[b,...c.filter(a=>a!==b)]:c.unshift(b);let d=await (0,U.updateConfig)({recentRepos:c});if(au(d),u(!1),"home"===a)return aH.push(`/new?repo=${encodeURIComponent(b)}`),!0;return await bK(b),!0}catch(a){return console.error(a),bb("Failed to open repository."),!1}finally{a7(!1)}},bM=async()=>{if(ap)return;let a=aj.trim();if(!a)return void ao("Please enter a remote repository URL.");aq(!0),ao(null),bb(null);try{let b=await L(a,"auto"===al?null:al);if(!b.success||!b.repoPath)return void ao(b.error||"Failed to clone repository.");if(!await bL(b.repoPath))return void ao("Repository was cloned, but failed to open it.");ai(!1),ak(""),am("auto"),ao(null)}catch(a){console.error(a),ao("Failed to clone repository.")}finally{aq(!1)}},bN=async b=>{if("new"!==a)return;let c=b.target.value;if(!c||c===av||!await bL(c))return;let d=new URLSearchParams;d.set("repo",c),s&&d.set("prefillFromSession",s),aH.replace(`/new?${d.toString()}`)};(0,c.useEffect)(()=>{if("new"===a){if(!d){aw(null),aN([]),aJ([]),aL("");return}d!==av&&bL(d)}},[a,d,av]),(0,c.useEffect)(()=>{if("new"!==a)return;if(d)return void bd(!1);let b=r?.trim()??"";if(!b)return void bd(!1);let c=!1;return(async()=>{bb(null),bd(!0);let a=await M(b);if(c)return;if(!a.success){bb(a.error||"Failed to search repositories."),bd(!1);return}if(!a.repoPath){bb(`Could not find a matching repository for "${b}".`),bd(!1);return}let d=new URLSearchParams;d.set("repo",a.repoPath),s&&d.set("prefillFromSession",s),aH.replace(`/new?${d.toString()}`)})(),()=>{c=!0}},[r,a,s,d,aH]),(0,c.useEffect)(()=>{a5(!1),a1([]),a3(null)},[s]),(0,c.useEffect)(()=>{if("new"!==a||!av||!s||a4)return;let b=!1;return(async()=>{let a=await Q(s);if(b)return;if(!a.success||!a.context){a.error&&bb(a.error),a5(!0);return}let c=a.context;c.repoPath!==av||(aX(c.initialMessage||""),a1(c.attachmentNames||[]),a3(c.sourceSessionName),aV(!0)),a5(!0)})(),()=>{b=!0}},[a4,a,s,av]);let bO=async a=>{let b=at||await (0,T.getConfig)();at||au(b);let c=b.repoSettings[a]||{},d=c.startupScript,e=c.devServerScript;null!=d?aR(d):aR(await F(a)),null!=e?aT(e):aT(await G(a))},bP=async a=>{au(await (0,U.updateConfig)({defaultRoot:a})),w(!1)},bQ=async a=>{try{let b=await C(a);aJ(b);let c=((at||await (0,T.getConfig)()).repoSettings[a]||{}).lastBranch,d=b.find(a=>a.current)?.name;if(c&&b.some(a=>a.name===c)){if(aL(c),c!==d)try{await D(a,c);let b=await C(a);aJ(b)}catch(a){console.warn("Could not auto-checkout to remembered branch",a),d&&aL(d)}}else d&&aL(d)}catch(a){console.error("Failed to load branches",a),bb("Failed to load branches.")}},bR=async a=>{let b=a.target.value;if(av){a7(!0);try{await D(av,b),aL(b);let a=await V(av,{lastBranch:b});au(a);let c=await C(av);aJ(c)}catch{bb(`Failed to checkout branch ${b}`)}finally{a7(!1)}}},bS=async a=>{aR(a.target.value)},bT=async()=>{av&&au(await V(av,{startupScript:aQ}))},bU=async a=>{av&&au(await V(av,{devServerScript:a}))},bV=async()=>{await bU(aS)},bW=(0,c.useCallback)((a,b)=>{if(a.name&&a.name.trim().length>0)return a;let c=a.type&&a.type.split("/")[1]?.split("+")[0]||"bin";return new File([a],`pasted-file-${Date.now()}-${b+1}.${c}`,{type:a.type,lastModified:a.lastModified||Date.now()})},[]),bX=(0,c.useCallback)(a=>{0!==a.length&&a_(b=>{let c=new Map(b.map(a=>[a.name,a]));return a.forEach(a=>{c.set(a.name,a)}),Array.from(c.values())})},[]),[bY,bZ]=(0,c.useState)(!1),[b$,b_]=(0,c.useState)([]),[,b0]=(0,c.useState)(""),[b1,b2]=(0,c.useState)(0),[b3,b4]=(0,c.useState)(0),[b5,b6]=(0,c.useState)([]),b7=async a=>{let b=a.target.value,c=a.target.selectionStart;aX(b),b2(c);let d=b.substring(0,c),e=d.lastIndexOf("@");if(-1!==e){let a=d.substring(e+1);if(!/\s/.test(a)){if(b0(a),bZ(!0),av){var f;let b,c=b5;0===b5.length&&b6(c=await H(av)),f=c,b=a.toLowerCase(),b_([...[...a$.map(a=>a.name),...a0].filter(a=>a.toLowerCase().includes(b)),...f.filter(a=>a.toLowerCase().includes(b)).slice(0,20)]),b4(0)}return}}bZ(!1)},b8=a=>{let b=aW.substring(0,b1).lastIndexOf("@");if(-1!==b){let c=aW.substring(0,b),d=aW.substring(b1);aX(`${c}@${a} ${d}`),bZ(!1)}};(0,c.useEffect)(()=>{if("new"!==a||!av)return;let b=a=>{let b=a.clipboardData;if(!b)return;let c=Array.from(b.items).filter(a=>"file"===a.kind).map(a=>a.getAsFile()).filter(a=>null!==a),d=(c.length>0?c:Array.from(b.files)).map((a,b)=>bW(a,b));0!==d.length&&(a.preventDefault(),bX(d))};return window.addEventListener("paste",b),()=>{window.removeEventListener("paste",b)}},[bX,a,bW,av]);let b9=async(a,b)=>{if(a.stopPropagation(),at){let a=at.recentRepos.filter(a=>a!==b);au(await (0,U.updateConfig)({recentRepos:a}))}},ca=async(a,b)=>{a.stopPropagation();let c=at?.repoSettings?.[b];ay(b),aA(bF(b)),aC(c?.startupScript?.trim()?c.startupScript:ab),aE(c?.devServerScript?.trim()?c.devServerScript:ac),bx(null),Z(!0),bz(!0);try{let a=await (0,X.listCredentials)();a.success?(aG(a.credentials),aA(bF(b,a.credentials))):(bx(a.error),aG([]))}catch(a){console.error(a),bx("Failed to load credentials."),aG([])}finally{bz(!1)}},cb=async()=>{if(!ax)return;let a="auto"===az?null:az,b=aB.trim()||ab,c=aD.trim()||ac;if(a&&!aF.some(b=>b.id===a))return void bx("Selected credential no longer exists. Please choose another credential.");bB(!0),bx(null);try{let d=await V(ax,{credentialId:a,startupScript:b,devServerScript:c,credentialPreference:void 0});au(d),bH()}catch(a){console.error(a),bx("Failed to save repository settings.")}finally{bB(!1)}},cc=(0,c.useCallback)(()=>{if(!bk||!bo||!bC.current)return;let a=bC.current,b=(c=0)=>{if(c>40)return void bv("Timed out while waiting for terminal to initialize.");try{let d=a.contentWindow;if(d?.term){d.term.paste(`${bo}\r`),bt(!0),bv(null),d.focus();return}setTimeout(()=>b(c+1),300)}catch(a){console.error("Failed to inject login command into terminal iframe:",a),bv("Could not access ttyd terminal. Ensure ttyd is running and try again.")}};setTimeout(()=>b(),500)},[bk,bo]),cd=(0,c.useCallback)(async a=>{try{let b=await (0,W.listAgentApiCredentials)();if(!b.success)return!1;return b.credentials.some(b=>b.agent===a)}catch{return!1}},[]),ce=(0,c.useCallback)(async()=>{let a="codex",b=await J(a);if(!b.success)return bb(b.error||`Failed to verify ${ag[a]} installation status.`),!1;if(b.installed)return!0;bh(!0),bj(a),bb(null);let c=await K(a);if(bh(!1),bj(null),!c.success)return bb(c.error||`Failed to install ${ag[a]}.`),!1;let d=await (0,E.startTtydProcess)();return d.success?!!await cd(a)||(bn(a),bp(af[a]),bt(!1),bv(null),bl(!0),!1):(bb(d.error||"Failed to start ttyd"),!1)},[cd]),cf=async(a={})=>{if(av){a7(!0),bb(null);try{if(!a.skipAgentSetup&&!await ce())return void a7(!1);let b=aS.trim();!b&&(b=await G(av))&&aT(b),await bT(),await bU(b);let c=await (0,E.startTtydProcess)();if(!c.success){bb(c.error||"Failed to start ttyd"),a7(!1);return}let d=function(a){let b=a.split(/\r?\n/).map(a=>a.trim()).find(a=>a.length>0);if(b)return b.slice(0,120)}(aW),e=await O(av,aK||"main",{agent:"codex",model:"",title:d,devServerScript:b||void 0});if(e.success&&e.sessionName&&e.worktreePath&&e.branchName){let a=[],b=[];if(a$.length>0){let b=new FormData;a$.forEach(a=>b.append(a.name,a)),a=await (0,I.saveAttachments)(e.worktreePath,b)}if(a2&&a0.length>0){let a=await N(a2,e.worktreePath,a0);if(!a.success){bb(a.error||"Failed to carry over attachments from source session"),a7(!1);return}b=a.copiedAttachmentNames}let c=Array.from(new Set([...a,...b])),f=aW.trim(),g=f;g=g.replace(/@(\S+)/g,(a,b)=>c.includes(b)?`${e.worktreePath}-attachments/${b}`:b);let h=await S(e.sessionName,{title:d,initialMessage:g||void 0,rawInitialMessage:f||void 0,startupScript:aQ||void 0,attachmentNames:c,agentProvider:"codex",model:"",sessionMode:aY});if(!h.success){bb(h.error||"Failed to save session context"),a7(!1);return}let i=`/session/${e.sessionName}`;bD(),aH.push(i),a7(!1)}else bb(e.error||"Failed to create session worktree"),a7(!1)}catch(a){console.error(a),bb("Failed to start session"),a7(!1)}}},cg=()=>{cf()},ch=(0,c.useCallback)(()=>{bl(!1),bn(null),bp(""),bt(!1),bv(null)},[]),ci=async()=>{ch(),await cf({skipAgentSetup:!0})};(0,z.useDialogKeyboardShortcuts)({enabled:"new"===a&&bk&&!!bm,onConfirm:ci,onDismiss:ch,canConfirm:!a6}),(0,z.useDialogKeyboardShortcuts)({enabled:"home"===a&&x&&!!ax,onConfirm:cb,onDismiss:bH,canConfirm:!bA}),(0,z.useDialogKeyboardShortcuts)({enabled:"home"===a&&ah,onConfirm:bM,onDismiss:bJ,canConfirm:!ap&&aj.trim().length>0&&!ar});let cj=async a=>{if(av){a7(!0);try{let b=await (0,E.startTtydProcess)();if(!b.success){bb(b.error||"Failed to start ttyd"),a7(!1);return}let c=`/session/${a.sessionName}`;aH.push(c),a7(!1)}catch(a){console.error(a),bb("Failed to resume session"),a7(!1)}}},ck=async a=>{if(av&&confirm(`Delete session "${a.sessionName}"?
|
|
2
2
|
|
|
3
|
-
This will remove the worktree, branch, and session metadata.`)){a4(a.sessionName),a6(null);try{let b=await P(a.sessionName);if(!b.success)return void a6(b.error||"Failed to delete session");let c=await R(as);aG(c);let d=await R();aI(d),bw()}catch(a){console.error(a),a6("Failed to delete session")}finally{a4(null)}}},ce=(0,c.useMemo)(()=>{let a=new Map;for(let b of aH)a.set(b.repoPath,(a.get(b.repoPath)??0)+1);return a},[aH]),cf=aq?.recentRepos??[],cg=as?cf.includes(as)?cf:[as,...cf]:cf;return(0,b.jsxs)(b.Fragment,{children:["home"===a&&(0,b.jsx)("div",{className:"card w-full max-w-4xl bg-base-200 shadow-xl",children:(0,b.jsxs)("div",{className:"card-body",children:[(0,b.jsxs)("h2",{className:"card-title flex justify-between items-center",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)($.default,{src:"/icon.png",alt:"Viba",width:24,height:24,className:"rounded-sm"}),"Viba"]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2",onClick:()=>aA.push("/credentials"),title:"Manage GitHub/GitLab credentials",children:[(0,b.jsx)(n.KeyRound,{className:"w-4 h-4"}),"Credentials"]}),(0,b.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2",onClick:()=>w(!0),title:aq?.defaultRoot?`Default: ${aq.defaultRoot}`:"Set default browsing folder",children:[(0,b.jsx)(j,{className:"w-4 h-4"}),aq?.defaultRoot?"Change Default":"Set Default Root"]}),(0,b.jsxs)("button",{className:"btn btn-secondary btn-sm gap-2",onClick:bB,children:[(0,b.jsx)(q,{className:"w-4 h-4"})," Clone Remote Repo"]}),(0,b.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:()=>u(!0),children:[(0,b.jsx)(g.Plus,{className:"w-4 h-4"})," Open Local Repo"]})]})]}),a5&&(0,b.jsx)("div",{className:"alert alert-error text-sm py-2 px-3 mt-2",children:a5}),(0,b.jsx)("div",{className:"mt-4 space-y-4",children:(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold opacity-70 uppercase tracking-wide",children:"Recent Repositories"}),a9?aq&&0!==aq.recentRepos.length?(0,b.jsx)("div",{className:"flex flex-col gap-2",children:aq.recentRepos.map(a=>{let c=bz(a),d=ce.get(a)??0;return(0,b.jsxs)("div",{onClick:()=>bE(a),className:"flex items-center justify-between p-3 bg-base-100 hover:bg-base-300 rounded-md cursor-pointer group transition-all border border-base-300",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden shrink min-w-0",children:[(0,b.jsx)(e,{className:"w-5 h-5 text-secondary shrink-0"}),(0,b.jsxs)("div",{className:"flex flex-col overflow-hidden",children:[(0,b.jsx)("span",{className:"font-medium truncate",children:(0,y.getBaseName)(a)}),(0,b.jsx)("span",{className:"text-xs opacity-50 truncate",children:a}),(0,b.jsxs)("span",{className:"text-[10px] opacity-60 mt-0.5",children:["Credential: ",c]})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[d>0&&(0,b.jsx)("span",{className:"badge badge-sm badge-secondary",title:`${d} running session${1===d?"":"s"}`,children:d}),(0,b.jsx)("button",{onClick:b=>{b3(b,a)},className:"btn btn-circle btn-ghost btn-xs opacity-0 group-hover:opacity-100",title:"Repository settings",children:(0,b.jsx)(o,{className:"w-3 h-3"})}),(0,b.jsx)("button",{onClick:b=>b2(b,a),className:"btn btn-circle btn-ghost btn-xs opacity-0 group-hover:opacity-100 text-error",title:"Remove from history",children:(0,b.jsx)(h,{className:"w-3 h-3"})}),(0,b.jsx)(i,{className:"w-4 h-4 opacity-30"})]})]},a)})}):(0,b.jsx)("div",{className:"text-center py-8 text-base-content/40 italic bg-base-100 rounded-lg",children:"No recent repositories found."}):(0,b.jsx)("div",{className:"flex items-center justify-center py-8 bg-base-100 rounded-lg",children:(0,b.jsx)("span",{className:"loading loading-spinner loading-md"})})]})})]})}),"home"===a&&x&&au&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-base-content/60 p-4",children:(0,b.jsx)("div",{className:"w-full max-w-xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,b.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,b.jsx)("h3",{className:"text-xl font-semibold",children:"Repository Settings"}),(0,b.jsx)("p",{className:"text-sm opacity-75",children:"Choose which credential this repository should use for authenticated Git operations."}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs uppercase tracking-wide opacity-70",children:"Repository"}),(0,b.jsx)("div",{className:"rounded-md border border-base-300 bg-base-200 px-3 py-2 font-mono text-xs break-all",children:au})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs uppercase tracking-wide opacity-70",children:"Credential"}),(0,b.jsxs)("select",{className:"select select-bordered w-full",value:aw,onChange:a=>ax(a.target.value),disabled:bt,children:[(0,b.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),ay.map(a=>(0,b.jsx)("option",{value:a.id,children:_(a)},a.id))]}),0===ay.length&&!br&&(0,b.jsx)("div",{className:"text-xs opacity-60",children:"No credentials found. Add credentials from the Credentials page."})]}),br&&(0,b.jsxs)("div",{className:"text-sm opacity-70 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),bp&&(0,b.jsx)("div",{className:"alert alert-error text-sm py-2",children:bp}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,b.jsx)("button",{className:"btn btn-ghost",onClick:bA,disabled:bt,children:"Cancel"}),(0,b.jsxs)("button",{className:"btn btn-primary",onClick:()=>void b4(),disabled:bt||br,children:[bt?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}):null,"Save"]})]})]})})}),"home"===a&&ae&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-base-content/60 p-4",children:(0,b.jsx)("div",{className:"w-full max-w-xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,b.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,b.jsx)("h3",{className:"text-xl font-semibold",children:"Clone Remote Repository"}),(0,b.jsxs)("p",{className:"text-sm opacity-75",children:["Clone into ",(0,b.jsx)("span",{className:"font-mono",children:"~/.viba/repos"})," and open it as the selected repository."]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs uppercase tracking-wide opacity-70",children:"Remote URL"}),(0,b.jsx)("input",{className:"input input-bordered w-full font-mono text-sm",placeholder:"https://github.com/org/repo.git",value:ag,onChange:a=>ah(a.target.value),disabled:am})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs uppercase tracking-wide opacity-70",children:"Credential"}),(0,b.jsxs)("select",{className:"select select-bordered w-full",value:ai,onChange:a=>aj(a.target.value),disabled:am||ao,children:[(0,b.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),ay.map(a=>(0,b.jsx)("option",{value:a.id,children:_(a)},a.id))]}),0===ay.length&&!ao&&(0,b.jsx)("div",{className:"text-xs opacity-60",children:"No credentials found. Clone will use anonymous access unless remote auth is otherwise configured."})]}),ao&&(0,b.jsxs)("div",{className:"text-sm opacity-70 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),am&&(0,b.jsxs)("div",{className:"alert py-2 text-sm flex items-center gap-2",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Cloning repository..."]}),ak&&(0,b.jsx)("div",{className:"alert alert-error text-sm py-2",children:ak}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,b.jsx)("button",{className:"btn btn-ghost",onClick:bC,disabled:am,children:"Cancel"}),(0,b.jsxs)("button",{className:"btn btn-primary",onClick:()=>void bF(),disabled:am||!ag.trim()||ao,children:[am?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}):null,"Clone"]})]})]})})}),"new"===a&&as&&(0,b.jsxs)("div",{className:"w-full max-w-6xl space-y-4",children:[a5&&(0,b.jsx)("div",{className:"alert alert-error text-sm py-2 px-3",children:a5}),(0,b.jsxs)("div",{className:"flex flex-col gap-4 w-full",children:[(0,b.jsx)("div",{className:"card w-full bg-base-200 shadow-xl",children:(0,b.jsxs)("div",{className:"card-body",children:[(0,b.jsxs)("h2",{className:"card-title flex justify-between items-center",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e,{className:"w-6 h-6 text-primary"}),"Git Repository Selector"]}),(0,b.jsx)("button",{className:"btn btn-sm btn-ghost",onClick:()=>aA.push("/"),children:"Change Repo"})]}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"bg-base-100 p-4 rounded-lg border border-base-300 space-y-2",children:[(0,b.jsx)("label",{className:"text-xs opacity-50 uppercase tracking-widest",children:"Current Repository"}),(0,b.jsxs)("div",{className:"join w-full",children:[(0,b.jsx)("div",{className:"join-item bg-base-300 flex items-center px-3 border border-base-content/20 border-r-0",children:(0,b.jsx)(e,{className:"w-4 h-4 text-primary"})}),(0,b.jsx)("select",{className:"select select-bordered join-item w-full font-mono focus:outline-none",value:as,onChange:a=>{bG(a)},disabled:a1||0===cg.length,children:cg.map(a=>(0,b.jsx)("option",{value:a,children:(0,y.getBaseName)(a)},a))})]}),(0,b.jsx)("div",{className:"text-[10px] opacity-50 font-mono truncate px-1",title:as,children:as})]}),(0,b.jsxs)("div",{className:"bg-base-100 p-4 rounded-lg border border-base-300 space-y-2",children:[(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)("label",{className:"text-sm font-medium opacity-70 uppercase tracking-widest",children:"Current Branch"}),a1&&(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"})]}),(0,b.jsxs)("div",{className:"join w-full",children:[(0,b.jsx)("div",{className:"join-item bg-base-300 flex items-center px-3 border border-base-content/20 border-r-0",children:(0,b.jsx)(f.GitBranch,{className:"w-4 h-4"})}),(0,b.jsx)("select",{className:"select select-bordered join-item w-full font-mono focus:outline-none",value:aD,onChange:bK,disabled:a1,children:aB.map(a=>(0,b.jsxs)("option",{value:a.name,children:[a.name," ",a.current?"(checked out)":""]},a.name))})]}),(0,b.jsx)("div",{className:"text-[10px] opacity-50 px-1 italic",children:"Switching branches updates the working directory."})]})]})})]})}),aF.length>0&&(0,b.jsx)("div",{className:"card w-full bg-base-200 shadow-xl",children:(0,b.jsxs)("div",{className:"card-body",children:[(0,b.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,b.jsx)(m.Play,{className:"w-6 h-6 text-success"}),"Continue Existing Session"]}),(0,b.jsx)("div",{className:"flex flex-col gap-2 mt-4 max-h-64 overflow-y-auto",children:aF.map(a=>(0,b.jsx)("div",{className:"flex flex-col gap-2 p-3 bg-base-100 rounded-md border border-base-300",children:(0,b.jsxs)("div",{className:"flex justify-between items-start",children:[(0,b.jsxs)("div",{children:[a.title&&(0,b.jsx)("div",{className:"font-semibold",children:a.title}),(0,b.jsx)("div",{className:"text-xs opacity-60 font-mono",children:a.sessionName}),(0,b.jsxs)("div",{className:"text-xs opacity-60 mt-1",children:["Agent: ",a.agent]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{className:"btn btn-sm btn-success btn-outline gap-2",onClick:()=>cc(a),disabled:a1||a3===a.sessionName,children:[(0,b.jsx)(p.ExternalLink,{className:"w-3 h-3"})," Open"]}),(0,b.jsxs)("button",{className:"btn btn-sm btn-secondary btn-outline gap-2",onClick:()=>(a=>{if(!as)return;let b=`/new?repo=${encodeURIComponent(as)}&prefillFromSession=${encodeURIComponent(a.sessionName)}`;aA.push(b)})(a),disabled:a1||a3===a.sessionName,title:"Start a new attempt prefilled from this session",children:[(0,b.jsx)(g.Plus,{className:"w-3 h-3"})," New Attempt"]}),(0,b.jsxs)("button",{className:"btn btn-sm btn-error btn-outline gap-2",onClick:()=>cd(a),disabled:a1||a3===a.sessionName,children:[(0,b.jsx)(l.Trash2,{className:"w-3 h-3"}),a3===a.sessionName?"Deleting...":"Delete"]})]})]})},a.sessionName))})]})}),(0,b.jsx)("div",{className:"card w-full bg-base-200 shadow-xl",children:(0,b.jsxs)("div",{className:"card-body",children:[(0,b.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,b.jsx)(k,{className:"w-6 h-6 text-secondary"}),"Start New Session"]}),(0,b.jsxs)("div",{className:"mt-4 space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("button",{type:"button",className:"btn btn-ghost btn-sm px-2 h-auto min-h-0 normal-case justify-start gap-2",onClick:()=>aO(a=>!a),children:[(0,b.jsx)(i,{className:`w-4 h-4 transition-transform ${aN?"rotate-90":""}`}),aN?"Hide Session Setup":"Show Session Setup"]}),aN&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Start up script (Optional)"}),(0,b.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm",placeholder:"npm i",value:aJ,onChange:bL,onBlur:bM,onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&(a.preventDefault(),b9())},disabled:a1}),(0,b.jsx)("div",{className:"text-xs opacity-50 px-1",children:"Script to run in the terminal agent iframe upon startup."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Dev server script (Optional)"}),(0,b.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm",placeholder:"npm run dev",value:aL,onChange:a=>{aM(a.target.value)},onBlur:bO,onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&(a.preventDefault(),b9())},disabled:a1}),(0,b.jsx)("div",{className:"text-xs opacity-50 px-1",children:"Script for the Session View Start Dev Server button in the right terminal."})]})]})]}),(0,b.jsx)("div",{className:"divider"}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Session Mode"}),(0,b.jsxs)("select",{className:"select select-bordered w-full focus:outline-none",value:aT,onChange:a=>{let b="plan"===a.target.value?"plan":"fast";aU(b);try{window.localStorage.setItem(aa,b)}catch{}},disabled:a1,children:[(0,b.jsx)("option",{value:"fast",children:"Fast Mode (default)"}),(0,b.jsx)("option",{value:"plan",children:"Plan Mode"})]}),(0,b.jsx)("div",{className:"text-xs opacity-50 px-1",children:"plan"===aT?"Plan mode asks the agent to study the repo, propose a plan, and wait for your approval before implementation.":"Fast mode starts the agent with current behavior."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Title (Optional)"}),(0,b.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm",placeholder:"Task Title",value:aR,onChange:a=>aS(a.target.value),onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&(a.preventDefault(),b9())},disabled:a1})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Initial Message (Optional)"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("textarea",{className:"textarea textarea-bordered w-full h-64 font-mono text-sm leading-tight resize-none",placeholder:"Describe what you want the agent to do... Type @ to mention files.",value:aP,onChange:b0,onKeyDown:a=>{if((a.metaKey||a.ctrlKey)&&"Enter"===a.key){a.preventDefault(),b9();return}bR&&bT.length>0&&("ArrowUp"===a.key?(a.preventDefault(),bZ(a=>a>0?a-1:bT.length-1)):"ArrowDown"===a.key?(a.preventDefault(),bZ(a=>a<bT.length-1?a+1:0)):"Enter"===a.key||"Tab"===a.key?(a.preventDefault(),b1(bT[bY])):"Escape"===a.key&&(a.preventDefault(),bS(!1)))},onClick:a=>{bX(a.currentTarget.selectionStart),bS(!1)},onKeyUp:a=>bX(a.currentTarget.selectionStart),disabled:a1}),bR&&bT.length>0&&(0,b.jsx)("div",{className:"absolute left-0 right-0 z-50 mt-1 max-h-48 overflow-y-auto bg-base-100 border border-base-300 rounded-md shadow-lg",children:bT.map((a,c)=>(0,b.jsx)("button",{className:`w-full text-left px-3 py-2 text-xs border-b border-base-200 last:border-0 truncate ${c===bY?"bg-primary text-primary-content":"hover:bg-primary/10"}`,onMouseDown:b=>{b.preventDefault(),b1(a)},children:a},a))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium opacity-70",children:"Attachments (Optional)"}),(0,b.jsx)("input",{type:"file",multiple:!0,className:"file-input file-input-bordered w-full",onChange:a=>{a.target.files&&(bQ(Array.from(a.target.files).map((a,b)=>bP(a,b))),a.target.value="")},disabled:a1}),(0,b.jsx)("div",{className:"text-xs opacity-50 px-1",children:"Paste files from clipboard with Cmd/Ctrl+V anywhere on this page."}),aV.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-2 mt-2",children:aV.map((a,c)=>(0,b.jsxs)("span",{className:"badge badge-neutral gap-2 p-3",children:[a.name,(0,b.jsx)("button",{onClick:()=>{aW(a=>a.filter((a,b)=>b!==c))},className:"btn btn-ghost btn-xs btn-circle text-error",children:(0,b.jsx)(h,{className:"w-3 h-3"})})]},`upload-${c}`))}),aX.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-2 mt-2",children:aX.map((a,c)=>(0,b.jsxs)("span",{className:"badge badge-secondary gap-2 p-3",children:[a,(0,b.jsx)("button",{onClick:()=>{aY(a=>a.filter((a,b)=>b!==c))},className:"btn btn-ghost btn-xs btn-circle text-error",title:"Remove carried attachment",children:(0,b.jsx)(h,{className:"w-3 h-3"})})]},`prefill-${a}-${c}`))})]}),(0,b.jsx)("div",{className:"card-actions justify-end mt-4",children:(0,b.jsx)("button",{className:"btn btn-primary btn-wide shadow-lg",onClick:b9,disabled:a1,children:a1?(0,b.jsx)("span",{className:"loading loading-spinner"}):"Start Session"})})]})]})})]})]}),"new"===a&&!as&&(0,b.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,b.jsxs)("div",{className:"card-body",children:[a5&&(0,b.jsx)("div",{className:"alert alert-error text-sm py-2 px-3",children:a5}),(0,b.jsx)("h2",{className:"card-title",children:"Select a Repository"}),(0,b.jsx)("p",{className:"opacity-70 text-sm",children:"Choose a repository first, then start or resume a session."}),(0,b.jsx)("div",{className:"card-actions justify-end mt-4",children:(0,b.jsx)("button",{className:"btn btn-primary",onClick:()=>aA.push("/"),children:"Go to Home"})})]})}),"new"===a&&bb&&bd&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-base-content/45 px-4",children:(0,b.jsx)("div",{className:"w-full max-w-md rounded-xl border border-base-300 bg-base-100 p-6 shadow-2xl",children:(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("h3",{className:"text-lg font-semibold",children:["Installing ",ac[bd]]}),(0,b.jsx)("p",{className:"text-sm opacity-70",children:"Please wait while we install the coding agent CLI."})]})]})})}),"new"===a&&bf&&bh&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1001] flex items-center justify-center bg-base-content/60 p-4",children:(0,b.jsx)("div",{className:"w-full max-w-5xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,b.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,b.jsx)("h3",{className:"text-xl font-semibold",children:"Login Required"}),(0,b.jsxs)("p",{className:"text-sm opacity-80",children:[ac[bh]," has been installed. Complete login in the terminal below, then click Done to continue."]}),(0,b.jsxs)("p",{className:"text-xs opacity-60",children:["Command: ",(0,b.jsx)("span",{className:"font-mono",children:bj})]}),(0,b.jsx)("div",{className:"h-[420px] overflow-hidden rounded-lg border border-base-300 bg-base-200",children:(0,b.jsx)("iframe",{ref:bv,src:"/terminal",className:"h-full w-full border-none",allow:"clipboard-read; clipboard-write",onLoad:b5})}),bn&&(0,b.jsx)("div",{className:"alert alert-error text-sm py-2",children:bn}),!bn&&(0,b.jsx)("div",{className:"text-xs opacity-70",children:bl?"Login command was sent to the terminal automatically.":"Waiting for terminal to initialize..."}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)("button",{className:"btn btn-primary",onClick:()=>void cb(),disabled:a1,children:"Done"})})]})})}),"new"===a&&!as&&(!d||!!a5)&&(0,b.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,b.jsxs)("div",{className:"card-body",children:[(0,b.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,b.jsx)(e,{className:"w-6 h-6 text-primary"}),"Git Repository Selector"]}),a7?(0,b.jsxs)("div",{className:"alert text-sm py-2 px-3 mt-2 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-sm"}),r?`Searching for repository "${r}"...`:"Searching for repository..."]}):a5?(0,b.jsx)("div",{className:"alert alert-error text-sm py-2 px-3 mt-2",children:a5}):(0,b.jsx)("div",{className:"text-sm opacity-70 mt-2",children:"No repository specified."}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>aA.push("/"),children:"Choose Repository"})})]})}),"home"===a&&t&&(0,b.jsx)(A,{initialPath:aq?.defaultRoot||void 0,onSelect:bE,onCancel:()=>u(!1),checkRepo:B}),"home"===a&&v&&(0,b.jsx)(A,{title:"Default Root Folder",initialPath:aq?.defaultRoot||void 0,onSelect:bI,onCancel:()=>w(!1)})]})}a.s(["default",()=>ad],96514)}];
|
|
3
|
+
This will remove the worktree, branch, and session metadata.`)){a9(a.sessionName),bb(null);try{let b=await P(a.sessionName);if(!b.success)return void bb(b.error||"Failed to delete session");let c=await R(av);aN(c);let d=await R();aP(d),bD()}catch(a){console.error(a),bb("Failed to delete session")}finally{a9(null)}}},cl=(0,c.useMemo)(()=>{let a=new Map;for(let b of aO)a.set(b.repoPath,(a.get(b.repoPath)??0)+1);return a},[aO]),cm=(0,c.useMemo)(()=>at?.recentRepos??[],[at?.recentRepos]),cn=(0,c.useMemo)(()=>{let a=bq.trim().toLowerCase();return a?cm.filter(b=>(0,y.getBaseName)(b).toLowerCase().includes(a)||b.toLowerCase().includes(a)):cm},[bq,cm]),co=av?cm.includes(av)?cm:[av,...cm]:cm;return(0,b.jsxs)(b.Fragment,{children:["home"===a&&(0,b.jsx)("div",{className:"w-full max-w-7xl",children:(0,b.jsxs)("div",{className:"overflow-hidden rounded-[28px] border border-slate-200/80 bg-white shadow-[0_24px_80px_-36px_rgba(15,23,42,0.4)]",children:[(0,b.jsxs)("header",{className:"relative z-10 flex flex-col gap-4 border-b border-slate-200/80 px-4 py-4 md:flex-row md:items-center md:justify-between md:px-7",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-slate-100/90 shadow-sm",children:(0,b.jsx)(aa.default,{src:"/icon.png",alt:"Viba",width:22,height:22,className:"rounded-sm"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-xl font-semibold tracking-tight text-slate-900",children:"Viba"}),(0,b.jsx)("p",{className:"text-xs text-slate-500",children:"AI Coding Agent Dashboard"})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("label",{className:"input input-sm flex h-10 w-full items-center gap-2 border-slate-200 bg-slate-100/90 text-slate-700 shadow-none md:w-72",children:[(0,b.jsx)(q,{className:"h-4 w-4 text-slate-400"}),(0,b.jsx)("input",{type:"text",className:"grow text-sm",placeholder:"Search repositories...",value:bq,onChange:a=>br(a.target.value)})]}),(0,b.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2 text-slate-700",onClick:()=>aH.push("/credentials"),title:"Manage GitHub/GitLab credentials",children:[(0,b.jsx)(m.KeyRound,{className:"h-4 w-4"}),"Credentials"]}),(0,b.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:bI,children:[(0,b.jsx)(p,{className:"h-4 w-4"}),"New Repository"]})]})]}),(0,b.jsxs)("div",{className:"relative z-10 px-4 py-5 md:px-7 md:py-7",children:[ba&&(0,b.jsx)("div",{className:"mb-4 rounded-xl border border-red-200 bg-red-50 px-4 py-2 text-sm text-red-700",children:ba}),be?0===cn.length?(0,b.jsxs)("div",{className:"flex h-56 flex-col items-center justify-center rounded-2xl border border-slate-200 bg-white/70 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-slate-500",children:bq.trim()?"No repositories match your search.":"No recent repositories found."}),!bq.trim()&&(0,b.jsxs)("button",{className:"btn btn-primary btn-sm mt-3 gap-2",onClick:bI,children:[(0,b.jsx)(f.Plus,{className:"h-4 w-4"}),"Add your first repository"]})]}):(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-5 md:grid-cols-2 xl:grid-cols-3",children:[cn.map(a=>{let c,d,f=bG(a),i=cl.get(a)??0,j=(d=(c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return b>>>0}((0,y.getBaseName)(a).trim().toLowerCase()||"repo"))%360,{backgroundImage:`radial-gradient(circle at 15% 15%, ${$(d,32+c%16,90+(c>>>2)%3)} 0%, transparent 58%), radial-gradient(circle at 85% 82%, ${$((d+35+c%75)%360,30+(c>>>5)%16,87+(c>>>6)%4)} 0%, transparent 62%), linear-gradient(145deg, ${$((d+220+c%60)%360,24+(c>>>10)%14,93)} 0%, hsl(210 40% 98%) 100%)`});return(0,b.jsxs)("div",{onClick:()=>bL(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),bL(a))},role:"button",tabIndex:0,className:"group relative h-[248px] cursor-pointer overflow-hidden rounded-2xl border border-white/70 text-left shadow-[0_14px_40px_-24px_rgba(15,23,42,0.65)] transition-all duration-200 hover:-translate-y-1 hover:shadow-[0_24px_48px_-26px_rgba(15,23,42,0.55)]",style:j,children:[(0,b.jsx)("div",{className:"absolute inset-0 bg-white/40"}),(0,b.jsxs)("div",{className:"relative flex h-full flex-col justify-between p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-white/90 text-slate-700 shadow-sm",children:(0,b.jsx)(e,{className:"h-5 w-5"})}),i>0&&(0,b.jsx)("span",{className:"absolute -right-2 -top-2 inline-flex h-6 min-w-6 items-center justify-center rounded-full bg-emerald-500 px-1.5 text-[11px] font-bold text-white shadow-sm",title:`${i} running session${1===i?"":"s"}`,children:i})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:b=>{ca(b,a)},className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-600 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-slate-900 group-hover:opacity-100",title:"Repository settings",children:(0,b.jsx)(n,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{onClick:b=>b9(b,a),className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-500 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-rose-600 group-hover:opacity-100",title:"Remove from history",children:(0,b.jsx)(g,{className:"h-3.5 w-3.5"})})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("h3",{className:"truncate text-lg font-bold text-slate-900",children:(0,y.getBaseName)(a)}),(0,b.jsx)("p",{className:"truncate font-mono text-xs text-slate-600",children:a}),(0,b.jsxs)("p",{className:"truncate text-[11px] font-medium text-slate-500",children:["Credential: ",f]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between text-sm font-semibold text-slate-700",children:[(0,b.jsx)("span",{children:"Open repository"}),(0,b.jsx)(h.ChevronRight,{className:"h-4 w-4 transition-transform group-hover:translate-x-0.5"})]})]})]},a)}),(0,b.jsxs)("button",{onClick:bI,className:"group flex h-[248px] flex-col items-center justify-center gap-2 rounded-2xl border-2 border-dashed border-slate-300 bg-slate-50/70 text-slate-600 transition-all duration-200 hover:-translate-y-1 hover:border-primary/50 hover:bg-white",children:[(0,b.jsx)("span",{className:"flex h-14 w-14 items-center justify-center rounded-full bg-white shadow-sm transition-transform group-hover:scale-105",children:(0,b.jsx)(f.Plus,{className:"h-7 w-7 text-slate-400 transition-colors group-hover:text-primary"})}),(0,b.jsx)("span",{className:"text-lg font-semibold transition-colors group-hover:text-primary",children:"Add Repository"}),(0,b.jsx)("span",{className:"text-sm text-slate-400",children:"Import from local or git URL"})]})]}):(0,b.jsx)("div",{className:"flex h-56 items-center justify-center rounded-2xl border border-slate-200 bg-white/70",children:(0,b.jsx)("span",{className:"loading loading-spinner loading-md text-primary"})})]})]})}),"home"===a&&x&&ax&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-slate-900/35 p-4 backdrop-blur-sm",children:(0,b.jsxs)("div",{className:"w-full max-w-xl overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-100 bg-slate-50/70 px-5 py-4 md:px-6",children:[(0,b.jsx)("h3",{className:"text-lg font-bold text-slate-900",children:"Repository Settings"}),(0,b.jsx)("button",{className:"btn btn-circle btn-ghost btn-sm text-slate-500",onClick:bH,disabled:bA,children:(0,b.jsx)(g,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,b.jsx)("p",{className:"text-sm text-slate-600",children:"Choose which credential this repository should use for authenticated Git operations."}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Repository"}),(0,b.jsx)("div",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 font-mono text-xs text-slate-700 break-all",children:ax})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Credential"}),(0,b.jsxs)("select",{className:"select w-full border-slate-200 bg-slate-50 text-slate-700 focus:border-primary focus:outline-none",value:az,onChange:a=>aA(a.target.value),disabled:bA,children:[(0,b.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),aF.map(a=>(0,b.jsx)("option",{value:a.id,children:ad(a)},a.id))]}),0===aF.length&&!by&&(0,b.jsx)("div",{className:"text-xs text-slate-500",children:"No credentials found. Add credentials from the Credentials page."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Start Up Command"}),(0,b.jsx)("input",{className:"input w-full border-slate-200 bg-slate-50 font-mono text-sm text-slate-800 focus:border-primary focus:outline-none",value:aB,onChange:a=>aC(a.target.value),placeholder:ab,disabled:bA}),(0,b.jsxs)("div",{className:"text-xs text-slate-500",children:["Default: ",(0,b.jsx)("span",{className:"font-mono",children:ab})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Dev Server Command"}),(0,b.jsx)("input",{className:"input w-full border-slate-200 bg-slate-50 font-mono text-sm text-slate-800 focus:border-primary focus:outline-none",value:aD,onChange:a=>aE(a.target.value),placeholder:ac,disabled:bA}),(0,b.jsxs)("div",{className:"text-xs text-slate-500",children:["Default: ",(0,b.jsx)("span",{className:"font-mono",children:ac})]})]}),by&&(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-slate-500",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),bw&&(0,b.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",children:bw}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-slate-100 pt-4",children:[(0,b.jsx)("button",{className:"btn btn-ghost text-slate-700",onClick:bH,disabled:bA,children:"Cancel"}),(0,b.jsxs)("button",{className:"btn btn-primary",onClick:()=>void cb(),disabled:bA||by,children:[bA?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}):null,"Save"]})]})]})]})}),"home"===a&&ah&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-slate-900/40 p-4 backdrop-blur-sm",children:(0,b.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-100 bg-slate-50/60 px-5 py-4 md:px-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-lg font-bold text-slate-900",children:"Add New Repository"}),(0,b.jsx)("p",{className:"text-sm text-slate-500",children:"Connect a local folder or clone from URL"})]}),(0,b.jsx)("button",{className:"btn btn-circle btn-ghost btn-sm text-slate-500",onClick:bJ,disabled:ap,children:(0,b.jsx)(g,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col overflow-y-auto md:flex-row",children:[(0,b.jsxs)("div",{className:"flex-1 space-y-4 border-b border-slate-100 p-5 md:border-b-0 md:border-r md:p-6",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wide text-slate-500",children:"Browse Local"}),(0,b.jsx)("p",{className:"text-sm text-slate-600",children:"Select an existing Git repository folder from your local machine."}),(0,b.jsxs)("div",{className:"rounded-lg border border-slate-200 bg-slate-50 p-3 text-xs text-slate-600",children:["Default root: ",(0,b.jsx)("span",{className:"font-mono",children:at?.defaultRoot||"~"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:()=>{bJ(),u(!0)},children:[(0,b.jsx)(e,{className:"h-4 w-4"}),"Browse Local Repository"]}),(0,b.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2 text-slate-700",onClick:()=>{bJ(),w(!0)},children:[(0,b.jsx)(j,{className:"h-4 w-4"}),"Set Default Folder"]})]})]}),(0,b.jsxs)("div",{className:"w-full space-y-4 bg-slate-50/35 p-5 md:w-[420px] md:p-6",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wide text-slate-500",children:"Clone Remote"}),(0,b.jsxs)("p",{className:"text-sm text-slate-600",children:["Clone into ",(0,b.jsx)("span",{className:"font-mono",children:"~/.viba/repos"})," and open it immediately."]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Repository URL"}),(0,b.jsx)("input",{className:"input w-full border-slate-200 bg-white font-mono text-sm text-slate-800 focus:border-primary focus:outline-none",placeholder:"https://github.com/org/repo.git",value:aj,onChange:a=>ak(a.target.value),disabled:ap})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Credential"}),(0,b.jsxs)("select",{className:"select w-full border-slate-200 bg-white text-slate-700 focus:border-primary focus:outline-none",value:al,onChange:a=>am(a.target.value),disabled:ap||ar,children:[(0,b.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),aF.map(a=>(0,b.jsx)("option",{value:a.id,children:ad(a)},a.id))]}),0===aF.length&&!ar&&(0,b.jsx)("div",{className:"text-xs text-slate-500",children:"No credentials found. Clone uses anonymous access unless remote auth is configured."})]}),ar&&(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-slate-500",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),ap&&(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-600",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Cloning repository..."]}),an&&(0,b.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",children:an}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-slate-100 pt-4",children:[(0,b.jsx)("button",{className:"btn btn-ghost text-slate-700",onClick:bJ,disabled:ap,children:"Cancel"}),(0,b.jsxs)("button",{className:"btn btn-primary gap-2",onClick:()=>void bM(),disabled:ap||!aj.trim()||ar,children:[ap?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,b.jsx)(p,{className:"h-4 w-4"}),"Clone Repository"]})]})]})]})]})}),"new"===a&&av&&(0,b.jsxs)("div",{className:"w-full max-w-[1240px]",children:[ba&&(0,b.jsx)("div",{className:"mb-4 rounded-xl border border-red-200 bg-red-50 px-4 py-2 text-sm text-red-700",children:ba}),(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center gap-4",children:[(0,b.jsx)("button",{type:"button",className:"flex h-10 w-10 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-white hover:text-slate-900",onClick:()=>aH.push("/"),"aria-label":"Back to home",children:(0,b.jsx)(h.ChevronRight,{className:"h-6 w-6 rotate-180"})}),(0,b.jsx)("h1",{className:"text-3xl font-black tracking-[-0.02em] text-slate-900 md:text-4xl",children:"Assign New Task"})]}),(0,b.jsx)("p",{className:"ml-14 text-sm text-slate-500 md:text-base",children:"Configure the environment and describe the work required for your AI agent."})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-12",children:[(0,b.jsxs)("div",{className:"space-y-6 lg:col-span-4",children:[(0,b.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm",children:[(0,b.jsxs)("h3",{className:"mb-5 flex items-center gap-2 text-lg font-bold text-slate-900",children:[(0,b.jsx)(e,{className:"h-5 w-5 text-primary"}),"Context Setup"]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-slate-700",children:"Select Repository"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{className:"h-12 w-full appearance-none rounded-lg border border-slate-300 bg-white px-3 pr-10 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20",value:av,onChange:a=>{bN(a)},disabled:a6||0===co.length,children:co.map(a=>(0,b.jsx)("option",{value:a,children:(0,y.getBaseName)(a)},a))}),(0,b.jsx)(i.ChevronDown,{className:"pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500"})]}),(0,b.jsx)("span",{className:"truncate font-mono text-[11px] text-slate-500",title:av,children:av})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-slate-700",children:"Base Branch"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{className:"h-12 w-full appearance-none rounded-lg border border-slate-300 bg-white px-3 pr-10 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20",value:aK,onChange:bR,disabled:a6,children:aI.map(a=>(0,b.jsxs)("option",{value:a.name,children:[a.name,a.current?" (checked out)":""]},a.name))}),a6?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs absolute right-3 top-1/2 -translate-y-1/2"}):(0,b.jsx)(i.ChevronDown,{className:"pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500"})]})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-2 text-sm font-medium text-slate-600 transition-colors hover:text-slate-900",onClick:()=>aV(a=>!a),children:[(0,b.jsx)(h.ChevronRight,{className:`h-4 w-4 transition-transform ${aU?"rotate-90":""}`}),aU?"Hide Advanced Setup":"Show Session Setup"]}),aU&&(0,b.jsxs)("div",{className:"space-y-4 rounded-xl border border-slate-200 bg-slate-50 p-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Start Up Command"}),(0,b.jsx)("input",{type:"text",className:"h-10 rounded-lg border border-slate-300 bg-white px-3 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20",placeholder:"npm install",value:aQ,onChange:bS,onBlur:bT,onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&(a.preventDefault(),cg())},disabled:a6})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Dev Server Command"}),(0,b.jsx)("input",{type:"text",className:"h-10 rounded-lg border border-slate-300 bg-white px-3 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20",placeholder:"npm run dev",value:aS,onChange:a=>{aT(a.target.value)},onBlur:bV,onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&(a.preventDefault(),cg())},disabled:a6})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500",children:"Session Mode"}),(0,b.jsxs)("select",{className:"h-10 rounded-lg border border-slate-300 bg-white px-3 text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20",value:aY,onChange:a=>{let b="plan"===a.target.value?"plan":"fast";aZ(b);try{window.localStorage.setItem(ae,b)}catch{}},disabled:a6,children:[(0,b.jsx)("option",{value:"fast",children:"Fast Mode (default)"}),(0,b.jsx)("option",{value:"plan",children:"Plan Mode"})]})]})]})]})]}),(0,b.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm",children:[(0,b.jsx)("h3",{className:"mb-4 text-lg font-bold text-slate-900",children:"Ongoing Tasks"}),(0,b.jsxs)("div",{className:"space-y-2",children:[0===aM.length&&(0,b.jsx)("div",{className:"rounded-lg border border-dashed border-slate-200 bg-slate-50 px-3 py-4 text-sm text-slate-500",children:"No ongoing sessions for this repository."}),aM.map(a=>(0,b.jsxs)("div",{className:"group flex items-center gap-3 rounded-lg border border-transparent px-3 py-3 transition-colors hover:border-slate-100 hover:bg-slate-50",children:[(0,b.jsx)("div",{className:`h-2 w-2 flex-shrink-0 rounded-full ${a8===a.sessionName?"animate-pulse bg-amber-400":"bg-emerald-500"}`}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-slate-900",children:a.title||a.sessionName}),(0,b.jsxs)("p",{className:"truncate text-xs text-slate-500",children:[(0,y.getBaseName)(a.repoPath)," • ",a.agent]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",children:[(0,b.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-primary",title:"Open",onClick:()=>cj(a),disabled:a6||a8===a.sessionName,children:(0,b.jsx)(o.ExternalLink,{className:"h-4 w-4"})}),(0,b.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-amber-500",title:"New Attempt",onClick:()=>(a=>{if(!av)return;let b=`/new?repo=${encodeURIComponent(av)}&prefillFromSession=${encodeURIComponent(a.sessionName)}`;aH.push(b)})(a),disabled:a6||a8===a.sessionName,children:(0,b.jsx)(f.Plus,{className:"h-4 w-4"})}),(0,b.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-red-500",title:a8===a.sessionName?"Deleting...":"Delete",onClick:()=>ck(a),disabled:a6||a8===a.sessionName,children:(0,b.jsx)(l.Trash2,{className:"h-4 w-4"})})]})]},a.sessionName))]})]})]}),(0,b.jsx)("div",{className:"flex flex-col lg:col-span-8",children:(0,b.jsxs)("div",{className:"flex h-full flex-col rounded-2xl border border-slate-200 bg-white p-5 shadow-sm",children:[(0,b.jsxs)("label",{className:"mb-4 flex items-center gap-2 text-lg font-bold text-slate-900",htmlFor:"task-description",children:[(0,b.jsx)(k,{className:"h-5 w-5 text-primary"}),"Task Description"]}),(0,b.jsxs)("div",{className:"group relative mb-4 flex h-[360px] flex-grow flex-col md:h-[420px]",children:[(0,b.jsx)("textarea",{id:"task-description",className:"h-full w-full resize-none rounded-xl border border-slate-200 bg-slate-50 p-5 font-mono text-sm leading-relaxed text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/30",placeholder:`Describe the task for the AI agent...
|
|
4
|
+
Example:
|
|
5
|
+
1. Create a new component for the user profile card.
|
|
6
|
+
2. Ensure it fetches data from the /api/user endpoint.
|
|
7
|
+
3. Add error handling for failed requests.
|
|
8
|
+
|
|
9
|
+
Tip: Type @ to mention files.`,value:aW,onChange:b7,onKeyDown:a=>{if((a.metaKey||a.ctrlKey)&&"Enter"===a.key){a.preventDefault(),cg();return}bY&&b$.length>0&&("ArrowUp"===a.key?(a.preventDefault(),b4(a=>a>0?a-1:b$.length-1)):"ArrowDown"===a.key?(a.preventDefault(),b4(a=>a<b$.length-1?a+1:0)):"Enter"===a.key||"Tab"===a.key?(a.preventDefault(),b8(b$[b3])):"Escape"===a.key&&(a.preventDefault(),bZ(!1)))},onClick:a=>{b2(a.currentTarget.selectionStart),bZ(!1)},onKeyUp:a=>b2(a.currentTarget.selectionStart),disabled:a6}),bY&&b$.length>0&&(0,b.jsx)("div",{className:"absolute left-3 right-3 top-[calc(100%-8rem)] z-50 max-h-48 overflow-y-auto rounded-lg border border-slate-200 bg-white shadow-lg",children:b$.map((a,c)=>(0,b.jsx)("button",{className:`w-full truncate border-b border-slate-100 px-3 py-2 text-left text-xs last:border-0 ${c===b3?"bg-primary text-white":"text-slate-700 hover:bg-slate-50"}`,onMouseDown:b=>{b.preventDefault(),b8(a)},children:a},a))})]}),(0,b.jsxs)("div",{className:"border-t border-slate-100 pt-4",children:[(0,b.jsxs)("div",{className:"mb-3 flex flex-col items-start justify-between gap-2 sm:flex-row sm:items-center",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold text-slate-700",children:"Attachments"}),(0,b.jsxs)("label",{htmlFor:"new-session-attachments-input",className:"inline-flex cursor-pointer items-center gap-2 text-sm font-medium text-primary transition-colors hover:text-blue-700",children:[(0,b.jsx)(p,{className:"h-4 w-4"}),"Select Attachments"]}),(0,b.jsx)("input",{id:"new-session-attachments-input",type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&(bX(Array.from(a.target.files).map((a,b)=>bW(a,b))),a.target.value="")},disabled:a6})]}),(0,b.jsx)("div",{className:"min-h-[88px] rounded-xl border-2 border-dashed border-slate-200 bg-slate-50/70 p-3",children:(0,b.jsxs)("div",{className:"flex flex-wrap gap-3",children:[a$.map((a,c)=>(0,b.jsxs)("div",{className:"group relative w-20",children:[(0,b.jsxs)("div",{className:"relative flex h-20 w-20 items-center justify-center rounded-lg border border-slate-200 bg-white",children:[(0,b.jsx)("span",{className:"px-2 text-center text-[11px] font-medium text-slate-700",children:a.name.split(".").pop()?.toUpperCase()||"FILE"}),(0,b.jsx)("button",{type:"button",className:"absolute right-1 top-1 rounded-full bg-slate-100 p-0.5 text-slate-500 opacity-0 transition hover:text-red-500 group-hover:opacity-100",onClick:()=>{a_(a=>a.filter((a,b)=>b!==c))},title:"Remove attachment",children:(0,b.jsx)(g,{className:"h-3 w-3"})})]}),(0,b.jsx)("span",{className:"mt-1 block truncate text-center text-[10px] text-slate-600",children:a.name})]},`upload-${c}`)),a0.map((a,c)=>(0,b.jsxs)("div",{className:"group relative w-20",children:[(0,b.jsxs)("div",{className:"relative flex h-20 w-20 items-center justify-center rounded-lg border border-slate-200 bg-white",children:[(0,b.jsx)("span",{className:"px-2 text-center text-[11px] font-medium text-slate-700",children:a.split(".").pop()?.toUpperCase()||"FILE"}),(0,b.jsx)("button",{type:"button",className:"absolute right-1 top-1 rounded-full bg-slate-100 p-0.5 text-slate-500 opacity-0 transition hover:text-red-500 group-hover:opacity-100",onClick:()=>{a1(a=>a.filter((a,b)=>b!==c))},title:"Remove carried attachment",children:(0,b.jsx)(g,{className:"h-3 w-3"})})]}),(0,b.jsx)("span",{className:"mt-1 block truncate text-center text-[10px] text-slate-600",children:a})]},`prefill-${a}-${c}`)),(0,b.jsxs)("label",{htmlFor:"new-session-attachments-input",className:"flex h-20 w-20 cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-slate-300 text-slate-400 transition hover:border-primary hover:bg-primary/5 hover:text-primary",children:[(0,b.jsx)(f.Plus,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"text-[9px] font-semibold uppercase",children:"Add File"})]})]})}),(0,b.jsx)("div",{className:"mt-2 text-xs text-slate-500",children:"Paste files from clipboard with Cmd/Ctrl+V anywhere on this page."})]}),(0,b.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-3 border-t border-slate-100 pt-5",children:[(0,b.jsxs)("span",{className:"mr-auto hidden text-xs text-slate-400 sm:block",children:["Press ",(0,b.jsx)("kbd",{className:"rounded border border-slate-200 bg-slate-100 px-2 py-1 font-sans text-[11px]",children:"Ctrl + Enter"})," to submit"]}),(0,b.jsx)("button",{type:"button",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2 text-sm font-semibold text-white shadow-md shadow-primary/20 transition hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-70",onClick:cg,disabled:a6,children:a6?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}):"Create New Task"})]})]})})]})]}),"new"===a&&!av&&!!d&&!ba&&(0,b.jsx)("div",{className:"w-full max-w-2xl rounded-2xl border border-slate-200 bg-white p-8 shadow-sm",children:(0,b.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,b.jsx)("h2",{className:"text-lg font-semibold text-slate-900",children:"Loading repository..."}),(0,b.jsx)("p",{className:"text-sm text-slate-500",children:"Preparing your task workspace."})]})}),"new"===a&&bg&&bi&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-base-content/45 px-4",children:(0,b.jsx)("div",{className:"w-full max-w-md rounded-xl border border-base-300 bg-base-100 p-6 shadow-2xl",children:(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("h3",{className:"text-lg font-semibold",children:["Installing ",ag[bi]]}),(0,b.jsx)("p",{className:"text-sm opacity-70",children:"Please wait while we install the coding agent CLI."})]})]})})}),"new"===a&&bk&&bm&&(0,b.jsx)("div",{className:"fixed inset-0 z-[1001] flex items-center justify-center bg-base-content/60 p-4",children:(0,b.jsx)("div",{className:"w-full max-w-5xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,b.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,b.jsx)("h3",{className:"text-xl font-semibold",children:"Login Required"}),(0,b.jsxs)("p",{className:"text-sm opacity-80",children:[ag[bm]," has been installed. Complete login in the terminal below, then click Done to continue."]}),(0,b.jsxs)("p",{className:"text-xs opacity-60",children:["Command: ",(0,b.jsx)("span",{className:"font-mono",children:bo})]}),(0,b.jsx)("div",{className:"h-[420px] overflow-hidden rounded-lg border border-base-300 bg-base-200",children:(0,b.jsx)("iframe",{ref:bC,src:"/terminal",className:"h-full w-full border-none",allow:"clipboard-read; clipboard-write",onLoad:cc})}),bu&&(0,b.jsx)("div",{className:"alert alert-error text-sm py-2",children:bu}),!bu&&(0,b.jsx)("div",{className:"text-xs opacity-70",children:bs?"Login command was sent to the terminal automatically.":"Waiting for terminal to initialize..."}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)("button",{className:"btn btn-primary",onClick:()=>void ci(),disabled:a6,children:"Done"})})]})})}),"new"===a&&!av&&(!d||!!ba)&&(0,b.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,b.jsxs)("div",{className:"card-body",children:[(0,b.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,b.jsx)(e,{className:"w-6 h-6 text-primary"}),"Git Repository Selector"]}),bc?(0,b.jsxs)("div",{className:"alert text-sm py-2 px-3 mt-2 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"loading loading-spinner loading-sm"}),r?`Searching for repository "${r}"...`:"Searching for repository..."]}):ba?(0,b.jsx)("div",{className:"alert alert-error text-sm py-2 px-3 mt-2",children:ba}):(0,b.jsx)("div",{className:"text-sm opacity-70 mt-2",children:"No repository specified."}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>aH.push("/"),children:"Choose Repository"})})]})}),"home"===a&&t&&(0,b.jsx)(A,{initialPath:at?.defaultRoot||void 0,onSelect:bL,onCancel:()=>u(!1),checkRepo:B}),"home"===a&&v&&(0,b.jsx)(A,{title:"Default Root Folder",initialPath:at?.defaultRoot||void 0,onSelect:bP,onCancel:()=>w(!1)})]})}a.s(["default",()=>ah],96514)}];
|
|
4
10
|
|
|
5
11
|
//# sourceMappingURL=src_components_GitRepoSelector_tsx_05c81afa._.js.map
|