cogpit 2.0.0 → 2.1.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/README.md +4 -4
- package/dist/cli.js +18606 -14058
- package/dist/web/assets/CommandPaletteHost-C-ParO8t.js +1 -0
- package/dist/web/assets/ConfigBrowser-Co4eu81Z.js +1 -0
- package/dist/web/assets/{HighlightedEditor-BPmH8BvC.js → HighlightedEditor-j81AHVZZ.js} +2 -2
- package/dist/web/assets/{KeyboardShortcutsDialog-CTbXz40Z.js → KeyboardShortcutsDialog-CluzMowK.js} +1 -1
- package/dist/web/assets/{MobileFileChanges-C5VoKbje.js → MobileFileChanges-DiOncgtO.js} +1 -1
- package/dist/web/assets/{PreviewPanel-DoAf1W2k.js → PreviewPanel-i4Yn68yV.js} +1 -1
- package/dist/web/assets/{ProjectFilesPanel-v_O7Awnm.js → ProjectFilesPanel-DPLFARWn.js} +3 -3
- package/dist/web/assets/ProjectSwitcherModal-BUXfKNzX.js +1 -0
- package/dist/web/assets/{TerminalOutput-SImEU6_6.js → TerminalOutput-DLRMV4_Y.js} +1 -1
- package/dist/web/assets/{ThemeSelectorModal-rjVBMgWC.js → ThemeSelectorModal-Cmx9maEq.js} +1 -1
- package/dist/web/assets/{WorkflowsPanel-JVqgKAzY.js → WorkflowsPanel-Cgm_kbHR.js} +1 -1
- package/dist/web/assets/WorktreePanel-h3DRRXek.js +1 -0
- package/dist/web/assets/{index-C5VcQtkE.js → index-Cgnw8FK8.js} +1 -1
- package/dist/web/assets/{index-S7UMnH_y.js → index-DUI5EaV5.js} +4 -4
- package/dist/web/assets/index-DocqIkvS.js +144 -0
- package/dist/web/assets/index-cjmnKg1q.js +1 -0
- package/dist/web/assets/session-parser.worker-DTq2tkdd.js +29 -0
- package/dist/web/assets/{vendor-ui-BmLOQ5Or.js → vendor-ui-CIBbYCBQ.js} +151 -146
- package/dist/web/index.html +3 -3
- package/package.json +3 -2
- package/dist/web/assets/CommandPaletteHost-ChH6w0Bx.js +0 -1
- package/dist/web/assets/ConfigBrowser-CPCH7_25.js +0 -1
- package/dist/web/assets/ProjectSwitcherModal-CSZrCd3X.js +0 -1
- package/dist/web/assets/WorktreePanel-D94-oAau.js +0 -1
- package/dist/web/assets/index-C00ZsBZl.js +0 -1
- package/dist/web/assets/index-CNV6e3p0.js +0 -138
- package/dist/web/assets/session-parser.worker-BhyaigCR.js +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as Y,j as t,r as h}from"./vendor-react-gGw_S5I_.js";import{T as Ke,a9 as ee,aC as te,aD as Q,m as Re,n as Ge,I as Me,aa as Qe,ab as Ye,aE as Ze,B as be,aF as et,av as tt,aw as st,w as Le,i as it,j as at,k as nt,aG as Be,aH as lt,aI as rt,a8 as ot,am as ct,h as dt,D as ut}from"./index-CNV6e3p0.js";import{Q as mt,U as ft,V as ht,W as xt,i as pt,h as gt,M as vt,Y as jt,_ as wt,F as bt,A as kt,$ as Nt,J as St,a0 as Ue,a1 as yt,a2 as Ct}from"./vendor-ui-BmLOQ5Or.js";import"./vendor-shiki-DOn6sF-i.js";import"./vendor-markdown-BE1gYnO9.js";function _t(s){const e=Y.c(11);let a,l,i;e[0]!==s?({className:a,size:i,...l}=s,e[0]=s,e[1]=a,e[2]=l,e[3]=i):(a=e[1],l=e[2],i=e[3]);const r=i===void 0?"default":i;let o;e[4]!==a?(o=Ke("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",a),e[4]=a,e[5]=o):o=e[5];let u;e[6]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx(ft,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"}),e[6]=u):u=e[6];let c;return e[7]!==l||e[8]!==r||e[9]!==o?(c=t.jsx(mt,{"data-slot":"switch","data-size":r,className:o,...l,children:u}),e[7]=l,e[8]=r,e[9]=o,e[10]=c):c=e[10],c}function At(s){const e=Y.c(3),{name:a}=s,l=a.toLowerCase();if(l.includes("iphone")||l.includes("android")){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(pt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[0]=r):r=e[0],r}if(l.includes("ipad")||l.includes("tablet")){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(gt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[1]=r):r=e[1],r}let i;return e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(vt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[2]=i):i=e[2],i}function Ee(s){const e=Math.floor((Date.now()-s)/1e3);if(e<60)return"just now";const a=Math.floor(e/60);if(a<60)return`${a}m ago`;const l=Math.floor(a/60);return l<24?`${l}h ago`:`${Math.floor(l/24)}d ago`}function zt(s){const e=[`Shared ${Ee(s.createdAt)}`,s.lastAccessAt>0?`opened ${Ee(s.lastAccessAt)}`:"never opened"];return s.guests>0&&e.push(s.guests===1?"1 guest":`${s.guests} guests`),e.join(" · ")}function It(){const s=Y.c(12),{shares:e,revoke:a,revokeAll:l}=Ze();let i;s[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx("p",{className:"text-xs text-muted-foreground",children:"Shared sessions"}),s[0]=i):i=s[0];let r;s[1]!==l||s[2]!==e.length?(r=e.length>0&&t.jsx(be,{variant:"ghost",size:"xs",className:"text-destructive hover:text-destructive",onClick:()=>void l(),children:"Revoke all"}),s[1]=l,s[2]=e.length,s[3]=r):r=s[3];let o;s[4]!==r?(o=t.jsxs("div",{className:"flex h-6 items-center justify-between",children:[i,r]}),s[4]=r,s[5]=o):o=s[5];let u;s[6]!==a||s[7]!==e?(u=e.length===0?t.jsx("p",{className:"text-xs text-muted-foreground",children:"No sessions are shared."}):t.jsx("div",{className:"flex flex-col gap-1.5",children:e.map(g=>{const f=g.title||g.sessionId;return t.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-lg border px-3 py-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("p",{className:"truncate text-sm text-foreground",children:f}),t.jsx("p",{className:"text-xs text-muted-foreground",children:zt(g)})]}),t.jsx(be,{variant:"ghost",size:"xs","aria-label":`Revoke share of ${f}`,className:"text-destructive hover:text-destructive",onClick:()=>void a(g.sessionId),children:"Revoke"})]},g.sessionId)})}),s[6]=a,s[7]=e,s[8]=u):u=s[8];let c;return s[9]!==o||s[10]!==u?(c=t.jsxs("div",{className:"flex flex-col gap-2",children:[o,u]}),s[9]=o,s[10]=u,s[11]=c):c=s[11],c}function Pt(s){const e=Y.c(30),{networkAccess:a,setNetworkAccess:l,networkPassword:i,setNetworkPassword:r,showNetworkPassword:o,setShowNetworkPassword:u,hasExistingPassword:c,initialNetworkAccess:g,connectedDevices:f,minPasswordLength:v}=s;let k;e[0]!==a?(k=a?t.jsx(jt,{"data-icon":"inline-start",className:"size-4 text-success"}):t.jsx(wt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[0]=a,e[1]=k):k=e[1];let S;e[2]===Symbol.for("react.memo_cache_sentinel")?(S=t.jsxs("div",{children:[t.jsx("p",{className:"text-sm font-medium text-foreground",children:"Network Access"}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"Allow other devices to connect"})]}),e[2]=S):S=e[2];let N;e[3]!==k?(N=t.jsxs("div",{className:"flex items-center gap-2",children:[k,S]}),e[3]=k,e[4]=N):N=e[4];let j;e[5]!==l?(j=I=>l(I),e[5]=l,e[6]=j):j=e[6];let x;e[7]!==a||e[8]!==j?(x=t.jsx(_t,{"aria-label":"Network Access",checked:a,onCheckedChange:j}),e[7]=a,e[8]=j,e[9]=x):x=e[9];let w;e[10]!==N||e[11]!==x?(w=t.jsxs("div",{className:"flex items-center justify-between",children:[N,x]}),e[10]=N,e[11]=x,e[12]=w):w=e[12];let p;e[13]!==c||e[14]!==v||e[15]!==a||e[16]!==i||e[17]!==r||e[18]!==u||e[19]!==o?(p=a&&t.jsxs(ee,{"data-invalid":i.length>0&&i.length<v,children:[t.jsx(te,{htmlFor:"network-password",children:"Password"}),t.jsx(Q,{children:c&&i.length===0?"A password is already set. Leave blank to keep it.":`Use at least ${v} characters.`}),t.jsxs(Re,{children:[t.jsx(Ge,{id:"network-password",type:o?"text":"password",value:i,onChange:I=>r(I.target.value),placeholder:c?"Enter new password to change":"Set a password for remote access"}),t.jsx(Me,{align:"inline-end",children:t.jsx(Qe,{size:"icon-xs","aria-label":o?"Hide password":"Show password",onClick:()=>u(!o),children:o?t.jsx(ht,{"data-icon":"inline-start"}):t.jsx(xt,{"data-icon":"inline-start"})})})]}),i.length>0&&i.length<v&&t.jsxs(Ye,{children:["Password must be at least ",v," characters (",i.length,"/",v,")"]}),t.jsx(Q,{children:"Requires app restart. Remote browsers need an HTTPS reverse proxy; port 19384 remains available to Cogpit hubs and device clients."})]}),e[13]=c,e[14]=v,e[15]=a,e[16]=i,e[17]=r,e[18]=u,e[19]=o,e[20]=p):p=e[20];let d;e[21]!==f||e[22]!==g||e[23]!==a?(d=a&&g&&f.length>0&&t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("p",{className:"text-xs text-muted-foreground",children:"Connected devices"}),t.jsx("div",{className:"flex flex-col gap-1.5",children:f.map(Et)})]}),e[21]=f,e[22]=g,e[23]=a,e[24]=d):d=e[24];let z;e[25]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx(It,{}),e[25]=z):z=e[25];let m;return e[26]!==w||e[27]!==p||e[28]!==d?(m=t.jsxs("div",{className:"flex flex-col gap-4 border-t pt-5",children:[w,p,d,z]}),e[26]=w,e[27]=p,e[28]=d,e[29]=m):m=e[29],m}function Et(s,e){return t.jsxs("div",{className:"flex items-center justify-between rounded-lg border px-3 py-2",children:[t.jsxs("div",{className:"flex items-center gap-2.5",children:[t.jsx(At,{name:s.deviceName}),t.jsxs("div",{children:[t.jsx("p",{className:"text-sm text-foreground",children:s.deviceName}),t.jsx("p",{className:"text-xs text-muted-foreground",children:s.ip})]})]}),t.jsxs("div",{className:"flex items-center gap-1.5",children:[t.jsx("span",{className:"size-1.5 rounded-full bg-success"}),t.jsx("span",{className:"text-xs text-muted-foreground",children:Ee(s.lastActivity)})]})]},`${s.ip}-${e}`)}function Dt(s){const e=Y.c(5),{status:a,error:l}=s;if(a==="validating"){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[t.jsx(Ue,{"data-icon":"inline-start",className:"size-3.5 animate-spin"}),"Checking path..."]}),e[0]=i):i=e[0],i}if(a==="valid"){let i;return e[1]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-success",children:[t.jsx(yt,{"data-icon":"inline-start",className:"size-3.5"}),"Valid .claude directory found"]}),e[1]=i):i=e[1],i}if(a==="invalid"&&l){let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(Ct,{"data-icon":"inline-start",className:"size-3.5"}),e[2]=i):i=e[2];let r;return e[3]!==l?(r=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-destructive",children:[i,l]}),e[3]=l,e[4]=r):r=e[4],r}return null}function Ht(s){const e=Y.c(102),{open:a,currentPath:l,onClose:i,onSaved:r}=s,[o,u]=h.useState(l),[c,g]=h.useState(!1),{status:f,error:v,debouncedValidate:k,reset:S,save:N}=et();let j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=tt(),e[0]=j):j=e[0];const x=j;let w;e[1]===Symbol.for("react.memo_cache_sentinel")?(w=st("configWrite"),e[1]=w):w=e[1];const p=w,[d,z]=h.useState(!1),[m,I]=h.useState(""),[ke,Ve]=h.useState(!1),[y,De]=h.useState(""),[Ne,He]=h.useState(""),[C,$e]=h.useState(""),[Se,Oe]=h.useState(""),[b,Fe]=h.useState(!1),[ye,We]=h.useState(!1),[_,qe]=h.useState(!1),[P,Xe]=h.useState(!1);let se;e[2]===Symbol.for("react.memo_cache_sentinel")?(se=[],e[2]=se):se=e[2];const[Ce,Te]=h.useState(se);let ie,ae;e[3]!==l||e[4]!==a||e[5]!==S?(ie=()=>{a&&(u(l),S(),Le("/api/config").then(Lt).then(n=>{const A=(n==null?void 0:n.networkAccess)||!1;z(A),qe(A),Xe(!!(n!=null&&n.networkPassword)),I("");const we=(n==null?void 0:n.terminalApp)||"";De(we),He(we);const Ie=(n==null?void 0:n.editorApp)||"";$e(Ie),Oe(Ie);const Pe=(n==null?void 0:n.useBuiltInEditor)===!0;Fe(Pe),We(Pe),A&&(n!=null&&n.networkPassword)&&!x?Le("/api/connected-devices").then(Tt).then(Z=>Te((Z==null?void 0:Z.devices)||[])).catch(Ft):Te([])}).catch($t))},ae=[a,l,S,x],e[3]=l,e[4]=a,e[5]=S,e[6]=ie,e[7]=ae):(ie=e[6],ae=e[7]),h.useEffect(ie,ae);let ne;e[8]!==k?(ne=n=>{const A=n.target.value;u(A),k(A)},e[8]=k,e[9]=ne):ne=e[9];const _e=ne;let le;e[10]!==C||e[11]!==_||e[12]!==d||e[13]!==m||e[14]!==r||e[15]!==o||e[16]!==N||e[17]!==y||e[18]!==b?(le=async()=>{g(!0);const n=await N(o,{networkAccess:x?_:d,networkPassword:!x&&d&&m.length>0?m:void 0,terminalApp:y.trim()||void 0,editorApp:C.trim()||void 0,useBuiltInEditor:b});n.success&&n.claudeDir&&r(n.claudeDir),g(!1)},e[10]=C,e[11]=_,e[12]=d,e[13]=m,e[14]=r,e[15]=o,e[16]=N,e[17]=y,e[18]=b,e[19]=le):le=e[19];const E=le;let re;e[20]!==C||e[21]!==P||e[22]!==Se||e[23]!==_||e[24]!==Ne||e[25]!==ye||e[26]!==d||e[27]!==m||e[28]!==f||e[29]!==y||e[30]!==b?(re=function(){if(f==="validating"||f==="invalid")return!1;const A=f==="valid",we=!x&&(d!==_||d&&m.length>0);if(!A&&!we&&!(y!==Ne)&&!(C!==Se||b!==ye))return!1;if(!x&&d){const Z=m.length>0&&m.length<16,Je=!P&&m.length===0;if(Z||Je)return!1}return!0},e[20]=C,e[21]=P,e[22]=Se,e[23]=_,e[24]=Ne,e[25]=ye,e[26]=d,e[27]=m,e[28]=f,e[29]=y,e[30]=b,e[31]=re):re=e[31];const D=re();let $;e[32]!==i?($=n=>{n||i()},e[32]=i,e[33]=$):$=e[33];let oe;e[34]===Symbol.for("react.memo_cache_sentinel")?(oe=t.jsxs(it,{children:[t.jsx(at,{className:"text-foreground",children:"Configuration"}),t.jsx(nt,{className:"text-muted-foreground",children:"Manage local paths, preferred apps, and remote access."})]}),e[34]=oe):oe=e[34];let ce,de;e[35]===Symbol.for("react.memo_cache_sentinel")?(ce=t.jsx(te,{htmlFor:"claude-directory",children:"Claude directory"}),de=t.jsx(Q,{children:"The directory containing your Claude configuration."}),e[35]=ce,e[36]=de):(ce=e[35],de=e[36]);let ue;e[37]===Symbol.for("react.memo_cache_sentinel")?(ue=t.jsx(Me,{children:t.jsx(bt,{"data-icon":"inline-start"})}),e[37]=ue):ue=e[37];let F;e[38]!==D||e[39]!==E||e[40]!==c?(F=n=>{n.key==="Enter"&&D&&!c&&E()},e[38]=D,e[39]=E,e[40]=c,e[41]=F):F=e[41];let T;e[42]!==_e||e[43]!==o||e[44]!==F?(T=t.jsxs(Re,{children:[ue,t.jsx(Ge,{id:"claude-directory",value:o,onChange:_e,placeholder:"/Users/you/.claude",disabled:!p,onKeyDown:F})]}),e[42]=_e,e[43]=o,e[44]=F,e[45]=T):T=e[45];let L;e[46]!==v||e[47]!==f?(L=t.jsx("div",{"aria-live":"polite",children:t.jsx(Dt,{status:f,error:v})}),e[46]=v,e[47]=f,e[48]=L):L=e[48];let B;e[49]!==T||e[50]!==L?(B=t.jsxs(ee,{children:[ce,de,T,L]}),e[49]=T,e[50]=L,e[51]=B):B=e[51];let me,fe;e[52]===Symbol.for("react.memo_cache_sentinel")?(me=t.jsxs(te,{htmlFor:"terminal-application",children:[t.jsx(kt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Terminal application"]}),fe=t.jsx(Q,{children:"Leave blank to use the system default for Ctrl+Cmd+T."}),e[52]=me,e[53]=fe):(me=e[52],fe=e[53]);let he;e[54]===Symbol.for("react.memo_cache_sentinel")?(he=n=>De(n.target.value),e[54]=he):he=e[54];let R;e[55]!==y?(R=t.jsxs(ee,{children:[me,fe,t.jsx(Be,{id:"terminal-application",value:y,onChange:he,placeholder:"Ghostty, iTerm, or /path/to/binary",disabled:!p})]}),e[55]=y,e[56]=R):R=e[56];let xe;e[57]===Symbol.for("react.memo_cache_sentinel")?(xe=n=>Fe(n===!0),e[57]=xe):xe=e[57];let G;e[58]!==b?(G=t.jsx(lt,{id:"use-built-in-editor",checked:b,onCheckedChange:xe,disabled:!p}),e[58]=b,e[59]=G):G=e[59];let pe;e[60]===Symbol.for("react.memo_cache_sentinel")?(pe=t.jsxs(rt,{children:[t.jsxs(te,{htmlFor:"use-built-in-editor",children:[t.jsx(Nt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Open files in Cogpit"]}),t.jsx(Q,{children:"Files and diffs open in Cogpit’s file workspace instead of launching an external editor."})]}),e[60]=pe):pe=e[60];let M;e[61]!==G?(M=t.jsxs(ee,{orientation:"horizontal",children:[G,pe]}),e[61]=G,e[62]=M):M=e[62];let ge;e[63]===Symbol.for("react.memo_cache_sentinel")?(ge=t.jsxs(te,{htmlFor:"editor-application",children:[t.jsx(St,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Editor application"]}),e[63]=ge):ge=e[63];const Ae=b?"Not used while files open in Cogpit.":"Leave blank to use $VISUAL or automatic detection.";let U;e[64]!==Ae?(U=t.jsx(Q,{children:Ae}),e[64]=Ae,e[65]=U):U=e[65];let ve;e[66]===Symbol.for("react.memo_cache_sentinel")?(ve=n=>$e(n.target.value),e[66]=ve):ve=e[66];const ze=!p||b;let V;e[67]!==C||e[68]!==ze?(V=t.jsx(Be,{id:"editor-application",value:C,onChange:ve,placeholder:"cursor, code, zed, or /path/to/binary",disabled:ze}),e[67]=C,e[68]=ze,e[69]=V):V=e[69];let H;e[70]!==U||e[71]!==V?(H=t.jsxs(ee,{children:[ge,U,V]}),e[70]=U,e[71]=V,e[72]=H):H=e[72];let O;e[73]!==Ce||e[74]!==P||e[75]!==_||e[76]!==d||e[77]!==m||e[78]!==ke?(O=!x&&p&&t.jsx(Pt,{networkAccess:d,setNetworkAccess:z,networkPassword:m,setNetworkPassword:I,showNetworkPassword:ke,setShowNetworkPassword:Ve,hasExistingPassword:P,initialNetworkAccess:_,connectedDevices:Ce,minPasswordLength:16}),e[73]=Ce,e[74]=P,e[75]=_,e[76]=d,e[77]=m,e[78]=ke,e[79]=O):O=e[79];let W;e[80]!==B||e[81]!==R||e[82]!==M||e[83]!==H||e[84]!==O?(W=t.jsxs(ot,{children:[B,R,M,H,O]}),e[80]=B,e[81]=R,e[82]=M,e[83]=H,e[84]=O,e[85]=W):W=e[85];let q;e[86]!==i?(q=t.jsx(be,{variant:"outline",onClick:i,children:"Cancel"}),e[86]=i,e[87]=q):q=e[87];let X;e[88]!==D||e[89]!==E||e[90]!==c?(X=p&&t.jsx(be,{disabled:!D||c,onClick:E,children:c?t.jsxs(t.Fragment,{children:[t.jsx(Ue,{"data-icon":"inline-start",className:"size-4 animate-spin"}),"Saving..."]}):"Save"}),e[88]=D,e[89]=E,e[90]=c,e[91]=X):X=e[91];let J;e[92]!==q||e[93]!==X?(J=t.jsxs(ct,{children:[q,X]}),e[92]=q,e[93]=X,e[94]=J):J=e[94];let K;e[95]!==W||e[96]!==J?(K=t.jsxs(dt,{className:"max-h-[calc(100dvh-2rem)] overflow-y-auto sm:max-w-lg",children:[oe,W,J]}),e[95]=W,e[96]=J,e[97]=K):K=e[97];let je;return e[98]!==a||e[99]!==K||e[100]!==$?(je=t.jsx(ut,{open:a,onOpenChange:$,children:K}),e[98]=a,e[99]=K,e[100]=$,e[101]=je):je=e[101],je}function $t(){}function Ft(){}function Tt(s){return s.json()}function Lt(s){return s.json()}export{Ht as ConfigDialog};
|
|
1
|
+
import{c as Y,j as t,r as h}from"./vendor-react-gGw_S5I_.js";import{U as Ke,aa as ee,aD as te,aE as Q,m as Re,n as Ue,I as Ge,ab as Qe,ac as Ye,aF as Ze,B as be,aG as et,aw as tt,ax as st,w as Le,i as it,j as at,k as nt,aH as Be,aI as lt,aJ as rt,a9 as ot,an as ct,h as dt,D as ut}from"./index-DocqIkvS.js";import{Q as ft,U as mt,V as ht,W as xt,i as pt,h as gt,M as jt,Y as vt,_ as wt,F as bt,A as kt,$ as Nt,J as St,a0 as Me,a1 as yt,a2 as Ct}from"./vendor-ui-CIBbYCBQ.js";import"./vendor-shiki-DOn6sF-i.js";import"./vendor-markdown-BE1gYnO9.js";function _t(s){const e=Y.c(11);let a,l,i;e[0]!==s?({className:a,size:i,...l}=s,e[0]=s,e[1]=a,e[2]=l,e[3]=i):(a=e[1],l=e[2],i=e[3]);const r=i===void 0?"default":i;let o;e[4]!==a?(o=Ke("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",a),e[4]=a,e[5]=o):o=e[5];let u;e[6]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx(mt,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"}),e[6]=u):u=e[6];let c;return e[7]!==l||e[8]!==r||e[9]!==o?(c=t.jsx(ft,{"data-slot":"switch","data-size":r,className:o,...l,children:u}),e[7]=l,e[8]=r,e[9]=o,e[10]=c):c=e[10],c}function At(s){const e=Y.c(3),{name:a}=s,l=a.toLowerCase();if(l.includes("iphone")||l.includes("android")){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(pt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[0]=r):r=e[0],r}if(l.includes("ipad")||l.includes("tablet")){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(gt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[1]=r):r=e[1],r}let i;return e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(jt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[2]=i):i=e[2],i}function Ee(s){const e=Math.floor((Date.now()-s)/1e3);if(e<60)return"just now";const a=Math.floor(e/60);if(a<60)return`${a}m ago`;const l=Math.floor(a/60);return l<24?`${l}h ago`:`${Math.floor(l/24)}d ago`}function zt(s){const e=[`Shared ${Ee(s.createdAt)}`,s.lastAccessAt>0?`opened ${Ee(s.lastAccessAt)}`:"never opened"];return s.guests>0&&e.push(s.guests===1?"1 guest":`${s.guests} guests`),e.join(" · ")}function It(){const s=Y.c(12),{shares:e,revoke:a,revokeAll:l}=Ze();let i;s[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx("p",{className:"text-xs text-muted-foreground",children:"Shared sessions"}),s[0]=i):i=s[0];let r;s[1]!==l||s[2]!==e.length?(r=e.length>0&&t.jsx(be,{variant:"ghost",size:"xs",className:"text-destructive hover:text-destructive",onClick:()=>void l(),children:"Revoke all"}),s[1]=l,s[2]=e.length,s[3]=r):r=s[3];let o;s[4]!==r?(o=t.jsxs("div",{className:"flex h-6 items-center justify-between",children:[i,r]}),s[4]=r,s[5]=o):o=s[5];let u;s[6]!==a||s[7]!==e?(u=e.length===0?t.jsx("p",{className:"text-xs text-muted-foreground",children:"No sessions are shared."}):t.jsx("div",{className:"flex flex-col gap-1.5",children:e.map(g=>{const m=g.title||g.sessionId;return t.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-lg border px-3 py-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("p",{className:"truncate text-sm text-foreground",children:m}),t.jsx("p",{className:"text-xs text-muted-foreground",children:zt(g)})]}),t.jsx(be,{variant:"ghost",size:"xs","aria-label":`Revoke share of ${m}`,className:"text-destructive hover:text-destructive",onClick:()=>void a(g.sessionId),children:"Revoke"})]},g.sessionId)})}),s[6]=a,s[7]=e,s[8]=u):u=s[8];let c;return s[9]!==o||s[10]!==u?(c=t.jsxs("div",{className:"flex flex-col gap-2",children:[o,u]}),s[9]=o,s[10]=u,s[11]=c):c=s[11],c}function Pt(s){const e=Y.c(30),{networkAccess:a,setNetworkAccess:l,networkPassword:i,setNetworkPassword:r,showNetworkPassword:o,setShowNetworkPassword:u,hasExistingPassword:c,initialNetworkAccess:g,connectedDevices:m,minPasswordLength:j}=s;let k;e[0]!==a?(k=a?t.jsx(vt,{"data-icon":"inline-start",className:"size-4 text-success"}):t.jsx(wt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[0]=a,e[1]=k):k=e[1];let S;e[2]===Symbol.for("react.memo_cache_sentinel")?(S=t.jsxs("div",{children:[t.jsx("p",{className:"text-sm font-medium text-foreground",children:"Network Access"}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"Allow other devices to connect"})]}),e[2]=S):S=e[2];let N;e[3]!==k?(N=t.jsxs("div",{className:"flex items-center gap-2",children:[k,S]}),e[3]=k,e[4]=N):N=e[4];let v;e[5]!==l?(v=I=>l(I),e[5]=l,e[6]=v):v=e[6];let x;e[7]!==a||e[8]!==v?(x=t.jsx(_t,{"aria-label":"Network Access",checked:a,onCheckedChange:v}),e[7]=a,e[8]=v,e[9]=x):x=e[9];let w;e[10]!==N||e[11]!==x?(w=t.jsxs("div",{className:"flex items-center justify-between",children:[N,x]}),e[10]=N,e[11]=x,e[12]=w):w=e[12];let p;e[13]!==c||e[14]!==j||e[15]!==a||e[16]!==i||e[17]!==r||e[18]!==u||e[19]!==o?(p=a&&t.jsxs(ee,{"data-invalid":i.length>0&&i.length<j,children:[t.jsx(te,{htmlFor:"network-password",children:"Password"}),t.jsx(Q,{children:c&&i.length===0?"A password is already set. Leave blank to keep it.":`Use at least ${j} characters.`}),t.jsxs(Re,{children:[t.jsx(Ue,{id:"network-password",type:o?"text":"password",value:i,onChange:I=>r(I.target.value),placeholder:c?"Enter new password to change":"Set a password for remote access"}),t.jsx(Ge,{align:"inline-end",children:t.jsx(Qe,{size:"icon-xs","aria-label":o?"Hide password":"Show password",onClick:()=>u(!o),children:o?t.jsx(ht,{"data-icon":"inline-start"}):t.jsx(xt,{"data-icon":"inline-start"})})})]}),i.length>0&&i.length<j&&t.jsxs(Ye,{children:["Password must be at least ",j," characters (",i.length,"/",j,")"]}),t.jsx(Q,{children:"Requires app restart. Remote browsers need an HTTPS reverse proxy; port 19384 remains available to Cogpit hubs and device clients."})]}),e[13]=c,e[14]=j,e[15]=a,e[16]=i,e[17]=r,e[18]=u,e[19]=o,e[20]=p):p=e[20];let d;e[21]!==m||e[22]!==g||e[23]!==a?(d=a&&g&&m.length>0&&t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("p",{className:"text-xs text-muted-foreground",children:"Connected devices"}),t.jsx("div",{className:"flex flex-col gap-1.5",children:m.map(Et)})]}),e[21]=m,e[22]=g,e[23]=a,e[24]=d):d=e[24];let z;e[25]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx(It,{}),e[25]=z):z=e[25];let f;return e[26]!==w||e[27]!==p||e[28]!==d?(f=t.jsxs("div",{className:"flex flex-col gap-4 border-t pt-5",children:[w,p,d,z]}),e[26]=w,e[27]=p,e[28]=d,e[29]=f):f=e[29],f}function Et(s,e){return t.jsxs("div",{className:"flex items-center justify-between rounded-lg border px-3 py-2",children:[t.jsxs("div",{className:"flex items-center gap-2.5",children:[t.jsx(At,{name:s.deviceName}),t.jsxs("div",{children:[t.jsx("p",{className:"text-sm text-foreground",children:s.deviceName}),t.jsx("p",{className:"text-xs text-muted-foreground",children:s.ip})]})]}),t.jsxs("div",{className:"flex items-center gap-1.5",children:[t.jsx("span",{className:"size-1.5 rounded-full bg-success"}),t.jsx("span",{className:"text-xs text-muted-foreground",children:Ee(s.lastActivity)})]})]},`${s.ip}-${e}`)}function Dt(s){const e=Y.c(5),{status:a,error:l}=s;if(a==="validating"){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[t.jsx(Me,{"data-icon":"inline-start",className:"size-3.5 animate-spin"}),"Checking path..."]}),e[0]=i):i=e[0],i}if(a==="valid"){let i;return e[1]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-success",children:[t.jsx(yt,{"data-icon":"inline-start",className:"size-3.5"}),"Valid .claude directory found"]}),e[1]=i):i=e[1],i}if(a==="invalid"&&l){let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(Ct,{"data-icon":"inline-start",className:"size-3.5"}),e[2]=i):i=e[2];let r;return e[3]!==l?(r=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-destructive",children:[i,l]}),e[3]=l,e[4]=r):r=e[4],r}return null}function Ht(s){const e=Y.c(102),{open:a,currentPath:l,onClose:i,onSaved:r}=s,[o,u]=h.useState(l),[c,g]=h.useState(!1),{status:m,error:j,debouncedValidate:k,reset:S,save:N}=et();let v;e[0]===Symbol.for("react.memo_cache_sentinel")?(v=tt(),e[0]=v):v=e[0];const x=v;let w;e[1]===Symbol.for("react.memo_cache_sentinel")?(w=st("configWrite"),e[1]=w):w=e[1];const p=w,[d,z]=h.useState(!1),[f,I]=h.useState(""),[ke,Ve]=h.useState(!1),[y,De]=h.useState(""),[Ne,He]=h.useState(""),[C,$e]=h.useState(""),[Se,Oe]=h.useState(""),[b,Fe]=h.useState(!1),[ye,We]=h.useState(!1),[_,qe]=h.useState(!1),[P,Je]=h.useState(!1);let se;e[2]===Symbol.for("react.memo_cache_sentinel")?(se=[],e[2]=se):se=e[2];const[Ce,Te]=h.useState(se);let ie,ae;e[3]!==l||e[4]!==a||e[5]!==S?(ie=()=>{a&&(u(l),S(),Le("/api/config").then(Lt).then(n=>{const A=(n==null?void 0:n.networkAccess)||!1;z(A),qe(A),Je(!!(n!=null&&n.networkPassword)),I("");const we=(n==null?void 0:n.terminalApp)||"";De(we),He(we);const Ie=(n==null?void 0:n.editorApp)||"";$e(Ie),Oe(Ie);const Pe=(n==null?void 0:n.useBuiltInEditor)===!0;Fe(Pe),We(Pe),A&&(n!=null&&n.networkPassword)&&!x?Le("/api/connected-devices").then(Tt).then(Z=>Te((Z==null?void 0:Z.devices)||[])).catch(Ft):Te([])}).catch($t))},ae=[a,l,S,x],e[3]=l,e[4]=a,e[5]=S,e[6]=ie,e[7]=ae):(ie=e[6],ae=e[7]),h.useEffect(ie,ae);let ne;e[8]!==k?(ne=n=>{const A=n.target.value;u(A),k(A)},e[8]=k,e[9]=ne):ne=e[9];const _e=ne;let le;e[10]!==C||e[11]!==_||e[12]!==d||e[13]!==f||e[14]!==r||e[15]!==o||e[16]!==N||e[17]!==y||e[18]!==b?(le=async()=>{g(!0);const n=await N(o,{networkAccess:x?_:d,networkPassword:!x&&d&&f.length>0?f:void 0,terminalApp:y.trim()||void 0,editorApp:C.trim()||void 0,useBuiltInEditor:b});n.success&&n.claudeDir&&r(n.claudeDir),g(!1)},e[10]=C,e[11]=_,e[12]=d,e[13]=f,e[14]=r,e[15]=o,e[16]=N,e[17]=y,e[18]=b,e[19]=le):le=e[19];const E=le;let re;e[20]!==C||e[21]!==P||e[22]!==Se||e[23]!==_||e[24]!==Ne||e[25]!==ye||e[26]!==d||e[27]!==f||e[28]!==m||e[29]!==y||e[30]!==b?(re=function(){if(m==="validating"||m==="invalid")return!1;const A=m==="valid",we=!x&&(d!==_||d&&f.length>0);if(!A&&!we&&!(y!==Ne)&&!(C!==Se||b!==ye))return!1;if(!x&&d){const Z=f.length>0&&f.length<16,Xe=!P&&f.length===0;if(Z||Xe)return!1}return!0},e[20]=C,e[21]=P,e[22]=Se,e[23]=_,e[24]=Ne,e[25]=ye,e[26]=d,e[27]=f,e[28]=m,e[29]=y,e[30]=b,e[31]=re):re=e[31];const D=re();let $;e[32]!==i?($=n=>{n||i()},e[32]=i,e[33]=$):$=e[33];let oe;e[34]===Symbol.for("react.memo_cache_sentinel")?(oe=t.jsxs(it,{children:[t.jsx(at,{className:"text-foreground",children:"Configuration"}),t.jsx(nt,{className:"text-muted-foreground",children:"Manage local paths, preferred apps, and remote access."})]}),e[34]=oe):oe=e[34];let ce,de;e[35]===Symbol.for("react.memo_cache_sentinel")?(ce=t.jsx(te,{htmlFor:"claude-directory",children:"Claude directory"}),de=t.jsx(Q,{children:"The directory containing your Claude configuration."}),e[35]=ce,e[36]=de):(ce=e[35],de=e[36]);let ue;e[37]===Symbol.for("react.memo_cache_sentinel")?(ue=t.jsx(Ge,{children:t.jsx(bt,{"data-icon":"inline-start"})}),e[37]=ue):ue=e[37];let F;e[38]!==D||e[39]!==E||e[40]!==c?(F=n=>{n.key==="Enter"&&D&&!c&&E()},e[38]=D,e[39]=E,e[40]=c,e[41]=F):F=e[41];let T;e[42]!==_e||e[43]!==o||e[44]!==F?(T=t.jsxs(Re,{children:[ue,t.jsx(Ue,{id:"claude-directory",value:o,onChange:_e,placeholder:"/Users/you/.claude",disabled:!p,onKeyDown:F})]}),e[42]=_e,e[43]=o,e[44]=F,e[45]=T):T=e[45];let L;e[46]!==j||e[47]!==m?(L=t.jsx("div",{"aria-live":"polite",children:t.jsx(Dt,{status:m,error:j})}),e[46]=j,e[47]=m,e[48]=L):L=e[48];let B;e[49]!==T||e[50]!==L?(B=t.jsxs(ee,{children:[ce,de,T,L]}),e[49]=T,e[50]=L,e[51]=B):B=e[51];let fe,me;e[52]===Symbol.for("react.memo_cache_sentinel")?(fe=t.jsxs(te,{htmlFor:"terminal-application",children:[t.jsx(kt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Terminal application"]}),me=t.jsx(Q,{children:"Leave blank to use the system default for Ctrl+Cmd+T."}),e[52]=fe,e[53]=me):(fe=e[52],me=e[53]);let he;e[54]===Symbol.for("react.memo_cache_sentinel")?(he=n=>De(n.target.value),e[54]=he):he=e[54];let R;e[55]!==y?(R=t.jsxs(ee,{children:[fe,me,t.jsx(Be,{id:"terminal-application",value:y,onChange:he,placeholder:"Ghostty, iTerm, or /path/to/binary",disabled:!p})]}),e[55]=y,e[56]=R):R=e[56];let xe;e[57]===Symbol.for("react.memo_cache_sentinel")?(xe=n=>Fe(n===!0),e[57]=xe):xe=e[57];let U;e[58]!==b?(U=t.jsx(lt,{id:"use-built-in-editor",checked:b,onCheckedChange:xe,disabled:!p}),e[58]=b,e[59]=U):U=e[59];let pe;e[60]===Symbol.for("react.memo_cache_sentinel")?(pe=t.jsxs(rt,{children:[t.jsxs(te,{htmlFor:"use-built-in-editor",children:[t.jsx(Nt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Open files in Cogpit"]}),t.jsx(Q,{children:"Files and diffs open in Cogpit’s file workspace instead of launching an external editor."})]}),e[60]=pe):pe=e[60];let G;e[61]!==U?(G=t.jsxs(ee,{orientation:"horizontal",children:[U,pe]}),e[61]=U,e[62]=G):G=e[62];let ge;e[63]===Symbol.for("react.memo_cache_sentinel")?(ge=t.jsxs(te,{htmlFor:"editor-application",children:[t.jsx(St,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Editor application"]}),e[63]=ge):ge=e[63];const Ae=b?"Not used while files open in Cogpit.":"Leave blank to use $VISUAL or automatic detection.";let M;e[64]!==Ae?(M=t.jsx(Q,{children:Ae}),e[64]=Ae,e[65]=M):M=e[65];let je;e[66]===Symbol.for("react.memo_cache_sentinel")?(je=n=>$e(n.target.value),e[66]=je):je=e[66];const ze=!p||b;let V;e[67]!==C||e[68]!==ze?(V=t.jsx(Be,{id:"editor-application",value:C,onChange:je,placeholder:"cursor, code, zed, or /path/to/binary",disabled:ze}),e[67]=C,e[68]=ze,e[69]=V):V=e[69];let H;e[70]!==M||e[71]!==V?(H=t.jsxs(ee,{children:[ge,M,V]}),e[70]=M,e[71]=V,e[72]=H):H=e[72];let O;e[73]!==Ce||e[74]!==P||e[75]!==_||e[76]!==d||e[77]!==f||e[78]!==ke?(O=!x&&p&&t.jsx(Pt,{networkAccess:d,setNetworkAccess:z,networkPassword:f,setNetworkPassword:I,showNetworkPassword:ke,setShowNetworkPassword:Ve,hasExistingPassword:P,initialNetworkAccess:_,connectedDevices:Ce,minPasswordLength:16}),e[73]=Ce,e[74]=P,e[75]=_,e[76]=d,e[77]=f,e[78]=ke,e[79]=O):O=e[79];let W;e[80]!==B||e[81]!==R||e[82]!==G||e[83]!==H||e[84]!==O?(W=t.jsxs(ot,{children:[B,R,G,H,O]}),e[80]=B,e[81]=R,e[82]=G,e[83]=H,e[84]=O,e[85]=W):W=e[85];let q;e[86]!==i?(q=t.jsx(be,{variant:"outline",onClick:i,children:"Cancel"}),e[86]=i,e[87]=q):q=e[87];let J;e[88]!==D||e[89]!==E||e[90]!==c?(J=p&&t.jsx(be,{disabled:!D||c,onClick:E,children:c?t.jsxs(t.Fragment,{children:[t.jsx(Me,{"data-icon":"inline-start",className:"size-4 animate-spin"}),"Saving..."]}):"Save"}),e[88]=D,e[89]=E,e[90]=c,e[91]=J):J=e[91];let X;e[92]!==q||e[93]!==J?(X=t.jsxs(ct,{children:[q,J]}),e[92]=q,e[93]=J,e[94]=X):X=e[94];let K;e[95]!==W||e[96]!==X?(K=t.jsxs(dt,{className:"max-h-[calc(100dvh-2rem)] overflow-y-auto sm:max-w-lg",children:[oe,W,X]}),e[95]=W,e[96]=X,e[97]=K):K=e[97];let ve;return e[98]!==a||e[99]!==K||e[100]!==$?(ve=t.jsx(ut,{open:a,onOpenChange:$,children:K}),e[98]=a,e[99]=K,e[100]=$,e[101]=ve):ve=e[101],ve}function $t(){}function Ft(){}function Tt(s){return s.json()}function Lt(s){return s.json()}export{Ht as ConfigDialog};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{c as le,j as t,r as fe}from"./vendor-react-gGw_S5I_.js";import{
|
|
1
|
+
import{c as le,j as t,r as fe}from"./vendor-react-gGw_S5I_.js";import{aK as Ne,U as ke,aL as ge,aM as pe,aN as je,aO as ve,B as J,aP as ye,aQ as Te,E as be,y as Ce,G as _e,H as Me,j as Be,k as we,V as $e,i as Ae,l as de,q as Se,h as Ie,D as Re}from"./index-DocqIkvS.js";import{R as me,a3 as Ee,a4 as De,C as ze}from"./vendor-ui-CIBbYCBQ.js";import"./vendor-shiki-DOn6sF-i.js";import"./vendor-markdown-BE1gYnO9.js";function He(a){const e=le.c(29),{branches:s,activeBranchIdx:c,branchPointTurnIndex:f}=a,g=s.length;if(g===0)return null;const j=Math.min(f+1,5);let h;e[0]!==s?(h=Math.max(...s.map(Pe),1),e[0]=s,e[1]=h):h=e[1];const o=Math.min(h,6),n=20+j*25,r=Math.min(32,Math.max(20,(300-n)/(o+1))),d=18+(g-1)*27+15,m=`0 0 340 ${d}`,p=`${g} branches from turn ${f+1}`;let l;e[2]!==n?(l=t.jsx("line",{x1:20,y1:18,x2:n,y2:18,stroke:"var(--muted-foreground)",strokeWidth:2}),e[2]=n,e[3]=l):l=e[3];let u;e[4]!==j?(u=Array.from({length:j}).map(Le),e[4]=j,e[5]=u):u=e[5];let k,b;e[6]!==n?(k=t.jsx("circle",{cx:n,cy:18,r:5,fill:"var(--background)",stroke:"var(--foreground)",strokeWidth:2}),b=t.jsx("circle",{cx:n,cy:18,r:2,fill:"var(--foreground)"}),e[6]=n,e[7]=k,e[8]=b):(k=e[7],b=e[8]);let T;if(e[9]!==c||e[10]!==n||e[11]!==s||e[12]!==o||e[13]!==r){let w;e[15]!==c||e[16]!==n||e[17]!==o||e[18]!==r?(w=(i,C)=>{const v=C===c,_=v?"var(--foreground)":"var(--border)",A=v?"var(--foreground)":"var(--border)",N=18+C*27,$=Math.min(i.graphTurnCount,o);return t.jsxs("g",{style:{opacity:v?1:.3},children:[C===0?t.jsx("line",{x1:n,y1:N,x2:n+$*r,y2:N,stroke:_,strokeWidth:2}):t.jsxs(t.Fragment,{children:[t.jsx("path",{d:`M ${n} 18 C ${n+10} ${N-5}, ${n+20} ${N}, ${n+r} ${N}`,fill:"none",stroke:_,strokeWidth:2}),$>1&&t.jsx("line",{x1:n+r,y1:N,x2:n+$*r,y2:N,stroke:_,strokeWidth:2})]}),Array.from({length:$}).map((R,S)=>t.jsxs("g",{children:[t.jsx("circle",{cx:n+(S+1)*r,cy:N,r:3.5,fill:"var(--background)",stroke:_,strokeWidth:1.5}),t.jsx("circle",{cx:n+(S+1)*r,cy:N,r:1.5,fill:A})]},S)),i.graphTurnCount>o&&t.jsxs("text",{x:n+($+.4)*r,y:N+3,fill:v?"var(--foreground)":"var(--border)",fontSize:"8",fontFamily:"monospace",children:["+",i.graphTurnCount-o]})]},i.id)},e[15]=c,e[16]=n,e[17]=o,e[18]=r,e[19]=w):w=e[19],T=s.map(w),e[9]=c,e[10]=n,e[11]=s,e[12]=o,e[13]=r,e[14]=T}else T=e[14];let B;return e[20]!==d||e[21]!==m||e[22]!==p||e[23]!==l||e[24]!==u||e[25]!==k||e[26]!==b||e[27]!==T?(B=t.jsx("div",{className:"rounded-lg border bg-muted/20 px-3 py-2",children:t.jsxs("svg",{width:"100%",height:d,viewBox:m,role:"img","aria-label":p,children:[l,u,k,b,T]})}),e[20]=d,e[21]=m,e[22]=p,e[23]=l,e[24]=u,e[25]=k,e[26]=b,e[27]=T,e[28]=B):B=e[28],B}function Le(a,e){return t.jsxs("g",{children:[t.jsx("circle",{cx:20+e*25,cy:18,r:3.5,fill:"var(--background)",stroke:"var(--muted-foreground)",strokeWidth:1.5}),t.jsx("circle",{cx:20+e*25,cy:18,r:1.5,fill:"var(--muted-foreground)"})]},`s-${e}`)}function Pe(a){return a.graphTurnCount}function We(a){const e=a.input.file_path??a.input.path??"";if(e)return e.split("/").pop()||e;const s=a.input.command;if(s)return s.length>40?s.slice(0,37)+"...":s;const c=a.input.pattern;if(c)return c.length>30?c.slice(0,27)+"...":c;const f=a.input.query;return f?f.length>30?f.slice(0,27)+"...":f:""}function Fe(a){const e=le.c(26),{turn:s,archiveIndex:c,branchId:f,onRedoToHere:g}=a;let j;e[0]!==s.userMessage?(j=typeof s.userMessage=="string"?s.userMessage:Array.isArray(s.userMessage)?s.userMessage.flatMap(qe).join(`
|
|
2
2
|
`):null,e[0]=s.userMessage,e[1]=j):j=e[1];const h=j,y=c+1;let o;e[2]!==y?(o=t.jsx(ge,{className:"border-b py-2",children:t.jsxs(pe,{children:["Turn ",y]})}),e[2]=y,e[3]=o):o=e[3];let n;e[4]!==h?(n=h&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"You"}),t.jsx("div",{className:"text-sm text-foreground",children:h})]}),e[4]=h,e[5]=n):n=e[5];let r;e[6]!==s.thinking[0]||e[7]!==s.thinking.length?(r=s.thinking.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Thinking"}),t.jsxs("div",{className:"text-xs text-muted-foreground italic",children:[s.thinking[0].thinking.slice(0,300),s.thinking[0].thinking.length>300?"...":""]})]}),e[6]=s.thinking[0],e[7]=s.thinking.length,e[8]=r):r=e[8];let d;e[9]!==s.assistantText?(d=s.assistantText.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-success",children:"Assistant"}),t.jsx("div",{className:"text-sm text-muted-foreground",children:s.assistantText.join(`
|
|
3
|
-
`)})]}),e[9]=s.assistantText,e[10]=d):d=e[10];let m;e[11]!==s.toolCalls?(m=s.toolCalls.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Tools"}),t.jsx("div",{className:"flex flex-wrap gap-x-2 gap-y-1",children:s.toolCalls.map(Oe)})]}),e[11]=s.toolCalls,e[12]=m):m=e[12];let p;e[13]!==n||e[14]!==r||e[15]!==d||e[16]!==m?(p=t.jsxs(je,{className:"flex flex-col gap-3 py-3",children:[n,r,d,m]}),e[13]=n,e[14]=r,e[15]=d,e[16]=m,e[17]=p):p=e[17];let l;e[18]!==c||e[19]!==f||e[20]!==g?(l=g&&t.jsx(ve,{className:"justify-end py-2",children:t.jsxs(
|
|
4
|
-
`)})]}),e[7]=s.assistantText,e[8]=n):n=e[8];let r;e[9]!==s.toolCalls?(r=s.toolCalls.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Tools"}),t.jsx("div",{className:"flex flex-wrap gap-x-2 gap-y-1",children:s.toolCalls.map(Ye)})]}),e[9]=s.toolCalls,e[10]=r):r=e[10];let d;e[11]!==y||e[12]!==o||e[13]!==n||e[14]!==r?(d=t.jsxs(je,{className:"flex flex-col gap-3 py-3",children:[y,o,n,r]}),e[11]=y,e[12]=o,e[13]=n,e[14]=r,e[15]=d):d=e[15];let m;e[16]!==c||e[17]!==f||e[18]!==g?(m=()=>g(f,c),e[16]=c,e[17]=f,e[18]=g,e[19]=m):m=e[19];let p;e[20]===Symbol.for("react.memo_cache_sentinel")?(p=t.jsx(me,{"data-icon":"inline-start",className:"scale-x-[-1]"}),e[20]=p):p=e[20];let l;e[21]!==m?(l=t.jsx(ve,{className:"justify-end py-2",children:t.jsxs(
|
|
5
|
-
`)).turns}catch{}r.push({kind:"archived",id:I.id,label:I.label,createdAt:I.createdAt,fullTurns:
|
|
3
|
+
`)})]}),e[9]=s.assistantText,e[10]=d):d=e[10];let m;e[11]!==s.toolCalls?(m=s.toolCalls.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Tools"}),t.jsx("div",{className:"flex flex-wrap gap-x-2 gap-y-1",children:s.toolCalls.map(Oe)})]}),e[11]=s.toolCalls,e[12]=m):m=e[12];let p;e[13]!==n||e[14]!==r||e[15]!==d||e[16]!==m?(p=t.jsxs(je,{className:"flex flex-col gap-3 py-3",children:[n,r,d,m]}),e[13]=n,e[14]=r,e[15]=d,e[16]=m,e[17]=p):p=e[17];let l;e[18]!==c||e[19]!==f||e[20]!==g?(l=g&&t.jsx(ve,{className:"justify-end py-2",children:t.jsxs(J,{variant:"ghost",size:"sm",onClick:()=>g(f,c),children:[t.jsx(me,{"data-icon":"inline-start",className:"scale-x-[-1]"}),"Redo to here"]})}),e[18]=c,e[19]=f,e[20]=g,e[21]=l):l=e[21];let u;return e[22]!==o||e[23]!==p||e[24]!==l?(u=t.jsxs(ye,{size:"sm",className:"motion-list-item gap-0 py-0",children:[o,p,l]}),e[22]=o,e[23]=p,e[24]=l,e[25]=u):u=e[25],u}function Oe(a){const e=Ne(a),s=We(a)||e.summary;return t.jsxs("span",{className:ke("font-mono text-xs text-muted-foreground",a.isError&&"text-destructive"),children:[e.label,s?` ${s}`:""]},a.id)}function qe(a){return a.type==="text"?[a.text]:[]}function Ge(a){const e=le.c(27),{turn:s,archiveIndex:c,branchId:f,onRedoToHere:g}=a,j=c+1;let h;e[0]!==j?(h=t.jsx(ge,{className:"border-b py-2",children:t.jsxs(pe,{children:["Turn ",j]})}),e[0]=j,e[1]=h):h=e[1];let y;e[2]!==s.userMessage?(y=s.userMessage&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"You"}),t.jsx("div",{className:"text-sm text-foreground",children:s.userMessage})]}),e[2]=s.userMessage,e[3]=y):y=e[3];let o;e[4]!==s.thinkingBlocks[0]||e[5]!==s.thinkingBlocks.length?(o=s.thinkingBlocks.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Thinking"}),t.jsxs("div",{className:"text-xs text-muted-foreground italic",children:[s.thinkingBlocks[0].slice(0,300),"..."]})]}),e[4]=s.thinkingBlocks[0],e[5]=s.thinkingBlocks.length,e[6]=o):o=e[6];let n;e[7]!==s.assistantText?(n=s.assistantText.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-success",children:"Assistant"}),t.jsx("div",{className:"text-sm text-muted-foreground",children:s.assistantText.join(`
|
|
4
|
+
`)})]}),e[7]=s.assistantText,e[8]=n):n=e[8];let r;e[9]!==s.toolCalls?(r=s.toolCalls.length>0&&t.jsxs("div",{className:"grid grid-cols-[5rem_minmax(0,1fr)] items-start gap-3",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Tools"}),t.jsx("div",{className:"flex flex-wrap gap-x-2 gap-y-1",children:s.toolCalls.map(Ye)})]}),e[9]=s.toolCalls,e[10]=r):r=e[10];let d;e[11]!==y||e[12]!==o||e[13]!==n||e[14]!==r?(d=t.jsxs(je,{className:"flex flex-col gap-3 py-3",children:[y,o,n,r]}),e[11]=y,e[12]=o,e[13]=n,e[14]=r,e[15]=d):d=e[15];let m;e[16]!==c||e[17]!==f||e[18]!==g?(m=()=>g(f,c),e[16]=c,e[17]=f,e[18]=g,e[19]=m):m=e[19];let p;e[20]===Symbol.for("react.memo_cache_sentinel")?(p=t.jsx(me,{"data-icon":"inline-start",className:"scale-x-[-1]"}),e[20]=p):p=e[20];let l;e[21]!==m?(l=t.jsx(ve,{className:"justify-end py-2",children:t.jsxs(J,{variant:"ghost",size:"sm",onClick:m,children:[p,"Redo to here"]})}),e[21]=m,e[22]=l):l=e[22];let u;return e[23]!==l||e[24]!==h||e[25]!==d?(u=t.jsxs(ye,{size:"sm",className:"motion-list-item gap-0 py-0",children:[h,d,l]}),e[23]=l,e[24]=h,e[25]=d,e[26]=u):u=e[26],u}function Ye(a,e){return t.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[a.type," ",a.filePath.split("/").pop()]},e)}function Je(a){var xe,he,ue;const e=le.c(88),{open:s,branches:c,branchPointTurnIndex:f,currentTurns:g,onClose:j,onCloseComplete:h,onRedoToTurn:y,onRedoEntireBranch:o}=a,n=s===void 0?!0:s;let r;if(e[0]!==c||e[1]!==g){r=[];let x;e[3]===Symbol.for("react.memo_cache_sentinel")?(x=new Date().toISOString(),e[3]=x):x=e[3];let M;e[4]!==g?(M={kind:"current",id:"__current__",label:"Current branch",createdAt:x,fullTurns:g,archivedTurns:null,graphTurnCount:g.length,branch:null},e[4]=g,e[5]=M):M=e[5],r.push(M);for(const I of c){let X=null;if(I.jsonlLines.length>0)try{X=Te(I.jsonlLines.join(`
|
|
5
|
+
`)).turns}catch{}r.push({kind:"archived",id:I.id,label:I.label,createdAt:I.createdAt,fullTurns:X,archivedTurns:X?null:I.turns,graphTurnCount:X?X.length:I.turns.length,branch:I})}e[0]=c,e[1]=g,e[2]=r}else r=e[2];const d=r,[m,p]=fe.useState(0),l=d.length;let u;e[6]!==l?(u=()=>{p(x=>x>0?x-1:l-1)},e[6]=l,e[7]=u):u=e[7];const k=u;let b;e[8]!==l?(b=()=>{p(x=>x<l-1?x+1:0)},e[8]=l,e[9]=b):b=e[9];const T=b;let B,w;e[10]!==T||e[11]!==k?(B=()=>{const x=M=>{M.key==="ArrowLeft"?k():M.key==="ArrowRight"&&T()};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},w=[k,T],e[10]=T,e[11]=k,e[12]=B,e[13]=w):(B=e[12],w=e[13]),fe.useEffect(B,w);const i=d[m];if(!i)return null;const C=((xe=i.fullTurns)==null?void 0:xe.length)??((he=i.archivedTurns)==null?void 0:he.length)??0,v=i.kind==="current";let _;e[14]!==j?(_=x=>{x||j()},e[14]=j,e[15]=_):_=e[15];let A;e[16]!==h?(A=x=>{x||h==null||h()},e[16]=h,e[17]=A):A=e[17];let N;e[18]===Symbol.for("react.memo_cache_sentinel")?(N=t.jsx(Ee,{className:"size-4"}),e[18]=N):N=e[18];const $=f+1;let R;e[19]!==$?(R=t.jsx("div",{className:"flex items-center justify-between gap-3",children:t.jsxs(Be,{className:"flex items-center gap-2",children:[N,"Branches from Turn ",$]})}),e[19]=$,e[20]=R):R=e[20];let S;e[21]===Symbol.for("react.memo_cache_sentinel")?(S=t.jsx(we,{children:"Compare alternate continuations and resume from an earlier point."}),e[21]=S):S=e[21];const ie=l<=1;let Z;e[22]===Symbol.for("react.memo_cache_sentinel")?(Z=t.jsx(De,{"data-icon":"inline-start"}),e[22]=Z):Z=e[22];let E;e[23]!==k||e[24]!==ie?(E=t.jsx(J,{variant:"ghost",size:"icon-sm",onClick:k,disabled:ie,"aria-label":"Previous branch",children:Z}),e[23]=k,e[24]=ie,e[25]=E):E=e[25];let D;e[26]!==v?(D=v&&t.jsx($e,{variant:"secondary",className:"ml-2",children:"Active"}),e[26]=v,e[27]=D):D=e[27];let z;e[28]!==i.label||e[29]!==D?(z=t.jsxs("div",{className:"truncate text-sm font-medium",children:[i.label,D]}),e[28]=i.label,e[29]=D,e[30]=z):z=e[30];const ae=m+1;let H;e[31]!==i.createdAt||e[32]!==v?(H=!v&&t.jsxs(t.Fragment,{children:[" · ",new Date(i.createdAt).toLocaleString()]}),e[31]=i.createdAt,e[32]=v,e[33]=H):H=e[33];let L;e[34]!==ae||e[35]!==H||e[36]!==l?(L=t.jsxs("div",{className:"text-xs text-muted-foreground",children:["Branch ",ae," of ",l,H]}),e[34]=ae,e[35]=H,e[36]=l,e[37]=L):L=e[37];let P;e[38]!==z||e[39]!==L?(P=t.jsxs("div",{className:"flex-1 text-center",children:[z,L]}),e[38]=z,e[39]=L,e[40]=P):P=e[40];const oe=l<=1;let ee;e[41]===Symbol.for("react.memo_cache_sentinel")?(ee=t.jsx(ze,{"data-icon":"inline-start"}),e[41]=ee):ee=e[41];let W;e[42]!==T||e[43]!==oe?(W=t.jsx(J,{variant:"ghost",size:"icon-sm",onClick:T,disabled:oe,"aria-label":"Next branch",children:ee}),e[42]=T,e[43]=oe,e[44]=W):W=e[44];let F;e[45]!==E||e[46]!==P||e[47]!==W?(F=t.jsxs("div",{className:"flex items-center gap-3 pt-3",children:[E,P,W]}),e[45]=E,e[46]=P,e[47]=W,e[48]=F):F=e[48];let O;e[49]!==R||e[50]!==F?(O=t.jsxs(Ae,{className:"shrink-0 p-5 pb-4 pr-14",children:[R,S,F]}),e[49]=R,e[50]=F,e[51]=O):O=e[51];let te;e[52]===Symbol.for("react.memo_cache_sentinel")?(te=t.jsx(de,{}),e[52]=te):te=e[52];let q;e[53]!==f||e[54]!==m||e[55]!==d?(q=t.jsx("div",{className:"shrink-0 px-5 py-4",children:t.jsx(He,{branches:d,activeBranchIdx:m,branchPointTurnIndex:f})}),e[53]=f,e[54]=m,e[55]=d,e[56]=q):q=e[56];let se;e[57]===Symbol.for("react.memo_cache_sentinel")?(se=t.jsx(de,{}),e[57]=se):se=e[57];let G;e[58]!==i.archivedTurns||e[59]!==i.fullTurns||e[60]!==i.id||e[61]!==v||e[62]!==y||e[63]!==C?(G=C===0?t.jsx(be,{className:"min-h-40",children:t.jsxs(Ce,{children:[t.jsx(_e,{children:"No turns in this branch"}),t.jsx(Me,{children:"This continuation has no saved turns."})]})}):i.fullTurns?i.fullTurns.map((x,M)=>t.jsx(Fe,{turn:x,archiveIndex:M,branchId:i.id,onRedoToHere:v?void 0:y},x.id)):(ue=i.archivedTurns)==null?void 0:ue.map((x,M)=>t.jsx(Ge,{turn:x,archiveIndex:M,branchId:i.id,onRedoToHere:y},x.index)),e[58]=i.archivedTurns,e[59]=i.fullTurns,e[60]=i.id,e[61]=v,e[62]=y,e[63]=C,e[64]=G):G=e[64];let Y;e[65]!==G?(Y=t.jsx(Se,{className:"min-h-0 flex-1",children:t.jsx("div",{className:"flex flex-col gap-3 p-4",children:G})}),e[65]=G,e[66]=Y):Y=e[66];let ne;e[67]===Symbol.for("react.memo_cache_sentinel")?(ne=t.jsx(de,{}),e[67]=ne):ne=e[67];const ce=C!==1?"s":"";let K;e[68]!==ce||e[69]!==C?(K=t.jsxs("span",{className:"text-xs text-muted-foreground",children:[C," turn",ce," in this branch"]}),e[68]=ce,e[69]=C,e[70]=K):K=e[70];let Q;e[71]!==i.id||e[72]!==v||e[73]!==o?(Q=!v&&t.jsxs(J,{size:"sm",onClick:()=>o(i.id),children:[t.jsx(me,{"data-icon":"inline-start",className:"scale-x-[-1]"}),"Redo entire branch"]}),e[71]=i.id,e[72]=v,e[73]=o,e[74]=Q):Q=e[74];let U;e[75]!==K||e[76]!==Q?(U=t.jsxs("div",{className:"flex shrink-0 items-center justify-between p-4",children:[K,Q]}),e[75]=K,e[76]=Q,e[77]=U):U=e[77];let V;e[78]!==O||e[79]!==q||e[80]!==Y||e[81]!==U?(V=t.jsxs(Ie,{className:"flex max-h-[80dvh] flex-col gap-0 overflow-hidden p-0 sm:max-w-2xl",children:[O,te,q,se,Y,ne,U]}),e[78]=O,e[79]=q,e[80]=Y,e[81]=U,e[82]=V):V=e[82];let re;return e[83]!==n||e[84]!==V||e[85]!==_||e[86]!==A?(re=t.jsx(Re,{open:n,onOpenChange:_,onOpenChangeComplete:A,children:V}),e[83]=n,e[84]=V,e[85]=_,e[86]=A,e[87]=re):re=e[87],re}export{Je as BranchModal};
|