viba-cli 0.7.0 → 0.8.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.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- 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 +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new/page/server-reference-manifest.json +23 -23
- package/.next/server/app/new/page.js +1 -1
- 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 +23 -23
- package/.next/server/app/page.js +1 -1
- 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 +17 -17
- package/.next/server/app/session/[sessionId]/page.js +1 -1
- 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]__36769160._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__36769160._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__41b2f23a._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__41b2f23a._.js.map +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__d050ef76._.js → [root-of-the-server]__528f3aa4._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__d050ef76._.js.map → [root-of-the-server]__528f3aa4._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__8174ed94._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__8174ed94._.js.map +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__fedccef4._.js → [root-of-the-server]__f1bfaf02._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__fedccef4._.js.map → [root-of-the-server]__f1bfaf02._.js.map} +1 -1
- package/.next/server/chunks/ssr/{_eec59082._.js → _3819cc0f._.js} +3 -3
- package/.next/server/chunks/ssr/{_eec59082._.js.map → _3819cc0f._.js.map} +1 -1
- package/.next/server/chunks/ssr/{_10959ad1._.js → _44154301._.js} +2 -2
- package/.next/server/chunks/ssr/{_10959ad1._.js.map → _44154301._.js.map} +1 -1
- package/.next/server/chunks/ssr/{_26ea44d4._.js → _782ca804._.js} +2 -2
- package/.next/server/chunks/ssr/{_26ea44d4._.js.map → _782ca804._.js.map} +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +2 -2
- 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 +1 -1
- 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 +36 -36
- package/.next/static/chunks/{51412f0d40e61752.js → 6dfe6be0458c7506.js} +3 -3
- package/.next/static/chunks/{e8ae5f3295b07660.js → 800bdfe84e30a5fa.js} +1 -1
- package/.next/static/chunks/{61955dd121e7694e.js → 8cc2a20e51da8dab.js} +2 -2
- package/.next/static/chunks/d57d32332080776c.js +3 -0
- package/.next/static/chunks/{250a6b7dbee6d40a.js → f61d984b4435e61d.js} +2 -2
- package/README.md +2 -2
- package/bin/viba.mjs +30 -23
- package/package.json +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ef9ee460._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ef9ee460._.js.map +0 -1
- package/.next/static/chunks/2e1f57afdfdadc44.js +0 -3
- /package/.next/static/{lmo2PE5qBiau0B18MyHY0 → Xe9W13zKv2qP1o6wN_YEA}/_buildManifest.js +0 -0
- /package/.next/static/{lmo2PE5qBiau0B18MyHY0 → Xe9W13zKv2qP1o6wN_YEA}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{lmo2PE5qBiau0B18MyHY0 → Xe9W13zKv2qP1o6wN_YEA}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36438,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(18566),n=e.i(95187);let s=(0,n.createServerReference)("4080f30965531c84cb50b1c989974a6044e7b67698",n.callServer,void 0,n.findSourceMapURL,"deleteSessionInBackground"),i=(0,n.createServerReference)("4078f4a3f36ff93bb764b982f6a48d555d8dd37763",n.callServer,void 0,n.findSourceMapURL,"getSessionDivergence"),o=(0,n.createServerReference)("40796f533a22555fc1d21e5582320a88ec6a30d8b2",n.callServer,void 0,n.findSourceMapURL,"getSessionUncommittedFileCount"),l=(0,n.createServerReference)("40a1335a1e3e60dc00c6e97edc26331047827fc33f",n.callServer,void 0,n.findSourceMapURL,"listSessionBaseBranches"),c=(0,n.createServerReference)("406d0132feb29302f5e4fa6dd18e08e3f806bb9f96",n.callServer,void 0,n.findSourceMapURL,"mergeSessionToBase"),d=(0,n.createServerReference)("4077f6780d85da4631b6c37ae999be92516a4e7149",n.callServer,void 0,n.findSourceMapURL,"rebaseSessionOntoBase"),u=(0,n.createServerReference)("60536d40a4bb494aa5aaa1c720b229b7208dc13778",n.callServer,void 0,n.findSourceMapURL,"updateSessionBaseBranch"),h=(0,n.createServerReference)("60b60ec457e8634b8a85f37e92b7a1bc033666a3a2",n.callServer,void 0,n.findSourceMapURL,"writeSessionPromptFile");var m=e.i(11607),p=e.i(78669),f=e.i(27612),b=e.i(75254);let x=(0,b.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var v=e.i(31343);let w=(0,b.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]),g=(0,b.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),y=(0,b.default)("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]]);var j=e.i(55716);let k=(0,b.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),N=(0,b.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),S=(0,b.default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),C=(0,b.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),$=(0,b.default)("grip",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"19",cy:"5",r:"1",key:"w8mnmm"}],["circle",{cx:"5",cy:"5",r:"1",key:"lttvr7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}],["circle",{cx:"19",cy:"19",r:"1",key:"shf9b7"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]),M=(0,b.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var R=e.i(7233);let E=(0,b.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),L=(0,b.default)("mouse-pointer-2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]);var P=e.i(71689);let F=(0,b.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),D=(0,b.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var z=e.i(57688),A=e.i(8043);let q=(0,n.createServerReference)("40024a74a076553ddc0a054ddc034fd02410f0a4eb",n.callServer,void 0,n.findSourceMapURL,"listPathEntries");var B=e.i(73708);let I=(0,b.default)("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),U=(0,b.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var T=e.i(27025);let W=(0,b.default)("grid-2x2",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),H=(0,b.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]),K=(0,b.default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),O=(0,b.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),_=(0,b.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var V=e.i(81016);let G="viba:session-file-browser:view-mode";function X({initialPath:e,worktreePath:a,onConfirm:n,onCancel:s,onPathChange:i}){let o=(0,r.useMemo)(()=>new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".svg",".ico",".avif"]),[]),[l,c]=(0,r.useState)(""),[d,u]=(0,r.useState)([]),[h,f]=(0,r.useState)(!1),[b,x]=(0,r.useState)(null),[v,w]=(0,r.useState)(""),[g,y]=(0,r.useState)([]),[j,k]=(0,r.useState)(null),[N,S]=(0,r.useState)("list"),[C,$]=(0,r.useState)(!1),[M,R]=(0,r.useState)({}),[E,L]=(0,r.useState)([]);(0,r.useEffect)(()=>{let t=!0;return(async()=>{try{let r=await (0,A.getHomeDirectory)();if(!t)return;w(r),e||c(r)}catch(e){console.error("Failed to resolve home directory:",e)}e&&t&&c(e)})(),()=>{t=!1}},[e]),(0,r.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await (0,m.getConfig)();if(!e)return;let r=Array.isArray(t.pinnedFolderShortcuts)?t.pinnedFolderShortcuts.filter(e=>"string"==typeof e&&e.trim().length>0):[];L(Array.from(new Set(r)))}catch(e){console.error("Failed to load pinned folder shortcuts:",e)}})(),()=>{e=!1}},[]),(0,r.useEffect)(()=>{try{let e=localStorage.getItem(G);("list"===e||"grid"===e)&&S(e)}catch{}finally{$(!0)}},[]),(0,r.useEffect)(()=>{if(C)try{localStorage.setItem(G,N)}catch{}},[C,N]),(0,r.useEffect)(()=>{l&&(async()=>{f(!0),x(null);try{let e=await q(l);u(e)}catch(e){console.error("Failed to list files:",e),x("Failed to load directory contents")}finally{f(!1)}})()},[l]),(0,r.useEffect)(()=>{l&&i?.(l)},[l,i]),(0,r.useEffect)(()=>{y([]),k(null),R({})},[l]);let F=(0,r.useMemo)(()=>new Set(g),[g]),D=(e,t,r)=>{if(e.isDirectory)return void c(e.path);let a=r.metaKey||r.ctrlKey;if(r.shiftKey&&null!==j){let e=Math.min(j,t),r=Math.max(j,t);y(d.slice(e,r+1).filter(e=>!e.isDirectory).map(e=>e.path));return}if(a){y(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path]),k(t);return}y([e.path]),k(t)},X=async()=>{if(x(null),!a)return void x("Cannot paste: Session worktree path is missing.");try{if(f(!0),!navigator.clipboard||!navigator.clipboard.read)throw Error("Clipboard API not supported in this browser");let e=await navigator.clipboard.read(),t=new FormData,r=!1;for(let a of e)for(let e of a.types)if(e.startsWith("image/")){let n=await a.getType(e),s=e.split("/")[1]||"png",i=`pasted-image-${Date.now()}.${s}`,o=new File([n],i,{type:e});t.append(i,o),r=!0;break}if(r){let e=await (0,B.saveAttachments)(a,t);if(e&&e.length>0)return void await n(e);x("Failed to save pasted files.")}else try{let e=await navigator.clipboard.readText();e&&e.trim().startsWith("/")?x("No file content found in clipboard. Copy an image or file first."):x("No file content found in clipboard.")}catch{x("No file content found in clipboard.")}}catch(t){let e=t instanceof Error?t.message:String(t);console.error("Paste error:",t),x(`Failed to read from clipboard: ${e}`)}finally{f(!1)}},Y=async e=>{L(e);try{await (0,p.updateConfig)({pinnedFolderShortcuts:e})}catch(e){console.error("Failed to save pinned folder shortcuts:",e),x("Failed to save pinned shortcuts")}},J=async e=>{(x(null),E.includes(e))?await Y(E.filter(t=>t!==e)):await Y([...E,e])},Z=async()=>{0!==g.length&&await n(g)};return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,t.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-5xl h-[82vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,t.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,t.jsx)(T.Folder,{className:"w-5 h-5"}),"Browse Files"]}),(0,t.jsx)("button",{onClick:s,className:"btn btn-sm btn-ghost btn-circle",title:"Close file browser",children:"✕"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,t.jsx)("button",{onClick:()=>{let e=(0,V.getDirName)(l);e&&e!==l&&c(e)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===l||!l,children:(0,t.jsx)(P.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsxs)("button",{onClick:()=>{v&&l!==v&&c(v)},className:"btn btn-sm btn-ghost gap-1",title:v?`Go to Home Folder (${v})`:"Go to Home Folder",disabled:!v||l===v,children:[(0,t.jsx)(H,{className:"w-4 h-4"}),"Home"]}),(0,t.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:l}),(0,t.jsxs)("div",{className:"join",children:[(0,t.jsx)("button",{type:"button",onClick:()=>S("list"),className:`btn btn-sm join-item ${"list"===N?"btn-active":"btn-ghost"}`,title:"List view",children:(0,t.jsx)(K,{className:"w-4 h-4"})}),(0,t.jsx)("button",{type:"button",onClick:()=>S("grid"),className:`btn btn-sm join-item ${"grid"===N?"btn-active":"btn-ghost"}`,title:"Grid view",children:(0,t.jsx)(W,{className:"w-4 h-4"})})]}),(0,t.jsxs)("button",{onClick:Z,className:"btn btn-sm btn-primary gap-2",disabled:0===g.length,title:"Insert selected absolute paths",children:["Insert (",g.length,")"]}),(0,t.jsx)("div",{className:"w-[1px] h-6 bg-base-content/10 mx-1"}),(0,t.jsxs)("button",{onClick:X,className:"btn btn-sm btn-ghost gap-2",title:"Paste file/image from clipboard",disabled:!a,children:[(0,t.jsx)(I,{className:"w-4 h-4"}),"Paste"]})]}),E.length>0&&(0,t.jsx)("div",{className:"px-3 py-2 border-b border-base-300 bg-base-200/50",children:(0,t.jsx)("div",{className:"flex items-center gap-2 overflow-x-auto",children:E.map(e=>{let r=e===l,a=e.split(/[\\/]/).filter(Boolean).pop()||e;return(0,t.jsxs)("div",{className:"join shrink-0",children:[(0,t.jsxs)("button",{type:"button",className:`btn btn-xs join-item ${r?"btn-primary":"btn-ghost"}`,onClick:()=>c(e),title:e,children:[(0,t.jsx)(T.Folder,{className:"w-3 h-3"}),a]}),(0,t.jsx)("button",{type:"button",className:"btn btn-xs btn-ghost join-item",onClick:()=>void J(e),title:`Unpin ${e}`,children:(0,t.jsx)(_,{className:"w-3 h-3"})})]},e)})})}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:h?(0,t.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):b?(0,t.jsx)("div",{className:"alert alert-error",children:b}):0===d.length?(0,t.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):"list"===N?(0,t.jsx)("div",{className:"grid grid-cols-1 gap-1",children:d.map((e,r)=>{let a=F.has(e.path);return(0,t.jsxs)("div",{className:`flex items-center justify-between p-2 rounded-md cursor-pointer transition-colors border ${a?"bg-primary text-primary-content border-primary":"hover:bg-base-100 border-transparent"}`,onClick:t=>D(e,r,t),title:e.path,children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[e.isDirectory?(0,t.jsx)(T.Folder,{className:"w-5 h-5 shrink-0"}):(0,t.jsx)(U,{className:"w-5 h-5 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]}),(0,t.jsx)("span",{className:"text-[10px] opacity-70 shrink-0",children:e.isDirectory?(0,t.jsx)("button",{type:"button",className:"btn btn-ghost btn-xs h-6 min-h-6",onClick:t=>{t.stopPropagation(),J(e.path)},title:E.includes(e.path)?"Unpin folder":"Pin folder",children:(0,t.jsx)(O,{className:`w-3 h-3 ${E.includes(e.path)?"fill-current":""}`})}):"file"})]},e.path)})}):(0,t.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-3",children:d.map((e,r)=>{var a;let n,s=F.has(e.path),i=!e.isDirectory&&-1!==(n=(a=e.name).lastIndexOf("."))&&o.has(a.slice(n).toLowerCase()),l=`/api/file-thumbnail?path=${encodeURIComponent(e.path)}`;return(0,t.jsxs)("button",{type:"button",className:`rounded-lg border text-left overflow-hidden transition-colors ${s?"border-primary bg-primary/15":"border-base-300 hover:bg-base-100"}`,onClick:t=>D(e,r,t),title:e.path,children:[(0,t.jsxs)("div",{className:"aspect-square bg-base-300 flex items-center justify-center overflow-hidden relative",children:[i&&!M[e.path]?(0,t.jsx)(z.default,{src:l,alt:e.name,fill:!0,sizes:"(max-width: 768px) 50vw, (max-width: 1024px) 25vw, 20vw",className:"object-cover",unoptimized:!0,onError:()=>R(t=>({...t,[e.path]:!0}))}):e.isDirectory?(0,t.jsx)(T.Folder,{className:"w-10 h-10 opacity-80"}):(0,t.jsx)(U,{className:"w-10 h-10 opacity-80"}),e.isDirectory&&(0,t.jsx)("button",{type:"button",className:`absolute top-1 right-1 btn btn-xs btn-circle ${E.includes(e.path)?"btn-primary":"btn-ghost bg-base-100/70"}`,onClick:t=>{t.stopPropagation(),J(e.path)},title:E.includes(e.path)?"Unpin folder":"Pin folder",children:(0,t.jsx)(O,{className:`w-3 h-3 ${E.includes(e.path)?"fill-current":""}`})})]}),(0,t.jsxs)("div",{className:"px-2 py-2",children:[(0,t.jsx)("div",{className:"truncate text-sm font-medium",title:e.name,children:e.name}),(0,t.jsx)("div",{className:"text-[10px] opacity-70",children:e.isDirectory?"folder":i?"image":"file"})]})]},e.path)})})}),(0,t.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/60 text-center",children:"Click: single select. Cmd/Ctrl+Click: multi-select. Shift+Click: range select. Click a folder to open it."})]})})}var Y=e.i(63671);function J(e,t){var r,a;let n=(r=e,a=t,`viba-${(r.trim().replace(/[^a-zA-Z0-9_-]/g,"-")||"session").slice(0,40)}-${a}`),s=new URLSearchParams;return s.append("arg","new-session"),s.append("arg","-A"),s.append("arg","-s"),s.append("arg",n),`/terminal?${s.toString()}`}let Z=[{id:"vscode",name:"VS Code",protocol:"vscode"},{id:"cursor",name:"Cursor",protocol:"cursor"},{id:"windsurf",name:"Windsurf",protocol:"windsurf"},{id:"antigravity",name:"Antigravity",protocol:"antigravity"}],Q=e=>`'${e.replace(/'/g,"'\\''")}'`,ee="viba-terminal-size",et="viba-agent-preview-split-ratio",er=e=>Math.max(.2,Math.min(.8,e)),ea=e=>{let t=e.trim();return t?/^https?:\/\//i.test(t)?t:/^[a-z][a-z0-9+.-]*:/i.test(t)?null:`http://${t}`:null},en=(e,t)=>{let r=e.replace(/\\/g,"/").replace(/\/+$/,""),a=t.replace(/\\/g,"/").replace(/^\/+/,"");return`${r}/${a}`},es=(e,t)=>{let r=t.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!r)return null;let a=(e=>{let t=e.trim();if(!t)return"";if(t=t.replace(/[#?].*$/,""),/^file:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}else if(/^https?:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}return(t=t.replace(/^webpack(?:-internal)?:\/\/\/?/,"").replace(/^rsc:\/\//,"").replace(/^\(.*?\)\//,"").replace(/^\/\.\//,"/").replace(/^\.\//,"").replace(/\\/g,"/")).trim()})(e);if(!a)return null;if(a.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(a))return a;let n=new Set;n.add(a.replace(/^\.\/+/,""));let s=a.indexOf("/src/");for(let e of(s>=0&&n.add(a.slice(s+1)),a.startsWith("src/")&&n.add(a),n))if(e)return en(r,e);return null},ei=e=>{let t=e.trim();if(!t)return"";let r=t.match(/[A-Za-z_$][\w$]*/);return r?r[0]:""};function eo({repo:e,worktree:a,branch:n,baseBranch:b,sessionName:z,agent:A,model:q,startupScript:B,devServerScript:I,initialMessage:U,rawInitialMessage:T,title:W,attachmentNames:H,onExit:K,isResume:O,terminalPersistenceMode:_="shell",onSessionStart:G}){let en="hidden min-[1900px]:inline",eo=(0,r.useRef)(null),el=(0,r.useRef)(null),ec=(0,r.useRef)(null),ed=(0,r.useRef)(null),eu=(0,r.useRef)(null),eh=(0,r.useRef)({startX:0,startRatio:.5}),em=(0,r.useRef)(null),ep=(0,r.useRef)(null),ef=(0,r.useMemo)(()=>J(z,"agent"),[z]),eb=(0,r.useMemo)(()=>J(z,"terminal"),[z]),ex=(0,r.useCallback)(e=>`viba:terminal-bootstrap:${z}:${e}`,[z]),ev=(0,r.useCallback)(e=>{try{return"1"===window.sessionStorage.getItem(ex(e))}catch{return!1}},[ex]),ew=(0,r.useCallback)(e=>{try{window.sessionStorage.setItem(ex(e),"1")}catch{}},[ex]),[eg,ey]=(0,r.useState)("Initializing..."),[ej,ek]=(0,r.useState)("idle"),[eN,eS]=(0,r.useState)(null),[eC,e$]=(0,r.useState)(!1),[eM,eR]=(0,r.useState)(!1),[eE,eL]=(0,r.useState)(!1),[eP,eF]=(0,r.useState)(!1),[eD,ez]=(0,r.useState)(!1),[eA,eq]=(0,r.useState)(a||e),[eB,eI]=(0,r.useState)(!1),[eU,eT]=(0,r.useState)(b?.trim()||""),[eW,eH]=(0,r.useState)([]),[eK,eO]=(0,r.useState)(!1),e_=(0,r.useRef)(!1),[eV,eG]=(0,r.useState)(!1),[eX,eY]=(0,r.useState)({ahead:0,behind:0}),[eJ,eZ]=(0,r.useState)(0),[eQ,e0]=(0,r.useState)(!1),[e1,e2]=(0,r.useState)(""),[e3,e6]=(0,r.useState)(""),[e4,e5]=(0,r.useState)(!1),[e7,e9]=(0,r.useState)(!1),[e8,te]=(0,r.useState)(.5),[tt,tr]=(0,r.useState)(!1),[ta,tn]=(0,r.useState)(!0),[ts,ti]=(0,r.useState)({width:460,height:320}),[to,tl]=(0,r.useState)(!1),[tc,td]=(0,r.useState)(!1),tu=(0,r.useRef)({startX:0,startY:0,startWidth:0,startHeight:0});(0,r.useEffect)(()=>{eq(a||e)},[e,a]),(0,r.useEffect)(()=>{let e=localStorage.getItem(ee);if(e)try{ti(JSON.parse(e))}catch(e){console.error("Failed to parse saved terminal size",e)}let t=localStorage.getItem(et);if(t){let e=Number.parseFloat(t);Number.isNaN(e)||te(er(e))}td(!0)},[]),(0,r.useEffect)(()=>{if(!to)return;let e=e=>{let t=tu.current.startX-e.clientX,r=tu.current.startY-e.clientY;ti({width:Math.max(300,Math.min(window.innerWidth-32,tu.current.startWidth+t)),height:Math.max(100,Math.min(window.innerHeight-32,tu.current.startHeight+r))})},t=()=>{tl(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[to]),(0,r.useEffect)(()=>{tc&&!to&&localStorage.setItem(ee,JSON.stringify(ts))},[tc,to,ts]),(0,r.useEffect)(()=>{tc&&!tt&&localStorage.setItem(et,String(e8))},[e8,tc,tt]),(0,r.useEffect)(()=>{if(!tt)return;let e=e=>{let t=eu.current;if(!t)return;let r=t.getBoundingClientRect();if(r.width<=0)return;let a=e.clientX-eh.current.startX;te(er((eh.current.startRatio*r.width+a)/r.width))},t=()=>{tr(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[tt]),(0,r.useEffect)(()=>{if(!ta&&el.current){let e=el.current;setTimeout(()=>{try{let t=e.contentWindow;if(t&&t.term){t.term.scrollToBottom(),t.focus();let r=e.contentDocument?.querySelector("textarea.xterm-helper-textarea");r&&r.focus()}}catch(e){console.error("Failed to focus/scroll terminal on restore:",e)}},100)}},[ta]);let[th,tm]=(0,r.useState)("vscode");(0,r.useEffect)(()=>{let e=W?.trim();if(e)return document.title=`${e} | Viba`,()=>{document.title="Viba"};document.title="Viba"},[W]),(0,r.useEffect)(()=>{(async()=>{let e=await (0,m.getConfig)();e.selectedIde&&Z.some(t=>t.id===e.selectedIde)&&tm(e.selectedIde)})()},[]),(0,r.useEffect)(()=>{eT(b?.trim()||""),eH([])},[b,z]);let tp=async e=>{let t=e.target.value;tm(t),await (0,p.updateConfig)({selectedIde:t})},tf=async(t=!0)=>{if(!e||!a||!n||t&&!confirm("Are you sure you want to delete this session? This will remove the branch and worktree."))return!1;eS(null),ek("idle"),ey("Purging session...");try{let e=await s(z);if(!e.success)return console.error("Cleanup failed:",e.error||"Unknown error"),ek("error"),eS(e.error||"Failed to delete session"),!1;(0,Y.notifySessionsUpdated)()}catch(e){return console.error("Cleanup request failed:",e),ek("error"),eS(e instanceof Error?e.message:"Unknown error"),!1}return K(!0),!0},tb=async()=>{await tf(!0)},tx=(0,r.useCallback)((e,t)=>new Promise(r=>{let a=eo.current;if(!a)return void r(!1);let s=(i=0)=>{if(i>30)return void r(!1);try{let o=a.contentWindow;if(!o||(o.postMessage({type:"viba:agent-request",action:t,prompt:e,sessionName:z,branch:n,baseBranch:eU||void 0,timestamp:Date.now()},"*"),!o.term))return void setTimeout(()=>s(i+1),300);o.term.paste(e);let l=a.contentDocument?.querySelector("textarea.xterm-helper-textarea");l?(l.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:o})),l.focus()):o.term.paste("\r"),o.focus(),r(!0)}catch(e){console.error("Failed to send prompt to agent iframe:",e),setTimeout(()=>s(i+1),300)}};s()}),[n,eU,z]),tv=async()=>{eR(!0),ey("Requesting commit from agent..."),ey(await tx("Please create a git commit with the current changes in this worktree.","commit")?"Commit request sent to agent":"Failed to send commit request to agent"),eR(!1)},tw=(0,r.useCallback)(e=>new Promise(t=>{let r=eo.current;if(!r)return void t(!1);let a=(n=0)=>{if(n>30)return void t(!1);try{let s=r.contentWindow;if(!s||!s.term)return void setTimeout(()=>a(n+1),300);s.term.paste(e);let i=r.contentDocument?.querySelector("textarea.xterm-helper-textarea");i&&i.focus(),s.focus(),t(!0)}catch(e){console.error("Failed to paste into agent iframe:",e),setTimeout(()=>a(n+1),300)}};a()}),[]),tg=(0,r.useCallback)(async e=>{if(0===e.length)return;eI(!0);let t=`${e.join(" ")} `;ey(await tw(t)?`Inserted ${e.length} file path${1===e.length?"":"s"} into agent input`:"Failed to insert file paths into agent input"),eI(!1)},[tw]),ty=(0,r.useCallback)(async t=>{let r=t.map(ei).filter(Boolean);if(0===r.length)return null;let n=Array.from(new Set([e,a].map(e=>(e||"").trim()).filter(Boolean)));if(0===n.length)return null;for(let e of n)try{let t=await fetch("/api/component-source/resolve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({componentNames:r,workspaceRoot:e})}),a=await t.json().catch(()=>null);if(!t.ok){console.warn("Component source resolve miss",{componentNames:r,workspaceRoot:e,error:a?.error||t.statusText});continue}let n="string"==typeof a?.sourcePath?a.sourcePath.trim():"",s="string"==typeof a?.resolvedName?a.resolvedName.trim():"";if(n&&s)return{sourcePath:n,resolvedName:s}}catch(e){console.error("Failed to resolve component source path:",e)}return null},[e,a]),tj=(0,r.useCallback)(async()=>{if(z&&!e_.current){e_.current=!0,eO(!0);try{let e=await l(z);e.success?(eH(e.branches??[]),eT(e.baseBranch?.trim()||"")):e.error&&ey(`Failed to load branches: ${e.error}`)}catch(e){console.error("Failed to load base branches:",e)}finally{e_.current=!1,eO(!1)}}},[z]);(0,r.useEffect)(()=>{z&&tj()},[tj,z]);let tk=(0,r.useCallback)(async()=>{if(z)try{let e=await i(z);e.success&&"number"==typeof e.ahead&&"number"==typeof e.behind&&eY({ahead:e.ahead,behind:e.behind})}catch(e){console.error("Failed to load branch divergence:",e)}},[z]);(0,r.useEffect)(()=>{if(!z||!eU)return void eY({ahead:0,behind:0});tk();let e=window.setInterval(()=>{tk()},6e4);return()=>window.clearInterval(e)},[eU,tk,z]);let tN=(0,r.useCallback)(async()=>{if(z)try{let e=await o(z);e.success&&"number"==typeof e.count&&eZ(e.count)}catch(e){console.error("Failed to load uncommitted file count:",e)}},[z]);(0,r.useEffect)(()=>{if(!z)return;tN();let e=window.setInterval(()=>{tN()},1e4);return()=>window.clearInterval(e)},[tN,z]);let tS=async()=>{if(!z||!eU)return!1;eL(!0),ey("Merging session branch...");try{let e=await c(z);if(e.success)return ey(`Merged ${e.branchName} into ${e.baseBranch}`),tk(),!0;return ey(`Merge failed: ${e.error}`),!1}catch(e){return console.error("Merge request failed:",e),ey("Merge failed"),!1}finally{eL(!1)}},tC=async()=>{await tS()},[t$,tM]=(0,r.useState)(!1),tR=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=e=>{tR.current&&!tR.current.contains(e.target)&&tM(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let tE=async e=>{if(tM(!1),!z)return;let t=e!==eU;eF(!0),ey(t?`Updating base to ${e} and rebasing...`:"Rebasing session branch...");try{if(t){let t=await u(z,e);if(!t.success){ey(`Failed to update base branch: ${t.error}`),eF(!1);return}eT(t.baseBranch),await tj()}let r=await d(z);r.success?(ey(`Rebased ${r.branchName} onto ${r.baseBranch}`),tk()):ey(`Rebase failed: ${r.error}`)}catch(e){console.error("Rebase request failed:",e),ey("Rebase failed")}finally{eF(!1)}},tL=(0,r.useCallback)(async(e,t)=>{let r=ea(e);if(!r)return ey("Please enter a preview URL"),!1;e2(r),e5(!1),ey(`Loading preview: ${r}`);try{let e=await fetch("/api/preview-proxy/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:r})}),a=await e.json().catch(()=>null);if(!e.ok||!a?.proxyUrl)throw Error(a?.error||"Failed to start preview proxy");return e6(a.proxyUrl),t&&e0(!0),ey(`Loaded preview: ${r}`),!0}catch(t){let e=t instanceof Error?t.message:"Failed to load preview";return console.error("Failed to load preview via proxy:",t),ey(`Failed to load preview: ${e}`),!1}},[]),tP=(0,r.useCallback)(()=>{if(!e3)return void ey("Load a preview before picking elements");let e=ec.current?.contentWindow;if(!e)return void ey("Preview is not ready yet");let t=!e4;e.postMessage({type:"viba:preview-picker-toggle",active:t},"*"),e5(t),ey(t?"Picker enabled: click an element in the preview":"Picker disabled")},[e4,e3]),tF=(0,r.useCallback)(e=>{let t=ec.current?.contentWindow;return t?(t.postMessage(e,"*"),!0):(ey("Preview is not ready yet"),!1)},[]),tD=(0,r.useCallback)(e=>{e3?tF({type:"viba:preview-navigation",action:e})&&"reload"===e&&ey("Reloading preview..."):ey("Load a preview before using navigation controls")},[tF,e3]),tz=(0,r.useCallback)(()=>{tF({type:"viba:preview-location-request"})},[tF]),tA=(0,r.useCallback)((e,t)=>{let r=ea(e);return!!r&&(t?window.open(r,"_blank","noopener,noreferrer"):tL(r,!0),!0)},[tL]),tq=(0,r.useCallback)((e,t,r)=>{t.current?.();let a=e.contentWindow,n=a?.term;if(!a||!n)return;let s=r?.onLinkActivated,i=[],o=e.contentDocument,l={metaKey:!1,ctrlKey:!1,at:0};if(o){let e=e=>{l={metaKey:e.metaKey,ctrlKey:e.ctrlKey,at:Date.now()}};o.addEventListener("mousedown",e,!0),o.addEventListener("click",e,!0),i.push(()=>{o.removeEventListener("mousedown",e,!0),o.removeEventListener("click",e,!0)})}let c=a.open.bind(a);a.open=(...e)=>{let t=Date.now()-l.at<1e3&&(l.metaKey||l.ctrlKey);if("string"==typeof e[0]&&e[0].trim())return(s?.(),tA(e[0],t))?null:c(...e);if(0===e.length){let e=null;return{opener:null,location:{set href(url){if(s?.(),!tA(url,t)&&(e=c())){try{e.opener=null}catch{}e.location.href=url}},get href(){return""}}}}return c(...e)},i.push(()=>{a.open=c});let d=n._core?._linkProviderService?.linkProviders;if(d instanceof Map){for(let e of d.values())if(e&&"object"==typeof e){if("function"==typeof e._handler){let t=e._handler;e._handler=(e,r)=>{s?.(),tA(r,!!(e?.metaKey||e?.ctrlKey))||t(e,r)},i.push(()=>{e._handler=t})}if("function"==typeof e.provideLinks){let t=e.provideLinks.bind(e);e.provideLinks=(e,r)=>{t(e,e=>{if(Array.isArray(e))for(let t of e){if(!t||"object"!=typeof t||"function"!=typeof t.activate)continue;let e=t.activate.bind(t);t.activate=(t,r)=>{s?.(),tA(r,!!(t?.metaKey||t?.ctrlKey))||e(t,r)}}r(e)})},i.push(()=>{e.provideLinks=t})}}}let u=n.options.linkHandler,h={allowNonHttpProtocols:u?.allowNonHttpProtocols??!1,activate:(e,t,r)=>{s?.(),tA(t,!!(e?.metaKey||e?.ctrlKey))||u?.activate?.(e,t,r)},hover:(e,t,r)=>{u?.hover?.(e,t,r)},leave:(e,t,r)=>{u?.leave?.(e,t,r)}};n.options.linkHandler=h,i.push(()=>{n.options.linkHandler=u??null}),t.current=()=>{for(let e of i)e();t.current=null}},[tA]);if((0,r.useEffect)(()=>{if(!eQ||e1.trim())return;let e=window.setTimeout(()=>{ed.current?.focus()},0);return()=>{window.clearTimeout(e)}},[eQ,e1]),(0,r.useEffect)(()=>{let t=t=>{if(!ec.current||t.source!==ec.current.contentWindow)return;let r=t.data;if(r&&"object"==typeof r){if("viba:preview-picker-state"===r.type)return void e5(!!r.active);if("viba:preview-picker-ready"===r.type){let e=ec.current?.contentWindow;e&&e.postMessage({type:"viba:preview-location-request"},"*");return}if("viba:preview-location-change"===r.type){"string"==typeof r.url&&r.url.trim().length>0&&e2(r.url);return}if("viba:preview-element-selected"===r.type){let t=r.element&&"object"==typeof r.element?r.element:null,n=Array.isArray(t?.reactComponentStack)?t.reactComponentStack:[],s=((e,t)=>{for(let r of e){if(!r||"object"!=typeof r)continue;let e="string"==typeof r.name?r.name.trim():"";if(!e)continue;let a="string"==typeof r.source?.fileName?r.source.fileName.trim():"",n=a?es(a,t):null;if(n)return`${e} (${n})`}return null})(n,a||e),i=n[0]&&"object"==typeof n[0]?n[0].name:void 0,o="string"==typeof i&&i.trim().length>0?i.trim():"",l=new Set(["Suspense","ErrorBoundary","Router","AppRouter","LayoutRouter","RenderFromTemplateContext","ScrollAndFocusHandler","InnerLayoutRouter","RedirectErrorBoundary","NotFoundBoundary","LoadingBoundary","ReactDevOverlay","HotReload","AppContainer","Route","Link","Image","OuterLayoutRouter","Head","StringRefs","Fragment","Profiler","StrictMode","SuspenseList","Script","Page","__next_root_layout_boundary__"]),c=Array.from(new Set(n.map(e=>{if(!e||"object"!=typeof e)return"";let t=e.name;return"string"==typeof t?t.trim():""}).filter(e=>!(!e||l.has(e)||e.startsWith("styled.")||e.startsWith("Styled(")))));console.log("Filtered stack component names:",c);let d=s||o||("string"==typeof t?.selector?t.selector:"");if(console.log("Preview selected element:",t),console.log("Preview selected reactComponentStack:",n),console.log("Preview selected identifier:",d),e5(!1),!d)return void ey("Element selected. No identifier was resolved.");(async()=>{let e=s||"";if(!e&&c.length>0){e9(!0);try{let t=await ty(c);t?.resolvedName&&t?.sourcePath&&(e=`${t.resolvedName} (${t.sourcePath})`)}finally{e9(!1)}}if(!e){if(c.length>0)return ey("Element selected, but source file path could not be resolved for the component");e=d}console.log("Final resolved component identifier:",e),ey(await tw(`${e} `)?`Element identifier sent to agent: ${e}`:"Element selected, but failed to send identifier to agent input")})()}}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}},[tw,e,ty,a]),(0,r.useEffect)(()=>{e5(!1)},[e3]),!e)return(0,t.jsx)("div",{className:"p-4 text-error",children:"No repository specified"});if("error"===ej)return(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsx)("div",{className:"card w-96 bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error",children:"Cleanup failed"}),(0,t.jsx)("p",{children:eN||"An unknown error occurred while cleaning up this session."}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>K(),children:"Back to Home"})})]})})});let tB=Array.from(new Set([...eU?[eU]:[],...eW])).filter(e=>e!==n||e===eU),tI=ta?`calc(40px - min(${ts.width}px, calc(100vw - 2rem)))`:16;return(0,t.jsxs)("div",{className:`flex flex-col h-screen w-full overflow-hidden bg-base-100 ${to||tt?"select-none":""}`,children:[(to||tt)&&(0,t.jsx)("div",{className:`fixed inset-0 z-[9999] ${to?"cursor-nwse-resize":"cursor-col-resize"}`}),(0,t.jsxs)("div",{className:"z-20 bg-base-300/95 p-2 text-xs flex justify-between px-4 font-mono select-none items-center shadow-md backdrop-blur-sm border-b border-base-content/10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 px-1 hover:bg-base-content/10",onClick:()=>K(),title:"Back to Home",children:(0,t.jsx)(C,{className:"w-4 h-4"})}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"opacity-50",children:"Repo:"}),(0,t.jsx)("span",{className:"font-bold",children:(0,V.getBaseName)(e)})]}),z&&(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 items-center gap-2 text-[10px] opacity-70",children:[(0,t.jsx)("span",{children:"Session:"}),(0,t.jsx)("span",{className:"truncate max-w-[220px]",title:z,children:z})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden",children:[(0,t.jsx)("select",{className:"select select-xs h-6 min-h-6 bg-base-200 border-none focus:outline-none rounded-none pr-7",value:th,onChange:tp,children:Z.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/20"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none hover:bg-base-content/10",onClick:()=>{if(!a)return;let e=Z.find(e=>e.id===th);if(!e)return;let t=`${e.protocol}://file/${encodeURI(a)}`;window.open(t,"_blank")},title:`Open in ${Z.find(e=>e.id===th)?.name}`,children:[(0,t.jsx)(x,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"Open"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{if(!a||!n)return;let e=new URLSearchParams({path:a,branch:n});window.open(`http://localhost:3100/workspace?${e.toString()}`,"_blank","noopener,noreferrer")},disabled:!a||!n,title:"Open this worktree and branch in Trident",children:[(0,t.jsx)(j.GitBranch,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"Diff"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:tv,disabled:eM,title:"Ask agent to create a commit with current changes",children:[eM?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(w,{className:"w-3 h-3"}),(0,t.jsxs)("span",{className:en,children:["Commit (",eJ,")"]})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>ez(!0),disabled:eB,title:"Browse files and insert absolute paths into the agent input",children:[eB?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(S,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"Add Files"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{if(!e||!z)return;let t=`/new?repo=${encodeURIComponent(e)}&prefillFromSession=${encodeURIComponent(z)}`;window.open(t,"_blank","noopener,noreferrer")},title:"Start a new attempt in a new tab with this session context",children:[(0,t.jsx)(R.Plus,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"New Attempt"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[I?.trim()&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{let e=I?.trim();if(!e||!el.current)return;tn(!1);let t=el.current;e$(!0),ey("Starting dev server...");let r=(a=0)=>{if(a>30){ey("Failed to start dev server: terminal is not ready"),e$(!1);return}try{let n=t.contentWindow;if(n&&n.term){n.term.paste(e);let r=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");r?r.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:n})):n.term.paste("\r"),n.focus(),r&&r.focus(),ey("Dev server start command sent"),e$(!1)}else setTimeout(()=>r(a+1),300)}catch(e){console.error("Dev server injection error",e),ey("Failed to start dev server"),e$(!1)}};r()},disabled:eC,title:"Run dev server script in terminal",children:[eC?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(v.Play,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"Dev"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"})]}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>e0(e=>!e),title:eQ?"Hide preview panel":"Show preview panel",children:[(0,t.jsx)(E,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:eQ?"Close":"Preview"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded relative bg-base-100",ref:tR,children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none rounded-l h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{tM(!t$)},disabled:eP||eE||eV,title:"Select base branch and rebase",children:[eP?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(y,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"Rebase"}),(0,t.jsx)(M,{className:"w-3 h-3 opacity-50 ml-0.5"})]}),t$&&(0,t.jsxs)("div",{className:"absolute top-full left-0 z-50 mt-1 w-64 p-0 shadow-xl dropdown-content bg-base-200 rounded-box border border-base-content/20 flex flex-col max-h-80 overflow-hidden",children:[(0,t.jsxs)("div",{className:"px-4 py-2 text-[10px] uppercase font-bold tracking-wider opacity-50 border-b border-base-content/10 bg-base-200 flex justify-between items-center shrink-0",children:[(0,t.jsx)("span",{children:"Select Base Branch"}),(eK||eV)&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})]}),(0,t.jsxs)("ul",{className:"menu p-0 overflow-y-auto flex-nowrap custom-scrollbar overflow-x-hidden w-full",children:[tB.length>0?tB.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{onClick:()=>tE(e),className:`flex justify-between items-center text-xs py-2 truncate max-w-full rounded-none ${e===eU?"active font-bold":""}`,title:e,children:[(0,t.jsx)("span",{className:"truncate",children:e}),e===eU&&(0,t.jsx)("span",{className:"opacity-70 text-[10px] ml-2 shrink-0",children:"(Current)"})]})},e)):(0,t.jsx)("li",{className:"text-xs px-4 py-2 opacity-50 italic text-center",children:"No other branches found"}),(0,t.jsx)("div",{className:"divider my-1 opacity-50"}),(0,t.jsx)("li",{children:(0,t.jsx)("button",{onClick:()=>void tj(),className:"text-[10px] justify-center opacity-70 hover:opacity-100",children:"Refresh Branches"})})]})]})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs btn-success rounded-none h-6 min-h-6 border-none px-2 hover:bg-success/20 hover:border-transparent",onClick:tC,disabled:eE||eP||eV||!eU,title:eU?`Merge current branch (${n}) into target branch (${eU})`:"Target branch unavailable for this session",children:[eE?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(g,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"Merge"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-error btn-xs rounded-none rounded-r h-6 min-h-6 border-none px-2 hover:bg-error/20 hover:border-transparent",onClick:tb,disabled:eE||eP||!a,title:"Clean up and exit",children:[(0,t.jsx)(f.Trash2,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:en,children:"Purge"})]})]}),eU&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs opacity-80",title:`Divergence against ${eU}`,children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(k,{className:"w-3 h-3"}),eX.ahead]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(N,{className:"w-3 h-3"}),eX.behind]})]}),(0,t.jsx)("div",{className:"hidden min-[1200px]:block w-[1px] h-4 bg-base-content/20 mx-2"}),(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 max-w-[280px] items-center gap-2",children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${eg.includes("Error")||eg.includes("failed")?"bg-error":eg.includes("started")||eg.includes("Merged")||eg.includes("Rebased")||eg.includes("sent")?"bg-success":"bg-warning"}`}),(0,t.jsx)("span",{className:"truncate",title:eg,children:eg})]})]})]}),(0,t.jsxs)("div",{ref:eu,className:"flex min-h-0 flex-1 w-full",children:[(0,t.jsx)("div",{className:"h-full min-w-0",style:{width:eQ?`${100*e8}%`:"100%"},children:(0,t.jsx)("iframe",{ref:eo,src:ef,className:`h-full w-full border-none dark:invert dark:brightness-90 ${to||tt?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!eo.current)return;let t=eo.current;try{t.contentWindow}catch(e){ey("Error: Cross-Origin access blocked. Ensure proxy is working.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0)),ey("Connecting to terminal...");let r=(n=0)=>{if(n>30)return void ey("Timeout waiting for terminal to be ready");try{let s=t.contentWindow;if(s&&s.term){let r=s.term;tq(t,em);try{r.options.theme={...r.options.theme||{},selectionBackground:"rgba(59, 130, 246, 0.4)"}}catch{}let n=ev("agent"),i=!!O&&"tmux"===_;if(n||i){i&&!n?(ew("agent"),ey("Attached to persisted terminal")):ey("Reconnected to terminal"),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}let o=a||e,l=`cd ${Q(o)}`;r.paste(l);let c=()=>{let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e?e.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):r.paste("\r")};if(c(),ew("agent"),A){let t=async()=>{let t="";if(O)t=A.toLowerCase().includes("gemini")?"gemini --resume latest --yolo":A.toLowerCase().includes("codex")?"codex resume --last --sandbox danger-full-access --ask-for-approval on-request --search":"agent"===A.toLowerCase()||A.toLowerCase().includes("cursor")?"agent resume":`${Q(A)} resume`;else{let r=W?.trim()||"",n=[];r&&n.push(r),U&&n.push(U);let s=n.join("\n\n");if(H&&H.length>0){let t=`${a||e}-attachments`,r=["Attachments:",...H.map(e=>`- ${t}/${e}`)].join("\n");s=s?`${s}
|
|
2
|
+
|
|
3
|
+
${r}`:r}let i="";if(s)if(T&&T.trim().length>0||H&&H.length>0)try{let e=await h(z,s);e.success&&e.filePath?i=` "$(cat ${Q(e.filePath)})"`:(console.error("Failed to write prompt file, falling back to inline prompt",e.error),i=` ${Q(s)}`)}catch(e){console.error("Exception writing prompt file",e),i=` ${Q(s)}`}else i=` ${Q(s)}`;let o=q&&"auto"!==q.toLowerCase()?` --model ${Q(q)}`:"";t=A.toLowerCase().includes("codex")?`codex${o} --sandbox danger-full-access --ask-for-approval on-request --search${i}`:A.toLowerCase().includes("gemini")?`gemini${o} --yolo${i}`:"agent"===A.toLowerCase()||A.toLowerCase().includes("cursor")?`agent${o}${i}`:`${Q(A)}${o}${i}`}t&&(r.paste(t),c(),ey(O?`Resumed session with ${A}`:`Session started with ${A}`),!O&&G&&G())};setTimeout(()=>t(),500)}else ey(`Session started ${a?"(Worktree)":""}`),!O&&G&&G();s.focus();let d=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");d&&d.focus()}else setTimeout(()=>r(n+1),500)}catch(e){console.error("Access error during injection:",e),ey("Error accessing terminal: "+String(e))}};setTimeout(()=>r(),1e3)}})}),eQ&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"relative h-full w-2 shrink-0 cursor-col-resize bg-base-300/40 hover:bg-base-content/20",onMouseDown:e=>{e.preventDefault(),tr(!0),eh.current={startX:e.clientX,startRatio:e8}},role:"separator","aria-orientation":"vertical","aria-label":"Resize preview panel",title:"Drag to resize preview panel",children:(0,t.jsx)("div",{className:"absolute left-1/2 top-1/2 h-12 w-[2px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-base-content/30"})}),(0,t.jsxs)("div",{className:"flex h-full min-w-0 flex-1 flex-col border-l border-base-content/10 bg-base-200/50",children:[(0,t.jsxs)("form",{className:"flex items-center gap-2 border-b border-base-content/10 bg-base-200 px-3 py-2",onSubmit:e=>{e.preventDefault(),tL(e1,!0)},children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>tD("back"),disabled:!e3,title:"Go back","aria-label":"Go back",children:(0,t.jsx)(P.ArrowLeft,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>tD("forward"),disabled:!e3,title:"Go forward","aria-label":"Go forward",children:(0,t.jsx)(F,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>tD("reload"),disabled:!e3,title:"Reload preview","aria-label":"Reload preview",children:(0,t.jsx)(D,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("input",{ref:ed,type:"text",className:"input input-xs input-bordered w-full font-mono",value:e1,onChange:e=>e2(e.target.value),placeholder:"http://127.0.0.1:3000",spellCheck:!1}),(0,t.jsx)("button",{className:`btn btn-ghost btn-xs ${e4?"btn-active text-success":""}`,type:"button",onClick:tP,disabled:!e3||e7,title:e4?"Disable picker":"Pick element from preview",children:e7?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs w-3 h-3"}):(0,t.jsx)(L,{className:"h-3 w-3"})}),(0,t.jsx)("button",{className:"btn btn-xs",type:"submit",children:"Go"})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1",children:e3?(0,t.jsx)("iframe",{ref:ec,src:e3,className:`h-full w-full border-none ${to||tt?"pointer-events-none":""}`,title:"Dev server preview",onLoad:tz,sandbox:"allow-forms allow-modals allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-downloads"}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-6 text-center text-xs opacity-70",children:"Run the dev server, or enter a URL above to load a preview."})})]})]})]}),(0,t.jsxs)("div",{className:`absolute z-30 overflow-hidden rounded-lg border border-base-content/20 bg-base-200/95 shadow-2xl backdrop-blur-sm ${to||tt?"":"transition-all"}`,style:{bottom:80,right:tI,width:ts.width,height:ta?40:ts.height,maxWidth:"calc(100vw - 2rem)",maxHeight:"calc(100vh - 2rem)"},children:[(0,t.jsx)("button",{className:`absolute left-0 top-0 z-50 flex h-10 w-10 items-center justify-center text-base-content/30 hover:text-base-content/60 ${ta?"cursor-pointer":"cursor-nwse-resize"}`,onMouseDown:ta?void 0:e=>{e.preventDefault(),e.stopPropagation(),tl(!0),tu.current={startX:e.clientX,startY:e.clientY,startWidth:ts.width,startHeight:ts.height}},onClick:ta?()=>tn(!1):void 0,title:ta?"Expand terminal":"Drag to resize",type:"button",children:(0,t.jsx)($,{size:14})}),!ta&&(0,t.jsxs)("button",{className:"flex h-10 w-full items-center justify-between px-3 pl-10 text-xs font-mono hover:bg-base-content/10",onClick:()=>tn(e=>!e),title:"Minimize terminal",type:"button",children:[(0,t.jsx)("span",{children:"Terminal"}),(0,t.jsx)("span",{className:"opacity-70",children:"Hide"})]}),(0,t.jsx)("div",{className:ta?"h-0 overflow-hidden":"h-[calc(100%-2.5rem)]",children:(0,t.jsx)("iframe",{ref:el,src:eb,className:`h-full w-full border-none dark:invert dark:brightness-90 ${to||tt?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!el.current)return;let t=el.current;try{t.contentWindow}catch(e){console.error("Secondary terminal: Cross-Origin access blocked.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0));let r=(n=0)=>{if(!(n>30))try{let s=t.contentWindow;if(s&&s.term){let r=s.term;tq(t,ep,{onLinkActivated:()=>tn(!0)});try{r.options.theme={...r.options.theme||{},selectionBackground:"rgba(59, 130, 246, 0.4)"}}catch{}try{let e=()=>{r.buffer?.active&&(r.buffer.active.baseY,r.buffer.active.viewportY),r.scrollToBottom()};if(r.onWriteParsed)r.onWriteParsed(e);else{let r=t.contentDocument?.querySelector(".xterm-screen")||t.contentDocument?.body;r&&new MutationObserver(e).observe(r,{childList:!0,subtree:!0,characterData:!0})}}catch(e){console.error("Failed to setup auto-scroll:",e)}let n=ev("terminal"),i=!!O&&"tmux"===_;if(n||i){i&&!n&&ew("terminal"),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}let o=a||e,l=`cd ${Q(o)}`;r.paste(l);let c=()=>{let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e?e.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):r.paste("\r")};c(),ew("terminal"),B&&!O&&setTimeout(()=>{r.paste(B),c()},500),s.focus();let d=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");d&&d.focus()}else setTimeout(()=>r(n+1),500)}catch(e){console.error("Secondary terminal injection error",e)}};setTimeout(()=>r(),1e3)}})})]}),eD&&(0,t.jsx)(X,{initialPath:eA,worktreePath:a,onPathChange:eq,onConfirm:e=>{ez(!1),tg(e)},onCancel:()=>ez(!1)})]})}let el=(0,n.createServerReference)("4038cad6cc6ba362da1bf4e8f3a2741eb54af698e5",n.callServer,void 0,n.findSourceMapURL,"consumeSessionLaunchContext"),ec=(0,n.createServerReference)("40228d4f31abd0db248f23ec294c9f7d2f82230b46",n.callServer,void 0,n.findSourceMapURL,"getSessionMetadata"),ed=(0,n.createServerReference)("402b085644e5160ec39fd4691327bd8609c052cdbe",n.callServer,void 0,n.findSourceMapURL,"markSessionInitialized");var eu=e.i(56382);function eh(){let e=(0,a.useParams)().sessionId,n=Array.isArray(e)?e[0]:e,s=(0,a.useRouter)(),[i,o]=(0,r.useState)(null),[l,c]=(0,r.useState)(!0),[d,u]=(0,r.useState)(null),[h,m]=(0,r.useState)(void 0),[p,f]=(0,r.useState)(void 0),[b,x]=(0,r.useState)(void 0),[v,w]=(0,r.useState)([]),[g,y]=(0,r.useState)(void 0),[j,k]=(0,r.useState)(void 0),[N,S]=(0,r.useState)(void 0),[C,$]=(0,r.useState)(!0),[M,R]=(0,r.useState)("shell");(0,r.useEffect)(()=>(document.documentElement.classList.add("session-page"),()=>{document.documentElement.classList.remove("session-page")}),[]),(0,r.useEffect)(()=>{n&&(async()=>{try{let e=await (0,eu.startTtydProcess)();if(!e.success){u("Failed to start terminal service"),c(!1);return}R("tmux"===e.persistenceMode?"tmux":"shell");let t=await ec(n);if(!t){u("Session not found"),c(!1);return}if(o(t),!1===t.initialized){let e=await el(n);if(e.success&&e.context){let t=e.context;m(t.initialMessage),f(t.rawInitialMessage),x(t.startupScript),w(t.attachmentNames||[]),y(t.title),k(t.agentProvider),S(t.model)}$(!1)}else $(!0);c(!1)}catch(e){console.error("Failed to load session:",e),u("Failed to load session"),c(!1)}})()},[n]);let E=e=>{e?window.location.href="/":s.push("/")},L=async()=>{n&&await ed(n)};return l?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsx)("p",{className:"opacity-60",children:"Loading session..."})]})}):d||!i?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsx)("div",{className:"card w-96 bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error",children:"Error"}),(0,t.jsx)("p",{children:d||"Session not found"}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>E(),children:"Back to Home"})})]})})}):(0,t.jsx)(eo,{repo:i.repoPath,worktree:i.worktreePath,branch:i.branchName,baseBranch:i.baseBranch,sessionName:i.sessionName,agent:j||i.agent,model:N||i.model,startupScript:b,devServerScript:i.devServerScript,initialMessage:h,rawInitialMessage:p,title:g||i.title,attachmentNames:v,onExit:E,isResume:C,terminalPersistenceMode:M,onSessionStart:L})}e.s(["default",()=>eh],36438)}]);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return i}});let i=e=>{}},18566,(e,t,r)=>{t.exports=e.r(76562)},95187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={callServer:function(){return a.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return o.findSourceMapURL}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(32120),o=e.r(92245),l=e.r(35326)},
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return i}});let i=e=>{}},18566,(e,t,r)=>{t.exports=e.r(76562)},95187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={callServer:function(){return a.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return o.findSourceMapURL}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(32120),o=e.r(92245),l=e.r(35326)},11607,78669,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("003408daf503f563bd7702d8eae85f3b1294f2f284",t.callServer,void 0,t.findSourceMapURL,"getConfig");e.s(["getConfig",()=>r],11607);let i=(0,t.createServerReference)("40146ea4475c4e00f7633055de4ed6516650b2e88c",t.callServer,void 0,t.findSourceMapURL,"updateConfig");e.s(["updateConfig",()=>i],78669)},75254,e=>{"use strict";var t=e.i(71645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),i=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:i=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:l="",children:s,iconNode:u,...d},c)=>(0,t.createElement)("svg",{ref:c,...n,width:i,height:i,stroke:e,strokeWidth:o?24*Number(a)/Number(i):a,className:r("lucide",l),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(d)&&{"aria-hidden":"true"},...d},[...u.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(s)?s:[s]])),o=(e,n)=>{let o=(0,t.forwardRef)(({className:o,...l},s)=>(0,t.createElement)(a,{ref:s,iconNode:n,className:r(`lucide-${i(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...l}));return o.displayName=i(e),o};e.s(["default",()=>o],75254)},27612,31343,e=>{"use strict";var t=e.i(75254);let r=(0,t.default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>r],27612);let i=(0,t.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",()=>i],31343)},55716,7233,e=>{"use strict";var t=e.i(75254);let r=(0,t.default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>r],55716);let i=(0,t.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>i],7233)},71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},88143,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:i,blurDataURL:n,objectFit:a}){let o=r?40*r:e,l=i?40*i:t,s=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${s?"none":"contain"===a?"xMidYMid":"cover"===a?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return a},imageConfigDefault:function(){return o}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=["default","imgix","cloudinary","akamai","custom"],o={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(33525);let i=e.r(43369),n=e.r(88143),a=e.r(87690),o=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function u({src:e,sizes:t,unoptimized:r=!1,priority:u=!1,preload:d=!1,loading:c,className:f,quality:p,width:g,height:m,fill:h=!1,style:y,overrideSrc:b,onLoad:v,onLoadingComplete:_,placeholder:w="empty",blurDataURL:S,fetchPriority:P,decoding:j="async",layout:O,objectFit:x,objectPosition:E,lazyBoundary:C,lazyRoot:R,...M},k){var z;let I,A,D,{imgConf:$,showAltText:T,blurComplete:L,defaultLoader:U}=k,N=$||a.imageConfigDefault;if("allSizes"in N)I=N;else{let e=[...N.deviceSizes,...N.imageSizes].sort((e,t)=>e-t),t=N.deviceSizes.sort((e,t)=>e-t),r=N.qualities?.sort((e,t)=>e-t);I={...N,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===U)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=M.loader||U;delete M.loader,delete M.srcSet;let q="__next_img_default"in B;if(q){if("custom"===I.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
|
|
2
2
|
Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=B;B=t=>{let{config:r,...i}=t;return e(i)}}if(O){"fill"===O&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[O];e&&(y={...y,...e});let r={responsive:"100vw",fill:"100vw"}[O];r&&!t&&(t=r)}let W="",F=s(g),G=s(m);if((z=e)&&"object"==typeof z&&(l(z)||void 0!==z.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(A=t.blurWidth,D=t.blurHeight,S=S||t.blurDataURL,W=t.src,!h)if(F||G){if(F&&!G){let e=F/t.width;G=Math.round(t.height*e)}else if(!F&&G){let e=G/t.height;F=Math.round(t.width*e)}}else F=t.width,G=t.height}let H=!u&&!d&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,H=!1),I.unoptimized&&(r=!0),q&&!I.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let V=s(p),X=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:x,objectPosition:E}:{},T?{}:{color:"transparent"},y),K=L||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,n.getImageBlurSvg)({widthInt:F,heightInt:G,blurWidth:A,blurHeight:D,blurDataURL:S||"",objectFit:X.objectFit})}")`:`url("${w}")`,Y=o.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,Z=K?{backgroundSize:Y,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:K}:{},J=function({config:e,src:t,unoptimized:r,width:n,quality:a,sizes:o,loader:l}){if(r){let e=(0,i.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:u}=function({deviceSizes:e,allSizes:t},r,i){if(i){let r=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=r.exec(i);)n.push(parseInt(e[2]));if(n.length){let r=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,n,o),d=s.length-1;return{sizes:o||"w"!==u?o:"100vw",srcSet:s.map((r,i)=>`${l({config:e,src:t,quality:a,width:r})} ${"w"===u?r:i+1}${u}`).join(", "),src:l({config:e,src:t,quality:a,width:s[d]})}}({config:I,src:e,unoptimized:r,width:F,quality:V,sizes:t,loader:B}),Q=H?"lazy":c;return{props:{...M,loading:Q,fetchPriority:P,width:F,height:G,decoding:j,className:f,style:{...X,...Z},sizes:J.sizes,srcSet:J.srcSet,src:b||J.src},meta:{unoptimized:r,preload:d||u,placeholder:w,fill:h}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let i=e.r(71645),n="u"<typeof window,a=n?()=>{}:i.useLayoutEffect,o=n?()=>{}:i.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return n&&(t?.mountedInstances?.add(e.children),l()),a(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),a(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return m},defaultHead:function(){return c}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(55682),o=e.r(90809),l=e.r(43476),s=o._(e.r(71645)),u=a._(e.r(98879)),d=e.r(42732);function c(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,i,n;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,i=new Set,n={},e=>{let a=!0,o=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){o=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?a=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?a=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)i.has(r)?a=!1:i.add(r);else{let t=e.props[r],i=n[r]||new Set;("name"!==r||!o)&&i.has(t)?a=!1:(i.add(t),n[r]=i)}}}return a})).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,s.useContext)(d.HeadManagerContext);return(0,l.jsx)(u.default,{reduceComponentsToState:g,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return a}});let i=e.r(55682)._(e.r(71645)),n=e.r(87690),a=i.default.createContext(n.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,r)=>{"use strict";function i(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return i}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let i=e.r(70965),n=e.r(43369);function a({config:e,src:t,width:r,quality:a}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
|
|
3
|
-
Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,i.findClosestQuality)(a,e),l=(0,n.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${o}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}a.__next_img_default=!0;let o=a},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let i=e.r(71645);function n(e,t){let r=(0,i.useRef)(null),n=(0,i.useRef)(null);return(0,i.useCallback)(i=>{if(null===i){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=a(e,i)),t&&(n.current=a(t,i))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return _}});let i=e.r(55682),n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),l=i._(e.r(74080)),s=i._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,i,n,a,o){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function y(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,o.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:n,decoding:l,className:s,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:b,onLoadingCompleteRef:v,setBlurComplete:_,setShowAltText:w,sizesInput:S,onLoad:P,onError:j,...O},x)=>{let E=(0,o.useCallback)(e=>{e&&(j&&(e.src=e.src),e.complete&&h(e,c,b,v,_,p,S))},[e,c,b,v,_,j,p,S]),C=(0,g.useMergedRef)(x,E);return(0,a.jsx)("img",{...O,...y(d),loading:f,width:n,height:i,decoding:l,"data-nimg":m?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:C,onLoad:e=>{h(e.currentTarget,c,b,v,_,p,S)},onError:e=>{w(!0),"empty"!==c&&_(!0),j&&j(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,a.jsx)(s.default,{children:(0,a.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let _=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),i=(0,o.useContext)(c.ImageConfigContext),n=(0,o.useMemo)(()=>{let e=m||i||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:n,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:l,onLoadingComplete:s}=e,g=(0,o.useRef)(l);(0,o.useEffect)(()=>{g.current=l},[l]);let h=(0,o.useRef)(s);(0,o.useEffect)(()=>{h.current=s},[s]);let[y,_]=(0,o.useState)(!1),[w,S]=(0,o.useState)(!1),{props:P,meta:j}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:n,blurComplete:y,showAltText:w});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b,{...P,unoptimized:j.unoptimized,placeholder:j.placeholder,fill:j.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:_,setShowAltText:S,sizesInput:e.sizes,ref:t}),j.preload?(0,a.jsx)(v,{isAppRouter:!r,imgAttributes:P}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return d},getImageProps:function(){return u}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(55682),o=e.r(8927),l=e.r(5500),s=a._(e.r(1948));function u(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=l.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},
|
|
3
|
+
Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,i.findClosestQuality)(a,e),l=(0,n.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${o}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}a.__next_img_default=!0;let o=a},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let i=e.r(71645);function n(e,t){let r=(0,i.useRef)(null),n=(0,i.useRef)(null);return(0,i.useCallback)(i=>{if(null===i){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=a(e,i)),t&&(n.current=a(t,i))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return _}});let i=e.r(55682),n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),l=i._(e.r(74080)),s=i._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,i,n,a,o){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function y(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,o.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:n,decoding:l,className:s,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:b,onLoadingCompleteRef:v,setBlurComplete:_,setShowAltText:w,sizesInput:S,onLoad:P,onError:j,...O},x)=>{let E=(0,o.useCallback)(e=>{e&&(j&&(e.src=e.src),e.complete&&h(e,c,b,v,_,p,S))},[e,c,b,v,_,j,p,S]),C=(0,g.useMergedRef)(x,E);return(0,a.jsx)("img",{...O,...y(d),loading:f,width:n,height:i,decoding:l,"data-nimg":m?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:C,onLoad:e=>{h(e.currentTarget,c,b,v,_,p,S)},onError:e=>{w(!0),"empty"!==c&&_(!0),j&&j(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,a.jsx)(s.default,{children:(0,a.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let _=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),i=(0,o.useContext)(c.ImageConfigContext),n=(0,o.useMemo)(()=>{let e=m||i||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:n,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:l,onLoadingComplete:s}=e,g=(0,o.useRef)(l);(0,o.useEffect)(()=>{g.current=l},[l]);let h=(0,o.useRef)(s);(0,o.useEffect)(()=>{h.current=s},[s]);let[y,_]=(0,o.useState)(!1),[w,S]=(0,o.useState)(!1),{props:P,meta:j}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:n,blurComplete:y,showAltText:w});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b,{...P,unoptimized:j.unoptimized,placeholder:j.placeholder,fill:j.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:_,setShowAltText:S,sizesInput:e.sizes,ref:t}),j.preload?(0,a.jsx)(v,{isAppRouter:!r,imgAttributes:P}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return d},getImageProps:function(){return u}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let a=e.r(55682),o=e.r(8927),l=e.r(5500),s=a._(e.r(1948));function u(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=l.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},8043,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("00b2f585aab02de15106087cb132626fb625c0db26",t.callServer,void 0,t.findSourceMapURL,"getHomeDirectory");e.s(["getHomeDirectory",()=>r])},73708,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("7ffb2975f419e7c26bdfb7b886d1a926fa4e634448",t.callServer,void 0,t.findSourceMapURL,"saveAttachments");e.s(["saveAttachments",()=>r])},27025,e=>{"use strict";let t=(0,e.i(75254).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",()=>t],27025)},81016,e=>{"use strict";function t(e){return e&&e.replace(/\\/g,"/").split("/").filter(Boolean).pop()||""}function r(e){if(!e)return"";let t=e.replace(/\\/g,"/"),r=t.length>1&&t.endsWith("/")?t.slice(0,-1):t,i=r.lastIndexOf("/");return -1===i?e.includes(":")&&e.length<=3?e:".":0===i?"/":e.includes(":")&&2===i?r.substring(0,3):r.substring(0,i)}e.s(["getBaseName",()=>t,"getDirName",()=>r])},63671,e=>{"use strict";let t="viba:sessions-updated-at",r="viba:sessions-updated";function i(){try{localStorage.setItem(t,new Date().toISOString())}catch{}window.dispatchEvent(new CustomEvent(r))}e.s(["SESSIONS_UPDATED_EVENT",0,r,"SESSIONS_UPDATED_STORAGE_KEY",0,t,"notifySessionsUpdated",()=>i])},56382,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("7f76c1c5fa2a2a8ac1ef4cd8262e536b2376830e89",t.callServer,void 0,t.findSourceMapURL,"startTtydProcess");e.s(["startTtydProcess",()=>r])}]);
|
package/README.md
CHANGED
|
@@ -30,12 +30,12 @@ Viba is a local session manager for AI coding agents. It lets you pick a Git rep
|
|
|
30
30
|
- Next.js (App Router) + React + TypeScript
|
|
31
31
|
- Tailwind CSS + DaisyUI
|
|
32
32
|
- `simple-git` for Git/worktree operations
|
|
33
|
-
- `ttyd` as the web terminal backend (proxied at `/terminal`)
|
|
33
|
+
- `ttyd` + `tmux` as the web terminal backend/persistence layer (proxied at `/terminal`)
|
|
34
34
|
|
|
35
35
|
## Prerequisites
|
|
36
36
|
|
|
37
37
|
- Node.js and npm
|
|
38
|
-
- A system package manager (`viba-cli` auto-installs `ttyd` when missing)
|
|
38
|
+
- A system package manager (`viba-cli` auto-installs `ttyd` and `tmux` when missing on macOS/Linux)
|
|
39
39
|
- At least one supported agent CLI installed (for example `codex`, `gemini`, or `agent`)
|
|
40
40
|
|
|
41
41
|
## Getting Started
|
package/bin/viba.mjs
CHANGED
|
@@ -32,20 +32,20 @@ function runCommand(command, args) {
|
|
|
32
32
|
return result.status === 0;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function getInstallStrategies() {
|
|
35
|
+
function getInstallStrategies(packageName) {
|
|
36
36
|
if (process.platform === "darwin") {
|
|
37
37
|
return [
|
|
38
38
|
{
|
|
39
39
|
label: "Homebrew",
|
|
40
40
|
requiredCommands: ["brew"],
|
|
41
41
|
command: "brew",
|
|
42
|
-
args: ["install",
|
|
42
|
+
args: ["install", packageName],
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
label: "MacPorts",
|
|
46
46
|
requiredCommands: ["sudo", "port"],
|
|
47
47
|
command: "sudo",
|
|
48
|
-
args: ["port", "install",
|
|
48
|
+
args: ["port", "install", packageName],
|
|
49
49
|
},
|
|
50
50
|
];
|
|
51
51
|
}
|
|
@@ -56,66 +56,70 @@ function getInstallStrategies() {
|
|
|
56
56
|
label: "apt-get",
|
|
57
57
|
requiredCommands: ["apt-get"],
|
|
58
58
|
command: "apt-get",
|
|
59
|
-
args: ["install", "-y",
|
|
59
|
+
args: ["install", "-y", packageName],
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
label: "sudo apt-get",
|
|
63
63
|
requiredCommands: ["sudo", "apt-get"],
|
|
64
64
|
command: "sudo",
|
|
65
|
-
args: ["apt-get", "install", "-y",
|
|
65
|
+
args: ["apt-get", "install", "-y", packageName],
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
label: "dnf",
|
|
69
69
|
requiredCommands: ["dnf"],
|
|
70
70
|
command: "dnf",
|
|
71
|
-
args: ["install", "-y",
|
|
71
|
+
args: ["install", "-y", packageName],
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
label: "sudo dnf",
|
|
75
75
|
requiredCommands: ["sudo", "dnf"],
|
|
76
76
|
command: "sudo",
|
|
77
|
-
args: ["dnf", "install", "-y",
|
|
77
|
+
args: ["dnf", "install", "-y", packageName],
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
label: "yum",
|
|
81
81
|
requiredCommands: ["yum"],
|
|
82
82
|
command: "yum",
|
|
83
|
-
args: ["install", "-y",
|
|
83
|
+
args: ["install", "-y", packageName],
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
label: "sudo yum",
|
|
87
87
|
requiredCommands: ["sudo", "yum"],
|
|
88
88
|
command: "sudo",
|
|
89
|
-
args: ["yum", "install", "-y",
|
|
89
|
+
args: ["yum", "install", "-y", packageName],
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
label: "pacman",
|
|
93
93
|
requiredCommands: ["pacman"],
|
|
94
94
|
command: "pacman",
|
|
95
|
-
args: ["-S", "--noconfirm",
|
|
95
|
+
args: ["-S", "--noconfirm", packageName],
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
label: "sudo pacman",
|
|
99
99
|
requiredCommands: ["sudo", "pacman"],
|
|
100
100
|
command: "sudo",
|
|
101
|
-
args: ["pacman", "-S", "--noconfirm",
|
|
101
|
+
args: ["pacman", "-S", "--noconfirm", packageName],
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
104
|
label: "zypper",
|
|
105
105
|
requiredCommands: ["zypper"],
|
|
106
106
|
command: "zypper",
|
|
107
|
-
args: ["--non-interactive", "install",
|
|
107
|
+
args: ["--non-interactive", "install", packageName],
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
label: "sudo zypper",
|
|
111
111
|
requiredCommands: ["sudo", "zypper"],
|
|
112
112
|
command: "sudo",
|
|
113
|
-
args: ["zypper", "--non-interactive", "install",
|
|
113
|
+
args: ["zypper", "--non-interactive", "install", packageName],
|
|
114
114
|
},
|
|
115
115
|
];
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
if (process.platform === "win32") {
|
|
119
|
+
if (packageName !== "ttyd") {
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
|
|
119
123
|
return [
|
|
120
124
|
{
|
|
121
125
|
label: "winget",
|
|
@@ -135,14 +139,14 @@ function getInstallStrategies() {
|
|
|
135
139
|
return [];
|
|
136
140
|
}
|
|
137
141
|
|
|
138
|
-
function
|
|
139
|
-
if (isCommandAvailable(
|
|
142
|
+
function ensureCommandInstalled(commandName) {
|
|
143
|
+
if (isCommandAvailable(commandName)) {
|
|
140
144
|
return;
|
|
141
145
|
}
|
|
142
146
|
|
|
143
|
-
console.log(
|
|
147
|
+
console.log(`${commandName} is not installed. Attempting automatic installation...`);
|
|
144
148
|
|
|
145
|
-
const installStrategies = getInstallStrategies();
|
|
149
|
+
const installStrategies = getInstallStrategies(commandName);
|
|
146
150
|
const availableManagers = installStrategies
|
|
147
151
|
.map((strategy) => strategy.label)
|
|
148
152
|
.join(", ");
|
|
@@ -156,21 +160,21 @@ function ensureTtydInstalled() {
|
|
|
156
160
|
}
|
|
157
161
|
|
|
158
162
|
attempted = true;
|
|
159
|
-
console.log(`Trying to install
|
|
163
|
+
console.log(`Trying to install ${commandName} via ${strategy.label}...`);
|
|
160
164
|
|
|
161
|
-
if (runCommand(strategy.command, strategy.args) && isCommandAvailable(
|
|
162
|
-
console.log(
|
|
165
|
+
if (runCommand(strategy.command, strategy.args) && isCommandAvailable(commandName)) {
|
|
166
|
+
console.log(`${commandName} installed successfully.`);
|
|
163
167
|
return;
|
|
164
168
|
}
|
|
165
169
|
}
|
|
166
170
|
|
|
167
171
|
if (!attempted) {
|
|
168
172
|
throw new Error(
|
|
169
|
-
|
|
173
|
+
`${commandName} is required, but no supported package manager was found on this machine. Checked: ${availableManagers || "none"}. Install ${commandName} manually and restart.`,
|
|
170
174
|
);
|
|
171
175
|
}
|
|
172
176
|
|
|
173
|
-
throw new Error(
|
|
177
|
+
throw new Error(`${commandName} is required, but automatic installation failed. Install ${commandName} manually and restart.`);
|
|
174
178
|
}
|
|
175
179
|
|
|
176
180
|
function printHelp() {
|
|
@@ -279,7 +283,10 @@ function ensureBuildExists() {
|
|
|
279
283
|
async function main() {
|
|
280
284
|
try {
|
|
281
285
|
const options = parseArgs(process.argv.slice(2));
|
|
282
|
-
|
|
286
|
+
ensureCommandInstalled("ttyd");
|
|
287
|
+
if (process.platform !== "win32") {
|
|
288
|
+
ensureCommandInstalled("tmux");
|
|
289
|
+
}
|
|
283
290
|
|
|
284
291
|
const envPort = Number.parseInt(process.env.PORT || "", 10);
|
|
285
292
|
const preferredPort =
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[33405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},70722,(a,b,c)=>{b.exports=a.x("tty",()=>require("tty"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},56918,a=>{"use strict";var b=a.i(51817),c=a.i(38642),d=a.i(15271);a.s([],53339),a.i(53339),a.s(["003f179b879bf486bcea4539d064b0df6354894815",()=>c.getConfig,"00ab8a0c236ad9d559b78b2f40023323c37ac6bdd1",()=>d.getHomeDirectory,"4048b7196f1061cefd703b46f17c51d615364c60f7",()=>b.rebaseSessionOntoBase,"4048cbacc60989a956e398b97c5d6dff843eb9c8d1",()=>b.listSessionBaseBranches,"40796d29d1bf40c8b8ef295f916e0b7e9689fe6d51",()=>b.markSessionInitialized,"40813875624d06a1f8787f36deabef6ff29aeaf787",()=>b.deleteSessionInBackground,"4082b1ccb87044a99f81729754159bc203cdc9ebf7",()=>b.getSessionUncommittedFileCount,"4094911d3dea3adc499026b8cf99fe8baed9d64542",()=>b.getSessionMetadata,"40a4fd6ce1ba2e70c09fb3886daffd6e4d53442f75",()=>b.mergeSessionToBase,"40b60c4c60b29ca628a121c12dd5c6c169cb53475f",()=>c.updateConfig,"40bc84b1df92f9bf7ec14659b50e2fadeb502fc149",()=>b.consumeSessionLaunchContext,"40cf9b8c016a6a5700129b5b22acb5083024107ff7",()=>d.listPathEntries,"40e88a6c6053be3677d1c1aae4183336e81d8e2df8",()=>b.getSessionDivergence,"6082549f5590043959fd70c4b3cd9ba1486cf31469",()=>b.updateSessionBaseBranch,"60b8598f5616868573041f2d8daceacdd5e3fdd3f4",()=>b.writeSessionPromptFile,"7f7ae33c4eab367d29219887a5215871af15cf74f5",()=>d.saveAttachments,"7f9ee07126919f7ff76d3216d51e1391fffaeac277",()=>d.startTtydProcess],56918)},44264,a=>{a.v(a=>Promise.resolve().then(()=>a(33405)))},37706,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__edf0aa7a._.js"].map(b=>a.l(b))).then(()=>b(78775)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__ef9ee460._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../.next-internal/server/app/session/%5BsessionId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {deleteSessionInBackground as '40813875624d06a1f8787f36deabef6ff29aeaf787'} from 'ACTIONS_MODULE0'\nexport {getSessionDivergence as '40e88a6c6053be3677d1c1aae4183336e81d8e2df8'} from 'ACTIONS_MODULE0'\nexport {getSessionUncommittedFileCount as '4082b1ccb87044a99f81729754159bc203cdc9ebf7'} from 'ACTIONS_MODULE0'\nexport {listSessionBaseBranches as '4048cbacc60989a956e398b97c5d6dff843eb9c8d1'} from 'ACTIONS_MODULE0'\nexport {mergeSessionToBase as '40a4fd6ce1ba2e70c09fb3886daffd6e4d53442f75'} from 'ACTIONS_MODULE0'\nexport {rebaseSessionOntoBase as '4048b7196f1061cefd703b46f17c51d615364c60f7'} from 'ACTIONS_MODULE0'\nexport {updateSessionBaseBranch as '6082549f5590043959fd70c4b3cd9ba1486cf31469'} from 'ACTIONS_MODULE0'\nexport {writeSessionPromptFile as '60b8598f5616868573041f2d8daceacdd5e3fdd3f4'} from 'ACTIONS_MODULE0'\nexport {getConfig as '003f179b879bf486bcea4539d064b0df6354894815'} from 'ACTIONS_MODULE1'\nexport {updateConfig as '40b60c4c60b29ca628a121c12dd5c6c169cb53475f'} from 'ACTIONS_MODULE1'\nexport {getHomeDirectory as '00ab8a0c236ad9d559b78b2f40023323c37ac6bdd1'} from 'ACTIONS_MODULE2'\nexport {listPathEntries as '40cf9b8c016a6a5700129b5b22acb5083024107ff7'} from 'ACTIONS_MODULE2'\nexport {saveAttachments as '7f7ae33c4eab367d29219887a5215871af15cf74f5'} from 'ACTIONS_MODULE2'\nexport {consumeSessionLaunchContext as '40bc84b1df92f9bf7ec14659b50e2fadeb502fc149'} from 'ACTIONS_MODULE0'\nexport {getSessionMetadata as '4094911d3dea3adc499026b8cf99fe8baed9d64542'} from 'ACTIONS_MODULE0'\nexport {markSessionInitialized as '40796d29d1bf40c8b8ef295f916e0b7e9689fe6d51'} from 'ACTIONS_MODULE0'\nexport {startTtydProcess as '7f9ee07126919f7ff76d3216d51e1391fffaeac277'} from 'ACTIONS_MODULE2'\n"],"names":[],"mappings":"6SAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OAQA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36438,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(18566),n=e.i(95187);let s=(0,n.createServerReference)("40813875624d06a1f8787f36deabef6ff29aeaf787",n.callServer,void 0,n.findSourceMapURL,"deleteSessionInBackground"),i=(0,n.createServerReference)("40e88a6c6053be3677d1c1aae4183336e81d8e2df8",n.callServer,void 0,n.findSourceMapURL,"getSessionDivergence"),o=(0,n.createServerReference)("4082b1ccb87044a99f81729754159bc203cdc9ebf7",n.callServer,void 0,n.findSourceMapURL,"getSessionUncommittedFileCount"),l=(0,n.createServerReference)("4048cbacc60989a956e398b97c5d6dff843eb9c8d1",n.callServer,void 0,n.findSourceMapURL,"listSessionBaseBranches"),c=(0,n.createServerReference)("40a4fd6ce1ba2e70c09fb3886daffd6e4d53442f75",n.callServer,void 0,n.findSourceMapURL,"mergeSessionToBase"),d=(0,n.createServerReference)("4048b7196f1061cefd703b46f17c51d615364c60f7",n.callServer,void 0,n.findSourceMapURL,"rebaseSessionOntoBase"),u=(0,n.createServerReference)("6082549f5590043959fd70c4b3cd9ba1486cf31469",n.callServer,void 0,n.findSourceMapURL,"updateSessionBaseBranch"),h=(0,n.createServerReference)("60b8598f5616868573041f2d8daceacdd5e3fdd3f4",n.callServer,void 0,n.findSourceMapURL,"writeSessionPromptFile");var m=e.i(74230),p=e.i(21621),f=e.i(27612),b=e.i(75254);let x=(0,b.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var v=e.i(31343);let w=(0,b.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]),g=(0,b.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),y=(0,b.default)("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]]);var j=e.i(55716);let k=(0,b.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),N=(0,b.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),S=(0,b.default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),C=(0,b.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),$=(0,b.default)("grip",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"19",cy:"5",r:"1",key:"w8mnmm"}],["circle",{cx:"5",cy:"5",r:"1",key:"lttvr7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}],["circle",{cx:"19",cy:"19",r:"1",key:"shf9b7"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]),R=(0,b.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var E=e.i(7233);let M=(0,b.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),L=(0,b.default)("mouse-pointer-2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]);var F=e.i(71689);let P=(0,b.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),z=(0,b.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var D=e.i(57688),A=e.i(72194);let B=(0,n.createServerReference)("40cf9b8c016a6a5700129b5b22acb5083024107ff7",n.callServer,void 0,n.findSourceMapURL,"listPathEntries");var q=e.i(43722);let T=(0,b.default)("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),U=(0,b.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var I=e.i(27025);let W=(0,b.default)("grid-2x2",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),H=(0,b.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]),K=(0,b.default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),O=(0,b.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),_=(0,b.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var V=e.i(81016);let G="viba:session-file-browser:view-mode";function X({initialPath:e,worktreePath:a,onConfirm:n,onCancel:s,onPathChange:i}){let o=(0,r.useMemo)(()=>new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".svg",".ico",".avif"]),[]),[l,c]=(0,r.useState)(""),[d,u]=(0,r.useState)([]),[h,f]=(0,r.useState)(!1),[b,x]=(0,r.useState)(null),[v,w]=(0,r.useState)(""),[g,y]=(0,r.useState)([]),[j,k]=(0,r.useState)(null),[N,S]=(0,r.useState)("list"),[C,$]=(0,r.useState)(!1),[R,E]=(0,r.useState)({}),[M,L]=(0,r.useState)([]);(0,r.useEffect)(()=>{let t=!0;return(async()=>{try{let r=await (0,A.getHomeDirectory)();if(!t)return;w(r),e||c(r)}catch(e){console.error("Failed to resolve home directory:",e)}e&&t&&c(e)})(),()=>{t=!1}},[e]),(0,r.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await (0,m.getConfig)();if(!e)return;let r=Array.isArray(t.pinnedFolderShortcuts)?t.pinnedFolderShortcuts.filter(e=>"string"==typeof e&&e.trim().length>0):[];L(Array.from(new Set(r)))}catch(e){console.error("Failed to load pinned folder shortcuts:",e)}})(),()=>{e=!1}},[]),(0,r.useEffect)(()=>{try{let e=localStorage.getItem(G);("list"===e||"grid"===e)&&S(e)}catch{}finally{$(!0)}},[]),(0,r.useEffect)(()=>{if(C)try{localStorage.setItem(G,N)}catch{}},[C,N]),(0,r.useEffect)(()=>{l&&(async()=>{f(!0),x(null);try{let e=await B(l);u(e)}catch(e){console.error("Failed to list files:",e),x("Failed to load directory contents")}finally{f(!1)}})()},[l]),(0,r.useEffect)(()=>{l&&i?.(l)},[l,i]),(0,r.useEffect)(()=>{y([]),k(null),E({})},[l]);let P=(0,r.useMemo)(()=>new Set(g),[g]),z=(e,t,r)=>{if(e.isDirectory)return void c(e.path);let a=r.metaKey||r.ctrlKey;if(r.shiftKey&&null!==j){let e=Math.min(j,t),r=Math.max(j,t);y(d.slice(e,r+1).filter(e=>!e.isDirectory).map(e=>e.path));return}if(a){y(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path]),k(t);return}y([e.path]),k(t)},X=async()=>{if(x(null),!a)return void x("Cannot paste: Session worktree path is missing.");try{if(f(!0),!navigator.clipboard||!navigator.clipboard.read)throw Error("Clipboard API not supported in this browser");let e=await navigator.clipboard.read(),t=new FormData,r=!1;for(let a of e)for(let e of a.types)if(e.startsWith("image/")){let n=await a.getType(e),s=e.split("/")[1]||"png",i=`pasted-image-${Date.now()}.${s}`,o=new File([n],i,{type:e});t.append(i,o),r=!0;break}if(r){let e=await (0,q.saveAttachments)(a,t);if(e&&e.length>0)return void await n(e);x("Failed to save pasted files.")}else try{let e=await navigator.clipboard.readText();e&&e.trim().startsWith("/")?x("No file content found in clipboard. Copy an image or file first."):x("No file content found in clipboard.")}catch{x("No file content found in clipboard.")}}catch(t){let e=t instanceof Error?t.message:String(t);console.error("Paste error:",t),x(`Failed to read from clipboard: ${e}`)}finally{f(!1)}},Y=async e=>{L(e);try{await (0,p.updateConfig)({pinnedFolderShortcuts:e})}catch(e){console.error("Failed to save pinned folder shortcuts:",e),x("Failed to save pinned shortcuts")}},J=async e=>{(x(null),M.includes(e))?await Y(M.filter(t=>t!==e)):await Y([...M,e])},Z=async()=>{0!==g.length&&await n(g)};return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,t.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-5xl h-[82vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,t.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,t.jsx)(I.Folder,{className:"w-5 h-5"}),"Browse Files"]}),(0,t.jsx)("button",{onClick:s,className:"btn btn-sm btn-ghost btn-circle",title:"Close file browser",children:"✕"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,t.jsx)("button",{onClick:()=>{let e=(0,V.getDirName)(l);e&&e!==l&&c(e)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===l||!l,children:(0,t.jsx)(F.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsxs)("button",{onClick:()=>{v&&l!==v&&c(v)},className:"btn btn-sm btn-ghost gap-1",title:v?`Go to Home Folder (${v})`:"Go to Home Folder",disabled:!v||l===v,children:[(0,t.jsx)(H,{className:"w-4 h-4"}),"Home"]}),(0,t.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:l}),(0,t.jsxs)("div",{className:"join",children:[(0,t.jsx)("button",{type:"button",onClick:()=>S("list"),className:`btn btn-sm join-item ${"list"===N?"btn-active":"btn-ghost"}`,title:"List view",children:(0,t.jsx)(K,{className:"w-4 h-4"})}),(0,t.jsx)("button",{type:"button",onClick:()=>S("grid"),className:`btn btn-sm join-item ${"grid"===N?"btn-active":"btn-ghost"}`,title:"Grid view",children:(0,t.jsx)(W,{className:"w-4 h-4"})})]}),(0,t.jsxs)("button",{onClick:Z,className:"btn btn-sm btn-primary gap-2",disabled:0===g.length,title:"Insert selected absolute paths",children:["Insert (",g.length,")"]}),(0,t.jsx)("div",{className:"w-[1px] h-6 bg-base-content/10 mx-1"}),(0,t.jsxs)("button",{onClick:X,className:"btn btn-sm btn-ghost gap-2",title:"Paste file/image from clipboard",disabled:!a,children:[(0,t.jsx)(T,{className:"w-4 h-4"}),"Paste"]})]}),M.length>0&&(0,t.jsx)("div",{className:"px-3 py-2 border-b border-base-300 bg-base-200/50",children:(0,t.jsx)("div",{className:"flex items-center gap-2 overflow-x-auto",children:M.map(e=>{let r=e===l,a=e.split(/[\\/]/).filter(Boolean).pop()||e;return(0,t.jsxs)("div",{className:"join shrink-0",children:[(0,t.jsxs)("button",{type:"button",className:`btn btn-xs join-item ${r?"btn-primary":"btn-ghost"}`,onClick:()=>c(e),title:e,children:[(0,t.jsx)(I.Folder,{className:"w-3 h-3"}),a]}),(0,t.jsx)("button",{type:"button",className:"btn btn-xs btn-ghost join-item",onClick:()=>void J(e),title:`Unpin ${e}`,children:(0,t.jsx)(_,{className:"w-3 h-3"})})]},e)})})}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:h?(0,t.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):b?(0,t.jsx)("div",{className:"alert alert-error",children:b}):0===d.length?(0,t.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):"list"===N?(0,t.jsx)("div",{className:"grid grid-cols-1 gap-1",children:d.map((e,r)=>{let a=P.has(e.path);return(0,t.jsxs)("div",{className:`flex items-center justify-between p-2 rounded-md cursor-pointer transition-colors border ${a?"bg-primary text-primary-content border-primary":"hover:bg-base-100 border-transparent"}`,onClick:t=>z(e,r,t),title:e.path,children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[e.isDirectory?(0,t.jsx)(I.Folder,{className:"w-5 h-5 shrink-0"}):(0,t.jsx)(U,{className:"w-5 h-5 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]}),(0,t.jsx)("span",{className:"text-[10px] opacity-70 shrink-0",children:e.isDirectory?(0,t.jsx)("button",{type:"button",className:"btn btn-ghost btn-xs h-6 min-h-6",onClick:t=>{t.stopPropagation(),J(e.path)},title:M.includes(e.path)?"Unpin folder":"Pin folder",children:(0,t.jsx)(O,{className:`w-3 h-3 ${M.includes(e.path)?"fill-current":""}`})}):"file"})]},e.path)})}):(0,t.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-3",children:d.map((e,r)=>{var a;let n,s=P.has(e.path),i=!e.isDirectory&&-1!==(n=(a=e.name).lastIndexOf("."))&&o.has(a.slice(n).toLowerCase()),l=`/api/file-thumbnail?path=${encodeURIComponent(e.path)}`;return(0,t.jsxs)("button",{type:"button",className:`rounded-lg border text-left overflow-hidden transition-colors ${s?"border-primary bg-primary/15":"border-base-300 hover:bg-base-100"}`,onClick:t=>z(e,r,t),title:e.path,children:[(0,t.jsxs)("div",{className:"aspect-square bg-base-300 flex items-center justify-center overflow-hidden relative",children:[i&&!R[e.path]?(0,t.jsx)(D.default,{src:l,alt:e.name,fill:!0,sizes:"(max-width: 768px) 50vw, (max-width: 1024px) 25vw, 20vw",className:"object-cover",unoptimized:!0,onError:()=>E(t=>({...t,[e.path]:!0}))}):e.isDirectory?(0,t.jsx)(I.Folder,{className:"w-10 h-10 opacity-80"}):(0,t.jsx)(U,{className:"w-10 h-10 opacity-80"}),e.isDirectory&&(0,t.jsx)("button",{type:"button",className:`absolute top-1 right-1 btn btn-xs btn-circle ${M.includes(e.path)?"btn-primary":"btn-ghost bg-base-100/70"}`,onClick:t=>{t.stopPropagation(),J(e.path)},title:M.includes(e.path)?"Unpin folder":"Pin folder",children:(0,t.jsx)(O,{className:`w-3 h-3 ${M.includes(e.path)?"fill-current":""}`})})]}),(0,t.jsxs)("div",{className:"px-2 py-2",children:[(0,t.jsx)("div",{className:"truncate text-sm font-medium",title:e.name,children:e.name}),(0,t.jsx)("div",{className:"text-[10px] opacity-70",children:e.isDirectory?"folder":i?"image":"file"})]})]},e.path)})})}),(0,t.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/60 text-center",children:"Click: single select. Cmd/Ctrl+Click: multi-select. Shift+Click: range select. Click a folder to open it."})]})})}var Y=e.i(63671);let J=[{id:"vscode",name:"VS Code",protocol:"vscode"},{id:"cursor",name:"Cursor",protocol:"cursor"},{id:"windsurf",name:"Windsurf",protocol:"windsurf"},{id:"antigravity",name:"Antigravity",protocol:"antigravity"}],Z=e=>`'${e.replace(/'/g,"'\\''")}'`,Q="viba-terminal-size",ee="viba-agent-preview-split-ratio",et=e=>Math.max(.2,Math.min(.8,e)),er=e=>{let t=e.trim();return t?/^https?:\/\//i.test(t)?t:/^[a-z][a-z0-9+.-]*:/i.test(t)?null:`http://${t}`:null},ea=(e,t)=>{let r=e.replace(/\\/g,"/").replace(/\/+$/,""),a=t.replace(/\\/g,"/").replace(/^\/+/,"");return`${r}/${a}`},en=(e,t)=>{let r=t.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!r)return null;let a=(e=>{let t=e.trim();if(!t)return"";if(t=t.replace(/[#?].*$/,""),/^file:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}else if(/^https?:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}return(t=t.replace(/^webpack(?:-internal)?:\/\/\/?/,"").replace(/^rsc:\/\//,"").replace(/^\(.*?\)\//,"").replace(/^\/\.\//,"/").replace(/^\.\//,"").replace(/\\/g,"/")).trim()})(e);if(!a)return null;if(a.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(a))return a;let n=new Set;n.add(a.replace(/^\.\/+/,""));let s=a.indexOf("/src/");for(let e of(s>=0&&n.add(a.slice(s+1)),a.startsWith("src/")&&n.add(a),n))if(e)return ea(r,e);return null},es=e=>{let t=e.trim();if(!t)return"";let r=t.match(/[A-Za-z_$][\w$]*/);return r?r[0]:""};function ei({repo:e,worktree:a,branch:n,baseBranch:b,sessionName:D,agent:A,model:B,startupScript:q,devServerScript:T,initialMessage:U,rawInitialMessage:I,title:W,attachmentNames:H,onExit:K,isResume:O,onSessionStart:_}){let G="hidden min-[1900px]:inline",ea=(0,r.useRef)(null),ei=(0,r.useRef)(null),eo=(0,r.useRef)(null),el=(0,r.useRef)(null),ec=(0,r.useRef)(null),ed=(0,r.useRef)({startX:0,startRatio:.5}),eu=(0,r.useRef)(null),eh=(0,r.useRef)(null),[em,ep]=(0,r.useState)("Initializing..."),[ef,eb]=(0,r.useState)("idle"),[ex,ev]=(0,r.useState)(null),[ew,eg]=(0,r.useState)(!1),[ey,ej]=(0,r.useState)(!1),[ek,eN]=(0,r.useState)(!1),[eS,eC]=(0,r.useState)(!1),[e$,eR]=(0,r.useState)(!1),[eE,eM]=(0,r.useState)(a||e),[eL,eF]=(0,r.useState)(!1),[eP,ez]=(0,r.useState)(b?.trim()||""),[eD,eA]=(0,r.useState)([]),[eB,eq]=(0,r.useState)(!1),eT=(0,r.useRef)(!1),[eU,eI]=(0,r.useState)(!1),[eW,eH]=(0,r.useState)({ahead:0,behind:0}),[eK,eO]=(0,r.useState)(0),[e_,eV]=(0,r.useState)(!1),[eG,eX]=(0,r.useState)(""),[eY,eJ]=(0,r.useState)(""),[eZ,eQ]=(0,r.useState)(!1),[e0,e1]=(0,r.useState)(!1),[e2,e3]=(0,r.useState)(.5),[e6,e4]=(0,r.useState)(!1),[e5,e9]=(0,r.useState)(!0),[e7,e8]=(0,r.useState)({width:460,height:320}),[te,tt]=(0,r.useState)(!1),[tr,ta]=(0,r.useState)(!1),tn=(0,r.useRef)({startX:0,startY:0,startWidth:0,startHeight:0});(0,r.useEffect)(()=>{eM(a||e)},[e,a]),(0,r.useEffect)(()=>{let e=localStorage.getItem(Q);if(e)try{e8(JSON.parse(e))}catch(e){console.error("Failed to parse saved terminal size",e)}let t=localStorage.getItem(ee);if(t){let e=Number.parseFloat(t);Number.isNaN(e)||e3(et(e))}ta(!0)},[]),(0,r.useEffect)(()=>{if(!te)return;let e=e=>{let t=tn.current.startX-e.clientX,r=tn.current.startY-e.clientY;e8({width:Math.max(300,Math.min(window.innerWidth-32,tn.current.startWidth+t)),height:Math.max(100,Math.min(window.innerHeight-32,tn.current.startHeight+r))})},t=()=>{tt(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[te]),(0,r.useEffect)(()=>{tr&&!te&&localStorage.setItem(Q,JSON.stringify(e7))},[tr,te,e7]),(0,r.useEffect)(()=>{tr&&!e6&&localStorage.setItem(ee,String(e2))},[e2,tr,e6]),(0,r.useEffect)(()=>{if(!e6)return;let e=e=>{let t=ec.current;if(!t)return;let r=t.getBoundingClientRect();if(r.width<=0)return;let a=e.clientX-ed.current.startX;e3(et((ed.current.startRatio*r.width+a)/r.width))},t=()=>{e4(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[e6]),(0,r.useEffect)(()=>{if(!e5&&ei.current){let e=ei.current;setTimeout(()=>{try{let t=e.contentWindow;if(t&&t.term){t.term.scrollToBottom(),t.focus();let r=e.contentDocument?.querySelector("textarea.xterm-helper-textarea");r&&r.focus()}}catch(e){console.error("Failed to focus/scroll terminal on restore:",e)}},100)}},[e5]);let[ts,ti]=(0,r.useState)("vscode");(0,r.useEffect)(()=>{let e=W?.trim();if(e)return document.title=`${e} | Viba`,()=>{document.title="Viba"};document.title="Viba"},[W]),(0,r.useEffect)(()=>{(async()=>{let e=await (0,m.getConfig)();e.selectedIde&&J.some(t=>t.id===e.selectedIde)&&ti(e.selectedIde)})()},[]),(0,r.useEffect)(()=>{ez(b?.trim()||""),eA([])},[b,D]);let to=async e=>{let t=e.target.value;ti(t),await (0,p.updateConfig)({selectedIde:t})},tl=async(t=!0)=>{if(!e||!a||!n||t&&!confirm("Are you sure you want to delete this session? This will remove the branch and worktree."))return!1;ev(null),eb("idle"),ep("Purging session...");try{let e=await s(D);if(!e.success)return console.error("Cleanup failed:",e.error||"Unknown error"),eb("error"),ev(e.error||"Failed to delete session"),!1;(0,Y.notifySessionsUpdated)()}catch(e){return console.error("Cleanup request failed:",e),eb("error"),ev(e instanceof Error?e.message:"Unknown error"),!1}return K(!0),!0},tc=async()=>{await tl(!0)},td=(0,r.useCallback)((e,t)=>new Promise(r=>{let a=ea.current;if(!a)return void r(!1);let s=(i=0)=>{if(i>30)return void r(!1);try{let o=a.contentWindow;if(!o||(o.postMessage({type:"viba:agent-request",action:t,prompt:e,sessionName:D,branch:n,baseBranch:eP||void 0,timestamp:Date.now()},"*"),!o.term))return void setTimeout(()=>s(i+1),300);o.term.paste(e);let l=a.contentDocument?.querySelector("textarea.xterm-helper-textarea");l?(l.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:o})),l.focus()):o.term.paste("\r"),o.focus(),r(!0)}catch(e){console.error("Failed to send prompt to agent iframe:",e),setTimeout(()=>s(i+1),300)}};s()}),[n,eP,D]),tu=async()=>{ej(!0),ep("Requesting commit from agent..."),ep(await td("Please create a git commit with the current changes in this worktree.","commit")?"Commit request sent to agent":"Failed to send commit request to agent"),ej(!1)},th=(0,r.useCallback)(e=>new Promise(t=>{let r=ea.current;if(!r)return void t(!1);let a=(n=0)=>{if(n>30)return void t(!1);try{let s=r.contentWindow;if(!s||!s.term)return void setTimeout(()=>a(n+1),300);s.term.paste(e);let i=r.contentDocument?.querySelector("textarea.xterm-helper-textarea");i&&i.focus(),s.focus(),t(!0)}catch(e){console.error("Failed to paste into agent iframe:",e),setTimeout(()=>a(n+1),300)}};a()}),[]),tm=(0,r.useCallback)(async e=>{if(0===e.length)return;eF(!0);let t=`${e.join(" ")} `;ep(await th(t)?`Inserted ${e.length} file path${1===e.length?"":"s"} into agent input`:"Failed to insert file paths into agent input"),eF(!1)},[th]),tp=(0,r.useCallback)(async t=>{let r=t.map(es).filter(Boolean);if(0===r.length)return null;let n=Array.from(new Set([e,a].map(e=>(e||"").trim()).filter(Boolean)));if(0===n.length)return null;for(let e of n)try{let t=await fetch("/api/component-source/resolve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({componentNames:r,workspaceRoot:e})}),a=await t.json().catch(()=>null);if(!t.ok){console.warn("Component source resolve miss",{componentNames:r,workspaceRoot:e,error:a?.error||t.statusText});continue}let n="string"==typeof a?.sourcePath?a.sourcePath.trim():"",s="string"==typeof a?.resolvedName?a.resolvedName.trim():"";if(n&&s)return{sourcePath:n,resolvedName:s}}catch(e){console.error("Failed to resolve component source path:",e)}return null},[e,a]),tf=(0,r.useCallback)(async()=>{if(D&&!eT.current){eT.current=!0,eq(!0);try{let e=await l(D);e.success?(eA(e.branches??[]),ez(e.baseBranch?.trim()||"")):e.error&&ep(`Failed to load branches: ${e.error}`)}catch(e){console.error("Failed to load base branches:",e)}finally{eT.current=!1,eq(!1)}}},[D]);(0,r.useEffect)(()=>{D&&tf()},[tf,D]);let tb=(0,r.useCallback)(async()=>{if(D)try{let e=await i(D);e.success&&"number"==typeof e.ahead&&"number"==typeof e.behind&&eH({ahead:e.ahead,behind:e.behind})}catch(e){console.error("Failed to load branch divergence:",e)}},[D]);(0,r.useEffect)(()=>{if(!D||!eP)return void eH({ahead:0,behind:0});tb();let e=window.setInterval(()=>{tb()},6e4);return()=>window.clearInterval(e)},[eP,tb,D]);let tx=(0,r.useCallback)(async()=>{if(D)try{let e=await o(D);e.success&&"number"==typeof e.count&&eO(e.count)}catch(e){console.error("Failed to load uncommitted file count:",e)}},[D]);(0,r.useEffect)(()=>{if(!D)return;tx();let e=window.setInterval(()=>{tx()},1e4);return()=>window.clearInterval(e)},[tx,D]);let tv=async()=>{if(!D||!eP)return!1;eN(!0),ep("Merging session branch...");try{let e=await c(D);if(e.success)return ep(`Merged ${e.branchName} into ${e.baseBranch}`),tb(),!0;return ep(`Merge failed: ${e.error}`),!1}catch(e){return console.error("Merge request failed:",e),ep("Merge failed"),!1}finally{eN(!1)}},tw=async()=>{await tv()},[tg,ty]=(0,r.useState)(!1),tj=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=e=>{tj.current&&!tj.current.contains(e.target)&&ty(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let tk=async e=>{if(ty(!1),!D)return;let t=e!==eP;eC(!0),ep(t?`Updating base to ${e} and rebasing...`:"Rebasing session branch...");try{if(t){let t=await u(D,e);if(!t.success){ep(`Failed to update base branch: ${t.error}`),eC(!1);return}ez(t.baseBranch),await tf()}let r=await d(D);r.success?(ep(`Rebased ${r.branchName} onto ${r.baseBranch}`),tb()):ep(`Rebase failed: ${r.error}`)}catch(e){console.error("Rebase request failed:",e),ep("Rebase failed")}finally{eC(!1)}},tN=(0,r.useCallback)(async(e,t)=>{let r=er(e);if(!r)return ep("Please enter a preview URL"),!1;eX(r),eQ(!1),ep(`Loading preview: ${r}`);try{let e=await fetch("/api/preview-proxy/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:r})}),a=await e.json().catch(()=>null);if(!e.ok||!a?.proxyUrl)throw Error(a?.error||"Failed to start preview proxy");return eJ(a.proxyUrl),t&&eV(!0),ep(`Loaded preview: ${r}`),!0}catch(t){let e=t instanceof Error?t.message:"Failed to load preview";return console.error("Failed to load preview via proxy:",t),ep(`Failed to load preview: ${e}`),!1}},[]),tS=(0,r.useCallback)(()=>{if(!eY)return void ep("Load a preview before picking elements");let e=eo.current?.contentWindow;if(!e)return void ep("Preview is not ready yet");let t=!eZ;e.postMessage({type:"viba:preview-picker-toggle",active:t},"*"),eQ(t),ep(t?"Picker enabled: click an element in the preview":"Picker disabled")},[eZ,eY]),tC=(0,r.useCallback)(e=>{let t=eo.current?.contentWindow;return t?(t.postMessage(e,"*"),!0):(ep("Preview is not ready yet"),!1)},[]),t$=(0,r.useCallback)(e=>{eY?tC({type:"viba:preview-navigation",action:e})&&"reload"===e&&ep("Reloading preview..."):ep("Load a preview before using navigation controls")},[tC,eY]),tR=(0,r.useCallback)(()=>{tC({type:"viba:preview-location-request"})},[tC]),tE=(0,r.useCallback)((e,t)=>{let r=er(e);return!!r&&(t?window.open(r,"_blank","noopener,noreferrer"):tN(r,!0),!0)},[tN]),tM=(0,r.useCallback)((e,t,r)=>{t.current?.();let a=e.contentWindow,n=a?.term;if(!a||!n)return;let s=r?.onLinkActivated,i=[],o=e.contentDocument,l={metaKey:!1,ctrlKey:!1,at:0};if(o){let e=e=>{l={metaKey:e.metaKey,ctrlKey:e.ctrlKey,at:Date.now()}};o.addEventListener("mousedown",e,!0),o.addEventListener("click",e,!0),i.push(()=>{o.removeEventListener("mousedown",e,!0),o.removeEventListener("click",e,!0)})}let c=a.open.bind(a);a.open=(...e)=>{let t=Date.now()-l.at<1e3&&(l.metaKey||l.ctrlKey);if("string"==typeof e[0]&&e[0].trim())return(s?.(),tE(e[0],t))?null:c(...e);if(0===e.length){let e=null;return{opener:null,location:{set href(url){if(s?.(),!tE(url,t)&&(e=c())){try{e.opener=null}catch{}e.location.href=url}},get href(){return""}}}}return c(...e)},i.push(()=>{a.open=c});let d=n._core?._linkProviderService?.linkProviders;if(d instanceof Map){for(let e of d.values())if(e&&"object"==typeof e){if("function"==typeof e._handler){let t=e._handler;e._handler=(e,r)=>{s?.(),tE(r,!!(e?.metaKey||e?.ctrlKey))||t(e,r)},i.push(()=>{e._handler=t})}if("function"==typeof e.provideLinks){let t=e.provideLinks.bind(e);e.provideLinks=(e,r)=>{t(e,e=>{if(Array.isArray(e))for(let t of e){if(!t||"object"!=typeof t||"function"!=typeof t.activate)continue;let e=t.activate.bind(t);t.activate=(t,r)=>{s?.(),tE(r,!!(t?.metaKey||t?.ctrlKey))||e(t,r)}}r(e)})},i.push(()=>{e.provideLinks=t})}}}let u=n.options.linkHandler,h={allowNonHttpProtocols:u?.allowNonHttpProtocols??!1,activate:(e,t,r)=>{s?.(),tE(t,!!(e?.metaKey||e?.ctrlKey))||u?.activate?.(e,t,r)},hover:(e,t,r)=>{u?.hover?.(e,t,r)},leave:(e,t,r)=>{u?.leave?.(e,t,r)}};n.options.linkHandler=h,i.push(()=>{n.options.linkHandler=u??null}),t.current=()=>{for(let e of i)e();t.current=null}},[tE]);if((0,r.useEffect)(()=>{if(!e_||eG.trim())return;let e=window.setTimeout(()=>{el.current?.focus()},0);return()=>{window.clearTimeout(e)}},[e_,eG]),(0,r.useEffect)(()=>{let t=t=>{if(!eo.current||t.source!==eo.current.contentWindow)return;let r=t.data;if(r&&"object"==typeof r){if("viba:preview-picker-state"===r.type)return void eQ(!!r.active);if("viba:preview-picker-ready"===r.type){let e=eo.current?.contentWindow;e&&e.postMessage({type:"viba:preview-location-request"},"*");return}if("viba:preview-location-change"===r.type){"string"==typeof r.url&&r.url.trim().length>0&&eX(r.url);return}if("viba:preview-element-selected"===r.type){let t=r.element&&"object"==typeof r.element?r.element:null,n=Array.isArray(t?.reactComponentStack)?t.reactComponentStack:[],s=((e,t)=>{for(let r of e){if(!r||"object"!=typeof r)continue;let e="string"==typeof r.name?r.name.trim():"";if(!e)continue;let a="string"==typeof r.source?.fileName?r.source.fileName.trim():"",n=a?en(a,t):null;if(n)return`${e} (${n})`}return null})(n,a||e),i=n[0]&&"object"==typeof n[0]?n[0].name:void 0,o="string"==typeof i&&i.trim().length>0?i.trim():"",l=new Set(["Suspense","ErrorBoundary","Router","AppRouter","LayoutRouter","RenderFromTemplateContext","ScrollAndFocusHandler","InnerLayoutRouter","RedirectErrorBoundary","NotFoundBoundary","LoadingBoundary","ReactDevOverlay","HotReload","AppContainer","Route","Link","Image","OuterLayoutRouter","Head","StringRefs","Fragment","Profiler","StrictMode","SuspenseList","Script","Page","__next_root_layout_boundary__"]),c=Array.from(new Set(n.map(e=>{if(!e||"object"!=typeof e)return"";let t=e.name;return"string"==typeof t?t.trim():""}).filter(e=>!(!e||l.has(e)||e.startsWith("styled.")||e.startsWith("Styled(")))));console.log("Filtered stack component names:",c);let d=s||o||("string"==typeof t?.selector?t.selector:"");if(console.log("Preview selected element:",t),console.log("Preview selected reactComponentStack:",n),console.log("Preview selected identifier:",d),eQ(!1),!d)return void ep("Element selected. No identifier was resolved.");(async()=>{let e=s||"";if(!e&&c.length>0){e1(!0);try{let t=await tp(c);t?.resolvedName&&t?.sourcePath&&(e=`${t.resolvedName} (${t.sourcePath})`)}finally{e1(!1)}}if(!e){if(c.length>0)return ep("Element selected, but source file path could not be resolved for the component");e=d}console.log("Final resolved component identifier:",e),ep(await th(`${e} `)?`Element identifier sent to agent: ${e}`:"Element selected, but failed to send identifier to agent input")})()}}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}},[th,e,tp,a]),(0,r.useEffect)(()=>{eQ(!1)},[eY]),!e)return(0,t.jsx)("div",{className:"p-4 text-error",children:"No repository specified"});if("error"===ef)return(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsx)("div",{className:"card w-96 bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error",children:"Cleanup failed"}),(0,t.jsx)("p",{children:ex||"An unknown error occurred while cleaning up this session."}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>K(),children:"Back to Home"})})]})})});let tL=Array.from(new Set([...eP?[eP]:[],...eD])).filter(e=>e!==n||e===eP),tF=e5?`calc(40px - min(${e7.width}px, calc(100vw - 2rem)))`:16;return(0,t.jsxs)("div",{className:`flex flex-col h-screen w-full overflow-hidden bg-base-100 ${te||e6?"select-none":""}`,children:[(te||e6)&&(0,t.jsx)("div",{className:`fixed inset-0 z-[9999] ${te?"cursor-nwse-resize":"cursor-col-resize"}`}),(0,t.jsxs)("div",{className:"z-20 bg-base-300/95 p-2 text-xs flex justify-between px-4 font-mono select-none items-center shadow-md backdrop-blur-sm border-b border-base-content/10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 px-1 hover:bg-base-content/10",onClick:()=>K(),title:"Back to Home",children:(0,t.jsx)(C,{className:"w-4 h-4"})}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"opacity-50",children:"Repo:"}),(0,t.jsx)("span",{className:"font-bold",children:(0,V.getBaseName)(e)})]}),D&&(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 items-center gap-2 text-[10px] opacity-70",children:[(0,t.jsx)("span",{children:"Session:"}),(0,t.jsx)("span",{className:"truncate max-w-[220px]",title:D,children:D})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden",children:[(0,t.jsx)("select",{className:"select select-xs h-6 min-h-6 bg-base-200 border-none focus:outline-none rounded-none pr-7",value:ts,onChange:to,children:J.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/20"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none hover:bg-base-content/10",onClick:()=>{if(!a)return;let e=J.find(e=>e.id===ts);if(!e)return;let t=`${e.protocol}://file/${encodeURI(a)}`;window.open(t,"_blank")},title:`Open in ${J.find(e=>e.id===ts)?.name}`,children:[(0,t.jsx)(x,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"Open"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{if(!a||!n)return;let e=new URLSearchParams({path:a,branch:n});window.open(`http://localhost:3100/workspace?${e.toString()}`,"_blank","noopener,noreferrer")},disabled:!a||!n,title:"Open this worktree and branch in Trident",children:[(0,t.jsx)(j.GitBranch,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"Diff"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:tu,disabled:ey,title:"Ask agent to create a commit with current changes",children:[ey?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(w,{className:"w-3 h-3"}),(0,t.jsxs)("span",{className:G,children:["Commit (",eK,")"]})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>eR(!0),disabled:eL,title:"Browse files and insert absolute paths into the agent input",children:[eL?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(S,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"Add Files"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{if(!e||!D)return;let t=`/new?repo=${encodeURIComponent(e)}&prefillFromSession=${encodeURIComponent(D)}`;window.open(t,"_blank","noopener,noreferrer")},title:"Start a new attempt in a new tab with this session context",children:[(0,t.jsx)(E.Plus,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"New Attempt"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded overflow-hidden bg-base-100",children:[T?.trim()&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{let e=T?.trim();if(!e||!ei.current)return;e9(!1);let t=ei.current;eg(!0),ep("Starting dev server...");let r=(a=0)=>{if(a>30){ep("Failed to start dev server: terminal is not ready"),eg(!1);return}try{let n=t.contentWindow;if(n&&n.term){n.term.paste(e);let r=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");r?r.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:n})):n.term.paste("\r"),n.focus(),r&&r.focus(),ep("Dev server start command sent"),eg(!1)}else setTimeout(()=>r(a+1),300)}catch(e){console.error("Dev server injection error",e),ep("Failed to start dev server"),eg(!1)}};r()},disabled:ew,title:"Run dev server script in terminal",children:[ew?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(v.Play,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"Dev"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"})]}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>eV(e=>!e),title:e_?"Hide preview panel":"Show preview panel",children:[(0,t.jsx)(M,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:e_?"Close":"Preview"})]})]}),(0,t.jsxs)("div",{className:"flex items-center border border-base-content/20 rounded relative bg-base-100",ref:tj,children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs rounded-none rounded-l h-6 min-h-6 border-none px-2 hover:bg-base-content/10",onClick:()=>{ty(!tg)},disabled:eS||ek||eU,title:"Select base branch and rebase",children:[eS?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(y,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"Rebase"}),(0,t.jsx)(R,{className:"w-3 h-3 opacity-50 ml-0.5"})]}),tg&&(0,t.jsxs)("div",{className:"absolute top-full left-0 z-50 mt-1 w-64 p-0 shadow-xl dropdown-content bg-base-200 rounded-box border border-base-content/20 flex flex-col max-h-80 overflow-hidden",children:[(0,t.jsxs)("div",{className:"px-4 py-2 text-[10px] uppercase font-bold tracking-wider opacity-50 border-b border-base-content/10 bg-base-200 flex justify-between items-center shrink-0",children:[(0,t.jsx)("span",{children:"Select Base Branch"}),(eB||eU)&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})]}),(0,t.jsxs)("ul",{className:"menu p-0 overflow-y-auto flex-nowrap custom-scrollbar overflow-x-hidden w-full",children:[tL.length>0?tL.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{onClick:()=>tk(e),className:`flex justify-between items-center text-xs py-2 truncate max-w-full rounded-none ${e===eP?"active font-bold":""}`,title:e,children:[(0,t.jsx)("span",{className:"truncate",children:e}),e===eP&&(0,t.jsx)("span",{className:"opacity-70 text-[10px] ml-2 shrink-0",children:"(Current)"})]})},e)):(0,t.jsx)("li",{className:"text-xs px-4 py-2 opacity-50 italic text-center",children:"No other branches found"}),(0,t.jsx)("div",{className:"divider my-1 opacity-50"}),(0,t.jsx)("li",{children:(0,t.jsx)("button",{onClick:()=>void tf(),className:"text-[10px] justify-center opacity-70 hover:opacity-100",children:"Refresh Branches"})})]})]})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs btn-success rounded-none h-6 min-h-6 border-none px-2 hover:bg-success/20 hover:border-transparent",onClick:tw,disabled:ek||eS||eU||!eP,title:eP?`Merge current branch (${n}) into target branch (${eP})`:"Target branch unavailable for this session",children:[ek?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(g,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"Merge"})]}),(0,t.jsx)("div",{className:"w-[1px] h-4 bg-base-content/10"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-error btn-xs rounded-none rounded-r h-6 min-h-6 border-none px-2 hover:bg-error/20 hover:border-transparent",onClick:tc,disabled:ek||eS||!a,title:"Clean up and exit",children:[(0,t.jsx)(f.Trash2,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:G,children:"Purge"})]})]}),eP&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs opacity-80",title:`Divergence against ${eP}`,children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(k,{className:"w-3 h-3"}),eW.ahead]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(N,{className:"w-3 h-3"}),eW.behind]})]}),(0,t.jsx)("div",{className:"hidden min-[1200px]:block w-[1px] h-4 bg-base-content/20 mx-2"}),(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 max-w-[280px] items-center gap-2",children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${em.includes("Error")||em.includes("failed")?"bg-error":em.includes("started")||em.includes("Merged")||em.includes("Rebased")||em.includes("sent")?"bg-success":"bg-warning"}`}),(0,t.jsx)("span",{className:"truncate",title:em,children:em})]})]})]}),(0,t.jsxs)("div",{ref:ec,className:"flex min-h-0 flex-1 w-full",children:[(0,t.jsx)("div",{className:"h-full min-w-0",style:{width:e_?`${100*e2}%`:"100%"},children:(0,t.jsx)("iframe",{ref:ea,src:"/terminal",className:`h-full w-full border-none dark:invert dark:brightness-90 ${te||e6?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!ea.current)return;let t=ea.current;try{t.contentWindow}catch(e){ep("Error: Cross-Origin access blocked. Ensure proxy is working.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0)),ep("Connecting to terminal...");let r=(n=0)=>{if(n>30)return void ep("Timeout waiting for terminal to be ready");try{let s=t.contentWindow;if(s&&s.term){let r=s.term;tM(t,eu);try{r.options.theme={...r.options.theme||{},selectionBackground:"rgba(59, 130, 246, 0.4)"}}catch{}let n=a||e,i=`cd ${Z(n)}`;r.paste(i);let o=()=>{let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e?e.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):r.paste("\r")};if(o(),A){let t=async()=>{let t="";if(O)t=A.toLowerCase().includes("gemini")?"gemini --resume latest --yolo":A.toLowerCase().includes("codex")?"codex resume --last --sandbox danger-full-access --ask-for-approval on-request --search":"agent"===A.toLowerCase()||A.toLowerCase().includes("cursor")?"agent resume":`${Z(A)} resume`;else{let r=W?.trim()||"",n=[];r&&n.push(r),U&&n.push(U);let s=n.join("\n\n");if(H&&H.length>0){let t=`${a||e}-attachments`,r=["Attachments:",...H.map(e=>`- ${t}/${e}`)].join("\n");s=s?`${s}
|
|
2
|
-
|
|
3
|
-
${r}`:r}let i="";if(s)if(I&&I.trim().length>0||H&&H.length>0)try{let e=await h(D,s);e.success&&e.filePath?i=` "$(cat ${Z(e.filePath)})"`:(console.error("Failed to write prompt file, falling back to inline prompt",e.error),i=` ${Z(s)}`)}catch(e){console.error("Exception writing prompt file",e),i=` ${Z(s)}`}else i=` ${Z(s)}`;let o=B&&"auto"!==B.toLowerCase()?` --model ${Z(B)}`:"";t=A.toLowerCase().includes("codex")?`codex${o} --sandbox danger-full-access --ask-for-approval on-request --search${i}`:A.toLowerCase().includes("gemini")?`gemini${o} --yolo${i}`:"agent"===A.toLowerCase()||A.toLowerCase().includes("cursor")?`agent${o}${i}`:`${Z(A)}${o}${i}`}t&&(r.paste(t),o(),ep(O?`Resumed session with ${A}`:`Session started with ${A}`),!O&&_&&_())};setTimeout(()=>t(),500)}else ep(`Session started ${a?"(Worktree)":""}`),!O&&_&&_();s.focus();let l=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");l&&l.focus()}else setTimeout(()=>r(n+1),500)}catch(e){console.error("Access error during injection:",e),ep("Error accessing terminal: "+String(e))}};setTimeout(()=>r(),1e3)}})}),e_&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"relative h-full w-2 shrink-0 cursor-col-resize bg-base-300/40 hover:bg-base-content/20",onMouseDown:e=>{e.preventDefault(),e4(!0),ed.current={startX:e.clientX,startRatio:e2}},role:"separator","aria-orientation":"vertical","aria-label":"Resize preview panel",title:"Drag to resize preview panel",children:(0,t.jsx)("div",{className:"absolute left-1/2 top-1/2 h-12 w-[2px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-base-content/30"})}),(0,t.jsxs)("div",{className:"flex h-full min-w-0 flex-1 flex-col border-l border-base-content/10 bg-base-200/50",children:[(0,t.jsxs)("form",{className:"flex items-center gap-2 border-b border-base-content/10 bg-base-200 px-3 py-2",onSubmit:e=>{e.preventDefault(),tN(eG,!0)},children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>t$("back"),disabled:!eY,title:"Go back","aria-label":"Go back",children:(0,t.jsx)(F.ArrowLeft,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>t$("forward"),disabled:!eY,title:"Go forward","aria-label":"Go forward",children:(0,t.jsx)(P,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0",type:"button",onClick:()=>t$("reload"),disabled:!eY,title:"Reload preview","aria-label":"Reload preview",children:(0,t.jsx)(z,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("input",{ref:el,type:"text",className:"input input-xs input-bordered w-full font-mono",value:eG,onChange:e=>eX(e.target.value),placeholder:"http://127.0.0.1:3000",spellCheck:!1}),(0,t.jsx)("button",{className:`btn btn-ghost btn-xs ${eZ?"btn-active text-success":""}`,type:"button",onClick:tS,disabled:!eY||e0,title:eZ?"Disable picker":"Pick element from preview",children:e0?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs w-3 h-3"}):(0,t.jsx)(L,{className:"h-3 w-3"})}),(0,t.jsx)("button",{className:"btn btn-xs",type:"submit",children:"Go"})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1",children:eY?(0,t.jsx)("iframe",{ref:eo,src:eY,className:`h-full w-full border-none ${te||e6?"pointer-events-none":""}`,title:"Dev server preview",onLoad:tR,sandbox:"allow-forms allow-modals allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-downloads"}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-6 text-center text-xs opacity-70",children:"Run the dev server, or enter a URL above to load a preview."})})]})]})]}),(0,t.jsxs)("div",{className:`absolute z-30 overflow-hidden rounded-lg border border-base-content/20 bg-base-200/95 shadow-2xl backdrop-blur-sm ${te||e6?"":"transition-all"}`,style:{bottom:80,right:tF,width:e7.width,height:e5?40:e7.height,maxWidth:"calc(100vw - 2rem)",maxHeight:"calc(100vh - 2rem)"},children:[(0,t.jsx)("button",{className:`absolute left-0 top-0 z-50 flex h-10 w-10 items-center justify-center text-base-content/30 hover:text-base-content/60 ${e5?"cursor-pointer":"cursor-nwse-resize"}`,onMouseDown:e5?void 0:e=>{e.preventDefault(),e.stopPropagation(),tt(!0),tn.current={startX:e.clientX,startY:e.clientY,startWidth:e7.width,startHeight:e7.height}},onClick:e5?()=>e9(!1):void 0,title:e5?"Expand terminal":"Drag to resize",type:"button",children:(0,t.jsx)($,{size:14})}),!e5&&(0,t.jsxs)("button",{className:"flex h-10 w-full items-center justify-between px-3 pl-10 text-xs font-mono hover:bg-base-content/10",onClick:()=>e9(e=>!e),title:"Minimize terminal",type:"button",children:[(0,t.jsx)("span",{children:"Terminal"}),(0,t.jsx)("span",{className:"opacity-70",children:"Hide"})]}),(0,t.jsx)("div",{className:e5?"h-0 overflow-hidden":"h-[calc(100%-2.5rem)]",children:(0,t.jsx)("iframe",{ref:ei,src:"/terminal",className:`h-full w-full border-none dark:invert dark:brightness-90 ${te||e6?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!ei.current)return;let t=ei.current;try{t.contentWindow}catch(e){console.error("Secondary terminal: Cross-Origin access blocked.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0));let r=(n=0)=>{if(!(n>30))try{let s=t.contentWindow;if(s&&s.term){let r=s.term;tM(t,eh,{onLinkActivated:()=>e9(!0)});try{r.options.theme={...r.options.theme||{},selectionBackground:"rgba(59, 130, 246, 0.4)"}}catch{}try{let e=()=>{r.buffer?.active&&(r.buffer.active.baseY,r.buffer.active.viewportY),r.scrollToBottom()};if(r.onWriteParsed)r.onWriteParsed(e);else{let r=t.contentDocument?.querySelector(".xterm-screen")||t.contentDocument?.body;r&&new MutationObserver(e).observe(r,{childList:!0,subtree:!0,characterData:!0})}}catch(e){console.error("Failed to setup auto-scroll:",e)}let n=a||e,i=`cd ${Z(n)}`;r.paste(i);let o=()=>{let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e?e.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):r.paste("\r")};o(),q&&!O&&setTimeout(()=>{r.paste(q),o()},500),s.focus();let l=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");l&&l.focus()}else setTimeout(()=>r(n+1),500)}catch(e){console.error("Secondary terminal injection error",e)}};setTimeout(()=>r(),1e3)}})})]}),e$&&(0,t.jsx)(X,{initialPath:eE,worktreePath:a,onPathChange:eM,onConfirm:e=>{eR(!1),tm(e)},onCancel:()=>eR(!1)})]})}let eo=(0,n.createServerReference)("40bc84b1df92f9bf7ec14659b50e2fadeb502fc149",n.callServer,void 0,n.findSourceMapURL,"consumeSessionLaunchContext"),el=(0,n.createServerReference)("4094911d3dea3adc499026b8cf99fe8baed9d64542",n.callServer,void 0,n.findSourceMapURL,"getSessionMetadata"),ec=(0,n.createServerReference)("40796d29d1bf40c8b8ef295f916e0b7e9689fe6d51",n.callServer,void 0,n.findSourceMapURL,"markSessionInitialized");var ed=e.i(32724);function eu(){let e=(0,a.useParams)().sessionId,n=Array.isArray(e)?e[0]:e,s=(0,a.useRouter)(),[i,o]=(0,r.useState)(null),[l,c]=(0,r.useState)(!0),[d,u]=(0,r.useState)(null),[h,m]=(0,r.useState)(void 0),[p,f]=(0,r.useState)(void 0),[b,x]=(0,r.useState)(void 0),[v,w]=(0,r.useState)([]),[g,y]=(0,r.useState)(void 0),[j,k]=(0,r.useState)(void 0),[N,S]=(0,r.useState)(void 0),[C,$]=(0,r.useState)(!0);(0,r.useEffect)(()=>(document.documentElement.classList.add("session-page"),()=>{document.documentElement.classList.remove("session-page")}),[]),(0,r.useEffect)(()=>{n&&(async()=>{try{if(!(await (0,ed.startTtydProcess)()).success){u("Failed to start terminal service"),c(!1);return}let e=await el(n);if(!e){u("Session not found"),c(!1);return}if(o(e),!1===e.initialized){let e=await eo(n);if(e.success&&e.context){let t=e.context;m(t.initialMessage),f(t.rawInitialMessage),x(t.startupScript),w(t.attachmentNames||[]),y(t.title),k(t.agentProvider),S(t.model)}$(!1)}else $(!0);c(!1)}catch(e){console.error("Failed to load session:",e),u("Failed to load session"),c(!1)}})()},[n]);let R=e=>{e?window.location.href="/":s.push("/")},E=async()=>{n&&await ec(n)};return l?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsx)("p",{className:"opacity-60",children:"Loading session..."})]})}):d||!i?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-base-100",children:(0,t.jsx)("div",{className:"card w-96 bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error",children:"Error"}),(0,t.jsx)("p",{children:d||"Session not found"}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>R(),children:"Back to Home"})})]})})}):(0,t.jsx)(ei,{repo:i.repoPath,worktree:i.worktreePath,branch:i.branchName,baseBranch:i.baseBranch,sessionName:i.sessionName,agent:j||i.agent,model:N||i.model,startupScript:b,devServerScript:i.devServerScript,initialMessage:h,rawInitialMessage:p,title:g||i.title,attachmentNames:v,onExit:R,isResume:C,onSessionStart:E})}e.s(["default",()=>eu],36438)}]);
|