gestalt-mobile 0.17.2 → 0.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{index-DgD-0I3M.js → index-Ba_4zoY1.js} +4 -4
- package/dist/client/index.html +1 -1
- package/dist/server/server/composition.js +41 -10
- package/dist/server/server/features/sessions/respond-interaction/endpoint.js +15 -2
- package/dist/server/server/platform/codex/server-request.js +9 -0
- package/dist/server/server/platform/codex/session-runtime.js +24 -15
- package/dist/server/server/platform/persistence/sqlite-pending-interaction-store.js +12 -2
- package/package.json +1 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=Array.isArray,u=Array.prototype.indexOf,d=Array.prototype.includes,f=Array.from,p=Object.defineProperty,m=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyDescriptors,g=Object.prototype,_=Array.prototype,v=Object.getPrototypeOf,y=Object.isExtensible,b=()=>{};function x(e){for(var t=0;t<e.length;t++)e[t]()}function S(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function C(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var w=1<<24,T=1024,E=2048,D=4096,ee=8192,te=16384,O=32768,ne=1<<25,re=65536,ie=1<<18,ae=1<<19,oe=1<<20,se=1<<25,k=65536,ce=1<<21,le=1<<22,ue=1<<23,de=Symbol(`$state`),fe=Symbol(`legacy props`),pe=Symbol(``),me=Symbol(`attributes`),he=Symbol(`class`),ge=Symbol(`style`),_e=Symbol(`text`),ve=Symbol(`form reset`),ye=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},be=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function xe(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Se(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function Ce(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function we(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Te(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Ee(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function De(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Oe(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function ke(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Ae(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function je(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Me(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Ne={},A=Symbol(`uninitialized`),Pe=`http://www.w3.org/1999/xhtml`;function Fe(){console.warn(`https://svelte.dev/e/derived_inert`)}function Ie(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Le(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Re(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var j=!1;function ze(e){j=e}var M;function Be(e){if(e===null)throw Ie(),Ne;return M=e}function Ve(){return Be(hn(M))}function N(e){if(j){if(hn(M)!==null)throw Ie(),Ne;M=e}}function He(e=1){if(j){for(var t=e,n=M;t--;)n=hn(n);M=n}}function Ue(e=!0){for(var t=0,n=M;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=hn(n);e&&n.remove(),n=i}}function We(e){if(!e||e.nodeType!==8)throw Ie(),Ne;return e.data}function Ge(e){return e===this.v}function Ke(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function qe(e){return!Ke(e,this.v)}var Je=null;function Ye(e){Je=e}function Xe(e,t=!1,n){Je={p:Je,i:!1,c:null,e:null,s:e,x:null,r:W,l:null}}function Ze(e){var t=Je,n=t.e;if(n!==null){t.e=null;for(var r of n)jn(r)}return e!==void 0&&(t.x=e),t.i=!0,Je=t.p,e??{}}function Qe(){return!0}var $e=[];function et(){var e=$e;$e=[],x(e)}function tt(e){if($e.length===0&&!Nt){var t=$e;queueMicrotask(()=>{t===$e&&et()})}$e.push(e)}function nt(){for(;$e.length>0;)et()}function rt(e){var t=W;if(t===null)return U.f|=ue,e;if(!(t.f&32768)&&!(t.f&4))throw e;it(e,t)}function it(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var at=~(E|D|T);function ot(e,t){e.f=e.f&at|t}function st(e){e.f&512||e.deps===null?ot(e,T):ot(e,D)}function ct(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=k,ct(t.deps))}function lt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),ct(e.deps),ot(e,T)}var ut=!1;function dt(e){var t=ut;try{return ut=!1,[e(),ut]}finally{ut=t}}function ft(e){let t=0,n=Qt(0),r;return()=>{On()&&(G(n),Fn(()=>(t===0&&(r=Cr(()=>e(()=>nn(n)))),t+=1,()=>{tt(()=>{--t,t===0&&(r?.(),r=void 0,nn(n))})})))}}var pt=re|ae;function mt(e,t,n,r){new ht(e,t,n,r)}var ht=class{parent;is_pending=!1;transform_error;#e;#t=j?M:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=ft(()=>(this.#m=Qt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=W;t.b=this,t.f|=128,n(e)},this.parent=W.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=In(()=>{if(j){let e=this.#t;Ve();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},pt),j&&(this.#e=M)}#g(){try{this.#a=Rn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Rn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Rn(()=>e(this.#e)),tt(()=>{var e=this.#c=document.createDocumentFragment(),t=pn();e.append(t),this.#a=this.#x(()=>Rn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Gn(this.#o,()=>{this.#o=null}),this.#b(F))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Rn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Yn(this.#a,e);let t=this.#n.pending;this.#o=Rn(()=>t(this.#e))}else this.#b(F)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){lt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=W,n=U,r=Je;nr(this.#i),tr(this.#i),Ye(this.#i.ctx);try{return zt.ensure(),e()}catch(e){return rt(e),null}finally{nr(t),tr(n),Ye(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Gn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,tt(()=>{this.#d=!1,this.#m&&en(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),G(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;F?.is_fork?(this.#a&&F.skip_effect(this.#a),this.#o&&F.skip_effect(this.#o),this.#s&&F.skip_effect(this.#s),F.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Hn(this.#a),null),this.#o&&=(Hn(this.#o),null),this.#s&&=(Hn(this.#s),null),j&&(Be(this.#t),He(),Be(Ue()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Re();return}r=!0,i&&Me(),this.#s!==null&&Gn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){it(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Rn(()=>{var t=W;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return it(e,this.#i.parent),null}}))};tt(()=>{var t;try{t=this.transform_error(e)}catch(e){it(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>it(e,this.#i&&this.#i.parent)):o(t)})}};function gt(e,t,n,r){let i=Qe()?bt:Ct;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=W,c=_t(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){it(e,s)}vt()}}var d=yt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>St(e))).then(u).catch(e=>it(e,s)).finally(d)}l?l.then(()=>{c(),f(),vt()}):f()}function _t(){var e=W,t=U,n=Je,r=F;return function(i=!0){nr(e),tr(t),Ye(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function vt(e=!0){nr(null),tr(null),Ye(null),e&&F?.deactivate()}function yt(){var e=W,t=e.b,n=F,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function bt(e){var t=2|E;return W!==null&&(W.f|=ae),{ctx:Je,deps:null,effects:null,equals:Ge,f:t,fn:e,reactions:null,rv:0,v:A,wv:0,parent:W,ac:null}}var xt=Symbol(`obsolete`);function St(e,t,n){let r=W;r===null&&Se();var i=void 0,a=Qt(A),o=!U,s=new Set;return Pn(()=>{var t=W,n=S();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ye&&n.reject(e)}).finally(vt)}catch(e){n.reject(e),vt()}var c=F;if(o){if(t.f&32768)var l=yt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(xt);else for(let e of s.values())e.reject(xt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==xt&&(c.activate(),t?(a.f|=ue,en(a,t)):(a.f&8388608&&(a.f^=ue),en(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),kn(()=>{for(let e of s)e.reject(xt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function P(e){let t=bt(e);return ir(t),t}function Ct(e){let t=bt(e);return t.equals=qe,t}function wt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Hn(t[n])}}function Tt(e){var t,n=W,r=e.parent;if(!Qn&&r!==null&&e.v!==A&&r.f&24576)return Fe(),e.v;nr(r);try{e.f&=~k,wt(e),t=gr(e)}finally{nr(n)}return t}function Et(e){var t=Tt(e);if(!e.equals(t)&&(e.wv=pr(),(!F?.is_fork||e.deps===null)&&(F===null?e.v=t:(F.capture(e,t,!0),At?.capture(e,t,!0)),e.deps===null))){ot(e,T);return}Qn||(jt===null?st(e):(On()||F?.is_fork)&&jt.set(e,t))}function Dt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ye),t.fn!==null&&(t.teardown=b),t.ac=null,vr(t,0),Bn(t))}function Ot(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&yr(t)}var kt=null,F=null,At=null,jt=null,Mt=null,Nt=!1,Pt=!1,Ft=null,It=null,Lt=0,Rt=1,zt=class e{id=Rt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){kt===null?kt=this:(kt.#n=this,this.#t=kt),kt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)ot(r,E),t(r);for(r of n.m)ot(r,D),t(r)}this.#p.add(e)}#g(){this.#e=!0,Lt++>1e3&&(this.#x(),Vt());for(let e of this.#u)this.#d.delete(e),ot(e,E),this.schedule(e);for(let e of this.#d)ot(e,D),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Ft=[],r=[],i=It=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Jt(e),this.#h()||this.discard(),t}if(F=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Ft=null,It=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)qt(e,t);i.length>0&&F.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),At=this,Ut(r),Ut(n),At=null,this.#s?.resolve();var s=F;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=T;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=T:i&4?t.push(r):mr(r)&&(i&16&&this.#d.add(r),yr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),ot(i,E),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),F=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)lt(e[t],this.#u,this.#d)}capture(e,t,n=!1){e.v!==A&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),jt?.set(e,t)),this.is_fork||(e.v=t)}activate(){F=this}deactivate(){F=null,jt=null}flush(){try{Pt=!0,F=this,this.#g()}finally{Lt=0,Mt=null,Ft=null,It=null,Pt=!1,F=null,jt=null,Xt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(xt);this.#x(),this.#s?.resolve()}register_created_effect(e){this.#l.push(e)}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,tt(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=S()).promise}static ensure(){if(F===null){let t=F=new e;!Pt&&!Nt&&tt(()=>{t.#e||t.flush()})}return F}apply(){jt=null}schedule(e){if(Mt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Ft!==null&&t===W&&(U===null||!(U.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=T}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?kt=e:t.#t=e,this.linked=!1}}};function Bt(e){var t=Nt;Nt=!0;try{var n;for(e&&(F!==null&&!F.is_fork&&F.flush(),n=e());;){if(nt(),F===null)return n;F.flush()}}finally{Nt=t}}function Vt(){try{De()}catch(e){it(e,Mt)}}var Ht=null;function Ut(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&mr(r)&&(Ht=new Set,yr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Wn(r),Ht?.size>0)){Xt.clear();for(let e of Ht){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Ht.has(n)&&(Ht.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||yr(n)}}Ht.clear()}}Ht=null}}function Wt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Wt(i,t,n,r):e&4194320&&!(e&2048)&&Gt(i,t,r)&&(ot(i,E),Kt(i))}}function Gt(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(let r of e.deps){if(d.call(t,r))return!0;if(r.f&2&&Gt(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function Kt(e){F.schedule(e)}function qt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),ot(e,T);for(var n=e.first;n!==null;)qt(n,t),n=n.next}}function Jt(e){ot(e,T);for(var t=e.first;t!==null;)Jt(t),t=t.next}var Yt=new Set,Xt=new Map,Zt=!1;function Qt(e,t){return{f:0,v:e,reactions:null,equals:Ge,rv:0,wv:0}}function I(e,t){let n=Qt(e,t);return ir(n),n}function $t(e,t=!1,n=!0){let r=Qt(e);return t||(r.equals=qe),r}function L(e,t,n=!1){return U!==null&&(!er||U.f&131072)&&Qe()&&U.f&4325394&&(rr===null||!rr.has(e))&&je(),en(e,n?R(t):t,It)}function en(e,t,n=null){if(!e.equals(t)){Xt.set(e,Qn?t:e.v);var r=zt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&Tt(t),jt===null&&st(t)}e.wv=pr(),rn(e,E,n),Qe()&&W!==null&&W.f&1024&&!(W.f&96)&&(sr===null?cr([e]):sr.push(e)),!r.is_fork&&Yt.size>0&&!Zt&&tn()}return t}function tn(){Zt=!1;for(let e of Yt){e.f&1024&&ot(e,D);let t;try{t=mr(e)}catch{t=!0}t&&yr(e)}Yt.clear()}function nn(e){L(e,e.v+1)}function rn(e,t,n){var r=e.reactions;if(r!==null)for(var i=Qe(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===W)){var l=(c&E)===0;if(l&&ot(s,t),c&131072)Yt.add(s);else if(c&2){var u=s;jt?.delete(u),c&65536||(c&512&&(W===null||!(W.f&2097152))&&(s.f|=k),rn(u,D,n))}else if(l){var d=s;c&16&&Ht!==null&&Ht.add(d),n===null?Kt(d):n.push(d)}}}}function R(e){if(typeof e!=`object`||!e||de in e)return e;let t=v(e);if(t!==g&&t!==_)return e;var n=new Map,r=l(e),i=I(0),a=null,o=dr,s=e=>{if(dr===o)return e();var t=U,n=dr;tr(null),fr(o);var r=e();return tr(t),fr(n),r};return r&&n.set(`length`,I(e.length,a)),new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&ke();var i=n.get(t);return i===void 0?s(()=>{var e=I(r.value,a);return n.set(t,e),e}):L(i,r.value,!0),!0},deleteProperty(e,t){var r=n.get(t);if(r===void 0){if(t in e){let e=s(()=>I(A,a));n.set(t,e),nn(i)}}else L(r,A),nn(i);return!0},get(t,r,i){if(r===de)return e;var o=n.get(r),c=r in t;if(o===void 0&&(!c||m(t,r)?.writable)&&(o=s(()=>I(R(c?t[r]:A),a)),n.set(r,o)),o!==void 0){var l=G(o);return l===A?void 0:l}return Reflect.get(t,r,i)},getOwnPropertyDescriptor(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);if(r&&`value`in r){var i=n.get(t);i&&(r.value=G(i))}else if(r===void 0){var a=n.get(t),o=a?.v;if(a!==void 0&&o!==A)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return r},has(e,t){if(t===de)return!0;var r=n.get(t),i=r!==void 0&&r.v!==A||Reflect.has(e,t);return(r!==void 0||W!==null&&(!i||m(e,t)?.writable))&&(r===void 0&&(r=s(()=>I(i?R(e[t]):A,a)),n.set(t,r)),G(r)===A)?!1:i},set(e,t,o,c){var l=n.get(t),u=t in e;if(r&&t===`length`)for(var d=o;d<l.v;d+=1){var f=n.get(d+``);f===void 0?d in e&&(f=s(()=>I(A,a)),n.set(d+``,f)):L(f,A)}if(l===void 0)(!u||m(e,t)?.writable)&&(l=s(()=>I(void 0,a)),L(l,R(o)),n.set(t,l));else{u=l.v!==A;var p=s(()=>R(o));L(l,p)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(c,o),!u){if(r&&typeof t==`string`){var g=n.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&L(g,_+1)}nn(i)}return!0},ownKeys(e){G(i);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==A});for(var[r,a]of n)a.v!==A&&!(r in e)&&t.push(r);return t},setPrototypeOf(){Ae()}})}function an(e){try{if(typeof e==`object`&&e&&de in e)return e[de]}catch{}return e}function on(e,t){return Object.is(an(e),an(t))}var sn,cn,ln,un,dn;function fn(){if(sn===void 0){sn=window,cn=document,ln=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;un=m(t,`firstChild`).get,dn=m(t,`nextSibling`).get,y(e)&&(e[he]=void 0,e[me]=null,e[ge]=void 0,e.__e=void 0),y(n)&&(n[_e]=void 0)}}function pn(e=``){return document.createTextNode(e)}function mn(e){return un.call(e)}function hn(e){return dn.call(e)}function z(e,t){if(!j)return mn(e);var n=mn(M);if(n===null)n=M.appendChild(pn());else if(t&&n.nodeType!==3){var r=pn();return n?.before(r),Be(r),r}return t&&yn(n),Be(n),n}function B(e,t=!1){if(!j){var n=mn(e);return n instanceof Comment&&n.data===``?hn(n):n}if(t){if(M?.nodeType!==3){var r=pn();return M?.before(r),Be(r),r}yn(M)}return M}function V(e,t=1,n=!1){let r=j?M:e;for(var i;t--;)i=r,r=hn(r);if(!j)return r;if(n){if(r?.nodeType!==3){var a=pn();return r===null?i?.after(a):r.before(a),Be(a),a}yn(r)}return Be(r),r}function gn(e){e.textContent=``}function _n(){return!1}function vn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function yn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function bn(e){j&&mn(e)!==null&&gn(e)}var xn=!1;function Sn(){xn||(xn=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[ve]?.()})},{capture:!0}))}function Cn(e){var t=U,n=W;tr(null),nr(null);try{return e()}finally{tr(t),nr(n)}}function wn(e,t,n,r=n){e.addEventListener(t,()=>Cn(n));let i=e[ve];i?e[ve]=()=>{i(),r(!0)}:e[ve]=()=>r(!0),Sn()}function Tn(e){W===null&&(U===null&&Ee(e),Te()),Qn&&we(e)}function En(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Dn(e,t){var n=W;n!==null&&n.f&8192&&(e|=ee);var r={ctx:Je,deps:null,nodes:null,f:e|E|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};F?.register_created_effect(r);var i=r;if(e&4)Ft===null?zt.ensure().schedule(r):Ft.push(r);else if(t!==null){try{yr(r)}catch(e){throw Hn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=re))}if(i!==null&&(i.parent=n,n!==null&&En(i,n),U!==null&&U.f&2&&!(e&64))){var a=U;(a.effects??=[]).push(i)}return r}function On(){return U!==null&&!er}function kn(e){let t=Dn(8,null);return ot(t,T),t.teardown=e,t}function An(e){Tn(`$effect`);var t=W.f;if(!U&&t&32&&Je!==null&&!Je.i){var n=Je;(n.e??=[]).push(e)}else return jn(e)}function jn(e){return Dn(4|oe,e)}function Mn(e){zt.ensure();let t=Dn(64|ae,e);return(e={})=>new Promise(n=>{e.outro?Gn(t,()=>{Hn(t),n(void 0)}):(Hn(t),n(void 0))})}function Nn(e){return Dn(4,e)}function Pn(e){return Dn(le|ae,e)}function Fn(e,t=0){return Dn(8|t,e)}function H(e,t=[],n=[],r=[]){gt(r,t,n,t=>{Dn(8,()=>{e(...t.map(G))})})}function In(e,t=0){return Dn(16|t,e)}function Ln(e,t=0){return Dn(w|t,e)}function Rn(e){return Dn(32|ae,e)}function zn(e){var t=e.teardown;if(t!==null){let e=Qn,n=U;$n(!0),tr(null);try{t.call(null)}finally{$n(e),tr(n)}}}function Bn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&Cn(()=>{e.abort(ye)});var r=n.next;n.f&64?n.parent=null:Hn(n,t),n=r}}function Vn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Hn(t),t=n}}function Hn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Un(e.nodes.start,e.nodes.end),n=!0),e.f|=ne,Bn(e,t&&!n),vr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();zn(e),e.f^=ne,e.f|=te;var i=e.parent;i!==null&&i.first!==null&&Wn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Un(e,t){for(;e!==null;){var n=e===t?null:hn(e);e.remove(),e=n}}function Wn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Gn(e,t,n=!0){var r=[];Kn(e,r,!0);var i=()=>{n&&Hn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Kn(e,t,n){if(!(e.f&8192)){e.f^=ee;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;Kn(i,t,o?n:!1)}i=a}}}function qn(e){Jn(e,!0)}function Jn(e,t){if(e.f&8192){e.f^=ee,e.f&1024||(ot(e,E),zt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;Jn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Yn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:hn(n);t.append(n),n=i}}var Xn=null,Zn=!1,Qn=!1;function $n(e){Qn=e}var U=null,er=!1;function tr(e){U=e}var W=null;function nr(e){W=e}var rr=null;function ir(e){U!==null&&(rr??=new Set).add(e)}var ar=null,or=0,sr=null;function cr(e){sr=e}var lr=1,ur=0,dr=ur;function fr(e){dr=e}function pr(){return++lr}function mr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~k),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(mr(a)&&Et(a),a.wv>e.wv)return!0}t&512&&jt===null&&ot(e,T)}return!1}function hr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(rr!==null&&rr.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?hr(a,t,!1):t===a&&(n?ot(a,E):a.f&1024&&ot(a,D),Kt(a))}}function gr(e){var t=ar,n=or,r=sr,i=U,a=rr,o=Je,s=er,c=dr,l=e.f;ar=null,or=0,sr=null,U=l&96?null:e,rr=null,Ye(e.ctx),er=!1,dr=++ur,e.ac!==null&&(Cn(()=>{e.ac.abort(ye)}),e.ac=null);try{e.f|=ce;var u=e.fn,d=u();e.f|=O;var f=e.deps,p=F?.is_fork;if(ar!==null){var m;if(p||vr(e,or),f!==null&&or>0)for(f.length=or+ar.length,m=0;m<ar.length;m++)f[or+m]=ar[m];else e.deps=f=ar;if(On()&&e.f&512)for(m=or;m<f.length;m++)(f[m].reactions??=[]).push(e)}else!p&&f!==null&&or<f.length&&(vr(e,or),f.length=or);if(Qe()&&sr!==null&&!er&&f!==null&&!(e.f&6146))for(m=0;m<sr.length;m++)hr(sr[m],e);if(i!==null&&i!==e){if(ur++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=ur;if(t!==null)for(let e of t)e.rv=ur;sr!==null&&(r===null?r=sr:r.push(...sr))}return e.f&8388608&&(e.f^=ue),d}catch(e){return rt(e)}finally{e.f^=ce,ar=t,or=n,sr=r,U=i,rr=a,Ye(o),er=s,dr=c}}function _r(e,t){let n=t.reactions;if(n!==null){var r=u.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&t.f&2&&(ar===null||!d.call(ar,t))){var a=t;a.f&512&&(a.f^=512,a.f&=~k),a.v!==A&&st(a),Dt(a),vr(a,0)}}function vr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)_r(e,n[r])}function yr(e){var t=e.f;if(!(t&16384)){ot(e,T);var n=W,r=Zn;W=e,Zn=!0;try{t&16777232?Vn(e):Bn(e),zn(e);var i=gr(e);e.teardown=typeof i==`function`?i:null,e.wv=lr}finally{Zn=r,W=n}}}async function br(){await Promise.resolve(),Bt()}function G(e){var t=(e.f&2)!=0;if(Xn?.add(e),U!==null&&!er&&!(W!==null&&W.f&16384)&&(rr===null||!rr.has(e))){var n=U.deps;if(U.f&2097152)e.rv<ur&&(e.rv=ur,ar===null&&n!==null&&n[or]===e?or++:ar===null?ar=[e]:ar.push(e));else{U.deps??=[],d.call(U.deps,e)||U.deps.push(e);var r=e.reactions;r===null?e.reactions=[U]:d.call(r,U)||r.push(U)}}if(Qn&&Xt.has(e))return Xt.get(e);if(t){var i=e;if(Qn){var a=i.v;return(!(i.f&1024)&&i.reactions!==null||Sr(i))&&(a=Tt(i)),Xt.set(i,a),a}var o=(i.f&512)==0&&!er&&U!==null&&(Zn||(U.f&512)!=0),s=(i.f&O)===0;mr(i)&&(o&&(i.f|=512),Et(i)),o&&!s&&(Ot(i),xr(i))}if(jt?.has(e))return jt.get(e);if(e.f&8388608)throw e.v;return e.v}function xr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(Ot(t),xr(t))}function Sr(e){if(e.v===A)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(Xt.has(t)||t.f&2&&Sr(t))return!0;return!1}function Cr(e){var t=er;try{return er=!0,e()}finally{er=t}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var wr=[`touchstart`,`touchmove`];function Tr(e){return wr.includes(e)}var Er=Symbol(`events`),Dr=new Set,Or=new Set;function kr(e,t,n,r={}){function i(e){if(r.capture||Nr.call(t,e),!e.cancelBubble)return Cn(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?tt(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Ar(e,t,n,r,i){var a={capture:r,passive:i},o=kr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&kn(()=>{t.removeEventListener(e,o,a)})}function K(e,t,n){(t[Er]??={})[e]=n}function jr(e){for(var t=0;t<e.length;t++)Dr.add(e[t]);for(var n of Or)n(e)}var Mr=null;function Nr(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;Mr=e;var o=0,s=Mr===e&&e[Er];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[Er]=t;return}var l=i.indexOf(t);if(l===-1)return;c<=l&&(o=c)}if(a=i[o]||e.target,a!==t){p(e,`currentTarget`,{configurable:!0,get(){return a||n}});var u=U,d=W;tr(null),nr(null);try{for(var f,m=[];a!==null&&a!==t;){try{var h=a[Er]?.[r];h!=null&&(!a.disabled||e.target===a)&&h.call(a,e)}catch(e){f?m.push(e):f=e}if(e.cancelBubble)break;o++,a=o<i.length?i[o]:null}if(f){for(let e of m)queueMicrotask(()=>{throw e});throw f}}finally{e[Er]=t,delete e.currentTarget,tr(u),nr(d)}}}var Pr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Fr(e){return Pr?.createHTML(e)??e}function Ir(e){var t=vn(`template`);return t.innerHTML=Fr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Lr(e,t){var n=W;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function q(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(j)return Lr(M,null),M;i===void 0&&(i=Ir(a?e:`<!>`+e),n||(i=mn(i)));var t=r||ln?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=mn(t),s=t.lastChild;Lr(o,s)}else Lr(t,t);return t}}function Rr(e=``){if(!j){var t=pn(e+``);return Lr(t,t),t}var n=M;return n.nodeType===3?yn(n):(n.before(n=pn()),Be(n)),Lr(n,n),n}function zr(){if(j)return Lr(M,null),M;var e=document.createDocumentFragment(),t=document.createComment(``),n=pn();return e.append(t,n),Lr(t,n),e}function J(e,t){if(j){var n=W;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=M),Ve();return}e!==null&&e.before(t)}function Y(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[_e]??=e.nodeValue)&&(e[_e]=n,e.nodeValue=`${n}`)}function Br(e,t){return Hr(e,t)}var Vr=new Map;function Hr(e,{target:t,anchor:n,props:r={},events:i,context:a,intro:o=!0,transformError:s}){fn();var c=void 0,l=Mn(()=>{var o=n??t.appendChild(pn());mt(o,{pending:()=>{}},t=>{Xe({});var n=Je;if(a&&(n.c=a),i&&(r.$$events=i),j&&Lr(t,null),c=e(t,r)||{},j&&(W.nodes.end=M,M===null||M.nodeType!==8||M.data!==`]`))throw Ie(),Ne;Ze()},s);var l=new Set,u=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!l.has(r)){l.add(r);var i=Tr(r);for(let e of[t,document]){var a=Vr.get(e);a===void 0&&(a=new Map,Vr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Nr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return u(f(Dr)),Or.add(u),()=>{for(var e of l)for(let n of[t,document]){var r=Vr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Nr),r.delete(e),r.size===0&&Vr.delete(n)):r.set(e,i)}Or.delete(u),o!==n&&o.parentNode?.removeChild(o)}});return Ur.set(c,l),c}var Ur=new WeakMap,Wr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)qn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(qn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Hn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Yn(r,t),t.append(pn()),this.#n.set(e,{effect:r,fragment:t})}else Hn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Gn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Hn(n.effect),this.#n.delete(e))};ensure(e,t){var n=F,r=_n();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=pn();i.append(a),this.#n.set(e,{effect:Rn(()=>t(a)),fragment:i})}else this.#t.set(e,Rn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else j&&(this.anchor=M),this.#a(n)}};function X(e,t,n=!1){var r;j&&(r=M,Ve());var i=new Wr(e),a=n?re:0;function o(e,t){if(j){var n=We(r);if(e!==parseInt(n.substring(1))){var a=Ue();Be(a),i.anchor=a,ze(!1),i.ensure(e,t),ze(!0);return}}i.ensure(e,t)}In(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Gr(e,t){return t}function Kr(e,t,n){for(var r=[],i=t.length,a,o=t.length,s=0;s<i;s++){let n=t[s];Gn(n,()=>{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;qr(e,f(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else--o},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var l=n,u=l.parentNode;gn(u),u.append(l),e.items.clear()}qr(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function qr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=se,Yn(a,document.createDocumentFragment())):Hn(t[i],n)}}var Jr;function Z(e,t,n,r,i,a=null){var o=e,s=new Map;if(t&4){var c=e;o=j?Be(mn(c)):c.appendChild(pn())}j&&Ve();var u=null,d=Ct(()=>{var e=n();return l(e)?e:e==null?[]:f(e)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=u,Xr(v,p,o,t,r),u!==null&&(p.length===0?u.f&33554432?(u.f^=se,Qr(u,null,o)):qn(u):Gn(u,()=>{u=null})))}function _(e){v.pending.delete(e)}var v={effect:In(()=>{p=G(d);var e=p.length;let c=!1;j&&We(o)===`[!`!=(e===0)&&(o=Ue(),Be(o),ze(!1),c=!0);for(var l=new Set,f=F,v=_n(),y=0;y<e;y+=1){j&&M.nodeType===8&&M.data===`]`&&(o=M,c=!0,ze(!1));var b=p[y],x=r(b,y),S=h?null:s.get(x);S?(S.v&&en(S.v,b),S.i&&en(S.i,y),v&&f.unskip_effect(S.e)):(S=Zr(s,h?o:Jr??=pn(),b,x,y,i,t,n),h||(S.e.f|=se),s.set(x,S)),l.add(x)}if(e===0&&a&&!u&&(h?u=Rn(()=>a(o)):(u=Rn(()=>a(Jr??=pn())),u.f|=se)),e>l.size&&Ce(``,``,``),j&&e>0&&Be(Ue()),!h)if(m.set(f,l),v){for(let[e,t]of s)l.has(e)||f.skip_effect(t.e);f.oncommit(g),f.ondiscard(_)}else g(f);c&&ze(!0),G(d)}),flags:t,items:s,pending:m,outrogroups:null,fallback:u};h=!1,j&&(o=M)}function Yr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Xr(e,t,n,r,i){var a=(r&8)!=0,o=t.length,s=e.items,c=Yr(e.effect.first),l,u=null,d,p=[],m=[],h,g,_,v;if(a)for(v=0;v<o;v+=1)h=t[v],g=i(h,v),_=s.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(d??=new Set).add(_));for(v=0;v<o;v+=1){if(h=t[v],g=i(h,v),_=s.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(qn(_),a&&(_.nodes?.a?.unfix(),(d??=new Set).delete(_))),_.f&33554432)if(_.f^=se,_===c)Qr(_,null,n);else{var y=u?u.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),$r(e,u,_),$r(e,_,y),Qr(_,y,n),u=_,p=[],m=[],c=Yr(u.next);continue}if(_!==c){if(l!==void 0&&l.has(_)){if(p.length<m.length){var b=m[0],x;u=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)Qr(p[x],b,n);for(x=0;x<m.length;x+=1)l.delete(m[x]);$r(e,S.prev,C.next),$r(e,u,S),$r(e,C,b),c=b,u=C,--v,p=[],m=[]}else l.delete(_),Qr(_,c,n),$r(e,_.prev,_.next),$r(e,_,u===null?e.effect.first:u.next),$r(e,u,_),u=_;continue}for(p=[],m=[];c!==null&&c!==_;)(l??=new Set).add(c),m.push(c),c=Yr(c.next);if(c===null)continue}_.f&33554432||p.push(_),u=_,c=Yr(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(qr(e,f(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||l!==void 0){var w=[];if(l!==void 0)for(_ of l)_.f&8192||w.push(_);for(;c!==null;)!(c.f&8192)&&c!==e.fallback&&w.push(c),c=Yr(c.next);var T=w.length;if(T>0){var E=r&4&&o===0?n:null;if(a){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}Kr(e,w,E)}}a&&tt(()=>{if(d!==void 0)for(_ of d)_.nodes?.a?.apply()})}function Zr(e,t,n,r,i,a,o,s){var c=o&1?o&16?Qt(n):$t(n,!1,!1):null,l=o&2?Qt(i):null;return{v:c,i:l,e:Rn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function Qr(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=hn(r);if(a.before(r),r===i)return;r=o}}function $r(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ei(e,t){let n=null,r=j;var i;if(j){n=M;for(var a=mn(document.head);a!==null&&(a.nodeType!==8||a.data!==e);)a=hn(a);if(a===null)ze(!1);else{var o=hn(a);a.remove(),Be(o)}}j||(i=document.head.appendChild(pn()));try{In(()=>{var e=Rn(()=>t(i));e.f|=ie})}finally{r&&(ze(!0),Be(n))}}function ti(e,t){var n=void 0,r;Ln(()=>{n!==(n=t())&&(r&&=(Hn(r),null),n&&(r=Rn(()=>{Nn(()=>n(e))})))})}function ni(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ni(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function ri(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ni(e))&&(r&&(r+=` `),r+=t);return r}function ii(e){return typeof e==`object`?ri(e):e??``}var ai=[...`
|
|
2
2
|
\r\f\xA0\v`];function oi(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||ai.includes(r[o-1]))&&(s===r.length||ai.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function si(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function ci(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function li(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(ci)),i&&c.push(...Object.keys(i).map(ci));var l=0,u=-1;let t=e.length;for(var d=0;d<t;d++){var f=e[d];if(s?f===`/`&&e[d-1]===`*`&&(s=!1):a?a===f&&(a=!1):f===`/`&&e[d+1]===`*`?s=!0:f===`"`||f===`'`?a=f:f===`(`?o++:f===`)`&&o--,!s&&a===!1&&o===0){if(f===`:`&&u===-1)u=d;else if(f===`;`||d===t-1){if(u!==-1){var p=ci(e.substring(l,u).trim());if(!c.includes(p)){f!==`;`&&d++;var m=e.substring(l,d).trim();n+=` `+m+`;`}}l=d+1,u=-1}}}}return r&&(n+=si(r)),i&&(n+=si(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function ui(e,t,n,r,i,a){var o=e[he];if(j||o!==n||o===void 0){var s=oi(n,r,a);(!j||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[he]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function di(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function fi(e,t,n,r){var i=e[ge];if(j||i!==t){var a=li(t,r);(!j||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[ge]=t}else r&&(Array.isArray(r)?(di(e,n?.[0],r[0]),di(e,n?.[1],r[1],`important`)):di(e,n,r));return r}function pi(e,t,n=!1){if(e.multiple){if(t==null)return;if(!l(t))return Le();for(var r of e.options)r.selected=t.includes(gi(r));return}for(r of e.options)if(on(gi(r),t)){r.selected=!0;return}(!n||t!==void 0)&&(e.selectedIndex=-1)}function mi(e){var t=new MutationObserver(()=>{pi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),kn(()=>{t.disconnect()})}function hi(e,t,n=t){var r=new WeakSet,i=!0;wn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),gi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&gi(o)}n(a),e.__value=a,F!==null&&r.add(F)}),Nn(()=>{var a=t();if(e===document.activeElement){var o=F;if(r.has(o))return}if(pi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=gi(s),n(a))}e.__value=a,i=!1}),mi(e)}function gi(e){return`__value`in e?e.__value:e.value}var _i=Symbol(`is custom element`),vi=Symbol(`is html`),yi=be?`link`:`LINK`,bi=be?`progress`:`PROGRESS`;function xi(e){if(j){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;Q(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;Q(e,`checked`,null),e.checked=r}}};e[ve]=n,tt(n),Sn()}}function Si(e,t){var n=wi(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==bi)||(e.value=t??``)}function Ci(e,t){var n=wi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Q(e,t,n,r){var i=wi(e);j&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===yi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[pe]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Ei(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function wi(e){return e[me]??={[_i]:e.nodeName.includes(`-`),[vi]:e.namespaceURI===Pe}}var Ti=new Map;function Ei(e){var t=e.getAttribute(`is`)||e.nodeName,n=Ti.get(t);if(n)return n;Ti.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=h(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=v(i)}return n}function Di(e,t,n=t){var r=new WeakSet;wn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Oi(e)?ki(a):a,n(a),F!==null&&r.add(F),await br(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(j&&e.defaultValue!==e.value||Cr(t)==null&&e.value)&&(n(Oi(e)?ki(e.value):e.value),F!==null&&r.add(F)),Fn(()=>{var n=t();if(e===document.activeElement){var i=F;if(r.has(i))return}Oi(e)&&n===ki(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function Oi(e){var t=e.type;return t===`number`||t===`range`}function ki(e){return e===``?null:+e}function Ai(e,t){return e===t||e?.[de]===t}function ji(e={},t,n,r){var i=Je.r,a=W;return Nn(()=>{var o,s;return Fn(()=>{o=s,s=r?.()||[],Cr(()=>{Ai(n(...s),e)||(t(e,...s),o&&Ai(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Ai(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function $(e,t,n,r){var i=!0,a=(n&8)!=0,o=(n&16)!=0,s=r,c=!0,l=void 0,u=()=>o&&i?(l??=bt(r),G(l)):(c&&(c=!1,s=o?Cr(r):r),s);let d;if(a){var f=de in e||fe in e;d=m(e,t)?.set??(f&&t in e?n=>e[t]=n:void 0)}var p,h=!1;a?[p,h]=dt(()=>e[t]):p=e[t],p===void 0&&r!==void 0&&(p=u(),d&&(i&&Oe(t),d(p)));var g=i?()=>{var n=e[t];return n===void 0?u():(c=!0,n)}:()=>{var n=e[t];return n!==void 0&&(s=void 0),n===void 0?s:n};if(i&&!(n&4))return g;if(d){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&d(t?g():e),e):g()})}var v=!1,y=(n&1?bt:Ct)(()=>(v=!1,g()));a&&G(y);var b=W;return(function(e,t){if(arguments.length>0){let n=t?G(y):i&&a?R(e):e;return L(y,n),v=!0,s!==void 0&&(s=n),e}return Qn&&v||b.f&16384?y.v:G(y)})}function Mi(e){Je===null&&xe(`onMount`),An(()=>{let t=Cr(e);if(typeof t==`function`)return t})}function Ni(e){Je===null&&xe(`onDestroy`),Mi(()=>()=>Cr(e))}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Pi=`gestalt-mobile.theme`,Fi=`dyne-org`,Ii=[{id:`dyne-org`,label:`Dyne.org`,colorScheme:`light`,logoTone:`dark`},{id:`minimal-light`,label:`Minimal light`,colorScheme:`light`,logoTone:`dark`},{id:`minimal-dark`,label:`Minimal dark`,colorScheme:`dark`,logoTone:`light`}];function Li(e){return typeof e==`string`&&Ii.some(t=>t.id===e)}function Ri(e){return e===`light`?`minimal-light`:e===`dark`?`minimal-dark`:Li(e)?e:Fi}function zi(e){return Ii.find(t=>t.id===e)||Bi(e)}function Bi(e){throw Error(`Unknown theme ID: ${e}`)}function Vi(e){try{return e?.getItem(`gestalt-mobile.theme`)??null}catch{return null}}function Hi(e){if(`storage`in e)return e.storage??null;try{return window.localStorage}catch{return null}}function Ui(e){return`meta`in e?e.meta??null:document.querySelector(`meta[name="color-scheme"]`)}function Wi(e,t={}){let n=t.root??document.documentElement,r=Ui(t),i=zi(e);return n.dataset.theme=i.id,n.dataset.logoTone=i.logoTone,n.style.colorScheme=i.colorScheme,r&&(r.content=i.colorScheme),i.id}function Gi(e={}){return Wi(Ri(Vi(Hi(e))),e)}function Ki(e,t={}){let n=Wi(e,t);try{Hi(t)?.setItem(Pi,n)}catch{}return n}var qi=q(`<span class="session-model svelte-t9laac"><small> </small></span>`),Ji=q(`<p class="session-path svelte-t9laac"> <!></p>`),Yi=q(`<span class="weekly-quota" aria-label="Weekly quota remaining"> </span>`),Xi=q(`<option> </option>`),Zi=q(`<button type="button" popovertarget="configuration-panel" popovertargetaction="hide">Authorized devices</button> <button type="button" class="lock-relay" popovertarget="configuration-panel" popovertargetaction="hide">Lock Gestalt Mobile</button>`,1),Qi=q(`<header class="app-header"><a class="brand" href="/" aria-label="Gestalt Mobile"><img class="brand-icon light-asset" src="/branding/p_glogo_grey.svg" alt=""/> <img class="brand-icon dark-asset" src="/branding/p_glogo_white.svg" alt=""/> <img class="brand-logotype light-asset" src="/branding/t_glogo_grey.svg" alt=""/> <img class="brand-logotype dark-asset" src="/branding/t_glogo_white.svg" alt=""/></a> <!> <div class="header-actions"><!> <button class="menu-trigger" type="button" popovertarget="configuration-panel" aria-label="Open configuration"><span class="menu-lines" aria-hidden="true"><span></span><span></span><span></span></span></button></div></header> <div id="configuration-panel" class="configuration-panel" popover="auto"><div class="configuration-brand" aria-label="Dyne"><img class="configuration-logo light-asset" src="/branding/dyne-logotype-black.svg" alt=""/> <img class="configuration-logo dark-asset" src="/branding/dyne-logotype-white.svg" alt=""/></div> <label class="appearance-control" for="appearance"><span aria-hidden="true">aA</span> <select id="appearance" aria-label="Appearance"></select></label> <button type="button" popovertarget="configuration-panel" popovertargetaction="hide">Scratchpad</button> <!></div>`,1);function $i(e,t){Xe(t,!0);let n=$(t,`sessionPath`,3,null),r=$(t,`sessionModel`,3,null),i=$(t,`weeklyQuotaRemaining`,3,null),a=$(t,`passkeyAuthEnabled`,3,!0),o=$(t,`onlock`,3,()=>{}),s=$(t,`ondevices`,3,()=>{}),c=$(t,`onscratchpad`,3,()=>{});var l=Qi(),u=B(l),d=V(z(u),2),f=e=>{var t=Ji(),i=z(t,!0),a=V(i),o=e=>{var t=qi(),n=z(t),i=z(n);N(n),N(t),H(()=>Y(i,`· ${r()??``}`)),J(e,t)};X(a,e=>{r()&&e(o)}),N(t),H(()=>{Q(t,`title`,n()),Y(i,n())}),J(e,t)};X(d,e=>{n()&&e(f)});var p=V(d,2),m=z(p),h=e=>{var t=Yi(),n=z(t);N(t),H(()=>Y(n,`${i()??``}% left`)),J(e,t)};X(m,e=>{i()!==null&&e(h)}),He(2),N(p),N(u);var g=V(u,2),_=V(z(g),2),v=V(z(_),2);Z(v,21,()=>Ii,e=>e.id,(e,t)=>{var n=Xi(),r=z(n,!0);N(n);var i={};H(()=>{Y(r,G(t).label),i!==(i=G(t).id)&&(n.value=(n.__value=G(t).id)??``)}),J(e,n)}),N(v);var y;mi(v),N(_);var b=V(_,2),x=V(b,2),S=e=>{var t=Zi(),n=B(t),r=V(n,2);K(`click`,n,e=>s()(e.currentTarget)),K(`click`,r,function(...e){o()?.apply(this,e)}),J(e,t)};X(x,e=>{a()&&e(S)}),N(g),H(()=>{y!==(y=t.theme)&&(v.value=(v.__value=t.theme)??``,pi(v,t.theme))}),K(`change`,v,e=>t.onthemechange(e.currentTarget.value)),K(`click`,b,function(...e){c()?.apply(this,e)}),J(e,l),Ze()}jr([`change`,`click`]);function ea(e){if(ta(e))return null;let[t,n]=e.label.split(` · `,2);return{kind:t,...n?{status:n}:{},content:na(t,e.detail)}}function ta(e){return e.label.startsWith(`Tool`)&&(e.detail.includes(`context_mode`)||/(^|[_:])ctx_[a-z]/i.test(e.detail))}function na(e,t){return e===`Command`?ra(t):e===`File change`||e===`fileChange`?t.split(`
|
|
3
|
-
`).filter(Boolean).join(`, `):t}function ra(e){let t=e.match(/^\/bin\/bash -lc "([\s\S]*)"$/);return t?t[1].replace(/\\"/g,`"`).replace(/\\\\/g,`\\`):e}var ia=q(`<li class="activity-row svelte-thyolt"><small class="activity-type svelte-thyolt"> </small> <span class="activity-content svelte-thyolt"> </span></li>`),aa=q(`<details class="chat-activity svelte-thyolt"><summary class="svelte-thyolt">activity <span aria-hidden="true"> </span></summary> <ul class="activity-list svelte-thyolt"></ul></details>`),oa=q(`<section class="live-activity svelte-thyolt" aria-label="Current activity"><strong class="svelte-thyolt">activity</strong> <ul class="activity-list svelte-thyolt"></ul></section>`);function sa(e,t){Xe(t,!0);let n=$(t,`variant`,3,`summary`),r=P(()=>t.activities.flatMap(e=>{let t=ea(e);return t&&t.kind.toLowerCase().replaceAll(` `,``)!==`filechange`?[{id:e.id,...t}]:[]}));var i=zr(),a=B(i),o=e=>{var t=zr(),i=B(t),a=e=>{var t=aa(),n=z(t),i=V(z(n)),a=z(i);N(i),N(n);var o=V(n,2);Z(o,21,()=>G(r),e=>e.id,(e,t)=>{var n=ia(),r=z(n),i=z(r);N(r);var a=V(r,2),o=z(a,!0);N(a),N(n),H(e=>{Q(n,`data-activity-kind`,e),Q(n,`data-activity-status`,G(t).status),Y(i,`${G(t).kind??``}${G(t).status?` · ${G(t).status}`:``}`),Y(o,G(t).content)},[()=>G(t).kind.toLowerCase().replaceAll(` `,`-`)]),J(e,n)}),N(o),N(t),H(()=>Y(a,`· ${G(r).length??``}`)),J(e,t)},o=e=>{var t=oa(),n=V(z(t),2);Z(n,21,()=>G(r),e=>e.id,(e,t)=>{var n=ia(),r=z(n),i=z(r);N(r);var a=V(r,2),o=z(a,!0);N(a),N(n),H(e=>{Q(n,`data-activity-kind`,e),Q(n,`data-activity-status`,G(t).status),Y(i,`${G(t).kind??``}${G(t).status?` · ${G(t).status}`:``}`),Y(o,G(t).content)},[()=>G(t).kind.toLowerCase().replaceAll(` `,`-`)]),J(e,n)}),N(n),N(t),J(e,t)};X(i,e=>{n()===`summary`?e(a):e(o,-1)}),J(e,t)};X(a,e=>{G(r).length&&e(o)}),J(e,i),Ze()}var ca=[{name:`model`,description:`Choose the model for the next turn`,argumentPicker:`models`},{name:`reasoning`,description:`Choose reasoning effort for the next turn`,argumentPicker:`reasoning`}];function la(e){let t=e.match(/^\/([^\s]*)$/);return t?t[1].toLowerCase():null}function ua(e){let t=la(e);return t===null?[]:ca.filter(e=>e.name.startsWith(t))}function da(e){let t=e.match(/^\/([^\s]+)\s*$/)?.[1]?.toLowerCase();return ca.find(e=>e.name===t)?.argumentPicker}function fa(e){return[...e].sort((e,t)=>pa(t,e)||t.localeCompare(e))}function pa(e,t){let n=e.match(/\d+(?:\.\d+)*/)?.[0].split(`.`).map(Number)??[],r=t.match(/\d+(?:\.\d+)*/)?.[0].split(`.`).map(Number)??[];for(let e=0;e<Math.max(n.length,r.length);e+=1){let t=(n[e]??0)-(r[e]??0);if(t)return t}return 0}function ma(e){return e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.isComposing}var ha=q(`Ready <span class="block-cursor svelte-1264sfg" aria-hidden="true"></span>`,1),ga=q(`<p id="writer-hint" class="writer-hint svelte-1264sfg">You can read this conversation. Sending will connect to Codex.</p>`),_a=q(`<button type="button" class="svelte-1264sfg">Retry send</button>`),va=q(`<div class="writer-feedback svelte-1264sfg" role="alert" aria-atomic="true"><p class="svelte-1264sfg"> </p> <!></div>`),ya=q(`<li><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code> <small class="svelte-1264sfg"> </small></button></li>`),ba=q(`<ul id="chat-command-completion" class="command-menu svelte-1264sfg" aria-label="Chat commands"></ul>`),xa=q(`<li class="svelte-1264sfg"><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code></button></li>`),Sa=q(`<ul class="command-menu svelte-1264sfg" aria-label="Available models"></ul>`),Ca=q(`<ul class="command-menu svelte-1264sfg" aria-label="Reasoning efforts"></ul>`),wa=q(`<button type="button" class="svelte-1264sfg">Interrupt</button>`),Ta=q(`<form class="svelte-1264sfg"><p role="status" aria-live="polite" aria-atomic="true" class="svelte-1264sfg"><!></p> <!> <!> <!> <!> <!> <div class="prompt-row svelte-1264sfg"><textarea id="message" aria-label="Prompt" placeholder="Prompt" rows="1" required="" class="svelte-1264sfg"></textarea> <button type="submit" aria-label="Send prompt" class="svelte-1264sfg"><svg aria-hidden="true" viewBox="0 0 24 24" class="svelte-1264sfg"><path d="M9 10 5 14l4 4M5 14h8a6 6 0 0 0 6-6V6" class="svelte-1264sfg"></path></svg></button></div> <!></form>`);function Ea(e,t){Xe(t,!0);let n=$(t,`detached`,3,!1),r=$(t,`retryMessage`,3,null),i=$(t,`retryable`,3,!1),a=$(t,`models`,19,()=>[]),o=$(t,`onscrollbottom`,3,()=>{}),s=$(t,`onmodelselect`,3,()=>{}),c=$(t,`onretry`,3,()=>{}),l=I(0),u=I(null),d=P(()=>ua(t.message)),f=P(()=>la(t.message)),p=P(()=>G(f)!==null&&G(f)!==G(u)&&G(d).length>0),m=P(()=>da(t.message)),h=P(()=>G(m)===`models`),g=P(()=>fa(a())),_=P(()=>G(m)===`reasoning`);function v(e,n=!1){L(u,null),L(l,0),t.onchange(e),n&&o()()}function y(e=G(l)){let t=G(d)[e];t&&v(`/${t.name} `,!0)}function b(e){if(G(p)){if(e.key===`ArrowDown`){e.preventDefault(),L(l,(G(l)+1)%G(d).length);return}if(e.key===`ArrowUp`){e.preventDefault(),L(l,(G(l)-1+G(d).length)%G(d).length);return}if(e.key===`Escape`){e.preventDefault(),L(u,G(f),!0);return}if(e.key===`Tab`||ma(e)){e.preventDefault(),y();return}}!ma(e)||t.activeTurnId||t.starting||!t.message.trim()||(e.preventDefault(),t.onsend())}var x=Ta(),S=z(x),C=z(S),w=e=>{var t=ha();He(),J(e,t)},T=e=>{var n=Rr();H(()=>Y(n,t.status)),J(e,n)};X(C,e=>{t.status===`Ready.`?e(w):e(T,-1)}),N(S);var E=V(S,2),D=e=>{J(e,ga())};X(E,e=>{n()&&e(D)});var ee=V(E,2),te=e=>{var n=va(),a=z(n),o=z(a,!0);N(a);var s=V(a,2),l=e=>{var n=_a();H(()=>n.disabled=t.starting),K(`click`,n,function(...e){c()?.apply(this,e)}),J(e,n)};X(s,e=>{i()&&e(l)}),N(n),H(()=>Y(o,r())),J(e,n)};X(ee,e=>{r()&&e(te)});var O=V(ee,2),ne=e=>{var t=ba();Z(t,23,()=>G(d),e=>e.name,(e,t,n)=>{var r=ya(),i=z(r),a=z(i),o=z(a);N(a);var s=V(a,2),c=z(s,!0);N(s),N(i),N(r),H(()=>{ui(r,1,ii(G(n)===G(l)?`command-selected`:void 0),`svelte-1264sfg`),Y(o,`/${G(t).name??``}`),Y(c,G(t).description)}),K(`click`,i,()=>y(G(n))),J(e,r)}),N(t),J(e,t)};X(O,e=>{G(p)&&e(ne)});var re=V(O,2),ie=e=>{var t=Sa();Z(t,20,()=>G(g),e=>e,(e,t)=>{var n=xa(),r=z(n),i=z(r),a=z(i,!0);N(i),N(r),N(n),H(()=>Y(a,t)),K(`click`,r,()=>{s()(t),o()()}),J(e,n)}),N(t),J(e,t)};X(re,e=>{G(h)&&e(ie)});var ae=V(re,2),oe=e=>{var t=Ca();Z(t,20,()=>[`low`,`medium`,`high`],e=>e,(e,t)=>{var n=xa(),r=z(n),i=z(r),a=z(i,!0);N(i),N(r),N(n),H(()=>Y(a,t)),K(`click`,r,()=>v(`/reasoning ${t} `,!0)),J(e,n)}),N(t),J(e,t)};X(ae,e=>{G(_)&&e(oe)});var se=V(ae,2),k=z(se);bn(k);var ce=V(k,2);N(se);var le=V(se,2),ue=e=>{var n=wa();K(`click`,n,function(...e){t.oninterrupt?.apply(this,e)}),J(e,n)};X(le,e=>{t.activeTurnId&&e(ue)}),N(x),H(e=>{Q(x,`aria-busy`,t.starting),Q(S,`aria-label`,t.status),Si(k,t.message),Q(k,`aria-describedby`,n()?`writer-hint`:void 0),ce.disabled=e},[()=>!!t.activeTurnId||t.starting||!t.message.trim()]),Ar(`submit`,x,e=>{e.preventDefault(),t.onsend()}),K(`input`,k,e=>v(e.currentTarget.value)),K(`keydown`,k,b),J(e,x),Ze()}jr([`click`,`input`,`keydown`]);function Da(e){if(!e||typeof e!=`object`)return null;let t=e.command;return typeof t==`string`&&t.trim()?t:null}function Oa(e){if(!ka(e))return null;let t=e.changes;if(!Array.isArray(t))return null;let n=t.map(e=>ka(e)&&typeof e.path==`string`&&e.path.trim()?e.path:null).filter(e=>e!==null);return n.length===t.length&&n.length>0?n:null}function ka(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Aa=q(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></label></div>`),ja=q(`<label class="custom svelte-77f3gb">Your custom answer <input required="" class="svelte-77f3gb"/></label>`),Ma=q(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong>Custom answer</strong><span class="svelte-77f3gb">Provide your own response.</span></label></div> <!>`,1),Na=q(`<fieldset class="svelte-77f3gb"><legend class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></legend> <div class="choices svelte-77f3gb"><!> <!></div></fieldset>`),Pa=q(`<form class="quiz-form svelte-77f3gb"><fieldset class="questions svelte-77f3gb"></fieldset> <button type="submit">Send answers</button></form>`);function Fa(e,t){Xe(t,!0);let n=$(t,`disabled`,3,!1),r=R({}),i=R({}),a=P(()=>t.quiz.questions.every(e=>!!t.answers[e.id]?.trim()));async function o(e){i[e]=!0,t.onanswer(e,t.answers[e]??``),await br(),r[e]?.focus()}var s=Pa(),c=z(s);Z(c,21,()=>t.quiz.questions,e=>e.id,(e,n)=>{let a=P(()=>`${t.requestId}-${G(n).id}-custom`),s=P(()=>G(n).choices.some(e=>e.label===t.answers[G(n).id]));var c=Na(),l=z(c),u=z(l),d=z(u,!0);N(u);var f=V(u),p=z(f,!0);N(f),N(l);var m=V(l,2),h=z(m);Z(h,17,()=>G(n).choices,e=>`${G(n).id}-${e.label}`,(e,r)=>{let a=P(()=>`${t.requestId}-${G(n).id}-${G(r).label}`);var o=Aa(),s=z(o);xi(s);var c=V(s,2),l=z(c),u=z(l,!0);N(l);var d=V(l),f=z(d,!0);N(d),N(c),N(o),H(()=>{Q(s,`id`,G(a)),Q(s,`name`,`${t.requestId}-${G(n).id}`),Ci(s,t.answers[G(n).id]===G(r).label),Q(c,`for`,G(a)),Y(u,G(r).label),Y(f,G(r).description)}),K(`change`,s,()=>{i[G(n).id]=!1,t.onanswer(G(n).id,G(r).label)}),J(e,o)});var g=V(h,2),_=e=>{var c=Ma(),l=B(c),u=z(l);xi(u);var d=V(u,2);N(l);var f=V(l,2),p=e=>{var i=ja(),o=V(z(i));xi(o),ji(o,(e,t)=>r[t.id]=e,e=>r?.[e.id],()=>[G(n)]),N(i),H(()=>{Q(i,`for`,`${G(a)}-text`),Q(o,`id`,`${G(a)}-text`),Q(o,`type`,G(n).isSecret?`password`:`text`),Si(o,t.answers[G(n).id])}),K(`input`,o,e=>t.onanswer(G(n).id,e.currentTarget.value)),J(e,i)},m=P(()=>i[G(n).id]||!!t.answers[G(n).id]&&!G(s));X(f,e=>{G(m)&&e(p)}),H(e=>{Q(u,`id`,G(a)),Q(u,`name`,`${t.requestId}-${G(n).id}`),Ci(u,e),Q(d,`for`,G(a))},[()=>i[G(n).id]||!!t.answers[G(n).id]&&!G(s)]),K(`change`,u,()=>o(G(n).id)),K(`click`,u,()=>{i[G(n).id]&&o(G(n).id)}),J(e,c)};X(g,e=>{G(n).allowCustom&&e(_)}),N(m),N(c),H(()=>{Y(d,G(n).header),Y(p,G(n).question)}),J(e,c)}),N(c);var l=V(c,2);N(s),H(()=>{c.disabled=n(),l.disabled=n()||!G(a)}),Ar(`submit`,s,e=>{e.preventDefault(),G(a)&&t.onsubmit()}),J(e,s),Ze()}jr([`change`,`click`,`input`]);function Ia(e,t=2){if(!Ua(e)||!Array.isArray(e.questions)||e.questions.length<1||e.questions.length>8)return null;let n=e.questions.map(e=>za(e,t));if(n.some(e=>e===null))return null;let r=n;return new Set(r.map(e=>e.id)).size===r.length?{questions:r}:null}function La(e){return!Ua(e)||!Array.isArray(e.questions)||e.questions.length>3?null:Ia({questions:e.questions.map(e=>Ua(e)?{id:e.id,header:e.header,question:e.question,choices:e.options,allowCustom:e.isOther===!0,isSecret:e.isSecret===!0}:e)},1)}function Ra(e){return{contentItems:[{type:`input_text`,text:JSON.stringify({answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,e.answer]))})}],success:!0}}function za(e,t){if(!Ua(e)||!Array.isArray(e.choices)||e.choices.length<t||e.choices.length>5||!Va(e.id)||!Ha(e.header,120)||!Ha(e.question,600)||typeof e.allowCustom!=`boolean`)return null;let n=e.choices.map(Ba);return n.some(e=>e===null)?null:{id:e.id,header:e.header,question:e.question,choices:n,allowCustom:e.allowCustom,isSecret:e.isSecret===!0}}function Ba(e){return!Ua(e)||!Ha(e.label,160)||!Ha(e.description,600)?null:{label:e.label,description:e.description}}function Va(e){return typeof e==`string`&&/^[A-Za-z][A-Za-z0-9_-]{0,63}$/.test(e)}function Ha(e,t){return typeof e==`string`&&e.trim().length>0&&e.length<=t}function Ua(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Wa=q(`<p class="interaction-result svelte-ajsqcq" data-interaction-state="resolved" tabindex="-1"> </p>`),Ga=q(`<p class="interaction-submitting svelte-ajsqcq" data-interaction-state="submitting">Submitting…</p>`),Ka=q(`<p>Codex sent an invalid quiz request.</p>`),qa=q(`<p>Grant the requested permissions for this turn only.</p> <button type="button">Approve</button>`,1),Ja=q(`<pre class="command-approval-command svelte-ajsqcq"><code> </code></pre>`),Ya=q(`<p class="command-approval-missing svelte-ajsqcq">Command details were not provided.</p>`),Xa=q(`<p>Approve this command?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),Za=q(`<li><code> </code></li>`),Qa=q(`<ul class="file-change-approval-targets svelte-ajsqcq" aria-label="Files to change"></ul>`),$a=q(`<p class="file-change-approval-missing svelte-ajsqcq">File details were not provided.</p>`),eo=q(`<p>Approve changes to these files?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),to=q(`<button type="button">Approve</button><button type="button">Deny</button>`,1),no=q(`<p class="interaction-failed svelte-ajsqcq" data-interaction-state="failed">Could not send. Try again.</p> <button type="button">Retry</button>`,1),ro=q(`<!> <!> <!>`,1),io=q(`<article><p class="interaction-kind svelte-ajsqcq"> </p> <!></article>`);function ao(e,t){Xe(t,!0);let n=$(t,`onretry`,3,()=>{}),r=I(null),i=R({}),a=e=>Object.fromEntries(Object.entries(t.answers).filter(([t])=>t.startsWith(`${e}:`)).map(([t,n])=>[t.slice(e.length+1),n]));function o(e,t){L(r,e.requestId,!0),t()}An(()=>{let e=t.interactions.find(e=>e.requestId===G(r));e?.state===`resolved`&&(br().then(()=>i[e.requestId]?.focus()),L(r,null))});var s=zr();Z(B(s),17,()=>t.interactions,e=>e.key??e.requestId,(e,r)=>{let s=P(()=>G(r).state===`submitting`);var c=io();let l;var u=z(c),d=z(u,!0);N(u);var f=V(u,2),p=e=>{var t=Wa(),n=z(t,!0);N(t),ji(t,(e,t)=>i[t.requestId]=e,e=>i?.[e.requestId],()=>[G(r)]),H(()=>Y(n,G(r).attemptedOutcome===`denied`?`Denied`:G(r).attemptedOutcome===`answered`?`Answers sent`:`Approved`)),J(e,t)},m=e=>{var i=ro(),c=B(i),l=e=>{J(e,Ga())};X(c,e=>{G(s)&&e(l)});var u=V(c,2),d=e=>{let n=P(()=>G(r).kind===`quiz`?Ia(G(r).payload):La(G(r).payload));var i=zr(),c=B(i),l=e=>{{let i=P(()=>a(G(r).requestId));Fa(e,{get requestId(){return G(r).requestId},get quiz(){return G(n)},get answers(){return G(i)},get disabled(){return G(s)},onanswer:(e,n)=>t.onanswer(G(r).requestId,e,n),onsubmit:()=>o(G(r),()=>t.onquiz(G(r)))})}},u=e=>{J(e,Ka())};X(c,e=>{G(n)?e(l):e(u,-1)}),J(e,i)},f=e=>{var n=qa(),i=V(B(n),2);H(()=>i.disabled=G(s)),K(`click`,i,()=>o(G(r),()=>t.onpermission(G(r)))),J(e,n)},p=e=>{let n=P(()=>Da(G(r).payload));var i=Xa(),a=V(B(i),2),c=e=>{var t=Ja(),r=z(t),i=z(r,!0);N(r),N(t),H(()=>Y(i,G(n))),J(e,t)},l=e=>{J(e,Ya())};X(a,e=>{G(n)?e(c):e(l,-1)});var u=V(a,2),d=z(u),f=V(d,2);N(u),H(()=>{d.disabled=G(s),f.disabled=G(s)}),K(`click`,d,()=>o(G(r),()=>t.ondecision(G(r).requestId,`accept`))),K(`click`,f,()=>o(G(r),()=>t.ondecision(G(r).requestId,`decline`))),J(e,i)},m=e=>{let n=P(()=>Oa(G(r).payload));var i=eo(),a=V(B(i),2),c=e=>{var t=Qa();Z(t,20,()=>G(n),e=>e,(e,t)=>{var n=Za(),r=z(n),i=z(r,!0);N(r),N(n),H(()=>Y(i,t)),J(e,n)}),N(t),J(e,t)},l=e=>{J(e,$a())};X(a,e=>{G(n)?e(c):e(l,-1)});var u=V(a,2),d=z(u),f=V(d,2);N(u),H(()=>{d.disabled=G(s),f.disabled=G(s)}),K(`click`,d,()=>o(G(r),()=>t.ondecision(G(r).requestId,`accept`))),K(`click`,f,()=>o(G(r),()=>t.ondecision(G(r).requestId,`decline`))),J(e,i)},h=e=>{var n=to(),i=B(n),a=V(i);H(()=>{i.disabled=G(s),a.disabled=G(s)}),K(`click`,i,()=>o(G(r),()=>t.ondecision(G(r).requestId,`accept`))),K(`click`,a,()=>o(G(r),()=>t.ondecision(G(r).requestId,`decline`))),J(e,n)};X(u,e=>{G(r).kind===`userInput`||G(r).kind===`quiz`?e(d):G(r).kind===`permissionsApproval`?e(f,1):G(r).kind===`commandApproval`?e(p,2):G(r).kind===`fileChangeApproval`?e(m,3):e(h,-1)});var g=V(u,2),_=e=>{var t=no();K(`click`,V(B(t),2),()=>n()(G(r))),J(e,t)};X(g,e=>{G(r).state===`failed`&&e(_)}),J(e,i)};X(f,e=>{G(r).state===`resolved`?e(p):e(m,-1)}),N(c),H(()=>{l=ui(c,1,`svelte-ajsqcq`,null,l,{resolved:G(r).state===`resolved`}),Y(d,G(r).kind)}),J(e,c)}),J(e,s),Ze()}jr([`click`]);function oo(e){let t=[],n=[],r=()=>{n.length&&(t.push({id:n.at(-1).id,kind:`assistant`,commentary:n.map(e=>e.text).join(`
|
|
3
|
+
`).filter(Boolean).join(`, `):t}function ra(e){let t=e.match(/^\/bin\/bash -lc "([\s\S]*)"$/);return t?t[1].replace(/\\"/g,`"`).replace(/\\\\/g,`\\`):e}var ia=q(`<li class="activity-row svelte-thyolt"><small class="activity-type svelte-thyolt"> </small> <span class="activity-content svelte-thyolt"> </span></li>`),aa=q(`<details class="chat-activity svelte-thyolt"><summary class="svelte-thyolt">activity <span aria-hidden="true"> </span></summary> <ul class="activity-list svelte-thyolt"></ul></details>`),oa=q(`<section class="live-activity svelte-thyolt" aria-label="Current activity"><strong class="svelte-thyolt">activity</strong> <ul class="activity-list svelte-thyolt"></ul></section>`);function sa(e,t){Xe(t,!0);let n=$(t,`variant`,3,`summary`),r=P(()=>t.activities.flatMap(e=>{let t=ea(e);return t&&t.kind.toLowerCase().replaceAll(` `,``)!==`filechange`?[{id:e.id,...t}]:[]}));var i=zr(),a=B(i),o=e=>{var t=zr(),i=B(t),a=e=>{var t=aa(),n=z(t),i=V(z(n)),a=z(i);N(i),N(n);var o=V(n,2);Z(o,21,()=>G(r),e=>e.id,(e,t)=>{var n=ia(),r=z(n),i=z(r);N(r);var a=V(r,2),o=z(a,!0);N(a),N(n),H(e=>{Q(n,`data-activity-kind`,e),Q(n,`data-activity-status`,G(t).status),Y(i,`${G(t).kind??``}${G(t).status?` · ${G(t).status}`:``}`),Y(o,G(t).content)},[()=>G(t).kind.toLowerCase().replaceAll(` `,`-`)]),J(e,n)}),N(o),N(t),H(()=>Y(a,`· ${G(r).length??``}`)),J(e,t)},o=e=>{var t=oa(),n=V(z(t),2);Z(n,21,()=>G(r),e=>e.id,(e,t)=>{var n=ia(),r=z(n),i=z(r);N(r);var a=V(r,2),o=z(a,!0);N(a),N(n),H(e=>{Q(n,`data-activity-kind`,e),Q(n,`data-activity-status`,G(t).status),Y(i,`${G(t).kind??``}${G(t).status?` · ${G(t).status}`:``}`),Y(o,G(t).content)},[()=>G(t).kind.toLowerCase().replaceAll(` `,`-`)]),J(e,n)}),N(n),N(t),J(e,t)};X(i,e=>{n()===`summary`?e(a):e(o,-1)}),J(e,t)};X(a,e=>{G(r).length&&e(o)}),J(e,i),Ze()}var ca=[{name:`model`,description:`Choose the model for the next turn`,argumentPicker:`models`},{name:`reasoning`,description:`Choose reasoning effort for the next turn`,argumentPicker:`reasoning`}];function la(e){let t=e.match(/^\/([^\s]*)$/);return t?t[1].toLowerCase():null}function ua(e){let t=la(e);return t===null?[]:ca.filter(e=>e.name.startsWith(t))}function da(e){let t=e.match(/^\/([^\s]+)\s*$/)?.[1]?.toLowerCase();return ca.find(e=>e.name===t)?.argumentPicker}function fa(e){return[...e].sort((e,t)=>pa(t,e)||t.localeCompare(e))}function pa(e,t){let n=e.match(/\d+(?:\.\d+)*/)?.[0].split(`.`).map(Number)??[],r=t.match(/\d+(?:\.\d+)*/)?.[0].split(`.`).map(Number)??[];for(let e=0;e<Math.max(n.length,r.length);e+=1){let t=(n[e]??0)-(r[e]??0);if(t)return t}return 0}function ma(e){return e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.isComposing}var ha=q(`Ready <span class="block-cursor svelte-1264sfg" aria-hidden="true"></span>`,1),ga=q(`<p id="writer-hint" class="writer-hint svelte-1264sfg">You can read this conversation. Sending will connect to Codex.</p>`),_a=q(`<button type="button" class="svelte-1264sfg">Retry send</button>`),va=q(`<div class="writer-feedback svelte-1264sfg" role="alert" aria-atomic="true"><p class="svelte-1264sfg"> </p> <!></div>`),ya=q(`<li><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code> <small class="svelte-1264sfg"> </small></button></li>`),ba=q(`<ul id="chat-command-completion" class="command-menu svelte-1264sfg" aria-label="Chat commands"></ul>`),xa=q(`<li class="svelte-1264sfg"><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code></button></li>`),Sa=q(`<ul class="command-menu svelte-1264sfg" aria-label="Available models"></ul>`),Ca=q(`<ul class="command-menu svelte-1264sfg" aria-label="Reasoning efforts"></ul>`),wa=q(`<button type="button" class="svelte-1264sfg">Interrupt</button>`),Ta=q(`<form class="svelte-1264sfg"><p role="status" aria-live="polite" aria-atomic="true" class="svelte-1264sfg"><!></p> <!> <!> <!> <!> <!> <div class="prompt-row svelte-1264sfg"><textarea id="message" aria-label="Prompt" placeholder="Prompt" rows="1" required="" class="svelte-1264sfg"></textarea> <button type="submit" aria-label="Send prompt" class="svelte-1264sfg"><svg aria-hidden="true" viewBox="0 0 24 24" class="svelte-1264sfg"><path d="M9 10 5 14l4 4M5 14h8a6 6 0 0 0 6-6V6" class="svelte-1264sfg"></path></svg></button></div> <!></form>`);function Ea(e,t){Xe(t,!0);let n=$(t,`detached`,3,!1),r=$(t,`retryMessage`,3,null),i=$(t,`retryable`,3,!1),a=$(t,`models`,19,()=>[]),o=$(t,`onscrollbottom`,3,()=>{}),s=$(t,`onmodelselect`,3,()=>{}),c=$(t,`onretry`,3,()=>{}),l=I(0),u=I(null),d=P(()=>ua(t.message)),f=P(()=>la(t.message)),p=P(()=>G(f)!==null&&G(f)!==G(u)&&G(d).length>0),m=P(()=>da(t.message)),h=P(()=>G(m)===`models`),g=P(()=>fa(a())),_=P(()=>G(m)===`reasoning`);function v(e,n=!1){L(u,null),L(l,0),t.onchange(e),n&&o()()}function y(e=G(l)){let t=G(d)[e];t&&v(`/${t.name} `,!0)}function b(e){if(G(p)){if(e.key===`ArrowDown`){e.preventDefault(),L(l,(G(l)+1)%G(d).length);return}if(e.key===`ArrowUp`){e.preventDefault(),L(l,(G(l)-1+G(d).length)%G(d).length);return}if(e.key===`Escape`){e.preventDefault(),L(u,G(f),!0);return}if(e.key===`Tab`||ma(e)){e.preventDefault(),y();return}}!ma(e)||t.activeTurnId||t.starting||!t.message.trim()||(e.preventDefault(),t.onsend())}var x=Ta(),S=z(x),C=z(S),w=e=>{var t=ha();He(),J(e,t)},T=e=>{var n=Rr();H(()=>Y(n,t.status)),J(e,n)};X(C,e=>{t.status===`Ready.`?e(w):e(T,-1)}),N(S);var E=V(S,2),D=e=>{J(e,ga())};X(E,e=>{n()&&e(D)});var ee=V(E,2),te=e=>{var n=va(),a=z(n),o=z(a,!0);N(a);var s=V(a,2),l=e=>{var n=_a();H(()=>n.disabled=t.starting),K(`click`,n,function(...e){c()?.apply(this,e)}),J(e,n)};X(s,e=>{i()&&e(l)}),N(n),H(()=>Y(o,r())),J(e,n)};X(ee,e=>{r()&&e(te)});var O=V(ee,2),ne=e=>{var t=ba();Z(t,23,()=>G(d),e=>e.name,(e,t,n)=>{var r=ya(),i=z(r),a=z(i),o=z(a);N(a);var s=V(a,2),c=z(s,!0);N(s),N(i),N(r),H(()=>{ui(r,1,ii(G(n)===G(l)?`command-selected`:void 0),`svelte-1264sfg`),Y(o,`/${G(t).name??``}`),Y(c,G(t).description)}),K(`click`,i,()=>y(G(n))),J(e,r)}),N(t),J(e,t)};X(O,e=>{G(p)&&e(ne)});var re=V(O,2),ie=e=>{var t=Sa();Z(t,20,()=>G(g),e=>e,(e,t)=>{var n=xa(),r=z(n),i=z(r),a=z(i,!0);N(i),N(r),N(n),H(()=>Y(a,t)),K(`click`,r,()=>{s()(t),o()()}),J(e,n)}),N(t),J(e,t)};X(re,e=>{G(h)&&e(ie)});var ae=V(re,2),oe=e=>{var t=Ca();Z(t,20,()=>[`low`,`medium`,`high`],e=>e,(e,t)=>{var n=xa(),r=z(n),i=z(r),a=z(i,!0);N(i),N(r),N(n),H(()=>Y(a,t)),K(`click`,r,()=>v(`/reasoning ${t} `,!0)),J(e,n)}),N(t),J(e,t)};X(ae,e=>{G(_)&&e(oe)});var se=V(ae,2),k=z(se);bn(k);var ce=V(k,2);N(se);var le=V(se,2),ue=e=>{var n=wa();K(`click`,n,function(...e){t.oninterrupt?.apply(this,e)}),J(e,n)};X(le,e=>{t.activeTurnId&&e(ue)}),N(x),H(e=>{Q(x,`aria-busy`,t.starting),Q(S,`aria-label`,t.status),Si(k,t.message),Q(k,`aria-describedby`,n()?`writer-hint`:void 0),ce.disabled=e},[()=>!!t.activeTurnId||t.starting||!t.message.trim()]),Ar(`submit`,x,e=>{e.preventDefault(),t.onsend()}),K(`input`,k,e=>v(e.currentTarget.value)),K(`keydown`,k,b),J(e,x),Ze()}jr([`click`,`input`,`keydown`]);function Da(e){if(!e||typeof e!=`object`)return null;let t=e.command;return typeof t==`string`&&t.trim()?t:null}function Oa(e){if(!ka(e))return null;let t=e.changes;if(!Array.isArray(t))return null;let n=t.map(e=>ka(e)&&typeof e.path==`string`&&e.path.trim()?e.path:null).filter(e=>e!==null);return n.length===t.length&&n.length>0?n:null}function ka(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Aa=q(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></label></div>`),ja=q(`<label class="custom svelte-77f3gb">Your custom answer <input required="" class="svelte-77f3gb"/></label>`),Ma=q(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong>Custom answer</strong><span class="svelte-77f3gb">Provide your own response.</span></label></div> <!>`,1),Na=q(`<fieldset class="svelte-77f3gb"><legend class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></legend> <div class="choices svelte-77f3gb"><!> <!></div></fieldset>`),Pa=q(`<form class="quiz-form svelte-77f3gb"><fieldset class="questions svelte-77f3gb"></fieldset> <button type="submit">Send answers</button></form>`);function Fa(e,t){Xe(t,!0);let n=$(t,`disabled`,3,!1),r=R({}),i=R({}),a=P(()=>t.quiz.questions.every(e=>!!t.answers[e.id]?.trim()));async function o(e){i[e]=!0,t.onanswer(e,t.answers[e]??``),await br(),r[e]?.focus()}var s=Pa(),c=z(s);Z(c,21,()=>t.quiz.questions,e=>e.id,(e,n)=>{let a=P(()=>`${t.requestId}-${G(n).id}-custom`),s=P(()=>G(n).choices.some(e=>e.label===t.answers[G(n).id]));var c=Na(),l=z(c),u=z(l),d=z(u,!0);N(u);var f=V(u),p=z(f,!0);N(f),N(l);var m=V(l,2),h=z(m);Z(h,17,()=>G(n).choices,e=>`${G(n).id}-${e.label}`,(e,r)=>{let a=P(()=>`${t.requestId}-${G(n).id}-${G(r).label}`);var o=Aa(),s=z(o);xi(s);var c=V(s,2),l=z(c),u=z(l,!0);N(l);var d=V(l),f=z(d,!0);N(d),N(c),N(o),H(()=>{Q(s,`id`,G(a)),Q(s,`name`,`${t.requestId}-${G(n).id}`),Ci(s,t.answers[G(n).id]===G(r).label),Q(c,`for`,G(a)),Y(u,G(r).label),Y(f,G(r).description)}),K(`change`,s,()=>{i[G(n).id]=!1,t.onanswer(G(n).id,G(r).label)}),J(e,o)});var g=V(h,2),_=e=>{var c=Ma(),l=B(c),u=z(l);xi(u);var d=V(u,2);N(l);var f=V(l,2),p=e=>{var i=ja(),o=V(z(i));xi(o),ji(o,(e,t)=>r[t.id]=e,e=>r?.[e.id],()=>[G(n)]),N(i),H(()=>{Q(i,`for`,`${G(a)}-text`),Q(o,`id`,`${G(a)}-text`),Q(o,`type`,G(n).isSecret?`password`:`text`),Si(o,t.answers[G(n).id])}),K(`input`,o,e=>t.onanswer(G(n).id,e.currentTarget.value)),J(e,i)},m=P(()=>i[G(n).id]||!!t.answers[G(n).id]&&!G(s));X(f,e=>{G(m)&&e(p)}),H(e=>{Q(u,`id`,G(a)),Q(u,`name`,`${t.requestId}-${G(n).id}`),Ci(u,e),Q(d,`for`,G(a))},[()=>i[G(n).id]||!!t.answers[G(n).id]&&!G(s)]),K(`change`,u,()=>o(G(n).id)),K(`click`,u,()=>{i[G(n).id]&&o(G(n).id)}),J(e,c)};X(g,e=>{G(n).allowCustom&&e(_)}),N(m),N(c),H(()=>{Y(d,G(n).header),Y(p,G(n).question)}),J(e,c)}),N(c);var l=V(c,2);N(s),H(()=>{c.disabled=n(),l.disabled=n()||!G(a)}),Ar(`submit`,s,e=>{e.preventDefault(),G(a)&&t.onsubmit()}),J(e,s),Ze()}jr([`change`,`click`,`input`]);function Ia(e,t=2){if(!Ua(e)||!Array.isArray(e.questions)||e.questions.length<1||e.questions.length>8)return null;let n=e.questions.map(e=>za(e,t));if(n.some(e=>e===null))return null;let r=n;return new Set(r.map(e=>e.id)).size===r.length?{questions:r}:null}function La(e){return!Ua(e)||!Array.isArray(e.questions)||e.questions.length>3?null:Ia({questions:e.questions.map(e=>Ua(e)?{id:e.id,header:e.header,question:e.question,choices:e.options,allowCustom:e.isOther===!0,isSecret:e.isSecret===!0}:e)},1)}function Ra(e){return{contentItems:[{type:`input_text`,text:JSON.stringify({answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,e.answer]))})}],success:!0}}function za(e,t){if(!Ua(e)||!Array.isArray(e.choices)||e.choices.length<t||e.choices.length>5||!Va(e.id)||!Ha(e.header,120)||!Ha(e.question,600)||typeof e.allowCustom!=`boolean`)return null;let n=e.choices.map(Ba);return n.some(e=>e===null)?null:{id:e.id,header:e.header,question:e.question,choices:n,allowCustom:e.allowCustom,isSecret:e.isSecret===!0}}function Ba(e){return!Ua(e)||!Ha(e.label,160)||!Ha(e.description,600)?null:{label:e.label,description:e.description}}function Va(e){return typeof e==`string`&&/^[A-Za-z][A-Za-z0-9_-]{0,63}$/.test(e)}function Ha(e,t){return typeof e==`string`&&e.trim().length>0&&e.length<=t}function Ua(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Wa=q(`<p class="interaction-result svelte-ajsqcq" data-interaction-state="resolved" tabindex="-1"> </p>`),Ga=q(`<p class="interaction-submitting svelte-ajsqcq" data-interaction-state="submitting">Submitting…</p>`),Ka=q(`<p>Codex sent an invalid quiz request.</p>`),qa=q(`<p>Grant the requested permissions for this turn only.</p> <button type="button">Approve</button>`,1),Ja=q(`<pre class="command-approval-command svelte-ajsqcq"><code> </code></pre>`),Ya=q(`<p class="command-approval-missing svelte-ajsqcq">Command details were not provided.</p>`),Xa=q(`<p>Approve this command?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),Za=q(`<li><code> </code></li>`),Qa=q(`<ul class="file-change-approval-targets svelte-ajsqcq" aria-label="Files to change"></ul>`),$a=q(`<p class="file-change-approval-missing svelte-ajsqcq">File details were not provided.</p>`),eo=q(`<p>Approve changes to these files?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),to=q(`<button type="button">Approve</button><button type="button">Deny</button>`,1),no=q(`<p class="interaction-failed svelte-ajsqcq" data-interaction-state="failed">Could not send. Try again.</p> <button type="button">Retry</button>`,1),ro=q(`<!> <!> <!>`,1),io=q(`<article><p class="interaction-kind svelte-ajsqcq"> </p> <!></article>`);function ao(e,t){Xe(t,!0);let n=$(t,`onretry`,3,()=>{}),r=I(null),i=R({}),a=e=>Object.fromEntries(Object.entries(t.answers).filter(([t])=>t.startsWith(`${e}:`)).map(([t,n])=>[t.slice(e.length+1),n]));function o(e,t){L(r,e.requestId,!0),t()}An(()=>{let e=t.interactions.find(e=>e.requestId===G(r));e?.state===`resolved`&&(br().then(()=>i[e.requestId]?.focus()),L(r,null))});var s=zr();Z(B(s),17,()=>t.interactions,e=>e.key??e.requestId,(e,r)=>{let s=P(()=>G(r).state===`submitting`);var c=io();let l;var u=z(c),d=z(u,!0);N(u);var f=V(u,2),p=e=>{var t=Wa(),n=z(t,!0);N(t),ji(t,(e,t)=>i[t.requestId]=e,e=>i?.[e.requestId],()=>[G(r)]),H(()=>Y(n,G(r).attemptedOutcome===`denied`?`Denied`:G(r).attemptedOutcome===`dismissed`?`No longer awaiting a response`:G(r).attemptedOutcome===`answered`?`Answers sent`:`Approved`)),J(e,t)},m=e=>{var i=ro(),c=B(i),l=e=>{J(e,Ga())};X(c,e=>{G(s)&&e(l)});var u=V(c,2),d=e=>{let n=P(()=>G(r).kind===`quiz`?Ia(G(r).payload):La(G(r).payload));var i=zr(),c=B(i),l=e=>{{let i=P(()=>a(G(r).requestId));Fa(e,{get requestId(){return G(r).requestId},get quiz(){return G(n)},get answers(){return G(i)},get disabled(){return G(s)},onanswer:(e,n)=>t.onanswer(G(r).requestId,e,n),onsubmit:()=>o(G(r),()=>t.onquiz(G(r)))})}},u=e=>{J(e,Ka())};X(c,e=>{G(n)?e(l):e(u,-1)}),J(e,i)},f=e=>{var n=qa(),i=V(B(n),2);H(()=>i.disabled=G(s)),K(`click`,i,()=>o(G(r),()=>t.onpermission(G(r)))),J(e,n)},p=e=>{let n=P(()=>Da(G(r).payload));var i=Xa(),a=V(B(i),2),c=e=>{var t=Ja(),r=z(t),i=z(r,!0);N(r),N(t),H(()=>Y(i,G(n))),J(e,t)},l=e=>{J(e,Ya())};X(a,e=>{G(n)?e(c):e(l,-1)});var u=V(a,2),d=z(u),f=V(d,2);N(u),H(()=>{d.disabled=G(s),f.disabled=G(s)}),K(`click`,d,()=>o(G(r),()=>t.ondecision(G(r).requestId,`accept`))),K(`click`,f,()=>o(G(r),()=>t.ondecision(G(r).requestId,`decline`))),J(e,i)},m=e=>{let n=P(()=>Oa(G(r).payload));var i=eo(),a=V(B(i),2),c=e=>{var t=Qa();Z(t,20,()=>G(n),e=>e,(e,t)=>{var n=Za(),r=z(n),i=z(r,!0);N(r),N(n),H(()=>Y(i,t)),J(e,n)}),N(t),J(e,t)},l=e=>{J(e,$a())};X(a,e=>{G(n)?e(c):e(l,-1)});var u=V(a,2),d=z(u),f=V(d,2);N(u),H(()=>{d.disabled=G(s),f.disabled=G(s)}),K(`click`,d,()=>o(G(r),()=>t.ondecision(G(r).requestId,`accept`))),K(`click`,f,()=>o(G(r),()=>t.ondecision(G(r).requestId,`decline`))),J(e,i)},h=e=>{var n=to(),i=B(n),a=V(i);H(()=>{i.disabled=G(s),a.disabled=G(s)}),K(`click`,i,()=>o(G(r),()=>t.ondecision(G(r).requestId,`accept`))),K(`click`,a,()=>o(G(r),()=>t.ondecision(G(r).requestId,`decline`))),J(e,n)};X(u,e=>{G(r).kind===`userInput`||G(r).kind===`quiz`?e(d):G(r).kind===`permissionsApproval`?e(f,1):G(r).kind===`commandApproval`?e(p,2):G(r).kind===`fileChangeApproval`?e(m,3):e(h,-1)});var g=V(u,2),_=e=>{var t=no();K(`click`,V(B(t),2),()=>n()(G(r))),J(e,t)};X(g,e=>{G(r).state===`failed`&&e(_)}),J(e,i)};X(f,e=>{G(r).state===`resolved`?e(p):e(m,-1)}),N(c),H(()=>{l=ui(c,1,`svelte-ajsqcq`,null,l,{resolved:G(r).state===`resolved`}),Y(d,G(r).kind)}),J(e,c)}),J(e,s),Ze()}jr([`click`]);function oo(e){let t=[],n=[],r=()=>{n.length&&(t.push({id:n.at(-1).id,kind:`assistant`,commentary:n.map(e=>e.text).join(`
|
|
4
4
|
|
|
5
5
|
`),answer:null,...n.at(-1)?.turnId?{turnId:n.at(-1).turnId}:{},...n.at(-1)?.occurredAt===void 0?{}:{occurredAt:n.at(-1).occurredAt}}),n=[])};for(let i of e){if(i.role===`user`){r(),t.push({id:i.id,kind:`user`,text:i.text,...i.turnId?{turnId:i.turnId}:{},...i.occurredAt===void 0?{}:{occurredAt:i.occurredAt}});continue}if(i.phase===`commentary`){n.push(i);continue}t.push({id:i.id,kind:`assistant`,commentary:n.length?n.map(e=>e.text).join(`
|
|
6
6
|
|
|
7
7
|
`):null,answer:i.text,...i.turnId?{turnId:i.turnId}:{},...i.occurredAt===void 0?{}:{occurredAt:i.occurredAt}}),n=[]}return r(),t}function so(e,t){if(e===void 0||t===void 0||!Number.isFinite(e)||!Number.isFinite(t))return null;let n=Math.floor(Math.max(0,t-e)/6e4);if(n<1)return`moments later`;if(n<60)return`${n} minute${n===1?``:`s`} later`;let r=Math.floor(n/60);if(r<24)return`${r} hour${r===1?``:`s`} later`;let i=Math.floor(r/24);return`${i} day${i===1?``:`s`} later`}function co(e){return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}).format(e)}function lo(e){let t=[],n=/```[^\n]*\n([\s\S]*?)```/g,r=0;for(let i of e.matchAll(n)){let n=e.slice(r,i.index);n&&t.push(...uo(n)),t.push({kind:`code`,text:i[1]??``}),r=(i.index??0)+i[0].length}let i=e.slice(r);return(i||!t.length)&&t.push(...uo(i)),t}function uo(e){let t=[],n=e.split(`
|
|
8
8
|
`),r=0,i=e=>{let i=n.slice(r,e).join(`
|
|
9
9
|
`);i&&t.push({kind:`text`,parts:mo(i)})};for(let e=0;e<n.length-1;e+=1){let a=fo(n[e]??``),o=fo(n[e+1]??``);if(!a||!o||a.length!==o.length||!o.every(po))continue;i(e),e+=2;let s=[];for(;e<n.length;){let t=fo(n[e]??``);if(!t||t.length!==a.length)break;s.push(t),e+=1}t.push({kind:`table`,headers:a.map(mo),rows:s.map(e=>e.map(mo))}),r=e,--e}return i(n.length),t.length?t:[{kind:`text`,parts:mo(e)}]}function fo(e){let t=e.trim();if(!t.includes(`|`))return null;let n=t.replace(/^\|/,``).replace(/\|$/,``).split(`|`).map(e=>e.trim());return n.length>1&&n.every(Boolean)?n:null}function po(e){return/^:?-{3,}:?$/.test(e)}function mo(e){let t=[],n=/\[([^\]]+)\]\((https?:\/\/[^\s)]+|codex:\/\/[^\s)]+|\/[^\s)]+)\)|`([^`]+)`/g,r=0;for(let i of e.matchAll(n)){let n=e.slice(r,i.index);n&&t.push({kind:`text`,text:n}),t.push(i[3]?{kind:`code`,text:i[3]}:{kind:`link`,text:i[1]??``,href:i[2]??``}),r=(i.index??0)+i[0].length}let i=e.slice(r);return i&&t.push({kind:`text`,text:i}),t}var ho=(e,t=b)=>{var n=zr();Z(B(n),17,t,Gr,(e,t)=>{var n=zr(),r=B(n),i=e=>{var n=_o(),r=z(n,!0);N(n),H(()=>{Q(n,`href`,G(t).href),Y(r,G(t).text)}),J(e,n)},a=e=>{var n=vo(),r=z(n,!0);N(n),H(()=>Y(r,G(t).text)),J(e,n)},o=e=>{var n=Rr();H(()=>Y(n,G(t).text)),J(e,n)};X(r,e=>{G(t).kind===`link`?e(i):G(t).kind===`code`?e(a,1):e(o,-1)}),J(e,n)}),J(e,n)},go=(e,t=b)=>{var n=zr();Z(B(n),17,()=>lo(t()),Gr,(e,t)=>{var n=zr(),r=B(n),i=e=>{var n=xo(),r=z(n),i=z(r,!0);N(r),N(n),H(()=>Y(i,G(t).text)),J(e,n)},a=e=>{var n=To(),r=z(n),i=z(r),a=z(i);Z(a,21,()=>G(t).headers,Gr,(e,t)=>{var n=So();ho(z(n),()=>G(t)),N(n),J(e,n)}),N(a),N(i);var o=V(i);Z(o,21,()=>G(t).rows,Gr,(e,t)=>{var n=wo();Z(n,21,()=>G(t),Gr,(e,t)=>{var n=Co();ho(z(n),()=>G(t)),N(n),J(e,n)}),N(n),J(e,n)}),N(o),N(r),N(n),J(e,n)},o=e=>{var n=Eo();ho(z(n),()=>G(t).parts),N(n),J(e,n)};X(r,e=>{G(t).kind===`code`?e(i):G(t).kind===`table`?e(a,1):e(o,-1)}),J(e,n)}),J(e,n)},_o=q(`<a target="_blank" rel="noreferrer" class="svelte-1im954t"> </a>`),vo=q(`<code class="svelte-1im954t"> </code>`),yo=q(`<li class="svelte-1im954t"><code class="svelte-1im954t"> </code></li>`),bo=q(`<section class="file-changes svelte-1im954t" aria-label="Files changed"><strong class="svelte-1im954t">files changed</strong> <ul class="svelte-1im954t"></ul></section>`),xo=q(`<pre class="svelte-1im954t"><code class="svelte-1im954t"> </code></pre>`),So=q(`<th scope="col" class="svelte-1im954t"><!></th>`),Co=q(`<td class="svelte-1im954t"><!></td>`),wo=q(`<tr></tr>`),To=q(`<div class="table-scroll svelte-1im954t"><table class="svelte-1im954t"><thead><tr></tr></thead><tbody></tbody></table></div>`),Eo=q(`<div class="svelte-1im954t"><!></div>`),Do=q(`<time class="svelte-1im954t"> <!></time>`),Oo=q(`<div class="entry-heading svelte-1im954t"><strong>working</strong></div> <!>`,1),ko=q(`<section><!> <!></section>`),Ao=q(`<div class="entry-heading svelte-1im954t"><strong>prompt</strong> <!></div> <div class="entry-content svelte-1im954t"><!></div> <!> <!>`,1),jo=q(`<div class="commentary-content live-commentary svelte-1im954t"><!></div>`),Mo=q(`<!> <!>`,1),No=q(`<button class="commentary-toggle svelte-1im954t" type="button"><span aria-hidden="true"> </span> commentary</button>`),Po=q(`<div class="answer-history svelte-1im954t"><!> <!></div>`),Fo=q(`<div class="commentary-content svelte-1im954t"><!></div>`),Io=q(`<section class="answer-turn svelte-1im954t"><div class="entry-heading svelte-1im954t"><strong> </strong> <!></div> <!> <!> <!> <div class="entry-content svelte-1im954t"><!></div></section>`),Lo=q(`<div class="entry-content svelte-1im954t"><!></div>`),Ro=q(`<details><summary>commentary</summary> <!></details> <!>`,1),zo=q(`<section><div class="entry-heading svelte-1im954t"><strong> </strong> <!></div> <!> <!></section>`),Bo=q(`<li><!></li>`),Vo=q(`<li class="interaction-only svelte-1im954t"><!></li>`),Ho=q(`<li class="progress-item svelte-1im954t"><section><!> <!></section></li>`),Uo=q(`<ol aria-label="Chat messages" class="svelte-1im954t"><!> <!> <!></ol>`);function Wo(e,t){Xe(t,!0);let n=(e,t=b)=>{let n=P(()=>D(t()));var r=zr(),i=B(r),a=e=>{var t=bo(),r=V(z(t),2);Z(r,21,()=>G(n),e=>e.id,(e,t)=>{var n=zr();Z(B(n),17,()=>G(t).paths,e=>`${G(t).id}:${e}`,(e,t)=>{var n=yo(),r=z(n),i=z(r,!0);N(r),N(n),H(()=>Y(i,G(t))),J(e,n)}),J(e,n)}),N(r),N(t),J(e,t)};X(i,e=>{G(n).length&&e(a)}),J(e,r)},r=$(t,`activeTurnId`,3,null),i=$(t,`interactions`,19,()=>[]),a=$(t,`answers`,19,()=>({})),o=$(t,`onanswer`,3,()=>{}),s=$(t,`onquiz`,3,()=>{}),c=$(t,`onpermission`,3,()=>{}),l=$(t,`ondecision`,3,()=>{}),u=$(t,`onretry`,3,()=>{}),d=P(()=>oo(t.messages)),f=R({}),p=P(()=>G(d).filter(e=>e.kind===`user`)),m=P(()=>G(d).filter(e=>e.kind===`assistant`)),h=P(()=>G(m).at(-1)?.id),g=P(()=>i().filter(e=>!e.turnId||!G(p).some(t=>t.turnId===e.turnId)));function _(e){return G(p).findLast(t=>t.turnId&&t.turnId===e.turnId)?.id??G(p).at(-1)?.id??null}function v(e){return e.kind===`user`?i().filter(t=>_(t)===e.id):[]}function y(e){return e.kind===`assistant`?t.activities.filter(t=>t.turnId?t.turnId===e.turnId:e.id===G(h)):[]}function x(e){return e.turnId?G(m).some(t=>t.turnId===e.turnId):!!G(h)}function S(e){return!e.turnId||x(e)?null:G(p).findLast(t=>t.turnId===e.turnId)?.id??null}function C(e){return e.kind===`user`?t.activities.filter(t=>S(t)===e.id):[]}function w(){return t.activities.filter(e=>!x(e)&&!S(e))}let T=P(w);function E(e){return e.filter(e=>!e.label.toLowerCase().replaceAll(` `,``).startsWith(`filechange`))}function D(e){return e.flatMap(e=>e.label.toLowerCase().replaceAll(` `,``).startsWith(`filechange`)?[{id:e.id,paths:e.detail.split(`
|
|
10
|
-
`).filter(Boolean)}]:[])}function ee(e){return!!(e.kind===`assistant`&&r()&&(e.turnId===r()||!e.turnId&&e.id===G(h)))}function te(e){return!!(e.kind===`user`&&r()&&(e.turnId===r()||!e.turnId))}function O(e,t){return so(G(d)[e-1]?.occurredAt,t)}var ne=Uo(),re=z(ne);Z(re,19,()=>G(d),e=>e.id,(e,t,r)=>{var i=Bo(),d=z(i),p=e=>{let i=P(()=>C(G(t)));var d=Ao(),f=B(d),p=V(z(f),2),m=e=>{var n=Do(),i=z(n),a=V(i),o=e=>{var n=Rr();H(e=>Y(n,`· ${e??``}`),[()=>O(G(r),G(t).occurredAt)]),J(e,n)},s=P(()=>O(G(r),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(n),H((e,t)=>{Q(n,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>co(G(t).occurredAt)]),J(e,n)};X(p,e=>{G(t).occurredAt&&e(m)}),N(f);var h=V(f,2);go(z(h),()=>G(t).text),N(h);var g=V(h,2);{let e=P(()=>v(G(t)));ao(g,{get interactions(){return G(e)},get answers(){return a()},get onanswer(){return o()},get onquiz(){return s()},get onpermission(){return c()},get ondecision(){return l()},get onretry(){return u()}})}var _=V(g,2),y=e=>{var r=ko(),a=z(r),o=e=>{var t=Oo(),n=V(B(t),2);{let e=P(()=>E(G(i)));sa(n,{get activities(){return G(e)},variant:`live`})}J(e,t)},s=P(()=>te(G(t))),c=e=>{{let t=P(()=>E(G(i)));sa(e,{get activities(){return G(t)}})}};X(a,e=>{G(s)?e(o):e(c,-1)});var l=V(a,2);n(l,()=>G(i)),N(r),H(e=>ui(r,1,e,`svelte-1im954t`),[()=>ii(te(G(t))?`progress-turn`:`orphan-activity-turn`)]),J(e,r)};X(_,e=>{G(i).length&&e(y)}),J(e,d)},m=e=>{let i=P(()=>y(G(t)));var a=Io(),o=z(a),s=z(o),c=z(s,!0);N(s);var l=V(s,2),u=e=>{var n=Do(),i=z(n),a=V(i),o=e=>{var n=Rr();H(e=>Y(n,`· ${e??``}`),[()=>O(G(r),G(t).occurredAt)]),J(e,n)},s=P(()=>O(G(r),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(n),H((e,t)=>{Q(n,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>co(G(t).occurredAt)]),J(e,n)};X(l,e=>{G(t).occurredAt&&e(u)}),N(o);var d=V(o,2),p=e=>{var n=Mo(),r=B(n),a=e=>{var n=jo();go(z(n),()=>G(t).commentary),N(n),J(e,n)};X(r,e=>{G(t).commentary&&e(a)});var o=V(r,2);{let e=P(()=>E(G(i)));sa(o,{get activities(){return G(e)},variant:`live`})}J(e,n)},m=P(()=>ee(G(t))),h=e=>{var n=Po(),r=z(n),a=e=>{var n=No(),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,f[G(t).id]?`⌄`:`›`)},[()=>!!f[G(t).id]]),K(`click`,n,()=>f[G(t).id]=!f[G(t).id]),J(e,n)};X(r,e=>{G(t).commentary&&e(a)});var o=V(r,2);{let e=P(()=>E(G(i)));sa(o,{get activities(){return G(e)}})}N(n),J(e,n)},g=P(()=>G(t).commentary||E(G(i)).length);X(d,e=>{G(m)?e(p):G(g)&&e(h,1)});var _=V(d,2),v=e=>{var n=Fo();go(z(n),()=>G(t).commentary),N(n),H(()=>Q(n,`id`,`commentary-${G(t).id}`)),J(e,n)},b=P(()=>!ee(G(t))&&G(t).commentary&&f[G(t).id]);X(_,e=>{G(b)&&e(v)});var x=V(_,2);n(x,()=>G(i));var S=V(x,2);go(z(S),()=>G(t).answer),N(S),N(a),H(e=>Y(c,e),[()=>ee(G(t))?`working`:`answer`]),J(e,a)},h=e=>{let i=P(()=>y(G(t)));var a=zo(),o=z(a),s=z(o),c=z(s,!0);N(s);var l=V(s,2),u=e=>{var n=Do(),i=z(n),a=V(i),o=e=>{var n=Rr();H(e=>Y(n,`· ${e??``}`),[()=>O(G(r),G(t).occurredAt)]),J(e,n)},s=P(()=>O(G(r),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(n),H((e,t)=>{Q(n,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>co(G(t).occurredAt)]),J(e,n)};X(l,e=>{G(t).occurredAt&&e(u)}),N(o);var d=V(o,2),f=e=>{var n=Mo(),r=B(n),a=e=>{var n=Lo();go(z(n),()=>G(t).commentary),N(n),J(e,n)};X(r,e=>{G(t).commentary&&e(a)});var o=V(r,2);{let e=P(()=>E(G(i)));sa(o,{get activities(){return G(e)},variant:`live`})}J(e,n)},p=P(()=>ee(G(t))),m=e=>{var n=Ro(),r=B(n);go(V(z(r),2),()=>G(t).commentary),N(r);var a=V(r,2);{let e=P(()=>E(G(i)));sa(a,{get activities(){return G(e)}})}J(e,n)};X(d,e=>{G(p)?e(f):e(m,-1)});var h=V(d,2);n(h,()=>G(i)),N(a),H((e,t)=>{ui(a,1,e,`svelte-1im954t`),Y(c,t)},[()=>ii(ee(G(t))?`progress-turn`:`commentary-turn`),()=>ee(G(t))?`working`:`commentary`]),J(e,a)};X(d,e=>{G(t).kind===`user`?e(p):G(t).answer===null?G(t).commentary!==null&&e(h,2):e(m,1)}),N(i),H(()=>ui(i,1,ii(G(t).kind===`user`?`prompt-turn`:`answer-item`),`svelte-1im954t`)),J(e,i)});var ie=V(re,2),ae=e=>{var t=Vo();ao(z(t),{get interactions(){return G(g)},get answers(){return a()},get onanswer(){return o()},get onquiz(){return s()},get onpermission(){return c()},get ondecision(){return l()},get onretry(){return u()}}),N(t),J(e,t)};X(ie,e=>{G(p).length===0&&G(g).length&&e(ae)});var oe=V(ie,2),se=e=>{var t=Ho(),i=z(t),a=z(i),o=e=>{var t=Oo(),n=V(B(t),2);{let e=P(()=>E(G(T)));sa(n,{get activities(){return G(e)},variant:`live`})}J(e,t)},s=e=>{{let t=P(()=>E(G(T)));sa(e,{get activities(){return G(t)}})}};X(a,e=>{r()?e(o):e(s,-1)});var c=V(a,2);n(c,()=>G(T)),N(i),N(t),H(()=>ui(i,1,ii(r()?`progress-turn`:`orphan-activity-turn`),`svelte-1im954t`)),J(e,t)};X(oe,e=>{G(T).length&&e(se)}),N(ne),J(e,ne),Ze()}jr([`click`]);var Go=[150,300,600];function Ko(e){return new Promise(t=>setTimeout(t,e))}function qo(e){return e.status===502||e.status===503||e.status===504}async function Jo(e=fetch){for(let t=0;t<=Go.length;t+=1){let n;try{n=await e(`/api/bootstrap`)}catch(e){if(e instanceof Error&&e.name===`AbortError`)throw e;if(t===Go.length)throw Error(`BOOTSTRAP_FAILED`);await Ko(Go[t]);continue}if(n.ok)return n.json();if(!qo(n)||t===Go.length)throw Error(`BOOTSTRAP_FAILED`);await Ko(Go[t])}throw Error(`BOOTSTRAP_FAILED`)}var Yo=`gestalt-mobile`,Xo=2,Zo=[`settings`,`drafts`,`cursors`,`messages`];function Qo(e){return new Promise((t,n)=>{let r=e.open(Yo,Xo);r.onupgradeneeded=()=>{for(let e of Zo)r.result.objectStoreNames.contains(e)||r.result.createObjectStore(e)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function $o(e,t,n){return ns(e.transaction(t,`readonly`).objectStore(t).get(n))}function es(e,t,n,r){return ns(e.transaction(t,`readwrite`).objectStore(t).put(r,n))}function ts(e,t,n){return ns(e.transaction(t,`readwrite`).objectStore(t).delete(n))}function ns(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}var rs=`chat-projections`,is=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`)?{attemptedOutcome:o}:{},...typeof o==`object`&&o&&(o.decision===`accept`||o.decision===`decline`)?{attemptedOutcome:{decision:o.decision}}:{}})).slice(-200),buffered:[]});function as(e=globalThis.indexedDB){if(!e)return{read:async()=>null,write:async()=>{}};let t=Qo(e);return{read:async e=>{try{return await $o(await t,rs,e)}catch{return null}},write:async(e,n)=>{try{await es(await t,rs,e,is(n))}catch{}}}}function os(e=globalThis.crypto,t=Date.now,n=Math.random){return typeof e?.randomUUID==`function`?e.randomUUID():`k-${t().toString(36)}-${Math.floor(n()*4294967296).toString(36)}`}function ss(e){if(typeof e.id!=`string`)return null;let t={...typeof e.turnId==`string`?{turnId:e.turnId}:{},...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(`
|
|
10
|
+
`).filter(Boolean)}]:[])}function ee(e){return!!(e.kind===`assistant`&&r()&&(e.turnId===r()||!e.turnId&&e.id===G(h)))}function te(e){return!!(e.kind===`user`&&r()&&(e.turnId===r()||!e.turnId))}function O(e,t){return so(G(d)[e-1]?.occurredAt,t)}var ne=Uo(),re=z(ne);Z(re,19,()=>G(d),e=>e.id,(e,t,r)=>{var i=Bo(),d=z(i),p=e=>{let i=P(()=>C(G(t)));var d=Ao(),f=B(d),p=V(z(f),2),m=e=>{var n=Do(),i=z(n),a=V(i),o=e=>{var n=Rr();H(e=>Y(n,`· ${e??``}`),[()=>O(G(r),G(t).occurredAt)]),J(e,n)},s=P(()=>O(G(r),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(n),H((e,t)=>{Q(n,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>co(G(t).occurredAt)]),J(e,n)};X(p,e=>{G(t).occurredAt&&e(m)}),N(f);var h=V(f,2);go(z(h),()=>G(t).text),N(h);var g=V(h,2);{let e=P(()=>v(G(t)));ao(g,{get interactions(){return G(e)},get answers(){return a()},get onanswer(){return o()},get onquiz(){return s()},get onpermission(){return c()},get ondecision(){return l()},get onretry(){return u()}})}var _=V(g,2),y=e=>{var r=ko(),a=z(r),o=e=>{var t=Oo(),n=V(B(t),2);{let e=P(()=>E(G(i)));sa(n,{get activities(){return G(e)},variant:`live`})}J(e,t)},s=P(()=>te(G(t))),c=e=>{{let t=P(()=>E(G(i)));sa(e,{get activities(){return G(t)}})}};X(a,e=>{G(s)?e(o):e(c,-1)});var l=V(a,2);n(l,()=>G(i)),N(r),H(e=>ui(r,1,e,`svelte-1im954t`),[()=>ii(te(G(t))?`progress-turn`:`orphan-activity-turn`)]),J(e,r)};X(_,e=>{G(i).length&&e(y)}),J(e,d)},m=e=>{let i=P(()=>y(G(t)));var a=Io(),o=z(a),s=z(o),c=z(s,!0);N(s);var l=V(s,2),u=e=>{var n=Do(),i=z(n),a=V(i),o=e=>{var n=Rr();H(e=>Y(n,`· ${e??``}`),[()=>O(G(r),G(t).occurredAt)]),J(e,n)},s=P(()=>O(G(r),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(n),H((e,t)=>{Q(n,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>co(G(t).occurredAt)]),J(e,n)};X(l,e=>{G(t).occurredAt&&e(u)}),N(o);var d=V(o,2),p=e=>{var n=Mo(),r=B(n),a=e=>{var n=jo();go(z(n),()=>G(t).commentary),N(n),J(e,n)};X(r,e=>{G(t).commentary&&e(a)});var o=V(r,2);{let e=P(()=>E(G(i)));sa(o,{get activities(){return G(e)},variant:`live`})}J(e,n)},m=P(()=>ee(G(t))),h=e=>{var n=Po(),r=z(n),a=e=>{var n=No(),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,f[G(t).id]?`⌄`:`›`)},[()=>!!f[G(t).id]]),K(`click`,n,()=>f[G(t).id]=!f[G(t).id]),J(e,n)};X(r,e=>{G(t).commentary&&e(a)});var o=V(r,2);{let e=P(()=>E(G(i)));sa(o,{get activities(){return G(e)}})}N(n),J(e,n)},g=P(()=>G(t).commentary||E(G(i)).length);X(d,e=>{G(m)?e(p):G(g)&&e(h,1)});var _=V(d,2),v=e=>{var n=Fo();go(z(n),()=>G(t).commentary),N(n),H(()=>Q(n,`id`,`commentary-${G(t).id}`)),J(e,n)},b=P(()=>!ee(G(t))&&G(t).commentary&&f[G(t).id]);X(_,e=>{G(b)&&e(v)});var x=V(_,2);n(x,()=>G(i));var S=V(x,2);go(z(S),()=>G(t).answer),N(S),N(a),H(e=>Y(c,e),[()=>ee(G(t))?`working`:`answer`]),J(e,a)},h=e=>{let i=P(()=>y(G(t)));var a=zo(),o=z(a),s=z(o),c=z(s,!0);N(s);var l=V(s,2),u=e=>{var n=Do(),i=z(n),a=V(i),o=e=>{var n=Rr();H(e=>Y(n,`· ${e??``}`),[()=>O(G(r),G(t).occurredAt)]),J(e,n)},s=P(()=>O(G(r),G(t).occurredAt));X(a,e=>{G(s)&&e(o)}),N(n),H((e,t)=>{Q(n,`datetime`,e),Y(i,`${t??``} `)},[()=>new Date(G(t).occurredAt).toISOString(),()=>co(G(t).occurredAt)]),J(e,n)};X(l,e=>{G(t).occurredAt&&e(u)}),N(o);var d=V(o,2),f=e=>{var n=Mo(),r=B(n),a=e=>{var n=Lo();go(z(n),()=>G(t).commentary),N(n),J(e,n)};X(r,e=>{G(t).commentary&&e(a)});var o=V(r,2);{let e=P(()=>E(G(i)));sa(o,{get activities(){return G(e)},variant:`live`})}J(e,n)},p=P(()=>ee(G(t))),m=e=>{var n=Ro(),r=B(n);go(V(z(r),2),()=>G(t).commentary),N(r);var a=V(r,2);{let e=P(()=>E(G(i)));sa(a,{get activities(){return G(e)}})}J(e,n)};X(d,e=>{G(p)?e(f):e(m,-1)});var h=V(d,2);n(h,()=>G(i)),N(a),H((e,t)=>{ui(a,1,e,`svelte-1im954t`),Y(c,t)},[()=>ii(ee(G(t))?`progress-turn`:`commentary-turn`),()=>ee(G(t))?`working`:`commentary`]),J(e,a)};X(d,e=>{G(t).kind===`user`?e(p):G(t).answer===null?G(t).commentary!==null&&e(h,2):e(m,1)}),N(i),H(()=>ui(i,1,ii(G(t).kind===`user`?`prompt-turn`:`answer-item`),`svelte-1im954t`)),J(e,i)});var ie=V(re,2),ae=e=>{var t=Vo();ao(z(t),{get interactions(){return G(g)},get answers(){return a()},get onanswer(){return o()},get onquiz(){return s()},get onpermission(){return c()},get ondecision(){return l()},get onretry(){return u()}}),N(t),J(e,t)};X(ie,e=>{G(p).length===0&&G(g).length&&e(ae)});var oe=V(ie,2),se=e=>{var t=Ho(),i=z(t),a=z(i),o=e=>{var t=Oo(),n=V(B(t),2);{let e=P(()=>E(G(T)));sa(n,{get activities(){return G(e)},variant:`live`})}J(e,t)},s=e=>{{let t=P(()=>E(G(T)));sa(e,{get activities(){return G(t)}})}};X(a,e=>{r()?e(o):e(s,-1)});var c=V(a,2);n(c,()=>G(T)),N(i),N(t),H(()=>ui(i,1,ii(r()?`progress-turn`:`orphan-activity-turn`),`svelte-1im954t`)),J(e,t)};X(oe,e=>{G(T).length&&e(se)}),N(ne),J(e,ne),Ze()}jr([`click`]);var Go=[150,300,600];function Ko(e){return new Promise(t=>setTimeout(t,e))}function qo(e){return e.status===502||e.status===503||e.status===504}async function Jo(e=fetch){for(let t=0;t<=Go.length;t+=1){let n;try{n=await e(`/api/bootstrap`)}catch(e){if(e instanceof Error&&e.name===`AbortError`)throw e;if(t===Go.length)throw Error(`BOOTSTRAP_FAILED`);await Ko(Go[t]);continue}if(n.ok)return n.json();if(!qo(n)||t===Go.length)throw Error(`BOOTSTRAP_FAILED`);await Ko(Go[t])}throw Error(`BOOTSTRAP_FAILED`)}var Yo=`gestalt-mobile`,Xo=2,Zo=[`settings`,`drafts`,`cursors`,`messages`];function Qo(e){return new Promise((t,n)=>{let r=e.open(Yo,Xo);r.onupgradeneeded=()=>{for(let e of Zo)r.result.objectStoreNames.contains(e)||r.result.createObjectStore(e)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function $o(e,t,n){return ns(e.transaction(t,`readonly`).objectStore(t).get(n))}function es(e,t,n,r){return ns(e.transaction(t,`readwrite`).objectStore(t).put(r,n))}function ts(e,t,n){return ns(e.transaction(t,`readwrite`).objectStore(t).delete(n))}function ns(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}var rs=`chat-projections`,is=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 as(e=globalThis.indexedDB){if(!e)return{read:async()=>null,write:async()=>{}};let t=Qo(e);return{read:async e=>{try{return await $o(await t,rs,e)}catch{return null}},write:async(e,n)=>{try{await es(await t,rs,e,is(n))}catch{}}}}function os(e=globalThis.crypto,t=Date.now,n=Math.random){return typeof e?.randomUUID==`function`?e.randomUUID():`k-${t().toString(36)}-${Math.floor(n()*4294967296).toString(36)}`}function ss(e){if(typeof e.id!=`string`)return null;let t={...typeof e.turnId==`string`?{turnId:e.turnId}:{},...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(`
|
|
11
11
|
`);return n?{id:e.id,label:`Reasoning summary`,detail:n,...t}:null}return e.kind===`plan`&&typeof e.text==`string`?{id:e.id,label:`Plan`,detail:e.text,...t}:e.kind===`command`&&typeof e.command==`string`?{id:e.id,label:`Command · ${String(e.status??`unknown`)}`,detail:e.command,...t}:e.kind===`fileChange`&&Array.isArray(e.paths)?{id:e.id,label:`File change · ${String(e.status??`unknown`)}`,detail:e.paths.join(`
|
|
12
|
-
`),...t}:e.kind===`tool`&&typeof e.name==`string`?{id:e.id,label:`Tool · ${String(e.status??`unknown`)}`,detail:e.name,...t}:null}var cs=()=>({sessionId:null,cursor:0,snapshotting:!1,lifecycle:`finished`,activeTurnId:null,messages:[],activities:[],prompts:[],interactions:[],buffered:new Map}),ls=(e=null)=>({...cs(),sessionId:e});function us(e){return 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 ds(e){if(typeof e!=`string`)return;let t=Date.parse(e);return Number.isFinite(t)?t:void 0}function fs(e){let t=ds(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?`resolved`:`pending`,...e.resolvedAt?{attemptedOutcome:e.outcome}:{},...t===void 0?{}:{occurredAt:t}}}function ps(e,t){return t===`approved`||t===`denied`||t===`answered`?t:e?.kind===`quiz`||e?.kind===`userInput`?`answered`:typeof t==`object`&&t&&t.decision===`decline`?`denied`:e?`approved`:void 0}function ms(e,t){return e?t===`finished`||t===`interrupted`?t:`working`:t===`working`||t===`starting`||t===`recoverable`?`finished`:t}function hs(e){return[...new Map(e.map(e=>[e.key??e.id??``,e])).values()]}function gs(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 _s(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=us(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=hs([...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 hs([...f.get(-1)??[],...s.flatMap((e,t)=>[e,...f.get(t)??[]])])}function vs(e,t){if(!t||typeof t!=`object`)return ls(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 ls(e);let r=[`submitting`,`accepted`,`failed`,`canonical`],i=[`pending`,`submitting`,`resolved`,`failed`],a=[`starting`,`working`,`finished`,`interrupted`,`recoverable`];return{...ls(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`)&&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.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 ys(e,t){if(!Number.isInteger(t.baseSequence)||t.baseSequence<0)return e;if(t.baseSequence<e.cursor)return Os({...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(fs),a=new Map(e.interactions.map(e=>[e.requestId,e])),o=hs(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=hs(t.items.flatMap(e=>{let t=ss(e);return t?[{...t,key:`activity:${t.id}`}]:[]})).map(e=>({id:e.id,label:e.label,detail:e.detail,...e.turnId?{turnId:e.turnId}:{},...e.occurredAt===void 0?{}:{occurredAt:e.occurredAt}})),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});return Os({...e,cursor:Math.max(e.cursor,t.baseSequence),snapshotting:!1,activeTurnId:t.activeTurnId,lifecycle:ms(t.activeTurnId,e.cursor===0&&e.lifecycle===`finished`?`working`:e.lifecycle),prompts:r,messages:_s(l,r,e.messages),activities:s,interactions:o,buffered:new Map([...e.buffered].filter(([e])=>e>t.baseSequence))})}function bs(e){return{...e,snapshotting:!0}}function xs(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 Ss(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 Cs(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 ws(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 Ts(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t&&e.state!==`resolved`?{...e,state:`failed`,attemptedOutcome:n}:e)}}function Es(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t?{...e,state:`resolved`,...ps(e,n)?{attemptedOutcome:ps(e,n)}:{}}:e)}}function Ds(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=ds(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`)n.interactions.some(e=>e.requestId===r.requestId)||(n={...n,interactions:[...n.interactions,{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}}]});else if(t.type===`interaction.resolved`&&typeof r?.requestId==`string`)n=Es(n,r.requestId,r.outcome);else if(t.type===`activity.updated`&&typeof r?.id==`string`&&typeof r.label==`string`&&typeof r.detail==`string`)n={...n,activities:gs(n.activities,{id:r.id,label:r.label,detail:r.detail,...i===void 0?{}:{occurredAt:i},...typeof r.turnId==`string`?{turnId:r.turnId}:n.activeTurnId?{turnId:n.activeTurnId}:{}})};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`:ms(e,n.lifecycle)}}return n}function Os(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=Ds({...n,buffered:t},e),t=new Map(n.buffered)}}function ks(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 As={read:async()=>null,write:async()=>{}},js=e=>!!e&&typeof e==`object`,Ms=e=>js(e)&&typeof e.id==`string`&&typeof e.kind==`string`,Ns=e=>js(e)&&typeof e.id==`string`&&Array.isArray(e.items)&&e.items.every(Ms)&&(e.startedAt===null||typeof e.startedAt==`number`)&&(e.completedAt===null||typeof e.completedAt==`number`),Ps=e=>!js(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`)&&!Object.hasOwn(e,`payload`),Fs=e=>!js(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(Ms)||!e.turns.every(Ns)||!e.interactions.every(Ps)||e.currentSequence!==void 0&&(!Number.isInteger(e.currentSequence)||e.currentSequence<0)?null:e,Is=class{#e=ls();#t=null;#n=0;#r=-1;#i=null;#a=null;#o=null;#s=0;#c=!1;#l=new Set;#u=new Set;#d;constructor(e){this.#d={...e,websocket:e.websocket??(e=>new WebSocket(e)),cache:e.cache??As,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??os,now:e.now??Date.now},this.#d.document.addEventListener(`visibilitychange`,this.#f),this.#d.window.addEventListener(`focus`,this.#f)}get view(){return Object.freeze({...this.#e,status:ks(this.#e),starting:this.#e.lifecycle===`starting`})}select(e){if(this.#c||this.#t===e)return;this.#S(),this.#t=e;let t=++this.#n;this.#e=ls(e),this.#b(),e&&this.#p(e,t)}async send(e,t=this.#d.createKey()){let n=this.#t,r=this.#n,i=`${n}:${r}:${t}`;if(!(!n||!e.trim()||this.#e.activeTurnId||this.#l.has(i))){this.#l.add(i),this.#y(xs(this.#e,t,e.trim(),this.#d.now()));try{let i=await this.#d.relay.startTurn(n,e.trim(),t);this.#x(n,r)&&(this.#y(Ss(this.#e,t,i.activeTurnId??null)),this.#d.onSendAccepted?.(t))}catch(e){this.#x(n,r)&&(this.#y(Cs(this.#e,t)),this.#d.onSendError?.(e,t))}finally{this.#l.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 interrupt(){let e=this.#t,t=this.#e.activeTurnId;if(!(!e||!t))try{await this.#d.relay.interruptTurn(e,t)}catch{}}async respond(e,t,n=this.#d.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.#u.has(s))){this.#u.add(s),this.#y(ws(this.#e,e,o));try{await this.#d.relay.respondInteraction(r,e,t,o),this.#x(r,i)&&this.#y(Es(this.#e,e,t))}catch{this.#x(r,i)&&this.#y(Ts(this.#e,e,t))}finally{this.#u.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;r!==void 0&&await this.respond(e,r,n.operationId)}refresh(){this.#t&&this.#_(this.#t,this.#n)}dispose(){this.#c||(this.#c=!0,this.#S(),this.#d.document.removeEventListener(`visibilitychange`,this.#f),this.#d.window.removeEventListener(`focus`,this.#f))}#f=()=>{this.#d.document.visibilityState===`visible`&&this.refresh()};async#p(e,t){this.#_(e,t),this.#m(e,t);let n=await this.#d.cache.read(e).catch(()=>null);!this.#x(e,t)||this.#r===t||!n||(this.#e=vs(e,n),this.#b())}#m(e,t){if(!this.#x(e,t)||this.#i)return;let n=this.#d.location.protocol===`https:`?`wss:`:`ws:`,r;try{r=this.#d.websocket(`${n}//${this.#d.location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${this.#e.cursor}`)}catch{this.#e={...this.#e,lifecycle:`recoverable`},this.#b(),this.#o=this.#d.setTimeout(()=>this.#m(e,t),Math.min(1e3*2**this.#s++,1e4));return}this.#i=r,r.onopen=()=>{this.#x(e,t)&&this.#i===r&&(this.#s=0,this.#_(e,t))},r.onmessage=n=>this.#h(e,t,String(n.data)),r.onclose=()=>{!this.#x(e,t)||this.#i!==r||(this.#i=null,this.#o=this.#d.setTimeout(()=>this.#m(e,t),Math.min(1e3*2**this.#s++,1e4)))}}#h(e,t,n){if(!this.#x(e,t))return;let r;try{r=JSON.parse(n)}catch{return}if(r.type===`relay.resyncRequired`){this.#_(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.#g(i))return;let a=Ds(this.#e,i);this.#y(a),(i.type===`session.updated`||i.type===`plan.updated`||i.type===`plan.closed`)&&this.#d.onSessionEvent?.(i),a.snapshotting&&this.#_(e,t)}#g(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===`plan.updated`||e.type===`plan.closed`}#_(e,t){if(this.#a?.id===e&&this.#a.generation===t)return this.#a.promise;if(!this.#x(e,t))return Promise.resolve();let n=this.#e.snapshotting&&this.#e.buffered.size>0;this.#e=bs(this.#e),this.#b();let r=this.#d.relay.getHistory(e).then(r=>{let i=Fs(r);if(this.#x(e,t)){if(!i){this.#y({...this.#e,snapshotting:!1,lifecycle:`recoverable`});return}this.#r=t,this.#y(ys(this.#e,i)),n&&this.#v(e,t)}}).catch(n=>{this.#x(e,t)&&(this.#y({...this.#e,snapshotting:!1,lifecycle:`recoverable`}),this.#d.onHistoryError?.(n))}).finally(()=>{this.#a?.promise===r&&(this.#a=null,this.#x(e,t)&&this.#e.snapshotting&&this.#_(e,t))});return this.#a={id:e,generation:t,promise:r},r}#v(e,t){let n=this.#i;this.#i=null,n?.close(),this.#o&&this.#d.clearTimeout(this.#o),this.#o=null,this.#m(e,t)}#y(e){this.#e=e,this.#b(),this.#t&&this.#d.cache.write(this.#t,this.#e).catch(()=>{})}#b(){this.#d.publish(this.view)}#x(e,t){return!this.#c&&this.#t===e&&this.#n===t}#S(){this.#o&&this.#d.clearTimeout(this.#o),this.#o=null;let e=this.#i;this.#i=null,e?.close()}},Ls=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}},Rs=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}},zs={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.`};function Bs(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(zs,r)?r:Object.hasOwn(zs,n)?n:t,a=typeof e==`object`&&e&&`retryable`in e?e.retryable===!0:!0;return{code:i,message:zs[i],retryable:a}}var Vs={error:null,success:5e3,info:7e3};function Hs(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=Vs[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 Us=q(`<small class="svelte-1a0rutm"> </small>`),Ws=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>`),Gs=q(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function Ks(e,t){Xe(t,!0);let n=I([]),r=P(()=>G(n).slice(-3));Mi(()=>t.queue.subscribe(e=>L(n,e)));var i=Gs();Z(i,21,()=>G(r),e=>e.id,(e,n)=>{var r=Ws();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=Us(),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=ui(r,1,`toast svelte-1a0rutm`,null,i,{error:G(n).kind===`error`,success:G(n).kind===`success`}),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===`success`?`✓`:`i`),Y(l,G(n).kind===`error`?`Error`:G(n).kind===`success`?`Success`:`Info`),Y(d,G(n).message),Q(m,`aria-label`,`Dismiss ${G(n).kind} notification`)}),Ar(`pointerenter`,r,()=>t.queue.pause(G(n).id,`hover`)),Ar(`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),Ze()}jr([`focusin`,`focusout`,`click`]);var qs=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 Js(e,t){Xe(t,!0);let n=Hs();Mi(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=qs();Ks(V(B(r),4),{get queue(){return n}}),J(e,r),Ze()}var Ys={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function Xs(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 Zs(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function Qs(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 $s(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 ec(e,t){for(let n of e){if(n.id===t)return n;let e=ec(n.children,t);if(e)return e}}function tc(e,t,n,r){if(e){let i=ec(n,e);if(i&&r(i))return i.id;let a=$s(t,e);for(let e of a.toReversed()){let t=ec(n,e);if(t&&r(t))return t.id}}return nc(n).find(r)?.id??null}function nc(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var rc=q(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),ic=q(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),ac=q(`<span class="repository-badge svelte-6z3q4v">Git</span>`),oc=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>`),sc=q(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function cc(e,t){Xe(t,!0);let n=$(t,`isSelectable`,3,()=>!0),r=I(null),i=R({}),a=P(()=>Qs(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(Zs(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=sc();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=oc();let g;var _=z(h),v=e=>{var n=rc(),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,ic())};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),ee=z(D,!0);N(D),N(w);var te=V(w,2),O=e=>{J(e,ac())};X(te,e=>{G(u).isGitRepository&&e(O)}),N(b),ji(b,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[G(u)]),N(h),H((e,n,r,i,s)=>{g=fi(h,``,g,e),x=ui(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(ee,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)]),Ar(`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),Ze()}jr([`click`,`keydown`]);var lc=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> <div class="tree-panel svelte-1d6w4ti"><!></div></section>`);function uc(e,t){Xe(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=lc(),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),g=z(h);{let e=P(()=>t.context===`sessions`?`Session base`:`Git repository`),n=P(()=>t.context===`sessions`?Ys.sessionBase:Ys.gitRepositoryTarget);cc(g,{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(h),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),Ze()}function dc(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 fc(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 pc=q(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),mc=q(`<option> </option>`),hc=q(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),gc=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>`),_c=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>`),vc=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),yc=q(`<p>This workspace is not a Git repository.</p>`),bc=q(`<p role="status">Loading repository status…</p>`),xc=q(`<p><strong> </strong> is available as a Clone destination. Select a Git repository
|
|
12
|
+
`),...t}:e.kind===`tool`&&typeof e.name==`string`?{id:e.id,label:`Tool · ${String(e.status??`unknown`)}`,detail:e.name,...t}:null}var cs=()=>({sessionId:null,cursor:0,snapshotting:!1,lifecycle:`finished`,activeTurnId:null,messages:[],activities:[],prompts:[],interactions:[],buffered:new Map}),ls=(e=null)=>({...cs(),sessionId:e});function us(e){return 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 ds(e){if(typeof e!=`string`)return;let t=Date.parse(e);return Number.isFinite(t)?t:void 0}function fs(e){let t=ds(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?`resolved`:`pending`,...e.resolvedAt?{attemptedOutcome:e.outcome}:{},...t===void 0?{}:{occurredAt:t}}}function ps(e,t){return t===`approved`||t===`denied`||t===`answered`||t===`dismissed`?t:e?.kind===`quiz`||e?.kind===`userInput`?`answered`:typeof t==`object`&&t&&t.decision===`decline`?`denied`:e?`approved`:void 0}function ms(e,t){return e?t===`finished`||t===`interrupted`?t:`working`:t===`working`||t===`starting`||t===`recoverable`?`finished`:t}function hs(e){return[...new Map(e.map(e=>[e.key??e.id??``,e])).values()]}function gs(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 _s(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=us(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=hs([...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 hs([...f.get(-1)??[],...s.flatMap((e,t)=>[e,...f.get(t)??[]])])}function vs(e,t){if(!t||typeof t!=`object`)return ls(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 ls(e);let r=[`submitting`,`accepted`,`failed`,`canonical`],i=[`pending`,`submitting`,`resolved`,`failed`],a=[`starting`,`working`,`finished`,`interrupted`,`recoverable`];return{...ls(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`)&&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.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 ys(e,t){if(!Number.isInteger(t.baseSequence)||t.baseSequence<0)return e;if(t.baseSequence<e.cursor)return Os({...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(fs),a=new Map(e.interactions.map(e=>[e.requestId,e])),o=hs(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=hs(t.items.flatMap(e=>{let t=ss(e);return t?[{...t,key:`activity:${t.id}`}]:[]})).map(e=>({id:e.id,label:e.label,detail:e.detail,...e.turnId?{turnId:e.turnId}:{},...e.occurredAt===void 0?{}:{occurredAt:e.occurredAt}})),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});return Os({...e,cursor:Math.max(e.cursor,t.baseSequence),snapshotting:!1,activeTurnId:t.activeTurnId,lifecycle:ms(t.activeTurnId,e.cursor===0&&e.lifecycle===`finished`?`working`:e.lifecycle),prompts:r,messages:_s(l,r,e.messages),activities:s,interactions:o,buffered:new Map([...e.buffered].filter(([e])=>e>t.baseSequence))})}function bs(e){return{...e,snapshotting:!0}}function xs(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 Ss(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 Cs(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 ws(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 Ts(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t&&e.state!==`resolved`?{...e,state:`failed`,attemptedOutcome:n}:e)}}function Es(e,t,n){return{...e,interactions:e.interactions.map(e=>e.requestId===t?{...e,state:`resolved`,...ps(e,n)?{attemptedOutcome:ps(e,n)}:{}}:e)}}function Ds(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=ds(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=Es(n,r.requestId,r.outcome);else if(t.type===`activity.updated`&&typeof r?.id==`string`&&typeof r.label==`string`&&typeof r.detail==`string`)n={...n,activities:gs(n.activities,{id:r.id,label:r.label,detail:r.detail,...i===void 0?{}:{occurredAt:i},...typeof r.turnId==`string`?{turnId:r.turnId}:n.activeTurnId?{turnId:n.activeTurnId}:{}})};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`:ms(e,n.lifecycle)}}return n}function Os(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=Ds({...n,buffered:t},e),t=new Map(n.buffered)}}function ks(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 As={read:async()=>null,write:async()=>{}},js=e=>!!e&&typeof e==`object`,Ms=e=>js(e)&&typeof e.id==`string`&&typeof e.kind==`string`,Ns=e=>js(e)&&typeof e.id==`string`&&Array.isArray(e.items)&&e.items.every(Ms)&&(e.startedAt===null||typeof e.startedAt==`number`)&&(e.completedAt===null||typeof e.completedAt==`number`),Ps=e=>!js(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`)&&!Object.hasOwn(e,`payload`),Fs=e=>!js(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(Ms)||!e.turns.every(Ns)||!e.interactions.every(Ps)||e.currentSequence!==void 0&&(!Number.isInteger(e.currentSequence)||e.currentSequence<0)?null:e,Is=class{#e=ls();#t=null;#n=0;#r=-1;#i=null;#a=null;#o=null;#s=0;#c=!1;#l=new Set;#u=new Set;#d;constructor(e){this.#d={...e,websocket:e.websocket??(e=>new WebSocket(e)),cache:e.cache??As,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??os,now:e.now??Date.now},this.#d.document.addEventListener(`visibilitychange`,this.#f),this.#d.window.addEventListener(`focus`,this.#f)}get view(){return Object.freeze({...this.#e,status:ks(this.#e),starting:this.#e.lifecycle===`starting`})}select(e){if(this.#c||this.#t===e)return;this.#S(),this.#t=e;let t=++this.#n;this.#e=ls(e),this.#b(),e&&this.#p(e,t)}async send(e,t=this.#d.createKey()){let n=this.#t,r=this.#n,i=`${n}:${r}:${t}`;if(!(!n||!e.trim()||this.#e.activeTurnId||this.#l.has(i))){this.#l.add(i),this.#y(xs(this.#e,t,e.trim(),this.#d.now()));try{let i=await this.#d.relay.startTurn(n,e.trim(),t);this.#x(n,r)&&(this.#y(Ss(this.#e,t,i.activeTurnId??null)),this.#d.onSendAccepted?.(t))}catch(e){this.#x(n,r)&&(this.#y(Cs(this.#e,t)),this.#d.onSendError?.(e,t))}finally{this.#l.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 interrupt(){let e=this.#t,t=this.#e.activeTurnId;if(!(!e||!t))try{await this.#d.relay.interruptTurn(e,t)}catch{}}async respond(e,t,n=this.#d.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.#u.has(s))){this.#u.add(s),this.#y(ws(this.#e,e,o));try{let n=await this.#d.relay.respondInteraction(r,e,t,o),a=n&&(n.outcome===`approved`||n.outcome===`denied`||n.outcome===`answered`||n.outcome===`dismissed`)?n.outcome:t;this.#x(r,i)&&this.#y(Es(this.#e,e,a))}catch{this.#x(r,i)&&this.#y(Ts(this.#e,e,t))}finally{this.#u.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.#_(this.#t,this.#n)}dispose(){this.#c||(this.#c=!0,this.#S(),this.#d.document.removeEventListener(`visibilitychange`,this.#f),this.#d.window.removeEventListener(`focus`,this.#f))}#f=()=>{this.#d.document.visibilityState===`visible`&&this.refresh()};async#p(e,t){this.#_(e,t),this.#m(e,t);let n=await this.#d.cache.read(e).catch(()=>null);!this.#x(e,t)||this.#r===t||!n||(this.#e=vs(e,n),this.#b())}#m(e,t){if(!this.#x(e,t)||this.#i)return;let n=this.#d.location.protocol===`https:`?`wss:`:`ws:`,r;try{r=this.#d.websocket(`${n}//${this.#d.location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${this.#e.cursor}`)}catch{this.#e={...this.#e,lifecycle:`recoverable`},this.#b(),this.#o=this.#d.setTimeout(()=>this.#m(e,t),Math.min(1e3*2**this.#s++,1e4));return}this.#i=r,r.onopen=()=>{this.#x(e,t)&&this.#i===r&&(this.#s=0,this.#_(e,t))},r.onmessage=n=>this.#h(e,t,String(n.data)),r.onclose=()=>{!this.#x(e,t)||this.#i!==r||(this.#i=null,this.#o=this.#d.setTimeout(()=>this.#m(e,t),Math.min(1e3*2**this.#s++,1e4)))}}#h(e,t,n){if(!this.#x(e,t))return;let r;try{r=JSON.parse(n)}catch{return}if(r.type===`relay.resyncRequired`){this.#_(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.#g(i))return;let a=Ds(this.#e,i);this.#y(a),(i.type===`session.updated`||i.type===`plan.updated`||i.type===`plan.closed`)&&this.#d.onSessionEvent?.(i),a.snapshotting&&this.#_(e,t)}#g(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===`plan.updated`||e.type===`plan.closed`}#_(e,t){if(this.#a?.id===e&&this.#a.generation===t)return this.#a.promise;if(!this.#x(e,t))return Promise.resolve();let n=this.#e.snapshotting&&this.#e.buffered.size>0;this.#e=bs(this.#e),this.#b();let r=this.#d.relay.getHistory(e).then(r=>{let i=Fs(r);if(this.#x(e,t)){if(!i){this.#y({...this.#e,snapshotting:!1,lifecycle:`recoverable`});return}this.#r=t,this.#y(ys(this.#e,i)),n&&this.#v(e,t)}}).catch(n=>{this.#x(e,t)&&(this.#y({...this.#e,snapshotting:!1,lifecycle:`recoverable`}),this.#d.onHistoryError?.(n))}).finally(()=>{this.#a?.promise===r&&(this.#a=null,this.#x(e,t)&&this.#e.snapshotting&&this.#_(e,t))});return this.#a={id:e,generation:t,promise:r},r}#v(e,t){let n=this.#i;this.#i=null,n?.close(),this.#o&&this.#d.clearTimeout(this.#o),this.#o=null,this.#m(e,t)}#y(e){this.#e=e,this.#b(),this.#t&&this.#d.cache.write(this.#t,this.#e).catch(()=>{})}#b(){this.#d.publish(this.view)}#x(e,t){return!this.#c&&this.#t===e&&this.#n===t}#S(){this.#o&&this.#d.clearTimeout(this.#o),this.#o=null;let e=this.#i;this.#i=null,e?.close()}},Ls=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}},Rs=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}},zs={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.`};function Bs(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(zs,r)?r:Object.hasOwn(zs,n)?n:t,a=typeof e==`object`&&e&&`retryable`in e?e.retryable===!0:!0;return{code:i,message:zs[i],retryable:a}}var Vs={error:null,success:5e3,info:7e3};function Hs(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=Vs[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 Us=q(`<small class="svelte-1a0rutm"> </small>`),Ws=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>`),Gs=q(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function Ks(e,t){Xe(t,!0);let n=I([]),r=P(()=>G(n).slice(-3));Mi(()=>t.queue.subscribe(e=>L(n,e)));var i=Gs();Z(i,21,()=>G(r),e=>e.id,(e,n)=>{var r=Ws();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=Us(),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=ui(r,1,`toast svelte-1a0rutm`,null,i,{error:G(n).kind===`error`,success:G(n).kind===`success`}),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===`success`?`✓`:`i`),Y(l,G(n).kind===`error`?`Error`:G(n).kind===`success`?`Success`:`Info`),Y(d,G(n).message),Q(m,`aria-label`,`Dismiss ${G(n).kind} notification`)}),Ar(`pointerenter`,r,()=>t.queue.pause(G(n).id,`hover`)),Ar(`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),Ze()}jr([`focusin`,`focusout`,`click`]);var qs=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 Js(e,t){Xe(t,!0);let n=Hs();Mi(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=qs();Ks(V(B(r),4),{get queue(){return n}}),J(e,r),Ze()}var Ys={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function Xs(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 Zs(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function Qs(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 $s(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 ec(e,t){for(let n of e){if(n.id===t)return n;let e=ec(n.children,t);if(e)return e}}function tc(e,t,n,r){if(e){let i=ec(n,e);if(i&&r(i))return i.id;let a=$s(t,e);for(let e of a.toReversed()){let t=ec(n,e);if(t&&r(t))return t.id}}return nc(n).find(r)?.id??null}function nc(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var rc=q(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),ic=q(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),ac=q(`<span class="repository-badge svelte-6z3q4v">Git</span>`),oc=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>`),sc=q(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function cc(e,t){Xe(t,!0);let n=$(t,`isSelectable`,3,()=>!0),r=I(null),i=R({}),a=P(()=>Qs(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(Zs(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=sc();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=oc();let g;var _=z(h),v=e=>{var n=rc(),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,ic())};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),ee=z(D,!0);N(D),N(w);var te=V(w,2),O=e=>{J(e,ac())};X(te,e=>{G(u).isGitRepository&&e(O)}),N(b),ji(b,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[G(u)]),N(h),H((e,n,r,i,s)=>{g=fi(h,``,g,e),x=ui(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(ee,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)]),Ar(`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),Ze()}jr([`click`,`keydown`]);var lc=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> <div class="tree-panel svelte-1d6w4ti"><!></div></section>`);function uc(e,t){Xe(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=lc(),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),g=z(h);{let e=P(()=>t.context===`sessions`?`Session base`:`Git repository`),n=P(()=>t.context===`sessions`?Ys.sessionBase:Ys.gitRepositoryTarget);cc(g,{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(h),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),Ze()}function dc(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 fc(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 pc=q(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),mc=q(`<option> </option>`),hc=q(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),gc=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>`),_c=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>`),vc=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),yc=q(`<p>This workspace is not a Git repository.</p>`),bc=q(`<p role="status">Loading repository status…</p>`),xc=q(`<p><strong> </strong> is available as a Clone destination. Select a Git repository
|
|
13
13
|
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),Sc=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),Cc=q(`<p role="alert"> </p>`),wc=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
|
|
14
14
|
destinations.</p></div> <!></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 Tc(e,t){Xe(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=wc(),o=V(z(a),2),s=V(z(o),2);{let e=P(()=>t.selectedWorkspace?.id??null);cc(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}})}N(o);var c=V(o,2),l=z(c),u=z(l),d=V(z(u),2),f=z(d,!0);N(d),N(u);var p=V(u,2),m=V(z(p),2);xi(m),N(p);var h=V(p,2),g=z(h,!0);N(h),N(l);var _=V(l,4),v=e=>{var n=pc(),r=z(n,!0);N(n),H(()=>Y(r,t.cloneStatus)),J(e,n)};X(_,e=>{t.cloneStatus&&e(v)}),N(c);var y=V(c,2),b=V(z(y),2),x=e=>{var n=zr(),r=B(n),i=e=>{var n=zr(),r=B(n),i=e=>{var n=vc(),r=B(n),i=z(r),a=V(z(i),2);Z(a,20,()=>t.summary.branches??[],e=>e,(e,t)=>{var n=mc(),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;mi(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=hc(),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=_c(),r=V(z(n),2);Z(r,21,()=>t.summary.commits,e=>e.hash,(e,t)=>{var n=gc(),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)},[()=>fc(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??``)??``,pi(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`}`)},[()=>dc(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,yc())};X(r,e=>{t.summary.available?e(i):e(a,-1)}),J(e,n)},a=e=>{J(e,bc())};X(r,e=>{t.summary?e(i):t.error||e(a,1)}),J(e,n)},S=e=>{var n=xc(),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)},C=e=>{var t=Sc();He(2),J(e,t)};X(b,e=>{t.selectedWorkspace?.isGitRepository?e(x):t.selectedWorkspace?e(S,1):e(C,-1)});var w=V(b,2),T=e=>{var n=Cc(),r=z(n,!0);N(n),H(()=>Y(r,t.error)),J(e,n)};X(w,e=>{t.error&&e(T)}),N(y),N(a),H(()=>{Y(f,G(r)?`~/${G(r).relativePath}`:`Select a non-repository folder`),h.disabled=t.cloning,Y(g,t.cloning?`Cloning…`:`Clone`)}),Ar(`submit`,c,i),Di(m,()=>G(n),e=>L(n,e)),J(e,a),Ze()}jr([`change`,`click`]);var Ec=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 Dc(e,t,n,r,i){let a=new Set(Oc(e).filter(e=>e.isGitRepository).map(e=>e.id)),o=ec(t,n),s=o?Oc(o.children).filter(e=>e.isGitRepository&&!a.has(e.id)):[],c=kc(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&&$s(t,u).forEach(e=>d.add(e)),!l&&o&&d.add(o.id),{selectedId:u,expandedIds:d}}function Oc(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}function kc(e){return(e.trim().replace(/[?#].*$/,``).replace(/\/+$/,``).split(/[/:]/).at(-1)??``).replace(/\.git$/i,``)}function Ac(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 jc(e){return{answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,{answers:[e.answer]}]))}}function Mc(e=fetch){async function t(e){let t=await e.json().catch(()=>null),n=typeof t?.detail==`string`?t.detail:typeof t?.title==`string`?t.title:`Relay request failed (${e.status}).`;return Object.assign(Error(n),{...typeof t?.code==`string`&&/^[A-Z0-9_]+$/.test(t.code)?{code:t.code}:{}})}async function n(n,r,i={},a){let o=await e(n,{method:`POST`,headers:{"content-type":`application/json`,...i},body:JSON.stringify(r),signal:a});if(!o.ok)throw await t(o);return o.json()}async function r(n,r){let i=await e(n,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(r)});if(!i.ok)throw await t(i);return i.json()}async function i(n){let r=await e(n,{method:`DELETE`});if(!r.ok)throw await t(r)}async function a(n,r){let i=await e(n,r?{signal:r}:void 0);if(!i.ok)throw await t(i);return i.json()}async function o(n,r){let i=await e(n,{signal:r});if(i.status===204)return null;if(!i.ok)throw await t(i);return i.json()}return{listSessions:()=>a(`/api/sessions`),listRecentSessions:()=>a(`/api/sessions/recent-threads`),openRecentSession:(e,t)=>n(`/api/sessions/recent-threads/open`,{threadId:e,cwd:t}),startSession:(e,t={},r)=>n(`/api/sessions`,{workspaceId:e,profile:`default`,...t},r?{"idempotency-key":r}:{}),startTurn:(e,t,r)=>n(`/api/sessions/${encodeURIComponent(e)}/turns`,{text:t},r?{"idempotency-key":r}:{}),selectModel:(e,t)=>n(`/api/sessions/${encodeURIComponent(e)}/model`,{model:t}),interruptTurn:(e,t)=>n(`/api/sessions/${encodeURIComponent(e)}/turns/${encodeURIComponent(t)}/interrupt`,{}),restoreSession:e=>n(`/api/sessions/${encodeURIComponent(e)}/restore`,{}),releaseSession:e=>n(`/api/sessions/${encodeURIComponent(e)}/release`,{}),forgetSession:n=>e(`/api/sessions/${encodeURIComponent(n)}`,{method:`DELETE`}).then(async e=>{if(!e.ok)throw await t(e)}),getHistory:e=>a(`/api/sessions/${encodeURIComponent(e)}/history`),getPlan:(e,t)=>o(`/api/sessions/${encodeURIComponent(e)}/plan`,t),closePlan:e=>i(`/api/sessions/${encodeURIComponent(e)}/plan`),listWorkspacePlans:(e,t)=>a(`/api/workspaces/${encodeURIComponent(e)}/plans`,t),getWorkspacePlan:(e,t,n)=>a(`/api/workspaces/${encodeURIComponent(e)}/plans/${encodeURIComponent(t)}`,n),getGitSummary:(e,t)=>a(`/api/git/repositories/${encodeURIComponent(e)}`,t),cloneGitRepository:(e,t)=>n(`/api/git/clone`,{workspaceId:e,address:t}),refreshGit:(e,t)=>n(`/api/git/repositories/${encodeURIComponent(e)}/refresh`,{},t?{"idempotency-key":t}:{}),pullGit:(e,t,r)=>n(`/api/git/repositories/${encodeURIComponent(e)}/pull`,{},t?{"idempotency-key":t}:{},r),checkoutGitBranch:(e,t,r)=>n(`/api/git/repositories/${encodeURIComponent(e)}/checkout`,{branch:t},{},r),pushGit:(e,t)=>n(`/api/git/repositories/${encodeURIComponent(e)}/push`,{},t?{"idempotency-key":t}:{}),listAvailableSkills:(e,t,n=!1,r)=>a(`/api/skills?${new URLSearchParams({workspaceId:e,profile:t,...n?{refresh:`true`}:{}}).toString()}`,r),listSkillProfiles:e=>a(`/api/skill-profiles`,e),replaceSkillProfile:(e,t)=>r(`/api/skill-profiles/${encodeURIComponent(e)}`,t),deleteSkillProfile:e=>i(`/api/skill-profiles/${encodeURIComponent(e)}`),respondInteraction:(e,t,r,i)=>n(`/api/sessions/${encodeURIComponent(e)}/interactions/${encodeURIComponent(t)}`,r,i?{"idempotency-key":i}:{})}}async function Nc(e,t=globalThis.navigator?.clipboard,n=Fc){if(!t)return Pc(e,n);try{return await t.writeText(e),!0}catch{return Pc(e,n)}}function Pc(e,t){try{return t(e)}catch{return!1}}function Fc(e){if(typeof document>`u`||!document.body)return!1;let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed;opacity:0`,document.body.append(t),t.select();let n=document.execCommand(`copy`);return t.remove(),n}var Ic=[`authoring-start`,`work-start`,`checkpoint`,`update`,`supervision-start`,`resync`];function Lc(e){return typeof e==`string`&&Ic.includes(e)}function Rc(e){if(!e||typeof e!=`object`)return!1;let t=e;return zc(t.plan)&&(t.reason===null||Lc(t.reason))}function zc(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.title==`string`&&Array.isArray(t.steps)&&typeof t.totalSteps==`number`&&typeof t.doneSteps==`number`&&typeof t.allDone==`boolean`&&typeof t.currentStepId==`string`}function Bc(e){return e instanceof Error?e.message:`Could not load the plan.`}function Vc(e){return{...e,...e.skills?{skills:[...e.skills]}:{},description:{...e.description},children:e.children.map(Vc)}}function Hc(e){return{...e,steps:e.steps.map(Vc)}}function Uc(e,t){return e.kind===`unavailable`&&e.sessionId===t}function Wc(e,t){let n=null,r={kind:`unavailable`,sessionId:null},i=0,a=0,o=null,s=0,c=e=>{++a,r=e,t(e)},l=(t,r)=>{o?.abort(),o=new AbortController;let a=++i,l=s;r||c({kind:`loading`,sessionId:t}),e.getPlan(t,o.signal).then(e=>{a!==i||n!==t||s===l&&c(e?{kind:`ready`,sessionId:t,plan:Hc(e)}:{kind:`unavailable`,sessionId:t})}).catch(e=>{o?.signal.aborted||a!==i||n!==t||c({kind:`error`,sessionId:t,error:Bc(e),...r?{plan:r}:{}})})};return{select(e){if(o?.abort(),n=e,s=0,!e){++i,c({kind:`unavailable`,sessionId:null});return}l(e,void 0)},refresh(e){if(n!==e)return;let t=r.kind===`ready`||r.kind===`closing`||r.kind===`error`?r.plan:void 0;l(e,t)},applyEvent(e,t){if(!(n!==e||t.sequence<=s)){if(t.type===`plan.updated`&&(zc(t.payload)||Rc(t.payload))){let n=Rc(t.payload)?t.payload.plan:t.payload;s=t.sequence,c({kind:`ready`,sessionId:e,plan:Hc(n)})}t.type===`plan.closed`&&(s=t.sequence,c({kind:`unavailable`,sessionId:e}))}},async close(){if(r.kind!==`ready`&&r.kind!==`error`||!r.plan?.allDone)return null;let{sessionId:t,plan:i}=r;c({kind:`closing`,sessionId:t,plan:i});let o=a;try{return await e.closePlan(t),n===t?a===o?(c({kind:`unavailable`,sessionId:t}),`chat`):Uc(r,t)?`chat`:null:null}catch(e){return n===t?a===o?(c({kind:`error`,sessionId:t,plan:i,error:Bc(e)}),null):Uc(r,t)?`chat`:null:null}},dispose(){o?.abort(),o=null,n=null,++i,c({kind:`unavailable`,sessionId:null})}}}function Gc(e){if(!e)return null;let t=Kc(e.steps,e.currentStepId)?.measurement?.weeklyRemainingCurrent;return typeof t==`number`&&Number.isFinite(t)&&t>=0&&t<=100?Math.round(t):null}function Kc(e,t){for(let n of e){if(n.id===t)return n;let e=Kc(n.children,t);if(e)return e}}var qc=q(`<section aria-labelledby="plan-title" class="svelte-3rmyvg"><h2 id="plan-title" class="svelte-3rmyvg">Plan</h2> <p class="svelte-3rmyvg">Loading plan…</p></section>`),Jc=q(`<section aria-labelledby="plan-title" class="svelte-3rmyvg"><h2 id="plan-title" class="svelte-3rmyvg">Plan</h2> <p class="svelte-3rmyvg">No retained plan for this session.</p></section>`),Yc=q(`<section aria-labelledby="plan-title" class="svelte-3rmyvg"><h2 id="plan-title" class="svelte-3rmyvg">Plan</h2> <p class="svelte-3rmyvg"> </p></section>`),Xc=q(`<p class="svelte-3rmyvg"> </p>`),Zc=q(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Subtitle</dt> <dd class="svelte-3rmyvg"> </dd></div>`),Qc=q(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Date</dt> <dd class="svelte-3rmyvg"> </dd></div>`),$c=q(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Keywords</dt> <dd class="svelte-3rmyvg"> </dd></div>`),el=q(`<dl class="metadata svelte-3rmyvg"><!> <!> <!></dl>`),tl=q(`<p class="svelte-3rmyvg">No plan steps have been retained yet.</p>`),nl=q(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg"> </strong> </p>`),rl=q(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg">Skills:</strong> </p>`),il=q(`<li class="svelte-3rmyvg"><details class="svelte-3rmyvg"><summary class="svelte-3rmyvg"><strong class="svelte-3rmyvg"> </strong> <span class="svelte-3rmyvg"> </span> <span class="svelte-3rmyvg"> </span></summary> <!> <!></details></li>`),al=q(`<ol class="svelte-3rmyvg"></ol>`),ol=q(`<li class="svelte-3rmyvg"><details class="svelte-3rmyvg"><summary class="svelte-3rmyvg"><strong class="svelte-3rmyvg"> </strong> <span class="svelte-3rmyvg"> </span> <span class="svelte-3rmyvg"> </span> <span class="measurement svelte-3rmyvg"> </span></summary> <!> <!> <!></details></li>`),sl=q(`<ol class="plan-steps svelte-3rmyvg"></ol>`),cl=q(`<section class="plan svelte-3rmyvg" aria-labelledby="plan-title"><header class="svelte-3rmyvg"><div class="svelte-3rmyvg"><h2 id="plan-title" class="svelte-3rmyvg"> </h2> <p class="svelte-3rmyvg"> </p></div> <button class="close svelte-3rmyvg" aria-label="Close plan and return to list">×</button></header> <progress aria-label="Plan progress" class="svelte-3rmyvg"> </progress> <p class="svelte-3rmyvg"> </p> <!> <!> <!></section>`),ll=q(`<p class="visually-hidden svelte-3rmyvg" aria-live="polite" aria-atomic="true"> </p> <!>`,1);function ul(e,t){Xe(t,!0);let n={effort:`Effort`,goal:`Goal`,notes:`Notes`,why:`Why`,change:`Change`,tests:`Tests`,doneWhen:`Done when`},r=I(R(new Set)),i=R({}),a=null,o=0,s=P(()=>t.state.kind===`ready`||t.state.kind===`closing`||t.state.kind===`error`?t.state.plan:void 0),c=P(()=>G(s)?d(G(s).steps,G(s).currentStepId):void 0),l=P(()=>G(s)?f(G(s).steps,G(s).currentStepId):new Set),u=P(()=>t.state.kind===`loading`?`Loading plan.`:t.state.kind===`unavailable`?`No retained plan for this session.`:t.state.kind===`error`&&!G(s)?t.state.error:t.state.kind===`closing`?`Closing completed plan.`:G(s)?G(c)?`Current step: ${G(c).title}, ${G(c).state}. ${G(s).doneSteps} of ${G(s).totalSteps} complete.${t.state.kind===`error`?` ${t.state.error}`:``}`:`${G(s).doneSteps} of ${G(s).totalSteps} plan steps complete.${t.state.kind===`error`?` ${t.state.error}`:``}`:``);An(()=>{let e=G(s)?.currentStepId||null;if(!e||a===e)return;a=e;let t=++o;br().then(()=>{t!==o||G(s)?.currentStepId!==e||i[e]?.scrollIntoView({behavior:`auto`,block:`nearest`,inline:`nearest`})})});function d(e,t){for(let n of e){if(n.id===t)return n;let e=d(n.children,t);if(e)return e}}function f(e,t,n=[]){for(let r of e){if(r.id===t)return new Set([...n,r.id]);let e=f(r.children,t,[...n,r.id]);if(e.size)return e}return new Set}function p(e){return G(r).has(e)||G(l).has(e)}function m(e,t){L(r,t?new Set([...G(r),e]):new Set([...G(r)].filter(t=>t!==e)),!0)}function h(e){return e.description.goal??e.description.why??e.title}function g(e){let t=e.measurement;if(!t)return`Measurements unavailable`;let n=[];return t.elapsedSeconds!==void 0&&n.push(`${Math.floor(t.elapsedSeconds/60)}m ${t.elapsedSeconds%60}s elapsed`),t.weeklyPercentUsed!==void 0&&n.push(`${t.weeklyPercentUsed}% observed account-wide usage`),t.tokensUsed!==void 0&&n.push(`${t.tokensUsed.toLocaleString()} tokens used`),n.join(` · `)||`Measurements unavailable`}function _(e){return Object.keys(n).flatMap(t=>{let r=e.description[t];return r?[[n[t],r]]:[]})}function v(e){return Math.max(e.totalSteps,1)}var y=ll(),b=B(y),x=z(b,!0);N(b);var S=V(b,2),w=e=>{J(e,qc())},T=e=>{J(e,Jc())},E=e=>{var n=Yc(),r=V(z(n),2),i=z(r,!0);N(r),N(n),H(()=>Y(i,t.state.error)),J(e,n)},D=e=>{var n=cl(),r=z(n),a=z(r),o=z(a),l=z(o,!0);N(o);var u=V(o,2),d=z(u);N(u),N(a);var f=V(a,2);N(r);var y=V(r,2),b=z(y);N(y);var x=V(y,2),S=z(x);N(x);var w=V(x,2),T=e=>{var n=Xc(),r=z(n,!0);N(n),H(()=>Y(r,t.state.error)),J(e,n)};X(w,e=>{t.state.kind===`error`&&e(T)});var E=V(w,2),D=e=>{var t=el(),n=z(t),r=e=>{var t=Zc(),n=V(z(t),2),r=z(n,!0);N(n),N(t),H(()=>Y(r,G(s).subtitle)),J(e,t)};X(n,e=>{G(s).subtitle&&e(r)});var i=V(n,2),a=e=>{var t=Qc(),n=V(z(t),2),r=z(n,!0);N(n),N(t),H(()=>Y(r,G(s).date)),J(e,t)};X(i,e=>{G(s).date&&e(a)});var o=V(i,2),c=e=>{var t=$c(),n=V(z(t),2),r=z(n,!0);N(n),N(t),H(()=>Y(r,G(s).keywords)),J(e,t)};X(o,e=>{G(s).keywords&&e(c)}),N(t),J(e,t)};X(E,e=>{(G(s).subtitle||G(s).date||G(s).keywords)&&e(D)});var ee=V(E,2),te=e=>{J(e,tl())},O=e=>{var t=sl();Z(t,21,()=>G(s).steps,e=>e.id,(e,t)=>{var n=ol(),r=z(n),a=z(r),o=z(a),s=z(o,!0);N(o);var c=V(o,2),l=z(c);N(c);var u=V(c,2),d=z(u,!0);N(u);var f=V(u,2),v=z(f,!0);N(f),N(a);var y=V(a,2);Z(y,17,()=>_(G(t)),([e,t])=>e,(e,t)=>{var n=P(()=>C(G(t),2));let r=()=>G(n)[0],i=()=>G(n)[1];var a=nl(),o=z(a),s=z(o);N(o);var c=V(o);N(a),H(()=>{Y(s,`${r()??``}:`),Y(c,` ${i()??``}`)}),J(e,a)});var b=V(y,2),x=e=>{var n=rl(),r=V(z(n));N(n),H(e=>Y(r,` ${e??``}`),[()=>G(t).skills.join(`, `)]),J(e,n)};X(b,e=>{G(t).skills?.length&&e(x)});var S=V(b,2),w=e=>{var n=al();Z(n,21,()=>G(t).children,e=>e.id,(e,t)=>{var n=il(),r=z(n),a=z(r),o=z(a),s=z(o,!0);N(o);var c=V(o,2),l=z(c);N(c);var u=V(c,2),d=z(u,!0);N(u),N(a);var f=V(a,2);Z(f,17,()=>_(G(t)),([e,t])=>e,(e,t)=>{var n=P(()=>C(G(t),2));let r=()=>G(n)[0],i=()=>G(n)[1];var a=nl(),o=z(a),s=z(o);N(o);var c=V(o);N(a),H(()=>{Y(s,`${r()??``}:`),Y(c,` ${i()??``}`)}),J(e,a)});var g=V(f,2),v=e=>{var n=rl(),r=V(z(n));N(n),H(e=>Y(r,` ${e??``}`),[()=>G(t).skills.join(`, `)]),J(e,n)};X(g,e=>{G(t).skills?.length&&e(v)}),N(r),ji(r,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[G(t)]),N(n),H((e,n)=>{Q(r,`data-step-id`,G(t).id),r.open=e,Y(s,G(t).title),Y(l,`${G(t).state??``} · Priority ${G(t).priority??``}${G(t).reviewStatus?` · ${G(t).reviewStatus}`:``}`),Y(d,n)},[()=>p(G(t).id),()=>h(G(t))]),Ar(`toggle`,r,e=>m(G(t).id,e.currentTarget.open)),J(e,n)}),N(n),J(e,n)};X(S,e=>{G(t).children.length&&e(w)}),N(r),ji(r,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[G(t)]),N(n),H((e,n,i)=>{Q(r,`data-step-id`,G(t).id),r.open=e,Y(s,G(t).title),Y(l,`${G(t).state??``} · Priority ${G(t).priority??``}${G(t).reviewStatus?` · ${G(t).reviewStatus}`:``}`),Y(d,n),Y(v,i)},[()=>p(G(t).id),()=>h(G(t)),()=>g(G(t))]),Ar(`toggle`,r,e=>m(G(t).id,e.currentTarget.open)),J(e,n)}),N(t),J(e,t)};X(ee,e=>{G(s).steps.length===0?e(te):e(O,-1)}),N(n),H(e=>{Y(l,G(s).title),Y(d,`${G(s).doneSteps??``} / ${G(s).totalSteps??``} complete`),Si(y,G(s).doneSteps),Q(y,`max`,e),Y(b,`${G(s).doneSteps??``} of ${G(s).totalSteps??``} complete`),Y(S,`Current: ${G(c)?`${G(c).title} (${G(c).state})`:`No current step`}`)},[()=>v(G(s))]),K(`click`,f,function(...e){t.onclose?.apply(this,e)}),J(e,n)};X(S,e=>{t.state.kind===`loading`?e(w):t.state.kind===`unavailable`?e(T,1):t.state.kind===`error`&&!G(s)?e(E,2):G(s)&&e(D,3)}),H(()=>Y(x,G(u))),J(e,y),Ze()}jr([`click`]);var dl=q(`<p>Select a workspace to browse its local plans.</p>`),fl=q(`<p>Loading workspace plans…</p>`),pl=q(`<p> </p>`),ml=q(`<p>No valid Org plans were found below this workspace.</p>`),hl=q(`<span> </span>`),gl=q(`<li><button class="svelte-x2ko9l"><strong> </strong> <code class="svelte-x2ko9l"> </code> <span> </span> <!></button></li>`),_l=q(`<p class="scope svelte-x2ko9l">Org plans validated below the selected workspace.</p> <ul class="svelte-x2ko9l"></ul>`,1),vl=q(`<section class="plans svelte-x2ko9l" aria-labelledby="plans-title"><h2 id="plans-title" tabindex="-1" class="svelte-x2ko9l">Plans</h2> <!></section>`);function yl(e,t){Xe(t,!0);let n=I(null),r=R({}),i=I(null),a=!1,o=!1;function s(){t.onclose()}function c(e){L(i,e,!0),t.onopen(e)}An(()=>{if(t.state){a=!0;return}if(a&&(a=!1,o=!0),!o)return;let e=t.catalog.kind,s=G(i);queueMicrotask(()=>{let t=s?r[s]:void 0;t?.isConnected?(t.focus(),o=!1):e!==`loading`&&(G(n)?.focus(),o=!1)})});var l=zr(),u=B(l),d=e=>{ul(e,{get state(){return t.state},onclose:s})},f=e=>{var i=vl(),a=z(i);ji(a,e=>L(n,e),()=>G(n));var o=V(a,2),s=e=>{J(e,dl())},l=e=>{J(e,fl())},u=e=>{var n=pl(),r=z(n,!0);N(n),H(()=>Y(r,t.catalog.error)),J(e,n)},d=e=>{J(e,ml())},f=e=>{var n=_l(),i=V(B(n),2);Z(i,21,()=>t.catalog.entries,e=>e.planName,(e,t)=>{var n=gl(),i=z(n),a=z(i),o=z(a,!0);N(a);var s=V(a,2),l=z(s,!0);N(s);var u=V(s,2),d=z(u);N(u);var f=V(u,2),p=e=>{var n=hl(),r=z(n,!0);N(n),H(()=>Y(r,G(t).subtitle)),J(e,n)};X(f,e=>{G(t).subtitle&&e(p)}),N(i),ji(i,(e,t)=>r[t.planName]=e,e=>r?.[e.planName],()=>[G(t)]),N(n),H(()=>{Y(o,G(t).title),Y(l,G(t).planName),Y(d,`${G(t).doneSteps??``} / ${G(t).totalSteps??``} complete`)}),K(`click`,i,()=>c(G(t).planName)),J(e,n)}),N(i),J(e,n)};X(o,e=>{t.catalog.kind===`no-workspace`?e(s):t.catalog.kind===`loading`?e(l,1):t.catalog.kind===`error`?e(u,2):t.catalog.entries.length===0?e(d,3):e(f,-1)}),N(i),J(e,i)};X(u,e=>{t.state?e(d):e(f,-1)}),J(e,l),Ze()}jr([`click`]);var bl=`settings`,xl=`drafts`,Sl=`cursors`,Cl=`selected-session`;function wl(e=globalThis.indexedDB){if(!e)return Tl;let t=Qo(e);return{async readSelectedSession(){try{return await $o(await t,bl,Cl)??null}catch{return null}},async saveSelectedSession(e){try{let n=await t;e?await es(n,bl,Cl,e):await ts(n,bl,Cl)}catch{}},async readDraft(e){try{return await $o(await t,xl,e)??``}catch{return``}},async saveDraft(e,n){try{await es(await t,xl,e,n)}catch{}},async readCursor(e){try{let n=await $o(await t,Sl,e);return typeof n==`number`&&Number.isSafeInteger(n)&&n>=0?n:0}catch{return 0}},async saveCursor(e,n){try{await es(await t,Sl,e,n)}catch{}}}}var Tl={readSelectedSession:async()=>null,saveSelectedSession:async()=>{},readDraft:async()=>``,saveDraft:async()=>{},readCursor:async()=>0,saveCursor:async()=>{}};function El(e,t=Date.now()){if(e===null)return`Unknown activity time`;let n=Math.max(0,t-e),r=Math.floor(n/(3600*1e3));if(r<1)return`Less than an hour ago`;if(r<24)return`${r} hour${r===1?``:`s`} ago`;let i=Math.floor(r/24);return`${i} day${i===1?``:`s`} ago`}function Dl(e){let t=e.updatedAt?Date.parse(e.updatedAt):NaN;return{threadId:e.threadId??null,workspacePath:e.workspacePath??`Workspace unavailable`,updatedAt:Number.isFinite(t)?t:null}}function Ol(e,t){if(!t?.threadId||!t.workspacePath||!t.resumeCommand||e.some(e=>e.id===t.threadId))return e;let n=t.updatedAt?Date.parse(t.updatedAt)/1e3:NaN,r={id:t.threadId,cwd:t.workspacePath,recencyAt:Number.isFinite(n)?n:null,resumeCommand:t.resumeCommand,...t.model===void 0?{}:{model:t.model},...t.effectiveSkillSelection?.selectedProfileName===void 0?{}:{skillProfile:t.effectiveSkillSelection.selectedProfileName},...t.lastOrgPlan===void 0?{}:{orgPlanFilename:t.lastOrgPlan.filename}};return[...e,r].sort((e,t)=>(t.recencyAt??-1/0)-(e.recencyAt??-1/0))}function kl(e){let t=/^\/home\/[^/]+/.exec(e)?.[0];if(!t)return e;let n=e.slice(t.length);return n?`~${n}`:`~/`}var Al=q(`<button type="button">Copy</button>`),jl=q(`<time> </time>`),Ml=q(`<div> </div>`),Nl=q(`<span class="profile-badge svelte-hxb22h"> </span>`),Pl=q(`<span class="org-plan-metadata svelte-hxb22h"><span class="org-plan-title svelte-hxb22h"> </span> <span class="org-plan-filename svelte-hxb22h"> </span></span>`),Fl=q(`<li><div class="session-actions svelte-hxb22h"><!> <button type="button">Close</button></div> <div class="session-details svelte-hxb22h"><button class="session-select svelte-hxb22h" type="button"><!> <div class="workspace-path svelte-hxb22h"> </div> <!> <!> <!> <!></button></div></li>`),Il=q(`<section aria-labelledby="open-sessions-title"><h3 id="open-sessions-title">Open sessions</h3> <ul class="session-list svelte-hxb22h" aria-label="Open sessions"></ul></section>`),Ll=q(`<li class="managed-session svelte-hxb22h"><div class="session-actions svelte-hxb22h"><button type="button"> </button> <!> <button type="button">Forget</button></div> <div class="session-details svelte-hxb22h"><!> <div class="workspace-path svelte-hxb22h"> </div> <!> <!> <!></div></li>`),Rl=q(`<ul class="session-list svelte-hxb22h" aria-label="Saved sessions"></ul>`),zl=q(`<p>No saved sessions yet.</p>`),Bl=q(`<option> </option>`),Vl=q(`<p class="skills-profile-error svelte-hxb22h" role="alert"> </p>`),Hl=q(`<li class="recent-session svelte-hxb22h"><div class="session-details svelte-hxb22h"><!> <div class="workspace-path svelte-hxb22h"> </div> <!> <!> <!></div> <div class="session-actions svelte-hxb22h"><button type="button">Open</button> <button type="button">Copy</button></div></li>`),Ul=q(`<ul class="session-list recent-session-list svelte-hxb22h" aria-label="Recent sessions"></ul>`),Wl=q(`<p>No other recent Codex sessions found.</p>`),Gl=q(`<section aria-labelledby="sessions-title"><h2 id="sessions-title" class="visually-hidden">Sessions</h2> <!> <!> <form><section class="session-base svelte-hxb22h" aria-labelledby="session-base-title"><div class="session-base-heading svelte-hxb22h"><h3 id="session-base-title" class="svelte-hxb22h">Session base</h3> <p class="svelte-hxb22h">Select the folder or repository Codex should use as its working directory.</p></div> <div class="tree-panel svelte-hxb22h"><!></div></section> <section class="session-settings svelte-hxb22h" aria-label="New session settings"><div class="session-setting-labels svelte-hxb22h"><label for="skills-profile" class="svelte-hxb22h">Skills profile</label> <label for="sandbox" class="svelte-hxb22h">Sandbox</label> <label for="approval-policy" class="svelte-hxb22h">Approval policy</label></div> <div class="session-setting-controls svelte-hxb22h"><select id="skills-profile" class="svelte-hxb22h"><option>Default</option><!></select> <select id="sandbox" class="svelte-hxb22h"><option>workspace-write</option><option>read-only</option><option>danger-full-access</option></select> <select id="approval-policy" aria-describedby="approval-policy-help" class="svelte-hxb22h"><option>Ask on all commands</option><option>Ask out of workspace</option><option>Approve everything</option></select></div> <p id="approval-policy-help">This controls when Codex asks; it does not expand the sandbox's technical permissions.</p> <!> <div class="session-secondary-actions svelte-hxb22h"><button id="manage-skill-profiles" type="button">Manage skill profiles</button> <div class="model-control svelte-hxb22h"><label for="model">Model</label> <select id="model"></select></div> <button class="new-session-button svelte-hxb22h" type="submit"> </button></div></section></form> <section aria-labelledby="recent-sessions-title"><h3 id="recent-sessions-title">Recent sessions</h3> <!></section></section>`);function Kl(e,t){Xe(t,!0);let n=$(t,`models`,19,()=>[]),r=$(t,`selectedModel`,3,``),i=$(t,`onmodelchange`,3,()=>{}),a=P(()=>t.sessions.filter(e=>e.state===`ready`||e.state===`turnActive`)),o=P(()=>t.sessions.filter(e=>e.state!==`ready`&&e.state!==`turnActive`)),s=P(()=>t.recentSessions.filter(e=>!G(a).some(t=>t.threadId===e.id))),c=P(()=>ec(t.workspaceTree,t.workspaceId));var l=Gl(),u=V(z(l),2),d=e=>{var n=Il(),r=V(z(n),2);Z(r,21,()=>G(a),e=>e.id,(e,n)=>{let r=P(()=>Dl(G(n)));var i=Fl();let a;var o=z(i),s=z(o),c=e=>{var r=Al();K(`click`,r,()=>t.oncopyresume(G(n).resumeCommand)),J(e,r)};X(s,e=>{G(n).resumeCommand&&e(c)});var l=V(s,2);N(o);var u=V(o,2),d=z(u),f=z(d),p=e=>{var t=jl(),n=z(t,!0);N(t),H((e,r)=>{Q(t,`datetime`,e),Y(n,r)},[()=>new Date(G(r).updatedAt).toISOString(),()=>El(G(r).updatedAt)]),J(e,t)},m=e=>{var t=Ml(),n=z(t,!0);N(t),H(e=>Y(n,e),[()=>El(null)]),J(e,t)};X(f,e=>{G(r).updatedAt===null?e(m,-1):e(p)});var h=V(f,2),g=z(h,!0);N(h);var _=V(h,2),v=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Model: ${G(n).model??``}`)),J(e,t)};X(_,e=>{G(n).model&&e(v)});var y=V(_,2),b=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Branch: ${G(n).branch??``}`)),J(e,t)};X(y,e=>{G(n).branch&&e(b)});var x=V(y,2),S=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Skills profile: ${G(n).effectiveSkillSelection.selectedProfileName??``}`)),J(e,t)};X(x,e=>{G(n).effectiveSkillSelection?.selectedProfileName&&e(S)});var C=V(x,2),w=e=>{var t=Pl(),r=z(t),i=z(r,!0);N(r);var a=V(r,2),o=z(a,!0);N(a),N(t),H(()=>{Y(i,G(n).lastOrgPlan.title),Y(o,G(n).lastOrgPlan.filename)}),J(e,t)};X(C,e=>{G(n).lastOrgPlan&&e(w)}),N(d),N(u),N(i),H(e=>{a=ui(i,1,`managed-session open-session svelte-hxb22h`,null,a,{"current-session":G(n).id===t.selectedSessionId}),Q(d,`aria-current`,G(n).id===t.selectedSessionId?`page`:void 0),Y(g,e)},[()=>kl(G(r).workspacePath)]),K(`click`,l,()=>t.onclose(G(n).id)),K(`click`,d,()=>t.onselectopen(G(n).id)),J(e,i)}),N(r),N(n),J(e,n)};X(u,e=>{G(a).length&&e(d)});var f=V(u,2),p=e=>{var n=Rl();Z(n,21,()=>G(o),e=>e.id,(e,n)=>{let r=P(()=>Dl(G(n)));var i=Ll(),a=z(i),o=z(a),s=z(o,!0);N(o);var c=V(o,2),l=e=>{var r=Al();K(`click`,r,()=>t.oncopyresume(G(n).resumeCommand)),J(e,r)};X(c,e=>{G(n).resumeCommand&&e(l)});var u=V(c,2);N(a);var d=V(a,2),f=z(d),p=e=>{var t=jl(),n=z(t,!0);N(t),H((e,r)=>{Q(t,`datetime`,e),Y(n,r)},[()=>new Date(G(r).updatedAt).toISOString(),()=>El(G(r).updatedAt)]),J(e,t)},m=e=>{var t=Ml(),n=z(t,!0);N(t),H(e=>Y(n,e),[()=>El(null)]),J(e,t)};X(f,e=>{G(r).updatedAt===null?e(m,-1):e(p)});var h=V(f,2),g=z(h,!0);N(h);var _=V(h,2),v=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Model: ${G(n).model??``}`)),J(e,t)};X(_,e=>{G(n).model&&e(v)});var y=V(_,2),b=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Branch: ${G(n).branch??``}`)),J(e,t)};X(y,e=>{G(n).branch&&e(b)});var x=V(y,2),S=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Skills profile: ${G(n).effectiveSkillSelection.selectedProfileName??``}`)),J(e,t)};X(x,e=>{G(n).effectiveSkillSelection?.selectedProfileName&&e(S)}),N(d),N(i),H(e=>{o.disabled=t.openingSessionId===G(n).id,Y(s,t.openingSessionId===G(n).id?`Opening…`:`Open`),Y(g,e)},[()=>kl(G(r).workspacePath)]),K(`click`,o,()=>t.onopen(G(n).id)),K(`click`,u,()=>t.onforget(G(n).id)),J(e,i)}),N(n),J(e,n)},m=e=>{J(e,zl())};X(f,e=>{G(o).length?e(p):G(a).length||e(m,1)});var h=V(f,2),g=z(h),_=V(z(g),2),v=z(_);{let e=P(()=>G(c)?.id??null);cc(v,{get roots(){return t.workspaceTree},get expandedIds(){return t.expandedIds},get selectedId(){return G(e)},get isSelectable(){return Ys.sessionBase},label:`Session base`,get onexpandedchange(){return t.onexpandedchange},onselect:e=>t.onworkspacechange(e.id)})}N(_),N(g);var y=V(g,2),b=V(z(y),2),x=z(b),S=z(x);S.value=S.__value=``,Z(V(S),17,()=>t.skillProfiles,e=>e.name,(e,t)=>{var n=Bl(),r=z(n,!0);N(n);var i={};H(()=>{Y(r,G(t).name),i!==(i=G(t).name)&&(n.value=(n.__value=G(t).name)??``)}),J(e,n)}),N(x);var C;mi(x);var w=V(x,2),T=z(w);T.value=T.__value=`workspace-write`;var E=V(T);E.value=E.__value=`read-only`;var D=V(E);D.value=D.__value=`danger-full-access`,N(w);var ee;mi(w);var te=V(w,2),O=z(te);O.value=O.__value=`untrusted`;var ne=V(O);ne.value=ne.__value=`on-request`;var re=V(ne);re.value=re.__value=`never`,N(te);var ie;mi(te),N(b);var ae=V(b,4),oe=e=>{var n=Vl(),r=z(n,!0);N(n),H(()=>Y(r,t.skillProfileError)),J(e,n)};X(ae,e=>{t.skillProfileError&&e(oe)});var se=V(ae,2),k=z(se),ce=V(k,2),le=V(z(ce),2);Z(le,20,n,e=>e,(e,t)=>{var n=Bl(),r=z(n,!0);N(n);var i={};H(()=>{Y(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),J(e,n)}),N(le);var ue;mi(le),N(ce);var de=V(ce,2),fe=z(de,!0);N(de),N(se),N(y),N(h);var pe=V(h,2),me=V(z(pe),2),he=e=>{var n=Ul();Z(n,21,()=>G(s),e=>e.id,(e,n)=>{var r=Hl(),i=z(r),a=z(i),o=e=>{var t=jl(),r=z(t,!0);N(t),H((e,n)=>{Q(t,`datetime`,e),Y(r,n)},[()=>new Date(G(n).recencyAt*1e3).toISOString(),()=>El(G(n).recencyAt*1e3)]),J(e,t)},s=e=>{var t=Ml(),n=z(t,!0);N(t),H(e=>Y(n,e),[()=>El(null)]),J(e,t)};X(a,e=>{G(n).recencyAt===null?e(s,-1):e(o)});var c=V(a,2),l=z(c,!0);N(c);var u=V(c,2),d=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Model: ${G(n).model??``}`)),J(e,t)};X(u,e=>{G(n).model&&e(d)});var f=V(u,2),p=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Skills profile: ${G(n).skillProfile??``}`)),J(e,t)};X(f,e=>{G(n).skillProfile&&e(p)});var m=V(f,2),h=e=>{var t=Nl(),r=z(t);N(t),H(()=>Y(r,`Org plan: ${G(n).orgPlanFilename??``}`)),J(e,t)};X(m,e=>{G(n).orgPlanFilename&&e(h)}),N(i);var g=V(i,2),_=z(g),v=V(_,2);N(g),N(r),H(e=>Y(l,e),[()=>kl(G(n).cwd)]),K(`click`,_,()=>t.onopenrecent(G(n))),K(`click`,v,()=>t.oncopyresume(G(n).resumeCommand)),J(e,r)}),N(n),J(e,n)},ge=e=>{J(e,Wl())};X(me,e=>{G(s).length?e(he):e(ge,-1)}),N(pe),N(l),H(()=>{C!==(C=t.selectedSkillProfile)&&(x.value=(x.__value=t.selectedSkillProfile)??``,pi(x,t.selectedSkillProfile)),ee!==(ee=t.sandbox)&&(w.value=(w.__value=t.sandbox)??``,pi(w,t.sandbox)),ie!==(ie=t.approvalPolicy)&&(te.value=(te.__value=t.approvalPolicy)??``,pi(te,t.approvalPolicy)),le.disabled=n().length===0,ue!==(ue=r())&&(le.value=(le.__value=r())??``,pi(le,r())),de.disabled=!G(c)||t.startingSession,Y(fe,t.startingSession?`Creating…`:`Create session`)}),Ar(`submit`,h,e=>{e.preventDefault(),t.onstart()}),K(`change`,x,e=>t.onskillprofilechange(e.currentTarget.value)),K(`change`,w,e=>t.onsandboxchange(e.currentTarget.value)),K(`change`,te,e=>t.onapprovalpolicychange(e.currentTarget.value)),K(`click`,k,e=>t.onmanageprofiles(e.currentTarget)),K(`change`,le,e=>i()(e.currentTarget.value)),J(e,l),Ze()}jr([`click`,`change`]);function ql(e){let t={};return e.workspaceId||(t.workspaceId=`Choose a workspace.`),e.profile||(t.profile=`Choose a profile.`),e.profile&&e.profileState&&e.profileState!==`ok`&&(t.profile=`Sign in to this profile before starting Codex.`),t}var Jl=class{transport;key;onChange;#e={starting:!1,error:null};#t=0;#n=!1;#r=null;constructor(e,t,n){this.transport=e,this.key=t,this.onChange=n}get state(){return this.#e}async start(e,t){if(this.#n||this.#e.starting||!e)return null;let n=++this.#t;this.#a({starting:!0,error:null});let r=this.#r??=this.key();try{let i=await this.transport.start(e,t,r);return this.#i(n)&&(this.#r=null),this.#i(n)?i:null}catch(e){return this.#i(n)&&this.#a({starting:!1,error:e instanceof Error?e.message:`Could not start session.`}),null}finally{this.#i(n)&&this.#a({...this.#e,starting:!1})}}dispose(){this.#n=!0,++this.#t}#i(e){return!this.#n&&e===this.#t}#a(e){this.#n||(this.#e=e,this.onChange(e))}};function Yl({chatEnabled:e}){return[`sessions`,`git`,...e?[`chat`]:[],`plan`]}function Xl(e,t,n={chatEnabled:!0}){let r=Yl(n);return r[(r.indexOf(e)+t+r.length)%r.length]}var Zl=q(`<nav class="bottom-navigation" aria-label="Primary"><button>Sess<wbr/>ions</button> <button>Git</button> <button>Chat</button> <button>Plan</button></nav>`);function Ql(e,t){Xe(t,!0);let n=$(t,`focusTab`,3,null),r=R({});An(()=>{n()&&r[n()]?.focus()});function i(e){let n=e.key===`ArrowRight`?1:e.key===`ArrowLeft`?-1:null;if(n===null)return;e.preventDefault();let i=Xl(t.activeTab,n,{chatEnabled:t.chatEnabled});t.onselect(i),r[i]?.focus()}var a=Zl(),o=z(a);ji(o,e=>r.sessions=e,()=>r?.sessions);var s=V(o,2);ji(s,e=>r.git=e,()=>r?.git);var c=V(s,2);ji(c,e=>r.chat=e,()=>r?.chat);var l=V(c,2);ji(l,e=>r.plan=e,()=>r?.plan),N(a),H(()=>{Q(o,`aria-pressed`,t.activeTab===`sessions`),Q(s,`aria-pressed`,t.activeTab===`git`),Q(c,`aria-pressed`,t.activeTab===`chat`),c.disabled=!t.chatEnabled,Q(l,`aria-pressed`,t.activeTab===`plan`)}),K(`keydown`,o,i),K(`click`,o,()=>t.onselect(`sessions`)),K(`keydown`,s,i),K(`click`,s,()=>t.onselect(`git`)),K(`keydown`,c,i),K(`click`,c,()=>t.onselect(`chat`,!0)),K(`keydown`,l,i),K(`click`,l,()=>t.onselect(`plan`)),J(e,a),Ze()}jr([`keydown`,`click`]);var $l=q(`<option> </option>`),eu=q(`<p id="skills-status" aria-live="polite">Loading skills…</p>`),tu=q(`<p id="skills-status">No skills were discovered for this workspace and Codex profile.</p>`),nu=q(`<p id="skills-status" class="notice svelte-dg6sjj" role="status"> </p>`),ru=q(`<p id="skills-status" class="error svelte-dg6sjj" role="alert"> </p>`),iu=q(`<p id="skills-status" class="error svelte-dg6sjj" role="alert" tabindex="-1"> </p>`),au=q(`<p id="skills-status" role="status">Profile saved.</p>`),ou=q(`<p id="skills-status" role="status">Profile deleted.</p>`),su=q(`<p class="svelte-dg6sjj"> </p>`),cu=q(`<li> </li>`),lu=q(`<dt class="svelte-dg6sjj">Tool dependencies</dt> <dd class="svelte-dg6sjj"><ul class="svelte-dg6sjj"></ul></dd>`,1),uu=q(`<li class="skill-card svelte-dg6sjj"><label class="skill-toggle svelte-dg6sjj"><input type="checkbox" class="svelte-dg6sjj"/> <span class="svelte-dg6sjj"> </span> <span class="state svelte-dg6sjj"> </span></label> <div class="skill-details svelte-dg6sjj"><!> <!> <dl class="svelte-dg6sjj"><dt class="svelte-dg6sjj">Path</dt> <dd class="path svelte-dg6sjj"> </dd> <!></dl></div></li>`),du=q(`<div class="skills-toolbar svelte-dg6sjj"><button type="button" class="refresh-skills svelte-dg6sjj" aria-label="Refresh skills"><span aria-hidden="true" class="svelte-dg6sjj">↻</span><span class="svelte-dg6sjj">Refresh</span></button> <p class="summary svelte-dg6sjj"> </p></div> <ul class="skill-list svelte-dg6sjj"></ul>`,1),fu=q(`<section class="skills-view svelte-dg6sjj" aria-labelledby="skills-title"><h2 id="skills-title"> </h2> <p class="intro svelte-dg6sjj">Create or edit a complete skills selection.</p> <form aria-describedby="skills-status" class="svelte-dg6sjj"><div class="field-grid svelte-dg6sjj"><label for="skills-existing-profile" class="svelte-dg6sjj">Skill profile</label> <select id="skills-existing-profile" class="svelte-dg6sjj"><option>New profile</option><option>Default</option><!></select> <label for="skills-save-as" class="svelte-dg6sjj">Save as</label> <input id="skills-save-as" name="save-as" autocomplete="off" class="svelte-dg6sjj"/></div> <p class="save-intent svelte-dg6sjj" aria-live="polite"> </p> <div class="profile-actions svelte-dg6sjj"><button type="button" class="svelte-dg6sjj">Delete profile</button> <button type="submit" class="svelte-dg6sjj"> </button></div></form> <dialog aria-labelledby="delete-profile-title" class="svelte-dg6sjj"><h3 id="delete-profile-title">Delete skill profile?</h3> <p> </p> <div class="dialog-actions svelte-dg6sjj"><button type="button" class="svelte-dg6sjj">Cancel</button> <button type="button" class="svelte-dg6sjj">Delete profile</button></div></dialog> <!> <!></section>`);function pu(e,t){Xe(t,!0);let n=$(t,`skillsState`,7),r=$(t,`heading`,3,`Manage skill profiles`),i=I(0),a=I(null),o=I(null),s=I(null),c=I(null),l=I(`__new__`),u=P(()=>(G(i),n())),d=P(()=>G(u).profiles.filter(e=>!(`error`in e)));function f(){n(Object.assign(Object.create(Object.getPrototypeOf(n())),n())),L(i,G(i)+1)}async function p(){await t.onrefresh(),f()}function m(e){L(l,e.currentTarget.value,!0),G(l)===`__new__`||G(l)===`__default__`?G(u).selectDefaultProfile():G(u).selectProfile(G(l)),f()}async function h(e){e.preventDefault(),await G(u).save(),f(),G(u).status.kind===`saved`&&(L(l,G(u).selectedProfileName,!0),t.onprofileschange()),G(u).status.kind===`save-failed`&&(await br(),G(a)?.focus())}function g(){G(c)?.showModal()}async function _(){G(c)?.close(),await G(u).deleteSelectedProfile(),f(),G(u).status.kind===`deleted`&&(L(l,`__new__`),t.onprofileschange()),await br(),G(o)?.focus()}async function v(){G(c)?.close(),await br(),G(s)?.focus()}function y(e){return e&&/^#[0-9a-f]{3,8}$/i.test(e)?e:void 0}function b(e){return e.replace(/^\/(?:home|Users)\/[^/]+(?=\/|$)/,`~`)}function x(e){let t=e.currentTarget.closest(`.skill-card`);requestAnimationFrame(()=>t?.scrollIntoView({block:`nearest`,inline:`nearest`}))}var S=fu(),C=z(S),w=z(C,!0);N(C);var T=V(C,4),E=z(T),D=V(z(E),2),ee=z(D);ee.value=ee.__value=`__new__`;var te=V(ee);te.value=te.__value=`__default__`,Z(V(te),17,()=>G(d),e=>e.name,(e,t)=>{var n=$l(),r=z(n,!0);N(n);var i={};H(()=>{Y(r,G(t).name),i!==(i=G(t).name)&&(n.value=(n.__value=G(t).name)??``)}),J(e,n)}),N(D),ji(D,e=>L(o,e),()=>G(o));var O=V(D,4);xi(O),N(E);var ne=V(E,2),re=z(ne,!0);N(ne);var ie=V(ne,2),ae=z(ie);ji(ae,e=>L(s,e),()=>G(s));var oe=V(ae,2),se=z(oe,!0);N(oe),N(ie),N(T);var k=V(T,2),ce=V(z(k),2),le=z(ce);N(ce);var ue=V(ce,2),de=z(ue),fe=V(de,2);N(ue),N(k),ji(k,e=>L(c,e),()=>G(c));var pe=V(k,2),me=e=>{J(e,eu())},he=e=>{J(e,tu())},ge=e=>{var t=nu(),n=z(t);N(t),H(()=>Y(n,`Discovery warning: ${G(u).status.message??``}`)),J(e,t)},_e=e=>{var t=ru(),n=z(t,!0);N(t),H(()=>Y(n,G(u).status.message)),J(e,t)},ve=e=>{var t=iu(),n=z(t,!0);N(t),ji(t,e=>L(a,e),()=>G(a)),H(()=>Y(n,G(u).status.message)),J(e,t)},ye=e=>{J(e,au())},be=e=>{J(e,ou())},xe=e=>{var t=ru(),n=z(t,!0);N(t),H(()=>Y(n,G(u).status.message)),J(e,t)};X(pe,e=>{G(u).status.kind===`loading`?e(me):G(u).status.kind===`empty`?e(he,1):G(u).status.kind===`warning`?e(ge,2):G(u).status.kind===`invalid-profile`||G(u).status.kind===`error`?e(_e,3):G(u).status.kind===`save-failed`?e(ve,4):G(u).status.kind===`saved`?e(ye,5):G(u).status.kind===`deleted`?e(be,6):G(u).status.kind===`delete-failed`&&e(xe,7)});var Se=V(pe,2),Ce=e=>{var t=du(),n=B(t),r=z(n),i=V(r,2),a=z(i);N(i),N(n);var o=V(n,2);Z(o,21,()=>G(u).skills,e=>e.path,(e,t)=>{var n=uu();let r;var i=z(n),a=z(i);xi(a);var o=V(a,2),s=z(o,!0);N(o);var c=V(o,2),l=z(c,!0);N(c),N(i);var d=V(i,2),p=z(d),m=e=>{var n=su(),r=z(n,!0);N(n),H(()=>Y(r,G(t).description)),J(e,n)};X(p,e=>{G(t).description&&e(m)});var h=V(p,2),g=e=>{var n=su(),r=z(n,!0);N(n),H(()=>Y(r,G(t).shortDescription)),J(e,n)};X(h,e=>{G(t).shortDescription&&e(g)});var _=V(h,2),v=V(z(_),2),S=z(v,!0);N(v);var C=V(v,2),w=e=>{var n=lu(),r=V(B(n),2),i=z(r);Z(i,21,()=>G(t).dependencies.tools,e=>`${e.type}:${e.value}`,(e,t)=>{var n=cu(),r=z(n);N(n),H(()=>Y(r,`${G(t).type??``}: ${G(t).value??``}${G(t).description?` — ${G(t).description}`:``}`)),J(e,n)}),N(i),N(r),J(e,n)};X(C,e=>{G(t).dependencies?.tools?.length&&e(w)}),N(_),N(d),N(n),H((e,o)=>{r=fi(n,``,r,e),Q(i,`for`,`skill-${G(t).path}`),Q(a,`id`,`skill-${G(t).path}`),Ci(a,G(t).enabled),Y(s,G(t).displayName??G(t).name),Y(l,G(t).enabled?`Enabled`:`Disabled`),Y(S,o)},[()=>({"--brand-color":y(G(t).brandColor)}),()=>b(G(t).path)]),Ar(`focus`,a,x),K(`change`,a,e=>{G(u).toggle(G(t).path,e.currentTarget.checked),f()}),J(e,n)}),N(o),H(()=>Y(a,`${G(u).enabledCount??``} of ${G(u).skills.length??``} skills enabled.`)),K(`click`,r,()=>void p()),J(e,t)};X(Se,e=>{G(u).skills.length>0&&e(Ce)}),N(S),H(()=>{Y(w,r()),Si(O,G(u).saveAsName),Y(re,G(u).saveIntent===`replace`?`Saved the selected profile.`:`Creating a new saved profile.`),ae.disabled=!G(u).selectedProfileName||G(u).status.kind===`deleting`,oe.disabled=G(u).status.kind===`saving`,Y(se,G(u).status.kind===`saving`?`Saving profile…`:`Save profile`),Y(le,`Delete ${G(u).selectedProfileName??``}? Existing sessions keep their saved skill set.`)}),Ar(`submit`,T,h),K(`change`,D,m),hi(D,()=>G(l),e=>L(l,e)),K(`input`,O,e=>{G(u).saveAsName=e.currentTarget.value,f()}),K(`click`,ae,g),K(`click`,de,()=>void v()),K(`click`,fe,()=>void _()),J(e,S),Ze()}jr([`change`,`input`,`click`]);var mu=class{client;workspaceId=``;codexProfile=``;selectedProfileName=``;saveAsName=``;source=`native`;skills=[];profiles=[];status={kind:`idle`};baseline=new Map;saving=!1;deleting=!1;request=null;generation=0;disposed=!1;constructor(e){this.client=e}get enabledCount(){return this.skills.filter(e=>e.enabled).length}get dirty(){return this.skills.some(e=>this.baseline.get(e.path)!==e.enabled)}get saveIntent(){return this.profiles.some(e=>!(`error`in e)&&e.name===this.saveAsName.trim())?`replace`:`create`}async load(e,t){let n=this.beginRequest(),r=this.generation;this.workspaceId=e,this.codexProfile=t,this.status={kind:`loading`};try{let[i,a]=await Promise.all([this.client.listAvailableSkills(e,t,!1,n.signal),this.client.listSkillProfiles(n.signal)]);if(!this.current(r,n))return;this.applyAvailable(i),this.profiles=a.profiles;let o=a.profiles.find(e=>`error`in e);o&&`error`in o?this.status={kind:`invalid-profile`,message:o.error.message}:i.errors.length?this.status={kind:`warning`,message:i.errors.map(e=>e.message).join(` `)}:this.status=this.skills.length?{kind:`ready`}:{kind:`empty`}}catch(e){if(!this.current(r,n)||n.signal.aborted)return;this.status={kind:`error`,message:hu(e)}}}async refresh(){let e=this.beginRequest(),t=this.generation;this.status={kind:`loading`};try{let n=await this.client.listAvailableSkills(this.workspaceId,this.codexProfile,!0,e.signal);if(!this.current(t,e))return;this.applyAvailable(n),this.status=n.errors.length?{kind:`warning`,message:n.errors.map(e=>e.message).join(` `)}:this.skills.length?{kind:`ready`}:{kind:`empty`}}catch(n){if(!this.current(t,e)||e.signal.aborted)return;this.status={kind:`error`,message:hu(n)}}}selectProfile(e){let t=this.profiles.find(t=>!(`error`in t)&&t.name===e);if(!t||`error`in t){this.status={kind:`invalid-profile`,message:`Select a valid saved profile.`};return}this.selectedProfileName=t.name,this.saveAsName=t.name;let n=new Map(t.skills.map(e=>[e.path,e.enabled]));this.skills=this.skills.map(e=>({...e,enabled:n.get(e.path)??!1})),this.captureBaseline(),this.status=this.skills.length?{kind:`ready`}:{kind:`empty`}}selectDefaultProfile(){this.selectedProfileName=``,this.saveAsName=``,this.skills=this.skills.map(e=>({...e,enabled:e.effectiveEnabled})),this.captureBaseline(),this.status=this.skills.length?{kind:`ready`}:{kind:`empty`}}toggle(e,t){this.skills=this.skills.map(n=>n.path===e?{...n,enabled:t}:n)}reset(){this.skills=this.skills.map(e=>({...e,enabled:this.baseline.get(e.path)??!1}))}async save(){let e=this.saveAsName.trim();if(this.saving||this.deleting)return;if(!e){this.status={kind:`save-failed`,message:`Enter a profile name before saving.`};return}this.saving=!0,this.status={kind:`saving`};let t=this.savePayload(e);try{let n=await this.client.replaceSkillProfile(e,t);this.profiles=[...this.profiles.filter(e=>`error`in e||e.name!==n.name),n].sort((e,t)=>e.name.localeCompare(t.name)),this.selectedProfileName=n.name,this.saveAsName=n.name,this.captureBaseline(),this.status={kind:`saved`}}catch(e){this.status={kind:`save-failed`,message:hu(e)}}finally{this.saving=!1}}async deleteSelectedProfile(){let e=this.selectedProfileName;if(!(this.saving||this.deleting)){if(!e){this.status={kind:`delete-failed`,message:`Select a saved profile before deleting.`};return}this.deleting=!0,this.status={kind:`deleting`};try{await this.client.deleteSkillProfile(e),this.profiles=this.profiles.filter(t=>`error`in t||t.name!==e),this.selectedProfileName=``,this.saveAsName=``,this.captureBaseline(),this.status={kind:`deleted`}}catch(e){this.status={kind:`delete-failed`,message:hu(e)}}finally{this.deleting=!1}}}dispose(){this.disposed=!0,++this.generation,this.request?.abort(),this.request=null}beginRequest(){return this.request?.abort(),this.request=new AbortController,++this.generation,this.request}current(e,t){return!this.disposed&&e===this.generation&&this.request===t}savePayload(e=this.saveAsName.trim()){return{version:1,name:e,skills:this.skills.map(({name:e,path:t,enabled:n})=>({name:e,path:t,enabled:n})).sort((e,t)=>e.path.localeCompare(t.path))}}applyAvailable(e){let t=new Map(this.skills.filter(e=>this.baseline.get(e.path)!==e.enabled).map(e=>[e.path,e.enabled]));this.source=e.source,this.skills=e.skills.map(e=>({...e,enabled:t.get(e.path)??e.effectiveEnabled})),this.baseline=new Map(e.skills.map(e=>[e.path,this.baseline.get(e.path)??e.effectiveEnabled]))}captureBaseline(){this.baseline=new Map(this.skills.map(e=>[e.path,e.enabled]))}};function hu(e){return e instanceof Error?e.message:`Unknown relay error.`}var gu=o(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),_u=o((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),vu=o((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),yu=o(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),bu=o(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),xu=o((e=>{var t=_u().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),Su=o((e=>{var t=_u().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),Cu=o((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),wu=o((e=>{var t=vu(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),Tu=o((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),Eu=o((e=>{var t=Tu();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),Du=o(((e,t)=>{var n=Eu();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),Ou=o((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),ku=o((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
|
|
15
15
|
]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),Au=o((e=>{var t=Ou(),n=ku();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),ju=o((e=>{var t=_u(),n=wu(),r=vu(),i=Au(),a=Ou(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),Mu=o((e=>{var t=_u(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),Nu=o(((e,t)=>{var n=Au();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),Pu=o(((e,t)=>{var n=Au(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),Fu=o(((e,t)=>{var n=Au();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),Iu=o(((e,t)=>{var n=Au(),r=_u();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
|
|
@@ -18,7 +18,7 @@ Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.expo
|
|
|
18
18
|
The chosen QR Code version cannot contain this amount of data.
|
|
19
19
|
Minimum version required to store current data is: `+c+`.
|
|
20
20
|
`);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)}})),Bu=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}}})),Vu=o((e=>{var t=Bu();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)}})),Hu=o((e=>{var t=Bu();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>
|
|
21
|
-
`;return typeof a==`function`&&a(null,p),p}})),Uu=c(o((e=>{var t=gu(),n=zu(),r=Vu(),i=Hu();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 Wu(e){return`${e.replace(/\/$/,``)}/?bootstrap=1`}async function Gu(e){return Uu.toDataURL(Wu(e),{errorCorrectionLevel:`M`,margin:1,width:256})}async function Ku(e){return Uu.toDataURL(e,{errorCorrectionLevel:`M`,margin:1,width:256})}var qu=q(`<p class="feedback svelte-1nygetn" role="status"> </p>`),Ju=q(`<span class="svelte-1nygetn">At least one authorized device is required.</span>`),Yu=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>`),Xu=q(`<ul aria-label="Authorized devices" class="svelte-1nygetn"></ul>`),Zu=q(`<p role="status" class="svelte-1nygetn">No authorized devices are available. Refresh this page before making changes.</p>`),Qu=q(`<button type="button" class="svelte-1nygetn">Create enrollment link</button>`),$u=q(`<img alt="QR code for the enrollment link" class="svelte-1nygetn"/>`),ed=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),td=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 nd(e,t){Xe(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 Ku(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 ee(){document.visibilityState===`visible`&&G(o)===`pending`&&G(p)>0?(b(),_()):g()}Mi(()=>{y(),document.addEventListener(`visibilitychange`,ee);let e=setInterval(()=>L(d,Date.now(),!0),1e3);return()=>clearInterval(e)}),Ni(()=>{g(),document.removeEventListener(`visibilitychange`,ee)});var te=td(),O=B(te),ne=z(O),re=z(ne);He(2),N(ne);var ie=V(ne,2),ae=e=>{var t=qu(),n=z(t,!0);N(t),H(()=>Y(n,G(i))),J(e,t)};X(ie,e=>{G(i)&&e(ae)});var oe=V(ie,2),se=e=>{var t=Xu();Z(t,21,()=>G(f),e=>e.id,(e,t)=>{var n=Yu(),r=z(n),i=z(r),a=V(i);xi(a);var o=V(a,2),s=z(o),c=V(s),l=e=>{var n=Rr();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,Rr(`· 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=Ju();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}`),Si(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()]),Ar(`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)},k=e=>{J(e,Zu())};X(oe,e=>{G(f).length?e(se):e(k,-1)});var ce=V(oe,2),le=V(z(ce),2),ue=e=>{var t=Qu();K(`click`,t,()=>void x()),J(e,t)},de=e=>{var t=ed(),r=B(t),i=z(r,!0);N(r);var c=V(r,2),l=e=>{var t=$u();H(()=>Q(t,`src`,G(s))),J(e,t)};X(c,e=>{G(s)&&e(l)});var u=V(c,3);bn(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)}.`),Si(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(le,e=>{G(a)?e(de,-1):e(ue)}),N(ce),N(O);var fe=V(O,2),pe=V(z(fe),4),me=V(z(pe));N(pe),N(fe),ji(fe,e=>L(c,e),()=>G(c)),K(`click`,re,function(...e){t.onclose?.apply(this,e)}),K(`click`,me,()=>void E()),J(e,te),Ze()}jr([`click`]);async function rd(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 id(e){return{list:()=>rd(e(`/api/auth/devices`,{credentials:`same-origin`})),rename:(t,n)=>rd(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`PATCH`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify({nickname:n})})),revoke:t=>rd(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`DELETE`,credentials:`same-origin`})),createTicket:()=>rd(e(`/api/auth/enrollment-tickets`,{method:`POST`,credentials:`same-origin`})),ticketStatus:()=>rd(e(`/api/auth/enrollment-tickets/current`,{credentials:`same-origin`})),cancelTicket:()=>rd(e(`/api/auth/enrollment-tickets/current`,{method:`DELETE`,credentials:`same-origin`}))}}var ad=`gestalt-mobile.scratchpad`;function od(){try{return window.localStorage}catch{return null}}function sd(e){try{return e?.getItem(`gestalt-mobile.scratchpad`)??``}catch{return``}}function cd(e,t){try{return e?(e.setItem(ad,t),!0):!1}catch{return!1}}function ld(e){try{return e?(e.removeItem(ad),!0):!1}catch{return!1}}var ud=q(`<p class="feedback svelte-eu5bnq" role="status"> </p>`),dd=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>`),fd=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>`),pd=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 md(e,t){Xe(t,!0);let n=$(t,`storage`,19,od),r=$(t,`clipboard`,19,()=>globalThis.navigator?.clipboard),i=I(null),a=I(null),o=I(null),s=I(``),c=I(!1),l=I(``);Mi(async()=>{L(s,sd(n()),!0),await br(),G(i)?.showModal(),G(a)?.focus()});function u(e){L(s,e,!0),L(l,cd(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 br();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 br(),G(o)?.focus()}function p(){L(c,!1),G(a)?.focus()}function m(){if(!ld(n())){L(l,`This browser could not clear its saved scratchpad.`);return}L(s,``),L(c,!1),L(l,``),G(a)?.focus()}var h=pd(),g=z(h),_=z(g),v=V(z(_),2);N(_);var y=V(_,4);bn(y),ji(y,e=>L(a,e),()=>G(a));var b=V(y,2),x=e=>{var t=ud(),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=dd(),n=V(z(t),4),r=z(n);ji(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=fd(),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),ji(h,e=>L(i,e),()=>G(i)),H(()=>Si(y,G(s))),Ar(`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),Ze()}jr([`click`,`input`]);var hd=q(`<main class="evidence-mode svelte-1d2e8zz"><!></main>`),gd=q(`<div class="recovery-notice" role="status" aria-live="polite" aria-atomic="true"><span> </span> <button type="button">Dismiss</button></div>`),_d=q(`<!> <!> <div class="chat-tail svelte-1d2e8zz" aria-hidden="true"></div>`,1),vd=q(`<p>Start a session from the Sessions tab to chat with Codex.</p>`),yd=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>`),bd=q(`<p>Loading skill profiles…</p>`),xd=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>`),Sd=q(`<!> <!> <!>`,1),Cd=q(`<main class="swipe-surface svelte-1d2e8zz"><!> <!></main> <!>`,1),wd=q(`<!> <!>`,1);function Td(e,t){Xe(t,!0);let n=$(t,`oncreatepasskey`,3,()=>{}),r=I(null),i=I(`sessions`),a=I(!1),o=I(!1),s=I(`Loading relay…`),c=I(R(Cr(()=>t.theme))),l=I(R([])),u=`gpt-5.6-terra`,d=I([u]),f=I(u),p=I([]),m=I(null),h=I(`list`),g=I([]),_=I(``),v=I(``),y=I(``),b=I(R(new Set)),x=I(null),S=I(R([])),C=P(()=>G(S).some(e=>e.id===G(x))),w=I(R([])),T=I(`workspace-write`),E=I(`on-request`),D=I(R({starting:!1,error:null})),ee=P(()=>G(D).starting),te=I(null),O=0,ne=I(null),re=I(null),ie=I(null),ae=I(``),oe=I(R({kind:`unavailable`,sessionId:null})),se=I({kind:`no-workspace`}),k=I(null),ce=I(null),le=I(!1),ue=null,de=null,fe=0,pe=0,me=I(null),he=I(``),ge=P(()=>(G(S).find(e=>e.id===G(x))?.workspaceId??G(y))||null),_e=P(()=>G(k)?{kind:`ready`,sessionId:`catalog`,plan:G(k)}:G(le)?null:G(oe).kind===`ready`||G(oe).kind===`closing`||G(oe).kind===`error`&&G(oe).plan?G(oe):null),ve=P(()=>Gc(G(oe).kind===`ready`||G(oe).kind===`closing`||G(oe).kind===`error`?G(oe).plan:void 0)),ye=I(R({workspaceId:null,summary:null,loading:!1,refreshing:!1,checkingOut:!1,error:null})),be=P(()=>G(ye).workspaceId),xe=I(R(new Set)),Se=I(!1),Ce=I(!1),we=I(null),Te=I(null),Ee=I(null),De=R({}),Oe=I(null),ke=``,Ae=new Ls({requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e),reducedMotion:()=>window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,scrollTail:e=>G(Oe)?.scrollIntoView({block:`end`,behavior:e})}),je=new Rs(e=>void br().then(e),e=>{G(i)===`chat`&&Ae.request(e)}),Me=P(()=>{let e=G(r)?.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===`answered`?`Answers sent.`:`Decision approved.`:``:``}),Ne=Mc((e,n)=>t.authorizedFetch(e,n)),A=new Is({relay:Ne,cache:as(),publish:e=>L(r,e,!0),onSessionEvent:e=>Rt(e),onHistoryError:e=>{L(s,Lt(e,`SESSION_HISTORY_READ_FAILED`),!0)},onSendError:(e,t)=>{let n=Bs(e,`MESSAGE_SEND_FAILED`);L(ne,n.message,!0),L(re,n.retryable?t:null,!0),L(s,Lt(e,`MESSAGE_SEND_FAILED`),!0)},onSendAccepted:e=>{G(re)===e&&(L(ne,null),L(re,null))}}),Pe=new Jl({start:Ne.startSession},os,e=>L(D,e,!0)),Fe=new Ec({getSummary:Ne.getGitSummary,pull:Ne.pullGit,checkout:Ne.checkoutGitBranch},e=>!!ec(G(l),e)?.isGitRepository,e=>L(ye,e,!0),(e,t)=>Lt(e,t)),Ie=id((e,n)=>t.authorizedFetch(e,n)),Le=Wc({getPlan:Ne.getPlan,closePlan:Ne.closePlan},e=>L(oe,e,!0)),Re=wl(),j=Hs(),ze=new URLSearchParams(location.search).get(`tree-evidence`),M=new URLSearchParams(location.search).get(`toast-evidence`);function Be(){L(o,!0)}function Ve(){L(o,!1),br().then(()=>document.querySelector(`.menu-trigger`)?.focus())}Mi(async()=>{if(!(ze===`sessions`||ze===`git`||M===`error`||M===`stacked`))try{let e=await Jo(t.authorizedFetch);L(y,tc(G(y)||null,G(l),e.workspaces,Ys.sessionBase)??``,!0),L(l,e.workspaces,!0),L(p,e.profiles),L(d,[...new Set([u,...e.models??[]])]),await bt(),L(b,Xs(G(l)),!0),L(xe,Xs(G(l)),!0);let n=await Re.readSelectedSession();L(x,e.sessions.some(e=>e.id===n)?n:e.sessions[0]?.id??null,!0),G(x)&&L(ae,await Re.readDraft(G(x)),!0),L(S,e.sessions,!0),qe(),Le.select(G(x)),G(x)&&A.select(G(x))}catch(e){L(s,Lt(e,`RELAY_UNAVAILABLE`),!0)}}),An(()=>{if(!G(Oe))return;let e=new IntersectionObserver(([e])=>Ae.observeTail(e?.isIntersecting??!1),{root:null});return e.observe(G(Oe)),()=>e.disconnect()}),An(()=>{let e=G(r),t=G(i),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===ke||(ke=n,t===`chat`&&He(`content`))});function He(e){je.schedule(e)}function Ue(){je.invalidate(),Ae.reset(),L(i,`chat`),wt(`chat`),He(`initial`)}function We(e){L(c,Ki(e),!0)}Ni(()=>{je.invalidate(),Ae.cancel(),A.dispose(),Le.dispose(),Fe.dispose(),Pe.dispose(),G(m)?.dispose()});async function Ge(){if(!G(y)||G(ee))return;let e=ql({workspaceId:G(y),profile:`default`,profileState:`ok`});if(e.profile){L(s,e.profile,!0);return}L(s,`Starting session…`);let t=await Pe.start(G(y),{sandbox:G(T),approvalPolicy:G(E),model:G(f),skillProfile:G(_)||void 0});if(!t){G(D).error&&L(s,Lt(Error(G(D).error),`SESSION_START_FAILED`),!0);return}try{L(x,t.id,!0),Le.select(t.id),Re.saveSelectedSession(t.id),await Ke(),L(ae,await Re.readDraft(t.id),!0),A.select(t.id),Ue(),L(s,`Session started.`)}catch(e){L(s,Lt(e,`SESSION_START_FAILED`),!0)}}async function Ke(){L(S,await Ne.listSessions(),!0)}async function qe(){try{L(w,await Ne.listRecentSessions(),!0)}catch{L(w,[],!0)}}async function Je(){try{await Promise.all([Ke(),qe()])}catch(e){L(s,Lt(e,`SESSION_REFRESH_FAILED`),!0)}}async function Ye(e){L(s,`Opening session…`),L(te,e,!0);let t=++O;try{L(x,e,!0),L(ne,null),L(re,null),Le.select(e),Re.saveSelectedSession(e),A.select(e),Ue();let n=await Re.readDraft(e);t===O&&G(x)===e&&L(ae,n,!0)}catch(e){L(s,Lt(e,`SESSION_HISTORY_READ_FAILED`),!0)}finally{t===O&&L(te,null)}}async function Qe(e){L(s,`Opening recent session…`);try{let t=await Ne.openRecentSession(e.id,e.cwd);G(S).some(e=>e.id===t.id)||L(S,[...G(S),t],!0),Je(),await Ye(t.id)}catch(e){L(s,Lt(e,`SESSION_HISTORY_READ_FAILED`),!0)}}async function $e(e){L(s,`Closing session…`);try{await Ne.releaseSession(e),G(x)===e&&(L(x,null),L(i,`sessions`),Re.saveSelectedSession(null),A.select(null),Le.select(null)),await Je(),L(s,`Session closed.`)}catch(e){L(s,`Could not close session: ${It(e)}`)}}async function et(e){let t=G(S).find(t=>t.id===e);try{await Ne.forgetSession(e),G(x)===e&&(A.select(null),L(x,null),Re.saveSelectedSession(null),Le.select(null)),await Je(),L(w,Ol(G(w),t),!0)}catch(e){L(s,`Could not forget session: ${It(e)}`)}}async function tt(e){L(s,await Nc(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function nt(e){if(!(!G(x)||G(r)?.activeTurnId))try{let t=await Ne.selectModel(G(x),e);L(S,G(S).map(e=>e.id===t.id?{...e,...t}:e),!0),L(ae,``),L(s,`Model changed to ${e}; it applies to the next turn.`)}catch(e){L(s,`Could not change model: ${It(e)}`)}}async function rt(){let e=os();A.send(G(ae),e),L(ae,``),He(`explicit`),G(x)&&Re.saveDraft(G(x),``)}async function it(){G(re)&&(L(ne,null),await A.retryPrompt(G(re)))}async function at(){await A.interrupt()}function ot(){G(i)===`chat`&&G(x)&&A.refresh()}function st(e,t=!1){if(e===`chat`&&!G(C))return;let n=G(i)!==e;G(i)===`chat`&&e!==`chat`&&(je.invalidate(),Ae.cancel()),L(i,e,!0),wt(e),e===`chat`&&(ot(),Ae.reset(),He(`initial`),n&&t&&Tt()),e===`git`&&G(be)&&Fe.refresh(),e===`plan`&&(G(x)&&Le.refresh(G(x)),n||vt()),e===`sessions`&&(G(h)===`profile-manager`&&Ct(!1),Je())}An(()=>{let e=G(ge);G(i)===`plan`&&ht(e)});let ct=!1;function lt(){document.visibilityState!==`visible`||ct||(ct=!0,queueMicrotask(()=>{ct=!1,document.visibilityState===`visible`&&(G(i)===`git`&&G(be)&&Fe.refresh(),G(i)===`plan`&&vt())}))}let ut=null;function dt(e){return e instanceof Element&&e.closest(`button, input, textarea, select, a, summary, [contenteditable]`)!==null}function ft(e){e.pointerType!==`touch`||dt(e.target)||(ut={pointerId:e.pointerId,x:e.clientX,y:e.clientY})}function pt(e){if(!ut||e.pointerId!==ut.pointerId)return;let t=ut;ut=null;let n=e.clientX-t.x,r=e.clientY-t.y;Math.abs(n)<48||Math.abs(n)<=Math.abs(r)||st(Xl(G(i),n<0?1:-1,{chatEnabled:G(C)}))}function mt(e){ut?.pointerId===e.pointerId&&(ut=null)}function ht(e=G(ge)){if(ue?.abort(),de?.abort(),L(k,null),L(ce,null),!e){L(se,{kind:`no-workspace`});return}let t=new AbortController;ue=t;let n=++fe;L(se,{kind:`loading`,workspaceId:e}),Ne.listWorkspacePlans(e,t.signal).then(r=>{n!==fe||t.signal.aborted||L(se,{kind:`ready`,workspaceId:e,entries:r})}).catch(r=>{n!==fe||t.signal.aborted||L(se,{kind:`error`,workspaceId:e,error:r instanceof Error?r.message:`Could not load workspace plans.`})})}function gt(e){let t=G(ge);if(!t)return;de?.abort();let n=new AbortController;de=n;let r=++pe;Ne.getWorkspacePlan(t,e,n.signal).then(t=>{r!==pe||n.signal.aborted||(L(k,t),L(ce,e,!0),L(le,!1))}).catch(e=>{r!==pe||n.signal.aborted||L(se,{kind:`error`,workspaceId:t,error:e instanceof Error?e.message:`Could not open this plan.`})})}function _t(){L(k,null),L(ce,null),L(le,!0),ht()}function vt(){G(x)&&Le.refresh(G(x)),G(ce)?gt(G(ce)):ht()}async function yt(e,t){let n=new mu(Ne);await n.load(e,t),L(m,n,!0)}async function bt(){try{let e=await Ne.listSkillProfiles();L(g,e.profiles.filter(e=>!(`error`in e)));let t=e.profiles.find(e=>`error`in e);L(v,t&&`error`in t?t.error.message:``,!0),G(g).some(e=>e.name===G(_))||L(_,``)}catch(e){L(g,[]),L(v,e instanceof Error?e.message:`Unable to load saved skill profiles.`,!0)}}async function xt(e){let t=G(y)||G(l)[0]?.id||``,n=G(p).find(e=>e.state===`ok`)?.name??``;if(!t||!n){L(s,`Choose a workspace and available Codex profile before managing skill profiles.`);return}await yt(t,n),L(h,`profile-manager`)}function St(e){queueMicrotask(()=>e.focus())}async function Ct(e=!0){L(h,`list`),await br(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function wt(e){requestAnimationFrame(()=>{G(i)===e&&e!==`chat`&&window.scrollTo({top:0})})}function Tt(){window.matchMedia(`(min-width: 48rem)`).matches&&br().then(()=>{G(i)===`chat`&&document.getElementById(`message`)?.focus()})}function Et(e){Fe.select(e.id),L(Se,!1)}async function Dt(){let e=G(be);!e||!ec(G(l),e)?.isGitRepository||(L(Te,G(Te)??os(),!0),await Fe.pull(G(Te)),G(ye).error||L(Te,null))}async function Ot(e){if(G(Ce))return;let n=G(be)?ec(G(l),G(be)):void 0;if(!n||n.isGitRepository){L(we,null),j.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let r=n.id;L(Ce,!0),L(we,null);try{await Ne.cloneGitRepository(r,e);let n=await Jo(t.authorizedFetch),i=Dc(G(l),n.workspaces,r,e,G(xe));L(y,tc(G(y)||null,G(l),n.workspaces,Ys.sessionBase)??``,!0),L(l,n.workspaces,!0),Fe.select(i.selectedId),L(xe,i.expandedIds,!0),L(we,`Repository cloned into the selected workspace.`),j.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){Lt(e,`GIT_CLONE_FAILED`)}finally{L(Ce,!1)}}async function kt(e){G(be)&&await Fe.checkout(e)}async function F(){let e=G(be);if(e){L(Ee,G(Ee)??os(),!0);try{await Ne.pushGit(e,G(Ee)),L(Se,!1),await Fe.refresh(),L(Ee,null)}catch(e){Lt(e,`GIT_PUSH_FAILED`)}}}async function At(e,t){He(`explicit`),await A.respond(e,{decision:t})}async function jt(e){He(`explicit`);let t=e.kind===`quiz`?Ia(e.payload):La(e.payload);if(!t)return;let n=t.questions.map(t=>({id:t.id,answer:De[`${e.requestId}:${t.id}`]??``})),r=e.kind===`quiz`?Ra(n):jc(n);try{await A.respond(e.requestId,r)}catch{L(s,`Could not send quiz answers. Please try again.`)}}async function Mt(e){let t=Ac(e.payload);if(!t){L(s,`Codex sent an invalid permission request.`);return}He(`explicit`),await A.respond(e.requestId,t)}function Nt(e){e.kind===`quiz`||e.kind===`userInput`?jt(e):e.kind===`permissionsApproval`?Mt(e):A.retryInteraction(e.requestId)}function Pt(e,t,n){De[`${e}:${t}`]=n}function Ft(e){L(ae,e,!0),G(x)&&Re.saveDraft(G(x),e)}function It(e){return e instanceof Error?e.message:`Unknown relay error.`}function Lt(e,t){let n=Bs(e,t);return j.enqueue({kind:`error`,...n}),n.message}function Rt(e){let t=G(x);if(!t)return;if(e.type===`session.updated`&&typeof e.payload==`object`&&e.payload!==null){let n=e.payload;n.id===t&&L(S,G(S).map(e=>e.id===t?{...e,...n}:e),!0);return}if(e.type!==`plan.updated`&&e.type!==`plan.closed`||(Le.applyEvent(t,e),e.type!==`plan.updated`||!Rc(e.payload)))return;let n=e.payload.reason;if(!n||![`authoring-start`,`work-start`,`supervision-start`,`resync`].includes(n))return;let r=`${t}:${e.sequence}`;r!==G(he)&&(L(he,r),L(i,`plan`),wt(`plan`))}var zt=wd();ei(`1d2e8zz`,e=>{Nn(()=>{cn.title=`Gestalt Mobile`})}),Ar(`focus`,sn,lt),Ar(`visibilitychange`,cn,lt);var Bt=B(zt),Vt=e=>{Js(e,{get variant(){return M}})},Ht=e=>{var t=hd();uc(z(t),{get context(){return ze}}),N(t),J(e,t)},Ut=e=>{var p=Cd(),D=B(p),O=z(D),oe=e=>{{let n=P(()=>G(i)===`chat`?kl(G(S).find(e=>e.id===G(x))?.workspacePath??``):null),r=P(()=>G(i)===`chat`?G(S).find(e=>e.id===G(x))?.model??u:null);$i(e,{get theme(){return G(c)},get sessionPath(){return G(n)},get sessionModel(){return G(r)},get weeklyQuotaRemaining(){return G(ve)},get passkeyAuthEnabled(){return t.passkeyAuthEnabled},get onlock(){return t.onlock},ondevices:()=>L(a,!0),onscratchpad:Be,onthemechange:We})}};X(O,e=>{G(a)||e(oe)});var k=V(O,2),ce=e=>{nd(e,{get client(){return Ie},onclose:()=>{L(a,!1),br().then(()=>document.querySelector(`.menu-trigger`)?.focus())},get onlock(){return t.onlock},oncreatepasskey:e=>n()(e)})},le=e=>{var t=Sd(),n=B(t),a=e=>{var t=gd(),n=z(t),r=z(n,!0);N(n);var i=V(n,2);N(t),H(()=>Y(r,G(ie))),K(`click`,i,()=>L(ie,null)),J(e,t)};X(n,e=>{G(ie)&&e(a)});var o=V(n,2),c=e=>{var t=yd(),n=V(z(t),2),i=z(n,!0);N(n);var a=V(n,2),o=e=>{var t=_d(),n=B(t);{let e=P(()=>G(r)?[...G(r).messages]:[]),t=P(()=>G(r)?[...G(r).activities]:[]),i=P(()=>G(r)?.activeTurnId??null),a=P(()=>G(r)?[...G(r).interactions]:[]);Wo(n,{get messages(){return G(e)},get activities(){return G(t)},get activeTurnId(){return G(i)},get interactions(){return G(a)},get answers(){return De},onanswer:Pt,onquiz:e=>void jt(e),onpermission:e=>void Mt(e),ondecision:(e,t)=>void At(e,t),onretry:Nt})}var i=V(n,2);{let e=P(()=>G(r)?.status??G(s)),t=P(()=>G(r)?.activeTurnId??null),n=P(()=>G(r)?.starting??!1),a=P(()=>!!(G(S).find(e=>e.id===G(x))&&![`ready`,`turnActive`].includes(G(S).find(e=>e.id===G(x))?.state??``))),o=P(()=>G(re)!==null);Ea(i,{get status(){return G(e)},get message(){return G(ae)},get activeTurnId(){return G(t)},get starting(){return G(n)},get detached(){return G(a)},get retryMessage(){return G(ne)},get retryable(){return G(o)},get models(){return G(d)},onchange:Ft,onscrollbottom:()=>He(`explicit`),onmodelselect:e=>void nt(e),onsend:()=>void rt(),onretry:()=>void it(),oninterrupt:()=>void at()})}ji(V(i,2),e=>L(Oe,e),()=>G(Oe)),J(e,t)},c=e=>{J(e,vd())};X(a,e=>{G(x)?e(o):e(c,-1)}),N(t),H(()=>Y(i,G(Me))),J(e,t)},u=e=>{yl(e,{get catalog(){return G(se)},get state(){return G(_e)},onopen:gt,onclose:_t})},p=e=>{{let t=P(()=>G(be)?ec(G(l),G(be))??null:null);Tc(e,{get workspaceTree(){return G(l)},get selectedWorkspace(){return G(t)},get expandedIds(){return G(xe)},get summary(){return G(ye).summary},get refreshing(){return G(ye).refreshing},get checkingOut(){return G(ye).checkingOut},get cloning(){return G(Ce)},get error(){return G(ye).error},get cloneStatus(){return G(we)},get confirmingPush(){return G(Se)},onpull:()=>void Dt(),oncheckout:e=>void kt(e),onopenpushconfirmation:()=>L(Se,!0),onpush:()=>void F(),oncancelpush:()=>L(Se,!1),onselect:Et,onexpandedchange:e=>L(xe,e,!0),onclone:e=>void Ot(e)})}},D=e=>{var t=zr(),n=B(t),r=e=>{var t=xd(),n=z(t),r=z(n);ti(r,()=>St);var i=V(r,2);N(n);var a=V(n,2),o=e=>{pu(e,{get skillsState(){return G(m)},onrefresh:()=>G(m)?.refresh()??Promise.resolve(),onprofileschange:()=>void bt(),heading:`Skill profile editor`})},s=e=>{J(e,bd())};X(a,e=>{G(m)?e(o):e(s,-1)}),N(t),K(`click`,i,()=>void Ct()),J(e,t)},i=e=>{Kl(e,{get sessions(){return G(S)},get recentSessions(){return G(w)},get selectedSessionId(){return G(x)},get workspaceTree(){return G(l)},get workspaceId(){return G(y)},get expandedIds(){return G(b)},get sandbox(){return G(T)},get approvalPolicy(){return G(E)},get models(){return G(d)},get selectedModel(){return G(f)},get skillProfiles(){return G(g)},get selectedSkillProfile(){return G(_)},get skillProfileError(){return G(v)},get startingSession(){return G(ee)},get openingSessionId(){return G(te)},onworkspacechange:e=>L(y,e,!0),onexpandedchange:e=>L(b,e,!0),onsandboxchange:e=>L(T,e,!0),onapprovalpolicychange:e=>L(E,e,!0),onmodelchange:e=>L(f,e,!0),onskillprofilechange:e=>L(_,e,!0),onmanageprofiles:e=>void xt(e),onopen:Ye,onselectopen:Ye,onclose:e=>void $e(e),onopenrecent:e=>void Qe(e),onforget:e=>void et(e),oncopyresume:e=>void tt(e),onstart:()=>void Ge()})};X(n,e=>{G(h)===`profile-manager`?e(r):e(i,-1)}),J(e,t)};X(o,e=>{G(i)===`chat`?e(c):G(i)===`plan`?e(u,1):G(i)===`git`?e(p,2):e(D,-1)}),Ql(V(o,2),{get activeTab(){return G(i)},get chatEnabled(){return G(C)},get focusTab(){return G(me)},onselect:st}),J(e,t)};X(k,e=>{G(a)&&t.passkeyAuthEnabled?e(ce):e(le,-1)}),N(D);var ue=V(D,2),de=e=>{md(e,{onclose:Ve})};X(ue,e=>{G(o)&&e(de)}),K(`pointerdown`,D,ft),K(`pointerup`,D,pt),Ar(`pointercancel`,D,mt),J(e,p)};X(Bt,e=>{M===`error`||M===`stacked`?e(Vt):ze===`sessions`||ze===`git`?e(Ht,1):e(Ut,-1)});var Wt=V(Bt,2),Gt=e=>{Ks(e,{get queue(){return j}})};X(Wt,e=>{M!==`error`&&M!==`stacked`&&e(Gt)}),J(e,zt),Ze()}jr([`pointerdown`,`pointerup`,`click`]);function Ed(){throw Error(`AUTH_RESPONSE_INVALID`)}async function Dd(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 Od(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 kd(e){return!!e&&typeof e==`object`&&!!e.options&&typeof e.options.challenge==`string`}function Ad(e){return!!e&&typeof e==`object`&&e.status===`authenticated`}function jd(e=fetch){async function t(){let t=await Dd(await e(`/api/auth/status`,{credentials:`same-origin`}));return Od(t)||Ed(),t}async function n(t,n={}){let r=await Dd(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return kd(r)||Ed(),r}async function r(t,n){let r=await Dd(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return Ad(r)||Ed(),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 Md(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 Nd(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 Pd(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 Fd(){return Id.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential==`function`)}var Id={stubThis:e=>e};function Ld(e){let{id:t}=e;return{...e,id:Pd(t),transports:e.transports}}function Rd(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 zd=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 Bd({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 zd({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 zd({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 zd({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 zd({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 zd({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new zd({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 zd({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new zd({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(!Rd(t))return new zd({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new zd({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 zd({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 zd({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 Vd=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}}},Hd=[`cross-platform`,`platform`];function Ud(e){if(e&&!(Hd.indexOf(e)<0))return e}async function Wd(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(!Fd())throw Error(`WebAuthn is not supported in this browser`);let r={...t,challenge:Pd(t.challenge),user:{...t.user,id:Pd(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ld)},i={};n&&(i.mediation=`conditional`),i.publicKey=r,i.signal=Vd.createNewAbortSignal();let a;try{a=await navigator.credentials.create(i)}catch(e){throw Bd({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){Gd(`getPublicKeyAlgorithm()`,e)}let f;if(typeof c.getPublicKey==`function`)try{let e=c.getPublicKey();e!==null&&(f=Nd(e))}catch(e){Gd(`getPublicKey()`,e)}let p;if(typeof c.getAuthenticatorData==`function`)try{p=Nd(c.getAuthenticatorData())}catch(e){Gd(`getAuthenticatorData()`,e)}return{id:o,rawId:Nd(s),response:{attestationObject:Nd(c.attestationObject),clientDataJSON:Nd(c.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:p},type:l,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:Ud(a.authenticatorAttachment)}}function Gd(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 Kd(){if(!Fd())return qd.stubThis(new Promise(e=>e(!1)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?qd.stubThis(new Promise(e=>e(!1))):qd.stubThis(e.isConditionalMediationAvailable())}var qd={stubThis:e=>e};function Jd({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 zd({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new zd({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!Rd(t))return new zd({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new zd({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 zd({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 Yd(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(!Fd())throw Error(`WebAuthn is not supported in this browser`);let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(Ld));let a={...t,challenge:Pd(t.challenge),allowCredentials:i},o={};if(n){if(!await Kd())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=Vd.createNewAbortSignal();let s;try{s=await navigator.credentials.get(o)}catch(e){throw Jd({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=Nd(u.userHandle)),{id:c,rawId:Nd(l),response:{authenticatorData:Nd(u.authenticatorData),clientDataJSON:Nd(u.clientDataJSON),signature:Nd(u.signature),userHandle:f},type:d,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:Ud(s.authenticatorAttachment)}}function Xd(e){return typeof e==`object`&&e?e:{}}function Zd(e){let t=Xd(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 Zd(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 Qd(){return typeof window<`u`&&window.isSecureContext&&window.PublicKeyCredential!==void 0}function $d(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(!Qd()){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 ef=q(`<p class="warning svelte-1c5qcm6">This one-time link authorizes one new passkey. Choose a nickname and complete the passkey
|
|
21
|
+
`;return typeof a==`function`&&a(null,p),p}})),Uu=c(o((e=>{var t=gu(),n=zu(),r=Vu(),i=Hu();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 Wu(e){return`${e.replace(/\/$/,``)}/?bootstrap=1`}async function Gu(e){return Uu.toDataURL(Wu(e),{errorCorrectionLevel:`M`,margin:1,width:256})}async function Ku(e){return Uu.toDataURL(e,{errorCorrectionLevel:`M`,margin:1,width:256})}var qu=q(`<p class="feedback svelte-1nygetn" role="status"> </p>`),Ju=q(`<span class="svelte-1nygetn">At least one authorized device is required.</span>`),Yu=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>`),Xu=q(`<ul aria-label="Authorized devices" class="svelte-1nygetn"></ul>`),Zu=q(`<p role="status" class="svelte-1nygetn">No authorized devices are available. Refresh this page before making changes.</p>`),Qu=q(`<button type="button" class="svelte-1nygetn">Create enrollment link</button>`),$u=q(`<img alt="QR code for the enrollment link" class="svelte-1nygetn"/>`),ed=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),td=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 nd(e,t){Xe(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 Ku(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 ee(){document.visibilityState===`visible`&&G(o)===`pending`&&G(p)>0?(b(),_()):g()}Mi(()=>{y(),document.addEventListener(`visibilitychange`,ee);let e=setInterval(()=>L(d,Date.now(),!0),1e3);return()=>clearInterval(e)}),Ni(()=>{g(),document.removeEventListener(`visibilitychange`,ee)});var te=td(),O=B(te),ne=z(O),re=z(ne);He(2),N(ne);var ie=V(ne,2),ae=e=>{var t=qu(),n=z(t,!0);N(t),H(()=>Y(n,G(i))),J(e,t)};X(ie,e=>{G(i)&&e(ae)});var oe=V(ie,2),se=e=>{var t=Xu();Z(t,21,()=>G(f),e=>e.id,(e,t)=>{var n=Yu(),r=z(n),i=z(r),a=V(i);xi(a);var o=V(a,2),s=z(o),c=V(s),l=e=>{var n=Rr();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,Rr(`· 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=Ju();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}`),Si(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()]),Ar(`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)},k=e=>{J(e,Zu())};X(oe,e=>{G(f).length?e(se):e(k,-1)});var ce=V(oe,2),le=V(z(ce),2),ue=e=>{var t=Qu();K(`click`,t,()=>void x()),J(e,t)},de=e=>{var t=ed(),r=B(t),i=z(r,!0);N(r);var c=V(r,2),l=e=>{var t=$u();H(()=>Q(t,`src`,G(s))),J(e,t)};X(c,e=>{G(s)&&e(l)});var u=V(c,3);bn(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)}.`),Si(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(le,e=>{G(a)?e(de,-1):e(ue)}),N(ce),N(O);var fe=V(O,2),pe=V(z(fe),4),me=V(z(pe));N(pe),N(fe),ji(fe,e=>L(c,e),()=>G(c)),K(`click`,re,function(...e){t.onclose?.apply(this,e)}),K(`click`,me,()=>void E()),J(e,te),Ze()}jr([`click`]);async function rd(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 id(e){return{list:()=>rd(e(`/api/auth/devices`,{credentials:`same-origin`})),rename:(t,n)=>rd(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`PATCH`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify({nickname:n})})),revoke:t=>rd(e(`/api/auth/devices/${encodeURIComponent(t)}`,{method:`DELETE`,credentials:`same-origin`})),createTicket:()=>rd(e(`/api/auth/enrollment-tickets`,{method:`POST`,credentials:`same-origin`})),ticketStatus:()=>rd(e(`/api/auth/enrollment-tickets/current`,{credentials:`same-origin`})),cancelTicket:()=>rd(e(`/api/auth/enrollment-tickets/current`,{method:`DELETE`,credentials:`same-origin`}))}}var ad=`gestalt-mobile.scratchpad`;function od(){try{return window.localStorage}catch{return null}}function sd(e){try{return e?.getItem(`gestalt-mobile.scratchpad`)??``}catch{return``}}function cd(e,t){try{return e?(e.setItem(ad,t),!0):!1}catch{return!1}}function ld(e){try{return e?(e.removeItem(ad),!0):!1}catch{return!1}}var ud=q(`<p class="feedback svelte-eu5bnq" role="status"> </p>`),dd=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>`),fd=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>`),pd=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 md(e,t){Xe(t,!0);let n=$(t,`storage`,19,od),r=$(t,`clipboard`,19,()=>globalThis.navigator?.clipboard),i=I(null),a=I(null),o=I(null),s=I(``),c=I(!1),l=I(``);Mi(async()=>{L(s,sd(n()),!0),await br(),G(i)?.showModal(),G(a)?.focus()});function u(e){L(s,e,!0),L(l,cd(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 br();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 br(),G(o)?.focus()}function p(){L(c,!1),G(a)?.focus()}function m(){if(!ld(n())){L(l,`This browser could not clear its saved scratchpad.`);return}L(s,``),L(c,!1),L(l,``),G(a)?.focus()}var h=pd(),g=z(h),_=z(g),v=V(z(_),2);N(_);var y=V(_,4);bn(y),ji(y,e=>L(a,e),()=>G(a));var b=V(y,2),x=e=>{var t=ud(),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=dd(),n=V(z(t),4),r=z(n);ji(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=fd(),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),ji(h,e=>L(i,e),()=>G(i)),H(()=>Si(y,G(s))),Ar(`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),Ze()}jr([`click`,`input`]);var hd=q(`<main class="evidence-mode svelte-1d2e8zz"><!></main>`),gd=q(`<div class="recovery-notice" role="status" aria-live="polite" aria-atomic="true"><span> </span> <button type="button">Dismiss</button></div>`),_d=q(`<!> <!> <div class="chat-tail svelte-1d2e8zz" aria-hidden="true"></div>`,1),vd=q(`<p>Start a session from the Sessions tab to chat with Codex.</p>`),yd=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>`),bd=q(`<p>Loading skill profiles…</p>`),xd=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>`),Sd=q(`<!> <!> <!>`,1),Cd=q(`<main class="swipe-surface svelte-1d2e8zz"><!> <!></main> <!>`,1),wd=q(`<!> <!>`,1);function Td(e,t){Xe(t,!0);let n=$(t,`oncreatepasskey`,3,()=>{}),r=I(null),i=I(`sessions`),a=I(!1),o=I(!1),s=I(`Loading relay…`),c=I(R(Cr(()=>t.theme))),l=I(R([])),u=`gpt-5.6-terra`,d=I([u]),f=I(u),p=I([]),m=I(null),h=I(`list`),g=I([]),_=I(``),v=I(``),y=I(``),b=I(R(new Set)),x=I(null),S=I(R([])),C=P(()=>G(S).some(e=>e.id===G(x))),w=I(R([])),T=I(`workspace-write`),E=I(`on-request`),D=I(R({starting:!1,error:null})),ee=P(()=>G(D).starting),te=I(null),O=0,ne=I(null),re=I(null),ie=I(null),ae=I(``),oe=I(R({kind:`unavailable`,sessionId:null})),se=I({kind:`no-workspace`}),k=I(null),ce=I(null),le=I(!1),ue=null,de=null,fe=0,pe=0,me=I(null),he=I(``),ge=P(()=>(G(S).find(e=>e.id===G(x))?.workspaceId??G(y))||null),_e=P(()=>G(k)?{kind:`ready`,sessionId:`catalog`,plan:G(k)}:G(le)?null:G(oe).kind===`ready`||G(oe).kind===`closing`||G(oe).kind===`error`&&G(oe).plan?G(oe):null),ve=P(()=>Gc(G(oe).kind===`ready`||G(oe).kind===`closing`||G(oe).kind===`error`?G(oe).plan:void 0)),ye=I(R({workspaceId:null,summary:null,loading:!1,refreshing:!1,checkingOut:!1,error:null})),be=P(()=>G(ye).workspaceId),xe=I(R(new Set)),Se=I(!1),Ce=I(!1),we=I(null),Te=I(null),Ee=I(null),De=R({}),Oe=I(null),ke=``,Ae=new Ls({requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e),reducedMotion:()=>window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,scrollTail:e=>G(Oe)?.scrollIntoView({block:`end`,behavior:e})}),je=new Rs(e=>void br().then(e),e=>{G(i)===`chat`&&Ae.request(e)}),Me=P(()=>{let e=G(r)?.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.`:``:``}),Ne=Mc((e,n)=>t.authorizedFetch(e,n)),A=new Is({relay:Ne,cache:as(),publish:e=>L(r,e,!0),onSessionEvent:e=>Rt(e),onHistoryError:e=>{L(s,Lt(e,`SESSION_HISTORY_READ_FAILED`),!0)},onSendError:(e,t)=>{let n=Bs(e,`MESSAGE_SEND_FAILED`);L(ne,n.message,!0),L(re,n.retryable?t:null,!0),L(s,Lt(e,`MESSAGE_SEND_FAILED`),!0)},onSendAccepted:e=>{G(re)===e&&(L(ne,null),L(re,null))}}),Pe=new Jl({start:Ne.startSession},os,e=>L(D,e,!0)),Fe=new Ec({getSummary:Ne.getGitSummary,pull:Ne.pullGit,checkout:Ne.checkoutGitBranch},e=>!!ec(G(l),e)?.isGitRepository,e=>L(ye,e,!0),(e,t)=>Lt(e,t)),Ie=id((e,n)=>t.authorizedFetch(e,n)),Le=Wc({getPlan:Ne.getPlan,closePlan:Ne.closePlan},e=>L(oe,e,!0)),Re=wl(),j=Hs(),ze=new URLSearchParams(location.search).get(`tree-evidence`),M=new URLSearchParams(location.search).get(`toast-evidence`);function Be(){L(o,!0)}function Ve(){L(o,!1),br().then(()=>document.querySelector(`.menu-trigger`)?.focus())}Mi(async()=>{if(!(ze===`sessions`||ze===`git`||M===`error`||M===`stacked`))try{let e=await Jo(t.authorizedFetch);L(y,tc(G(y)||null,G(l),e.workspaces,Ys.sessionBase)??``,!0),L(l,e.workspaces,!0),L(p,e.profiles),L(d,[...new Set([u,...e.models??[]])]),await bt(),L(b,Xs(G(l)),!0),L(xe,Xs(G(l)),!0);let n=await Re.readSelectedSession();L(x,e.sessions.some(e=>e.id===n)?n:e.sessions[0]?.id??null,!0),G(x)&&L(ae,await Re.readDraft(G(x)),!0),L(S,e.sessions,!0),qe(),Le.select(G(x)),G(x)&&A.select(G(x))}catch(e){L(s,Lt(e,`RELAY_UNAVAILABLE`),!0)}}),An(()=>{if(!G(Oe))return;let e=new IntersectionObserver(([e])=>Ae.observeTail(e?.isIntersecting??!1),{root:null});return e.observe(G(Oe)),()=>e.disconnect()}),An(()=>{let e=G(r),t=G(i),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===ke||(ke=n,t===`chat`&&He(`content`))});function He(e){je.schedule(e)}function Ue(){je.invalidate(),Ae.reset(),L(i,`chat`),wt(`chat`),He(`initial`)}function We(e){L(c,Ki(e),!0)}Ni(()=>{je.invalidate(),Ae.cancel(),A.dispose(),Le.dispose(),Fe.dispose(),Pe.dispose(),G(m)?.dispose()});async function Ge(){if(!G(y)||G(ee))return;let e=ql({workspaceId:G(y),profile:`default`,profileState:`ok`});if(e.profile){L(s,e.profile,!0);return}L(s,`Starting session…`);let t=await Pe.start(G(y),{sandbox:G(T),approvalPolicy:G(E),model:G(f),skillProfile:G(_)||void 0});if(!t){G(D).error&&L(s,Lt(Error(G(D).error),`SESSION_START_FAILED`),!0);return}try{L(x,t.id,!0),Le.select(t.id),Re.saveSelectedSession(t.id),await Ke(),L(ae,await Re.readDraft(t.id),!0),A.select(t.id),Ue(),L(s,`Session started.`)}catch(e){L(s,Lt(e,`SESSION_START_FAILED`),!0)}}async function Ke(){L(S,await Ne.listSessions(),!0)}async function qe(){try{L(w,await Ne.listRecentSessions(),!0)}catch{L(w,[],!0)}}async function Je(){try{await Promise.all([Ke(),qe()])}catch(e){L(s,Lt(e,`SESSION_REFRESH_FAILED`),!0)}}async function Ye(e){L(s,`Opening session…`),L(te,e,!0);let t=++O;try{L(x,e,!0),L(ne,null),L(re,null),Le.select(e),Re.saveSelectedSession(e),A.select(e),Ue();let n=await Re.readDraft(e);t===O&&G(x)===e&&L(ae,n,!0)}catch(e){L(s,Lt(e,`SESSION_HISTORY_READ_FAILED`),!0)}finally{t===O&&L(te,null)}}async function Qe(e){L(s,`Opening recent session…`);try{let t=await Ne.openRecentSession(e.id,e.cwd);G(S).some(e=>e.id===t.id)||L(S,[...G(S),t],!0),Je(),await Ye(t.id)}catch(e){L(s,Lt(e,`SESSION_HISTORY_READ_FAILED`),!0)}}async function $e(e){L(s,`Closing session…`);try{await Ne.releaseSession(e),G(x)===e&&(L(x,null),L(i,`sessions`),Re.saveSelectedSession(null),A.select(null),Le.select(null)),await Je(),L(s,`Session closed.`)}catch(e){L(s,`Could not close session: ${It(e)}`)}}async function et(e){let t=G(S).find(t=>t.id===e);try{await Ne.forgetSession(e),G(x)===e&&(A.select(null),L(x,null),Re.saveSelectedSession(null),Le.select(null)),await Je(),L(w,Ol(G(w),t),!0)}catch(e){L(s,`Could not forget session: ${It(e)}`)}}async function tt(e){L(s,await Nc(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function nt(e){if(!(!G(x)||G(r)?.activeTurnId))try{let t=await Ne.selectModel(G(x),e);L(S,G(S).map(e=>e.id===t.id?{...e,...t}:e),!0),L(ae,``),L(s,`Model changed to ${e}; it applies to the next turn.`)}catch(e){L(s,`Could not change model: ${It(e)}`)}}async function rt(){let e=os();A.send(G(ae),e),L(ae,``),He(`explicit`),G(x)&&Re.saveDraft(G(x),``)}async function it(){G(re)&&(L(ne,null),await A.retryPrompt(G(re)))}async function at(){await A.interrupt()}function ot(){G(i)===`chat`&&G(x)&&A.refresh()}function st(e,t=!1){if(e===`chat`&&!G(C))return;let n=G(i)!==e;G(i)===`chat`&&e!==`chat`&&(je.invalidate(),Ae.cancel()),L(i,e,!0),wt(e),e===`chat`&&(ot(),Ae.reset(),He(`initial`),n&&t&&Tt()),e===`git`&&G(be)&&Fe.refresh(),e===`plan`&&(G(x)&&Le.refresh(G(x)),n||vt()),e===`sessions`&&(G(h)===`profile-manager`&&Ct(!1),Je())}An(()=>{let e=G(ge);G(i)===`plan`&&ht(e)});let ct=!1;function lt(){document.visibilityState!==`visible`||ct||(ct=!0,queueMicrotask(()=>{ct=!1,document.visibilityState===`visible`&&(G(i)===`git`&&G(be)&&Fe.refresh(),G(i)===`plan`&&vt())}))}let ut=null;function dt(e){return e instanceof Element&&e.closest(`button, input, textarea, select, a, summary, [contenteditable]`)!==null}function ft(e){e.pointerType!==`touch`||dt(e.target)||(ut={pointerId:e.pointerId,x:e.clientX,y:e.clientY})}function pt(e){if(!ut||e.pointerId!==ut.pointerId)return;let t=ut;ut=null;let n=e.clientX-t.x,r=e.clientY-t.y;Math.abs(n)<48||Math.abs(n)<=Math.abs(r)||st(Xl(G(i),n<0?1:-1,{chatEnabled:G(C)}))}function mt(e){ut?.pointerId===e.pointerId&&(ut=null)}function ht(e=G(ge)){if(ue?.abort(),de?.abort(),L(k,null),L(ce,null),!e){L(se,{kind:`no-workspace`});return}let t=new AbortController;ue=t;let n=++fe;L(se,{kind:`loading`,workspaceId:e}),Ne.listWorkspacePlans(e,t.signal).then(r=>{n!==fe||t.signal.aborted||L(se,{kind:`ready`,workspaceId:e,entries:r})}).catch(r=>{n!==fe||t.signal.aborted||L(se,{kind:`error`,workspaceId:e,error:r instanceof Error?r.message:`Could not load workspace plans.`})})}function gt(e){let t=G(ge);if(!t)return;de?.abort();let n=new AbortController;de=n;let r=++pe;Ne.getWorkspacePlan(t,e,n.signal).then(t=>{r!==pe||n.signal.aborted||(L(k,t),L(ce,e,!0),L(le,!1))}).catch(e=>{r!==pe||n.signal.aborted||L(se,{kind:`error`,workspaceId:t,error:e instanceof Error?e.message:`Could not open this plan.`})})}function _t(){L(k,null),L(ce,null),L(le,!0),ht()}function vt(){G(x)&&Le.refresh(G(x)),G(ce)?gt(G(ce)):ht()}async function yt(e,t){let n=new mu(Ne);await n.load(e,t),L(m,n,!0)}async function bt(){try{let e=await Ne.listSkillProfiles();L(g,e.profiles.filter(e=>!(`error`in e)));let t=e.profiles.find(e=>`error`in e);L(v,t&&`error`in t?t.error.message:``,!0),G(g).some(e=>e.name===G(_))||L(_,``)}catch(e){L(g,[]),L(v,e instanceof Error?e.message:`Unable to load saved skill profiles.`,!0)}}async function xt(e){let t=G(y)||G(l)[0]?.id||``,n=G(p).find(e=>e.state===`ok`)?.name??``;if(!t||!n){L(s,`Choose a workspace and available Codex profile before managing skill profiles.`);return}await yt(t,n),L(h,`profile-manager`)}function St(e){queueMicrotask(()=>e.focus())}async function Ct(e=!0){L(h,`list`),await br(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function wt(e){requestAnimationFrame(()=>{G(i)===e&&e!==`chat`&&window.scrollTo({top:0})})}function Tt(){window.matchMedia(`(min-width: 48rem)`).matches&&br().then(()=>{G(i)===`chat`&&document.getElementById(`message`)?.focus()})}function Et(e){Fe.select(e.id),L(Se,!1)}async function Dt(){let e=G(be);!e||!ec(G(l),e)?.isGitRepository||(L(Te,G(Te)??os(),!0),await Fe.pull(G(Te)),G(ye).error||L(Te,null))}async function Ot(e){if(G(Ce))return;let n=G(be)?ec(G(l),G(be)):void 0;if(!n||n.isGitRepository){L(we,null),j.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let r=n.id;L(Ce,!0),L(we,null);try{await Ne.cloneGitRepository(r,e);let n=await Jo(t.authorizedFetch),i=Dc(G(l),n.workspaces,r,e,G(xe));L(y,tc(G(y)||null,G(l),n.workspaces,Ys.sessionBase)??``,!0),L(l,n.workspaces,!0),Fe.select(i.selectedId),L(xe,i.expandedIds,!0),L(we,`Repository cloned into the selected workspace.`),j.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){Lt(e,`GIT_CLONE_FAILED`)}finally{L(Ce,!1)}}async function kt(e){G(be)&&await Fe.checkout(e)}async function F(){let e=G(be);if(e){L(Ee,G(Ee)??os(),!0);try{await Ne.pushGit(e,G(Ee)),L(Se,!1),await Fe.refresh(),L(Ee,null)}catch(e){Lt(e,`GIT_PUSH_FAILED`)}}}async function At(e,t){He(`explicit`),await A.respond(e,{decision:t})}async function jt(e){He(`explicit`);let t=e.kind===`quiz`?Ia(e.payload):La(e.payload);if(!t)return;let n=t.questions.map(t=>({id:t.id,answer:De[`${e.requestId}:${t.id}`]??``})),r=e.kind===`quiz`?Ra(n):jc(n);try{await A.respond(e.requestId,r)}catch{L(s,`Could not send quiz answers. Please try again.`)}}async function Mt(e){let t=Ac(e.payload);if(!t){L(s,`Codex sent an invalid permission request.`);return}He(`explicit`),await A.respond(e.requestId,t)}function Nt(e){e.kind===`quiz`||e.kind===`userInput`?jt(e):e.kind===`permissionsApproval`?Mt(e):A.retryInteraction(e.requestId)}function Pt(e,t,n){De[`${e}:${t}`]=n}function Ft(e){L(ae,e,!0),G(x)&&Re.saveDraft(G(x),e)}function It(e){return e instanceof Error?e.message:`Unknown relay error.`}function Lt(e,t){let n=Bs(e,t);return j.enqueue({kind:`error`,...n}),n.message}function Rt(e){let t=G(x);if(!t)return;if(e.type===`session.updated`&&typeof e.payload==`object`&&e.payload!==null){let n=e.payload;n.id===t&&L(S,G(S).map(e=>e.id===t?{...e,...n}:e),!0);return}if(e.type!==`plan.updated`&&e.type!==`plan.closed`||(Le.applyEvent(t,e),e.type!==`plan.updated`||!Rc(e.payload)))return;let n=e.payload.reason;if(!n||![`authoring-start`,`work-start`,`supervision-start`,`resync`].includes(n))return;let r=`${t}:${e.sequence}`;r!==G(he)&&(L(he,r),L(i,`plan`),wt(`plan`))}var zt=wd();ei(`1d2e8zz`,e=>{Nn(()=>{cn.title=`Gestalt Mobile`})}),Ar(`focus`,sn,lt),Ar(`visibilitychange`,cn,lt);var Bt=B(zt),Vt=e=>{Js(e,{get variant(){return M}})},Ht=e=>{var t=hd();uc(z(t),{get context(){return ze}}),N(t),J(e,t)},Ut=e=>{var p=Cd(),D=B(p),O=z(D),oe=e=>{{let n=P(()=>G(i)===`chat`?kl(G(S).find(e=>e.id===G(x))?.workspacePath??``):null),r=P(()=>G(i)===`chat`?G(S).find(e=>e.id===G(x))?.model??u:null);$i(e,{get theme(){return G(c)},get sessionPath(){return G(n)},get sessionModel(){return G(r)},get weeklyQuotaRemaining(){return G(ve)},get passkeyAuthEnabled(){return t.passkeyAuthEnabled},get onlock(){return t.onlock},ondevices:()=>L(a,!0),onscratchpad:Be,onthemechange:We})}};X(O,e=>{G(a)||e(oe)});var k=V(O,2),ce=e=>{nd(e,{get client(){return Ie},onclose:()=>{L(a,!1),br().then(()=>document.querySelector(`.menu-trigger`)?.focus())},get onlock(){return t.onlock},oncreatepasskey:e=>n()(e)})},le=e=>{var t=Sd(),n=B(t),a=e=>{var t=gd(),n=z(t),r=z(n,!0);N(n);var i=V(n,2);N(t),H(()=>Y(r,G(ie))),K(`click`,i,()=>L(ie,null)),J(e,t)};X(n,e=>{G(ie)&&e(a)});var o=V(n,2),c=e=>{var t=yd(),n=V(z(t),2),i=z(n,!0);N(n);var a=V(n,2),o=e=>{var t=_d(),n=B(t);{let e=P(()=>G(r)?[...G(r).messages]:[]),t=P(()=>G(r)?[...G(r).activities]:[]),i=P(()=>G(r)?.activeTurnId??null),a=P(()=>G(r)?[...G(r).interactions]:[]);Wo(n,{get messages(){return G(e)},get activities(){return G(t)},get activeTurnId(){return G(i)},get interactions(){return G(a)},get answers(){return De},onanswer:Pt,onquiz:e=>void jt(e),onpermission:e=>void Mt(e),ondecision:(e,t)=>void At(e,t),onretry:Nt})}var i=V(n,2);{let e=P(()=>G(r)?.status??G(s)),t=P(()=>G(r)?.activeTurnId??null),n=P(()=>G(r)?.starting??!1),a=P(()=>!!(G(S).find(e=>e.id===G(x))&&![`ready`,`turnActive`].includes(G(S).find(e=>e.id===G(x))?.state??``))),o=P(()=>G(re)!==null);Ea(i,{get status(){return G(e)},get message(){return G(ae)},get activeTurnId(){return G(t)},get starting(){return G(n)},get detached(){return G(a)},get retryMessage(){return G(ne)},get retryable(){return G(o)},get models(){return G(d)},onchange:Ft,onscrollbottom:()=>He(`explicit`),onmodelselect:e=>void nt(e),onsend:()=>void rt(),onretry:()=>void it(),oninterrupt:()=>void at()})}ji(V(i,2),e=>L(Oe,e),()=>G(Oe)),J(e,t)},c=e=>{J(e,vd())};X(a,e=>{G(x)?e(o):e(c,-1)}),N(t),H(()=>Y(i,G(Me))),J(e,t)},u=e=>{yl(e,{get catalog(){return G(se)},get state(){return G(_e)},onopen:gt,onclose:_t})},p=e=>{{let t=P(()=>G(be)?ec(G(l),G(be))??null:null);Tc(e,{get workspaceTree(){return G(l)},get selectedWorkspace(){return G(t)},get expandedIds(){return G(xe)},get summary(){return G(ye).summary},get refreshing(){return G(ye).refreshing},get checkingOut(){return G(ye).checkingOut},get cloning(){return G(Ce)},get error(){return G(ye).error},get cloneStatus(){return G(we)},get confirmingPush(){return G(Se)},onpull:()=>void Dt(),oncheckout:e=>void kt(e),onopenpushconfirmation:()=>L(Se,!0),onpush:()=>void F(),oncancelpush:()=>L(Se,!1),onselect:Et,onexpandedchange:e=>L(xe,e,!0),onclone:e=>void Ot(e)})}},D=e=>{var t=zr(),n=B(t),r=e=>{var t=xd(),n=z(t),r=z(n);ti(r,()=>St);var i=V(r,2);N(n);var a=V(n,2),o=e=>{pu(e,{get skillsState(){return G(m)},onrefresh:()=>G(m)?.refresh()??Promise.resolve(),onprofileschange:()=>void bt(),heading:`Skill profile editor`})},s=e=>{J(e,bd())};X(a,e=>{G(m)?e(o):e(s,-1)}),N(t),K(`click`,i,()=>void Ct()),J(e,t)},i=e=>{Kl(e,{get sessions(){return G(S)},get recentSessions(){return G(w)},get selectedSessionId(){return G(x)},get workspaceTree(){return G(l)},get workspaceId(){return G(y)},get expandedIds(){return G(b)},get sandbox(){return G(T)},get approvalPolicy(){return G(E)},get models(){return G(d)},get selectedModel(){return G(f)},get skillProfiles(){return G(g)},get selectedSkillProfile(){return G(_)},get skillProfileError(){return G(v)},get startingSession(){return G(ee)},get openingSessionId(){return G(te)},onworkspacechange:e=>L(y,e,!0),onexpandedchange:e=>L(b,e,!0),onsandboxchange:e=>L(T,e,!0),onapprovalpolicychange:e=>L(E,e,!0),onmodelchange:e=>L(f,e,!0),onskillprofilechange:e=>L(_,e,!0),onmanageprofiles:e=>void xt(e),onopen:Ye,onselectopen:Ye,onclose:e=>void $e(e),onopenrecent:e=>void Qe(e),onforget:e=>void et(e),oncopyresume:e=>void tt(e),onstart:()=>void Ge()})};X(n,e=>{G(h)===`profile-manager`?e(r):e(i,-1)}),J(e,t)};X(o,e=>{G(i)===`chat`?e(c):G(i)===`plan`?e(u,1):G(i)===`git`?e(p,2):e(D,-1)}),Ql(V(o,2),{get activeTab(){return G(i)},get chatEnabled(){return G(C)},get focusTab(){return G(me)},onselect:st}),J(e,t)};X(k,e=>{G(a)&&t.passkeyAuthEnabled?e(ce):e(le,-1)}),N(D);var ue=V(D,2),de=e=>{md(e,{onclose:Ve})};X(ue,e=>{G(o)&&e(de)}),K(`pointerdown`,D,ft),K(`pointerup`,D,pt),Ar(`pointercancel`,D,mt),J(e,p)};X(Bt,e=>{M===`error`||M===`stacked`?e(Vt):ze===`sessions`||ze===`git`?e(Ht,1):e(Ut,-1)});var Wt=V(Bt,2),Gt=e=>{Ks(e,{get queue(){return j}})};X(Wt,e=>{M!==`error`&&M!==`stacked`&&e(Gt)}),J(e,zt),Ze()}jr([`pointerdown`,`pointerup`,`click`]);function Ed(){throw Error(`AUTH_RESPONSE_INVALID`)}async function Dd(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 Od(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 kd(e){return!!e&&typeof e==`object`&&!!e.options&&typeof e.options.challenge==`string`}function Ad(e){return!!e&&typeof e==`object`&&e.status===`authenticated`}function jd(e=fetch){async function t(){let t=await Dd(await e(`/api/auth/status`,{credentials:`same-origin`}));return Od(t)||Ed(),t}async function n(t,n={}){let r=await Dd(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return kd(r)||Ed(),r}async function r(t,n){let r=await Dd(await e(t,{method:`POST`,credentials:`same-origin`,headers:{"content-type":`application/json`},body:JSON.stringify(n)}));return Ad(r)||Ed(),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 Md(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 Nd(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 Pd(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 Fd(){return Id.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential==`function`)}var Id={stubThis:e=>e};function Ld(e){let{id:t}=e;return{...e,id:Pd(t),transports:e.transports}}function Rd(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 zd=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 Bd({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 zd({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 zd({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 zd({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 zd({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 zd({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new zd({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 zd({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new zd({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(!Rd(t))return new zd({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new zd({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 zd({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 zd({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 Vd=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}}},Hd=[`cross-platform`,`platform`];function Ud(e){if(e&&!(Hd.indexOf(e)<0))return e}async function Wd(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(!Fd())throw Error(`WebAuthn is not supported in this browser`);let r={...t,challenge:Pd(t.challenge),user:{...t.user,id:Pd(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ld)},i={};n&&(i.mediation=`conditional`),i.publicKey=r,i.signal=Vd.createNewAbortSignal();let a;try{a=await navigator.credentials.create(i)}catch(e){throw Bd({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){Gd(`getPublicKeyAlgorithm()`,e)}let f;if(typeof c.getPublicKey==`function`)try{let e=c.getPublicKey();e!==null&&(f=Nd(e))}catch(e){Gd(`getPublicKey()`,e)}let p;if(typeof c.getAuthenticatorData==`function`)try{p=Nd(c.getAuthenticatorData())}catch(e){Gd(`getAuthenticatorData()`,e)}return{id:o,rawId:Nd(s),response:{attestationObject:Nd(c.attestationObject),clientDataJSON:Nd(c.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:p},type:l,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:Ud(a.authenticatorAttachment)}}function Gd(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 Kd(){if(!Fd())return qd.stubThis(new Promise(e=>e(!1)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?qd.stubThis(new Promise(e=>e(!1))):qd.stubThis(e.isConditionalMediationAvailable())}var qd={stubThis:e=>e};function Jd({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 zd({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new zd({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!Rd(t))return new zd({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new zd({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 zd({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 Yd(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(!Fd())throw Error(`WebAuthn is not supported in this browser`);let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(Ld));let a={...t,challenge:Pd(t.challenge),allowCredentials:i},o={};if(n){if(!await Kd())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=Vd.createNewAbortSignal();let s;try{s=await navigator.credentials.get(o)}catch(e){throw Jd({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=Nd(u.userHandle)),{id:c,rawId:Nd(l),response:{authenticatorData:Nd(u.authenticatorData),clientDataJSON:Nd(u.clientDataJSON),signature:Nd(u.signature),userHandle:f},type:d,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:Ud(s.authenticatorAttachment)}}function Xd(e){return typeof e==`object`&&e?e:{}}function Zd(e){let t=Xd(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 Zd(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 Qd(){return typeof window<`u`&&window.isSecureContext&&window.PublicKeyCredential!==void 0}function $d(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(!Qd()){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 ef=q(`<p class="warning svelte-1c5qcm6">This one-time link authorizes one new passkey. Choose a nickname and complete the passkey
|
|
22
22
|
prompt before it expires.</p>`),tf=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
|
|
23
23
|
first-device access. Enroll this device before exposing the instance, and confirm you are at the
|
|
24
24
|
canonical address before continuing.</p>`),nf=q(`<p class="error svelte-1c5qcm6">Passkeys require a secure browser on this device.</p>`),rf=q(`<p class="feedback svelte-1c5qcm6"> </p>`),af=q(`<img alt="QR code for the first-device setup link" class="svelte-1c5qcm6"/>`),of=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
|
package/dist/client/index.html
CHANGED
|
@@ -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-
|
|
19
|
+
<script type="module" crossorigin src="/assets/index-Ba_4zoY1.js"></script>
|
|
20
20
|
<link rel="stylesheet" crossorigin href="/assets/index-e2lJ5XqL.css">
|
|
21
21
|
</head>
|
|
22
22
|
<body>
|
|
@@ -32,7 +32,7 @@ import { GitSummaryCache } from './platform/git/git-summary-cache.js';
|
|
|
32
32
|
import { SessionSupervisor } from './platform/runtime/session-supervisor.js';
|
|
33
33
|
import { mapWithConcurrency } from './platform/runtime/concurrency.js';
|
|
34
34
|
import { RelaySession } from './features/sessions/model/relay-session.js';
|
|
35
|
-
import { toPendingInteraction } from './platform/codex/server-request.js';
|
|
35
|
+
import { resolvedServerRequestId, toPendingInteraction } from './platform/codex/server-request.js';
|
|
36
36
|
import { isValidInteractionResponse, isValidQuizInteractionResponse, } from './features/sessions/interaction/response-validator.js';
|
|
37
37
|
import { promoteRecentThread } from './features/sessions/promote-recent-thread/use-case.js';
|
|
38
38
|
import { FilesystemSkillProfileStore } from './platform/skills/filesystem-skill-profile-store.js';
|
|
@@ -113,9 +113,25 @@ export async function composeRelayApp(options) {
|
|
|
113
113
|
const gitSummaries = new GitSummaryCache(inspectGit);
|
|
114
114
|
let recoverExitedSession = () => { };
|
|
115
115
|
let planMeasurementRefresh;
|
|
116
|
+
const publishInteractionResolved = (sessionId, requestId, occurredAt, outcome) => {
|
|
117
|
+
const interaction = interactions
|
|
118
|
+
.snapshot(sessionId)
|
|
119
|
+
.find((item) => item.requestId === requestId);
|
|
120
|
+
events.publish(journal.append(sessionId, 'interaction.resolved', { requestId, turnId: interaction?.turnId ?? null, resolvedAt: occurredAt, outcome }, occurredAt));
|
|
121
|
+
};
|
|
122
|
+
const dismissPendingInteractions = (sessionId, occurredAt) => {
|
|
123
|
+
for (const interaction of interactions.list(sessionId)) {
|
|
124
|
+
if (interactions.resolve(sessionId, interaction.requestId, occurredAt, 'dismissed'))
|
|
125
|
+
publishInteractionResolved(sessionId, interaction.requestId, occurredAt, 'dismissed');
|
|
126
|
+
}
|
|
127
|
+
};
|
|
116
128
|
const runtime = options.startAppServers
|
|
117
129
|
? new CodexSessionRuntime(options.launchAppServer ?? launchCodexAppServer, undefined, (sessionId, notification) => {
|
|
118
130
|
const occurredAt = new Date().toISOString();
|
|
131
|
+
const resolvedRequestId = resolvedServerRequestId(notification);
|
|
132
|
+
if (resolvedRequestId &&
|
|
133
|
+
interactions.resolve(sessionId, resolvedRequestId, occurredAt, 'dismissed'))
|
|
134
|
+
publishInteractionResolved(sessionId, resolvedRequestId, occurredAt, 'dismissed');
|
|
119
135
|
const currentSession = sessions.find(sessionId);
|
|
120
136
|
const normalized = normalizeCodexNotification(sessionId, 0, occurredAt, notification, currentSession?.workspacePath, currentSession?.activeTurnId);
|
|
121
137
|
if (!normalized)
|
|
@@ -148,7 +164,10 @@ export async function composeRelayApp(options) {
|
|
|
148
164
|
sessions.save(updated);
|
|
149
165
|
events.publish(journal.append(sessionId, 'interaction.requested', interaction, updated.updatedAt));
|
|
150
166
|
return true;
|
|
151
|
-
}, (sessionId) =>
|
|
167
|
+
}, (sessionId) => {
|
|
168
|
+
dismissPendingInteractions(sessionId, new Date().toISOString());
|
|
169
|
+
recoverExitedSession(sessionId);
|
|
170
|
+
}, resolveSkills, planStatusSource, (sessionId, update) => {
|
|
152
171
|
supervisedPlans.accept(sessionId, update);
|
|
153
172
|
planMeasurementRefresh?.accept(sessionId, update);
|
|
154
173
|
if (update.kind === 'updated') {
|
|
@@ -291,15 +310,27 @@ export async function composeRelayApp(options) {
|
|
|
291
310
|
skillCatalog,
|
|
292
311
|
defaultSkillProfile: options.explicitSkillProfile,
|
|
293
312
|
activate: runtime
|
|
294
|
-
? async (session, settings) =>
|
|
313
|
+
? async (session, settings) => {
|
|
314
|
+
const now = new Date().toISOString();
|
|
315
|
+
dismissPendingInteractions(session.id, now);
|
|
316
|
+
return runtime.start(session, now, settings);
|
|
317
|
+
}
|
|
295
318
|
: undefined,
|
|
296
319
|
startTurn: runtime
|
|
297
320
|
? async (session, text, clientUserMessageId) => runtime.startTurn(session, text, clientUserMessageId, new Date().toISOString())
|
|
298
321
|
: undefined,
|
|
299
322
|
ensureWriter: runtime
|
|
300
|
-
? (session) =>
|
|
323
|
+
? (session) => {
|
|
324
|
+
dismissPendingInteractions(session.id, new Date().toISOString());
|
|
325
|
+
return runtime.ensureWriter(session, new Date().toISOString());
|
|
326
|
+
}
|
|
327
|
+
: undefined,
|
|
328
|
+
releaseWriter: runtime
|
|
329
|
+
? (id) => {
|
|
330
|
+
dismissPendingInteractions(id, new Date().toISOString());
|
|
331
|
+
return runtime.release(id);
|
|
332
|
+
}
|
|
301
333
|
: undefined,
|
|
302
|
-
releaseWriter: runtime ? (id) => runtime.release(id) : undefined,
|
|
303
334
|
onTurnStarted: (session) => planMeasurementRefresh?.refreshNow(session.id),
|
|
304
335
|
models,
|
|
305
336
|
readHistory: runtime ? (session) => runtime.readHistory(session) : undefined,
|
|
@@ -325,17 +356,15 @@ export async function composeRelayApp(options) {
|
|
|
325
356
|
close: runtime
|
|
326
357
|
? (id) => {
|
|
327
358
|
planMeasurementRefresh?.stop(id);
|
|
359
|
+
dismissPendingInteractions(id, new Date().toISOString());
|
|
328
360
|
return runtime.release(id);
|
|
329
361
|
}
|
|
330
362
|
: undefined,
|
|
331
363
|
replyInteraction: runtime
|
|
332
|
-
? (sessionId, requestId, value) => runtime.resolveServerRequest(sessionId, requestId, value)
|
|
364
|
+
? (sessionId, requestId, value) => runtime.resolveServerRequest(sessionId, requestId, value) ? 'accepted' : 'cleared'
|
|
333
365
|
: undefined,
|
|
334
366
|
interactionResolved: (sessionId, requestId, occurredAt, outcome) => {
|
|
335
|
-
|
|
336
|
-
.snapshot(sessionId)
|
|
337
|
-
.find((item) => item.requestId === requestId);
|
|
338
|
-
events.publish(journal.append(sessionId, 'interaction.resolved', { requestId, turnId: interaction?.turnId ?? null, resolvedAt: occurredAt, outcome }, occurredAt));
|
|
367
|
+
publishInteractionResolved(sessionId, requestId, occurredAt, outcome);
|
|
339
368
|
},
|
|
340
369
|
},
|
|
341
370
|
sessionEvents: {
|
|
@@ -438,6 +467,8 @@ export async function composeRelayApp(options) {
|
|
|
438
467
|
});
|
|
439
468
|
app.addHook('onClose', async () => {
|
|
440
469
|
planMeasurementRefresh?.stopAll();
|
|
470
|
+
for (const session of sessions.list())
|
|
471
|
+
dismissPendingInteractions(session.id, new Date().toISOString());
|
|
441
472
|
runtime?.stopAll();
|
|
442
473
|
planStatusSource.closeAll();
|
|
443
474
|
database.close();
|
|
@@ -18,8 +18,21 @@ export function registerRespondInteraction(app, deps) {
|
|
|
18
18
|
return reply.code(409).send({ code: 'INTERACTION_NOT_PENDING' });
|
|
19
19
|
if (deps.validate && !deps.validate(id, requestId, value))
|
|
20
20
|
return reply.code(400).send({ code: 'INTERACTION_RESPONSE_INVALID' });
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const delivery = deps.reply(id, requestId, value);
|
|
22
|
+
if (delivery === false || delivery === 'unavailable')
|
|
23
|
+
return reply.code(409).send({ code: 'INTERACTION_DELIVERY_UNAVAILABLE' });
|
|
24
|
+
if (delivery === 'cleared') {
|
|
25
|
+
const resolvedAt = deps.now();
|
|
26
|
+
const outcome = 'dismissed';
|
|
27
|
+
if (deps.resolve(id, requestId, resolvedAt, outcome)) {
|
|
28
|
+
deps.resolved?.(id, requestId, resolvedAt, outcome);
|
|
29
|
+
return reply.code(202).send({ accepted: true, resolvedAt, outcome });
|
|
30
|
+
}
|
|
31
|
+
const raced = deps.alreadyResolved?.(id, requestId);
|
|
32
|
+
return raced
|
|
33
|
+
? reply.code(202).send({ accepted: true, ...raced })
|
|
34
|
+
: reply.code(409).send({ code: 'INTERACTION_NOT_PENDING' });
|
|
35
|
+
}
|
|
23
36
|
const resolvedAt = deps.now();
|
|
24
37
|
const outcome = safeOutcome(value);
|
|
25
38
|
if (!deps.resolve(id, requestId, resolvedAt, outcome))
|
|
@@ -21,6 +21,15 @@ export function toPendingInteraction(input) {
|
|
|
21
21
|
}[input.method];
|
|
22
22
|
return kind ? { requestId: String(input.id), kind, payload: input.params } : null;
|
|
23
23
|
}
|
|
24
|
+
export function resolvedServerRequestId(input) {
|
|
25
|
+
if (input.method !== 'serverRequest/resolved' || !isRecord(input.params))
|
|
26
|
+
return null;
|
|
27
|
+
const requestId = input.params.requestId;
|
|
28
|
+
if (!((typeof requestId === 'string' && requestId.length > 0 && requestId.length <= 256) ||
|
|
29
|
+
(typeof requestId === 'number' && Number.isSafeInteger(requestId))))
|
|
30
|
+
return null;
|
|
31
|
+
return String(requestId);
|
|
32
|
+
}
|
|
24
33
|
function isRecord(value) {
|
|
25
34
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
26
35
|
}
|
|
@@ -11,6 +11,7 @@ import { gestaltQuizDynamicTool } from '../../../shared/contracts/quiz.js';
|
|
|
11
11
|
import { threadPlanName } from './thread-plan-name.js';
|
|
12
12
|
import { WriterAcquisitionError, } from '../../features/sessions/application/writer-acquisition.js';
|
|
13
13
|
import { isCodexThreadWriterBusy, isMissingCodexThreadRollout } from './json-rpc-client.js';
|
|
14
|
+
import { resolvedServerRequestId } from './server-request.js';
|
|
14
15
|
/** One private owner for every resource acquired for a live Codex child. */
|
|
15
16
|
class SessionResource {
|
|
16
17
|
sessionId;
|
|
@@ -38,7 +39,6 @@ class SessionResource {
|
|
|
38
39
|
return false;
|
|
39
40
|
this.disposed = true;
|
|
40
41
|
for (const pending of this.pendingRequests.values()) {
|
|
41
|
-
clearTimeout(pending.timer);
|
|
42
42
|
pending.reject(new Error('CODEX_SERVER_REQUEST_CANCELLED'));
|
|
43
43
|
}
|
|
44
44
|
this.pendingRequests.clear();
|
|
@@ -65,13 +65,14 @@ export class CodexSessionRuntime {
|
|
|
65
65
|
planStatusSource;
|
|
66
66
|
onPlanStatus;
|
|
67
67
|
planMeasurementBaseUrl;
|
|
68
|
-
requestTimeoutMs;
|
|
69
68
|
maxPendingRequests;
|
|
70
69
|
readerCwd;
|
|
71
70
|
constructor(launch,
|
|
72
71
|
// Kept as an ignored compatibility slot while callers migrate from the old
|
|
73
72
|
// correlated-map constructor shape. Live ownership is `sessions` only.
|
|
74
|
-
_legacyProcesses = undefined, onNotification, onServerRequest, onProcessExit, resolveSkills, planStatusSource, onPlanStatus, planMeasurementBaseUrl,
|
|
73
|
+
_legacyProcesses = undefined, onNotification, onServerRequest, onProcessExit, resolveSkills, planStatusSource, onPlanStatus, planMeasurementBaseUrl,
|
|
74
|
+
// Compatibility slot: blocking app-server requests wait for explicit input.
|
|
75
|
+
_legacyRequestTimeoutMs = undefined, maxPendingRequests = 64, readerCwd) {
|
|
75
76
|
this.launch = launch;
|
|
76
77
|
this.onNotification = onNotification;
|
|
77
78
|
this.onServerRequest = onServerRequest;
|
|
@@ -80,10 +81,10 @@ export class CodexSessionRuntime {
|
|
|
80
81
|
this.planStatusSource = planStatusSource;
|
|
81
82
|
this.onPlanStatus = onPlanStatus;
|
|
82
83
|
this.planMeasurementBaseUrl = planMeasurementBaseUrl;
|
|
83
|
-
this.requestTimeoutMs = requestTimeoutMs;
|
|
84
84
|
this.maxPendingRequests = maxPendingRequests;
|
|
85
85
|
this.readerCwd = readerCwd;
|
|
86
86
|
void _legacyProcesses;
|
|
87
|
+
void _legacyRequestTimeoutMs;
|
|
87
88
|
}
|
|
88
89
|
sessions = new Map();
|
|
89
90
|
historyReads = new Map();
|
|
@@ -138,7 +139,6 @@ export class CodexSessionRuntime {
|
|
|
138
139
|
if (!resource || !pending)
|
|
139
140
|
return false;
|
|
140
141
|
resource.pendingRequests.delete(requestId);
|
|
141
|
-
clearTimeout(pending.timer);
|
|
142
142
|
pending.resolve(result);
|
|
143
143
|
return true;
|
|
144
144
|
}
|
|
@@ -337,18 +337,17 @@ export class CodexSessionRuntime {
|
|
|
337
337
|
}
|
|
338
338
|
}
|
|
339
339
|
holdServerRequest(resource, request) {
|
|
340
|
-
if (!resource.active
|
|
341
|
-
return Promise.reject(new Error('
|
|
342
|
-
}
|
|
340
|
+
if (!resource.active)
|
|
341
|
+
return Promise.reject(new Error('CODEX_SERVER_REQUEST_CANCELLED'));
|
|
343
342
|
if (resource.pendingRequests.size >= this.maxPendingRequests)
|
|
344
343
|
return Promise.reject(new Error('CODEX_SERVER_REQUEST_LIMIT'));
|
|
345
344
|
const requestId = String(request.id);
|
|
345
|
+
if (resource.pendingRequests.has(requestId))
|
|
346
|
+
return Promise.reject(new Error('CODEX_SERVER_REQUEST_DUPLICATE'));
|
|
347
|
+
if (!this.onServerRequest?.(resource.sessionId, request))
|
|
348
|
+
return Promise.reject(new Error('CODEX_SERVER_REQUEST_UNSUPPORTED'));
|
|
346
349
|
return new Promise((resolve, reject) => {
|
|
347
|
-
|
|
348
|
-
if (resource.pendingRequests.delete(requestId))
|
|
349
|
-
reject(new Error('CODEX_SERVER_REQUEST_TIMEOUT'));
|
|
350
|
-
}, this.requestTimeoutMs);
|
|
351
|
-
resource.pendingRequests.set(requestId, { resolve, reject, timer });
|
|
350
|
+
resource.pendingRequests.set(requestId, { resolve, reject });
|
|
352
351
|
});
|
|
353
352
|
}
|
|
354
353
|
async startThread(process, session, settings = {}) {
|
|
@@ -394,8 +393,18 @@ export class CodexSessionRuntime {
|
|
|
394
393
|
this.sessions.delete(session.id);
|
|
395
394
|
});
|
|
396
395
|
const notificationUnsubscribe = process.rpc.onNotification((notification) => {
|
|
397
|
-
if (resource.active)
|
|
398
|
-
|
|
396
|
+
if (!resource.active)
|
|
397
|
+
return;
|
|
398
|
+
const resolvedRequestId = resolvedServerRequestId(notification);
|
|
399
|
+
if (resolvedRequestId) {
|
|
400
|
+
const pending = resource.pendingRequests.get(resolvedRequestId);
|
|
401
|
+
resource.pendingRequests.delete(resolvedRequestId);
|
|
402
|
+
// App-server has already cleared the request, so settle the local handler too.
|
|
403
|
+
// The late JSON-RPC error response is harmless and prevents an orphaned promise.
|
|
404
|
+
// The notification callback reconciles the durable interaction record.
|
|
405
|
+
pending?.reject(new Error('CODEX_SERVER_REQUEST_CLEARED'));
|
|
406
|
+
}
|
|
407
|
+
this.onNotification?.(session.id, notification);
|
|
399
408
|
});
|
|
400
409
|
const requestUnsubscribe = process.rpc.onServerRequest((request) => this.holdServerRequest(resource, request));
|
|
401
410
|
const exitUnsubscribe = process.onExit?.(() => {
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
5
|
*/
|
|
6
6
|
function safeInteractionOutcome(value) {
|
|
7
|
-
return value === 'approved' || value === 'denied' || value === 'answered'
|
|
7
|
+
return value === 'approved' || value === 'denied' || value === 'answered' || value === 'dismissed'
|
|
8
|
+
? value
|
|
9
|
+
: 'answered';
|
|
8
10
|
}
|
|
9
11
|
export class SqlitePendingInteractionStore {
|
|
10
12
|
db;
|
|
@@ -13,7 +15,15 @@ export class SqlitePendingInteractionStore {
|
|
|
13
15
|
}
|
|
14
16
|
add(sessionId, interaction) {
|
|
15
17
|
this.db
|
|
16
|
-
.prepare(
|
|
18
|
+
.prepare(`INSERT INTO pending_interactions (session_id,request_id,kind,payload_json,turn_id,requested_at)
|
|
19
|
+
VALUES (?,?,?,?,?,?)
|
|
20
|
+
ON CONFLICT(session_id,request_id) DO UPDATE SET
|
|
21
|
+
kind = excluded.kind,
|
|
22
|
+
payload_json = excluded.payload_json,
|
|
23
|
+
turn_id = excluded.turn_id,
|
|
24
|
+
requested_at = excluded.requested_at,
|
|
25
|
+
resolved_at = NULL,
|
|
26
|
+
outcome = NULL`)
|
|
17
27
|
.run(sessionId, interaction.requestId, interaction.kind, JSON.stringify(interaction.payload), interaction.turnId ?? null, interaction.requestedAt ?? null);
|
|
18
28
|
}
|
|
19
29
|
resolve(sessionId, requestId, resolvedAt, outcome = 'answered') {
|