gestalt-mobile 0.30.1 → 0.30.2

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.
@@ -12,7 +12,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
12
12
  audit.</li>`),ac=q(`<li class="svelte-1im954t"><time class="svelte-1im954t"> </time></li>`),oc=q(`<details><summary class="svelte-1im954t"> </summary> <ul></ul></details>`),sc=q(`<aside class="autopilot-audit svelte-1im954t" aria-label="Autopilot audit entry"><strong>Autopilot</strong> <!> <!></aside>`),cc=q(`<time class="svelte-1im954t"> <!></time>`),lc=q(`<div class="entry-heading svelte-1im954t"><strong>working</strong></div> <!>`,1),uc=q(`<section><!> <!></section>`),dc=q(`<div class="entry-heading svelte-1im954t"><strong>prompt</strong> <!></div> <div class="entry-content svelte-1im954t"><!></div> <!> <!>`,1),fc=q(`<div class="commentary-content live-commentary svelte-1im954t"><!></div>`),pc=q(`<!> <!>`,1),mc=q(`<button class="commentary-toggle svelte-1im954t" type="button"><span aria-hidden="true"> </span> commentary</button>`),hc=q(`<div class="answer-history svelte-1im954t"><!></div>`),gc=q(`<div class="commentary-content svelte-1im954t"><!></div>`),_c=q(`<section class="answer-turn svelte-1im954t"><div class="entry-heading svelte-1im954t"><strong> </strong> <!></div> <!> <!> <!> <div class="entry-content svelte-1im954t"><!></div></section>`),vc=q(`<div class="entry-content svelte-1im954t"><!></div>`),yc=q(`<details><summary>commentary</summary> <!></details> <!>`,1),bc=q(`<section><div class="entry-heading svelte-1im954t"><strong> </strong> <!></div> <!> <!></section>`),xc=q(`<li><!></li>`),Sc=q(`<li class="interaction-only svelte-1im954t"><!></li>`),Cc=q(`<li class="progress-item svelte-1im954t"><section><!> <!></section></li>`),wc=q(`<ol aria-label="Chat messages" class="svelte-1im954t"><!> <!> <!> <!></ol>`);function Tc(e,t){Qe(t,!0);let n=(e,r=b)=>{var i=Hr();Z(B(i),17,r,Xr,(e,r)=>{var i=Hr(),a=B(i),o=e=>{var n=Hr(),i=B(n),a=e=>{var t=Rs(),n=z(t,!0);N(t),H(()=>{Q(t,`href`,G(r).href),Y(n,G(r).text)}),K(`click`,t,e=>oe(e,G(r).href)),J(e,t)},o=P(()=>t.onopenorg&&Ps(G(r).href)),s=e=>{var t=zs(),n=z(t,!0);N(t),H(()=>{Q(t,`href`,G(r).href),Y(n,G(r).text)}),J(e,t)};X(i,e=>{G(o)?e(a):e(s,-1)}),J(e,n)},s=e=>{var t=Bs(),n=z(t,!0);N(t),H(()=>Y(n,G(r).text)),J(e,t)},c=e=>{var t=Vs(),i=z(t);n(i,()=>G(r).parts),N(t),J(e,t)},l=e=>{var t=Vr();H(()=>Y(t,G(r).text)),J(e,t)};X(a,e=>{G(r).kind===`link`?e(o):G(r).kind===`code`?e(s,1):G(r).kind===`strong`?e(c,2):e(l,-1)}),J(e,i)}),J(e,i)},r=(e,t=b)=>{let n=P(()=>Do(t()));var r=Hr(),i=B(r),a=e=>{var t=Gs(),r=V(z(t),2);Z(r,21,()=>G(n),e=>e.path,(e,t)=>{var n=Ws(),r=z(n),i=z(r,!0);N(r);var a=V(r,2),o=z(a),s=z(o);N(o);var c=V(o,2),l=z(c);N(c),N(a);var u=V(a,2),d=e=>{var n=Hs(),r=z(n,!0);N(n),H((e,t)=>{Q(n,`datetime`,e),Y(r,t)},[()=>new Date(G(t).touchedAt).toISOString(),()=>Ao(G(t).touchedAt,G(y))]),J(e,n)},f=e=>{J(e,Us())};X(u,e=>{G(t).touchedAt===void 0?e(f,-1):e(d)}),N(n),H(()=>{Y(i,G(t).path),Y(s,`+${G(t).additions??`?`??``}`),Y(l,`-${G(t).deletions??`?`??``}`)}),J(e,n)}),N(r),N(t),J(e,t)};X(i,e=>{G(n).length&&e(a)}),J(e,r)},i=(e,t=b)=>{var r=Hr();Z(B(r),17,()=>ws(t()),Xr,(e,t)=>{var r=Hr(),i=B(r),a=e=>{var n=Ks(),r=z(n),i=V(r,2),a=z(i),o=z(a,!0);N(a),N(i),N(n),H(e=>{Q(r,`aria-label`,e),Y(o,G(t).text)},[()=>se(G(t).text)]),K(`click`,r,()=>void ce(G(t).text)),J(e,n)},o=e=>{var r=Xs(),i=z(r),a=z(i),o=z(a);Z(o,21,()=>G(t).headers,Xr,(e,t)=>{var r=qs(),i=z(r);n(i,()=>G(t)),N(r),J(e,r)}),N(o),N(a);var s=V(a);Z(s,21,()=>G(t).rows,Xr,(e,t)=>{var r=Ys();Z(r,21,()=>G(t),Xr,(e,t)=>{var r=Js(),i=z(r);n(i,()=>G(t)),N(r),J(e,r)}),N(r),J(e,r)}),N(s),N(i),N(r),J(e,r)},s=e=>{var r=Hr(),i=B(r),a=e=>{var r=Zs(),i=z(r);n(i,()=>G(t).parts),N(r),J(e,r)},o=e=>{var r=Qs(),i=z(r);n(i,()=>G(t).parts),N(r),J(e,r)},s=e=>{var r=$s(),i=z(r);n(i,()=>G(t).parts),N(r),J(e,r)},c=e=>{var r=ec(),i=z(r);n(i,()=>G(t).parts),N(r),J(e,r)},l=e=>{var r=tc(),i=z(r);n(i,()=>G(t).parts),N(r),J(e,r)},u=e=>{var r=nc(),i=z(r);n(i,()=>G(t).parts),N(r),J(e,r)};X(i,e=>{G(t).level===1?e(a):G(t).level===2?e(o,1):G(t).level===3?e(s,2):G(t).level===4?e(c,3):G(t).level===5?e(l,4):e(u,-1)}),J(e,r)},c=e=>{var r=rc(),i=z(r);n(i,()=>G(t).parts),N(r),J(e,r)};X(i,e=>{G(t).kind===`code`?e(a):G(t).kind===`table`?e(o,1):G(t).kind===`heading`?e(s,2):e(c,-1)}),J(e,r)}),J(e,r)},a=$(t,`activeTurnId`,3,null),o=$(t,`autopilotAuditTruncated`,3,!1),s=$(t,`interactions`,19,()=>[]),c=$(t,`answers`,19,()=>({})),l=$(t,`submittedAnswers`,19,()=>({})),u=$(t,`clipboard`,19,()=>globalThis.navigator?.clipboard),d=$(t,`onanswer`,3,()=>{}),f=$(t,`onquiz`,3,()=>{}),p=$(t,`onpermission`,3,()=>{}),m=$(t,`ondecision`,3,()=>{}),h=$(t,`onretry`,3,()=>{}),g=$(t,`oncopyresult`,3,()=>{}),_=P(()=>Cs(t.messages)),v=R({}),y=I(R(Date.now()));Ri(()=>{let e=globalThis.setInterval(()=>L(y,Date.now(),!0),1e3);return()=>globalThis.clearInterval(e)});let x=P(()=>G(_).filter(e=>e.kind===`user`)),S=P(()=>G(_).filter(e=>e.kind===`assistant`)),C=P(()=>G(S).at(-1)?.id),w=P(()=>s().filter(e=>!e.turnId||!G(x).some(t=>t.turnId===e.turnId)));function T(e){return G(x).findLast(t=>t.turnId&&t.turnId===e.turnId)?.id??G(x).at(-1)?.id??null}function E(e){return e.kind===`user`?s().filter(t=>T(t)===e.id):[]}function D(e){return e.kind===`assistant`?t.activities.filter(t=>t.turnId?t.turnId===e.turnId:e.id===G(C)):[]}function O(e){return e.turnId?G(S).some(t=>t.turnId===e.turnId):!!G(C)}function k(e){return!e.turnId||O(e)?null:G(x).findLast(t=>t.turnId===e.turnId)?.id??null}function ee(e){return e.kind===`user`?t.activities.filter(t=>k(t)===e.id):[]}function te(){return t.activities.filter(e=>!O(e)&&!k(e))}let ne=P(te);function re(e){return e.filter(e=>!e.label.toLowerCase().replaceAll(` `,``).startsWith(`filechange`))}function A(e){return!!(e.kind===`assistant`&&a()&&(e.turnId===a()||!e.turnId&&e.id===G(C)))}function ie(e){return!!(e.kind===`user`&&a()&&(e.turnId===a()||!e.turnId))}function ae(e,t){return Oo(G(_)[e-1]?.occurredAt,t)}function oe(e,n){!t.onopenorg||!Ps(n)||(e.preventDefault(),t.onopenorg(n))}function se(e){return`Copy code block: ${(e.trim().split(`
13
13
  `)[0]?.trim()||`empty block`).slice(0,48)}`}async function ce(e){g()(await Fs(e,u()))}var le=wc(),ue=z(le),de=e=>{J(e,ic())};X(ue,e=>{o()&&e(de)});var fe=V(ue,2);Z(fe,19,()=>G(_),e=>e.id,(e,t,n)=>{var a=xc(),o=z(a),s=e=>{var n=sc(),r=V(z(n)),i=V(r),a=e=>{var n=Hs(),r=z(n,!0);N(n),H((e,t)=>{Q(n,`datetime`,e),Y(r,t)},[()=>new Date(G(t).occurredAt).toISOString(),()=>ko(G(t).occurredAt)]),J(e,n)};X(i,e=>{G(t).occurredAt&&e(a)});var o=V(i,2),s=e=>{var n=oc(),r=z(n),i=z(r);N(r);var a=V(r,2);Z(a,21,()=>G(t).timestamps,e=>`${G(t).id}:${e}`,(e,t)=>{var n=ac(),r=z(n),i=z(r,!0);N(r),N(n),H((e,t)=>{Q(r,`datetime`,e),Y(i,t)},[()=>new Date(G(t)).toISOString(),()=>ko(G(t))]),J(e,n)}),N(a),N(n),H(()=>Y(i,`Show ${G(t).count??``} timestamps`)),J(e,n)};X(o,e=>{G(t).count>1&&e(s)}),N(n),H(()=>Y(r,` ${G(t).text??``}${G(t).count>1?` · ${G(t).count} times`:``} `)),J(e,n)},u=e=>{let a=P(()=>ee(G(t)));var o=dc(),s=B(o),u=V(z(s),2),g=e=>{var r=cc(),i=z(r),a=V(i),o=e=>{var r=Vr();H(e=>Y(r,`· ${e??``}`),[()=>ae(G(n),G(t).occurredAt)]),J(e,r)},s=P(()=>ae(G(n),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(r),H((e,t)=>{Q(r,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>ko(G(t).occurredAt)]),J(e,r)};X(u,e=>{G(t).occurredAt&&e(g)}),N(s);var _=V(s,2),v=z(_);i(v,()=>G(t).text),N(_);var y=V(_,2);{let e=P(()=>E(G(t)));Ss(y,{get interactions(){return G(e)},get answers(){return c()},get submittedAnswers(){return l()},get onanswer(){return d()},get onquiz(){return f()},get onpermission(){return p()},get ondecision(){return m()},get onretry(){return h()}})}var b=V(y,2),x=e=>{var n=uc(),i=z(n),o=e=>{var t=lc(),n=V(B(t),2);{let e=P(()=>re(G(a)));va(n,{get activities(){return G(e)},variant:`live`})}J(e,t)},s=P(()=>ie(G(t))),c=e=>{{let t=P(()=>re(G(a)));va(e,{get activities(){return G(t)}})}};X(i,e=>{G(s)?e(o):e(c,-1)});var l=V(i,2);r(l,()=>G(a)),N(n),H(e=>gi(n,1,e,`svelte-1im954t`),[()=>ui(ie(G(t))?`progress-turn`:`orphan-activity-turn`)]),J(e,n)};X(b,e=>{G(a).length&&e(x)}),J(e,o)},g=e=>{let r=P(()=>D(G(t)));var a=_c(),o=z(a),s=z(o),c=z(s,!0);N(s);var l=V(s,2),u=e=>{var r=cc(),i=z(r),a=V(i),o=e=>{var r=Vr();H(e=>Y(r,`· ${e??``}`),[()=>ae(G(n),G(t).occurredAt)]),J(e,r)},s=P(()=>ae(G(n),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(r),H((e,t)=>{Q(r,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>ko(G(t).occurredAt)]),J(e,r)};X(l,e=>{G(t).occurredAt&&e(u)}),N(o);var d=V(o,2),f=e=>{var n=pc(),a=B(n),o=e=>{var n=fc(),r=z(n);i(r,()=>G(t).commentary),N(n),J(e,n)};X(a,e=>{G(t).commentary&&e(o)});var s=V(a,2);{let e=P(()=>re(G(r)));va(s,{get activities(){return G(e)},variant:`live`})}J(e,n)},p=P(()=>A(G(t))),m=e=>{var n=hc(),r=z(n),i=e=>{var n=mc(),r=z(n),i=z(r,!0);N(r),He(),N(n),H(e=>{Q(n,`aria-expanded`,e),Q(n,`aria-controls`,`commentary-${G(t).id}`),Y(i,v[G(t).id]?`⌄`:`›`)},[()=>!!v[G(t).id]]),K(`click`,n,()=>v[G(t).id]=!v[G(t).id]),J(e,n)};X(r,e=>{G(t).commentary&&e(i)}),N(n),J(e,n)},h=P(()=>G(t).commentary||re(G(r)).length);X(d,e=>{G(p)?e(f):G(h)&&e(m,1)});var g=V(d,2),_=e=>{var n=gc(),r=z(n);i(r,()=>G(t).commentary),N(n),H(()=>Q(n,`id`,`commentary-${G(t).id}`)),J(e,n)},b=P(()=>!A(G(t))&&G(t).commentary&&v[G(t).id]);X(g,e=>{G(b)&&e(_)});var x=V(g,2);Vo(x,{get activities(){return G(r)},get now(){return G(y)}});var S=V(x,2),C=z(S);i(C,()=>G(t).answer),N(S),N(a),H(e=>Y(c,e),[()=>A(G(t))?`working`:`answer`]),J(e,a)},_=e=>{let a=P(()=>D(G(t)));var o=bc(),s=z(o),c=z(s),l=z(c,!0);N(c);var u=V(c,2),d=e=>{var r=cc(),i=z(r),a=V(i),o=e=>{var r=Vr();H(e=>Y(r,`· ${e??``}`),[()=>ae(G(n),G(t).occurredAt)]),J(e,r)},s=P(()=>ae(G(n),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(r),H((e,t)=>{Q(r,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>ko(G(t).occurredAt)]),J(e,r)};X(u,e=>{G(t).occurredAt&&e(d)}),N(s);var f=V(s,2),p=e=>{var n=pc(),r=B(n),o=e=>{var n=vc(),r=z(n);i(r,()=>G(t).commentary),N(n),J(e,n)};X(r,e=>{G(t).commentary&&e(o)});var s=V(r,2);{let e=P(()=>re(G(a)));va(s,{get activities(){return G(e)},variant:`live`})}J(e,n)},m=P(()=>A(G(t))),h=e=>{var n=yc(),r=B(n),o=V(z(r),2);i(o,()=>G(t).commentary),N(r);var s=V(r,2);{let e=P(()=>re(G(a)));va(s,{get activities(){return G(e)}})}J(e,n)};X(f,e=>{G(m)?e(p):e(h,-1)});var g=V(f,2);r(g,()=>G(a)),N(o),H((e,t)=>{gi(o,1,e,`svelte-1im954t`),Y(l,t)},[()=>ui(A(G(t))?`progress-turn`:`commentary-turn`),()=>A(G(t))?`working`:`commentary`]),J(e,o)};X(o,e=>{G(t).kind===`audit`?e(s):G(t).kind===`user`?e(u,1):G(t).answer===null?G(t).commentary!==null&&e(_,3):e(g,2)}),N(a),H(()=>gi(a,1,ui(G(t).kind===`user`?`prompt-turn`:G(t).kind===`audit`?`audit-item`:`answer-item`),`svelte-1im954t`)),J(e,a)});var pe=V(fe,2),me=e=>{var t=Sc();Ss(z(t),{get interactions(){return G(w)},get answers(){return c()},get submittedAnswers(){return l()},get onanswer(){return d()},get onquiz(){return f()},get onpermission(){return p()},get ondecision(){return m()},get onretry(){return h()}}),N(t),J(e,t)};X(pe,e=>{G(x).length===0&&G(w).length&&e(me)});var he=V(pe,2),ge=e=>{var t=Cc(),n=z(t),i=z(n),o=e=>{var t=lc(),n=V(B(t),2);{let e=P(()=>re(G(ne)));va(n,{get activities(){return G(e)},variant:`live`})}J(e,t)},s=e=>{{let t=P(()=>re(G(ne)));va(e,{get activities(){return G(t)}})}};X(i,e=>{a()?e(o):e(s,-1)});var c=V(i,2);r(c,()=>G(ne)),N(n),N(t),H(()=>gi(n,1,ui(a()?`progress-turn`:`orphan-activity-turn`),`svelte-1im954t`)),J(e,t)};X(he,e=>{G(ne).length&&e(ge)}),N(le),J(e,le),$e()}Pr([`click`]);var Ec=[150,300,600];function Dc(e){return new Promise(t=>setTimeout(t,e))}function Oc(e){return e.status===502||e.status===503||e.status===504}async function kc(e=fetch){for(let t=0;t<=Ec.length;t+=1){let n;try{n=await e(`/api/bootstrap`)}catch(e){if(e instanceof Error&&e.name===`AbortError`)throw e;if(t===Ec.length)throw Error(`BOOTSTRAP_FAILED`);await Dc(Ec[t]);continue}if(n.ok)return n.json();if(!Oc(n)||t===Ec.length)throw Error(`BOOTSTRAP_FAILED`);await Dc(Ec[t])}throw Error(`BOOTSTRAP_FAILED`)}var Ac=`gestalt-mobile`,jc=2,Mc=[`settings`,`drafts`,`cursors`,`messages`];function Nc(e){return new Promise((t,n)=>{let r=e.open(Ac,jc);r.onupgradeneeded=()=>{for(let e of Mc)r.result.objectStoreNames.contains(e)||r.result.createObjectStore(e)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function Pc(e,t,n){return Lc(e.transaction(t,`readonly`).objectStore(t).get(n))}function Fc(e,t,n,r){return Lc(e.transaction(t,`readwrite`).objectStore(t).put(r,n))}function Ic(e,t,n){return Lc(e.transaction(t,`readwrite`).objectStore(t).delete(n))}function Lc(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}var Rc=`chat-projections`,zc=e=>({version:1,cursor:e.cursor,lifecycle:e.lifecycle,activeTurnId:e.activeTurnId,messages:e.messages.filter(e=>e.role===`user`).slice(-200),activities:[],prompts:e.prompts.slice(-200),interactions:e.interactions.map(({requestId:e,key:t,kind:n,turnId:r,state:i,operationId:a,attemptedOutcome:o})=>({requestId:e,key:t,kind:n,...r?{turnId:r}:{},state:i,...a?{operationId:a}:{},...i===`resolved`&&(o===`approved`||o===`denied`||o===`answered`||o===`dismissed`)?{attemptedOutcome:o}:{},...typeof o==`object`&&o&&(o.decision===`accept`||o.decision===`decline`)?{attemptedOutcome:{decision:o.decision}}:{}})).slice(-200),buffered:[]});function Bc(e=globalThis.indexedDB){if(!e)return{read:async()=>null,write:async()=>{}};let t=Nc(e);return{read:async e=>{try{return await Pc(await t,Rc,e)}catch{return null}},write:async(e,n)=>{try{await Fc(await t,Rc,e,zc(n))}catch{}}}}var Vc=`chat-session`;function Hc(e){return new URLSearchParams(e).get(`chat-session`)?.trim()||null}function Uc(e,t){let n=new URL(e);return n.search=``,n.hash=``,n.searchParams.set(Vc,t),n.toString()}function Wc(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return`gestalt-chat-${(t>>>0).toString(36)}`}function Gc(e,t){if(e===`autopilot.turn-started`)return`Continued execution automatically`;if(e===`autopilot.final-rejected`)return`Kept incomplete supervised work active`;if(e===`autopilot.executor-resumed`)return`Resumed the assigned executor`;if(e===`autopilot.process-monitoring`)return`Monitoring executor background work`;if(e===`autopilot.process-result-consumed`)return`Consumed background work result`;if(e===`autopilot.process-terminated`)return Kc(t,`reason`)===`resourceBudget`?`Stopped background work at its resource limit`:`Stopped executor background work`;if(e===`autopilot.turn-failed`)return Kc(t,`code`)===`START_UNAVAILABLE`?`Automatic continuation could not start: session runtime unavailable`:`Automatic continuation failed`;if(e===`org-plan.attention-required`)return`Needs attention`;if(e===`org-plan.attention-resolved`)return Kc(t,`outcome`)===`failed`?`Attention resolution failed`:`Attention resolved`;if(e!==`autopilot.updated`)return null;let n=Kc(t,`state`),r=Kc(t,`reason`);return n===`completed`?`Completed the supervised plan`:n===`attentionRequired`&&r===`noPlanProgress`?`Automatic continuation stopped: no agent progress`:n===`attentionRequired`&&r===`reconcileFailed`?`Automatic continuation stopped: agent status unavailable`:n===`attentionRequired`&&r===`actionRateExceeded`?`Automatic continuation stopped: too many automatic actions`:null}function Kc(e,t){return e&&typeof e==`object`?e[t]:void 0}function qc(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.path==`string`&&Number.isInteger(t.additions)&&t.additions>=0&&Number.isInteger(t.deletions)&&t.deletions>=0?[{path:t.path,additions:t.additions,deletions:t.deletions}]:[]}):[]}function Jc(e){if(typeof e.id!=`string`)return null;let t={...typeof e.turnId==`string`?{turnId:e.turnId}:{},...typeof e.actorTurnId==`string`?{actorTurnId:e.actorTurnId}:{},...typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)?{occurredAt:e.occurredAt}:{}};if(e.kind===`reasoning`&&Array.isArray(e.summary)){let n=e.summary.filter(e=>typeof e==`string`).join(`
14
14
  `);return n?{id:e.id,label:`Reasoning summary`,detail:n,...t}:null}if(e.kind===`plan`&&typeof e.text==`string`)return{id:e.id,label:`Plan`,detail:e.text,...t};if(e.kind===`command`&&typeof e.command==`string`)return{id:e.id,label:`Command · ${String(e.status??`unknown`)}`,detail:e.command,...t};if(e.kind===`fileChange`&&Array.isArray(e.paths)){let n=qc(e.changes);return{id:e.id,label:`File change · ${String(e.status??`unknown`)}`,detail:e.paths.join(`
15
- `),...n.length?{changes:n}:{},...t}}return e.kind===`tool`&&typeof e.name==`string`?{id:e.id,label:`Tool · ${String(e.status??`unknown`)}`,detail:e.name,...t}:null}var Yc=()=>({sessionId:null,cursor:0,snapshotting:!1,lifecycle:`finished`,activeTurnId:null,messages:[],activities:[],prompts:[],interactions:[],autopilotAuditTruncated:!1,buffered:new Map}),Xc=(e=null)=>({...Yc(),sessionId:e});function Zc(e){return e.kind===`autopilot`?{id:`item:${e.id}`,role:`audit`,text:`Continued execution automatically`,...typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)?{occurredAt:e.occurredAt}:{},...typeof e.controlId==`string`?{controlId:e.controlId}:{},complete:!0}:e.kind!==`user`&&e.kind!==`agent`||typeof e.text!=`string`?null:{id:`item:${e.id}`,role:e.kind===`user`?`user`:`assistant`,text:e.text,...e.phase===`commentary`||e.phase===`final_answer`?{phase:e.phase}:{},...typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)?{occurredAt:e.occurredAt}:{},...typeof e.turnId==`string`?{turnId:e.turnId}:{},complete:!0}}function Qc(e){return{id:e.id,role:`audit`,text:e.label,occurredAt:e.occurredAt,...e.controlId?{controlId:e.controlId}:{},complete:!0}}function $c(e){let t=el(e.occurredAt),n=Gc(e.type,e.payload),r=e.payload&&typeof e.payload==`object`&&typeof e.payload.controlId==`string`?e.payload.controlId:void 0;return n&&t!==void 0?Qc({id:`audit:${e.sequence}`,label:n,occurredAt:t,...r?{controlId:r}:{}}):null}function el(e){if(typeof e!=`string`)return;let t=Date.parse(e);return Number.isFinite(t)?t:void 0}function tl(e){let t=el(e.requestedAt);return{requestId:e.requestId,key:`interaction:${e.requestId}`,kind:e.kind,turnId:e.turnId,payload:`payload`in e?e.payload:null,state:e.resolvedAt?e.outcome===`failed`?`failed`:`resolved`:`pending`,...e.resolvedAt?{attemptedOutcome:e.outcome}:{},...t===void 0?{}:{occurredAt:t}}}function nl(e,t){return t===`approved`||t===`denied`||t===`answered`||t===`dismissed`||t===`failed`?t:e?.kind===`quiz`||e?.kind===`userInput`?`answered`:typeof t==`object`&&t&&t.decision===`decline`?`denied`:e?`approved`:void 0}function rl(e,t){return e?t===`finished`||t===`interrupted`?t:`working`:t===`working`||t===`starting`||t===`recoverable`?`finished`:t}function il(e){return[...new Map(e.map(e=>[e.key??e.id??``,e])).values()]}function al(e,t){return e.some(e=>e.id===t.id)?e.map(e=>e.id===t.id?{...t,...t.occurredAt===void 0&&e.occurredAt!==void 0?{occurredAt:e.occurredAt}:{}}:e):[...e,t]}function ol(e,t,n){let r=new Map(n.map(e=>[e.id,e])),i=new Map(n.map((e,t)=>[e.id,t])),a=new Set(t.filter(e=>e.state!==`canonical`).map(e=>e.operationId)),o=new Set,s=e.flatMap(e=>{let i=Zc(e);if(!i)return[];if(e.kind===`user`){let n=t.find(t=>typeof e.operationId==`string`&&e.operationId===t.operationId||typeof e.turnId==`string`&&e.turnId===t.turnId),s=!n&&t.filter(t=>t.state!==`canonical`&&t.text===e.text).length===1?t.find(t=>t.state!==`canonical`&&t.text===e.text):void 0,c=n??s;if(c){a.delete(c.operationId);let e=r.get(c.key),t={...i,id:c.key,turnId:c.turnId??i.turnId,...i.occurredAt===void 0&&e?.occurredAt!==void 0?{occurredAt:e.occurredAt}:{}};return o.add(t.id),[e&&e.text===t.text&&e.turnId===t.turnId&&e.complete===t.complete&&e.occurredAt===t.occurredAt?e:t]}}if(e.kind===`agent`&&typeof e.turnId==`string`){let t=r.get(`assistant:${e.id}`)??n.find(t=>t.role===`assistant`&&t.turnId===e.turnId&&t.text===i.text&&(t.phase===i.phase||!t.complete));if(t){o.add(t.id);let e={...i,id:t.id,turnId:i.turnId??t.turnId,...i.occurredAt===void 0&&t.occurredAt!==void 0?{occurredAt:t.occurredAt}:{}};return[t.text===e.text&&t.phase===e.phase&&t.occurredAt===e.occurredAt?t:e]}}return o.add(i.id),[i]}),c=t.filter(e=>a.has(e.operationId)).map(e=>r.get(e.key)??{id:e.key,role:`user`,text:e.text,complete:e.state===`failed`,...e.turnId?{turnId:e.turnId}:{}}),l=n.filter(e=>e.role===`assistant`&&e.id.startsWith(`assistant:`)&&!o.has(e.id)),u=il([...c,...l]),d=new Map(s.map((e,t)=>[e.id,t])),f=new Map;for(let e of u){let t=null;if(e.turnId){for(let n=s.length-1;n>=0;--n)if(s[n]?.turnId===e.turnId){t=n;break}}if(t===null){let r=i.get(e.id);if(r!==void 0){for(let e=r-1;e>=0;--e){let r=d.get(n[e].id);if(r!==void 0){t=r;break}}if(t===null)for(let e=r+1;e<n.length;e+=1){let r=d.get(n[e].id);if(r!==void 0){t=r-1;break}}}}let r=t??s.length-1;f.set(r,[...f.get(r)??[],e])}return il([...f.get(-1)??[],...s.flatMap((e,t)=>[e,...f.get(t)??[]])])}function sl(e,t){if(!t||typeof t!=`object`)return Xc(e);let n=t;if(!Number.isInteger(n.cursor)||n.cursor<0||!Array.isArray(n.messages)||!Array.isArray(n.prompts)||!Array.isArray(n.interactions))return Xc(e);let r=[`submitting`,`accepted`,`failed`,`canonical`],i=[`pending`,`submitting`,`resolved`,`failed`],a=[`starting`,`working`,`finished`,`interrupted`,`recoverable`];return{...Xc(e),sessionId:e,cursor:n.cursor,lifecycle:a.includes(n.lifecycle)?n.lifecycle:`finished`,activeTurnId:typeof n.activeTurnId==`string`||n.activeTurnId===null?n.activeTurnId:null,snapshotting:!1,buffered:new Map,messages:n.messages.filter(e=>!!(e&&typeof e.id==`string`&&(e.role===`user`||e.role===`assistant`||e.role===`audit`)&&typeof e.text==`string`&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)))).slice(-200),activities:Array.isArray(n.activities)?n.activities.filter(e=>!!(e&&typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&(e.changes===void 0||Array.isArray(e.changes)&&e.changes.every(e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.path==`string`&&Number.isInteger(t.additions)&&t.additions>=0&&Number.isInteger(t.deletions)&&t.deletions>=0}))&&(e.turnId===void 0||typeof e.turnId==`string`))).slice(-200):[],prompts:n.prompts.filter(e=>!!(e&&typeof e.operationId==`string`&&typeof e.key==`string`&&typeof e.text==`string`&&r.includes(e.state)&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)))).slice(-200),interactions:n.interactions.filter(e=>!!(e&&typeof e.requestId==`string`&&typeof e.key==`string`&&typeof e.kind==`string`&&(e.turnId===void 0||e.turnId===null||typeof e.turnId==`string`)&&i.includes(e.state)&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)))).slice(-200)}}function cl(e,t){if(!Number.isInteger(t.baseSequence)||t.baseSequence<0)return e;if(t.baseSequence<e.cursor)return bl({...e,snapshotting:!1});let n=t.items.filter(e=>e.kind===`user`),r=e.prompts.map(t=>{let r=n.some(e=>typeof e.turnId==`string`&&e.turnId===t.turnId||typeof e.operationId==`string`&&e.operationId===t.operationId),i=n.filter(e=>e.text===t.text),a=!t.turnId&&i.length===1&&e.prompts.filter(e=>e.state!==`canonical`&&e.text===t.text).length===1;return r||a?{...t,state:`canonical`}:t}),i=t.interactions.map(tl),a=new Map(e.interactions.map(e=>[e.requestId,e])),o=il(i.map(e=>{let t=a.get(e.requestId);return t?.state===`resolved`?t:{...e,...e.occurredAt===void 0&&t?.occurredAt!==void 0?{occurredAt:t.occurredAt}:{}}})),s=il(t.items.flatMap(e=>{let t=Jc(e);return t?[{...t,key:`activity:${t.id}`}]:[]}).concat((t.activities??[]).map(e=>({...e,key:`activity:${e.id}`})))).map(e=>({id:e.id,label:e.label,detail:e.detail,...e.turnId?{turnId:e.turnId}:{},...e.actorTurnId?{actorTurnId:e.actorTurnId}:{},...e.occurredAt===void 0?{}:{occurredAt:e.occurredAt},...e.changes?{changes:e.changes}:{}})).reduce(al,[...e.activities]),c=new Map(t.turns.map(e=>[e.id,e])),l=t.items.map(e=>{if(typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt))return e;let t=typeof e.turnId==`string`?c.get(e.turnId):void 0,n=e.kind===`agent`?t?.completedAt??t?.startedAt:t?.startedAt??t?.completedAt;return typeof n==`number`&&Number.isFinite(n)?{...e,occurredAt:n}:e}),u=(t.autopilotAudit??[]).filter(e=>typeof e?.id==`string`&&typeof e.label==`string`&&typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)),d={...e,cursor:Math.max(e.cursor,t.baseSequence),snapshotting:!1,activeTurnId:t.activeTurnId,lifecycle:rl(t.activeTurnId,e.cursor===0&&e.lifecycle===`finished`?`working`:e.lifecycle),prompts:r,messages:il(ol(l,r,e.messages).concat(u.map(Qc))).sort((e,t)=>(e.occurredAt??2**53-1)-(t.occurredAt??2**53-1)),activities:s,interactions:o,autopilotAuditTruncated:t.autopilotAuditTruncated===!0,buffered:new Map([...e.buffered].filter(([e])=>e>t.baseSequence))};return bl({...d,messages:ll(d.messages)})}function ll(e){let t=new Set;return e.filter(e=>e.role!==`audit`||!e.controlId?!0:t.has(e.controlId)?!1:(t.add(e.controlId),!0))}function ul(e){return{...e,snapshotting:!0}}function dl(e,t,n,r){if(!n.trim()||e.prompts.some(e=>e.operationId===t))return e;let i={operationId:t,key:`prompt:${t}`,text:n,state:`submitting`,turnId:null,...typeof r==`number`&&Number.isFinite(r)?{occurredAt:r}:{}};return{...e,lifecycle:`starting`,prompts:[...e.prompts,i],messages:[...e.messages,{id:i.key,role:`user`,text:n,...i.occurredAt===void 0?{}:{occurredAt:i.occurredAt},complete:!1}]}}function fl(e,t,n,r){let i=dl(e,t,n,r);return i===e?e:{...i,lifecycle:`working`}}function pl(e,t,n){return{...e,activeTurnId:n??e.activeTurnId,lifecycle:n?`working`:e.lifecycle,prompts:e.prompts.map(e=>e.operationId===t?{...e,state:`accepted`,turnId:n}:e),messages:e.messages.map(e=>e.id===`prompt:${t}`?{...e,complete:!0,...n?{turnId:n}:{}}:e)}}function ml(e,t){return{...e,lifecycle:`recoverable`,prompts:e.prompts.map(e=>e.operationId===t?{...e,state:`failed`}:e),messages:e.messages.map(e=>e.id===`prompt:${t}`?{...e,complete:!0}:e)}}function hl(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t&&(e.state===`pending`||e.state===`failed`)?{...e,state:`submitting`,...n?{operationId:n}:{}}:e)}}function gl(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t&&e.state!==`resolved`?{...e,state:`failed`,attemptedOutcome:n}:e)}}function _l(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t?{...e,state:`resolved`,...nl(e,n)?{attemptedOutcome:nl(e,n)}:{}}:e)}}function vl(e,t){if(!Number.isInteger(t.sequence)||t.sequence<=e.cursor)return e;if(e.snapshotting||t.sequence>e.cursor+1){let n=new Map(e.buffered);return n.set(t.sequence,t),{...e,snapshotting:!0,buffered:n}}let n={...e,cursor:t.sequence},r=t.payload,i=el(t.occurredAt);if(t.type===`agentMessageDelta`&&typeof r?.text==`string`){let e=typeof r.turnId==`string`?r.turnId:n.activeTurnId??void 0,t=`assistant:${typeof r.itemId==`string`?r.itemId:e??`live`}`,a=n.messages.find(e=>e.id===t);n={...n,lifecycle:n.activeTurnId?`working`:n.lifecycle,messages:a?n.messages.map(e=>e.id===t?{...e,text:e.text+r.text,...r.phase===`commentary`||r.phase===`final_answer`?{phase:r.phase}:{},complete:r.phase===`final_answer`||e.complete,...e.occurredAt===void 0&&i!==void 0?{occurredAt:i}:{}}:e):[...n.messages,{id:t,role:`assistant`,...r.phase===`commentary`||r.phase===`final_answer`?{phase:r.phase}:{},text:r.text,...e?{turnId:e}:{},...i===void 0?{}:{occurredAt:i},complete:r.phase===`final_answer`}]}}else if((t.type===`agentMessageStarted`||t.type===`agentMessageCompleted`)&&typeof r.text==`string`){let e=`assistant:${typeof r.itemId==`string`?r.itemId:n.activeTurnId??`live`}`,a=n.messages.find(t=>t.id===e),o=t.type===`agentMessageCompleted`,s={id:e,role:`assistant`,text:o&&r.text?r.text:a?.text??r.text,complete:o,...r.phase===`commentary`||r.phase===`final_answer`?{phase:r.phase}:a?.phase?{phase:a.phase}:{},...typeof r.turnId==`string`?{turnId:r.turnId}:a?.turnId?{turnId:a.turnId}:n.activeTurnId?{turnId:n.activeTurnId}:{},...a?.occurredAt===void 0?i===void 0?{}:{occurredAt:i}:{occurredAt:a.occurredAt}};n={...n,lifecycle:n.activeTurnId?`working`:n.lifecycle,messages:a?n.messages.map(t=>t.id===e?s:t):[...n.messages,s]}}else if(t.type===`turnCompleted`||t.type===`turnInterrupted`)n={...n,activeTurnId:null,lifecycle:t.type===`turnCompleted`||n.lifecycle===`finished`?`finished`:`interrupted`,messages:n.messages.map(e=>e.role===`assistant`?{...e,complete:!0}:e)};else if(t.type===`interaction.requested`&&typeof r?.requestId==`string`&&typeof r.kind==`string`){let e=n.interactions.find(e=>e.requestId===r.requestId);if(!e||e.state===`resolved`){let t={requestId:r.requestId,key:`interaction:${r.requestId}`,kind:r.kind,turnId:typeof r.turnId==`string`?r.turnId:n.activeTurnId,payload:r.payload,state:`pending`,...i===void 0?{}:{occurredAt:i}};n={...n,interactions:e?n.interactions.map(e=>e.requestId===r.requestId?t:e):[...n.interactions,t]}}}else if(t.type===`interaction.resolved`&&typeof r?.requestId==`string`)n=_l(n,r.requestId,r.outcome);else if(t.type===`activity.updated`&&typeof r?.id==`string`&&typeof r.label==`string`&&typeof r.detail==`string`){let e=yl(r.changes);n={...n,activities:al(n.activities,{id:r.id,label:r.label,detail:r.detail,...i===void 0?{}:{occurredAt:i},...e.length?{changes:e}:{},...typeof r.turnId==`string`?{turnId:r.turnId}:n.activeTurnId?{turnId:n.activeTurnId}:{},...typeof r.actorTurnId==`string`?{actorTurnId:r.actorTurnId}:{}})}}else if(t.type===`session.updated`&&r?.activeTurnId!==void 0){let e=typeof r.activeTurnId==`string`?r.activeTurnId:null;n={...n,activeTurnId:e,lifecycle:e?`working`:rl(e,n.lifecycle)}}let a=$c(t);return a&&!n.messages.some(e=>e.id===a.id)&&(n={...n,messages:ll([...n.messages,a])}),n}function yl(e){return!Array.isArray(e)||e.length>1e3?[]:e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.path==`string`&&Number.isInteger(t.additions)&&t.additions>=0&&Number.isInteger(t.deletions)&&t.deletions>=0?[{path:t.path,additions:t.additions,deletions:t.deletions}]:[]})}function bl(e){let t=new Map(e.buffered),n={...e,snapshotting:!1,buffered:t};for(;;){let e=t.get(n.cursor+1);if(!e)return{...n,buffered:t,snapshotting:t.size>0};t.delete(e.sequence),n=vl({...n,buffered:t},e),t=new Map(n.buffered)}}function xl(e){return e.sessionId?e.snapshotting||e.lifecycle===`recoverable`?`Connection interrupted. Reconnecting…`:e.lifecycle===`starting`?`Starting Codex turn…`:e.lifecycle===`working`?`Codex is working…`:e.lifecycle===`interrupted`?`Codex turn interrupted.`:`Ready.`:`Choose a workspace and start a session.`}var Sl={read:async()=>null,write:async()=>{}},Cl=[250,750,1500],wl=e=>!!e&&typeof e==`object`,Tl=e=>wl(e)&&typeof e.path==`string`&&Number.isInteger(e.additions)&&e.additions>=0&&Number.isInteger(e.deletions)&&e.deletions>=0,El=e=>wl(e)&&typeof e.id==`string`&&typeof e.kind==`string`,Dl=e=>wl(e)&&typeof e.id==`string`&&Array.isArray(e.items)&&e.items.every(El)&&(e.startedAt===null||typeof e.startedAt==`number`)&&(e.completedAt===null||typeof e.completedAt==`number`),Ol=e=>!wl(e)||typeof e.requestId!=`string`||typeof e.kind!=`string`||!(e.turnId===null||typeof e.turnId==`string`)||!(e.requestedAt===null||typeof e.requestedAt==`string`)?!1:e.resolvedAt===null?Object.hasOwn(e,`payload`):typeof e.resolvedAt==`string`&&(e.outcome===`approved`||e.outcome===`denied`||e.outcome===`answered`||e.outcome===`dismissed`||e.outcome===`failed`)&&!Object.hasOwn(e,`payload`),kl=e=>wl(e)&&typeof e.id==`string`&&typeof e.label==`string`&&typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)&&(e.controlId===void 0||typeof e.controlId==`string`),Al=e=>wl(e)&&typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&(e.changes===void 0||Array.isArray(e.changes)&&e.changes.every(Tl))&&(e.turnId===void 0||typeof e.turnId==`string`)&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)),jl=e=>!wl(e)||!Number.isInteger(e.baseSequence)||e.baseSequence<0||!(e.activeTurnId===null||typeof e.activeTurnId==`string`)||!Array.isArray(e.items)||!Array.isArray(e.turns)||!Array.isArray(e.interactions)||!e.items.every(El)||!e.turns.every(Dl)||!e.interactions.every(Ol)||e.activities!==void 0&&(!Array.isArray(e.activities)||!e.activities.every(Al))||e.autopilotAudit!==void 0&&(!Array.isArray(e.autopilotAudit)||!e.autopilotAudit.every(kl))||e.autopilotAuditTruncated!==void 0&&typeof e.autopilotAuditTruncated!=`boolean`||e.currentSequence!==void 0&&(!Number.isInteger(e.currentSequence)||e.currentSequence<0)?null:e,Ml=class{#e=Xc();#t=null;#n=0;#r=-1;#i=null;#a=null;#o=null;#s=0;#c=!1;#l=!1;#u=null;#d=0;#f=!1;#p=new Set;#m=new Set;#h;constructor(e){this.#h={...e,websocket:e.websocket??(e=>new WebSocket(e)),cache:e.cache??Sl,location:e.location??location,document:e.document??document,window:e.window??window,setTimeout:e.setTimeout??((e,t)=>setTimeout(e,t)),clearTimeout:e.clearTimeout??(e=>clearTimeout(e)),createKey:e.createKey??Va,now:e.now??Date.now},this.#h.document.addEventListener(`visibilitychange`,this.#g),this.#h.window.addEventListener(`focus`,this.#g)}get view(){return Object.freeze({...this.#e,status:xl(this.#e),starting:this.#e.lifecycle===`starting`})}select(e,t={}){if(this.#f||this.#t===e)return;this.#k(),this.#t=e,this.#l=e!==null&&t.history===`empty`;let n=++this.#n;this.#e=Xc(e),this.#T(),e&&this.#_(e,n)}async send(e,t=this.#h.createKey()){let n=this.#t,r=this.#n,i=`${n}:${r}:${t}`;if(!(!n||!e.trim()||this.#e.activeTurnId||this.#p.has(i))){this.#p.add(i),this.#w(dl(this.#e,t,e.trim(),this.#h.now()));try{let i=await this.#h.relay.startTurn(n,e.trim(),t);this.#E(n,r)&&(this.#l=!1,this.#w(pl(this.#e,t,i.activeTurnId??null)),this.#h.onSendAccepted?.(t))}catch(e){this.#E(n,r)&&(this.#w(ml(this.#e,t)),this.#h.onSendError?.(e,t))}finally{this.#p.delete(i)}}}async retryPrompt(e){let t=this.#e.prompts.find(t=>t.operationId===e);t?.state===`failed`&&await this.send(t.text,e)}async queue(e,t=this.#h.createKey()){let n=this.#t,r=this.#e.activeTurnId,i=this.#h.relay.queueTurnInput,a=this.#n,o=`${n}:${a}:${t}`;if(!(!n||!r||!i||!e.trim()||this.#p.has(o))){this.#p.add(o),this.#w(fl(this.#e,t,e.trim(),this.#h.now()));try{let o=await i(n,r,e.trim(),t);this.#E(n,a)&&(this.#w(pl(this.#e,t,o.activeTurnId)),this.#h.onSendAccepted?.(t))}catch(e){this.#E(n,a)&&(this.#w(ml(this.#e,t)),this.#h.onSendError?.(e,t))}finally{this.#p.delete(o)}}}async interruptAndSend(e,t=this.#h.createKey()){let n=this.#t,r=this.#e.activeTurnId,i=this.#n,a=`${n}:${i}:${t}`;if(!(!n||!r||!e.trim()||this.#p.has(a))){this.#p.add(a),this.#w(dl(this.#e,t,e.trim(),this.#h.now()));try{await this.#h.relay.interruptTurn(n,r).catch(()=>void 0);let a=await this.#D(n,i,e.trim(),t);this.#E(n,i)&&(this.#w(pl(this.#e,t,a.activeTurnId??null)),this.#h.onSendAccepted?.(t))}catch(e){this.#E(n,i)&&(this.#w(ml(this.#e,t)),this.#h.onSendError?.(e,t))}finally{this.#p.delete(a)}}}async interrupt(){let e=this.#t,t=this.#e.activeTurnId;if(!(!e||!t))try{await this.#h.relay.interruptTurn(e,t)}catch{}}async respond(e,t,n=this.#h.createKey()){let r=this.#t,i=this.#n,a=this.#e.interactions.find(t=>t.requestId===e),o=a?.operationId??n,s=`${r}:${i}:${o}`;if(!(!r||!a||a.state===`resolved`||a.state===`submitting`||this.#m.has(s))){this.#m.add(s),this.#w(hl(this.#e,e,o));try{let n=await this.#h.relay.respondInteraction(r,e,t,o),a=n&&(n.outcome===`approved`||n.outcome===`denied`||n.outcome===`answered`||n.outcome===`dismissed`||n.outcome===`failed`)?n.outcome:t;this.#E(r,i)&&this.#w(_l(this.#e,e,a))}catch{this.#E(r,i)&&this.#w(gl(this.#e,e,t))}finally{this.#m.delete(s)}}}async retryInteraction(e,t){let n=this.#e.interactions.find(t=>t.requestId===e);if(n?.state!==`failed`||!n.operationId)return;let r=t??n.attemptedOutcome,i=r===`approved`?{decision:`accept`}:r===`denied`?{decision:`decline`}:r;i!==void 0&&await this.respond(e,i,n.operationId)}refresh(){this.#t&&!this.#l&&this.#x(this.#t,this.#n)}dispose(){this.#f||(this.#f=!0,this.#k(),this.#h.document.removeEventListener(`visibilitychange`,this.#g),this.#h.window.removeEventListener(`focus`,this.#g))}#g=()=>{this.#h.document.visibilityState===`visible`&&this.refresh()};async#_(e,t){let n=this.#l;if(n||this.#x(e,t),this.#v(e,t),n)return;let r=await this.#h.cache.read(e).catch(()=>null);!this.#E(e,t)||this.#r===t||!r||(this.#e=sl(e,r),this.#T())}#v(e,t){if(!this.#E(e,t)||this.#i)return;let n=this.#h.location.protocol===`https:`?`wss:`:`ws:`,r;try{r=this.#h.websocket(`${n}//${this.#h.location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${this.#e.cursor}`)}catch{this.#e={...this.#e,lifecycle:`recoverable`},this.#T(),this.#u=this.#h.setTimeout(()=>this.#v(e,t),Math.min(1e3*2**this.#d++,1e4));return}this.#i=r,r.onopen=()=>{this.#E(e,t)&&this.#i===r&&(this.#d=0,this.#l||this.#x(e,t))},r.onmessage=n=>this.#y(e,t,String(n.data)),r.onclose=()=>{!this.#E(e,t)||this.#i!==r||(this.#i=null,this.#u=this.#h.setTimeout(()=>this.#v(e,t),Math.min(1e3*2**this.#d++,1e4)))}}#y(e,t,n){if(!this.#E(e,t))return;let r;try{r=JSON.parse(n)}catch{return}if(r.type===`relay.resyncRequired`){this.#l=!1,this.#x(e,t);return}if(r.type!==`relay.event`||!r.event||typeof r.event!=`object`)return;let i=r.event;if(!Number.isInteger(i.sequence)||typeof i.type!=`string`||!this.#b(i))return;this.#l=!1;let a=vl(this.#e,i);this.#w(a),this.#h.onRelayEvent?.(i),(i.type===`session.updated`||i.type===`plan.updated`||i.type===`plan.closed`||i.type===`agent.activity.updated`||i.type===`autopilot.updated`||i.type===`org-plan.attention-required`||i.type===`org-plan.attention-resolved`)&&this.#h.onSessionEvent?.(i),a.snapshotting&&this.#x(e,t)}#b(e){let t=e.payload;if(!t||typeof t!=`object`)return e.type===`turnCompleted`||e.type===`turnInterrupted`||e.type===`plan.closed`;let n=t;return e.type===`agentMessageDelta`||e.type===`agentMessageStarted`||e.type===`agentMessageCompleted`?typeof n.text==`string`:e.type===`interaction.requested`?typeof n.requestId==`string`&&typeof n.kind==`string`:e.type===`interaction.resolved`?typeof n.requestId==`string`:e.type===`session.updated`?n.activeTurnId===null||typeof n.activeTurnId==`string`:e.type===`activity.updated`?typeof n.id==`string`&&typeof n.label==`string`&&typeof n.detail==`string`:e.type===`agent.activity.updated`?typeof n.sessionId==`string`&&!!n.root&&Array.isArray(n.subagents):e.type===`autopilot.updated`||e.type===`org-plan.attention-required`||e.type===`org-plan.attention-resolved`||[`autopilot.continuation-scheduled`,`autopilot.control-issued`,`autopilot.turn-started`,`autopilot.turn-failed`].includes(e.type)?!0:e.type===`plan.updated`||e.type===`plan.closed`}#x(e,t){if(this.#a?.id===e&&this.#a.generation===t)return this.#a.promise;if(!this.#E(e,t))return Promise.resolve();let n=this.#e.snapshotting&&this.#e.buffered.size>0;this.#e=ul(this.#e),this.#T();let r=this.#h.relay.getHistory(e).then(r=>{let i=jl(r);if(this.#E(e,t)){if(!i){this.#w({...this.#e,snapshotting:!1,lifecycle:`recoverable`});return}this.#s=0,this.#c=!1,this.#o&&this.#h.clearTimeout(this.#o),this.#o=null,this.#r=t,this.#w(cl(this.#e,i)),n&&this.#C(e,t)}}).catch(n=>{if(this.#E(e,t)){this.#w({...this.#e,snapshotting:!1,lifecycle:`recoverable`});let r=Cl[this.#s++];r===void 0?this.#c||(this.#c=!0,this.#h.onHistoryError?.(n)):this.#S(e,t,r)}}).finally(()=>{this.#a?.promise===r&&(this.#a=null,this.#E(e,t)&&this.#e.snapshotting&&this.#x(e,t))});return this.#a={id:e,generation:t,promise:r},r}#S(e,t,n){this.#o&&this.#h.clearTimeout(this.#o);let r=this.#h.setTimeout(()=>{this.#o===r&&(this.#o=null,this.#E(e,t)&&this.#x(e,t))},n);this.#o=r}#C(e,t){let n=this.#i;this.#i=null,n?.close(),this.#u&&this.#h.clearTimeout(this.#u),this.#u=null,this.#v(e,t)}#w(e){this.#e=e,this.#T(),this.#t&&this.#h.cache.write(this.#t,this.#e).catch(()=>{})}#T(){this.#h.publish(this.view)}#E(e,t){return!this.#f&&this.#t===e&&this.#n===t}async#D(e,t,n,r){let i;for(let a of[0,50,150,300]){if(!this.#E(e,t))throw Error(`SESSION_CHANGED`);a&&await this.#O(a);try{return await this.#h.relay.startTurn(e,n,r)}catch(e){if(!Nl(e,`SESSION_TURN_ACTIVE`))throw e;i=e}}throw i}#O(e){return new Promise(t=>this.#h.setTimeout(t,e))}#k(){this.#u&&this.#h.clearTimeout(this.#u),this.#u=null,this.#o&&this.#h.clearTimeout(this.#o),this.#o=null,this.#s=0,this.#c=!1,this.#l=!1;let e=this.#i;this.#i=null,e?.close()}};function Nl(e,t){return wl(e)&&e.code===t}var Pl=class{#e=!0;#t=null;#n;constructor(e){this.#n=e}get following(){return this.#e}observeTail(e){this.#e=e}reset(){this.cancel(),this.#e=!0}request(e){e!==`content`&&(this.#e=!0),!(e===`content`&&!this.#e)&&this.#t===null&&(this.#t=this.#n.requestFrame(()=>{this.#t=null,this.#n.scrollTail(e===`initial`||this.#n.reducedMotion()?`auto`:`smooth`)}))}cancel(){this.#t!==null&&this.#n.cancelFrame(this.#t),this.#t=null}},Fl=class{afterCommit;request;#e=0;constructor(e,t){this.afterCommit=e,this.request=t}schedule(e){let t=this.#e;this.afterCommit(()=>{t===this.#e&&this.request(e)})}invalidate(){this.#e+=1}},Il={RELAY_UNAVAILABLE:`The relay is unavailable. Check the connection and try again.`,SESSION_HISTORY_UNAVAILABLE:`Session history is unavailable. Check the relay connection and try opening the session again.`,SESSION_HISTORY_READ_FAILED:`Session history could not be read. The conversation remains saved; try again shortly.`,SESSION_WRITER_BUSY:`This thread is active in another Codex client. Release it there, then retry sending here.`,SESSION_WORKSPACE_UNAVAILABLE:`This session workspace is unavailable. Restore access to it, then retry sending.`,SESSION_RUNTIME_DEPENDENCY_FAILED:`A required Codex runtime dependency is unavailable. Check Codex, then retry.`,CODEX_PROTOCOL_INCOMPATIBLE:`The installed Codex runtime is incompatible with this relay. Update Codex before retrying.`,SESSION_ROLLOUT_MISSING:`This stored thread is no longer available.`,SESSION_RUNTIME_UNAVAILABLE:`The Codex runtime is unavailable. Retry shortly.`,SESSION_START_FAILED:`The session could not be started. Try again.`,SESSION_REFRESH_FAILED:`Sessions could not be refreshed. Try again.`,MESSAGE_SEND_FAILED:`The message was not sent. Your draft is preserved.`,GIT_SUMMARY_FAILED:`Repository status could not be loaded. Select it again to retry.`,GIT_PULL_FAILED:`The branch could not be refreshed. Resolve any Git conflicts and try again.`,GIT_CHECKOUT_FAILED:`The branch could not be selected. Refresh Git status and try again.`,GIT_PUSH_FAILED:`The push failed. Refresh Git status and resolve remote divergence first.`,GIT_CLONE_FAILED:`Clone failed.`,WORKSPACE_FILES_READ_FAILED:`Files could not be read. Try again.`};function Ll(e,t){let n=e instanceof Error?e.message:``,r=typeof e==`object`&&e&&`code`in e&&typeof e.code==`string`?e.code:``,i=Object.hasOwn(Il,r)?r:Object.hasOwn(Il,n)?n:t,a=typeof e==`object`&&e&&`retryable`in e?e.retryable===!0:!0;return{code:i,message:Il[i],retryable:a}}var Rl={error:null,success:5e3,warning:1e4,info:7e3};function zl(e={}){let t=e.now??Date.now,n=e.setTimer??setTimeout,r=e.clearTimer??clearTimeout,i=new Set,a=new Map,o=[],s=0,c=()=>o.map(e=>({...e})),l=()=>i.forEach(e=>e(c())),u=e=>{let t=a.get(e);t?.handle&&r(t.handle),t&&(t.handle=null)},d=e=>{o.some(t=>t.id===e)&&(u(e),a.delete(e),o=o.filter(t=>t.id!==e),l())},f=e=>{let r=a.get(e);!r||r.pauseReasons.size>0||(r.startedAt=t(),r.handle=n(()=>d(e),r.remaining))};return{enqueue(e){if(e.kind===`error`){let t=o.find(t=>t.kind===`error`&&(e.code?t.code===e.code:t.message===e.message));if(t)return o=o.map(e=>e.id===t.id?{...e,occurrences:e.occurrences+1}:e),l(),t.id}let n=`toast-${++s}`,r={...e,id:n,occurrences:1};o=[...o,r];let i=Rl[e.kind];return i!==null&&(a.set(n,{handle:null,remaining:i,startedAt:t(),pauseReasons:new Set}),f(n)),l(),n},dismiss:d,pause(e,n){let r=a.get(e);!r||r.pauseReasons.has(n)||(r.pauseReasons.add(n),r.handle&&(r.remaining=Math.max(0,r.remaining-(t()-r.startedAt)),u(e)))},resume(e,t){let n=a.get(e);!n||!n.pauseReasons.delete(t)||n.pauseReasons.size>0||f(e)},snapshot:c,subscribe(e){return i.add(e),e(c()),()=>i.delete(e)}}}var Bl=q(`<small class="svelte-1a0rutm"> </small>`),Vl=q(`<section aria-atomic="true"><span class="toast-symbol svelte-1a0rutm" aria-hidden="true"> </span> <span class="toast-copy svelte-1a0rutm"><strong class="svelte-1a0rutm"> </strong> <span> </span> <!></span> <button type="button" class="svelte-1a0rutm"><span aria-hidden="true">×</span></button></section>`),Hl=q(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function Ul(e,t){Qe(t,!0);let n=I([]),r=P(()=>G(n).slice(-3));Ri(()=>t.queue.subscribe(e=>L(n,e)));var i=Hl();Z(i,21,()=>G(r),e=>e.id,(e,n)=>{var r=Vl();let i;var a=z(r),o=z(a,!0);N(a);var s=V(a,2),c=z(s),l=z(c,!0);N(c);var u=V(c,2),d=z(u,!0);N(u);var f=V(u,2),p=e=>{var t=Bl(),r=z(t);N(t),H(()=>Y(r,`Repeated ${G(n).occurrences??``} times.`)),J(e,t)};X(f,e=>{G(n).occurrences>1&&e(p)}),N(s);var m=V(s,2);N(r),H(()=>{i=gi(r,1,`toast svelte-1a0rutm`,null,i,{error:G(n).kind===`error`,success:G(n).kind===`success`,warning:G(n).kind===`warning`}),Q(r,`role`,G(n).kind===`error`?`alert`:`status`),Q(r,`aria-live`,G(n).kind===`error`?`assertive`:`polite`),Y(o,G(n).kind===`error`||G(n).kind===`warning`?`!`:G(n).kind===`success`?`✓`:`i`),Y(l,G(n).kind===`error`?`Error`:G(n).kind===`success`?`Success`:G(n).kind===`warning`?`Warning`:`Info`),Y(d,G(n).message),Q(m,`aria-label`,`Dismiss ${G(n).kind} notification`)}),Nr(`pointerenter`,r,()=>t.queue.pause(G(n).id,`hover`)),Nr(`pointerleave`,r,()=>t.queue.resume(G(n).id,`hover`)),K(`focusin`,r,()=>t.queue.pause(G(n).id,`focus`)),K(`focusout`,r,()=>t.queue.resume(G(n).id,`focus`)),K(`click`,m,()=>t.queue.dismiss(G(n).id)),J(e,r)}),N(i),J(e,i),$e()}Pr([`focusin`,`focusout`,`click`]);var Wl=q(`<main class="evidence-page svelte-1j55xyh"><h1 class="svelte-1j55xyh">Git repository</h1> <p>Choose a destination and clone a repository.</p> <div class="evidence-composer svelte-1j55xyh"><label for="evidence-prompt">Prompt</label> <textarea id="evidence-prompt" class="evidence-prompt svelte-1j55xyh" rows="1">Review repository status</textarea></div></main> <nav class="evidence-nav svelte-1j55xyh" aria-label="Primary evidence navigation"><button type="button" class="svelte-1j55xyh">Sessions</button> <button type="button" aria-pressed="true" class="svelte-1j55xyh">Git</button> <button type="button" class="svelte-1j55xyh">Chat</button></nav> <!>`,1);function Gl(e,t){Qe(t,!0);let n=zl();Ri(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=Wl();Ul(V(B(r),4),{get queue(){return n}}),J(e,r),$e()}var Kl={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function ql(e){let t=new Set,n=(e,r)=>{!e.isGitRepository&&r<=2&&t.add(e.id),e.children.forEach(e=>n(e,r+1))};return e.forEach(e=>n(e,1)),t}function Jl(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function Yl(e,t){let n=[],r=(e,i,a)=>{n.push({node:e,level:i,parentId:a}),!e.isGitRepository&&t.has(e.id)&&e.children.forEach(t=>r(t,i+1,e.id))};return e.forEach(e=>r(e,1,null)),n}function Xl(e,t){let n=(e,r)=>{if(e.id===t)return r;for(let t of e.children){let i=n(t,[...r,e.id]);if(i)return i}return null};for(let t of e){let e=n(t,[]);if(e)return e}return[]}function Zl(e,t){for(let n of e){if(n.id===t)return n;let e=Zl(n.children,t);if(e)return e}}function Ql(e,t,n,r){if(e){let i=Zl(n,e);if(i&&r(i))return i.id;let a=Xl(t,e);for(let e of a.toReversed()){let t=Zl(n,e);if(t&&r(t))return t.id}}return $l(n).find(r)?.id??null}function $l(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var eu=q(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),tu=q(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),nu=q(`<span class="repository-badge svelte-6z3q4v">Git</span>`),ru=q(`<div class="tree-row svelte-6z3q4v"><!> <button type="button" role="treeitem"><span class="selection-mark svelte-6z3q4v" aria-hidden="true"> </span> <span class="node-copy svelte-6z3q4v"><span class="node-name svelte-6z3q4v"> </span> <span class="node-path svelte-6z3q4v"> </span></span> <!></button></div>`),iu=q(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function au(e,t){Qe(t,!0);let n=$(t,`isSelectable`,3,()=>!0),r=I(null),i=R({}),a=P(()=>Yl(t.roots,t.expandedIds)),o=P(()=>G(r)&&G(a).some(({node:e})=>e.id===G(r))?G(r):t.selectedId&&G(a).some(({node:e})=>e.id===t.selectedId)?t.selectedId:G(a)[0]?.node.id??null);function s(e){return!e.isGitRepository&&e.children.length>0}function c(e){return e===`.`?`~/`:`~/${e}`}function l(e){L(r,e,!0),i[e]?.focus()}function u(e,t){let n=Math.max(0,Math.min(G(a).length-1,t)),r=G(a)[n];r&&n!==e&&l(r.node.id)}function d(e){n()(e)&&t.onselect(e)}function f(e){s(e)&&t.onexpandedchange(Jl(t.expandedIds,e))}function p(e,n,r){let{node:i,parentId:o}=n;switch(e.key){case`ArrowUp`:e.preventDefault(),u(r,r-1);break;case`ArrowDown`:e.preventDefault(),u(r,r+1);break;case`ArrowRight`:if(!s(i))return;e.preventDefault(),t.expandedIds.has(i.id)?G(a)[r+1]?.parentId===i.id&&u(r,r+1):f(i);break;case`ArrowLeft`:if(!t.expandedIds.has(i.id)&&!o)return;e.preventDefault(),s(i)&&t.expandedIds.has(i.id)?f(i):o&&l(o);break;case`Home`:e.preventDefault(),u(r,0);break;case`End`:e.preventDefault(),u(r,G(a).length-1);break;case`Enter`:case` `:e.preventDefault(),d(i);break}}var m=iu();Z(m,23,()=>G(a),e=>e.node.id,(e,a,l)=>{let u=P(()=>G(a).node),m=P(()=>s(G(u)));var h=ru();let g;var _=z(h),v=e=>{var n=eu(),r=z(n),i=z(r,!0);N(r),N(n),H((e,t)=>{Q(n,`aria-label`,e),Y(i,t)},[()=>`${t.expandedIds.has(G(u).id)?`Collapse`:`Expand`} ${G(u).name}`,()=>t.expandedIds.has(G(u).id)?`−`:`+`]),K(`click`,n,()=>f(G(u))),J(e,n)},y=e=>{J(e,tu())};X(_,e=>{G(m)?e(v):e(y,-1)});var b=V(_,2);let x;var S=z(b),C=z(S,!0);N(S);var w=V(S,2),T=z(w),E=z(T,!0);N(T);var D=V(T,2),O=z(D,!0);N(D),N(w);var k=V(w,2),ee=e=>{J(e,nu())};X(k,e=>{G(u).isGitRepository&&e(ee)}),N(b),Li(b,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[G(u)]),N(h),H((e,n,r,i,s)=>{g=vi(h,``,g,e),x=gi(b,1,`tree-item svelte-6z3q4v`,null,x,{selected:t.selectedId===G(u).id,repository:G(u).isGitRepository}),Q(b,`aria-level`,G(a).level),Q(b,`aria-expanded`,n),Q(b,`aria-selected`,t.selectedId===G(u).id),Q(b,`aria-disabled`,r),Q(b,`tabindex`,G(o)===G(u).id?0:-1),Q(b,`title`,i),Y(C,t.selectedId===G(u).id?`✓`:``),Y(E,G(u).name),Y(O,s)},[()=>({"--tree-level":Math.min(G(a).level-1,6)}),()=>G(m)?t.expandedIds.has(G(u).id):void 0,()=>!n()(G(u)),()=>c(G(u).relativePath),()=>c(G(u).relativePath)]),Nr(`focus`,b,()=>L(r,G(u).id,!0)),K(`keydown`,b,e=>p(e,G(a),G(l))),K(`click`,b,()=>d(G(u))),J(e,h)}),N(m),H(()=>Q(m,`aria-label`,t.label)),J(e,m),$e()}Pr([`click`,`keydown`]);var ou=q(`<section class="evidence-shell svelte-1d6w4ti" aria-labelledby="evidence-title"><p class="eyebrow svelte-1d6w4ti"> </p> <h1 id="evidence-title" class="svelte-1d6w4ti"> </h1> <p class="instructions svelte-1d6w4ti"> </p> <!></section>`);function su(e,t){Qe(t,!0);let n=(e,t)=>({id:e,name:t,relativePath:e,isGitRepository:!0,children:[]}),r=[{id:`.`,name:`development-workspace-with-a-long-name`,relativePath:`.`,isGitRepository:!1,children:[{id:`dyne`,name:`dyne`,relativePath:`dyne`,isGitRepository:!1,children:[{id:`dyne/mobile-applications`,name:`mobile-applications-and-experiments`,relativePath:`dyne/mobile-applications`,isGitRepository:!1,children:[n(`dyne/mobile-applications/gestalt-mobile`,`gestalt-mobile-with-an-extraordinarily-long-repository-name`)]},n(`dyne/zenroom`,`zenroom`),n(`dyne/zenflows`,`zenflows`),n(`dyne/did`,`did-toolkit`),n(`dyne/api`,`api-gateway`),n(`dyne/docs`,`documentation-portal`)]},{id:`personal`,name:`personal-projects`,relativePath:`personal`,isGitRepository:!1,children:[]}]}],i=I(R(new Set([`.`,`dyne`,`dyne/mobile-applications`]))),a=I(null),o=P(()=>t.context===`sessions`?`dyne/mobile-applications`:`dyne/mobile-applications/gestalt-mobile`),s=P(()=>G(a)??G(o));var c=ou(),l=z(c),u=z(l,!0);N(l);var d=V(l,2),f=z(d,!0);N(d);var p=V(d,2),m=z(p,!0);N(p);var h=V(p,2);{let e=P(()=>t.context===`sessions`?`Session base`:`Git repository`),n=P(()=>t.context===`sessions`?Kl.sessionBase:Kl.gitRepositoryTarget);au(h,{get roots(){return r},get expandedIds(){return G(i)},get selectedId(){return G(s)},get label(){return G(e)},get isSelectable(){return G(n)},onexpandedchange:e=>L(i,e,!0),onselect:e=>L(a,e.id,!0)})}N(c),H(()=>{Y(u,t.context===`sessions`?`Sessions`:`Git`),Y(f,t.context===`sessions`?`Session base`:`Git repository`),Y(m,t.context===`sessions`?`Select the folder Codex should use as its working directory.`:`Select a repository for Git actions.`)}),J(e,c),$e()}function cu(e,t=Date.now()){if(!e)return`Not fetched yet`;let n=Math.max(0,t-new Date(e).getTime()),r=Math.floor(n/6e4);if(r<1)return`Fetched just now`;if(r<60)return`Fetched ${r}m ago`;let i=Math.floor(r/60);return i<24?`Fetched ${i}h ago`:`Fetched ${Math.floor(i/24)}d ago`}function lu(e,t=Date.now()){let n=Date.parse(e);if(!Number.isFinite(n))return`unknown time`;let r=Math.round((n-t)/1e3),i=[[`year`,31536e3],[`month`,2592e3],[`week`,604800],[`day`,86400],[`hour`,3600],[`minute`,60],[`second`,1]],[a,o]=i.find(([,e])=>Math.abs(r)>=e)??i.at(-1);return new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}).format(Math.round(r/o),a)}var uu=q(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),du=q(`<option> </option>`),fu=q(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),pu=q(`<li class="commit-entry svelte-pudr3t"><div class="commit-subject svelte-pudr3t"><code class="svelte-pudr3t"> </code><span> </span></div> <div class="commit-meta svelte-pudr3t"><span> </span><time class="svelte-pudr3t"> </time></div></li>`),mu=q(`<section class="commit-history svelte-pudr3t" aria-labelledby="recent-commits-title"><h3 id="recent-commits-title" class="svelte-pudr3t">Recent commits</h3> <ol class="commit-list svelte-pudr3t" aria-label="Recent commits"></ol></section>`),hu=q(`<div class="git-overview svelte-pudr3t"><div class="git-status svelte-pudr3t"><label for="git-branch">Branch</label> <select id="git-branch"></select> <p class="svelte-pudr3t"> </p> <p class="svelte-pudr3t"> </p> <p class="svelte-pudr3t"><time> </time></p> <p class="svelte-pudr3t"> </p></div> <div class="git-actions svelte-pudr3t"><button type="button" class="svelte-pudr3t"><span aria-hidden="true">↑</span> Push</button> <button type="button" class="svelte-pudr3t"><span aria-hidden="true">↓</span> </button></div></div> <!> <!>`,1),gu=q(`<p>This workspace is not a Git repository.</p>`),_u=q(`<p role="status">Loading repository status…</p>`),vu=q(`<p><strong> </strong> is available as a Clone destination. Select a Git repository
15
+ `),...n.length?{changes:n}:{},...t}}return e.kind===`tool`&&typeof e.name==`string`?{id:e.id,label:`Tool · ${String(e.status??`unknown`)}`,detail:e.name,...t}:null}var Yc=()=>({sessionId:null,cursor:0,snapshotting:!1,lifecycle:`finished`,activeTurnId:null,messages:[],activities:[],prompts:[],interactions:[],autopilotAuditTruncated:!1,buffered:new Map}),Xc=(e=null)=>({...Yc(),sessionId:e});function Zc(e){return e.kind===`autopilot`?{id:`item:${e.id}`,role:`audit`,text:`Continued execution automatically`,...typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)?{occurredAt:e.occurredAt}:{},...typeof e.controlId==`string`?{controlId:e.controlId}:{},complete:!0}:e.kind!==`user`&&e.kind!==`agent`||typeof e.text!=`string`?null:{id:`item:${e.id}`,role:e.kind===`user`?`user`:`assistant`,text:e.text,...e.phase===`commentary`||e.phase===`final_answer`?{phase:e.phase}:{},...typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)?{occurredAt:e.occurredAt}:{},...typeof e.turnId==`string`?{turnId:e.turnId}:{},complete:!0}}function Qc(e){return{id:e.id,role:`audit`,text:e.label,occurredAt:e.occurredAt,...e.controlId?{controlId:e.controlId}:{},complete:!0}}function $c(e){let t=el(e.occurredAt),n=Gc(e.type,e.payload),r=e.payload&&typeof e.payload==`object`&&typeof e.payload.controlId==`string`?e.payload.controlId:void 0;return n&&t!==void 0?Qc({id:`audit:${e.sequence}`,label:n,occurredAt:t,...r?{controlId:r}:{}}):null}function el(e){if(typeof e!=`string`)return;let t=Date.parse(e);return Number.isFinite(t)?t:void 0}function tl(e){let t=el(e.requestedAt);return{requestId:e.requestId,key:`interaction:${e.requestId}`,kind:e.kind,turnId:e.turnId,payload:`payload`in e?e.payload:null,state:e.resolvedAt?e.outcome===`failed`?`failed`:`resolved`:`pending`,...e.resolvedAt?{attemptedOutcome:e.outcome}:{},...t===void 0?{}:{occurredAt:t}}}function nl(e,t){return t===`approved`||t===`denied`||t===`answered`||t===`dismissed`||t===`failed`?t:e?.kind===`quiz`||e?.kind===`userInput`?`answered`:typeof t==`object`&&t&&t.decision===`decline`?`denied`:e?`approved`:void 0}function rl(e,t){return e?t===`finished`||t===`interrupted`?t:`working`:t===`working`||t===`starting`||t===`recoverable`?`finished`:t}function il(e){return[...new Map(e.map(e=>[e.key??e.id??``,e])).values()]}function al(e,t){return e.some(e=>e.id===t.id)?e.map(e=>e.id===t.id?{...t,...t.occurredAt===void 0&&e.occurredAt!==void 0?{occurredAt:e.occurredAt}:{}}:e):[...e,t]}function ol(e,t,n){let r=new Map(n.map(e=>[e.id,e])),i=new Map(n.map((e,t)=>[e.id,t])),a=new Set(t.filter(e=>e.state!==`canonical`).map(e=>e.operationId)),o=new Set,s=e.flatMap(e=>{let i=Zc(e);if(!i)return[];if(e.kind===`user`){let n=t.find(t=>typeof e.operationId==`string`&&e.operationId===t.operationId||typeof e.turnId==`string`&&e.turnId===t.turnId),s=!n&&t.filter(t=>t.state!==`canonical`&&t.text===e.text).length===1?t.find(t=>t.state!==`canonical`&&t.text===e.text):void 0,c=n??s;if(c){a.delete(c.operationId);let e=r.get(c.key),t={...i,id:c.key,turnId:c.turnId??i.turnId,...i.occurredAt===void 0&&e?.occurredAt!==void 0?{occurredAt:e.occurredAt}:{}};return o.add(t.id),[e&&e.text===t.text&&e.turnId===t.turnId&&e.complete===t.complete&&e.occurredAt===t.occurredAt?e:t]}}if(e.kind===`agent`&&typeof e.turnId==`string`){let t=r.get(`assistant:${e.id}`)??n.find(t=>t.role===`assistant`&&t.turnId===e.turnId&&t.text===i.text&&(t.phase===i.phase||!t.complete));if(t){o.add(t.id);let e={...i,id:t.id,turnId:i.turnId??t.turnId,...i.occurredAt===void 0&&t.occurredAt!==void 0?{occurredAt:t.occurredAt}:{}};return[t.text===e.text&&t.phase===e.phase&&t.occurredAt===e.occurredAt?t:e]}}return o.add(i.id),[i]}),c=t.filter(e=>a.has(e.operationId)).map(e=>r.get(e.key)??{id:e.key,role:`user`,text:e.text,complete:e.state===`failed`,...e.turnId?{turnId:e.turnId}:{}}),l=n.filter(e=>e.role===`assistant`&&e.id.startsWith(`assistant:`)&&!o.has(e.id)),u=il([...c,...l]),d=new Map(s.map((e,t)=>[e.id,t])),f=new Map;for(let e of u){let t=null;if(e.turnId){for(let n=s.length-1;n>=0;--n)if(s[n]?.turnId===e.turnId){t=n;break}}if(t===null){let r=i.get(e.id);if(r!==void 0){for(let e=r-1;e>=0;--e){let r=d.get(n[e].id);if(r!==void 0){t=r;break}}if(t===null)for(let e=r+1;e<n.length;e+=1){let r=d.get(n[e].id);if(r!==void 0){t=r-1;break}}}}let r=t??s.length-1;f.set(r,[...f.get(r)??[],e])}return il([...f.get(-1)??[],...s.flatMap((e,t)=>[e,...f.get(t)??[]])])}function sl(e,t){if(!t||typeof t!=`object`)return Xc(e);let n=t;if(!Number.isInteger(n.cursor)||n.cursor<0||!Array.isArray(n.messages)||!Array.isArray(n.prompts)||!Array.isArray(n.interactions))return Xc(e);let r=[`submitting`,`accepted`,`failed`,`canonical`],i=[`pending`,`submitting`,`resolved`,`failed`],a=[`starting`,`working`,`finished`,`interrupted`,`recoverable`];return{...Xc(e),sessionId:e,cursor:n.cursor,lifecycle:a.includes(n.lifecycle)?n.lifecycle:`finished`,activeTurnId:typeof n.activeTurnId==`string`||n.activeTurnId===null?n.activeTurnId:null,snapshotting:!1,buffered:new Map,messages:n.messages.filter(e=>!!(e&&typeof e.id==`string`&&(e.role===`user`||e.role===`assistant`||e.role===`audit`)&&typeof e.text==`string`&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)))).slice(-200),activities:Array.isArray(n.activities)?n.activities.filter(e=>!!(e&&typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&(e.changes===void 0||Array.isArray(e.changes)&&e.changes.every(e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.path==`string`&&Number.isInteger(t.additions)&&t.additions>=0&&Number.isInteger(t.deletions)&&t.deletions>=0}))&&(e.turnId===void 0||typeof e.turnId==`string`))).slice(-200):[],prompts:n.prompts.filter(e=>!!(e&&typeof e.operationId==`string`&&typeof e.key==`string`&&typeof e.text==`string`&&r.includes(e.state)&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)))).slice(-200),interactions:n.interactions.filter(e=>!!(e&&typeof e.requestId==`string`&&typeof e.key==`string`&&typeof e.kind==`string`&&(e.turnId===void 0||e.turnId===null||typeof e.turnId==`string`)&&i.includes(e.state)&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)))).slice(-200)}}function cl(e,t){if(!Number.isInteger(t.baseSequence)||t.baseSequence<0)return e;if(t.baseSequence<e.cursor)return bl({...e,snapshotting:!1});let n=t.items.filter(e=>e.kind===`user`),r=e.prompts.map(t=>{let r=n.some(e=>typeof e.turnId==`string`&&e.turnId===t.turnId||typeof e.operationId==`string`&&e.operationId===t.operationId),i=n.filter(e=>e.text===t.text),a=!t.turnId&&i.length===1&&e.prompts.filter(e=>e.state!==`canonical`&&e.text===t.text).length===1;return r||a?{...t,state:`canonical`}:t}),i=t.interactions.map(tl),a=new Map(e.interactions.map(e=>[e.requestId,e])),o=il(i.map(e=>{let t=a.get(e.requestId);return t?.state===`resolved`?t:{...e,...e.occurredAt===void 0&&t?.occurredAt!==void 0?{occurredAt:t.occurredAt}:{}}})),s=il(t.items.flatMap(e=>{let t=Jc(e);return t?[{...t,key:`activity:${t.id}`}]:[]}).concat((t.activities??[]).map(e=>({...e,key:`activity:${e.id}`})))).map(e=>({id:e.id,label:e.label,detail:e.detail,...e.turnId?{turnId:e.turnId}:{},...e.actorTurnId?{actorTurnId:e.actorTurnId}:{},...e.occurredAt===void 0?{}:{occurredAt:e.occurredAt},...e.changes?{changes:e.changes}:{}})).reduce(al,[...e.activities]),c=new Map(t.turns.map(e=>[e.id,e])),l=t.items.map(e=>{if(typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt))return e;let t=typeof e.turnId==`string`?c.get(e.turnId):void 0,n=e.kind===`agent`?t?.completedAt??t?.startedAt:t?.startedAt??t?.completedAt;return typeof n==`number`&&Number.isFinite(n)?{...e,occurredAt:n}:e}),u=(t.autopilotAudit??[]).filter(e=>typeof e?.id==`string`&&typeof e.label==`string`&&typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)),d={...e,cursor:Math.max(e.cursor,t.baseSequence),snapshotting:!1,activeTurnId:t.activeTurnId,lifecycle:rl(t.activeTurnId,e.cursor===0&&e.lifecycle===`finished`?`working`:e.lifecycle),prompts:r,messages:il(ol(l,r,e.messages).concat(u.map(Qc))).sort((e,t)=>(e.occurredAt??2**53-1)-(t.occurredAt??2**53-1)),activities:s,interactions:o,autopilotAuditTruncated:t.autopilotAuditTruncated===!0,buffered:new Map([...e.buffered].filter(([e])=>e>t.baseSequence))};return bl({...d,messages:ll(d.messages)})}function ll(e){let t=new Set;return e.filter(e=>e.role!==`audit`||!e.controlId?!0:t.has(e.controlId)?!1:(t.add(e.controlId),!0))}function ul(e){return{...e,snapshotting:!0}}function dl(e,t,n,r){if(!n.trim()||e.prompts.some(e=>e.operationId===t))return e;let i={operationId:t,key:`prompt:${t}`,text:n,state:`submitting`,turnId:null,...typeof r==`number`&&Number.isFinite(r)?{occurredAt:r}:{}};return{...e,lifecycle:`starting`,prompts:[...e.prompts,i],messages:[...e.messages,{id:i.key,role:`user`,text:n,...i.occurredAt===void 0?{}:{occurredAt:i.occurredAt},complete:!1}]}}function fl(e,t,n,r){let i=dl(e,t,n,r);return i===e?e:{...i,lifecycle:`working`}}function pl(e,t,n){return{...e,activeTurnId:n??e.activeTurnId,lifecycle:n?`working`:e.lifecycle,prompts:e.prompts.map(e=>e.operationId===t?{...e,state:`accepted`,turnId:n}:e),messages:e.messages.map(e=>e.id===`prompt:${t}`?{...e,complete:!0,...n?{turnId:n}:{}}:e)}}function ml(e,t){return{...e,lifecycle:`recoverable`,prompts:e.prompts.map(e=>e.operationId===t?{...e,state:`failed`}:e),messages:e.messages.map(e=>e.id===`prompt:${t}`?{...e,complete:!0}:e)}}function hl(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t&&(e.state===`pending`||e.state===`failed`)?{...e,state:`submitting`,...n?{operationId:n}:{}}:e)}}function gl(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t&&e.state!==`resolved`?{...e,state:`failed`,attemptedOutcome:n}:e)}}function _l(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t?{...e,state:`resolved`,...nl(e,n)?{attemptedOutcome:nl(e,n)}:{}}:e)}}function vl(e,t){if(!Number.isInteger(t.sequence)||t.sequence<=e.cursor)return e;if(e.snapshotting||t.sequence>e.cursor+1){let n=new Map(e.buffered);return n.set(t.sequence,t),{...e,snapshotting:!0,buffered:n}}let n={...e,cursor:t.sequence},r=t.payload,i=el(t.occurredAt);if(t.type===`agentMessageDelta`&&typeof r?.text==`string`){let e=typeof r.turnId==`string`?r.turnId:n.activeTurnId??void 0,t=`assistant:${typeof r.itemId==`string`?r.itemId:e??`live`}`,a=n.messages.find(e=>e.id===t);n={...n,lifecycle:n.activeTurnId?`working`:n.lifecycle,messages:a?n.messages.map(e=>e.id===t?{...e,text:e.text+r.text,...r.phase===`commentary`||r.phase===`final_answer`?{phase:r.phase}:{},complete:r.phase===`final_answer`||e.complete,...e.occurredAt===void 0&&i!==void 0?{occurredAt:i}:{}}:e):[...n.messages,{id:t,role:`assistant`,...r.phase===`commentary`||r.phase===`final_answer`?{phase:r.phase}:{},text:r.text,...e?{turnId:e}:{},...i===void 0?{}:{occurredAt:i},complete:r.phase===`final_answer`}]}}else if((t.type===`agentMessageStarted`||t.type===`agentMessageCompleted`)&&typeof r.text==`string`){let e=`assistant:${typeof r.itemId==`string`?r.itemId:n.activeTurnId??`live`}`,a=n.messages.find(t=>t.id===e),o=t.type===`agentMessageCompleted`,s={id:e,role:`assistant`,text:o&&r.text?r.text:a?.text??r.text,complete:o,...r.phase===`commentary`||r.phase===`final_answer`?{phase:r.phase}:a?.phase?{phase:a.phase}:{},...typeof r.turnId==`string`?{turnId:r.turnId}:a?.turnId?{turnId:a.turnId}:n.activeTurnId?{turnId:n.activeTurnId}:{},...a?.occurredAt===void 0?i===void 0?{}:{occurredAt:i}:{occurredAt:a.occurredAt}};n={...n,lifecycle:n.activeTurnId?`working`:n.lifecycle,messages:a?n.messages.map(t=>t.id===e?s:t):[...n.messages,s]}}else if(t.type===`turnCompleted`||t.type===`turnInterrupted`)n={...n,activeTurnId:null,lifecycle:t.type===`turnCompleted`||n.lifecycle===`finished`?`finished`:`interrupted`,messages:n.messages.map(e=>e.role===`assistant`?{...e,complete:!0}:e)};else if(t.type===`interaction.requested`&&typeof r?.requestId==`string`&&typeof r.kind==`string`){let e=n.interactions.find(e=>e.requestId===r.requestId);if(!e||e.state===`resolved`){let t={requestId:r.requestId,key:`interaction:${r.requestId}`,kind:r.kind,turnId:typeof r.turnId==`string`?r.turnId:n.activeTurnId,payload:r.payload,state:`pending`,...i===void 0?{}:{occurredAt:i}};n={...n,interactions:e?n.interactions.map(e=>e.requestId===r.requestId?t:e):[...n.interactions,t]}}}else if(t.type===`interaction.resolved`&&typeof r?.requestId==`string`)n=_l(n,r.requestId,r.outcome);else if(t.type===`activity.updated`&&typeof r?.id==`string`&&typeof r.label==`string`&&typeof r.detail==`string`){let e=yl(r.changes);n={...n,activities:al(n.activities,{id:r.id,label:r.label,detail:r.detail,...i===void 0?{}:{occurredAt:i},...e.length?{changes:e}:{},...typeof r.turnId==`string`?{turnId:r.turnId}:n.activeTurnId?{turnId:n.activeTurnId}:{},...typeof r.actorTurnId==`string`?{actorTurnId:r.actorTurnId}:{}})}}else if(t.type===`session.updated`&&r?.activeTurnId!==void 0){let e=typeof r.activeTurnId==`string`?r.activeTurnId:null;n={...n,activeTurnId:e,lifecycle:e?`working`:rl(e,n.lifecycle)}}let a=$c(t);return a&&!n.messages.some(e=>e.id===a.id)&&(n={...n,messages:ll([...n.messages,a])}),n}function yl(e){return!Array.isArray(e)||e.length>1e3?[]:e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return typeof t.path==`string`&&Number.isInteger(t.additions)&&t.additions>=0&&Number.isInteger(t.deletions)&&t.deletions>=0?[{path:t.path,additions:t.additions,deletions:t.deletions}]:[]})}function bl(e){let t=new Map(e.buffered),n={...e,snapshotting:!1,buffered:t};for(;;){let e=t.get(n.cursor+1);if(!e)return{...n,buffered:t,snapshotting:t.size>0};t.delete(e.sequence),n=vl({...n,buffered:t},e),t=new Map(n.buffered)}}function xl(e){return e.sessionId?e.snapshotting||e.lifecycle===`recoverable`?`Connection interrupted. Reconnecting…`:e.lifecycle===`starting`?`Starting Codex turn…`:e.lifecycle===`working`?`Codex is working…`:e.lifecycle===`interrupted`?`Codex turn interrupted.`:`Ready.`:`Choose a workspace and start a session.`}var Sl={read:async()=>null,write:async()=>{}},Cl=[250,750,1500],wl=e=>!!e&&typeof e==`object`,Tl=e=>wl(e)&&typeof e.path==`string`&&Number.isInteger(e.additions)&&e.additions>=0&&Number.isInteger(e.deletions)&&e.deletions>=0,El=e=>wl(e)&&typeof e.id==`string`&&typeof e.kind==`string`,Dl=e=>wl(e)&&typeof e.id==`string`&&Array.isArray(e.items)&&e.items.every(El)&&(e.startedAt===null||typeof e.startedAt==`number`)&&(e.completedAt===null||typeof e.completedAt==`number`),Ol=e=>!wl(e)||typeof e.requestId!=`string`||typeof e.kind!=`string`||!(e.turnId===null||typeof e.turnId==`string`)||!(e.requestedAt===null||typeof e.requestedAt==`string`)?!1:e.resolvedAt===null?Object.hasOwn(e,`payload`):typeof e.resolvedAt==`string`&&(e.outcome===`approved`||e.outcome===`denied`||e.outcome===`answered`||e.outcome===`dismissed`||e.outcome===`failed`)&&!Object.hasOwn(e,`payload`),kl=e=>wl(e)&&typeof e.id==`string`&&typeof e.label==`string`&&typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)&&(e.controlId===void 0||typeof e.controlId==`string`),Al=e=>wl(e)&&typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&(e.changes===void 0||Array.isArray(e.changes)&&e.changes.every(Tl))&&(e.turnId===void 0||typeof e.turnId==`string`)&&(e.occurredAt===void 0||typeof e.occurredAt==`number`&&Number.isFinite(e.occurredAt)),jl=e=>!wl(e)||!Number.isInteger(e.baseSequence)||e.baseSequence<0||!(e.activeTurnId===null||typeof e.activeTurnId==`string`)||!Array.isArray(e.items)||!Array.isArray(e.turns)||!Array.isArray(e.interactions)||!e.items.every(El)||!e.turns.every(Dl)||!e.interactions.every(Ol)||e.activities!==void 0&&(!Array.isArray(e.activities)||!e.activities.every(Al))||e.autopilotAudit!==void 0&&(!Array.isArray(e.autopilotAudit)||!e.autopilotAudit.every(kl))||e.autopilotAuditTruncated!==void 0&&typeof e.autopilotAuditTruncated!=`boolean`||e.currentSequence!==void 0&&(!Number.isInteger(e.currentSequence)||e.currentSequence<0)?null:e,Ml=class{#e=Xc();#t=null;#n=0;#r=-1;#i=null;#a=null;#o=null;#s=0;#c=!1;#l=!1;#u=null;#d=0;#f=!1;#p=new Set;#m=new Set;#h;constructor(e){this.#h={...e,websocket:e.websocket??(e=>new WebSocket(e)),cache:e.cache??Sl,location:e.location??location,document:e.document??document,window:e.window??window,setTimeout:e.setTimeout??((e,t)=>setTimeout(e,t)),clearTimeout:e.clearTimeout??(e=>clearTimeout(e)),createKey:e.createKey??Va,now:e.now??Date.now},this.#h.document.addEventListener(`visibilitychange`,this.#g),this.#h.window.addEventListener(`focus`,this.#g)}get view(){return Object.freeze({...this.#e,status:xl(this.#e),starting:this.#e.lifecycle===`starting`})}select(e,t={}){if(this.#f||this.#t===e)return;this.#k(),this.#t=e,this.#l=e!==null&&t.history===`empty`;let n=++this.#n;this.#e=Xc(e),this.#T(),e&&this.#_(e,n)}async send(e,t=this.#h.createKey()){let n=this.#t,r=this.#n,i=`${n}:${r}:${t}`;if(!(!n||!e.trim()||this.#e.activeTurnId||this.#p.has(i))){this.#p.add(i),this.#w(dl(this.#e,t,e.trim(),this.#h.now()));try{let i=await this.#h.relay.startTurn(n,e.trim(),t);this.#E(n,r)&&(this.#l=!1,this.#w(pl(this.#e,t,i.activeTurnId??null)),this.#h.onSendAccepted?.(t))}catch(e){this.#E(n,r)&&(this.#w(ml(this.#e,t)),this.#h.onSendError?.(e,t))}finally{this.#p.delete(i)}}}async retryPrompt(e){let t=this.#e.prompts.find(t=>t.operationId===e);t?.state===`failed`&&await this.send(t.text,e)}async queue(e,t=this.#h.createKey()){let n=this.#t,r=this.#e.activeTurnId,i=this.#h.relay.queueTurnInput,a=this.#n,o=`${n}:${a}:${t}`;if(!(!n||!r||!i||!e.trim()||this.#p.has(o))){this.#p.add(o),this.#w(fl(this.#e,t,e.trim(),this.#h.now()));try{let o=await i(n,r,e.trim(),t);this.#E(n,a)&&(this.#w(pl(this.#e,t,o.activeTurnId)),this.#h.onSendAccepted?.(t))}catch(e){this.#E(n,a)&&(this.#w(ml(this.#e,t)),this.#h.onSendError?.(e,t))}finally{this.#p.delete(o)}}}async interruptAndSend(e,t=this.#h.createKey()){let n=this.#t,r=this.#e.activeTurnId,i=this.#n,a=`${n}:${i}:${t}`;if(!(!n||!r||!e.trim()||this.#p.has(a))){this.#p.add(a),this.#w(dl(this.#e,t,e.trim(),this.#h.now()));try{await this.#h.relay.interruptTurn(n,r).catch(()=>void 0);let a=await this.#D(n,i,e.trim(),t);this.#E(n,i)&&(this.#w(pl(this.#e,t,a.activeTurnId??null)),this.#h.onSendAccepted?.(t))}catch(e){this.#E(n,i)&&(this.#w(ml(this.#e,t)),this.#h.onSendError?.(e,t))}finally{this.#p.delete(a)}}}async interrupt(){let e=this.#t,t=this.#e.activeTurnId;if(!(!e||!t))try{await this.#h.relay.interruptTurn(e,t)}catch{}}async respond(e,t,n=this.#h.createKey()){let r=this.#t,i=this.#n,a=this.#e.interactions.find(t=>t.requestId===e),o=a?.operationId??n,s=`${r}:${i}:${o}`;if(!(!r||!a||a.state===`resolved`||a.state===`submitting`||this.#m.has(s))){this.#m.add(s),this.#w(hl(this.#e,e,o));try{let n=await this.#h.relay.respondInteraction(r,e,t,o),a=n&&(n.outcome===`approved`||n.outcome===`denied`||n.outcome===`answered`||n.outcome===`dismissed`||n.outcome===`failed`)?n.outcome:t;this.#E(r,i)&&this.#w(_l(this.#e,e,a))}catch{this.#E(r,i)&&this.#w(gl(this.#e,e,t))}finally{this.#m.delete(s)}}}async retryInteraction(e,t){let n=this.#e.interactions.find(t=>t.requestId===e);if(n?.state!==`failed`||!n.operationId)return;let r=t??n.attemptedOutcome,i=r===`approved`?{decision:`accept`}:r===`denied`?{decision:`decline`}:r;i!==void 0&&await this.respond(e,i,n.operationId)}refresh(){this.#t&&!this.#l&&this.#x(this.#t,this.#n)}dispose(){this.#f||(this.#f=!0,this.#k(),this.#h.document.removeEventListener(`visibilitychange`,this.#g),this.#h.window.removeEventListener(`focus`,this.#g))}#g=()=>{this.#h.document.visibilityState===`visible`&&this.refresh()};async#_(e,t){let n=this.#l;if(n||this.#x(e,t),this.#v(e,t),n)return;let r=await this.#h.cache.read(e).catch(()=>null);!this.#E(e,t)||this.#r===t||!r||(this.#e=sl(e,r),this.#T())}#v(e,t){if(!this.#E(e,t)||this.#i)return;let n=this.#h.location.protocol===`https:`?`wss:`:`ws:`,r;try{r=this.#h.websocket(`${n}//${this.#h.location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${this.#e.cursor}`)}catch{this.#e={...this.#e,lifecycle:`recoverable`},this.#T(),this.#u=this.#h.setTimeout(()=>this.#v(e,t),Math.min(1e3*2**this.#d++,1e4));return}this.#i=r,r.onopen=()=>{this.#E(e,t)&&this.#i===r&&(this.#d=0,this.#l||this.#x(e,t))},r.onmessage=n=>this.#y(e,t,String(n.data)),r.onclose=()=>{!this.#E(e,t)||this.#i!==r||(this.#i=null,this.#u=this.#h.setTimeout(()=>this.#v(e,t),Math.min(1e3*2**this.#d++,1e4)))}}#y(e,t,n){if(!this.#E(e,t))return;let r;try{r=JSON.parse(n)}catch{return}if(r.type===`relay.resyncRequired`){this.#l=!1,this.#x(e,t);return}if(r.type!==`relay.event`||!r.event||typeof r.event!=`object`)return;let i=r.event;if(!Number.isInteger(i.sequence)||typeof i.type!=`string`||!this.#b(i))return;this.#l=!1;let a=vl(this.#e,i);this.#w(a),this.#h.onRelayEvent?.(i),(i.type===`session.updated`||i.type===`plan.updated`||i.type===`plan.closed`||i.type===`agent.activity.updated`||i.type===`autopilot.updated`||i.type===`org-plan.attention-required`||i.type===`org-plan.attention-resolved`)&&this.#h.onSessionEvent?.(i),a.snapshotting&&this.#x(e,t)}#b(e){let t=e.payload;if(!t||typeof t!=`object`)return e.type===`turnCompleted`||e.type===`turnInterrupted`||e.type===`plan.closed`;let n=t;return e.type===`agentMessageDelta`||e.type===`agentMessageStarted`||e.type===`agentMessageCompleted`?typeof n.text==`string`:e.type===`interaction.requested`?typeof n.requestId==`string`&&typeof n.kind==`string`:e.type===`interaction.resolved`?typeof n.requestId==`string`:e.type===`session.updated`?n.activeTurnId===null||typeof n.activeTurnId==`string`:e.type===`activity.updated`?typeof n.id==`string`&&typeof n.label==`string`&&typeof n.detail==`string`:e.type===`agent.activity.updated`?typeof n.sessionId==`string`&&!!n.root&&Array.isArray(n.subagents):e.type===`autopilot.updated`||e.type===`org-plan.attention-required`||e.type===`org-plan.attention-resolved`||[`autopilot.continuation-scheduled`,`autopilot.control-issued`,`autopilot.turn-started`,`autopilot.turn-failed`].includes(e.type)?!0:e.type===`plan.updated`||e.type===`plan.closed`}#x(e,t){if(this.#a?.id===e&&this.#a.generation===t)return this.#a.promise;if(!this.#E(e,t))return Promise.resolve();let n=this.#e.snapshotting&&this.#e.buffered.size>0;this.#e=ul(this.#e),this.#T();let r=this.#h.relay.getHistory(e).then(r=>{let i=jl(r);if(this.#E(e,t)){if(!i){this.#w({...this.#e,snapshotting:!1,lifecycle:`recoverable`});return}this.#s=0,this.#c=!1,this.#o&&this.#h.clearTimeout(this.#o),this.#o=null,this.#r=t,this.#w(cl(this.#e,i)),n&&this.#C(e,t)}}).catch(n=>{if(this.#E(e,t)){this.#w({...this.#e,snapshotting:!1,lifecycle:`recoverable`});let r=Cl[this.#s++];r===void 0?this.#c||(this.#c=!0,this.#h.onHistoryError?.(n)):this.#S(e,t,r)}}).finally(()=>{this.#a?.promise===r&&(this.#a=null,this.#E(e,t)&&this.#e.snapshotting&&this.#x(e,t))});return this.#a={id:e,generation:t,promise:r},r}#S(e,t,n){this.#o&&this.#h.clearTimeout(this.#o);let r=this.#h.setTimeout(()=>{this.#o===r&&(this.#o=null,this.#E(e,t)&&this.#x(e,t))},n);this.#o=r}#C(e,t){let n=this.#i;this.#i=null,n?.close(),this.#u&&this.#h.clearTimeout(this.#u),this.#u=null,this.#v(e,t)}#w(e){this.#e=e,this.#T(),this.#t&&this.#h.cache.write(this.#t,this.#e).catch(()=>{})}#T(){this.#h.publish(this.view)}#E(e,t){return!this.#f&&this.#t===e&&this.#n===t}async#D(e,t,n,r){let i;for(let a of[0,50,150,300]){if(!this.#E(e,t))throw Error(`SESSION_CHANGED`);a&&await this.#O(a);try{return await this.#h.relay.startTurn(e,n,r)}catch(e){if(!Nl(e,`SESSION_TURN_ACTIVE`))throw e;i=e}}throw i}#O(e){return new Promise(t=>this.#h.setTimeout(t,e))}#k(){this.#u&&this.#h.clearTimeout(this.#u),this.#u=null,this.#o&&this.#h.clearTimeout(this.#o),this.#o=null,this.#s=0,this.#c=!1,this.#l=!1;let e=this.#i;this.#i=null,e?.close()}};function Nl(e,t){return wl(e)&&e.code===t}var Pl=class{#e=!0;#t=null;#n;constructor(e){this.#n=e}get following(){return this.#e}observeTail(e){this.#e=e}reset(){this.cancel(),this.#e=!0}request(e){e!==`content`&&(this.#e=!0),!(e===`content`&&!this.#e)&&this.#t===null&&(this.#t=this.#n.requestFrame(()=>{this.#t=null,this.#n.scrollTail(e===`initial`||this.#n.reducedMotion()?`auto`:`smooth`)}))}cancel(){this.#t!==null&&this.#n.cancelFrame(this.#t),this.#t=null}},Fl=class{afterCommit;request;#e=0;constructor(e,t){this.afterCommit=e,this.request=t}schedule(e){let t=this.#e;this.afterCommit(()=>{t===this.#e&&this.request(e)})}invalidate(){this.#e+=1}},Il={RELAY_UNAVAILABLE:`The relay is unavailable. Check the connection and try again.`,SESSION_HISTORY_UNAVAILABLE:`Session history is unavailable. Check the relay connection and try opening the session again.`,SESSION_HISTORY_READ_FAILED:`Session history could not be read. The conversation remains saved; try again shortly.`,SESSION_WRITER_BUSY:`This thread is active in another Codex client. Release it there, then retry sending here.`,SESSION_WORKSPACE_UNAVAILABLE:`This session workspace is unavailable. Your message remains in the conversation for copying; restore workspace access before sending again.`,SESSION_RUNTIME_DEPENDENCY_FAILED:`A required Codex runtime dependency is unavailable. Check Codex, then retry.`,CODEX_PROTOCOL_INCOMPATIBLE:`The installed Codex runtime is incompatible with this relay. Update Codex before retrying.`,SESSION_ROLLOUT_MISSING:`This stored thread is no longer available.`,SESSION_RUNTIME_UNAVAILABLE:`The Codex runtime is unavailable. Retry shortly.`,SESSION_START_FAILED:`The session could not be started. Try again.`,SESSION_REFRESH_FAILED:`Sessions could not be refreshed. Try again.`,MESSAGE_SEND_FAILED:`The message was not sent. Your draft is preserved.`,GIT_SUMMARY_FAILED:`Repository status could not be loaded. Select it again to retry.`,GIT_PULL_FAILED:`The branch could not be refreshed. Resolve any Git conflicts and try again.`,GIT_CHECKOUT_FAILED:`The branch could not be selected. Refresh Git status and try again.`,GIT_PUSH_FAILED:`The push failed. Refresh Git status and resolve remote divergence first.`,GIT_CLONE_FAILED:`Clone failed.`,WORKSPACE_FILES_READ_FAILED:`Files could not be read. Try again.`};function Ll(e,t){let n=e instanceof Error?e.message:``,r=typeof e==`object`&&e&&`code`in e&&typeof e.code==`string`?e.code:``,i=Object.hasOwn(Il,r)?r:Object.hasOwn(Il,n)?n:t,a=typeof e==`object`&&e&&`retryable`in e?e.retryable===!0:!0;return{code:i,message:Il[i],retryable:a}}var Rl={error:null,success:5e3,warning:1e4,info:7e3};function zl(e={}){let t=e.now??Date.now,n=e.setTimer??setTimeout,r=e.clearTimer??clearTimeout,i=new Set,a=new Map,o=[],s=0,c=()=>o.map(e=>({...e})),l=()=>i.forEach(e=>e(c())),u=e=>{let t=a.get(e);t?.handle&&r(t.handle),t&&(t.handle=null)},d=e=>{o.some(t=>t.id===e)&&(u(e),a.delete(e),o=o.filter(t=>t.id!==e),l())},f=e=>{let r=a.get(e);!r||r.pauseReasons.size>0||(r.startedAt=t(),r.handle=n(()=>d(e),r.remaining))};return{enqueue(e){if(e.kind===`error`){let t=o.find(t=>t.kind===`error`&&(e.code?t.code===e.code:t.message===e.message));if(t)return o=o.map(e=>e.id===t.id?{...e,occurrences:e.occurrences+1}:e),l(),t.id}let n=`toast-${++s}`,r={...e,id:n,occurrences:1};o=[...o,r];let i=Rl[e.kind];return i!==null&&(a.set(n,{handle:null,remaining:i,startedAt:t(),pauseReasons:new Set}),f(n)),l(),n},dismiss:d,pause(e,n){let r=a.get(e);!r||r.pauseReasons.has(n)||(r.pauseReasons.add(n),r.handle&&(r.remaining=Math.max(0,r.remaining-(t()-r.startedAt)),u(e)))},resume(e,t){let n=a.get(e);!n||!n.pauseReasons.delete(t)||n.pauseReasons.size>0||f(e)},snapshot:c,subscribe(e){return i.add(e),e(c()),()=>i.delete(e)}}}var Bl=q(`<small class="svelte-1a0rutm"> </small>`),Vl=q(`<section aria-atomic="true"><span class="toast-symbol svelte-1a0rutm" aria-hidden="true"> </span> <span class="toast-copy svelte-1a0rutm"><strong class="svelte-1a0rutm"> </strong> <span> </span> <!></span> <button type="button" class="svelte-1a0rutm"><span aria-hidden="true">×</span></button></section>`),Hl=q(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function Ul(e,t){Qe(t,!0);let n=I([]),r=P(()=>G(n).slice(-3));Ri(()=>t.queue.subscribe(e=>L(n,e)));var i=Hl();Z(i,21,()=>G(r),e=>e.id,(e,n)=>{var r=Vl();let i;var a=z(r),o=z(a,!0);N(a);var s=V(a,2),c=z(s),l=z(c,!0);N(c);var u=V(c,2),d=z(u,!0);N(u);var f=V(u,2),p=e=>{var t=Bl(),r=z(t);N(t),H(()=>Y(r,`Repeated ${G(n).occurrences??``} times.`)),J(e,t)};X(f,e=>{G(n).occurrences>1&&e(p)}),N(s);var m=V(s,2);N(r),H(()=>{i=gi(r,1,`toast svelte-1a0rutm`,null,i,{error:G(n).kind===`error`,success:G(n).kind===`success`,warning:G(n).kind===`warning`}),Q(r,`role`,G(n).kind===`error`?`alert`:`status`),Q(r,`aria-live`,G(n).kind===`error`?`assertive`:`polite`),Y(o,G(n).kind===`error`||G(n).kind===`warning`?`!`:G(n).kind===`success`?`✓`:`i`),Y(l,G(n).kind===`error`?`Error`:G(n).kind===`success`?`Success`:G(n).kind===`warning`?`Warning`:`Info`),Y(d,G(n).message),Q(m,`aria-label`,`Dismiss ${G(n).kind} notification`)}),Nr(`pointerenter`,r,()=>t.queue.pause(G(n).id,`hover`)),Nr(`pointerleave`,r,()=>t.queue.resume(G(n).id,`hover`)),K(`focusin`,r,()=>t.queue.pause(G(n).id,`focus`)),K(`focusout`,r,()=>t.queue.resume(G(n).id,`focus`)),K(`click`,m,()=>t.queue.dismiss(G(n).id)),J(e,r)}),N(i),J(e,i),$e()}Pr([`focusin`,`focusout`,`click`]);var Wl=q(`<main class="evidence-page svelte-1j55xyh"><h1 class="svelte-1j55xyh">Git repository</h1> <p>Choose a destination and clone a repository.</p> <div class="evidence-composer svelte-1j55xyh"><label for="evidence-prompt">Prompt</label> <textarea id="evidence-prompt" class="evidence-prompt svelte-1j55xyh" rows="1">Review repository status</textarea></div></main> <nav class="evidence-nav svelte-1j55xyh" aria-label="Primary evidence navigation"><button type="button" class="svelte-1j55xyh">Sessions</button> <button type="button" aria-pressed="true" class="svelte-1j55xyh">Git</button> <button type="button" class="svelte-1j55xyh">Chat</button></nav> <!>`,1);function Gl(e,t){Qe(t,!0);let n=zl();Ri(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=Wl();Ul(V(B(r),4),{get queue(){return n}}),J(e,r),$e()}var Kl={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function ql(e){let t=new Set,n=(e,r)=>{!e.isGitRepository&&r<=2&&t.add(e.id),e.children.forEach(e=>n(e,r+1))};return e.forEach(e=>n(e,1)),t}function Jl(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function Yl(e,t){let n=[],r=(e,i,a)=>{n.push({node:e,level:i,parentId:a}),!e.isGitRepository&&t.has(e.id)&&e.children.forEach(t=>r(t,i+1,e.id))};return e.forEach(e=>r(e,1,null)),n}function Xl(e,t){let n=(e,r)=>{if(e.id===t)return r;for(let t of e.children){let i=n(t,[...r,e.id]);if(i)return i}return null};for(let t of e){let e=n(t,[]);if(e)return e}return[]}function Zl(e,t){for(let n of e){if(n.id===t)return n;let e=Zl(n.children,t);if(e)return e}}function Ql(e,t,n,r){if(e){let i=Zl(n,e);if(i&&r(i))return i.id;let a=Xl(t,e);for(let e of a.toReversed()){let t=Zl(n,e);if(t&&r(t))return t.id}}return $l(n).find(r)?.id??null}function $l(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var eu=q(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),tu=q(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),nu=q(`<span class="repository-badge svelte-6z3q4v">Git</span>`),ru=q(`<div class="tree-row svelte-6z3q4v"><!> <button type="button" role="treeitem"><span class="selection-mark svelte-6z3q4v" aria-hidden="true"> </span> <span class="node-copy svelte-6z3q4v"><span class="node-name svelte-6z3q4v"> </span> <span class="node-path svelte-6z3q4v"> </span></span> <!></button></div>`),iu=q(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function au(e,t){Qe(t,!0);let n=$(t,`isSelectable`,3,()=>!0),r=I(null),i=R({}),a=P(()=>Yl(t.roots,t.expandedIds)),o=P(()=>G(r)&&G(a).some(({node:e})=>e.id===G(r))?G(r):t.selectedId&&G(a).some(({node:e})=>e.id===t.selectedId)?t.selectedId:G(a)[0]?.node.id??null);function s(e){return!e.isGitRepository&&e.children.length>0}function c(e){return e===`.`?`~/`:`~/${e}`}function l(e){L(r,e,!0),i[e]?.focus()}function u(e,t){let n=Math.max(0,Math.min(G(a).length-1,t)),r=G(a)[n];r&&n!==e&&l(r.node.id)}function d(e){n()(e)&&t.onselect(e)}function f(e){s(e)&&t.onexpandedchange(Jl(t.expandedIds,e))}function p(e,n,r){let{node:i,parentId:o}=n;switch(e.key){case`ArrowUp`:e.preventDefault(),u(r,r-1);break;case`ArrowDown`:e.preventDefault(),u(r,r+1);break;case`ArrowRight`:if(!s(i))return;e.preventDefault(),t.expandedIds.has(i.id)?G(a)[r+1]?.parentId===i.id&&u(r,r+1):f(i);break;case`ArrowLeft`:if(!t.expandedIds.has(i.id)&&!o)return;e.preventDefault(),s(i)&&t.expandedIds.has(i.id)?f(i):o&&l(o);break;case`Home`:e.preventDefault(),u(r,0);break;case`End`:e.preventDefault(),u(r,G(a).length-1);break;case`Enter`:case` `:e.preventDefault(),d(i);break}}var m=iu();Z(m,23,()=>G(a),e=>e.node.id,(e,a,l)=>{let u=P(()=>G(a).node),m=P(()=>s(G(u)));var h=ru();let g;var _=z(h),v=e=>{var n=eu(),r=z(n),i=z(r,!0);N(r),N(n),H((e,t)=>{Q(n,`aria-label`,e),Y(i,t)},[()=>`${t.expandedIds.has(G(u).id)?`Collapse`:`Expand`} ${G(u).name}`,()=>t.expandedIds.has(G(u).id)?`−`:`+`]),K(`click`,n,()=>f(G(u))),J(e,n)},y=e=>{J(e,tu())};X(_,e=>{G(m)?e(v):e(y,-1)});var b=V(_,2);let x;var S=z(b),C=z(S,!0);N(S);var w=V(S,2),T=z(w),E=z(T,!0);N(T);var D=V(T,2),O=z(D,!0);N(D),N(w);var k=V(w,2),ee=e=>{J(e,nu())};X(k,e=>{G(u).isGitRepository&&e(ee)}),N(b),Li(b,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[G(u)]),N(h),H((e,n,r,i,s)=>{g=vi(h,``,g,e),x=gi(b,1,`tree-item svelte-6z3q4v`,null,x,{selected:t.selectedId===G(u).id,repository:G(u).isGitRepository}),Q(b,`aria-level`,G(a).level),Q(b,`aria-expanded`,n),Q(b,`aria-selected`,t.selectedId===G(u).id),Q(b,`aria-disabled`,r),Q(b,`tabindex`,G(o)===G(u).id?0:-1),Q(b,`title`,i),Y(C,t.selectedId===G(u).id?`✓`:``),Y(E,G(u).name),Y(O,s)},[()=>({"--tree-level":Math.min(G(a).level-1,6)}),()=>G(m)?t.expandedIds.has(G(u).id):void 0,()=>!n()(G(u)),()=>c(G(u).relativePath),()=>c(G(u).relativePath)]),Nr(`focus`,b,()=>L(r,G(u).id,!0)),K(`keydown`,b,e=>p(e,G(a),G(l))),K(`click`,b,()=>d(G(u))),J(e,h)}),N(m),H(()=>Q(m,`aria-label`,t.label)),J(e,m),$e()}Pr([`click`,`keydown`]);var ou=q(`<section class="evidence-shell svelte-1d6w4ti" aria-labelledby="evidence-title"><p class="eyebrow svelte-1d6w4ti"> </p> <h1 id="evidence-title" class="svelte-1d6w4ti"> </h1> <p class="instructions svelte-1d6w4ti"> </p> <!></section>`);function su(e,t){Qe(t,!0);let n=(e,t)=>({id:e,name:t,relativePath:e,isGitRepository:!0,children:[]}),r=[{id:`.`,name:`development-workspace-with-a-long-name`,relativePath:`.`,isGitRepository:!1,children:[{id:`dyne`,name:`dyne`,relativePath:`dyne`,isGitRepository:!1,children:[{id:`dyne/mobile-applications`,name:`mobile-applications-and-experiments`,relativePath:`dyne/mobile-applications`,isGitRepository:!1,children:[n(`dyne/mobile-applications/gestalt-mobile`,`gestalt-mobile-with-an-extraordinarily-long-repository-name`)]},n(`dyne/zenroom`,`zenroom`),n(`dyne/zenflows`,`zenflows`),n(`dyne/did`,`did-toolkit`),n(`dyne/api`,`api-gateway`),n(`dyne/docs`,`documentation-portal`)]},{id:`personal`,name:`personal-projects`,relativePath:`personal`,isGitRepository:!1,children:[]}]}],i=I(R(new Set([`.`,`dyne`,`dyne/mobile-applications`]))),a=I(null),o=P(()=>t.context===`sessions`?`dyne/mobile-applications`:`dyne/mobile-applications/gestalt-mobile`),s=P(()=>G(a)??G(o));var c=ou(),l=z(c),u=z(l,!0);N(l);var d=V(l,2),f=z(d,!0);N(d);var p=V(d,2),m=z(p,!0);N(p);var h=V(p,2);{let e=P(()=>t.context===`sessions`?`Session base`:`Git repository`),n=P(()=>t.context===`sessions`?Kl.sessionBase:Kl.gitRepositoryTarget);au(h,{get roots(){return r},get expandedIds(){return G(i)},get selectedId(){return G(s)},get label(){return G(e)},get isSelectable(){return G(n)},onexpandedchange:e=>L(i,e,!0),onselect:e=>L(a,e.id,!0)})}N(c),H(()=>{Y(u,t.context===`sessions`?`Sessions`:`Git`),Y(f,t.context===`sessions`?`Session base`:`Git repository`),Y(m,t.context===`sessions`?`Select the folder Codex should use as its working directory.`:`Select a repository for Git actions.`)}),J(e,c),$e()}function cu(e,t=Date.now()){if(!e)return`Not fetched yet`;let n=Math.max(0,t-new Date(e).getTime()),r=Math.floor(n/6e4);if(r<1)return`Fetched just now`;if(r<60)return`Fetched ${r}m ago`;let i=Math.floor(r/60);return i<24?`Fetched ${i}h ago`:`Fetched ${Math.floor(i/24)}d ago`}function lu(e,t=Date.now()){let n=Date.parse(e);if(!Number.isFinite(n))return`unknown time`;let r=Math.round((n-t)/1e3),i=[[`year`,31536e3],[`month`,2592e3],[`week`,604800],[`day`,86400],[`hour`,3600],[`minute`,60],[`second`,1]],[a,o]=i.find(([,e])=>Math.abs(r)>=e)??i.at(-1);return new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}).format(Math.round(r/o),a)}var uu=q(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),du=q(`<option> </option>`),fu=q(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),pu=q(`<li class="commit-entry svelte-pudr3t"><div class="commit-subject svelte-pudr3t"><code class="svelte-pudr3t"> </code><span> </span></div> <div class="commit-meta svelte-pudr3t"><span> </span><time class="svelte-pudr3t"> </time></div></li>`),mu=q(`<section class="commit-history svelte-pudr3t" aria-labelledby="recent-commits-title"><h3 id="recent-commits-title" class="svelte-pudr3t">Recent commits</h3> <ol class="commit-list svelte-pudr3t" aria-label="Recent commits"></ol></section>`),hu=q(`<div class="git-overview svelte-pudr3t"><div class="git-status svelte-pudr3t"><label for="git-branch">Branch</label> <select id="git-branch"></select> <p class="svelte-pudr3t"> </p> <p class="svelte-pudr3t"> </p> <p class="svelte-pudr3t"><time> </time></p> <p class="svelte-pudr3t"> </p></div> <div class="git-actions svelte-pudr3t"><button type="button" class="svelte-pudr3t"><span aria-hidden="true">↑</span> Push</button> <button type="button" class="svelte-pudr3t"><span aria-hidden="true">↓</span> </button></div></div> <!> <!>`,1),gu=q(`<p>This workspace is not a Git repository.</p>`),_u=q(`<p role="status">Loading repository status…</p>`),vu=q(`<p><strong> </strong> is available as a Clone destination. Select a Git repository
16
16
  to inspect branches and enable repository actions.</p> <div class="git-actions svelte-pudr3t" aria-label="Repository actions unavailable"><button type="button" disabled="" class="svelte-pudr3t"><span aria-hidden="true">↑</span> Push</button> <button type="button" disabled="" class="svelte-pudr3t"><span aria-hidden="true">↓</span> Pull</button></div>`,1),yu=q(`<p>Select a folder above to choose a Clone destination or inspect a Git repository.</p> <div class="git-actions svelte-pudr3t" aria-label="Repository actions unavailable"><button type="button" disabled="" class="svelte-pudr3t"><span aria-hidden="true">↑</span> Push</button> <button type="button" disabled="" class="svelte-pudr3t"><span aria-hidden="true">↓</span> Pull</button></div>`,1),bu=q(`<p role="alert"> </p>`),xu=q(`<section class="git-view svelte-pudr3t" aria-labelledby="git-title"><h2 id="git-title" class="visually-hidden">Git</h2> <section class="git-tree svelte-pudr3t" aria-labelledby="git-tree-title"><div class="section-heading svelte-pudr3t"><h3 id="git-tree-title" class="svelte-pudr3t">Repository and clone destination</h3> <p class="svelte-pudr3t">Select any folder. Git repositories enable repository actions; other folders are clone
17
17
  destinations.</p></div> <!> <button id="browse-files" type="button">Browse files</button></section> <form class="clone-form svelte-pudr3t"><div class="clone-controls svelte-pudr3t"><div class="clone-field clone-destination svelte-pudr3t"><span class="field-label svelte-pudr3t">Destination</span> <output aria-live="polite" class="svelte-pudr3t"> </output></div> <div class="clone-field svelte-pudr3t"><label for="git-clone-address">Git address</label> <input id="git-clone-address" name="address" required="" autocomplete="url" inputmode="url" enterkeyhint="done" placeholder="https://example.com/owner/repository.git" aria-describedby="clone-help"/></div> <button type="submit" class="svelte-pudr3t"> </button></div> <p id="clone-help" class="svelte-pudr3t">The repository is cloned inside the selected workspace.</p> <!></form> <section class="repository-details svelte-pudr3t" aria-labelledby="repository-details-title"><h3 id="repository-details-title" class="svelte-pudr3t">Repository details</h3> <!> <!></section></section>`);function Su(e,t){Qe(t,!0);let n=I(``),r=P(()=>t.selectedWorkspace&&!t.selectedWorkspace.isGitRepository?t.selectedWorkspace:null);function i(e){e.preventDefault(),!(!G(n).trim()||t.cloning)&&t.onclone(G(n).trim())}var a=xu(),o=V(z(a),2),s=V(z(o),2);{let e=P(()=>t.selectedWorkspace?.id??null);au(s,{get roots(){return t.workspaceTree},get expandedIds(){return t.expandedIds},get selectedId(){return G(e)},label:`Git repository and clone destination`,get onexpandedchange(){return t.onexpandedchange},get onselect(){return t.onselect}})}var c=V(s,2);N(o);var l=V(o,2),u=z(l),d=z(u),f=V(z(d),2),p=z(f,!0);N(f),N(d);var m=V(d,2),h=V(z(m),2);Di(h),N(m);var g=V(m,2),_=z(g,!0);N(g),N(u);var v=V(u,4),y=e=>{var n=uu(),r=z(n,!0);N(n),H(()=>Y(r,t.cloneStatus)),J(e,n)};X(v,e=>{t.cloneStatus&&e(y)}),N(l);var b=V(l,2),x=V(z(b),2),S=e=>{var n=Hr(),r=B(n),i=e=>{var n=Hr(),r=B(n),i=e=>{var n=hu(),r=B(n),i=z(r),a=V(z(i),2);Z(a,20,()=>t.summary.branches??[],e=>e,(e,t)=>{var n=du(),r=z(n,!0);N(n);var i={};H(()=>{Y(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),J(e,n)}),N(a);var o;bi(a);var s=V(a,2),c=z(s);N(s);var l=V(s,2),u=z(l);N(l);var d=V(l,2),f=z(d),p=z(f,!0);N(f),N(d);var m=V(d,2),h=z(m);N(m),N(i);var g=V(i,2),_=z(g),v=V(_,2),y=V(z(v));N(v),N(g),N(r);var b=V(r,2),x=e=>{var n=fu(),r=z(n),i=z(r);N(r);var a=V(r,2),o=V(a,2);N(n),H(()=>Y(i,`Push HEAD to ${t.summary.upstream??``}?`)),K(`click`,a,function(...e){t.onpush?.apply(this,e)}),K(`click`,o,function(...e){t.oncancelpush?.apply(this,e)}),J(e,n)};X(b,e=>{t.confirmingPush&&e(x)});var S=V(b,2),C=e=>{var n=mu(),r=V(z(n),2);Z(r,21,()=>t.summary.commits,e=>e.hash,(e,t)=>{var n=pu(),r=z(n),i=z(r),a=z(i,!0);N(i);var o=V(i),s=z(o,!0);N(o),N(r);var c=V(r,2),l=z(c),u=z(l,!0);N(l);var d=V(l),f=z(d,!0);N(d),N(c),N(n),H(e=>{Q(i,`title`,G(t).hash),Y(a,G(t).shortHash),Y(s,G(t).subject),Y(u,G(t).author),Q(d,`datetime`,G(t).authoredAt),Q(d,`title`,G(t).authoredAt),Y(f,e)},[()=>lu(G(t).authoredAt)]),J(e,n)}),N(r),N(n),J(e,n)};X(S,e=>{t.summary.commits.length&&e(C)}),H(e=>{a.disabled=t.refreshing||t.checkingOut||!t.summary.branches?.length,o!==(o=t.summary.branch??``)&&(a.value=(a.__value=t.summary.branch??``)??``,yi(a,t.summary.branch??``)),Y(c,`Upstream: ${t.summary.upstream??`none`??``}`),Y(u,`Ahead ${t.summary.ahead??``}; behind ${t.summary.behind??``}.`),Q(f,`datetime`,t.summary.fetchedAt??void 0),Y(p,e),Y(h,`Changes: ${t.summary.dirty.staged??``} staged, ${t.summary.dirty.unstaged??``} unstaged, ${t.summary.dirty.untracked??``} untracked.`),_.disabled=t.refreshing||t.checkingOut||!t.summary.upstream||t.summary.ahead<1||t.summary.behind>0,v.disabled=t.refreshing||t.checkingOut,Y(y,` ${t.refreshing?`Pulling…`:`Pull`}`)},[()=>cu(t.summary.fetchedAt)]),K(`change`,a,e=>t.oncheckout(e.currentTarget.value)),K(`click`,_,function(...e){t.onopenpushconfirmation?.apply(this,e)}),K(`click`,v,function(...e){t.onpull?.apply(this,e)}),J(e,n)},a=e=>{J(e,gu())};X(r,e=>{t.summary.available?e(i):e(a,-1)}),J(e,n)},a=e=>{J(e,_u())};X(r,e=>{t.summary?e(i):t.error||e(a,1)}),J(e,n)},C=e=>{var n=vu(),r=B(n),i=z(r),a=z(i,!0);N(i),He(),N(r),He(2),H(()=>Y(a,t.selectedWorkspace.name)),J(e,n)},w=e=>{var t=yu();He(2),J(e,t)};X(x,e=>{t.selectedWorkspace?.isGitRepository?e(S):t.selectedWorkspace?e(C,1):e(w,-1)});var T=V(x,2),E=e=>{var n=bu(),r=z(n,!0);N(n),H(()=>Y(r,t.error)),J(e,n)};X(T,e=>{t.error&&e(E)}),N(b),N(a),H(()=>{c.disabled=!t.selectedWorkspace,Y(p,G(r)?`~/${G(r).relativePath}`:`Select a non-repository folder`),g.disabled=t.cloning,Y(_,t.cloning?`Cloning…`:`Clone`)}),K(`click`,c,e=>t.onbrowsefiles(e.currentTarget)),Nr(`submit`,l,i),Ni(h,()=>G(n),e=>L(n,e)),J(e,a),$e()}Pr([`click`,`change`]);var Cu=class{transport;isRepository;onChange;errorMessage;#e={workspaceId:null,summary:null,loading:!1,refreshing:!1,checkingOut:!1,error:null};#t=0;#n=null;#r=!1;constructor(e,t,n,r){this.transport=e,this.isRepository=t,this.onChange=n,this.errorMessage=r}get state(){return this.#e}select(e){this.#a();let t=e,n=!!(t&&this.isRepository(t));this.#s({workspaceId:t,summary:null,loading:n,refreshing:!1,checkingOut:!1,error:null}),n&&this.refresh()}async refresh(){let e=this.#e.workspaceId;if(!e||!this.isRepository(e))return;let t=this.#i(),n=this.#t;this.#s({...this.#e,loading:!0,error:null});try{let r=await this.transport.getSummary(e,t.signal);this.#o(n,e,t)&&this.#s({...this.#e,summary:r,loading:!1})}catch(r){this.#o(n,e,t)&&!t.signal.aborted&&this.#s({...this.#e,summary:null,loading:!1,error:this.errorMessage(r,`GIT_SUMMARY_FAILED`)})}}async pull(e){let t=this.#e.workspaceId;if(!t||this.#e.refreshing)return;let n=this.#i(),r=this.#t;this.#s({...this.#e,refreshing:!0,error:null});try{await this.transport.pull(t,e,n.signal),this.#o(r,t,n)&&(this.#s({...this.#e,refreshing:!1}),await this.refresh())}catch(e){this.#o(r,t,n)&&!n.signal.aborted&&this.#s({...this.#e,refreshing:!1,error:this.errorMessage(e,`GIT_PULL_FAILED`)})}}async checkout(e){let t=this.#e.workspaceId;if(!t||this.#e.checkingOut||e===this.#e.summary?.branch)return;let n=this.#i(),r=this.#t;this.#s({...this.#e,checkingOut:!0,error:null});try{await this.transport.checkout(t,e,n.signal),this.#o(r,t,n)&&(this.#s({...this.#e,checkingOut:!1}),await this.refresh())}catch(e){this.#o(r,t,n)&&!n.signal.aborted&&this.#s({...this.#e,checkingOut:!1,error:this.errorMessage(e,`GIT_CHECKOUT_FAILED`)})}}dispose(){this.#r=!0,this.#a()}#i(){return this.#a(),this.#n=new AbortController,++this.#t,this.#n}#a(){this.#n?.abort(),this.#n=null,++this.#t}#o(e,t,n){return!this.#r&&e===this.#t&&this.#e.workspaceId===t&&this.#n===n}#s(e){this.#r||(this.#e=e,this.onChange(e))}};function wu(e,t,n,r,i){let a=new Set(Tu(e).filter(e=>e.isGitRepository).map(e=>e.id)),o=Zl(t,n),s=o?Tu(o.children).filter(e=>e.isGitRepository&&!a.has(e.id)):[],c=Eu(r),l=s.find(e=>e.name===c)??(s.length===1?s[0]:void 0),u=l?.id??o?.id??null,d=new Set(i);return u&&Xl(t,u).forEach(e=>d.add(e)),!l&&o&&d.add(o.id),{selectedId:u,expandedIds:d}}function Tu(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}function Eu(e){return(e.trim().replace(/[?#].*$/,``).replace(/\/+$/,``).split(/[/:]/).at(-1)??``).replace(/\.git$/i,``)}function Du(e){if(typeof e!=`object`||!e)return null;let t=e.permissions;if(typeof t!=`object`||!t)return null;let n=t;return{permissions:{...n.network===null||n.network===void 0?{}:{network:n.network},...n.fileSystem===null||n.fileSystem===void 0?{}:{fileSystem:n.fileSystem}},scope:`turn`}}function Ou(e){return{answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,{answers:[e.answer]}]))}}function ku(e){return[`Submitted quiz answers:`,...e.map(e=>`- ${e.header} — ${e.question}\n ${e.answer.trim().replaceAll(`
18
18
  `,`
@@ -27,7 +27,7 @@ Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.expo
27
27
  The chosen QR Code version cannot contain this amount of data.
28
28
  Minimum version required to store current data is: `+c+`.
29
29
  `);let l=b(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),h(d),g(d,n),v(d,r,0),n>=7&&_(d,n),y(d,l),isNaN(a)&&(a=s.getBestMask(d,v.bind(null,d,r))),s.applyMask(a,d),v(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),S(e,a,i,o)}})),bp=o((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||={};let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),xp=o((e=>{var t=bp();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o===void 0&&(!i||!i.getContext)&&(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i===void 0&&(!n||!n.getContext)&&(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),Sp=o((e=>{var t=bp();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
30
- `;return typeof a==`function`&&a(null,p),p}})),Cp=c(o((e=>{var t=Xf(),n=yp(),r=xp(),i=Sp();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))(),1);function wp(e){return`${e.replace(/\/$/,``)}/?bootstrap=1`}async function Tp(e){return Cp.toDataURL(wp(e),{errorCorrectionLevel:`M`,margin:1,width:256})}async function Ep(e){return Cp.toDataURL(e,{errorCorrectionLevel:`M`,margin:1,width:256})}var Dp=q(`<p class="feedback svelte-1nygetn" role="status"> </p>`),Op=q(`<span class="svelte-1nygetn">At least one authorized device is required.</span>`),kp=q(`<li class="svelte-1nygetn"><form class="svelte-1nygetn"><label class="svelte-1nygetn">Nickname</label><input name="nickname" class="svelte-1nygetn"/> <p class="svelte-1nygetn"> <!><!></p> <button type="submit" class="svelte-1nygetn">Rename</button> <button type="button" class="svelte-1nygetn">Revoke</button> <!></form></li>`),Ap=q(`<ul aria-label="Authorized devices" class="svelte-1nygetn"></ul>`),jp=q(`<p role="status" class="svelte-1nygetn">No authorized devices are available. Refresh this page before making changes.</p>`),Mp=q(`<button type="button" class="svelte-1nygetn">Create enrollment link</button>`),Np=q(`<img alt="QR code for the enrollment link" class="svelte-1nygetn"/>`),Pp=q(`<p role="status" class="svelte-1nygetn"> </p> <!> <label for="enrollment-link" class="svelte-1nygetn">Enrollment link</label><textarea id="enrollment-link" readonly="" rows="3" class="svelte-1nygetn"></textarea> <div class="actions svelte-1nygetn"><button type="button" class="svelte-1nygetn">Copy enrollment link</button><button type="button" class="svelte-1nygetn">Create passkey here</button><button type="button" class="svelte-1nygetn">Cancel link</button><button type="button" class="svelte-1nygetn">Replace link</button></div>`,1),Fp=q(`<main class="devices svelte-1nygetn" aria-labelledby="devices-title"><header class="svelte-1nygetn"><button type="button" class="svelte-1nygetn">Back</button> <h1 id="devices-title" class="svelte-1nygetn">Authorized devices</h1></header> <!> <!> <section aria-labelledby="add-title" class="svelte-1nygetn"><h2 id="add-title" class="svelte-1nygetn">Authorize another device</h2> <!></section></main> <dialog aria-labelledby="revoke-title" class="svelte-1nygetn"><h2 id="revoke-title" class="svelte-1nygetn">Revoke authorized device?</h2> <p class="svelte-1nygetn">This immediately signs out sessions created by this passkey.</p> <form method="dialog" class="svelte-1nygetn"><button type="submit" class="svelte-1nygetn">Keep device</button><button type="button" class="svelte-1nygetn">Revoke device</button></form></dialog>`,1);function Ip(e,t){Qe(t,!0);let n=$(t,`oncreatepasskey`,3,()=>{}),r=I(R([])),i=I(``),a=I(null),o=I(`none`),s=I(null),c=I(null),l=I(null),u=I(null),d=I(R(Date.now())),f=P(()=>[...G(r)].sort((e,t)=>e.createdAt.localeCompare(t.createdAt))),p=P(()=>G(a)?Math.max(0,Math.ceil((Date.parse(G(a).expiresAt)-G(d))/1e3)):0),m=P(()=>`${Math.floor(G(p)/60)}:${String(G(p)%60).padStart(2,`0`)}`);function h(e){let t=e.trim();return[...t].length>=1&&[...t].length<=64}function g(){G(u)&&clearInterval(G(u)),L(u,null)}function _(){g(),L(u,setInterval(()=>void b(),15e3),!0)}function v(){return!!(G(a)&&G(o)===`pending`&&G(p)>0&&document.visibilityState===`visible`)}async function y(){try{L(r,(await t.client.list()).devices,!0)}catch{L(i,`Could not refresh authorized devices. Try again.`)}}async function b(){if(!v()){G(p)===0&&G(a)&&L(o,`expired`),g();return}try{L(o,(await t.client.ticketStatus()).status,!0),G(o)!==`pending`&&(g(),G(o)===`used`&&await y())}catch{g()}}async function x(){L(i,``);try{L(a,await t.client.createTicket(),!0),L(o,`pending`),L(s,await Ep(G(a).url),!0),L(d,Date.now(),!0),_()}catch{L(i,`Could not create an enrollment link. Try again.`)}}async function S(){try{L(o,(await t.client.cancelTicket()).status,!0),L(a,null),L(s,null),g()}catch{L(i,`Could not cancel the enrollment link. Try again.`)}}async function C(){await S(),G(i)||await x()}async function w(e,n){if(!h(n)){L(i,`Device nicknames must be 1–64 characters.`);return}L(i,``);try{await t.client.rename(e.id,n.trim()),await y()}catch{L(i,`Could not rename this device. Try again.`)}}function T(e){G(f).length>1&&(L(l,e,!0),G(c)?.showModal())}async function E(){if(G(l))try{await t.client.revoke(G(l).id),G(c)?.close(),G(l).current?t.onlock():await y()}catch{L(i,`This device could not be revoked. Try again.`)}}async function D(){if(G(a))try{await navigator.clipboard.writeText(G(a).url)}catch{L(i,`Copy is unavailable here. Select the visible link instead.`)}}function O(){document.visibilityState===`visible`&&G(o)===`pending`&&G(p)>0?(b(),_()):g()}Ri(()=>{y(),document.addEventListener(`visibilitychange`,O);let e=setInterval(()=>L(d,Date.now(),!0),1e3);return()=>clearInterval(e)}),zi(()=>{g(),document.removeEventListener(`visibilitychange`,O)});var k=Fp(),ee=B(k),te=z(ee),ne=z(te);He(2),N(te);var re=V(te,2),A=e=>{var t=Dp(),n=z(t,!0);N(t),H(()=>Y(n,G(i))),J(e,t)};X(re,e=>{G(i)&&e(A)});var ie=V(re,2),ae=e=>{var t=Ap();Z(t,21,()=>G(f),e=>e.id,(e,t)=>{var n=kp(),r=z(n),i=z(r),a=V(i);Di(a);var o=V(a,2),s=z(o),c=V(s),l=e=>{var n=Vr();H(e=>Y(n,`· Last used ${e??``}`),[()=>new Date(G(t).lastUsedAt).toLocaleDateString()]),J(e,n)};X(c,e=>{G(t).lastUsedAt&&e(l)});var u=V(c),d=e=>{J(e,Vr(`· This device`))};X(u,e=>{G(t).current&&e(d)}),N(o);var p=V(o,4),m=V(p,2),h=e=>{var n=Op();H(()=>Q(n,`id`,`final-${G(t).id}`)),J(e,n)};X(m,e=>{G(f).length===1&&e(h)}),N(r),N(n),H(e=>{Q(i,`for`,`nickname-${G(t).id}`),Q(a,`id`,`nickname-${G(t).id}`),Oi(a,G(t).nickname),Q(a,`aria-label`,`Nickname for ${G(t).nickname}`),Y(s,`Added ${e??``}`),p.disabled=G(f).length===1,Q(p,`aria-describedby`,G(f).length===1?`final-${G(t).id}`:void 0)},[()=>new Date(G(t).createdAt).toLocaleDateString()]),Nr(`submit`,r,e=>{e.preventDefault(),w(G(t),String(new FormData(e.currentTarget).get(`nickname`)??``))}),K(`click`,p,()=>T(G(t))),J(e,n)}),N(t),J(e,t)},oe=e=>{J(e,jp())};X(ie,e=>{G(f).length?e(ae):e(oe,-1)});var se=V(ie,2),ce=V(z(se),2),le=e=>{var t=Mp();K(`click`,t,()=>void x()),J(e,t)},ue=e=>{var t=Pp(),r=B(t),i=z(r,!0);N(r);var c=V(r,2),l=e=>{var t=Np();H(()=>Q(t,`src`,G(s))),J(e,t)};X(c,e=>{G(s)&&e(l)});var u=V(c,3);Sn(u);var d=V(u,2),f=z(d),p=V(f),h=V(p),g=V(h);N(d),H(()=>{Y(i,G(o)===`pending`?`Enrollment link is active for ${G(m)}.`:`Enrollment link is ${G(o)}.`),Oi(u,G(a).url)}),K(`click`,f,()=>void D()),K(`click`,p,()=>n()(G(a).ticket)),K(`click`,h,()=>void S()),K(`click`,g,()=>void C()),J(e,t)};X(ce,e=>{G(a)?e(ue,-1):e(le)}),N(se),N(ee);var de=V(ee,2),fe=V(z(de),4),pe=V(z(fe));N(fe),N(de),Li(de,e=>L(c,e),()=>G(c)),K(`click`,ne,function(...e){t.onclose?.apply(this,e)}),K(`click`,pe,()=>void E()),J(e,k),$e()}Pr([`click`]);async function Lp(e){if(e=await e,!e.ok){let t;try{let n=await e.json();typeof n==`object`&&n&&`code`in n&&typeof n.code==`string`&&(t=n.code)}catch{}throw Error(t??`AUTH_REQUEST_FAILED_${e.status}`)}if(e.status!==204)return e.json()}function Rp(e){return{list:()=>Lp(e(`/api/auth/devices`,{credentials:`same-origin`})),rename:(t,n)=>Lp(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`PATCH`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify({nickname:n})})),revoke:t=>Lp(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`DELETE`,credentials:`same-origin`})),createTicket:()=>Lp(e(`/api/auth/enrollment-tickets`,{method:`POST`,credentials:`same-origin`})),ticketStatus:()=>Lp(e(`/api/auth/enrollment-tickets/current`,{credentials:`same-origin`})),cancelTicket:()=>Lp(e(`/api/auth/enrollment-tickets/current`,{method:`DELETE`,credentials:`same-origin`}))}}var zp=`gestalt-mobile.scratchpad`;function Bp(){try{return window.localStorage}catch{return null}}function Vp(e){try{return e?.getItem(`gestalt-mobile.scratchpad`)??``}catch{return``}}function Hp(e,t){try{return e?(e.setItem(zp,t),!0):!1}catch{return!1}}function Up(e){try{return e?(e.removeItem(zp),!0):!1}catch{return!1}}var Wp=q(`<p class="feedback svelte-eu5bnq" role="status"> </p>`),Gp=q(`<section class="clear-confirmation svelte-eu5bnq" aria-labelledby="clear-scratchpad-title"><p id="clear-scratchpad-title" class="svelte-eu5bnq"><strong>Clear the entire scratchpad?</strong></p> <p class="svelte-eu5bnq">This cannot be undone.</p> <div class="actions svelte-eu5bnq"><button type="button" class="svelte-eu5bnq">Keep text</button> <button type="button" class="danger svelte-eu5bnq">Clear all</button></div></section>`),Kp=q(`<footer class="actions svelte-eu5bnq"><button type="button" class="svelte-eu5bnq">Paste</button> <button type="button" class="svelte-eu5bnq">Select all</button> <button type="button" class="danger svelte-eu5bnq">Clear</button> <button type="button" class="svelte-eu5bnq">Close</button></footer>`),qp=q(`<dialog aria-labelledby="scratchpad-title" class="svelte-eu5bnq"><section class="scratchpad-shell svelte-eu5bnq"><header class="svelte-eu5bnq"><div><h2 id="scratchpad-title" class="svelte-eu5bnq">Scratchpad</h2> <p id="scratchpad-help" class="svelte-eu5bnq">Saved automatically in this browser.</p></div> <button type="button" class="close svelte-eu5bnq" aria-label="Close scratchpad">×</button></header> <label for="scratchpad-text" class="svelte-eu5bnq">Scratchpad text</label> <textarea id="scratchpad-text" aria-describedby="scratchpad-help" class="svelte-eu5bnq"></textarea> <!> <!></section></dialog>`);function Jp(e,t){Qe(t,!0);let n=$(t,`storage`,19,Bp),r=$(t,`clipboard`,19,()=>globalThis.navigator?.clipboard),i=I(null),a=I(null),o=I(null),s=I(``),c=I(!1),l=I(``);Ri(async()=>{L(s,Vp(n()),!0),await Cr(),G(i)?.showModal(),G(a)?.focus()});function u(e){L(s,e,!0),L(l,Hp(n(),e)?``:`This browser could not save the scratchpad. Keep this window open until you copy the text.`,!0)}async function d(){if(!r()?.readText){L(l,`Clipboard paste is unavailable here. Long-press the text field and choose Paste.`),G(a)?.focus();return}try{let e=await r().readText(),t=G(a)?.selectionStart??G(s).length,n=G(a)?.selectionEnd??G(s).length;u(`${G(s).slice(0,t)}${e}${G(s).slice(n)}`),await Cr();let i=t+e.length;G(a)?.focus(),G(a)?.setSelectionRange(i,i)}catch{L(l,`Clipboard paste was not permitted. Long-press the text field and choose Paste.`),G(a)?.focus()}}async function f(){L(c,!0),L(l,``),await Cr(),G(o)?.focus()}function p(){L(c,!1),G(a)?.focus()}function m(){if(!Up(n())){L(l,`This browser could not clear its saved scratchpad.`);return}L(s,``),L(c,!1),L(l,``),G(a)?.focus()}var h=qp(),g=z(h),_=z(g),v=V(z(_),2);N(_);var y=V(_,4);Sn(y),Li(y,e=>L(a,e),()=>G(a));var b=V(y,2),x=e=>{var t=Wp(),n=z(t,!0);N(t),H(()=>Y(n,G(l))),J(e,t)};X(b,e=>{G(l)&&e(x)});var S=V(b,2),C=e=>{var t=Gp(),n=V(z(t),4),r=z(n);Li(r,e=>L(o,e),()=>G(o));var i=V(r,2);N(n),N(t),K(`click`,r,p),K(`click`,i,m),J(e,t)},w=e=>{var t=Kp(),n=z(t),r=V(n,2),o=V(r,2),c=V(o,2);N(t),H(()=>o.disabled=!G(s)),K(`click`,n,()=>void d()),K(`click`,r,()=>G(a)?.select()),K(`click`,o,()=>void f()),K(`click`,c,()=>G(i)?.close()),J(e,t)};X(S,e=>{G(c)?e(C):e(w,-1)}),N(g),N(h),Li(h,e=>L(i,e),()=>G(i)),H(()=>Oi(y,G(s))),Nr(`close`,h,function(...e){t.onclose?.apply(this,e)}),K(`click`,v,()=>G(i)?.close()),K(`input`,y,e=>u(e.currentTarget.value)),J(e,h),$e()}Pr([`click`,`input`]);var Yp=q(`<button class="disclosure svelte-am0nvt" type="button"> </button>`),Xp=q(`<span class="disclosure svelte-am0nvt"></span>`),Zp=q(`<span class="unsupported svelte-am0nvt">Files cannot be destinations</span>`),Qp=q(`<span class="unsupported svelte-am0nvt">Unsupported link</span>`),$p=q(`<span role="status">Loading…</span>`),em=q(`<button type="button" class="svelte-am0nvt"> </button>`),tm=q(`<div role="group"><!> <!> <!> <!></div>`),nm=q(`<div role="treeitem"><div class="tree-row svelte-am0nvt" role="presentation"><!> <span class="tree-label svelte-am0nvt"> </span><!></div> <!></div>`),rm=q(`<p role="status">Loading files…</p>`),im=q(`<button type="button" class="svelte-am0nvt">Retry loading files</button>`),am=q(`<button type="button" class="svelte-am0nvt">Load more in root</button>`),om=q(`<div class="file-tree svelte-am0nvt" role="tree" aria-label="Files"><!> <!> <!> <!></div>`);function sm(e,t){Qe(t,!0);let n=$(t,`destinationMode`,3,!1),r=$(t,`ondestinationselect`,3,()=>{}),i=$(t,`onselectionchange`,3,()=>{}),a=R({}),o=I(``),s=P(()=>t.revision<0?{entries:[],loading:!1,error:!1}:t.controller.state(``)),c=P(()=>{if(t.revision<0)return[];let e=[],n=(r,i)=>{for(let a of t.controller.state(r).entries)e.push({entry:a,level:i,parent:r}),a.kind===`directory`&&t.controller.expanded.has(a.path)&&n(a.path,i+1)};return n(``,1),e});function l(e){L(o,e,!0),a[e]?.focus()}function u(e){t.controller.expanded.has(e.path)?t.controller.collapse(e.path):t.controller.expand(e.path)}function d(e,n,r){let i=n.entry,a=n.parent,o=e=>{let t=G(c)[Math.max(0,Math.min(G(c).length-1,e))];t&&l(t.entry.path)};switch(e.key){case`ArrowDown`:e.preventDefault(),o(r+1);break;case`ArrowUp`:e.preventDefault(),o(r-1);break;case`Home`:e.preventDefault(),o(0);break;case`End`:e.preventDefault(),o(G(c).length-1);break;case`ArrowRight`:i.kind===`directory`&&(e.preventDefault(),t.controller.expanded.has(i.path)?o(r+1):u(i));break;case`ArrowLeft`:e.preventDefault(),i.kind===`directory`&&t.controller.expanded.has(i.path)?t.controller.collapse(i.path):a&&l(a);break;case`Enter`:case` `:e.preventDefault(),f(i);break}}function f(e){if(e.kind!==`symlink`){if(n()){e.kind===`directory`&&r()(e.path);return}t.controller.select(e.path),i()(e.path)}}var p=om();{let e=(r,i=b,s=b)=>{var l=Hr();Z(B(l),17,()=>t.controller.state(i()).entries,e=>e.path,(r,i)=>{let l=P(()=>G(i).kind===`directory`),p=P(()=>G(c).find(e=>e.entry.path===G(i).path)),m=P(()=>G(c).findIndex(e=>e.entry.path===G(i).path));var h=nm();let g;var _=z(h);let v;var y=z(_),b=e=>{var n=Yp(),r=z(n,!0);N(n),H((e,t)=>{Q(n,`aria-label`,e),Y(r,t)},[()=>`${t.controller.expanded.has(G(i).path)?`Collapse`:`Expand`} ${G(i).name}`,()=>t.controller.expanded.has(G(i).path)?`−`:`+`]),K(`click`,n,e=>{e.stopPropagation(),u(G(i))}),J(e,n)},x=e=>{J(e,Xp())};X(y,e=>{G(l)?e(b):e(x,-1)});var S=V(y,2),C=z(S,!0);N(S);var w=V(S),T=e=>{J(e,Zp())},E=e=>{var t=Qp();H(()=>Q(t,`id`,`${G(i).path}-unsupported`)),J(e,t)};X(w,e=>{n()&&!G(l)?e(T):G(i).kind===`symlink`&&e(E,1)}),N(_);var D=V(_,2),O=n=>{let r=P(()=>t.controller.state(G(i).path));var a=tm(),o=z(a),c=e=>{J(e,$p())};X(o,e=>{G(r).loading&&e(c)});var l=V(o,2),u=e=>{var n=em(),r=z(n);N(n),H(()=>Y(r,`Retry ${G(i).name??``}`)),K(`click`,n,()=>void t.controller.load(G(i).path)),J(e,n)};X(l,e=>{G(r).error&&e(u)});var d=V(l,2);e(d,()=>G(i).path,()=>s()+1);var f=V(d,2),p=e=>{var n=em(),r=z(n);N(n),H(()=>Y(r,`Load more in ${G(i).name??``}`)),K(`click`,n,()=>void t.controller.load(G(i).path,!0)),J(e,n)};X(f,e=>{G(r).cursor&&e(p)}),N(a),H(()=>Q(a,`aria-label`,`Contents of ${G(i).name}`)),J(n,a)},k=P(()=>G(l)&&t.controller.expanded.has(G(i).path));X(D,e=>{G(k)&&e(O)}),N(h),Li(h,(e,t)=>a[t.path]=e,e=>a?.[e.path],()=>[G(i)]),H(e=>{g=gi(h,1,`treeitem svelte-am0nvt`,null,g,{symlink:G(i).kind===`symlink`}),Q(h,`aria-level`,s()),Q(h,`aria-expanded`,e),Q(h,`aria-selected`,G(i).kind===`symlink`?`false`:t.controller.selectedPath===G(i).path),Q(h,`aria-disabled`,G(i).kind===`symlink`),Q(h,`aria-describedby`,G(i).kind===`symlink`?`${G(i).path}-unsupported`:void 0),Q(h,`tabindex`,G(o)===G(i).path||!G(o)&&G(m)===0?0:-1),v=vi(_,``,v,{"--level":s()}),Y(C,G(i).name)},[()=>G(l)?t.controller.expanded.has(G(i).path):void 0]),Nr(`focus`,h,()=>L(o,G(i).path,!0)),K(`keydown`,h,e=>d(e,G(p),G(m))),K(`click`,h,()=>f(G(i))),J(r,h)}),J(r,l)};var m=z(p),h=e=>{J(e,rm())};X(m,e=>{G(s).loading&&e(h)});var g=V(m,2),_=e=>{var n=im();K(`click`,n,()=>void t.controller.load(``)),J(e,n)};X(g,e=>{G(s).error&&e(_)});var v=V(g,2);e(v,()=>``,()=>1);var y=V(v,2),x=e=>{var n=am();K(`click`,n,()=>void t.controller.load(``,!0)),J(e,n)};X(y,e=>{G(s).cursor&&e(x)}),N(p)}J(e,p),$e()}Pr([`keydown`,`click`]);var cm=class{workspaceId;read;changed;failed;expanded=new Set([``]);selectedPath=``;pages=new Map;generations=new Map;requests=new Map;version=0;constructor(e,t,n,r=()=>{}){this.workspaceId=e,this.read=t,this.changed=n,this.failed=r}state(e){return this.pages.get(e)??{entries:[],loading:!1,error:!1}}async load(e=``,t=!1){let n=this.state(e);if(n.loading||t&&!n.cursor)return;let r=(this.generations.get(e)??0)+1;this.generations.set(e,r),this.requests.get(e)?.abort();let i=new AbortController;this.requests.set(e,i),this.pages.set(e,{...n,loading:!0,error:!1}),this.publish();try{let a=await this.read(this.workspaceId,{directory:e,...t?{cursor:n.cursor}:{}},i.signal);if(i.signal.aborted||this.generations.get(e)!==r)return;let o=t?lm(n.entries,a.entries):a.entries;this.pages.set(e,{entries:o,cursor:a.nextCursor,loading:!1,error:!1})}catch(t){if(i.signal.aborted||this.generations.get(e)!==r)return;this.pages.set(e,{...n,loading:!1,error:!0}),this.failed(t)}finally{this.requests.get(e)===i&&this.requests.delete(e),this.publish()}}async expand(e){this.expanded.add(e),this.publish(),this.pages.has(e)||await this.load(e)}collapse(e){this.expanded.delete(e),this.generations.set(e,(this.generations.get(e)??0)+1),this.requests.get(e)?.abort(),this.publish()}async refresh(e=``){this.invalidateBranch(e),await this.load(e)}select(e){this.selectedPath=e,this.publish()}close(){this.requests.forEach(e=>e.abort()),this.requests.clear()}invalidateBranch(e){for(let t of[...this.pages.keys()])(t===e||t.startsWith(e?`${e}/`:``))&&(this.pages.delete(t),this.generations.set(t,(this.generations.get(t)??0)+1),this.requests.get(t)?.abort())}publish(){this.version+=1,this.changed()}};function lm(e,t){let n=new Set(e.map(e=>e.path));return[...e,...t.filter(e=>!n.has(e.path))]}var um=25*1024*1024;function dm(e){return[...e].map(e=>({file:e,status:e.size>26214400?`too-large`:`queued`}))}function fm(e){return e.findIndex(e=>e.status===`queued`)}var pm={phase:`idle`};function mm(e,t){return{phase:`picking`,kind:e,source:t}}function hm(e,t){return e.phase===`picking`?{...e,destination:t}:e}function gm(e){return e.phase!==`picking`||e.destination===void 0?e:{...e,phase:`submitting`}}function _m(e,t){return e.phase===`submitting`?{...e,phase:`conflict`,replaceAllowed:t}:e}function vm(e){return e.phase===`submitting`?{...e,phase:`failed`}:e}function ym(e,t){return e.phase!==`picking`||!e.source||e.kind===`move`&&bm(e.source)===t?!1:!(t===e.source||t.startsWith(`${e.source}/`))}function bm(e){let t=e.lastIndexOf(`/`);return t<0?``:e.slice(0,t)}var xm=q(`<li> </li>`),Sm=q(`<button type="button" class="svelte-qx7639">Replace</button>`),Cm=q(`<div class="browser-actions svelte-qx7639" aria-label="Upload conflict"><!> <button type="button" class="svelte-qx7639">Keep both</button> <button type="button" class="svelte-qx7639">Cancel remaining</button></div>`),wm=q(`<button type="button" class="svelte-qx7639">Cancel uploads</button>`),Tm=q(`<section class="picker svelte-qx7639" aria-label="Upload queue" aria-live="polite"><p class="svelte-qx7639"> </p> <ul></ul> <!></section>`),Em=q(`<div class="browser-actions svelte-qx7639" aria-label="Selected file actions"><button type="button" class="svelte-qx7639">Copy</button> <button type="button" class="svelte-qx7639">Move</button> <button type="button" class="svelte-qx7639">Delete</button></div>`),Dm=q(`<section class="picker svelte-qx7639" aria-label="Delete confirmation" aria-live="assertive"><h3> </h3> <p class="svelte-qx7639"> </p> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Cancel</button> <button type="button" class="svelte-qx7639"> </button></div></section>`),Om=q(`<section class="picker svelte-qx7639" aria-label="Choose destination folder" aria-live="polite"><p class="svelte-qx7639"><strong> </strong> </p> <p class="svelte-qx7639"> </p> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Use root folder</button> <button type="button" class="svelte-qx7639"> </button> <button type="button" class="svelte-qx7639">Cancel</button></div></section>`),km=q(`<section class="picker svelte-qx7639" tabindex="-1" aria-label="File conflict" aria-live="assertive"><h3>Destination already contains this item</h3> <p class="svelte-qx7639"> </p> <div class="browser-actions svelte-qx7639"><!> <button type="button" class="svelte-qx7639">Keep both</button> <button type="button" class="svelte-qx7639">Cancel</button></div></section>`),Am=q(`<section class="picker svelte-qx7639" aria-label="Transfer failed"><p role="status" class="svelte-qx7639">Transfer could not be completed.</p> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Try again</button><button type="button" class="svelte-qx7639">Cancel</button></div></section>`),jm=q(`<section aria-label="File browser error"><p class="svelte-qx7639">Files could not be read. Try again.</p></section>`),Mm=q(`<p role="status" class="svelte-qx7639">This folder is empty.</p>`),Nm=q(`<dialog aria-labelledby="file-browser-title" class="svelte-qx7639"><section class="file-browser-shell svelte-qx7639"><header class="svelte-qx7639"><div class="svelte-qx7639"><h2 id="file-browser-title" tabindex="-1" class="svelte-qx7639"> </h2> <p class="svelte-qx7639"> </p></div> <button type="button" class="close svelte-qx7639" aria-label="Close file browser">×</button></header> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Refresh</button></div> <div class="upload-actions svelte-qx7639"><input class="visually-hidden svelte-qx7639" type="file" multiple="" aria-label="Choose files to upload"/> <p class="svelte-qx7639"> </p> <button type="button" class="svelte-qx7639">Upload files</button></div> <!> <!> <!> <!> <!> <!></section></dialog>`);function Pm(e,t){Qe(t,!0);let n=$(t,`onsuccess`,3,()=>{}),r=$(t,`onmutation`,3,()=>{}),i=I(null),a=I(null),o=I(0),s=I(null),c=I(R(pm)),l=I(null),u=I(``),d=I(!1),f=I(!1),p=I(null),m=I(null),h=I(R([])),g=I(!1),_=I(null),v=I(null),y=P(()=>G(o)<0?{entries:[],loading:!1,error:!1}:G(s)?.state(``)??{entries:[],loading:!0,error:!1}),b=P(()=>{if(!G(s)||!G(u))return;let e=G(u).includes(`/`)?G(u).slice(0,G(u).lastIndexOf(`/`)):``;return G(s).state(e).entries.find(e=>e.path===G(u))}),x=P(()=>`Files in ${t.root.relativePath===`.`?`~/`:`~/${t.root.relativePath}`}`);Ri(async()=>{L(s,new cm(t.root.id,t.listDirectory,()=>{L(o,G(o)+1)},t.onerror),!0),await Cr(),G(i)?.showModal(),G(a)?.focus(),await G(s).load()}),zi(()=>G(s)?.close());function S(){G(c).phase===`submitting`||G(f)||(G(_)?.abort(),G(s)?.close(),G(i)?.close())}let C=P(()=>G(b)?.kind===`directory`||!G(u)?G(u):``),w=P(()=>G(C)||``);async function T(e=`reject`){if(!(G(g)||!G(s))){L(g,!0);try{for(;;){let n=G(v)?.index??fm(G(h));if(L(v,null),n<0)break;let i=G(h)[n];if(!i||i.status===`too-large`)continue;L(h,G(h).map((e,t)=>t===n?{...e,status:`uploading`}:e),!0);let a=new AbortController;L(_,a,!0);try{let o=await t.uploadFile(t.root.id,{directory:G(w),filename:i.file.name,conflict:e,file:i.file},Va(),a.signal);L(h,G(h).map((e,t)=>t===n?{...e,status:`completed`,path:o.path}:e),!0),await G(s).refresh(G(w)),G(s).select(G(w)),L(u,G(w),!0),r()(),e=`reject`}catch(e){let r=e;if(r.status===409){L(h,G(h).map((e,t)=>t===n?{...e,status:`queued`}:e),!0),L(v,{index:n,replaceAllowed:r.replaceAllowed===!0},!0);break}L(h,G(h).map((e,t)=>t===n?{...e,status:a.signal.aborted?`cancelled`:`failed`}:e),!0),t.onerror(e)}finally{L(_,null)}}}finally{L(g,!1);let e=G(h).filter(e=>e.status===`completed`).length;e&&n()(`Uploaded ${e} file${e===1?``:`s`}.`)}}}function E(e){!e||e.length===0||(L(h,dm(e),!0),T())}function D(){G(_)?.abort(),L(h,G(h).map(e=>e.status===`queued`||e.status===`uploading`?{...e,status:`cancelled`}:e),!0),L(v,null)}function O(e){if(G(c).phase===`submitting`||G(f)){e.preventDefault();return}e.preventDefault(),S()}async function k(){if(!(!G(u)||G(f))){L(f,!0);try{let e=G(u).includes(`/`)?G(u).slice(0,G(u).lastIndexOf(`/`)):``;await t.deleteEntry(t.root.id,G(u),Va()),await G(s)?.refresh(e),G(s)?.select(e),L(u,e,!0),n()(`Deleted item.`),r()(),L(d,!1)}catch(e){t.onerror(e)}finally{L(f,!1)}}}async function ee(){L(d,!0),await Cr(),G(p)?.focus()}function te(e){G(u)&&L(c,mm(e,G(u)),!0)}function ne(e){ym(G(c),e)&&L(c,hm(G(c),e),!0)}async function re(e=`reject`){if(!G(s)||G(c).phase!==`picking`&&G(c).phase!==`conflict`)return;let i=G(c).phase===`picking`?gm(G(c)):{...G(c),phase:`submitting`};if(!(!i.source||i.destination===void 0||!i.kind)){L(c,i,!0);try{let a=await(i.kind===`copy`?t.copyEntry:t.moveEntry)(t.root.id,{source:i.source,destinationDirectory:i.destination,conflict:e},Va()),o=i.source.includes(`/`)?i.source.slice(0,i.source.lastIndexOf(`/`)):``;i.kind===`copy`?await G(s).refresh(i.destination):await Promise.all([G(s).refresh(o),G(s).refresh(i.destination)]),G(s).select(a.path),n()(`${i.kind===`copy`?`Copied`:`Moved`} ${a.path}.`),r()(),L(c,pm,!0)}catch(e){let n=e;n.status===409?(L(c,_m(i,n.replaceAllowed===!0),!0),await Cr(),G(l)?.focus()):(L(c,vm(i),!0),t.onerror(e))}}}var A=Nm(),ie=z(A),ae=z(ie),oe=z(ae),se=z(oe),ce=z(se,!0);N(se),Li(se,e=>L(a,e),()=>G(a));var le=V(se,2),ue=z(le,!0);N(le),N(oe);var de=V(oe,2);N(ae);var fe=V(ae,2),pe=z(fe);N(fe);var me=V(fe,2),he=z(me);Li(he,e=>L(m,e),()=>G(m));var ge=V(he,2),_e=z(ge);N(ge);var ve=V(ge,2);N(me);var ye=V(me,2),be=e=>{var t=Tm(),n=z(t),r=z(n);N(n);var i=V(n,2);Z(i,21,()=>G(h),e=>e.file,(e,t)=>{var n=xm(),r=z(n);N(n),H(()=>Y(r,`${G(t).file.name??``}: ${G(t).path??G(t).status??``}${G(t).status===`too-large`?` (maximum ${um/1024/1024} MiB)`:``}`)),J(e,n)}),N(i);var a=V(i,2),o=e=>{var t=Cm(),n=z(t),r=e=>{var t=Sm();K(`click`,t,()=>void T(`replace`)),J(e,t)};X(n,e=>{G(v).replaceAllowed&&e(r)});var i=V(n,2),a=V(i,2);N(t),K(`click`,i,()=>void T(`keep-both`)),K(`click`,a,D),J(e,t)},s=e=>{var t=wm();K(`click`,t,D),J(e,t)};X(a,e=>{G(v)?e(o):G(g)&&e(s,1)}),N(t),H((e,t)=>Y(r,`${e??``} queued, ${t??``} completed`),[()=>G(h).filter(e=>e.status===`queued`).length,()=>G(h).filter(e=>e.status===`completed`).length]),J(e,t)};X(ye,e=>{G(h).length&&e(be)});var xe=V(ye,2),Se=e=>{var t=Em(),n=z(t),r=V(n,2),i=V(r,2);N(t),K(`click`,n,()=>te(`copy`)),K(`click`,r,()=>te(`move`)),K(`click`,i,()=>void ee()),J(e,t)};X(xe,e=>{G(s)&&G(c).phase===`idle`&&G(b)&&G(b).kind!==`symlink`&&e(Se)});var Ce=V(xe,2),we=e=>{var t=Dm(),n=z(t),r=z(n,!0);N(n);var i=V(n,2),a=z(i,!0);N(i);var o=V(i,2),s=z(o);Li(s,e=>L(p,e),()=>G(p));var c=V(s,2),l=z(c,!0);N(c),N(o),N(t),H(()=>{Y(r,G(b).kind===`directory`?`Delete folder and all contents`:`Delete file`),Y(a,G(u)),s.disabled=G(f),c.disabled=G(f),Y(l,G(f)?`Deleting…`:`Delete`)}),K(`click`,s,()=>L(d,!1)),K(`click`,c,()=>void k()),J(e,t)};X(Ce,e=>{G(d)&&G(b)&&e(we)});var Te=V(Ce,2),Ee=e=>{var t=Om(),n=z(t),r=z(n),i=z(r);N(r);var a=V(r);N(n);var o=V(n,2),s=z(o);N(o);var l=V(o,2),u=z(l),d=V(u,2),f=z(d);N(d);var p=V(d,2);N(l),N(t),H(e=>{Y(i,`${G(c).kind===`copy`?`Copy`:`Move`}:`),Y(a,` ${G(c).source??``}`),Y(s,`Destination: ${(G(c).destination===``?`root folder`:G(c).destination??`choose a folder`)??``}`),u.disabled=e,d.disabled=G(c).destination===void 0,Y(f,`Confirm ${G(c).kind??``}`)},[()=>!ym(G(c),``)]),K(`click`,u,()=>ne(``)),K(`click`,d,()=>void re()),K(`click`,p,()=>L(c,pm,!0)),J(e,t)},De=e=>{var t=km(),n=V(z(t),2),r=z(n,!0);N(n);var i=V(n,2),a=z(i),o=e=>{var t=Sm();K(`click`,t,()=>void re(`replace`)),J(e,t)};X(a,e=>{G(c).replaceAllowed&&e(o)});var s=V(a,2),u=V(s,2);N(i),N(t),Li(t,e=>L(l,e),()=>G(l)),H(()=>Y(r,G(c).destination)),K(`click`,s,()=>void re(`keep-both`)),K(`click`,u,()=>L(c,pm,!0)),J(e,t)},Oe=e=>{var t=Am(),n=V(z(t),2),r=z(n),i=V(r);N(n),N(t),K(`click`,r,()=>L(c,{...G(c),phase:`picking`},!0)),K(`click`,i,()=>L(c,pm,!0)),J(e,t)};X(Te,e=>{G(c).phase===`picking`?e(Ee):G(c).phase===`conflict`?e(De,1):G(c).phase===`failed`&&e(Oe,2)});var ke=V(Te,2),Ae=e=>{J(e,jm())},je=e=>{J(e,Mm())};X(ke,e=>{G(s)&&!G(y).loading&&G(y).error?e(Ae):G(s)&&!G(y).loading&&G(y).entries.length===0&&e(je,1)});var Me=V(ke,2),Ne=e=>{var t=Hr();Yr(B(t),()=>G(o),e=>{{let t=P(()=>G(c).phase===`picking`);sm(e,{get controller(){return G(s)},get revision(){return G(o)},get destinationMode(){return G(t)},ondestinationselect:ne,onselectionchange:e=>L(u,e,!0)})}}),J(e,t)};X(Me,e=>{G(s)&&e(Ne)}),N(ie),N(A),Li(A,e=>L(i,e),()=>G(i)),H(()=>{Y(ce,G(x)),Y(ue,G(c).phase===`picking`?`Choose destination folder.`:`Browse folders and select a position.`),pe.disabled=G(y).loading,Y(_e,`Upload destination: ${(G(b)?.kind===`file`?`Select a folder first`:G(u)||`root folder`)??``}`),ve.disabled=G(b)?.kind===`file`||G(g)}),Nr(`close`,A,function(...e){t.onclose?.apply(this,e)}),Nr(`cancel`,A,O),K(`click`,de,S),K(`click`,pe,()=>void G(s)?.refresh()),K(`change`,he,e=>E(e.currentTarget.files)),K(`click`,ve,()=>G(m)?.click()),J(e,A),$e()}Pr([`click`,`change`]);var Fm=q(`<main class="evidence-mode svelte-1d2e8zz"><!></main>`),Im=q(`<span class="detached-chat-model svelte-1d2e8zz"> </span>`),Lm=q(`<header class="detached-chat-header svelte-1d2e8zz"><div class="detached-chat-context svelte-1d2e8zz"><span class="svelte-1d2e8zz">Chat</span> <strong class="svelte-1d2e8zz"> </strong></div> <!></header>`),Rm=q(`<div class="recovery-notice" role="status" aria-live="polite" aria-atomic="true"><span> </span> <button type="button">Dismiss</button></div>`),zm=q(`<!> <!> <div class="chat-controls svelte-1d2e8zz" aria-label="Chat controls"><!> <!></div> <div class="chat-tail svelte-1d2e8zz" aria-hidden="true"></div>`,1),Bm=q(`<p> </p>`),Vm=q(`<section class="chat-view svelte-1d2e8zz" aria-labelledby="chat-title"><h2 id="chat-title" class="visually-hidden">Chat</h2> <!> <!> <p class="visually-hidden" aria-live="polite" aria-atomic="true"> </p> <!></section>`),Hm=q(`<p>Loading skill profiles…</p>`),Um=q(`<section class="session-profile-manager" aria-labelledby="session-profile-manager-title"><div class="session-profile-manager-header svelte-1d2e8zz"><h2 id="session-profile-manager-title" tabindex="-1" class="svelte-1d2e8zz">Manage skill profiles</h2> <button type="button" class="close-profile-manager svelte-1d2e8zz" aria-label="Close skill profile editor">×</button></div> <!></section>`),Wm=q(`<!> <!> <!> <!>`,1),Gm=q(`<main class="swipe-surface svelte-1d2e8zz"><!> <!> <!> <!></main> <!>`,1);function Km(e,t){Qe(t,!0);let n=$(t,`oncreatepasskey`,3,()=>{}),r=Hc(location.search),i=I(null),a=I(R(r?`chat`:`sessions`)),o=I(!1),s=I(!1),c=I(null),l=I(null),u=!1,d=I(`Loading relay…`),f=I(R(Er(()=>t.theme))),p=I(R([])),m=`gpt-5.6-terra`,h=I([m]),g=I(m),_=I([]),v=I(null),y=I(`list`),b=I([]),x=I(``),S=I(``),C=I(``),w=I(R(new Set)),T=I(null),E=I(R([])),D=I(new Map),O=I({snapshots:new Map,attention:new Map,pending:new Set,errors:new Map}),k=I(new Map),ee=0,te=null,ne=P(()=>G(E).some(e=>e.id===G(T))),re=I(R([])),A=I(`workspace-write`),ie=I(`on-request`),ae=I(R({starting:!1,error:null})),oe=P(()=>G(ae).starting),se=I(null),ce=0,le=I(null),ue=I(null),de=I(null),fe=I(``),pe=I(R({kind:`unavailable`,sessionId:null})),me=I({kind:`no-workspace`}),he=I(null),ge=I(null),_e=I(!1),ve=null,ye=null,be=0,xe=0,Se=I(null),Ce=P(()=>(G(E).find(e=>e.id===G(T))?.workspaceId??G(C))||null),we=P(()=>G(E).find(e=>e.id===G(T))?.workspacePath??null),Te=P(()=>G(E).find(e=>e.id===G(T))??null),Ee=P(()=>nf(G(Te)?.workspacePath??``));function De(e){return`kind`in e&&e.kind===`org-source`}function Oe(e){return r?e.filter(e=>e.id===G(T)):e}let ke=P(()=>G(he)&&De(G(he))?G(he):G(he)?{kind:`ready`,sessionId:`catalog`,plan:G(he)}:G(_e)?null:G(pe).kind===`ready`||G(pe).kind===`closing`||G(pe).kind===`error`&&G(pe).plan?G(pe):null),Ae=P(()=>Bu(G(pe).kind===`ready`||G(pe).kind===`closing`||G(pe).kind===`error`?G(pe).plan:void 0)),je=I(R({workspaceId:null,summary:null,loading:!1,refreshing:!1,checkingOut:!1,error:null})),Me=P(()=>G(je).workspaceId),Ne=I(R(new Set)),Pe=I(!1),Fe=I(!1),Ie=I(null),Le=I(null),Re=I(null),j=R({}),ze=I({}),M=I(null),Be=``,Ve=new Pl({requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e),reducedMotion:()=>window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,scrollTail:e=>G(M)?.scrollIntoView({block:`end`,behavior:e})}),He=new Fl(e=>void Cr().then(e),e=>{G(a)===`chat`&&Ve.request(e)}),Ue=P(()=>{let e=G(i)?.interactions.findLast(e=>e.state!==`pending`);return e?e.state===`submitting`?`Sending decision.`:e.state===`failed`?`Could not send decision. Retry is available.`:e.state===`resolved`?e.attemptedOutcome===`denied`?`Decision denied.`:e.attemptedOutcome===`dismissed`?`Request is no longer awaiting a response.`:e.attemptedOutcome===`answered`?`Answers sent.`:`Decision approved.`:``:``}),We=Au((e,n)=>t.authorizedFetch(e,n)),Ge=new Ja(We,e=>L(O,e)),Ke=new Ba({relay:We,publish:e=>L(D,new Map(e)),onEvent:(e,t)=>Ge.observe(e,t),onAuthoritativeSnapshot:(e,t)=>Ge.applyAuthoritative(e,t)}),qe=new Ml({relay:We,cache:Bc(),publish:e=>L(i,e,!0),onSessionEvent:e=>yn(e),onRelayEvent:e=>{G(T)&&Ke.observe(G(T),e)},onHistoryError:e=>{L(d,gn(e,`SESSION_HISTORY_READ_FAILED`),!0)},onSendError:(e,t)=>{let n=Ll(e,`MESSAGE_SEND_FAILED`);L(le,n.message,!0),L(ue,n.retryable?t:null,!0),L(d,gn(e,`MESSAGE_SEND_FAILED`),!0)},onSendAccepted:e=>{G(ue)===e&&(L(le,null),L(ue,null))}}),Je=new Ef({start:We.startSession},Va,e=>L(ae,e,!0)),Ye=new Cu({getSummary:We.getGitSummary,pull:We.pullGit,checkout:We.checkoutGitBranch},e=>!!Zl(G(p),e)?.isGitRepository,e=>L(je,e,!0),(e,t)=>gn(e,t)),Xe=Rp((e,n)=>t.authorizedFetch(e,n)),Ze=zu({getPlan:We.getPlan,closePlan:We.closePlan},e=>{L(pe,e,!0),(e.kind===`ready`||e.kind===`closing`)&&L(E,G(E).map(t=>t.id===e.sessionId?{...t,plan:e.plan}:t),!0)}),et=Zd(),tt=zl(),nt=new URLSearchParams(location.search).get(`tree-evidence`),rt=new URLSearchParams(location.search).get(`toast-evidence`),it=new URLSearchParams(location.search).get(`activity-evidence`),at=ro(window.sessionStorage),ot=new Set;Mn(()=>{for(let[e,t]of G(O).attention){let n=`${e}:${t.requestId}`;at.claim(n)&&tt.enqueue({kind:`error`,code:`AUTOPILOT_ATTENTION_${t.requestId}`,message:`Autopilot needs your attention.`})}}),Mn(()=>{let e=new Set;for(let[t,n]of G(O).errors){let r=`${t}:${n}`;e.add(r),!ot.has(r)&&(ot.add(r),tt.enqueue({kind:`error`,message:n}))}for(let t of ot)e.has(t)||ot.delete(t)});function st(){L(s,!0)}function ct(){L(s,!1),Cr().then(()=>document.querySelector(`.menu-trigger`)?.focus())}Ri(async()=>{if(!(nt===`sessions`||nt===`git`||rt===`error`||rt===`stacked`))try{let e=await kc(t.authorizedFetch);L(C,Ql(G(C)||null,G(p),e.workspaces,Kl.sessionBase)??``,!0),L(p,e.workspaces,!0),L(_,e.profiles),L(h,[...new Set([m,...e.models??[]])]),r||await Kt(),L(w,ql(G(p)),!0),L(Ne,ql(G(p)),!0);let n=r?null:await et.readSelectedSession();L(T,r?e.sessions.find(e=>e.id===r)?.id??null:e.sessions.some(e=>e.id===n)?n:e.sessions[0]?.id??null,!0),G(T)&&L(fe,await et.readDraft(G(T)),!0),L(E,e.sessions,!0);let i=Oe(e.sessions.filter(e=>[`ready`,`turnActive`].includes(e.state)));Ke.bootstrap(i,G(T)),Ge.bootstrap(i),r||vt(),Ze.select(G(T)),G(T)?qe.select(G(T)):r&&L(d,`This session is no longer open in Gestalt Mobile.`)}catch(e){L(d,gn(e,`RELAY_UNAVAILABLE`),!0)}}),Mn(()=>{if(!G(M))return;let e=new IntersectionObserver(([e])=>Ve.observeTail(e?.isIntersecting??!1),{root:null});return e.observe(G(M)),()=>e.disconnect()}),Mn(()=>{let e=G(i),t=G(a),n=e?JSON.stringify({messages:e.messages.map(({id:e,text:t,complete:n})=>[e,t,n]),activities:e.activities.map(({id:e,label:t,detail:n})=>[e,t,n]),interactions:e.interactions.map(({key:e,state:t,attemptedOutcome:n})=>[e,t,n])}):``;!n||n===Be||(Be=n,t===`chat`&&lt(`content`))});function lt(e){He.schedule(e)}function ut(){He.invalidate(),Ve.reset(),L(a,`chat`),Xt(`chat`),lt(`initial`),Zt()}function dt(e){L(f,$i(e),!0)}function ft(){if(!G(T))return;let e=window.open(Uc(location.href,G(T)),Wc(G(T)),`popup,width=760,height=900`);if(!e){tt.enqueue({kind:`error`,message:`The Chat window was blocked. Allow pop-ups for this site and try again.`});return}try{e.opener=null}catch{}e.focus()}zi(()=>{He.invalidate(),Ve.cancel(),qe.dispose(),Ke.dispose(),Ge.dispose(),Ze.dispose(),Ye.dispose(),Je.dispose(),G(v)?.dispose()});async function pt(){if(!G(C)||G(oe))return;let e=Tf({workspaceId:G(C),profile:`default`,profileState:`ok`});if(e.profile){L(d,e.profile,!0);return}L(d,`Starting session…`);let t=await Je.start(G(C),{sandbox:G(A),approvalPolicy:G(ie),model:G(g),skillProfile:G(x)||void 0});if(!t){G(ae).error&&L(d,gn(Error(G(ae).error),`SESSION_START_FAILED`),!0);return}try{L(T,t.id,!0);for(let e of t.effectiveSkillSelection?.warnings??[])tt.enqueue({kind:`warning`,code:`SKILL_PROFILE_MISSING_SKILL`,message:e});Ze.select(t.id),et.saveSelectedSession(t.id),await mt(),L(fe,await et.readDraft(t.id),!0),qe.select(t.id,{history:`empty`}),Ke.select(t.id),ut(),L(d,`Session started.`)}catch(e){L(d,gn(e,`SESSION_START_FAILED`),!0)}}async function mt(){let e=++ee;te?.abort();let t=new AbortController;te=t;try{let n=await We.listSessions(t.signal);if(e!==ee||t.signal.aborted)return;L(E,n.map(e=>G(k).has(e.id)?{...e,plan:G(k).get(e.id)}:e),!0);let r=Oe(G(E).filter(e=>[`ready`,`turnActive`].includes(e.state)));Ke.bootstrap(r,G(T)),Ge.bootstrap(r)}catch(e){if(t.signal.aborted||vn(e))return;throw e}finally{te===t&&(te=null)}}async function ht(e,t){await Ge.toggle(e,t),e===G(T)&&mt().catch(()=>{})}async function gt(e){await ht(e,!0),await Cr(),e===G(T)&&document.getElementById(`chat-autopilot-${e}-button`)?.focus({preventScroll:!0})}async function _t(e,t,n){await Ge.resolve(e,t,n),e===G(T)&&mt().catch(()=>{})}async function vt(){try{L(re,await We.listRecentSessions(),!0)}catch{L(re,[],!0)}}async function yt(){try{await Promise.all([mt(),vt()])}catch(e){L(d,gn(e,`SESSION_REFRESH_FAILED`),!0)}}async function bt(e){L(d,`Opening session…`),L(se,e,!0);let t=++ce;try{L(T,e,!0),L(le,null),L(ue,null),Ze.select(e),et.saveSelectedSession(e),qe.select(e),Ke.select(e),ut();let n=await et.readDraft(e);t===ce&&G(T)===e&&L(fe,n,!0)}catch(e){L(d,gn(e,`SESSION_HISTORY_READ_FAILED`),!0)}finally{t===ce&&L(se,null)}}async function xt(e){L(d,`Opening recent session…`);try{let t=await We.openRecentSession(e.id,e.cwd);G(E).some(e=>e.id===t.id)||L(E,[...G(E),t],!0),yt(),await bt(t.id)}catch(e){L(d,gn(e,`SESSION_HISTORY_READ_FAILED`),!0)}}async function St(e){L(d,`Closing session…`);try{await We.releaseSession(e),G(T)===e&&(L(T,null),L(a,`sessions`),et.saveSelectedSession(null),qe.select(null),Ke.select(null),Ze.select(null)),await yt(),L(d,`Session closed.`)}catch(e){L(d,`Could not close session: ${hn(e)}`)}}async function Ct(e){let t=G(E).find(t=>t.id===e);try{await We.forgetSession(e),G(T)===e&&(qe.select(null),Ke.select(null),L(T,null),et.saveSelectedSession(null),Ze.select(null)),await yt(),L(re,tf(G(re),t),!0)}catch(e){L(d,`Could not forget session: ${hn(e)}`)}}async function wt(e){L(d,await Fs(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function Tt(e){if(!(!G(T)||G(i)?.activeTurnId))try{let t=await We.selectModel(G(T),e);L(E,G(E).map(e=>e.id===t.id?{...e,...t}:e),!0),L(fe,``),L(d,`Model changed to ${e}; it applies to the next turn.`)}catch(e){L(d,`Could not change model: ${hn(e)}`)}}async function Et(){let e=Va();qe.send(G(fe),e),kt()}async function Dt(){let e=Va();qe.queue(G(fe),e),kt()}async function Ot(){let e=Va();qe.interruptAndSend(G(fe),e),kt()}function kt(){L(fe,``),lt(`explicit`),G(T)&&et.saveDraft(G(T),``)}async function At(){G(ue)&&(L(le,null),await qe.retryPrompt(G(ue)))}async function jt(){await qe.interrupt()}function F(){G(a)===`chat`&&G(T)&&qe.refresh()}function Mt(e){if(r||e===`chat`&&!G(ne))return;let t=G(a)!==e;G(a)===`chat`&&e!==`chat`&&(He.invalidate(),Ve.cancel()),L(a,e,!0),Xt(e),e===`chat`&&(F(),Ve.reset(),lt(`initial`),t&&Zt()),e===`git`&&G(Me)&&Ye.refresh(),e===`plan`&&(G(T)&&Ze.refresh(G(T)),t||Wt()),e===`sessions`&&(G(y)===`profile-manager`&&Yt(!1),yt(),G(T)&&Ze.refresh(G(T)))}Mn(()=>{let e=G(Ce);G(a)===`plan`&&Bt(e)});let Nt=!1;function Pt(){document.visibilityState!==`visible`||Nt||(Nt=!0,queueMicrotask(()=>{Nt=!1,document.visibilityState===`visible`&&(G(a)===`git`&&G(Me)&&Ye.refresh(),G(a)===`plan`&&Wt(),G(a)===`sessions`&&(yt(),G(T)&&Ze.refresh(G(T))))}))}let Ft=null;function It(e){return e instanceof Element&&e.closest(`button, input, textarea, select, a, summary, [contenteditable]`)!==null}function Lt(e){e.pointerType!==`touch`||It(e.target)||(Ft={pointerId:e.pointerId,x:e.clientX,y:e.clientY})}function Rt(e){if(!Ft||e.pointerId!==Ft.pointerId)return;let t=Ft;Ft=null;let n=e.clientX-t.x,r=e.clientY-t.y;Math.abs(n)<48||Math.abs(n)<=Math.abs(r)||Mt(Of(G(a),n<0?1:-1,{chatEnabled:G(ne)}))}function zt(e){Ft?.pointerId===e.pointerId&&(Ft=null)}function Bt(e=G(Ce)){if(ve?.abort(),ye?.abort(),L(he,null),L(ge,null),!e){L(me,{kind:`no-workspace`});return}let t=new AbortController;ve=t;let n=++be;L(me,{kind:`loading`,workspaceId:e}),We.listWorkspacePlans(e,t.signal).then(r=>{n!==be||t.signal.aborted||L(me,{kind:`ready`,workspaceId:e,entries:r})}).catch(r=>{n!==be||t.signal.aborted||(G(ke)||tt.enqueue({kind:`error`,code:`WORKSPACE_PLANS_READ_FAILED`,message:`Workspace Org files could not be listed. Try opening the Plan tab again.`}),L(me,{kind:`error`,workspaceId:e,error:r instanceof Error?r.message:`Could not load workspace plans.`}))})}function Vt(e){let t=G(Ce);if(!t)return;ye?.abort();let n=new AbortController;ye=n;let r=++xe;(G(T)?We.openSessionPlan(G(T),e):We.getWorkspacePlan(t,e,n.signal)).then(t=>{r!==xe||n.signal.aborted||(L(he,t),L(ge,e,!0),L(_e,!1))}).catch(()=>{r!==xe||n.signal.aborted||tt.enqueue({kind:`error`,code:`WORKSPACE_PLAN_OPEN_${e}`,message:`This Org file could not be opened. Check that it is readable and try again.`})})}function Ht(e){let t=G(Ce),n=G(we),r=n?Ns(e,n):null;if(!t||!r){tt.enqueue({kind:`error`,code:`ORG_LINK_OUTSIDE_WORKSPACE`,message:`This Org file is not inside the selected workspace and cannot be opened.`});return}Mt(`plan`),Cr().then(()=>{G(Ce)!==t||G(we)!==n||Vt(r)})}function Ut(){L(he,null),L(ge,null),L(_e,!0),Bt()}function Wt(){G(T)&&Ze.refresh(G(T)),G(ge)?Vt(G(ge)):Bt()}async function Gt(e,t){let n=new Jf(We);await n.load(e,t),L(v,n,!0)}async function Kt(){try{let e=await We.listSkillProfiles();L(b,e.profiles.filter(e=>!(`error`in e)));let t=e.profiles.find(e=>`error`in e);L(S,t&&`error`in t?t.error.message:``,!0),G(b).some(e=>e.name===G(x))||L(x,``)}catch(e){L(b,[]),L(S,e instanceof Error?e.message:`Unable to load saved skill profiles.`,!0)}}async function qt(e){let t=G(C)||G(p)[0]?.id||``,n=G(_).find(e=>e.state===`ok`)?.name??``;if(!t||!n){L(d,`Choose a workspace and available Codex profile before managing skill profiles.`);return}await Gt(t,n),L(y,`profile-manager`)}function Jt(e){queueMicrotask(()=>e.focus())}async function Yt(e=!0){L(y,`list`),await Cr(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function Xt(e){requestAnimationFrame(()=>{G(a)===e&&e!==`chat`&&window.scrollTo({top:0})})}function Zt(){Cr().then(()=>{G(a)===`chat`&&document.getElementById(`message`)?.focus({preventScroll:!0})})}function Qt(e){Ye.select(e.id),L(Pe,!1)}function $t(e){let t=G(Me)?Zl(G(p),G(Me)):null;t&&(L(c,t,!0),L(l,e,!0))}async function en(){L(c,null),await Cr(),G(l)?.focus({preventScroll:!0})}function tn(){u||(u=!0,queueMicrotask(()=>{u=!1,G(Me)&&Ye.refresh()}))}async function nn(){let e=G(Me);!e||!Zl(G(p),e)?.isGitRepository||(L(Le,G(Le)??Va(),!0),await Ye.pull(G(Le)),G(je).error||L(Le,null))}async function rn(e){if(G(Fe))return;let n=G(Me)?Zl(G(p),G(Me)):void 0;if(!n||n.isGitRepository){L(Ie,null),tt.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let r=n.id;L(Fe,!0),L(Ie,null);try{await We.cloneGitRepository(r,e);let n=await kc(t.authorizedFetch),i=wu(G(p),n.workspaces,r,e,G(Ne));L(C,Ql(G(C)||null,G(p),n.workspaces,Kl.sessionBase)??``,!0),L(p,n.workspaces,!0),Ye.select(i.selectedId),L(Ne,i.expandedIds,!0),L(Ie,`Repository cloned into the selected workspace.`),tt.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){gn(e,`GIT_CLONE_FAILED`)}finally{L(Fe,!1)}}async function an(e){G(Me)&&await Ye.checkout(e)}async function on(){let e=G(Me);if(e){L(Re,G(Re)??Va(),!0);try{await We.pushGit(e,G(Re)),L(Pe,!1),await Ye.refresh(),L(Re,null)}catch(e){gn(e,`GIT_PUSH_FAILED`)}}}async function sn(e,t){lt(`explicit`),await qe.respond(e,{decision:t})}async function cn(e){lt(`explicit`);let t=e.kind===`quiz`?Zo(e.payload):Qo(e.payload);if(!t)return;let n=t.questions.map(t=>({id:t.id,answer:j[`${e.requestId}:${t.id}`]??``})),r=t.questions.map((e,t)=>({id:e.id,header:e.header,question:e.question,answer:n[t]?.answer??``}));L(ze,{...G(ze),[e.requestId]:r});let a=e.kind===`quiz`?$o(n):Ou(n);try{let t=`quiz-answer:${e.requestId}`,n=G(i)?.prompts.find(e=>e.operationId===t);(!n||n.state===`failed`)&&await qe.queue(ku(r),t),await qe.respond(e.requestId,a)}catch{L(d,`Could not send quiz answers. Please try again.`)}}async function dn(e){let t=Du(e.payload);if(!t){L(d,`Codex sent an invalid permission request.`);return}lt(`explicit`),await qe.respond(e.requestId,t)}function fn(e){e.kind===`quiz`||e.kind===`userInput`?cn(e):e.kind===`permissionsApproval`?dn(e):qe.retryInteraction(e.requestId)}function pn(e,t,n){j[`${e}:${t}`]=n}function mn(e){L(fe,e,!0),G(T)&&et.saveDraft(G(T),e)}function hn(e){return e instanceof Error?e.message:`Unknown relay error.`}function gn(e,t){let n=Ll(e,t);return tt.enqueue({kind:`error`,...n}),n.message}function _n(e){tt.enqueue(e?{kind:`success`,message:`Code copied.`}:{kind:`error`,message:`Code could not be copied. Select it and copy it manually.`})}function vn(e){return(e instanceof DOMException||e instanceof Error)&&e.name===`AbortError`}function yn(e){let t=G(T);if(!t||e.type===`agent.activity.updated`)return;if(e.type===`session.updated`&&typeof e.payload==`object`&&e.payload!==null){let n=e.payload;n.id===t&&L(E,G(E).map(e=>e.id===t?{...e,...n}:e),!0);return}if(e.type!==`plan.updated`&&e.type!==`plan.closed`)return;if(Ze.applyEvent(t,e),e.type===`plan.closed`){L(k,new Map(G(k)).set(t,void 0)),L(E,G(E).map(e=>e.id===t?{...e,plan:void 0}:e),!0);return}let n=Nu(e.payload)?e.payload.plan:Pu(e.payload)?e.payload:null;n&&L(k,new Map(G(k)).set(t,n)),n&&L(E,G(E).map(e=>e.id===t?{...e,plan:n}:e),!0)}var bn=Hr();oi(`1d2e8zz`,e=>{Rn(()=>{un.title=r&&G(Ee)?`Chat · ${G(Ee)} · Gestalt Mobile`:`Gestalt Mobile`})}),Nr(`focus`,ln,Pt),Nr(`visibilitychange`,un,Pt);var xn=B(bn),Sn=e=>{Ra(e,{})},Cn=e=>{Gl(e,{get variant(){return rt}})},wn=e=>{var t=Fm();su(z(t),{get context(){return nt}}),N(t),J(e,t)},Tn=e=>{var l=Gm(),u=B(l),_=z(u),k=e=>{{let n=P(()=>G(a)===`chat`?nf(G(E).find(e=>e.id===G(T))?.workspacePath??``):null),r=P(()=>G(a)===`chat`?G(E).find(e=>e.id===G(T))?.model??m:null),i=P(()=>G(a)===`chat`&&G(T)?ft:void 0);sa(e,{get theme(){return G(f)},get sessionPath(){return G(n)},get sessionModel(){return G(r)},get weeklyQuotaRemaining(){return G(Ae)},get passkeyAuthEnabled(){return t.passkeyAuthEnabled},get onlock(){return t.onlock},ondevices:()=>L(o,!0),onscratchpad:st,onthemechange:dt,get ondetach(){return G(i)}})}};X(_,e=>{!G(o)&&!r&&e(k)});var ee=V(_,2),te=e=>{var t=Lm(),n=z(t),i=V(z(n),2),a=z(i,!0);N(i),N(n);var o=V(n,2),s=e=>{var t=Im(),n=z(t,!0);N(t),H(()=>Y(n,G(Te).model)),J(e,t)};X(o,e=>{G(Te)?.model&&e(s)}),N(t),H(()=>{Q(i,`title`,G(Ee)||r),Y(a,G(Ee)||r)}),J(e,t)};X(ee,e=>{r&&e(te)});var ae=V(ee,2);Ul(ae,{get queue(){return tt}});var ce=V(ae,2),pe=e=>{Ip(e,{get client(){return Xe},onclose:()=>{L(o,!1),Cr().then(()=>document.querySelector(`.menu-trigger`)?.focus())},get onlock(){return t.onlock},oncreatepasskey:e=>n()(e)})},he=e=>{var t=Wm(),n=B(t),o=e=>{var t=Rm(),n=z(t),r=z(n,!0);N(n);var i=V(n,2);N(t),H(()=>Y(r,G(de))),K(`click`,i,()=>L(de,null)),J(e,t)};X(n,e=>{G(de)&&e(o)});var s=V(n,2),l=e=>{var t=Vm(),n=V(z(t),2);{let e=P(()=>G(T)?G(O).attention.get(G(T))??null:null),t=P(()=>`chat-attention-${G(T)??`none`}`),r=P(()=>G(T)?G(O).pending.has(G(T)):!1);eo(n,{get attention(){return G(e)},get controlId(){return G(t)},get pending(){return G(r)},onresolve:(e,t)=>G(T)&&_t(G(T),e,t)})}var a=V(n,2);{let e=P(()=>G(T)?G(O).snapshots.get(G(T))??null:null),t=P(()=>G(T)?G(O).attention.get(G(T))??null:null),n=P(()=>`chat-autopilot-safety-${G(T)??`none`}`),r=P(()=>G(T)?G(O).pending.has(G(T)):!1);no(a,{get autopilot(){return G(e)},get attention(){return G(t)},get controlId(){return G(n)},get pending(){return G(r)},onrecover:()=>G(T)&&void gt(G(T)),ondisable:()=>G(T)&&ht(G(T),!1)})}var o=V(a,2),s=z(o,!0);N(o);var c=V(o,2),l=e=>{var t=zm(),n=B(t);{let e=P(()=>G(i)?[...G(i).messages]:[]),t=P(()=>G(i)?[...G(i).activities]:[]),r=P(()=>G(i)?.activeTurnId??null),a=P(()=>G(i)?.autopilotAuditTruncated??!1),o=P(()=>G(i)?[...G(i).interactions]:[]);Tc(n,{get messages(){return G(e)},get activities(){return G(t)},get activeTurnId(){return G(r)},get autopilotAuditTruncated(){return G(a)},get interactions(){return G(o)},get answers(){return j},get submittedAnswers(){return G(ze)},onanswer:pn,onquiz:e=>void cn(e),onpermission:e=>void dn(e),ondecision:(e,t)=>void sn(e,t),onretry:fn,onopenorg:Ht,oncopyresult:_n})}var r=V(n,2);{let e=P(()=>G(i)?.status??G(d)),t=P(()=>G(i)?.activeTurnId??null),n=P(()=>G(i)?.starting??!1),a=P(()=>!!(G(E).find(e=>e.id===G(T))&&![`ready`,`turnActive`].includes(G(E).find(e=>e.id===G(T))?.state??``))),o=P(()=>G(ue)!==null);Eo(r,{get status(){return G(e)},get message(){return G(fe)},get activeTurnId(){return G(t)},get starting(){return G(n)},get detached(){return G(a)},get retryMessage(){return G(le)},get retryable(){return G(o)},get models(){return G(h)},onchange:mn,onscrollbottom:()=>lt(`explicit`),onmodelselect:e=>void Tt(e),onsend:()=>void Et(),onqueue:()=>void Dt(),oninterruptsend:()=>void Ot(),onretry:()=>void At(),oninterrupt:()=>void jt()})}var a=V(r,2),o=z(a);{let e=P(()=>G(O).snapshots.get(G(T))??null),t=P(()=>`chat-autopilot-${G(T)}`),n=P(()=>G(O).pending.has(G(T)));Qa(o,{compact:!0,get autopilot(){return G(e)},get controlId(){return G(t)},get pending(){return G(n)},ontoggle:e=>G(T)&&ht(G(T),e)})}var s=V(o,2);{let e=P(()=>G(D).get(G(T))??null),t=P(()=>G(E).find(e=>e.id===G(T))?.model??m);Ia(s,{compact:!0,get activity(){return G(e)},get rootModel(){return G(t)}})}N(a),Li(V(a,2),e=>L(M,e),()=>G(M)),J(e,t)},u=e=>{var t=Bm(),n=z(t,!0);N(t),H(()=>Y(n,r?G(d):`Start a session from the Sessions tab to chat with Codex.`)),J(e,t)};X(c,e=>{G(T)?e(l):e(u,-1)}),N(t),H(()=>Y(s,G(Ue))),J(e,t)},u=e=>{Kd(e,{get catalog(){return G(me)},get state(){return G(ke)},onopen:Vt,onclose:Ut})},f=e=>{{let t=P(()=>G(Me)?Zl(G(p),G(Me))??null:null);Su(e,{get workspaceTree(){return G(p)},get selectedWorkspace(){return G(t)},get expandedIds(){return G(Ne)},get summary(){return G(je).summary},get refreshing(){return G(je).refreshing},get checkingOut(){return G(je).checkingOut},get cloning(){return G(Fe)},get error(){return G(je).error},get cloneStatus(){return G(Ie)},get confirmingPush(){return G(Pe)},onpull:()=>void nn(),oncheckout:e=>void an(e),onopenpushconfirmation:()=>L(Pe,!0),onpush:()=>void on(),oncancelpush:()=>L(Pe,!1),onselect:Qt,onexpandedchange:e=>L(Ne,e,!0),onbrowsefiles:$t,onclone:e=>void rn(e)})}},_=e=>{var t=Hr(),n=B(t),r=e=>{var t=Um(),n=z(t),r=z(n);si(r,()=>Jt);var i=V(r,2);N(n);var a=V(n,2),o=e=>{qf(e,{get skillsState(){return G(v)},onrefresh:()=>G(v)?.refresh()??Promise.resolve(),onprofileschange:()=>void Kt(),heading:`Skill profile editor`})},s=e=>{J(e,Hm())};X(a,e=>{G(v)?e(o):e(s,-1)}),N(t),K(`click`,i,()=>void Yt()),J(e,t)},i=e=>{wf(e,{get sessions(){return G(E)},get recentSessions(){return G(re)},get selectedSessionId(){return G(T)},get activitySnapshots(){return G(D)},get autopilotSnapshots(){return G(O).snapshots},get autopilotPending(){return G(O).pending},get autopilotAttention(){return G(O).attention},get workspaceTree(){return G(p)},get workspaceId(){return G(C)},get expandedIds(){return G(w)},get sandbox(){return G(A)},get approvalPolicy(){return G(ie)},get models(){return G(h)},get selectedModel(){return G(g)},get skillProfiles(){return G(b)},get selectedSkillProfile(){return G(x)},get skillProfileError(){return G(S)},get startingSession(){return G(oe)},get openingSessionId(){return G(se)},onworkspacechange:e=>L(C,e,!0),onexpandedchange:e=>L(w,e,!0),onsandboxchange:e=>L(A,e,!0),onapprovalpolicychange:e=>L(ie,e,!0),onmodelchange:e=>L(g,e,!0),onskillprofilechange:e=>L(x,e,!0),onmanageprofiles:e=>void qt(e),onopen:bt,onselectopen:bt,onclose:e=>void St(e),onautopilottoggle:ht,onautopilotresolve:_t,onopenrecent:e=>void xt(e),onforget:e=>void Ct(e),oncopyresume:e=>void wt(e),onstart:()=>void pt()})};X(n,e=>{G(y)===`profile-manager`?e(r):e(i,-1)}),J(e,t)};X(s,e=>{G(a)===`chat`?e(l):G(a)===`plan`?e(u,1):G(a)===`git`?e(f,2):e(_,-1)});var k=V(s,2),ee=e=>{Pm(e,{get root(){return G(c)},get listDirectory(){return We.listWorkspaceDirectory},get copyEntry(){return We.copyWorkspaceEntry},get moveEntry(){return We.moveWorkspaceEntry},get deleteEntry(){return We.deleteWorkspaceEntry},get uploadFile(){return We.uploadWorkspaceFile},onclose:()=>void en(),onerror:e=>gn(e,`WORKSPACE_FILES_READ_FAILED`),onsuccess:e=>tt.enqueue({kind:`success`,message:e}),onmutation:tn})};X(k,e=>{G(c)&&e(ee)});var te=V(k,2),ae=e=>{Af(e,{get activeTab(){return G(a)},get chatEnabled(){return G(ne)},get focusTab(){return G(Se)},onselect:Mt})};X(te,e=>{r||e(ae)}),J(e,t)};X(ce,e=>{G(o)&&t.passkeyAuthEnabled?e(pe):e(he,-1)}),N(u);var ge=V(u,2),_e=e=>{Jp(e,{onclose:ct})};X(ge,e=>{G(s)&&e(_e)}),K(`pointerdown`,u,Lt),K(`pointerup`,u,Rt),Nr(`pointercancel`,u,zt),J(e,l)};X(xn,e=>{it===`true`?e(Sn):rt===`error`||rt===`stacked`?e(Cn,1):nt===`sessions`||nt===`git`?e(wn,2):e(Tn,-1)}),J(e,bn),$e()}Pr([`pointerdown`,`pointerup`,`click`]);function qm(){throw Error(`AUTH_RESPONSE_INVALID`)}async function Jm(e){if(!e.ok){let t;try{let n=await e.json();typeof n==`object`&&n&&`code`in n&&typeof n.code==`string`&&(t=n.code)}catch{}throw Error(t??`AUTH_REQUEST_FAILED_${e.status}`)}return e.json()}function Ym(e){return!!e&&typeof e==`object`&&[`bootstrap`,`locked`,`authenticated`].includes(e.status)&&typeof e.publicOrigin==`string`&&(e.passkeyAuthEnabled===void 0||typeof e.passkeyAuthEnabled==`boolean`)}function Xm(e){return!!e&&typeof e==`object`&&!!e.options&&typeof e.options.challenge==`string`}function Zm(e){return!!e&&typeof e==`object`&&e.status===`authenticated`}function Qm(e=fetch){async function t(){let t=await Jm(await e(`/api/auth/status`,{credentials:`same-origin`}));return Ym(t)||qm(),t}async function n(t,n={}){let r=await Jm(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return Xm(r)||qm(),r}async function r(t,n){let r=await Jm(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return Zm(r)||qm(),r}return{status:t,registrationOptions:e=>n(`/api/auth/register/options`,e?{enrollmentTicket:e}:{}),verifyRegistration:(e,t)=>r(`/api/auth/register/verify`,{response:e,nickname:t}),loginOptions:()=>n(`/api/auth/login/options`),verifyLogin:e=>r(`/api/auth/login/verify`,{response:e}),logout:async()=>{let t=await e(`/api/auth/logout`,{method:`POST`,credentials:`same-origin`});if(!t.ok)throw Error(`AUTH_REQUEST_FAILED_${t.status}`)}}}function $m(e,t=fetch){return async(n,r)=>{let i=await t(n,{...r,credentials:`same-origin`});return i.status===401&&(await i.clone().json().catch(()=>null))?.code===`AUTH_REQUIRED`&&e(),i}}function eh(e){let t=new Uint8Array(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function th(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=(4-t.length%4)%4,r=t.padEnd(t.length+n,`=`),i=atob(r),a=new ArrayBuffer(i.length),o=new Uint8Array(a);for(let e=0;e<i.length;e++)o[e]=i.charCodeAt(e);return a}function nh(){return rh.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential==`function`)}var rh={stubThis:e=>e};function ih(e){let{id:t}=e;return{...e,id:th(t),transports:e.transports}}function ah(e){return e===`localhost`||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var oh=class extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=r??n.name,this.code=t}};function sh({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new oh({message:`Registration ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`ConstraintError`){if(n.authenticatorSelection?.requireResidentKey===!0)return new oh({message:`Discoverable credentials were required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`,cause:e});if(t.mediation===`conditional`&&n.authenticatorSelection?.userVerification===`required`)return new oh({message:`User verification was required during automatic registration but it could not be performed`,code:`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`,cause:e});if(n.authenticatorSelection?.userVerification===`required`)return new oh({message:`User verification was required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`,cause:e})}else if(e.name===`InvalidStateError`)return new oh({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new oh({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`NotSupportedError`)return n.pubKeyCredParams.filter(e=>e.type===`public-key`).length===0?new oh({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new oh({message:`No available authenticator supported any of the specified pubKeyCredParams algorithms`,code:`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!ah(t))return new oh({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new oh({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`TypeError`){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new oh({message:`User ID was not between 1 and 64 characters`,code:`ERROR_INVALID_USER_ID_LENGTH`,cause:e})}else if(e.name===`UnknownError`)return new oh({message:`The authenticator was unable to process the specified options, or could not create a new credential`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}var ch=new class{constructor(){Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}createNewAbortSignal(){if(this.controller){let e=Error(`Cancelling existing WebAuthn API call for new one`);e.name=`AbortError`,this.controller.abort(e)}let e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){let e=Error(`Manually cancelling existing WebAuthn API call`);e.name=`AbortError`,this.controller.abort(e),this.controller=void 0}}},lh=[`cross-platform`,`platform`];function uh(e){if(e&&!(lh.indexOf(e)<0))return e}async function dh(e){!e.optionsJSON&&e.challenge&&(console.warn(`startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=!1}=e;if(!nh())throw Error(`WebAuthn is not supported in this browser`);let r={...t,challenge:th(t.challenge),user:{...t.user,id:th(t.user.id)},excludeCredentials:t.excludeCredentials?.map(ih)},i={};n&&(i.mediation=`conditional`),i.publicKey=r,i.signal=ch.createNewAbortSignal();let a;try{a=await navigator.credentials.create(i)}catch(e){throw sh({error:e,options:i})}if(!a)throw Error(`Registration was not completed`);let{id:o,rawId:s,response:c,type:l}=a,u;typeof c.getTransports==`function`&&(u=c.getTransports());let d;if(typeof c.getPublicKeyAlgorithm==`function`)try{d=c.getPublicKeyAlgorithm()}catch(e){fh(`getPublicKeyAlgorithm()`,e)}let f;if(typeof c.getPublicKey==`function`)try{let e=c.getPublicKey();e!==null&&(f=eh(e))}catch(e){fh(`getPublicKey()`,e)}let p;if(typeof c.getAuthenticatorData==`function`)try{p=eh(c.getAuthenticatorData())}catch(e){fh(`getAuthenticatorData()`,e)}return{id:o,rawId:eh(s),response:{attestationObject:eh(c.attestationObject),clientDataJSON:eh(c.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:p},type:l,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:uh(a.authenticatorAttachment)}}function fh(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.\n`,t)}function ph(){if(!nh())return mh.stubThis(new Promise(e=>e(!1)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?mh.stubThis(new Promise(e=>e(!1))):mh.stubThis(e.isConditionalMediationAvailable())}var mh={stubThis:e=>e};function hh({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new oh({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new oh({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!ah(t))return new oh({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new oh({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`UnknownError`)return new oh({message:`The authenticator was unable to process the specified options, or could not create a new assertion signature`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}async function gh(e){!e.optionsJSON&&e.challenge&&(console.warn(`startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=!1,verifyBrowserAutofillInput:r=!0}=e;if(!nh())throw Error(`WebAuthn is not supported in this browser`);let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(ih));let a={...t,challenge:th(t.challenge),allowCredentials:i},o={};if(n){if(!await ph())throw Error(`Browser does not support WebAuthn autofill`);if(document.querySelectorAll(`input[autocomplete$='webauthn']`).length<1&&r)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');o.mediation=`conditional`,a.allowCredentials=[]}o.publicKey=a,o.signal=ch.createNewAbortSignal();let s;try{s=await navigator.credentials.get(o)}catch(e){throw hh({error:e,options:o})}if(!s)throw Error(`Authentication was not completed`);let{id:c,rawId:l,response:u,type:d}=s,f;return u.userHandle&&(f=eh(u.userHandle)),{id:c,rawId:eh(l),response:{authenticatorData:eh(u.authenticatorData),clientDataJSON:eh(u.clientDataJSON),signature:eh(u.signature),userHandle:f},type:d,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:uh(s.authenticatorAttachment)}}function _h(e){return typeof e==`object`&&e?e:{}}function vh(e){let t=_h(e),n=typeof t.code==`string`?t.code:``;switch(n){case`ERROR_CEREMONY_ABORTED`:return`The passkey request was cancelled. You can safely try again.`;case`ERROR_INVALID_DOMAIN`:case`ERROR_INVALID_RP_ID`:return`The passkey provider rejected this site’s domain identity. Open the canonical HTTPS address and try again.`;case`ERROR_INVALID_USER_ID_LENGTH`:case`ERROR_MALFORMED_PUBKEYCREDPARAMS`:return`The relay supplied passkey options this browser could not use (${n}).`;case`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`:return`This passkey provider does not support the discoverable credential required for sign-in. Try another passkey provider or browser.`;case`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`:case`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`:return`This passkey provider could not perform the required screen-lock verification. Check the device screen lock or try another provider.`;case`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`:return`This passkey is already registered on this device. Try signing in instead.`;case`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`:return`This passkey provider supports none of the relay’s allowed cryptographic algorithms. Try another provider or browser.`;case`ERROR_AUTHENTICATOR_GENERAL_ERROR`:return`The phone’s passkey provider accepted device verification but could not create the credential (ERROR_AUTHENTICATOR_GENERAL_ERROR). Try another browser or passkey provider on this phone.`;case`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`:return vh(t.cause)}switch(typeof t.message==`string`?t.message:``){case`INVALID_REGISTRATION_REQUEST`:return`The relay did not understand the passkey response from this browser. Refresh the page and try again.`;case`REGISTRATION_COOKIE_MISSING`:return`The registration session cookie was not returned by this browser. Allow site cookies, refresh, and try again.`;case`REGISTRATION_NOT_AVAILABLE`:return`This registration attempt expired or is no longer available. Refresh the page and start again.`;case`REGISTRATION_VERIFICATION_FAILED`:return`Your device created the passkey, but the relay could not verify it. Try again and check the relay diagnostics if it persists.`;case`ORIGIN_NOT_ALLOWED`:return`This page is not using the relay’s configured public address. Open the canonical HTTPS address and try again.`;case`ENROLLMENT_NOT_AUTHORIZED`:return`This relay is no longer accepting first-device registration.`;case`AUTHENTICATION_FAILED`:return`We could not complete sign-in. Please try again.`}let r=typeof t.name==`string`?t.name:``;switch(r){case`NotAllowedError`:return`The passkey request was cancelled or timed out. Try again when ready.`;case`InvalidStateError`:return`This passkey is already registered on this device. Try signing in instead.`;case`AbortError`:return`The passkey request was cancelled. You can safely try again.`;case`SecurityError`:return`Passkeys require this device to use the configured secure site.`;case`ConstraintError`:case`DataError`:case`EncodingError`:return`This browser could not use the passkey options supplied by the relay. Refresh the page and try again.`;case`NetworkError`:return`The connection was interrupted while completing the passkey request. Check the connection and try again.`;case`OperationError`:case`UnknownError`:return`This browser or passkey provider could not finish the passkey request after device verification. Try again or use another browser on this device.`;case`TypeError`:return`This browser rejected the passkey request data. Refresh the page and try again.`;default:return/^[A-Za-z]+Error$/.test(r)?`The passkey request failed inside this browser (${r}). Try another browser or passkey provider on this device.`:`We could not complete authentication. Please try again.`}}function yh(){return typeof window<`u`&&window.isSecureContext&&window.PublicKeyCredential!==void 0}function bh(e,t){async function n(n){t({kind:`checking`});try{let{status:r,publicOrigin:i,passkeyAuthEnabled:a=!0}=await e.status();if(!a){let e={kind:`authenticated`,passkeyAuthEnabled:!1};return t(e),e}if(!yh()){let e={kind:`unsupported`,message:`Passkeys require a secure browser on this device.`};return t(e),e}let o=r===`authenticated`?{kind:`authenticated`,passkeyAuthEnabled:!0}:r===`bootstrap`?{kind:`bootstrap`,publicOrigin:i}:n?{kind:`enrollment`,publicOrigin:i}:{kind:`locked`};return t(o),o}catch{let e={kind:`error`,message:`We could not check this device. Please try again.`};return t(e),e}}function r(){t({kind:`authenticated`,passkeyAuthEnabled:!0})}function i(e){t({kind:`locked`,...e?{message:e}:{}})}return{check:n,retry:n,authenticated:r,locked:i}}var xh=q(`<p class="warning svelte-1c5qcm6">This one-time link authorizes one new passkey. Choose a nickname and complete the passkey
30
+ `;return typeof a==`function`&&a(null,p),p}})),Cp=c(o((e=>{var t=Xf(),n=yp(),r=xp(),i=Sp();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))(),1);function wp(e){return`${e.replace(/\/$/,``)}/?bootstrap=1`}async function Tp(e){return Cp.toDataURL(wp(e),{errorCorrectionLevel:`M`,margin:1,width:256})}async function Ep(e){return Cp.toDataURL(e,{errorCorrectionLevel:`M`,margin:1,width:256})}var Dp=q(`<p class="feedback svelte-1nygetn" role="status"> </p>`),Op=q(`<span class="svelte-1nygetn">At least one authorized device is required.</span>`),kp=q(`<li class="svelte-1nygetn"><form class="svelte-1nygetn"><label class="svelte-1nygetn">Nickname</label><input name="nickname" class="svelte-1nygetn"/> <p class="svelte-1nygetn"> <!><!></p> <button type="submit" class="svelte-1nygetn">Rename</button> <button type="button" class="svelte-1nygetn">Revoke</button> <!></form></li>`),Ap=q(`<ul aria-label="Authorized devices" class="svelte-1nygetn"></ul>`),jp=q(`<p role="status" class="svelte-1nygetn">No authorized devices are available. Refresh this page before making changes.</p>`),Mp=q(`<button type="button" class="svelte-1nygetn">Create enrollment link</button>`),Np=q(`<img alt="QR code for the enrollment link" class="svelte-1nygetn"/>`),Pp=q(`<p role="status" class="svelte-1nygetn"> </p> <!> <label for="enrollment-link" class="svelte-1nygetn">Enrollment link</label><textarea id="enrollment-link" readonly="" rows="3" class="svelte-1nygetn"></textarea> <div class="actions svelte-1nygetn"><button type="button" class="svelte-1nygetn">Copy enrollment link</button><button type="button" class="svelte-1nygetn">Create passkey here</button><button type="button" class="svelte-1nygetn">Cancel link</button><button type="button" class="svelte-1nygetn">Replace link</button></div>`,1),Fp=q(`<main class="devices svelte-1nygetn" aria-labelledby="devices-title"><header class="svelte-1nygetn"><button type="button" class="svelte-1nygetn">Back</button> <h1 id="devices-title" class="svelte-1nygetn">Authorized devices</h1></header> <!> <!> <section aria-labelledby="add-title" class="svelte-1nygetn"><h2 id="add-title" class="svelte-1nygetn">Authorize another device</h2> <!></section></main> <dialog aria-labelledby="revoke-title" class="svelte-1nygetn"><h2 id="revoke-title" class="svelte-1nygetn">Revoke authorized device?</h2> <p class="svelte-1nygetn">This immediately signs out sessions created by this passkey.</p> <form method="dialog" class="svelte-1nygetn"><button type="submit" class="svelte-1nygetn">Keep device</button><button type="button" class="svelte-1nygetn">Revoke device</button></form></dialog>`,1);function Ip(e,t){Qe(t,!0);let n=$(t,`oncreatepasskey`,3,()=>{}),r=I(R([])),i=I(``),a=I(null),o=I(`none`),s=I(null),c=I(null),l=I(null),u=I(null),d=I(R(Date.now())),f=P(()=>[...G(r)].sort((e,t)=>e.createdAt.localeCompare(t.createdAt))),p=P(()=>G(a)?Math.max(0,Math.ceil((Date.parse(G(a).expiresAt)-G(d))/1e3)):0),m=P(()=>`${Math.floor(G(p)/60)}:${String(G(p)%60).padStart(2,`0`)}`);function h(e){let t=e.trim();return[...t].length>=1&&[...t].length<=64}function g(){G(u)&&clearInterval(G(u)),L(u,null)}function _(){g(),L(u,setInterval(()=>void b(),15e3),!0)}function v(){return!!(G(a)&&G(o)===`pending`&&G(p)>0&&document.visibilityState===`visible`)}async function y(){try{L(r,(await t.client.list()).devices,!0)}catch{L(i,`Could not refresh authorized devices. Try again.`)}}async function b(){if(!v()){G(p)===0&&G(a)&&L(o,`expired`),g();return}try{L(o,(await t.client.ticketStatus()).status,!0),G(o)!==`pending`&&(g(),G(o)===`used`&&await y())}catch{g()}}async function x(){L(i,``);try{L(a,await t.client.createTicket(),!0),L(o,`pending`),L(s,await Ep(G(a).url),!0),L(d,Date.now(),!0),_()}catch{L(i,`Could not create an enrollment link. Try again.`)}}async function S(){try{L(o,(await t.client.cancelTicket()).status,!0),L(a,null),L(s,null),g()}catch{L(i,`Could not cancel the enrollment link. Try again.`)}}async function C(){await S(),G(i)||await x()}async function w(e,n){if(!h(n)){L(i,`Device nicknames must be 1–64 characters.`);return}L(i,``);try{await t.client.rename(e.id,n.trim()),await y()}catch{L(i,`Could not rename this device. Try again.`)}}function T(e){G(f).length>1&&(L(l,e,!0),G(c)?.showModal())}async function E(){if(G(l))try{await t.client.revoke(G(l).id),G(c)?.close(),G(l).current?t.onlock():await y()}catch{L(i,`This device could not be revoked. Try again.`)}}async function D(){if(G(a))try{await navigator.clipboard.writeText(G(a).url)}catch{L(i,`Copy is unavailable here. Select the visible link instead.`)}}function O(){document.visibilityState===`visible`&&G(o)===`pending`&&G(p)>0?(b(),_()):g()}Ri(()=>{y(),document.addEventListener(`visibilitychange`,O);let e=setInterval(()=>L(d,Date.now(),!0),1e3);return()=>clearInterval(e)}),zi(()=>{g(),document.removeEventListener(`visibilitychange`,O)});var k=Fp(),ee=B(k),te=z(ee),ne=z(te);He(2),N(te);var re=V(te,2),A=e=>{var t=Dp(),n=z(t,!0);N(t),H(()=>Y(n,G(i))),J(e,t)};X(re,e=>{G(i)&&e(A)});var ie=V(re,2),ae=e=>{var t=Ap();Z(t,21,()=>G(f),e=>e.id,(e,t)=>{var n=kp(),r=z(n),i=z(r),a=V(i);Di(a);var o=V(a,2),s=z(o),c=V(s),l=e=>{var n=Vr();H(e=>Y(n,`· Last used ${e??``}`),[()=>new Date(G(t).lastUsedAt).toLocaleDateString()]),J(e,n)};X(c,e=>{G(t).lastUsedAt&&e(l)});var u=V(c),d=e=>{J(e,Vr(`· This device`))};X(u,e=>{G(t).current&&e(d)}),N(o);var p=V(o,4),m=V(p,2),h=e=>{var n=Op();H(()=>Q(n,`id`,`final-${G(t).id}`)),J(e,n)};X(m,e=>{G(f).length===1&&e(h)}),N(r),N(n),H(e=>{Q(i,`for`,`nickname-${G(t).id}`),Q(a,`id`,`nickname-${G(t).id}`),Oi(a,G(t).nickname),Q(a,`aria-label`,`Nickname for ${G(t).nickname}`),Y(s,`Added ${e??``}`),p.disabled=G(f).length===1,Q(p,`aria-describedby`,G(f).length===1?`final-${G(t).id}`:void 0)},[()=>new Date(G(t).createdAt).toLocaleDateString()]),Nr(`submit`,r,e=>{e.preventDefault(),w(G(t),String(new FormData(e.currentTarget).get(`nickname`)??``))}),K(`click`,p,()=>T(G(t))),J(e,n)}),N(t),J(e,t)},oe=e=>{J(e,jp())};X(ie,e=>{G(f).length?e(ae):e(oe,-1)});var se=V(ie,2),ce=V(z(se),2),le=e=>{var t=Mp();K(`click`,t,()=>void x()),J(e,t)},ue=e=>{var t=Pp(),r=B(t),i=z(r,!0);N(r);var c=V(r,2),l=e=>{var t=Np();H(()=>Q(t,`src`,G(s))),J(e,t)};X(c,e=>{G(s)&&e(l)});var u=V(c,3);Sn(u);var d=V(u,2),f=z(d),p=V(f),h=V(p),g=V(h);N(d),H(()=>{Y(i,G(o)===`pending`?`Enrollment link is active for ${G(m)}.`:`Enrollment link is ${G(o)}.`),Oi(u,G(a).url)}),K(`click`,f,()=>void D()),K(`click`,p,()=>n()(G(a).ticket)),K(`click`,h,()=>void S()),K(`click`,g,()=>void C()),J(e,t)};X(ce,e=>{G(a)?e(ue,-1):e(le)}),N(se),N(ee);var de=V(ee,2),fe=V(z(de),4),pe=V(z(fe));N(fe),N(de),Li(de,e=>L(c,e),()=>G(c)),K(`click`,ne,function(...e){t.onclose?.apply(this,e)}),K(`click`,pe,()=>void E()),J(e,k),$e()}Pr([`click`]);async function Lp(e){if(e=await e,!e.ok){let t;try{let n=await e.json();typeof n==`object`&&n&&`code`in n&&typeof n.code==`string`&&(t=n.code)}catch{}throw Error(t??`AUTH_REQUEST_FAILED_${e.status}`)}if(e.status!==204)return e.json()}function Rp(e){return{list:()=>Lp(e(`/api/auth/devices`,{credentials:`same-origin`})),rename:(t,n)=>Lp(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`PATCH`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify({nickname:n})})),revoke:t=>Lp(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`DELETE`,credentials:`same-origin`})),createTicket:()=>Lp(e(`/api/auth/enrollment-tickets`,{method:`POST`,credentials:`same-origin`})),ticketStatus:()=>Lp(e(`/api/auth/enrollment-tickets/current`,{credentials:`same-origin`})),cancelTicket:()=>Lp(e(`/api/auth/enrollment-tickets/current`,{method:`DELETE`,credentials:`same-origin`}))}}var zp=`gestalt-mobile.scratchpad`;function Bp(){try{return window.localStorage}catch{return null}}function Vp(e){try{return e?.getItem(`gestalt-mobile.scratchpad`)??``}catch{return``}}function Hp(e,t){try{return e?(e.setItem(zp,t),!0):!1}catch{return!1}}function Up(e){try{return e?(e.removeItem(zp),!0):!1}catch{return!1}}var Wp=q(`<p class="feedback svelte-eu5bnq" role="status"> </p>`),Gp=q(`<section class="clear-confirmation svelte-eu5bnq" aria-labelledby="clear-scratchpad-title"><p id="clear-scratchpad-title" class="svelte-eu5bnq"><strong>Clear the entire scratchpad?</strong></p> <p class="svelte-eu5bnq">This cannot be undone.</p> <div class="actions svelte-eu5bnq"><button type="button" class="svelte-eu5bnq">Keep text</button> <button type="button" class="danger svelte-eu5bnq">Clear all</button></div></section>`),Kp=q(`<footer class="actions svelte-eu5bnq"><button type="button" class="svelte-eu5bnq">Paste</button> <button type="button" class="svelte-eu5bnq">Select all</button> <button type="button" class="danger svelte-eu5bnq">Clear</button> <button type="button" class="svelte-eu5bnq">Close</button></footer>`),qp=q(`<dialog aria-labelledby="scratchpad-title" class="svelte-eu5bnq"><section class="scratchpad-shell svelte-eu5bnq"><header class="svelte-eu5bnq"><div><h2 id="scratchpad-title" class="svelte-eu5bnq">Scratchpad</h2> <p id="scratchpad-help" class="svelte-eu5bnq">Saved automatically in this browser.</p></div> <button type="button" class="close svelte-eu5bnq" aria-label="Close scratchpad">×</button></header> <label for="scratchpad-text" class="svelte-eu5bnq">Scratchpad text</label> <textarea id="scratchpad-text" aria-describedby="scratchpad-help" class="svelte-eu5bnq"></textarea> <!> <!></section></dialog>`);function Jp(e,t){Qe(t,!0);let n=$(t,`storage`,19,Bp),r=$(t,`clipboard`,19,()=>globalThis.navigator?.clipboard),i=I(null),a=I(null),o=I(null),s=I(``),c=I(!1),l=I(``);Ri(async()=>{L(s,Vp(n()),!0),await Cr(),G(i)?.showModal(),G(a)?.focus()});function u(e){L(s,e,!0),L(l,Hp(n(),e)?``:`This browser could not save the scratchpad. Keep this window open until you copy the text.`,!0)}async function d(){if(!r()?.readText){L(l,`Clipboard paste is unavailable here. Long-press the text field and choose Paste.`),G(a)?.focus();return}try{let e=await r().readText(),t=G(a)?.selectionStart??G(s).length,n=G(a)?.selectionEnd??G(s).length;u(`${G(s).slice(0,t)}${e}${G(s).slice(n)}`),await Cr();let i=t+e.length;G(a)?.focus(),G(a)?.setSelectionRange(i,i)}catch{L(l,`Clipboard paste was not permitted. Long-press the text field and choose Paste.`),G(a)?.focus()}}async function f(){L(c,!0),L(l,``),await Cr(),G(o)?.focus()}function p(){L(c,!1),G(a)?.focus()}function m(){if(!Up(n())){L(l,`This browser could not clear its saved scratchpad.`);return}L(s,``),L(c,!1),L(l,``),G(a)?.focus()}var h=qp(),g=z(h),_=z(g),v=V(z(_),2);N(_);var y=V(_,4);Sn(y),Li(y,e=>L(a,e),()=>G(a));var b=V(y,2),x=e=>{var t=Wp(),n=z(t,!0);N(t),H(()=>Y(n,G(l))),J(e,t)};X(b,e=>{G(l)&&e(x)});var S=V(b,2),C=e=>{var t=Gp(),n=V(z(t),4),r=z(n);Li(r,e=>L(o,e),()=>G(o));var i=V(r,2);N(n),N(t),K(`click`,r,p),K(`click`,i,m),J(e,t)},w=e=>{var t=Kp(),n=z(t),r=V(n,2),o=V(r,2),c=V(o,2);N(t),H(()=>o.disabled=!G(s)),K(`click`,n,()=>void d()),K(`click`,r,()=>G(a)?.select()),K(`click`,o,()=>void f()),K(`click`,c,()=>G(i)?.close()),J(e,t)};X(S,e=>{G(c)?e(C):e(w,-1)}),N(g),N(h),Li(h,e=>L(i,e),()=>G(i)),H(()=>Oi(y,G(s))),Nr(`close`,h,function(...e){t.onclose?.apply(this,e)}),K(`click`,v,()=>G(i)?.close()),K(`input`,y,e=>u(e.currentTarget.value)),J(e,h),$e()}Pr([`click`,`input`]);var Yp=q(`<button class="disclosure svelte-am0nvt" type="button"> </button>`),Xp=q(`<span class="disclosure svelte-am0nvt"></span>`),Zp=q(`<span class="unsupported svelte-am0nvt">Files cannot be destinations</span>`),Qp=q(`<span class="unsupported svelte-am0nvt">Unsupported link</span>`),$p=q(`<span role="status">Loading…</span>`),em=q(`<button type="button" class="svelte-am0nvt"> </button>`),tm=q(`<div role="group"><!> <!> <!> <!></div>`),nm=q(`<div role="treeitem"><div class="tree-row svelte-am0nvt" role="presentation"><!> <span class="tree-label svelte-am0nvt"> </span><!></div> <!></div>`),rm=q(`<p role="status">Loading files…</p>`),im=q(`<button type="button" class="svelte-am0nvt">Retry loading files</button>`),am=q(`<button type="button" class="svelte-am0nvt">Load more in root</button>`),om=q(`<div class="file-tree svelte-am0nvt" role="tree" aria-label="Files"><!> <!> <!> <!></div>`);function sm(e,t){Qe(t,!0);let n=$(t,`destinationMode`,3,!1),r=$(t,`ondestinationselect`,3,()=>{}),i=$(t,`onselectionchange`,3,()=>{}),a=R({}),o=I(``),s=P(()=>t.revision<0?{entries:[],loading:!1,error:!1}:t.controller.state(``)),c=P(()=>{if(t.revision<0)return[];let e=[],n=(r,i)=>{for(let a of t.controller.state(r).entries)e.push({entry:a,level:i,parent:r}),a.kind===`directory`&&t.controller.expanded.has(a.path)&&n(a.path,i+1)};return n(``,1),e});function l(e){L(o,e,!0),a[e]?.focus()}function u(e){t.controller.expanded.has(e.path)?t.controller.collapse(e.path):t.controller.expand(e.path)}function d(e,n,r){let i=n.entry,a=n.parent,o=e=>{let t=G(c)[Math.max(0,Math.min(G(c).length-1,e))];t&&l(t.entry.path)};switch(e.key){case`ArrowDown`:e.preventDefault(),o(r+1);break;case`ArrowUp`:e.preventDefault(),o(r-1);break;case`Home`:e.preventDefault(),o(0);break;case`End`:e.preventDefault(),o(G(c).length-1);break;case`ArrowRight`:i.kind===`directory`&&(e.preventDefault(),t.controller.expanded.has(i.path)?o(r+1):u(i));break;case`ArrowLeft`:e.preventDefault(),i.kind===`directory`&&t.controller.expanded.has(i.path)?t.controller.collapse(i.path):a&&l(a);break;case`Enter`:case` `:e.preventDefault(),f(i);break}}function f(e){if(e.kind!==`symlink`){if(n()){e.kind===`directory`&&r()(e.path);return}t.controller.select(e.path),i()(e.path)}}var p=om();{let e=(r,i=b,s=b)=>{var l=Hr();Z(B(l),17,()=>t.controller.state(i()).entries,e=>e.path,(r,i)=>{let l=P(()=>G(i).kind===`directory`),p=P(()=>G(c).find(e=>e.entry.path===G(i).path)),m=P(()=>G(c).findIndex(e=>e.entry.path===G(i).path));var h=nm();let g;var _=z(h);let v;var y=z(_),b=e=>{var n=Yp(),r=z(n,!0);N(n),H((e,t)=>{Q(n,`aria-label`,e),Y(r,t)},[()=>`${t.controller.expanded.has(G(i).path)?`Collapse`:`Expand`} ${G(i).name}`,()=>t.controller.expanded.has(G(i).path)?`−`:`+`]),K(`click`,n,e=>{e.stopPropagation(),u(G(i))}),J(e,n)},x=e=>{J(e,Xp())};X(y,e=>{G(l)?e(b):e(x,-1)});var S=V(y,2),C=z(S,!0);N(S);var w=V(S),T=e=>{J(e,Zp())},E=e=>{var t=Qp();H(()=>Q(t,`id`,`${G(i).path}-unsupported`)),J(e,t)};X(w,e=>{n()&&!G(l)?e(T):G(i).kind===`symlink`&&e(E,1)}),N(_);var D=V(_,2),O=n=>{let r=P(()=>t.controller.state(G(i).path));var a=tm(),o=z(a),c=e=>{J(e,$p())};X(o,e=>{G(r).loading&&e(c)});var l=V(o,2),u=e=>{var n=em(),r=z(n);N(n),H(()=>Y(r,`Retry ${G(i).name??``}`)),K(`click`,n,()=>void t.controller.load(G(i).path)),J(e,n)};X(l,e=>{G(r).error&&e(u)});var d=V(l,2);e(d,()=>G(i).path,()=>s()+1);var f=V(d,2),p=e=>{var n=em(),r=z(n);N(n),H(()=>Y(r,`Load more in ${G(i).name??``}`)),K(`click`,n,()=>void t.controller.load(G(i).path,!0)),J(e,n)};X(f,e=>{G(r).cursor&&e(p)}),N(a),H(()=>Q(a,`aria-label`,`Contents of ${G(i).name}`)),J(n,a)},k=P(()=>G(l)&&t.controller.expanded.has(G(i).path));X(D,e=>{G(k)&&e(O)}),N(h),Li(h,(e,t)=>a[t.path]=e,e=>a?.[e.path],()=>[G(i)]),H(e=>{g=gi(h,1,`treeitem svelte-am0nvt`,null,g,{symlink:G(i).kind===`symlink`}),Q(h,`aria-level`,s()),Q(h,`aria-expanded`,e),Q(h,`aria-selected`,G(i).kind===`symlink`?`false`:t.controller.selectedPath===G(i).path),Q(h,`aria-disabled`,G(i).kind===`symlink`),Q(h,`aria-describedby`,G(i).kind===`symlink`?`${G(i).path}-unsupported`:void 0),Q(h,`tabindex`,G(o)===G(i).path||!G(o)&&G(m)===0?0:-1),v=vi(_,``,v,{"--level":s()}),Y(C,G(i).name)},[()=>G(l)?t.controller.expanded.has(G(i).path):void 0]),Nr(`focus`,h,()=>L(o,G(i).path,!0)),K(`keydown`,h,e=>d(e,G(p),G(m))),K(`click`,h,()=>f(G(i))),J(r,h)}),J(r,l)};var m=z(p),h=e=>{J(e,rm())};X(m,e=>{G(s).loading&&e(h)});var g=V(m,2),_=e=>{var n=im();K(`click`,n,()=>void t.controller.load(``)),J(e,n)};X(g,e=>{G(s).error&&e(_)});var v=V(g,2);e(v,()=>``,()=>1);var y=V(v,2),x=e=>{var n=am();K(`click`,n,()=>void t.controller.load(``,!0)),J(e,n)};X(y,e=>{G(s).cursor&&e(x)}),N(p)}J(e,p),$e()}Pr([`keydown`,`click`]);var cm=class{workspaceId;read;changed;failed;expanded=new Set([``]);selectedPath=``;pages=new Map;generations=new Map;requests=new Map;version=0;constructor(e,t,n,r=()=>{}){this.workspaceId=e,this.read=t,this.changed=n,this.failed=r}state(e){return this.pages.get(e)??{entries:[],loading:!1,error:!1}}async load(e=``,t=!1){let n=this.state(e);if(n.loading||t&&!n.cursor)return;let r=(this.generations.get(e)??0)+1;this.generations.set(e,r),this.requests.get(e)?.abort();let i=new AbortController;this.requests.set(e,i),this.pages.set(e,{...n,loading:!0,error:!1}),this.publish();try{let a=await this.read(this.workspaceId,{directory:e,...t?{cursor:n.cursor}:{}},i.signal);if(i.signal.aborted||this.generations.get(e)!==r)return;let o=t?lm(n.entries,a.entries):a.entries;this.pages.set(e,{entries:o,cursor:a.nextCursor,loading:!1,error:!1})}catch(t){if(i.signal.aborted||this.generations.get(e)!==r)return;this.pages.set(e,{...n,loading:!1,error:!0}),this.failed(t)}finally{this.requests.get(e)===i&&this.requests.delete(e),this.publish()}}async expand(e){this.expanded.add(e),this.publish(),this.pages.has(e)||await this.load(e)}collapse(e){this.expanded.delete(e),this.generations.set(e,(this.generations.get(e)??0)+1),this.requests.get(e)?.abort(),this.publish()}async refresh(e=``){this.invalidateBranch(e),await this.load(e)}select(e){this.selectedPath=e,this.publish()}close(){this.requests.forEach(e=>e.abort()),this.requests.clear()}invalidateBranch(e){for(let t of[...this.pages.keys()])(t===e||t.startsWith(e?`${e}/`:``))&&(this.pages.delete(t),this.generations.set(t,(this.generations.get(t)??0)+1),this.requests.get(t)?.abort())}publish(){this.version+=1,this.changed()}};function lm(e,t){let n=new Set(e.map(e=>e.path));return[...e,...t.filter(e=>!n.has(e.path))]}var um=25*1024*1024;function dm(e){return[...e].map(e=>({file:e,status:e.size>26214400?`too-large`:`queued`}))}function fm(e){return e.findIndex(e=>e.status===`queued`)}var pm={phase:`idle`};function mm(e,t){return{phase:`picking`,kind:e,source:t}}function hm(e,t){return e.phase===`picking`?{...e,destination:t}:e}function gm(e){return e.phase!==`picking`||e.destination===void 0?e:{...e,phase:`submitting`}}function _m(e,t){return e.phase===`submitting`?{...e,phase:`conflict`,replaceAllowed:t}:e}function vm(e){return e.phase===`submitting`?{...e,phase:`failed`}:e}function ym(e,t){return e.phase!==`picking`||!e.source||e.kind===`move`&&bm(e.source)===t?!1:!(t===e.source||t.startsWith(`${e.source}/`))}function bm(e){let t=e.lastIndexOf(`/`);return t<0?``:e.slice(0,t)}var xm=q(`<li> </li>`),Sm=q(`<button type="button" class="svelte-qx7639">Replace</button>`),Cm=q(`<div class="browser-actions svelte-qx7639" aria-label="Upload conflict"><!> <button type="button" class="svelte-qx7639">Keep both</button> <button type="button" class="svelte-qx7639">Cancel remaining</button></div>`),wm=q(`<button type="button" class="svelte-qx7639">Cancel uploads</button>`),Tm=q(`<section class="picker svelte-qx7639" aria-label="Upload queue" aria-live="polite"><p class="svelte-qx7639"> </p> <ul></ul> <!></section>`),Em=q(`<div class="browser-actions svelte-qx7639" aria-label="Selected file actions"><button type="button" class="svelte-qx7639">Copy</button> <button type="button" class="svelte-qx7639">Move</button> <button type="button" class="svelte-qx7639">Delete</button></div>`),Dm=q(`<section class="picker svelte-qx7639" aria-label="Delete confirmation" aria-live="assertive"><h3> </h3> <p class="svelte-qx7639"> </p> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Cancel</button> <button type="button" class="svelte-qx7639"> </button></div></section>`),Om=q(`<section class="picker svelte-qx7639" aria-label="Choose destination folder" aria-live="polite"><p class="svelte-qx7639"><strong> </strong> </p> <p class="svelte-qx7639"> </p> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Use root folder</button> <button type="button" class="svelte-qx7639"> </button> <button type="button" class="svelte-qx7639">Cancel</button></div></section>`),km=q(`<section class="picker svelte-qx7639" tabindex="-1" aria-label="File conflict" aria-live="assertive"><h3>Destination already contains this item</h3> <p class="svelte-qx7639"> </p> <div class="browser-actions svelte-qx7639"><!> <button type="button" class="svelte-qx7639">Keep both</button> <button type="button" class="svelte-qx7639">Cancel</button></div></section>`),Am=q(`<section class="picker svelte-qx7639" aria-label="Transfer failed"><p role="status" class="svelte-qx7639">Transfer could not be completed.</p> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Try again</button><button type="button" class="svelte-qx7639">Cancel</button></div></section>`),jm=q(`<section aria-label="File browser error"><p class="svelte-qx7639">Files could not be read. Try again.</p></section>`),Mm=q(`<p role="status" class="svelte-qx7639">This folder is empty.</p>`),Nm=q(`<dialog aria-labelledby="file-browser-title" class="svelte-qx7639"><section class="file-browser-shell svelte-qx7639"><header class="svelte-qx7639"><div class="svelte-qx7639"><h2 id="file-browser-title" tabindex="-1" class="svelte-qx7639"> </h2> <p class="svelte-qx7639"> </p></div> <button type="button" class="close svelte-qx7639" aria-label="Close file browser">×</button></header> <div class="browser-actions svelte-qx7639"><button type="button" class="svelte-qx7639">Refresh</button></div> <div class="upload-actions svelte-qx7639"><input class="visually-hidden svelte-qx7639" type="file" multiple="" aria-label="Choose files to upload"/> <p class="svelte-qx7639"> </p> <button type="button" class="svelte-qx7639">Upload files</button></div> <!> <!> <!> <!> <!> <!></section></dialog>`);function Pm(e,t){Qe(t,!0);let n=$(t,`onsuccess`,3,()=>{}),r=$(t,`onmutation`,3,()=>{}),i=I(null),a=I(null),o=I(0),s=I(null),c=I(R(pm)),l=I(null),u=I(``),d=I(!1),f=I(!1),p=I(null),m=I(null),h=I(R([])),g=I(!1),_=I(null),v=I(null),y=P(()=>G(o)<0?{entries:[],loading:!1,error:!1}:G(s)?.state(``)??{entries:[],loading:!0,error:!1}),b=P(()=>{if(!G(s)||!G(u))return;let e=G(u).includes(`/`)?G(u).slice(0,G(u).lastIndexOf(`/`)):``;return G(s).state(e).entries.find(e=>e.path===G(u))}),x=P(()=>`Files in ${t.root.relativePath===`.`?`~/`:`~/${t.root.relativePath}`}`);Ri(async()=>{L(s,new cm(t.root.id,t.listDirectory,()=>{L(o,G(o)+1)},t.onerror),!0),await Cr(),G(i)?.showModal(),G(a)?.focus(),await G(s).load()}),zi(()=>G(s)?.close());function S(){G(c).phase===`submitting`||G(f)||(G(_)?.abort(),G(s)?.close(),G(i)?.close())}let C=P(()=>G(b)?.kind===`directory`||!G(u)?G(u):``),w=P(()=>G(C)||``);async function T(e=`reject`){if(!(G(g)||!G(s))){L(g,!0);try{for(;;){let n=G(v)?.index??fm(G(h));if(L(v,null),n<0)break;let i=G(h)[n];if(!i||i.status===`too-large`)continue;L(h,G(h).map((e,t)=>t===n?{...e,status:`uploading`}:e),!0);let a=new AbortController;L(_,a,!0);try{let o=await t.uploadFile(t.root.id,{directory:G(w),filename:i.file.name,conflict:e,file:i.file},Va(),a.signal);L(h,G(h).map((e,t)=>t===n?{...e,status:`completed`,path:o.path}:e),!0),await G(s).refresh(G(w)),G(s).select(G(w)),L(u,G(w),!0),r()(),e=`reject`}catch(e){let r=e;if(r.status===409){L(h,G(h).map((e,t)=>t===n?{...e,status:`queued`}:e),!0),L(v,{index:n,replaceAllowed:r.replaceAllowed===!0},!0);break}L(h,G(h).map((e,t)=>t===n?{...e,status:a.signal.aborted?`cancelled`:`failed`}:e),!0),t.onerror(e)}finally{L(_,null)}}}finally{L(g,!1);let e=G(h).filter(e=>e.status===`completed`).length;e&&n()(`Uploaded ${e} file${e===1?``:`s`}.`)}}}function E(e){!e||e.length===0||(L(h,dm(e),!0),T())}function D(){G(_)?.abort(),L(h,G(h).map(e=>e.status===`queued`||e.status===`uploading`?{...e,status:`cancelled`}:e),!0),L(v,null)}function O(e){if(G(c).phase===`submitting`||G(f)){e.preventDefault();return}e.preventDefault(),S()}async function k(){if(!(!G(u)||G(f))){L(f,!0);try{let e=G(u).includes(`/`)?G(u).slice(0,G(u).lastIndexOf(`/`)):``;await t.deleteEntry(t.root.id,G(u),Va()),await G(s)?.refresh(e),G(s)?.select(e),L(u,e,!0),n()(`Deleted item.`),r()(),L(d,!1)}catch(e){t.onerror(e)}finally{L(f,!1)}}}async function ee(){L(d,!0),await Cr(),G(p)?.focus()}function te(e){G(u)&&L(c,mm(e,G(u)),!0)}function ne(e){ym(G(c),e)&&L(c,hm(G(c),e),!0)}async function re(e=`reject`){if(!G(s)||G(c).phase!==`picking`&&G(c).phase!==`conflict`)return;let i=G(c).phase===`picking`?gm(G(c)):{...G(c),phase:`submitting`};if(!(!i.source||i.destination===void 0||!i.kind)){L(c,i,!0);try{let a=await(i.kind===`copy`?t.copyEntry:t.moveEntry)(t.root.id,{source:i.source,destinationDirectory:i.destination,conflict:e},Va()),o=i.source.includes(`/`)?i.source.slice(0,i.source.lastIndexOf(`/`)):``;i.kind===`copy`?await G(s).refresh(i.destination):await Promise.all([G(s).refresh(o),G(s).refresh(i.destination)]),G(s).select(a.path),n()(`${i.kind===`copy`?`Copied`:`Moved`} ${a.path}.`),r()(),L(c,pm,!0)}catch(e){let n=e;n.status===409?(L(c,_m(i,n.replaceAllowed===!0),!0),await Cr(),G(l)?.focus()):(L(c,vm(i),!0),t.onerror(e))}}}var A=Nm(),ie=z(A),ae=z(ie),oe=z(ae),se=z(oe),ce=z(se,!0);N(se),Li(se,e=>L(a,e),()=>G(a));var le=V(se,2),ue=z(le,!0);N(le),N(oe);var de=V(oe,2);N(ae);var fe=V(ae,2),pe=z(fe);N(fe);var me=V(fe,2),he=z(me);Li(he,e=>L(m,e),()=>G(m));var ge=V(he,2),_e=z(ge);N(ge);var ve=V(ge,2);N(me);var ye=V(me,2),be=e=>{var t=Tm(),n=z(t),r=z(n);N(n);var i=V(n,2);Z(i,21,()=>G(h),e=>e.file,(e,t)=>{var n=xm(),r=z(n);N(n),H(()=>Y(r,`${G(t).file.name??``}: ${G(t).path??G(t).status??``}${G(t).status===`too-large`?` (maximum ${um/1024/1024} MiB)`:``}`)),J(e,n)}),N(i);var a=V(i,2),o=e=>{var t=Cm(),n=z(t),r=e=>{var t=Sm();K(`click`,t,()=>void T(`replace`)),J(e,t)};X(n,e=>{G(v).replaceAllowed&&e(r)});var i=V(n,2),a=V(i,2);N(t),K(`click`,i,()=>void T(`keep-both`)),K(`click`,a,D),J(e,t)},s=e=>{var t=wm();K(`click`,t,D),J(e,t)};X(a,e=>{G(v)?e(o):G(g)&&e(s,1)}),N(t),H((e,t)=>Y(r,`${e??``} queued, ${t??``} completed`),[()=>G(h).filter(e=>e.status===`queued`).length,()=>G(h).filter(e=>e.status===`completed`).length]),J(e,t)};X(ye,e=>{G(h).length&&e(be)});var xe=V(ye,2),Se=e=>{var t=Em(),n=z(t),r=V(n,2),i=V(r,2);N(t),K(`click`,n,()=>te(`copy`)),K(`click`,r,()=>te(`move`)),K(`click`,i,()=>void ee()),J(e,t)};X(xe,e=>{G(s)&&G(c).phase===`idle`&&G(b)&&G(b).kind!==`symlink`&&e(Se)});var Ce=V(xe,2),we=e=>{var t=Dm(),n=z(t),r=z(n,!0);N(n);var i=V(n,2),a=z(i,!0);N(i);var o=V(i,2),s=z(o);Li(s,e=>L(p,e),()=>G(p));var c=V(s,2),l=z(c,!0);N(c),N(o),N(t),H(()=>{Y(r,G(b).kind===`directory`?`Delete folder and all contents`:`Delete file`),Y(a,G(u)),s.disabled=G(f),c.disabled=G(f),Y(l,G(f)?`Deleting…`:`Delete`)}),K(`click`,s,()=>L(d,!1)),K(`click`,c,()=>void k()),J(e,t)};X(Ce,e=>{G(d)&&G(b)&&e(we)});var Te=V(Ce,2),Ee=e=>{var t=Om(),n=z(t),r=z(n),i=z(r);N(r);var a=V(r);N(n);var o=V(n,2),s=z(o);N(o);var l=V(o,2),u=z(l),d=V(u,2),f=z(d);N(d);var p=V(d,2);N(l),N(t),H(e=>{Y(i,`${G(c).kind===`copy`?`Copy`:`Move`}:`),Y(a,` ${G(c).source??``}`),Y(s,`Destination: ${(G(c).destination===``?`root folder`:G(c).destination??`choose a folder`)??``}`),u.disabled=e,d.disabled=G(c).destination===void 0,Y(f,`Confirm ${G(c).kind??``}`)},[()=>!ym(G(c),``)]),K(`click`,u,()=>ne(``)),K(`click`,d,()=>void re()),K(`click`,p,()=>L(c,pm,!0)),J(e,t)},De=e=>{var t=km(),n=V(z(t),2),r=z(n,!0);N(n);var i=V(n,2),a=z(i),o=e=>{var t=Sm();K(`click`,t,()=>void re(`replace`)),J(e,t)};X(a,e=>{G(c).replaceAllowed&&e(o)});var s=V(a,2),u=V(s,2);N(i),N(t),Li(t,e=>L(l,e),()=>G(l)),H(()=>Y(r,G(c).destination)),K(`click`,s,()=>void re(`keep-both`)),K(`click`,u,()=>L(c,pm,!0)),J(e,t)},Oe=e=>{var t=Am(),n=V(z(t),2),r=z(n),i=V(r);N(n),N(t),K(`click`,r,()=>L(c,{...G(c),phase:`picking`},!0)),K(`click`,i,()=>L(c,pm,!0)),J(e,t)};X(Te,e=>{G(c).phase===`picking`?e(Ee):G(c).phase===`conflict`?e(De,1):G(c).phase===`failed`&&e(Oe,2)});var ke=V(Te,2),Ae=e=>{J(e,jm())},je=e=>{J(e,Mm())};X(ke,e=>{G(s)&&!G(y).loading&&G(y).error?e(Ae):G(s)&&!G(y).loading&&G(y).entries.length===0&&e(je,1)});var Me=V(ke,2),Ne=e=>{var t=Hr();Yr(B(t),()=>G(o),e=>{{let t=P(()=>G(c).phase===`picking`);sm(e,{get controller(){return G(s)},get revision(){return G(o)},get destinationMode(){return G(t)},ondestinationselect:ne,onselectionchange:e=>L(u,e,!0)})}}),J(e,t)};X(Me,e=>{G(s)&&e(Ne)}),N(ie),N(A),Li(A,e=>L(i,e),()=>G(i)),H(()=>{Y(ce,G(x)),Y(ue,G(c).phase===`picking`?`Choose destination folder.`:`Browse folders and select a position.`),pe.disabled=G(y).loading,Y(_e,`Upload destination: ${(G(b)?.kind===`file`?`Select a folder first`:G(u)||`root folder`)??``}`),ve.disabled=G(b)?.kind===`file`||G(g)}),Nr(`close`,A,function(...e){t.onclose?.apply(this,e)}),Nr(`cancel`,A,O),K(`click`,de,S),K(`click`,pe,()=>void G(s)?.refresh()),K(`change`,he,e=>E(e.currentTarget.files)),K(`click`,ve,()=>G(m)?.click()),J(e,A),$e()}Pr([`click`,`change`]);var Fm=q(`<main class="evidence-mode svelte-1d2e8zz"><!></main>`),Im=q(`<span class="detached-chat-model svelte-1d2e8zz"> </span>`),Lm=q(`<header class="detached-chat-header svelte-1d2e8zz"><div class="detached-chat-context svelte-1d2e8zz"><span class="svelte-1d2e8zz">Chat</span> <strong class="svelte-1d2e8zz"> </strong></div> <!></header>`),Rm=q(`<div class="recovery-notice" role="status" aria-live="polite" aria-atomic="true"><span> </span> <button type="button">Dismiss</button></div>`),zm=q(`<!> <!> <div class="chat-controls svelte-1d2e8zz" aria-label="Chat controls"><!> <!></div> <div class="chat-tail svelte-1d2e8zz" aria-hidden="true"></div>`,1),Bm=q(`<p> </p>`),Vm=q(`<section class="chat-view svelte-1d2e8zz" aria-labelledby="chat-title"><h2 id="chat-title" class="visually-hidden">Chat</h2> <!> <!> <p class="visually-hidden" aria-live="polite" aria-atomic="true"> </p> <!></section>`),Hm=q(`<p>Loading skill profiles…</p>`),Um=q(`<section class="session-profile-manager" aria-labelledby="session-profile-manager-title"><div class="session-profile-manager-header svelte-1d2e8zz"><h2 id="session-profile-manager-title" tabindex="-1" class="svelte-1d2e8zz">Manage skill profiles</h2> <button type="button" class="close-profile-manager svelte-1d2e8zz" aria-label="Close skill profile editor">×</button></div> <!></section>`),Wm=q(`<!> <!> <!> <!>`,1),Gm=q(`<main class="swipe-surface svelte-1d2e8zz"><!> <!> <!> <!></main> <!>`,1);function Km(e,t){Qe(t,!0);let n=$(t,`oncreatepasskey`,3,()=>{}),r=Hc(location.search),i=I(null),a=I(R(r?`chat`:`sessions`)),o=I(!1),s=I(!1),c=I(null),l=I(null),u=!1,d=I(`Loading relay…`),f=I(R(Er(()=>t.theme))),p=I(R([])),m=`gpt-5.6-terra`,h=I([m]),g=I(m),_=I([]),v=I(null),y=I(`list`),b=I([]),x=I(``),S=I(``),C=I(``),w=I(R(new Set)),T=I(null),E=I(R([])),D=I(new Map),O=I({snapshots:new Map,attention:new Map,pending:new Set,errors:new Map}),k=I(new Map),ee=0,te=null,ne=P(()=>G(E).some(e=>e.id===G(T))),re=I(R([])),A=I(`workspace-write`),ie=I(`on-request`),ae=I(R({starting:!1,error:null})),oe=P(()=>G(ae).starting),se=I(null),ce=0,le=I(null),ue=I(null),de=I(null),fe=I(``),pe=I(R({kind:`unavailable`,sessionId:null})),me=I({kind:`no-workspace`}),he=I(null),ge=I(null),_e=I(!1),ve=null,ye=null,be=0,xe=0,Se=I(null),Ce=P(()=>(G(E).find(e=>e.id===G(T))?.workspaceId??G(C))||null),we=P(()=>G(E).find(e=>e.id===G(T))?.workspacePath??null),Te=P(()=>G(E).find(e=>e.id===G(T))??null),Ee=P(()=>nf(G(Te)?.workspacePath??``));function De(e){return`kind`in e&&e.kind===`org-source`}function Oe(e){return r?e.filter(e=>e.id===G(T)):e}let ke=P(()=>G(he)&&De(G(he))?G(he):G(he)?{kind:`ready`,sessionId:`catalog`,plan:G(he)}:G(_e)?null:G(pe).kind===`ready`||G(pe).kind===`closing`||G(pe).kind===`error`&&G(pe).plan?G(pe):null),Ae=P(()=>Bu(G(pe).kind===`ready`||G(pe).kind===`closing`||G(pe).kind===`error`?G(pe).plan:void 0)),je=I(R({workspaceId:null,summary:null,loading:!1,refreshing:!1,checkingOut:!1,error:null})),Me=P(()=>G(je).workspaceId),Ne=I(R(new Set)),Pe=I(!1),Fe=I(!1),Ie=I(null),Le=I(null),Re=I(null),j=R({}),ze=I({}),M=I(null),Be=``,Ve=new Pl({requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e),reducedMotion:()=>window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,scrollTail:e=>G(M)?.scrollIntoView({block:`end`,behavior:e})}),He=new Fl(e=>void Cr().then(e),e=>{G(a)===`chat`&&Ve.request(e)}),Ue=P(()=>{let e=G(i)?.interactions.findLast(e=>e.state!==`pending`);return e?e.state===`submitting`?`Sending decision.`:e.state===`failed`?`Could not send decision. Retry is available.`:e.state===`resolved`?e.attemptedOutcome===`denied`?`Decision denied.`:e.attemptedOutcome===`dismissed`?`Request is no longer awaiting a response.`:e.attemptedOutcome===`answered`?`Answers sent.`:`Decision approved.`:``:``}),We=Au((e,n)=>t.authorizedFetch(e,n)),Ge=new Ja(We,e=>L(O,e)),Ke=new Ba({relay:We,publish:e=>L(D,new Map(e)),onEvent:(e,t)=>Ge.observe(e,t),onAuthoritativeSnapshot:(e,t)=>Ge.applyAuthoritative(e,t)}),qe=new Ml({relay:We,cache:Bc(),publish:e=>L(i,e,!0),onSessionEvent:e=>yn(e),onRelayEvent:e=>{G(T)&&Ke.observe(G(T),e)},onHistoryError:e=>{L(d,gn(e,`SESSION_HISTORY_READ_FAILED`),!0)},onSendError:(e,t)=>{let n=Ll(e,`MESSAGE_SEND_FAILED`);if(n.code===`SESSION_WORKSPACE_UNAVAILABLE`){L(le,null),L(ue,null),tt.enqueue({kind:`warning`,...n});return}L(le,n.message,!0),L(ue,n.retryable?t:null,!0),L(d,gn(e,`MESSAGE_SEND_FAILED`),!0)},onSendAccepted:e=>{G(ue)===e&&(L(le,null),L(ue,null))}}),Je=new Ef({start:We.startSession},Va,e=>L(ae,e,!0)),Ye=new Cu({getSummary:We.getGitSummary,pull:We.pullGit,checkout:We.checkoutGitBranch},e=>!!Zl(G(p),e)?.isGitRepository,e=>L(je,e,!0),(e,t)=>gn(e,t)),Xe=Rp((e,n)=>t.authorizedFetch(e,n)),Ze=zu({getPlan:We.getPlan,closePlan:We.closePlan},e=>{L(pe,e,!0),(e.kind===`ready`||e.kind===`closing`)&&L(E,G(E).map(t=>t.id===e.sessionId?{...t,plan:e.plan}:t),!0)}),et=Zd(),tt=zl(),nt=new URLSearchParams(location.search).get(`tree-evidence`),rt=new URLSearchParams(location.search).get(`toast-evidence`),it=new URLSearchParams(location.search).get(`activity-evidence`),at=ro(window.sessionStorage),ot=new Set;Mn(()=>{for(let[e,t]of G(O).attention){let n=`${e}:${t.requestId}`;at.claim(n)&&tt.enqueue({kind:`error`,code:`AUTOPILOT_ATTENTION_${t.requestId}`,message:`Autopilot needs your attention.`})}}),Mn(()=>{let e=new Set;for(let[t,n]of G(O).errors){let r=`${t}:${n}`;e.add(r),!ot.has(r)&&(ot.add(r),tt.enqueue({kind:`error`,message:n}))}for(let t of ot)e.has(t)||ot.delete(t)});function st(){L(s,!0)}function ct(){L(s,!1),Cr().then(()=>document.querySelector(`.menu-trigger`)?.focus())}Ri(async()=>{if(!(nt===`sessions`||nt===`git`||rt===`error`||rt===`stacked`))try{let e=await kc(t.authorizedFetch);L(C,Ql(G(C)||null,G(p),e.workspaces,Kl.sessionBase)??``,!0),L(p,e.workspaces,!0),L(_,e.profiles),L(h,[...new Set([m,...e.models??[]])]),r||await Kt(),L(w,ql(G(p)),!0),L(Ne,ql(G(p)),!0);let n=r?null:await et.readSelectedSession();L(T,r?e.sessions.find(e=>e.id===r)?.id??null:e.sessions.some(e=>e.id===n)?n:e.sessions[0]?.id??null,!0),G(T)&&L(fe,await et.readDraft(G(T)),!0),L(E,e.sessions,!0);let i=Oe(e.sessions.filter(e=>[`ready`,`turnActive`].includes(e.state)));Ke.bootstrap(i,G(T)),Ge.bootstrap(i),r||vt(),Ze.select(G(T)),G(T)?qe.select(G(T)):r&&L(d,`This session is no longer open in Gestalt Mobile.`)}catch(e){L(d,gn(e,`RELAY_UNAVAILABLE`),!0)}}),Mn(()=>{if(!G(M))return;let e=new IntersectionObserver(([e])=>Ve.observeTail(e?.isIntersecting??!1),{root:null});return e.observe(G(M)),()=>e.disconnect()}),Mn(()=>{let e=G(i),t=G(a),n=e?JSON.stringify({messages:e.messages.map(({id:e,text:t,complete:n})=>[e,t,n]),activities:e.activities.map(({id:e,label:t,detail:n})=>[e,t,n]),interactions:e.interactions.map(({key:e,state:t,attemptedOutcome:n})=>[e,t,n])}):``;!n||n===Be||(Be=n,t===`chat`&&lt(`content`))});function lt(e){He.schedule(e)}function ut(){He.invalidate(),Ve.reset(),L(a,`chat`),Xt(`chat`),lt(`initial`),Zt()}function dt(e){L(f,$i(e),!0)}function ft(){if(!G(T))return;let e=window.open(Uc(location.href,G(T)),Wc(G(T)),`popup,width=760,height=900`);if(!e){tt.enqueue({kind:`error`,message:`The Chat window was blocked. Allow pop-ups for this site and try again.`});return}try{e.opener=null}catch{}e.focus()}zi(()=>{He.invalidate(),Ve.cancel(),qe.dispose(),Ke.dispose(),Ge.dispose(),Ze.dispose(),Ye.dispose(),Je.dispose(),G(v)?.dispose()});async function pt(){if(!G(C)||G(oe))return;let e=Tf({workspaceId:G(C),profile:`default`,profileState:`ok`});if(e.profile){L(d,e.profile,!0);return}L(d,`Starting session…`);let t=await Je.start(G(C),{sandbox:G(A),approvalPolicy:G(ie),model:G(g),skillProfile:G(x)||void 0});if(!t){G(ae).error&&L(d,gn(Error(G(ae).error),`SESSION_START_FAILED`),!0);return}try{L(T,t.id,!0);for(let e of t.effectiveSkillSelection?.warnings??[])tt.enqueue({kind:`warning`,code:`SKILL_PROFILE_MISSING_SKILL`,message:e});Ze.select(t.id),et.saveSelectedSession(t.id),await mt(),L(fe,await et.readDraft(t.id),!0),qe.select(t.id,{history:`empty`}),Ke.select(t.id),ut(),L(d,`Session started.`)}catch(e){L(d,gn(e,`SESSION_START_FAILED`),!0)}}async function mt(){let e=++ee;te?.abort();let t=new AbortController;te=t;try{let n=await We.listSessions(t.signal);if(e!==ee||t.signal.aborted)return;L(E,n.map(e=>G(k).has(e.id)?{...e,plan:G(k).get(e.id)}:e),!0);let r=Oe(G(E).filter(e=>[`ready`,`turnActive`].includes(e.state)));Ke.bootstrap(r,G(T)),Ge.bootstrap(r)}catch(e){if(t.signal.aborted||vn(e))return;throw e}finally{te===t&&(te=null)}}async function ht(e,t){await Ge.toggle(e,t),e===G(T)&&mt().catch(()=>{})}async function gt(e){await ht(e,!0),await Cr(),e===G(T)&&document.getElementById(`chat-autopilot-${e}-button`)?.focus({preventScroll:!0})}async function _t(e,t,n){await Ge.resolve(e,t,n),e===G(T)&&mt().catch(()=>{})}async function vt(){try{L(re,await We.listRecentSessions(),!0)}catch{L(re,[],!0)}}async function yt(){try{await Promise.all([mt(),vt()])}catch(e){L(d,gn(e,`SESSION_REFRESH_FAILED`),!0)}}async function bt(e){L(d,`Opening session…`),L(se,e,!0);let t=++ce;try{L(T,e,!0),L(le,null),L(ue,null),Ze.select(e),et.saveSelectedSession(e),qe.select(e),Ke.select(e),ut();let n=await et.readDraft(e);t===ce&&G(T)===e&&L(fe,n,!0)}catch(e){L(d,gn(e,`SESSION_HISTORY_READ_FAILED`),!0)}finally{t===ce&&L(se,null)}}async function xt(e){L(d,`Opening recent session…`);try{let t=await We.openRecentSession(e.id,e.cwd);G(E).some(e=>e.id===t.id)||L(E,[...G(E),t],!0),yt(),await bt(t.id)}catch(e){L(d,gn(e,`SESSION_HISTORY_READ_FAILED`),!0)}}async function St(e){L(d,`Closing session…`);try{await We.releaseSession(e),G(T)===e&&(L(T,null),L(a,`sessions`),et.saveSelectedSession(null),qe.select(null),Ke.select(null),Ze.select(null)),await yt(),L(d,`Session closed.`)}catch(e){L(d,`Could not close session: ${hn(e)}`)}}async function Ct(e){let t=G(E).find(t=>t.id===e);try{await We.forgetSession(e),G(T)===e&&(qe.select(null),Ke.select(null),L(T,null),et.saveSelectedSession(null),Ze.select(null)),await yt(),L(re,tf(G(re),t),!0)}catch(e){L(d,`Could not forget session: ${hn(e)}`)}}async function wt(e){L(d,await Fs(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function Tt(e){if(!(!G(T)||G(i)?.activeTurnId))try{let t=await We.selectModel(G(T),e);L(E,G(E).map(e=>e.id===t.id?{...e,...t}:e),!0),L(fe,``),L(d,`Model changed to ${e}; it applies to the next turn.`)}catch(e){L(d,`Could not change model: ${hn(e)}`)}}async function Et(){let e=Va();qe.send(G(fe),e),kt()}async function Dt(){let e=Va();qe.queue(G(fe),e),kt()}async function Ot(){let e=Va();qe.interruptAndSend(G(fe),e),kt()}function kt(){L(fe,``),lt(`explicit`),G(T)&&et.saveDraft(G(T),``)}async function At(){G(ue)&&(L(le,null),await qe.retryPrompt(G(ue)))}async function jt(){await qe.interrupt()}function F(){G(a)===`chat`&&G(T)&&qe.refresh()}function Mt(e){if(r||e===`chat`&&!G(ne))return;let t=G(a)!==e;G(a)===`chat`&&e!==`chat`&&(He.invalidate(),Ve.cancel()),L(a,e,!0),Xt(e),e===`chat`&&(F(),Ve.reset(),lt(`initial`),t&&Zt()),e===`git`&&G(Me)&&Ye.refresh(),e===`plan`&&(G(T)&&Ze.refresh(G(T)),t||Wt()),e===`sessions`&&(G(y)===`profile-manager`&&Yt(!1),yt(),G(T)&&Ze.refresh(G(T)))}Mn(()=>{let e=G(Ce);G(a)===`plan`&&Bt(e)});let Nt=!1;function Pt(){document.visibilityState!==`visible`||Nt||(Nt=!0,queueMicrotask(()=>{Nt=!1,document.visibilityState===`visible`&&(G(a)===`git`&&G(Me)&&Ye.refresh(),G(a)===`plan`&&Wt(),G(a)===`sessions`&&(yt(),G(T)&&Ze.refresh(G(T))))}))}let Ft=null;function It(e){return e instanceof Element&&e.closest(`button, input, textarea, select, a, summary, [contenteditable]`)!==null}function Lt(e){e.pointerType!==`touch`||It(e.target)||(Ft={pointerId:e.pointerId,x:e.clientX,y:e.clientY})}function Rt(e){if(!Ft||e.pointerId!==Ft.pointerId)return;let t=Ft;Ft=null;let n=e.clientX-t.x,r=e.clientY-t.y;Math.abs(n)<48||Math.abs(n)<=Math.abs(r)||Mt(Of(G(a),n<0?1:-1,{chatEnabled:G(ne)}))}function zt(e){Ft?.pointerId===e.pointerId&&(Ft=null)}function Bt(e=G(Ce)){if(ve?.abort(),ye?.abort(),L(he,null),L(ge,null),!e){L(me,{kind:`no-workspace`});return}let t=new AbortController;ve=t;let n=++be;L(me,{kind:`loading`,workspaceId:e}),We.listWorkspacePlans(e,t.signal).then(r=>{n!==be||t.signal.aborted||L(me,{kind:`ready`,workspaceId:e,entries:r})}).catch(r=>{n!==be||t.signal.aborted||(G(ke)||tt.enqueue({kind:`error`,code:`WORKSPACE_PLANS_READ_FAILED`,message:`Workspace Org files could not be listed. Try opening the Plan tab again.`}),L(me,{kind:`error`,workspaceId:e,error:r instanceof Error?r.message:`Could not load workspace plans.`}))})}function Vt(e){let t=G(Ce);if(!t)return;ye?.abort();let n=new AbortController;ye=n;let r=++xe;(G(T)?We.openSessionPlan(G(T),e):We.getWorkspacePlan(t,e,n.signal)).then(t=>{r!==xe||n.signal.aborted||(L(he,t),L(ge,e,!0),L(_e,!1))}).catch(()=>{r!==xe||n.signal.aborted||tt.enqueue({kind:`error`,code:`WORKSPACE_PLAN_OPEN_${e}`,message:`This Org file could not be opened. Check that it is readable and try again.`})})}function Ht(e){let t=G(Ce),n=G(we),r=n?Ns(e,n):null;if(!t||!r){tt.enqueue({kind:`error`,code:`ORG_LINK_OUTSIDE_WORKSPACE`,message:`This Org file is not inside the selected workspace and cannot be opened.`});return}Mt(`plan`),Cr().then(()=>{G(Ce)!==t||G(we)!==n||Vt(r)})}function Ut(){L(he,null),L(ge,null),L(_e,!0),Bt()}function Wt(){G(T)&&Ze.refresh(G(T)),G(ge)?Vt(G(ge)):Bt()}async function Gt(e,t){let n=new Jf(We);await n.load(e,t),L(v,n,!0)}async function Kt(){try{let e=await We.listSkillProfiles();L(b,e.profiles.filter(e=>!(`error`in e)));let t=e.profiles.find(e=>`error`in e);L(S,t&&`error`in t?t.error.message:``,!0),G(b).some(e=>e.name===G(x))||L(x,``)}catch(e){L(b,[]),L(S,e instanceof Error?e.message:`Unable to load saved skill profiles.`,!0)}}async function qt(e){let t=G(C)||G(p)[0]?.id||``,n=G(_).find(e=>e.state===`ok`)?.name??``;if(!t||!n){L(d,`Choose a workspace and available Codex profile before managing skill profiles.`);return}await Gt(t,n),L(y,`profile-manager`)}function Jt(e){queueMicrotask(()=>e.focus())}async function Yt(e=!0){L(y,`list`),await Cr(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function Xt(e){requestAnimationFrame(()=>{G(a)===e&&e!==`chat`&&window.scrollTo({top:0})})}function Zt(){Cr().then(()=>{G(a)===`chat`&&document.getElementById(`message`)?.focus({preventScroll:!0})})}function Qt(e){Ye.select(e.id),L(Pe,!1)}function $t(e){let t=G(Me)?Zl(G(p),G(Me)):null;t&&(L(c,t,!0),L(l,e,!0))}async function en(){L(c,null),await Cr(),G(l)?.focus({preventScroll:!0})}function tn(){u||(u=!0,queueMicrotask(()=>{u=!1,G(Me)&&Ye.refresh()}))}async function nn(){let e=G(Me);!e||!Zl(G(p),e)?.isGitRepository||(L(Le,G(Le)??Va(),!0),await Ye.pull(G(Le)),G(je).error||L(Le,null))}async function rn(e){if(G(Fe))return;let n=G(Me)?Zl(G(p),G(Me)):void 0;if(!n||n.isGitRepository){L(Ie,null),tt.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let r=n.id;L(Fe,!0),L(Ie,null);try{await We.cloneGitRepository(r,e);let n=await kc(t.authorizedFetch),i=wu(G(p),n.workspaces,r,e,G(Ne));L(C,Ql(G(C)||null,G(p),n.workspaces,Kl.sessionBase)??``,!0),L(p,n.workspaces,!0),Ye.select(i.selectedId),L(Ne,i.expandedIds,!0),L(Ie,`Repository cloned into the selected workspace.`),tt.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){gn(e,`GIT_CLONE_FAILED`)}finally{L(Fe,!1)}}async function an(e){G(Me)&&await Ye.checkout(e)}async function on(){let e=G(Me);if(e){L(Re,G(Re)??Va(),!0);try{await We.pushGit(e,G(Re)),L(Pe,!1),await Ye.refresh(),L(Re,null)}catch(e){gn(e,`GIT_PUSH_FAILED`)}}}async function sn(e,t){lt(`explicit`),await qe.respond(e,{decision:t})}async function cn(e){lt(`explicit`);let t=e.kind===`quiz`?Zo(e.payload):Qo(e.payload);if(!t)return;let n=t.questions.map(t=>({id:t.id,answer:j[`${e.requestId}:${t.id}`]??``})),r=t.questions.map((e,t)=>({id:e.id,header:e.header,question:e.question,answer:n[t]?.answer??``}));L(ze,{...G(ze),[e.requestId]:r});let a=e.kind===`quiz`?$o(n):Ou(n);try{let t=`quiz-answer:${e.requestId}`,n=G(i)?.prompts.find(e=>e.operationId===t);(!n||n.state===`failed`)&&await qe.queue(ku(r),t),await qe.respond(e.requestId,a)}catch{L(d,`Could not send quiz answers. Please try again.`)}}async function dn(e){let t=Du(e.payload);if(!t){L(d,`Codex sent an invalid permission request.`);return}lt(`explicit`),await qe.respond(e.requestId,t)}function fn(e){e.kind===`quiz`||e.kind===`userInput`?cn(e):e.kind===`permissionsApproval`?dn(e):qe.retryInteraction(e.requestId)}function pn(e,t,n){j[`${e}:${t}`]=n}function mn(e){L(fe,e,!0),G(T)&&et.saveDraft(G(T),e)}function hn(e){return e instanceof Error?e.message:`Unknown relay error.`}function gn(e,t){let n=Ll(e,t);return tt.enqueue({kind:`error`,...n}),n.message}function _n(e){tt.enqueue(e?{kind:`success`,message:`Code copied.`}:{kind:`error`,message:`Code could not be copied. Select it and copy it manually.`})}function vn(e){return(e instanceof DOMException||e instanceof Error)&&e.name===`AbortError`}function yn(e){let t=G(T);if(!t||e.type===`agent.activity.updated`)return;if(e.type===`session.updated`&&typeof e.payload==`object`&&e.payload!==null){let n=e.payload;n.id===t&&L(E,G(E).map(e=>e.id===t?{...e,...n}:e),!0);return}if(e.type!==`plan.updated`&&e.type!==`plan.closed`)return;if(Ze.applyEvent(t,e),e.type===`plan.closed`){L(k,new Map(G(k)).set(t,void 0)),L(E,G(E).map(e=>e.id===t?{...e,plan:void 0}:e),!0);return}let n=Nu(e.payload)?e.payload.plan:Pu(e.payload)?e.payload:null;n&&L(k,new Map(G(k)).set(t,n)),n&&L(E,G(E).map(e=>e.id===t?{...e,plan:n}:e),!0)}var bn=Hr();oi(`1d2e8zz`,e=>{Rn(()=>{un.title=r&&G(Ee)?`Chat · ${G(Ee)} · Gestalt Mobile`:`Gestalt Mobile`})}),Nr(`focus`,ln,Pt),Nr(`visibilitychange`,un,Pt);var xn=B(bn),Sn=e=>{Ra(e,{})},Cn=e=>{Gl(e,{get variant(){return rt}})},wn=e=>{var t=Fm();su(z(t),{get context(){return nt}}),N(t),J(e,t)},Tn=e=>{var l=Gm(),u=B(l),_=z(u),k=e=>{{let n=P(()=>G(a)===`chat`?nf(G(E).find(e=>e.id===G(T))?.workspacePath??``):null),r=P(()=>G(a)===`chat`?G(E).find(e=>e.id===G(T))?.model??m:null),i=P(()=>G(a)===`chat`&&G(T)?ft:void 0);sa(e,{get theme(){return G(f)},get sessionPath(){return G(n)},get sessionModel(){return G(r)},get weeklyQuotaRemaining(){return G(Ae)},get passkeyAuthEnabled(){return t.passkeyAuthEnabled},get onlock(){return t.onlock},ondevices:()=>L(o,!0),onscratchpad:st,onthemechange:dt,get ondetach(){return G(i)}})}};X(_,e=>{!G(o)&&!r&&e(k)});var ee=V(_,2),te=e=>{var t=Lm(),n=z(t),i=V(z(n),2),a=z(i,!0);N(i),N(n);var o=V(n,2),s=e=>{var t=Im(),n=z(t,!0);N(t),H(()=>Y(n,G(Te).model)),J(e,t)};X(o,e=>{G(Te)?.model&&e(s)}),N(t),H(()=>{Q(i,`title`,G(Ee)||r),Y(a,G(Ee)||r)}),J(e,t)};X(ee,e=>{r&&e(te)});var ae=V(ee,2);Ul(ae,{get queue(){return tt}});var ce=V(ae,2),pe=e=>{Ip(e,{get client(){return Xe},onclose:()=>{L(o,!1),Cr().then(()=>document.querySelector(`.menu-trigger`)?.focus())},get onlock(){return t.onlock},oncreatepasskey:e=>n()(e)})},he=e=>{var t=Wm(),n=B(t),o=e=>{var t=Rm(),n=z(t),r=z(n,!0);N(n);var i=V(n,2);N(t),H(()=>Y(r,G(de))),K(`click`,i,()=>L(de,null)),J(e,t)};X(n,e=>{G(de)&&e(o)});var s=V(n,2),l=e=>{var t=Vm(),n=V(z(t),2);{let e=P(()=>G(T)?G(O).attention.get(G(T))??null:null),t=P(()=>`chat-attention-${G(T)??`none`}`),r=P(()=>G(T)?G(O).pending.has(G(T)):!1);eo(n,{get attention(){return G(e)},get controlId(){return G(t)},get pending(){return G(r)},onresolve:(e,t)=>G(T)&&_t(G(T),e,t)})}var a=V(n,2);{let e=P(()=>G(T)?G(O).snapshots.get(G(T))??null:null),t=P(()=>G(T)?G(O).attention.get(G(T))??null:null),n=P(()=>`chat-autopilot-safety-${G(T)??`none`}`),r=P(()=>G(T)?G(O).pending.has(G(T)):!1);no(a,{get autopilot(){return G(e)},get attention(){return G(t)},get controlId(){return G(n)},get pending(){return G(r)},onrecover:()=>G(T)&&void gt(G(T)),ondisable:()=>G(T)&&ht(G(T),!1)})}var o=V(a,2),s=z(o,!0);N(o);var c=V(o,2),l=e=>{var t=zm(),n=B(t);{let e=P(()=>G(i)?[...G(i).messages]:[]),t=P(()=>G(i)?[...G(i).activities]:[]),r=P(()=>G(i)?.activeTurnId??null),a=P(()=>G(i)?.autopilotAuditTruncated??!1),o=P(()=>G(i)?[...G(i).interactions]:[]);Tc(n,{get messages(){return G(e)},get activities(){return G(t)},get activeTurnId(){return G(r)},get autopilotAuditTruncated(){return G(a)},get interactions(){return G(o)},get answers(){return j},get submittedAnswers(){return G(ze)},onanswer:pn,onquiz:e=>void cn(e),onpermission:e=>void dn(e),ondecision:(e,t)=>void sn(e,t),onretry:fn,onopenorg:Ht,oncopyresult:_n})}var r=V(n,2);{let e=P(()=>G(i)?.status??G(d)),t=P(()=>G(i)?.activeTurnId??null),n=P(()=>G(i)?.starting??!1),a=P(()=>!!(G(E).find(e=>e.id===G(T))&&![`ready`,`turnActive`].includes(G(E).find(e=>e.id===G(T))?.state??``))),o=P(()=>G(ue)!==null);Eo(r,{get status(){return G(e)},get message(){return G(fe)},get activeTurnId(){return G(t)},get starting(){return G(n)},get detached(){return G(a)},get retryMessage(){return G(le)},get retryable(){return G(o)},get models(){return G(h)},onchange:mn,onscrollbottom:()=>lt(`explicit`),onmodelselect:e=>void Tt(e),onsend:()=>void Et(),onqueue:()=>void Dt(),oninterruptsend:()=>void Ot(),onretry:()=>void At(),oninterrupt:()=>void jt()})}var a=V(r,2),o=z(a);{let e=P(()=>G(O).snapshots.get(G(T))??null),t=P(()=>`chat-autopilot-${G(T)}`),n=P(()=>G(O).pending.has(G(T)));Qa(o,{compact:!0,get autopilot(){return G(e)},get controlId(){return G(t)},get pending(){return G(n)},ontoggle:e=>G(T)&&ht(G(T),e)})}var s=V(o,2);{let e=P(()=>G(D).get(G(T))??null),t=P(()=>G(E).find(e=>e.id===G(T))?.model??m);Ia(s,{compact:!0,get activity(){return G(e)},get rootModel(){return G(t)}})}N(a),Li(V(a,2),e=>L(M,e),()=>G(M)),J(e,t)},u=e=>{var t=Bm(),n=z(t,!0);N(t),H(()=>Y(n,r?G(d):`Start a session from the Sessions tab to chat with Codex.`)),J(e,t)};X(c,e=>{G(T)?e(l):e(u,-1)}),N(t),H(()=>Y(s,G(Ue))),J(e,t)},u=e=>{Kd(e,{get catalog(){return G(me)},get state(){return G(ke)},onopen:Vt,onclose:Ut})},f=e=>{{let t=P(()=>G(Me)?Zl(G(p),G(Me))??null:null);Su(e,{get workspaceTree(){return G(p)},get selectedWorkspace(){return G(t)},get expandedIds(){return G(Ne)},get summary(){return G(je).summary},get refreshing(){return G(je).refreshing},get checkingOut(){return G(je).checkingOut},get cloning(){return G(Fe)},get error(){return G(je).error},get cloneStatus(){return G(Ie)},get confirmingPush(){return G(Pe)},onpull:()=>void nn(),oncheckout:e=>void an(e),onopenpushconfirmation:()=>L(Pe,!0),onpush:()=>void on(),oncancelpush:()=>L(Pe,!1),onselect:Qt,onexpandedchange:e=>L(Ne,e,!0),onbrowsefiles:$t,onclone:e=>void rn(e)})}},_=e=>{var t=Hr(),n=B(t),r=e=>{var t=Um(),n=z(t),r=z(n);si(r,()=>Jt);var i=V(r,2);N(n);var a=V(n,2),o=e=>{qf(e,{get skillsState(){return G(v)},onrefresh:()=>G(v)?.refresh()??Promise.resolve(),onprofileschange:()=>void Kt(),heading:`Skill profile editor`})},s=e=>{J(e,Hm())};X(a,e=>{G(v)?e(o):e(s,-1)}),N(t),K(`click`,i,()=>void Yt()),J(e,t)},i=e=>{wf(e,{get sessions(){return G(E)},get recentSessions(){return G(re)},get selectedSessionId(){return G(T)},get activitySnapshots(){return G(D)},get autopilotSnapshots(){return G(O).snapshots},get autopilotPending(){return G(O).pending},get autopilotAttention(){return G(O).attention},get workspaceTree(){return G(p)},get workspaceId(){return G(C)},get expandedIds(){return G(w)},get sandbox(){return G(A)},get approvalPolicy(){return G(ie)},get models(){return G(h)},get selectedModel(){return G(g)},get skillProfiles(){return G(b)},get selectedSkillProfile(){return G(x)},get skillProfileError(){return G(S)},get startingSession(){return G(oe)},get openingSessionId(){return G(se)},onworkspacechange:e=>L(C,e,!0),onexpandedchange:e=>L(w,e,!0),onsandboxchange:e=>L(A,e,!0),onapprovalpolicychange:e=>L(ie,e,!0),onmodelchange:e=>L(g,e,!0),onskillprofilechange:e=>L(x,e,!0),onmanageprofiles:e=>void qt(e),onopen:bt,onselectopen:bt,onclose:e=>void St(e),onautopilottoggle:ht,onautopilotresolve:_t,onopenrecent:e=>void xt(e),onforget:e=>void Ct(e),oncopyresume:e=>void wt(e),onstart:()=>void pt()})};X(n,e=>{G(y)===`profile-manager`?e(r):e(i,-1)}),J(e,t)};X(s,e=>{G(a)===`chat`?e(l):G(a)===`plan`?e(u,1):G(a)===`git`?e(f,2):e(_,-1)});var k=V(s,2),ee=e=>{Pm(e,{get root(){return G(c)},get listDirectory(){return We.listWorkspaceDirectory},get copyEntry(){return We.copyWorkspaceEntry},get moveEntry(){return We.moveWorkspaceEntry},get deleteEntry(){return We.deleteWorkspaceEntry},get uploadFile(){return We.uploadWorkspaceFile},onclose:()=>void en(),onerror:e=>gn(e,`WORKSPACE_FILES_READ_FAILED`),onsuccess:e=>tt.enqueue({kind:`success`,message:e}),onmutation:tn})};X(k,e=>{G(c)&&e(ee)});var te=V(k,2),ae=e=>{Af(e,{get activeTab(){return G(a)},get chatEnabled(){return G(ne)},get focusTab(){return G(Se)},onselect:Mt})};X(te,e=>{r||e(ae)}),J(e,t)};X(ce,e=>{G(o)&&t.passkeyAuthEnabled?e(pe):e(he,-1)}),N(u);var ge=V(u,2),_e=e=>{Jp(e,{onclose:ct})};X(ge,e=>{G(s)&&e(_e)}),K(`pointerdown`,u,Lt),K(`pointerup`,u,Rt),Nr(`pointercancel`,u,zt),J(e,l)};X(xn,e=>{it===`true`?e(Sn):rt===`error`||rt===`stacked`?e(Cn,1):nt===`sessions`||nt===`git`?e(wn,2):e(Tn,-1)}),J(e,bn),$e()}Pr([`pointerdown`,`pointerup`,`click`]);function qm(){throw Error(`AUTH_RESPONSE_INVALID`)}async function Jm(e){if(!e.ok){let t;try{let n=await e.json();typeof n==`object`&&n&&`code`in n&&typeof n.code==`string`&&(t=n.code)}catch{}throw Error(t??`AUTH_REQUEST_FAILED_${e.status}`)}return e.json()}function Ym(e){return!!e&&typeof e==`object`&&[`bootstrap`,`locked`,`authenticated`].includes(e.status)&&typeof e.publicOrigin==`string`&&(e.passkeyAuthEnabled===void 0||typeof e.passkeyAuthEnabled==`boolean`)}function Xm(e){return!!e&&typeof e==`object`&&!!e.options&&typeof e.options.challenge==`string`}function Zm(e){return!!e&&typeof e==`object`&&e.status===`authenticated`}function Qm(e=fetch){async function t(){let t=await Jm(await e(`/api/auth/status`,{credentials:`same-origin`}));return Ym(t)||qm(),t}async function n(t,n={}){let r=await Jm(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return Xm(r)||qm(),r}async function r(t,n){let r=await Jm(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return Zm(r)||qm(),r}return{status:t,registrationOptions:e=>n(`/api/auth/register/options`,e?{enrollmentTicket:e}:{}),verifyRegistration:(e,t)=>r(`/api/auth/register/verify`,{response:e,nickname:t}),loginOptions:()=>n(`/api/auth/login/options`),verifyLogin:e=>r(`/api/auth/login/verify`,{response:e}),logout:async()=>{let t=await e(`/api/auth/logout`,{method:`POST`,credentials:`same-origin`});if(!t.ok)throw Error(`AUTH_REQUEST_FAILED_${t.status}`)}}}function $m(e,t=fetch){return async(n,r)=>{let i=await t(n,{...r,credentials:`same-origin`});return i.status===401&&(await i.clone().json().catch(()=>null))?.code===`AUTH_REQUIRED`&&e(),i}}function eh(e){let t=new Uint8Array(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function th(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=(4-t.length%4)%4,r=t.padEnd(t.length+n,`=`),i=atob(r),a=new ArrayBuffer(i.length),o=new Uint8Array(a);for(let e=0;e<i.length;e++)o[e]=i.charCodeAt(e);return a}function nh(){return rh.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential==`function`)}var rh={stubThis:e=>e};function ih(e){let{id:t}=e;return{...e,id:th(t),transports:e.transports}}function ah(e){return e===`localhost`||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var oh=class extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=r??n.name,this.code=t}};function sh({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new oh({message:`Registration ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`ConstraintError`){if(n.authenticatorSelection?.requireResidentKey===!0)return new oh({message:`Discoverable credentials were required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`,cause:e});if(t.mediation===`conditional`&&n.authenticatorSelection?.userVerification===`required`)return new oh({message:`User verification was required during automatic registration but it could not be performed`,code:`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`,cause:e});if(n.authenticatorSelection?.userVerification===`required`)return new oh({message:`User verification was required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`,cause:e})}else if(e.name===`InvalidStateError`)return new oh({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new oh({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`NotSupportedError`)return n.pubKeyCredParams.filter(e=>e.type===`public-key`).length===0?new oh({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new oh({message:`No available authenticator supported any of the specified pubKeyCredParams algorithms`,code:`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!ah(t))return new oh({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new oh({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`TypeError`){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new oh({message:`User ID was not between 1 and 64 characters`,code:`ERROR_INVALID_USER_ID_LENGTH`,cause:e})}else if(e.name===`UnknownError`)return new oh({message:`The authenticator was unable to process the specified options, or could not create a new credential`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}var ch=new class{constructor(){Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}createNewAbortSignal(){if(this.controller){let e=Error(`Cancelling existing WebAuthn API call for new one`);e.name=`AbortError`,this.controller.abort(e)}let e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){let e=Error(`Manually cancelling existing WebAuthn API call`);e.name=`AbortError`,this.controller.abort(e),this.controller=void 0}}},lh=[`cross-platform`,`platform`];function uh(e){if(e&&!(lh.indexOf(e)<0))return e}async function dh(e){!e.optionsJSON&&e.challenge&&(console.warn(`startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=!1}=e;if(!nh())throw Error(`WebAuthn is not supported in this browser`);let r={...t,challenge:th(t.challenge),user:{...t.user,id:th(t.user.id)},excludeCredentials:t.excludeCredentials?.map(ih)},i={};n&&(i.mediation=`conditional`),i.publicKey=r,i.signal=ch.createNewAbortSignal();let a;try{a=await navigator.credentials.create(i)}catch(e){throw sh({error:e,options:i})}if(!a)throw Error(`Registration was not completed`);let{id:o,rawId:s,response:c,type:l}=a,u;typeof c.getTransports==`function`&&(u=c.getTransports());let d;if(typeof c.getPublicKeyAlgorithm==`function`)try{d=c.getPublicKeyAlgorithm()}catch(e){fh(`getPublicKeyAlgorithm()`,e)}let f;if(typeof c.getPublicKey==`function`)try{let e=c.getPublicKey();e!==null&&(f=eh(e))}catch(e){fh(`getPublicKey()`,e)}let p;if(typeof c.getAuthenticatorData==`function`)try{p=eh(c.getAuthenticatorData())}catch(e){fh(`getAuthenticatorData()`,e)}return{id:o,rawId:eh(s),response:{attestationObject:eh(c.attestationObject),clientDataJSON:eh(c.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:p},type:l,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:uh(a.authenticatorAttachment)}}function fh(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.\n`,t)}function ph(){if(!nh())return mh.stubThis(new Promise(e=>e(!1)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?mh.stubThis(new Promise(e=>e(!1))):mh.stubThis(e.isConditionalMediationAvailable())}var mh={stubThis:e=>e};function hh({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new oh({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new oh({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!ah(t))return new oh({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new oh({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`UnknownError`)return new oh({message:`The authenticator was unable to process the specified options, or could not create a new assertion signature`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}async function gh(e){!e.optionsJSON&&e.challenge&&(console.warn(`startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=!1,verifyBrowserAutofillInput:r=!0}=e;if(!nh())throw Error(`WebAuthn is not supported in this browser`);let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(ih));let a={...t,challenge:th(t.challenge),allowCredentials:i},o={};if(n){if(!await ph())throw Error(`Browser does not support WebAuthn autofill`);if(document.querySelectorAll(`input[autocomplete$='webauthn']`).length<1&&r)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');o.mediation=`conditional`,a.allowCredentials=[]}o.publicKey=a,o.signal=ch.createNewAbortSignal();let s;try{s=await navigator.credentials.get(o)}catch(e){throw hh({error:e,options:o})}if(!s)throw Error(`Authentication was not completed`);let{id:c,rawId:l,response:u,type:d}=s,f;return u.userHandle&&(f=eh(u.userHandle)),{id:c,rawId:eh(l),response:{authenticatorData:eh(u.authenticatorData),clientDataJSON:eh(u.clientDataJSON),signature:eh(u.signature),userHandle:f},type:d,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:uh(s.authenticatorAttachment)}}function _h(e){return typeof e==`object`&&e?e:{}}function vh(e){let t=_h(e),n=typeof t.code==`string`?t.code:``;switch(n){case`ERROR_CEREMONY_ABORTED`:return`The passkey request was cancelled. You can safely try again.`;case`ERROR_INVALID_DOMAIN`:case`ERROR_INVALID_RP_ID`:return`The passkey provider rejected this site’s domain identity. Open the canonical HTTPS address and try again.`;case`ERROR_INVALID_USER_ID_LENGTH`:case`ERROR_MALFORMED_PUBKEYCREDPARAMS`:return`The relay supplied passkey options this browser could not use (${n}).`;case`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`:return`This passkey provider does not support the discoverable credential required for sign-in. Try another passkey provider or browser.`;case`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`:case`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`:return`This passkey provider could not perform the required screen-lock verification. Check the device screen lock or try another provider.`;case`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`:return`This passkey is already registered on this device. Try signing in instead.`;case`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`:return`This passkey provider supports none of the relay’s allowed cryptographic algorithms. Try another provider or browser.`;case`ERROR_AUTHENTICATOR_GENERAL_ERROR`:return`The phone’s passkey provider accepted device verification but could not create the credential (ERROR_AUTHENTICATOR_GENERAL_ERROR). Try another browser or passkey provider on this phone.`;case`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`:return vh(t.cause)}switch(typeof t.message==`string`?t.message:``){case`INVALID_REGISTRATION_REQUEST`:return`The relay did not understand the passkey response from this browser. Refresh the page and try again.`;case`REGISTRATION_COOKIE_MISSING`:return`The registration session cookie was not returned by this browser. Allow site cookies, refresh, and try again.`;case`REGISTRATION_NOT_AVAILABLE`:return`This registration attempt expired or is no longer available. Refresh the page and start again.`;case`REGISTRATION_VERIFICATION_FAILED`:return`Your device created the passkey, but the relay could not verify it. Try again and check the relay diagnostics if it persists.`;case`ORIGIN_NOT_ALLOWED`:return`This page is not using the relay’s configured public address. Open the canonical HTTPS address and try again.`;case`ENROLLMENT_NOT_AUTHORIZED`:return`This relay is no longer accepting first-device registration.`;case`AUTHENTICATION_FAILED`:return`We could not complete sign-in. Please try again.`}let r=typeof t.name==`string`?t.name:``;switch(r){case`NotAllowedError`:return`The passkey request was cancelled or timed out. Try again when ready.`;case`InvalidStateError`:return`This passkey is already registered on this device. Try signing in instead.`;case`AbortError`:return`The passkey request was cancelled. You can safely try again.`;case`SecurityError`:return`Passkeys require this device to use the configured secure site.`;case`ConstraintError`:case`DataError`:case`EncodingError`:return`This browser could not use the passkey options supplied by the relay. Refresh the page and try again.`;case`NetworkError`:return`The connection was interrupted while completing the passkey request. Check the connection and try again.`;case`OperationError`:case`UnknownError`:return`This browser or passkey provider could not finish the passkey request after device verification. Try again or use another browser on this device.`;case`TypeError`:return`This browser rejected the passkey request data. Refresh the page and try again.`;default:return/^[A-Za-z]+Error$/.test(r)?`The passkey request failed inside this browser (${r}). Try another browser or passkey provider on this device.`:`We could not complete authentication. Please try again.`}}function yh(){return typeof window<`u`&&window.isSecureContext&&window.PublicKeyCredential!==void 0}function bh(e,t){async function n(n){t({kind:`checking`});try{let{status:r,publicOrigin:i,passkeyAuthEnabled:a=!0}=await e.status();if(!a){let e={kind:`authenticated`,passkeyAuthEnabled:!1};return t(e),e}if(!yh()){let e={kind:`unsupported`,message:`Passkeys require a secure browser on this device.`};return t(e),e}let o=r===`authenticated`?{kind:`authenticated`,passkeyAuthEnabled:!0}:r===`bootstrap`?{kind:`bootstrap`,publicOrigin:i}:n?{kind:`enrollment`,publicOrigin:i}:{kind:`locked`};return t(o),o}catch{let e={kind:`error`,message:`We could not check this device. Please try again.`};return t(e),e}}function r(){t({kind:`authenticated`,passkeyAuthEnabled:!0})}function i(e){t({kind:`locked`,...e?{message:e}:{}})}return{check:n,retry:n,authenticated:r,locked:i}}var xh=q(`<p class="warning svelte-1c5qcm6">This one-time link authorizes one new passkey. Choose a nickname and complete the passkey
31
31
  prompt before it expires.</p>`),Sh=q(`<p class="warning svelte-1c5qcm6"><strong class="svelte-1c5qcm6">Trust-on-first-use:</strong> anyone who can reach an empty relay instance could claim
32
32
  first-device access. Enroll this device before exposing the instance, and confirm you are at the
33
33
  canonical address before continuing.</p>`),Ch=q(`<p class="error svelte-1c5qcm6">Passkeys require a secure browser on this device.</p>`),wh=q(`<p class="feedback svelte-1c5qcm6"> </p>`),Th=q(`<img alt="QR code for the first-device setup link" class="svelte-1c5qcm6"/>`),Eh=q(`<div class="handoff svelte-1c5qcm6"><!> <div class="svelte-1c5qcm6"><h2 class="svelte-1c5qcm6">Continue on your phone</h2> <p class="svelte-1c5qcm6">Scanning opens this same setup page. You will still choose a nickname and explicitly
@@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
16
16
  <link rel="icon" href="/icons/gestalt-mobile-192.png" />
17
17
  <link rel="apple-touch-icon" href="/icons/gestalt-mobile-180.png" />
18
18
  <title>Gestalt Mobile</title>
19
- <script type="module" crossorigin src="/assets/index-CedbthUQ.js"></script>
19
+ <script type="module" crossorigin src="/assets/index-v8UC90bI.js"></script>
20
20
  <link rel="stylesheet" crossorigin href="/assets/index-CKhqx71S.css">
21
21
  </head>
22
22
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gestalt-mobile",
3
- "version": "0.30.1",
3
+ "version": "0.30.2",
4
4
  "description": "Mobile-first web relay for durable Codex development sessions",
5
5
  "keywords": [
6
6
  "codex",