gestalt-mobile 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/index-CGAy94nY.js +12 -0
- package/dist/client/assets/index-DSU_Fcvo.css +1 -0
- package/dist/client/index.html +2 -2
- package/dist/server/server/app.js +18 -4
- package/dist/server/server/composition.js +24 -2
- package/dist/server/server/features/plans/application/parse-supervised-plan.js +242 -0
- package/dist/server/server/features/plans/application/ports.js +6 -0
- package/dist/server/server/features/plans/application/supervised-plan-registry.js +22 -0
- package/dist/server/server/features/plans/close-plan/endpoint.js +33 -0
- package/dist/server/server/features/plans/domain/supervised-plan.js +6 -0
- package/dist/server/server/features/plans/get-plan/endpoint.js +14 -0
- package/dist/server/server/features/sessions/model/relay-session.js +5 -0
- package/dist/server/server/features/sessions/select-model/endpoint.js +23 -0
- package/dist/server/server/platform/codex/codex-process-launcher.js +8 -0
- package/dist/server/server/platform/codex/session-runtime.js +44 -3
- package/dist/server/server/platform/plans/filesystem-plan-status-source.js +301 -0
- package/package.json +3 -1
- package/dist/client/assets/index--vTfuwTT.js +0 -11
- package/dist/client/assets/index-BqpvGqIw.css +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
(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 e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible,d=()=>{};function f(e){for(var t=0;t<e.length;t++)e[t]()}function p(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function m(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 h=1024,g=2048,_=4096,v=8192,y=16384,b=32768,x=1<<25,S=65536,ee=1<<18,C=1<<19,w=1<<20,T=1<<25,E=65536,te=1<<21,D=1<<22,ne=1<<23,O=Symbol(`$state`),re=Symbol(`legacy props`),ie=Symbol(``),ae=Symbol(`attributes`),oe=Symbol(`class`),se=Symbol(`style`),ce=Symbol(`text`),le=Symbol(`form reset`),ue=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},de=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function fe(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function pe(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function k(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function me(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function he(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function ge(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function _e(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function ve(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function ye(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function be(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function xe(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Se(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Ce={},A=Symbol(`uninitialized`),we=`http://www.w3.org/1999/xhtml`;function j(){console.warn(`https://svelte.dev/e/derived_inert`)}function Te(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Ee(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function De(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var M=!1;function Oe(e){M=e}var N;function ke(e){if(e===null)throw Te(),Ce;return N=e}function Ae(){return ke(rn(N))}function P(e){if(M){if(rn(N)!==null)throw Te(),Ce;N=e}}function je(e=1){if(M){for(var t=e,n=N;t--;)n=rn(n);N=n}}function Me(e=!0){for(var t=0,n=N;;){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=rn(n);e&&n.remove(),n=i}}function Ne(e){if(!e||e.nodeType!==8)throw Te(),Ce;return e.data}function Pe(e){return e===this.v}function Fe(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ie(e){return!Fe(e,this.v)}var Le=null;function Re(e){Le=e}function ze(e,t=!1,n){Le={p:Le,i:!1,c:null,e:null,s:e,x:null,r:G,l:null}}function Be(e){var t=Le,n=t.e;if(n!==null){t.e=null;for(var r of n)bn(r)}return e!==void 0&&(t.x=e),t.i=!0,Le=t.p,e??{}}function Ve(){return!0}var He=[];function Ue(){var e=He;He=[],f(e)}function We(e){if(He.length===0&&!St){var t=He;queueMicrotask(()=>{t===He&&Ue()})}He.push(e)}function Ge(){for(;He.length>0;)Ue()}function Ke(e){var t=G;if(t===null)return W.f|=ne,e;if(!(t.f&32768)&&!(t.f&4))throw e;qe(e,t)}function qe(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 Je=~(g|_|h);function Ye(e,t){e.f=e.f&Je|t}function Xe(e){e.f&512||e.deps===null?Ye(e,h):Ye(e,_)}function Ze(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=E,Ze(t.deps))}function Qe(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),Ze(e.deps),Ye(e,h)}var $e=!1;function et(e){var t=$e;try{return $e=!1,[e(),$e]}finally{$e=t}}function tt(e){let t=0,n=Vt(0),r;return()=>{_n()&&(K(n),wn(()=>(t===0&&(r=dr(()=>e(()=>Gt(n)))),t+=1,()=>{We(()=>{--t,t===0&&(r?.(),r=void 0,Gt(n))})})))}}var nt=S|C;function rt(e,t,n,r){new it(e,t,n,r)}var it=class{parent;is_pending=!1;transform_error;#e;#t=M?N: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=tt(()=>(this.#m=Vt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=G;t.b=this,t.f|=128,n(e)},this.parent=G.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Tn(()=>{if(M){let e=this.#t;Ae();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()},nt),M&&(this.#e=N)}#g(){try{this.#a=En(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=En(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=En(()=>e(this.#e)),We(()=>{var e=this.#c=document.createDocumentFragment(),t=tn();e.append(t),this.#a=this.#x(()=>En(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Nn(this.#o,()=>{this.#o=null}),this.#b(I))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=En(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Ln(this.#a,e);let t=this.#n.pending;this.#o=En(()=>t(this.#e))}else this.#b(I)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){Qe(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=G,n=W,r=Le;Wn(this.#i),Un(this.#i),Re(this.#i.ctx);try{return Ot.ensure(),e()}catch(e){return Ke(e),null}finally{Wn(t),Un(n),Re(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&&Nn(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,We(()=>{this.#d=!1,this.#m&&Ut(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),K(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;I?.is_fork?(this.#a&&I.skip_effect(this.#a),this.#o&&I.skip_effect(this.#o),this.#s&&I.skip_effect(this.#s),I.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(An(this.#a),null),this.#o&&=(An(this.#o),null),this.#s&&=(An(this.#s),null),M&&(ke(this.#t),je(),ke(Me()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){De();return}r=!0,i&&Se(),this.#s!==null&&Nn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){qe(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return En(()=>{var t=G;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return qe(e,this.#i.parent),null}}))};We(()=>{var t;try{t=this.transform_error(e)}catch(e){qe(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>qe(e,this.#i&&this.#i.parent)):o(t)})}};function at(e,t,n,r){let i=Ve()?lt:ft;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=G,c=ot(),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){qe(e,s)}st()}}var d=ct();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>dt(e))).then(u).catch(e=>qe(e,s)).finally(d)}l?l.then(()=>{c(),f(),st()}):f()}function ot(){var e=G,t=W,n=Le,r=I;return function(i=!0){Wn(e),Un(t),Re(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function st(e=!0){Wn(null),Un(null),Re(null),e&&I?.deactivate()}function ct(){var e=G,t=e.b,n=I,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 lt(e){var t=2|g;return G!==null&&(G.f|=C),{ctx:Le,deps:null,effects:null,equals:Pe,f:t,fn:e,reactions:null,rv:0,v:A,wv:0,parent:G,ac:null}}var ut=Symbol(`obsolete`);function dt(e,t,n){let r=G;r===null&&pe();var i=void 0,a=Vt(A),o=!W,s=new Set;return Cn(()=>{var t=G,n=p();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ue&&n.reject(e)}).finally(st)}catch(e){n.reject(e),st()}var c=I;if(o){if(t.f&32768)var l=ct();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(ut);else for(let e of s.values())e.reject(ut);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==ut&&(c.activate(),t?(a.f|=ne,Ut(a,t)):(a.f&8388608&&(a.f^=ne),Ut(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),vn(()=>{for(let e of s)e.reject(ut)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function F(e){let t=lt(e);return Kn(t),t}function ft(e){let t=lt(e);return t.equals=Ie,t}function pt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)An(t[n])}}function mt(e){var t,n=G,r=e.parent;if(!Bn&&r!==null&&e.v!==A&&r.f&24576)return j(),e.v;Wn(r);try{e.f&=~E,pt(e),t=ir(e)}finally{Wn(n)}return t}function ht(e){var t=mt(e);if(!e.equals(t)&&(e.wv=tr(),(!I?.is_fork||e.deps===null)&&(I===null?e.v=t:(I.capture(e,t,!0),yt?.capture(e,t,!0)),e.deps===null))){Ye(e,h);return}Bn||(bt===null?Xe(e):(_n()||I?.is_fork)&&bt.set(e,t))}function gt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ue),t.fn!==null&&(t.teardown=d),t.ac=null,or(t,0),On(t))}function _t(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&sr(t)}var vt=null,I=null,yt=null,bt=null,xt=null,St=!1,Ct=!1,wt=null,Tt=null,Et=0,Dt=1,Ot=class e{id=Dt++;#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(){vt===null?vt=this:(vt.#n=this,this.#t=vt),vt=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)Ye(r,g),t(r);for(r of n.m)Ye(r,_),t(r)}this.#p.add(e)}#g(){this.#e=!0,Et++>1e3&&(this.#x(),At());for(let e of this.#u)this.#d.delete(e),Ye(e,g),this.schedule(e);for(let e of this.#d)Ye(e,_),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=wt=[],r=[],i=Tt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Lt(e),this.#h()||this.discard(),t}if(I=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(wt=null,Tt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)It(e,t);i.length>0&&I.#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(),yt=this,Mt(r),Mt(n),yt=null,this.#s?.resolve();var s=I;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^=h;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^=h:i&4?t.push(r):nr(r)&&(i&16&&this.#d.add(r),sr(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),Ye(i,g),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),I=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)Qe(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]),bt?.set(e,t)),this.is_fork||(e.v=t)}activate(){I=this}deactivate(){I=null,bt=null}flush(){try{Ct=!0,I=this,this.#g()}finally{Et=0,xt=null,wt=null,Tt=null,Ct=!1,I=null,bt=null,zt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(ut);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,We(()=>{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??=p()).promise}static ensure(){if(I===null){let t=I=new e;!Ct&&!St&&We(()=>{t.#e||t.flush()})}return I}apply(){bt=null}schedule(e){if(xt=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(wt!==null&&t===G&&(W===null||!(W.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=h}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?vt=e:t.#t=e,this.linked=!1}}};function kt(e){var t=St;St=!0;try{var n;for(e&&(I!==null&&!I.is_fork&&I.flush(),n=e());;){if(Ge(),I===null)return n;I.flush()}}finally{St=t}}function At(){try{_e()}catch(e){qe(e,xt)}}var jt=null;function Mt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&nr(r)&&(jt=new Set,sr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Mn(r),jt?.size>0)){zt.clear();for(let e of jt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)jt.has(n)&&(jt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||sr(n)}}jt.clear()}}jt=null}}function Nt(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?Nt(i,t,n,r):e&4194320&&!(e&2048)&&Pt(i,t,r)&&(Ye(i,g),Ft(i))}}function Pt(e,t,r){let i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(n.call(t,i))return!0;if(i.f&2&&Pt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Ft(e){I.schedule(e)}function It(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),Ye(e,h);for(var n=e.first;n!==null;)It(n,t),n=n.next}}function Lt(e){Ye(e,h);for(var t=e.first;t!==null;)Lt(t),t=t.next}var Rt=new Set,zt=new Map,Bt=!1;function Vt(e,t){return{f:0,v:e,reactions:null,equals:Pe,rv:0,wv:0}}function L(e,t){let n=Vt(e,t);return Kn(n),n}function Ht(e,t=!1,n=!0){let r=Vt(e);return t||(r.equals=Ie),r}function R(e,t,n=!1){return W!==null&&(!Hn||W.f&131072)&&Ve()&&W.f&4325394&&(Gn===null||!Gn.has(e))&&xe(),Ut(e,n?z(t):t,Tt)}function Ut(e,t,n=null){if(!e.equals(t)){zt.set(e,Bn?t:e.v);var r=Ot.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&mt(t),bt===null&&Xe(t)}e.wv=tr(),Kt(e,g,n),Ve()&&G!==null&&G.f&1024&&!(G.f&96)&&(Yn===null?Xn([e]):Yn.push(e)),!r.is_fork&&Rt.size>0&&!Bt&&Wt()}return t}function Wt(){Bt=!1;for(let e of Rt){e.f&1024&&Ye(e,_);let t;try{t=nr(e)}catch{t=!0}t&&sr(e)}Rt.clear()}function Gt(e){R(e,e.v+1)}function Kt(e,t,n){var r=e.reactions;if(r!==null)for(var i=Ve(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===G)){var l=(c&g)===0;if(l&&Ye(s,t),c&131072)Rt.add(s);else if(c&2){var u=s;bt?.delete(u),c&65536||(c&512&&(G===null||!(G.f&2097152))&&(s.f|=E),Kt(u,_,n))}else if(l){var d=s;c&16&&jt!==null&&jt.add(d),n===null?Ft(d):n.push(d)}}}}function z(t){if(typeof t!=`object`||!t||O in t)return t;let n=l(t);if(n!==s&&n!==c)return t;var r=new Map,i=e(t),o=L(0),u=null,d=$n,f=e=>{if($n===d)return e();var t=W,n=$n;Un(null),er(d);var r=e();return Un(t),er(n),r};return i&&r.set(`length`,L(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&ye();var i=r.get(t);return i===void 0?f(()=>{var e=L(n.value,u);return r.set(t,e),e}):R(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>L(A,u));r.set(t,e),Gt(o)}}else R(n,A),Gt(o);return!0},get(e,n,i){if(n===O)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>L(z(s?e[n]:A),u)),r.set(n,o)),o!==void 0){var c=K(o);return c===A?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=K(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==A)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===O)return!0;var n=r.get(t),i=n!==void 0&&n.v!==A||Reflect.has(e,t);return(n!==void 0||G!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>L(i?z(e[t]):A,u)),r.set(t,n)),K(n)===A)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;d<c.v;d+=1){var p=r.get(d+``);p===void 0?d in e&&(p=f(()=>L(A,u)),r.set(d+``,p)):R(p,A)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>L(void 0,u)),R(c,z(n)),r.set(t,c));else{l=c.v!==A;var m=f(()=>z(n));R(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&R(g,_+1)}Gt(o)}return!0},ownKeys(e){K(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==A});for(var[n,i]of r)i.v!==A&&!(n in e)&&t.push(n);return t},setPrototypeOf(){be()}})}function qt(e){try{if(typeof e==`object`&&e&&O in e)return e[O]}catch{}return e}function Jt(e,t){return Object.is(qt(e),qt(t))}var Yt,Xt,Zt,Qt,$t;function en(){if(Yt===void 0){Yt=window,Xt=document,Zt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Qt=a(t,`firstChild`).get,$t=a(t,`nextSibling`).get,u(e)&&(e[oe]=void 0,e[ae]=null,e[se]=void 0,e.__e=void 0),u(n)&&(n[ce]=void 0)}}function tn(e=``){return document.createTextNode(e)}function nn(e){return Qt.call(e)}function rn(e){return $t.call(e)}function B(e,t){if(!M)return nn(e);var n=nn(N);if(n===null)n=N.appendChild(tn());else if(t&&n.nodeType!==3){var r=tn();return n?.before(r),ke(r),r}return t&&cn(n),ke(n),n}function V(e,t=!1){if(!M){var n=nn(e);return n instanceof Comment&&n.data===``?rn(n):n}if(t){if(N?.nodeType!==3){var r=tn();return N?.before(r),ke(r),r}cn(N)}return N}function H(e,t=1,n=!1){let r=M?N:e;for(var i;t--;)i=r,r=rn(r);if(!M)return r;if(n){if(r?.nodeType!==3){var a=tn();return r===null?i?.after(a):r.before(a),ke(a),a}cn(r)}return ke(r),r}function an(e){e.textContent=``}function on(){return!1}function sn(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 cn(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 ln(e){M&&nn(e)!==null&&an(e)}var un=!1;function dn(){un||(un=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[le]?.()})},{capture:!0}))}function fn(e){var t=W,n=G;Un(null),Wn(null);try{return e()}finally{Un(t),Wn(n)}}function pn(e,t,n,r=n){e.addEventListener(t,()=>fn(n));let i=e[le];i?e[le]=()=>{i(),r(!0)}:e[le]=()=>r(!0),dn()}function mn(e){G===null&&(W===null&&ge(e),he()),Bn&&me(e)}function hn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function gn(e,t){var n=G;n!==null&&n.f&8192&&(e|=v);var r={ctx:Le,deps:null,nodes:null,f:e|g|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};I?.register_created_effect(r);var i=r;if(e&4)wt===null?Ot.ensure().schedule(r):wt.push(r);else if(t!==null){try{sr(r)}catch(e){throw An(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|=S))}if(i!==null&&(i.parent=n,n!==null&&hn(i,n),W!==null&&W.f&2&&!(e&64))){var a=W;(a.effects??=[]).push(i)}return r}function _n(){return W!==null&&!Hn}function vn(e){let t=gn(8,null);return Ye(t,h),t.teardown=e,t}function yn(e){mn(`$effect`);var t=G.f;if(!W&&t&32&&Le!==null&&!Le.i){var n=Le;(n.e??=[]).push(e)}else return bn(e)}function bn(e){return gn(4|w,e)}function xn(e){Ot.ensure();let t=gn(64|C,e);return(e={})=>new Promise(n=>{e.outro?Nn(t,()=>{An(t),n(void 0)}):(An(t),n(void 0))})}function Sn(e){return gn(4,e)}function Cn(e){return gn(D|C,e)}function wn(e,t=0){return gn(8|t,e)}function U(e,t=[],n=[],r=[]){at(r,t,n,t=>{gn(8,()=>{e(...t.map(K))})})}function Tn(e,t=0){return gn(16|t,e)}function En(e){return gn(32|C,e)}function Dn(e){var t=e.teardown;if(t!==null){let e=Bn,n=W;Vn(!0),Un(null);try{t.call(null)}finally{Vn(e),Un(n)}}}function On(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&fn(()=>{e.abort(ue)});var r=n.next;n.f&64?n.parent=null:An(n,t),n=r}}function kn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||An(t),t=n}}function An(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(jn(e.nodes.start,e.nodes.end),n=!0),e.f|=x,On(e,t&&!n),or(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Dn(e),e.f^=x,e.f|=y;var i=e.parent;i!==null&&i.first!==null&&Mn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function jn(e,t){for(;e!==null;){var n=e===t?null:rn(e);e.remove(),e=n}}function Mn(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 Nn(e,t,n=!0){var r=[];Pn(e,r,!0);var i=()=>{n&&An(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Pn(e,t,n){if(!(e.f&8192)){e.f^=v;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;Pn(i,t,o?n:!1)}i=a}}}function Fn(e){In(e,!0)}function In(e,t){if(e.f&8192){e.f^=v,e.f&1024||(Ye(e,g),Ot.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;In(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 Ln(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:rn(n);t.append(n),n=i}}var Rn=null,zn=!1,Bn=!1;function Vn(e){Bn=e}var W=null,Hn=!1;function Un(e){W=e}var G=null;function Wn(e){G=e}var Gn=null;function Kn(e){W!==null&&(Gn??=new Set).add(e)}var qn=null,Jn=0,Yn=null;function Xn(e){Yn=e}var Zn=1,Qn=0,$n=Qn;function er(e){$n=e}function tr(){return++Zn}function nr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~E),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(nr(a)&&ht(a),a.wv>e.wv)return!0}t&512&&bt===null&&Ye(e,h)}return!1}function rr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Gn!==null&&Gn.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?rr(a,t,!1):t===a&&(n?Ye(a,g):a.f&1024&&Ye(a,_),Ft(a))}}function ir(e){var t=qn,n=Jn,r=Yn,i=W,a=Gn,o=Le,s=Hn,c=$n,l=e.f;qn=null,Jn=0,Yn=null,W=l&96?null:e,Gn=null,Re(e.ctx),Hn=!1,$n=++Qn,e.ac!==null&&(fn(()=>{e.ac.abort(ue)}),e.ac=null);try{e.f|=te;var u=e.fn,d=u();e.f|=b;var f=e.deps,p=I?.is_fork;if(qn!==null){var m;if(p||or(e,Jn),f!==null&&Jn>0)for(f.length=Jn+qn.length,m=0;m<qn.length;m++)f[Jn+m]=qn[m];else e.deps=f=qn;if(_n()&&e.f&512)for(m=Jn;m<f.length;m++)(f[m].reactions??=[]).push(e)}else!p&&f!==null&&Jn<f.length&&(or(e,Jn),f.length=Jn);if(Ve()&&Yn!==null&&!Hn&&f!==null&&!(e.f&6146))for(m=0;m<Yn.length;m++)rr(Yn[m],e);if(i!==null&&i!==e){if(Qn++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=Qn;if(t!==null)for(let e of t)e.rv=Qn;Yn!==null&&(r===null?r=Yn:r.push(...Yn))}return e.f&8388608&&(e.f^=ne),d}catch(e){return Ke(e)}finally{e.f^=te,qn=t,Jn=n,Yn=r,W=i,Gn=a,Re(o),Hn=s,$n=c}}function ar(e,r){let i=r.reactions;if(i!==null){var a=t.call(i,e);if(a!==-1){var o=i.length-1;o===0?i=r.reactions=null:(i[a]=i[o],i.pop())}}if(i===null&&r.f&2&&(qn===null||!n.call(qn,r))){var s=r;s.f&512&&(s.f^=512,s.f&=~E),s.v!==A&&Xe(s),gt(s),or(s,0)}}function or(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ar(e,n[r])}function sr(e){var t=e.f;if(!(t&16384)){Ye(e,h);var n=G,r=zn;G=e,zn=!0;try{t&16777232?kn(e):On(e),Dn(e);var i=ir(e);e.teardown=typeof i==`function`?i:null,e.wv=Zn}finally{zn=r,G=n}}}async function cr(){await Promise.resolve(),kt()}function K(e){var t=(e.f&2)!=0;if(Rn?.add(e),W!==null&&!Hn&&!(G!==null&&G.f&16384)&&(Gn===null||!Gn.has(e))){var r=W.deps;if(W.f&2097152)e.rv<Qn&&(e.rv=Qn,qn===null&&r!==null&&r[Jn]===e?Jn++:qn===null?qn=[e]:qn.push(e));else{W.deps??=[],n.call(W.deps,e)||W.deps.push(e);var i=e.reactions;i===null?e.reactions=[W]:n.call(i,W)||i.push(W)}}if(Bn&&zt.has(e))return zt.get(e);if(t){var a=e;if(Bn){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||ur(a))&&(o=mt(a)),zt.set(a,o),o}var s=(a.f&512)==0&&!Hn&&W!==null&&(zn||(W.f&512)!=0),c=(a.f&b)===0;nr(a)&&(s&&(a.f|=512),ht(a)),s&&!c&&(_t(a),lr(a))}if(bt?.has(e))return bt.get(e);if(e.f&8388608)throw e.v;return e.v}function lr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(_t(t),lr(t))}function ur(e){if(e.v===A)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(zt.has(t)||t.f&2&&ur(t))return!0;return!1}function dr(e){var t=Hn;try{return Hn=!0,e()}finally{Hn=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 fr=[`touchstart`,`touchmove`];function pr(e){return fr.includes(e)}var mr=Symbol(`events`),hr=new Set,gr=new Set;function _r(e,t,n,r={}){function i(e){if(r.capture||xr.call(t,e),!e.cancelBubble)return fn(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?We(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function vr(e,t,n,r,i){var a={capture:r,passive:i},o=_r(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&vn(()=>{t.removeEventListener(e,o,a)})}function q(e,t,n){(t[mr]??={})[e]=n}function yr(e){for(var t=0;t<e.length;t++)hr.add(e[t]);for(var n of gr)n(e)}var br=null;function xr(e){var t=this,n=t.ownerDocument,r=e.type,a=e.composedPath?.()||[],o=a[0]||e.target;br=e;var s=0,c=br===e&&e[mr];if(c){var l=a.indexOf(c);if(l!==-1&&(t===document||t===window)){e[mr]=t;return}var u=a.indexOf(t);if(u===-1)return;l<=u&&(s=l)}if(o=a[s]||e.target,o!==t){i(e,`currentTarget`,{configurable:!0,get(){return o||n}});var d=W,f=G;Un(null),Wn(null);try{for(var p,m=[];o!==null&&o!==t;){try{var h=o[mr]?.[r];h!=null&&(!o.disabled||e.target===o)&&h.call(o,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;s++,o=s<a.length?a[s]:null}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[mr]=t,delete e.currentTarget,Un(d),Wn(f)}}}var Sr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Cr(e){return Sr?.createHTML(e)??e}function wr(e){var t=sn(`template`);return t.innerHTML=Cr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Tr(e,t){var n=G;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function J(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(M)return Tr(N,null),N;i===void 0&&(i=wr(a?e:`<!>`+e),n||(i=nn(i)));var t=r||Zt?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=nn(t),s=t.lastChild;Tr(o,s)}else Tr(t,t);return t}}function Er(e=``){if(!M){var t=tn(e+``);return Tr(t,t),t}var n=N;return n.nodeType===3?cn(n):(n.before(n=tn()),ke(n)),Tr(n,n),n}function Dr(){if(M)return Tr(N,null),N;var e=document.createDocumentFragment(),t=document.createComment(``),n=tn();return e.append(t,n),Tr(t,n),e}function Y(e,t){if(M){var n=G;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=N),Ae();return}e!==null&&e.before(t)}function X(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[ce]??=e.nodeValue)&&(e[ce]=n,e.nodeValue=`${n}`)}function Or(e,t){return Ar(e,t)}var kr=new Map;function Ar(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){en();var l=void 0,u=xn(()=>{var s=n??t.appendChild(tn());rt(s,{pending:()=>{}},t=>{ze({});var n=Le;if(o&&(n.c=o),a&&(i.$$events=a),M&&Tr(t,null),l=e(t,i)||{},M&&(G.nodes.end=N,N===null||N.nodeType!==8||N.data!==`]`))throw Te(),Ce;Be()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=pr(r);for(let e of[t,document]){var a=kr.get(e);a===void 0&&(a=new Map,kr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,xr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(r(hr)),gr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=kr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,xr),r.delete(e),r.size===0&&kr.delete(n)):r.set(e,i)}gr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return jr.set(l,u),l}var jr=new WeakMap,Mr=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)Fn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Fn(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&&(An(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();Ln(r,t),t.append(tn()),this.#n.set(e,{effect:r,fragment:t})}else An(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Nn(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)||(An(n.effect),this.#n.delete(e))};ensure(e,t){var n=I,r=on();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=tn();i.append(a),this.#n.set(e,{effect:En(()=>t(a)),fragment:i})}else this.#t.set(e,En(()=>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 M&&(this.anchor=N),this.#a(n)}};function Z(e,t,n=!1){var r;M&&(r=N,Ae());var i=new Mr(e),a=n?S:0;function o(e,t){if(M){var n=Ne(r);if(e!==parseInt(n.substring(1))){var a=Me();ke(a),i.anchor=a,Oe(!1),i.ensure(e,t),Oe(!0);return}}i.ensure(e,t)}Tn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Nr(e,t){return t}function Pr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c<a;c++){let n=t[c];Nn(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;Fr(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;an(d),d.append(u),e.items.clear()}Fr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Fr(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|=T,Ln(a,document.createDocumentFragment())):An(t[i],n)}}var Ir;function Q(t,n,i,a,o,s=null){var c=t,l=new Map;if(n&4){var u=t;c=M?ke(nn(u)):u.appendChild(tn())}M&&Ae();var d=null,f=ft(()=>{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,Rr(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=T,Br(d,null,c)):Fn(d):Nn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:Tn(()=>{p=K(f);var e=p.length;let t=!1;M&&Ne(c)===`[!`!=(e===0)&&(c=Me(),ke(c),Oe(!1),t=!0);for(var r=new Set,u=I,v=on(),y=0;y<e;y+=1){M&&N.nodeType===8&&N.data===`]`&&(c=N,t=!0,Oe(!1));var b=p[y],x=a(b,y),S=h?null:l.get(x);S?(S.v&&Ut(S.v,b),S.i&&Ut(S.i,y),v&&u.unskip_effect(S.e)):(S=zr(l,h?c:Ir??=tn(),b,x,y,o,n,i),h||(S.e.f|=T),l.set(x,S)),r.add(x)}if(e===0&&s&&!d&&(h?d=En(()=>s(c)):(d=En(()=>s(Ir??=tn())),d.f|=T)),e>r.size&&k(``,``,``),M&&e>0&&ke(Me()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Oe(!0),K(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,M&&(c=N)}function Lr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Rr(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=Lr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v<s;v+=1)h=t[v],g=a(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=a(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(Fn(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=T,_===l)Br(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),Vr(e,d,_),Vr(e,_,y),Br(_,y,n),d=_,p=[],m=[],l=Lr(d.next);continue}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],ee=p[p.length-1];for(x=0;x<p.length;x+=1)Br(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);Vr(e,S.prev,ee.next),Vr(e,d,S),Vr(e,ee,b),l=b,d=ee,--v,p=[],m=[]}else u.delete(_),Br(_,l,n),Vr(e,_.prev,_.next),Vr(e,_,d===null?e.effect.first:d.next),Vr(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=Lr(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=Lr(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(Fr(e,r(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var C=[];if(u!==void 0)for(_ of u)_.f&8192||C.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&C.push(l),l=Lr(l.next);var w=C.length;if(w>0){var E=i&4&&s===0?n:null;if(o){for(v=0;v<w;v+=1)C[v].nodes?.a?.measure();for(v=0;v<w;v+=1)C[v].nodes?.a?.fix()}Pr(e,C,E)}}o&&We(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function zr(e,t,n,r,i,a,o,s){var c=o&1?o&16?Vt(n):Ht(n,!1,!1):null,l=o&2?Vt(i):null;return{v:c,i:l,e:En(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function Br(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=rn(r);if(a.before(r),r===i)return;r=o}}function Vr(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Hr(e,t){let n=null,r=M;var i;if(M){n=N;for(var a=nn(document.head);a!==null&&(a.nodeType!==8||a.data!==e);)a=rn(a);if(a===null)Oe(!1);else{var o=rn(a);a.remove(),ke(o)}}M||(i=document.head.appendChild(tn()));try{Tn(()=>{var e=En(()=>t(i));e.f|=ee})}finally{r&&(Oe(!0),ke(n))}}function Ur(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=Ur(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Wr(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Ur(e))&&(r&&(r+=` `),r+=t);return r}function Gr(e){return typeof e==`object`?Wr(e):e??``}var Kr=[...`
|
|
2
|
+
\r\f\xA0\v`];function qr(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||Kr.includes(r[o-1]))&&(s===r.length||Kr.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function Jr(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 Yr(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Xr(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(Yr)),i&&c.push(...Object.keys(i).map(Yr));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=Yr(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+=Jr(r)),i&&(n+=Jr(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function Zr(e,t,n,r,i,a){var o=e[oe];if(M||o!==n||o===void 0){var s=qr(n,r,a);(!M||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[oe]=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 Qr(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 $r(e,t,n,r){var i=e[se];if(M||i!==t){var a=Xr(t,r);(!M||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[se]=t}else r&&(Array.isArray(r)?(Qr(e,n?.[0],r[0]),Qr(e,n?.[1],r[1],`important`)):Qr(e,n,r));return r}function ei(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return Ee();for(var i of t.options)i.selected=n.includes(ri(i));return}for(i of t.options)if(Jt(ri(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function ti(e){var t=new MutationObserver(()=>{ei(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),vn(()=>{t.disconnect()})}function ni(e,t,n=t){var r=new WeakSet,i=!0;pn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),ri);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&ri(o)}n(a),e.__value=a,I!==null&&r.add(I)}),Sn(()=>{var a=t();if(e===document.activeElement){var o=I;if(r.has(o))return}if(ei(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=ri(s),n(a))}e.__value=a,i=!1}),ti(e)}function ri(e){return`__value`in e?e.__value:e.value}var ii=Symbol(`is custom element`),ai=Symbol(`is html`),oi=de?`link`:`LINK`,si=de?`progress`:`PROGRESS`;function ci(e){if(M){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;$(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;$(e,`checked`,null),e.checked=r}}};e[le]=n,We(n),dn()}}function li(e,t){var n=di(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==si)||(e.value=t??``)}function ui(e,t){var n=di(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function $(e,t,n,r){var i=di(e);M&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===oi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ie]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&pi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function di(e){return e[ae]??={[ii]:e.nodeName.includes(`-`),[ai]:e.namespaceURI===we}}var fi=new Map;function pi(e){var t=e.getAttribute(`is`)||e.nodeName,n=fi.get(t);if(n)return n;fi.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.push(s);i=l(i)}return n}function mi(e,t,n=t){var r=new WeakSet;pn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=hi(e)?gi(a):a,n(a),I!==null&&r.add(I),await cr(),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))}}}),(M&&e.defaultValue!==e.value||dr(t)==null&&e.value)&&(n(hi(e)?gi(e.value):e.value),I!==null&&r.add(I)),wn(()=>{var n=t();if(e===document.activeElement){var i=I;if(r.has(i))return}hi(e)&&n===gi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function hi(e){var t=e.type;return t===`number`||t===`range`}function gi(e){return e===``?null:+e}function _i(e,t){return e===t||e?.[O]===t}function vi(e={},t,n,r){var i=Le.r,a=G;return Sn(()=>{var o,s;return wn(()=>{o=s,s=r?.()||[],dr(()=>{_i(n(...s),e)||(t(e,...s),o&&_i(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&&_i(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function yi(e,t,n,r){var i=!0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=lt(r),K(u)):(l&&(l=!1,c=s?dr(r):r),c);let f;if(o){var p=O in e||re in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=et(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&ve(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?lt:ft)(()=>(v=!1,g()));o&&K(y);var b=G;return(function(e,t){if(arguments.length>0){let n=t?K(y):i&&o?z(e):e;return R(y,n),v=!0,c!==void 0&&(c=n),e}return Bn&&v||b.f&16384?y.v:K(y)})}function bi(e){Le===null&&fe(`onMount`),yn(()=>{let t=dr(e);if(typeof t==`function`)return t})}function xi(e){Le===null&&fe(`onDestroy`),bi(()=>()=>dr(e))}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Si=J(`<span class="session-model svelte-t9laac"><small> </small></span>`),Ci=J(`<p class="session-path svelte-t9laac"> <!></p>`),wi=J(`<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> <!> <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></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"><option>System</option><option>Light</option><option>Dark</option></select></label></div>`,1);function Ti(e,t){ze(t,!0);let n=yi(t,`sessionPath`,3,null),r=yi(t,`sessionModel`,3,null);var i=wi(),a=V(i),o=H(B(a),2),s=e=>{var t=Ci(),i=B(t,!0),a=H(i),o=e=>{var t=Si(),n=B(t),i=B(n);P(n),P(t),U(()=>X(i,`· ${r()??``}`)),Y(e,t)};Z(a,e=>{r()&&e(o)}),P(t),U(()=>{$(t,`title`,n()),X(i,n())}),Y(e,t)};Z(o,e=>{n()&&e(s)}),je(2),P(a);var c=H(a,2),l=H(B(c),2),u=H(B(l),2),d=B(u);d.value=d.__value=`system`;var f=H(d);f.value=f.__value=`light`;var p=H(f);p.value=p.__value=`dark`,P(u);var m;ti(u),P(l),P(c),U(()=>{m!==(m=t.theme)&&(u.value=(u.__value=t.theme)??``,ei(u,t.theme))}),q(`change`,u,e=>t.onthemechange(e.currentTarget.value)),Y(e,i),Be()}yr([`change`]);function Ei(e){if(Di(e))return null;let[t,n]=e.label.split(` · `,2);return{kind:t,...n?{status:n}:{},content:Oi(t,e.detail)}}function Di(e){return e.label.startsWith(`Tool`)&&(e.detail.includes(`context_mode`)||/(^|[_:])ctx_[a-z]/i.test(e.detail))}function Oi(e,t){return e===`Command`?ki(t):e===`File change`||e===`fileChange`?t.split(`
|
|
3
|
+
`).filter(Boolean).join(`, `):t}function ki(e){let t=e.match(/^\/bin\/bash -lc "([\s\S]*)"$/);return t?t[1].replace(/\\"/g,`"`).replace(/\\\\/g,`\\`):e}var Ai=J(`<li class="activity-row svelte-thyolt"><small class="activity-type svelte-thyolt"> </small> <span class="activity-content svelte-thyolt"> </span></li>`),ji=J(`<details id="chat-activity" class="svelte-thyolt"><summary class="svelte-thyolt">activity</summary> <ul class="activity-list svelte-thyolt"></ul></details>`);function Mi(e,t){ze(t,!0);let n=F(()=>t.activities.flatMap(e=>{let t=Ei(e);return t?[{id:e.id,...t}]:[]})),r=F(()=>K(n).some(e=>e.status!==`completed`&&e.status!==`failed`));var i=Dr(),a=V(i),o=e=>{var t=ji(),i=H(B(t),2);Q(i,21,()=>K(n),e=>e.id,(e,t)=>{var n=Ai(),r=B(n),i=B(r);P(r);var a=H(r,2),o=B(a,!0);P(a),P(n),U(e=>{$(n,`data-activity-kind`,e),$(n,`data-activity-status`,K(t).status),X(i,`${K(t).kind??``}${K(t).status?` · ${K(t).status}`:``}`),X(o,K(t).content)},[()=>K(t).kind.toLowerCase().replaceAll(` `,`-`)]),Y(e,n)}),P(i),P(t),U(()=>t.open=K(r)),Y(e,t)};Z(a,e=>{K(n).length&&e(o)}),Y(e,i),Be()}function Ni(e){if(!e||typeof e!=`object`)return null;let t=e.command;return typeof t==`string`&&t.trim()?t:null}function Pi(e){return!Ii(e)||!Array.isArray(e.questions)?[]:e.questions.flatMap(e=>!Ii(e)||typeof e.id!=`string`||typeof e.header!=`string`||typeof e.question!=`string`?[]:[{id:e.id,header:e.header,question:e.question,isSecret:e.isSecret===!0,options:Array.isArray(e.options)?e.options.flatMap(e=>Ii(e)&&typeof e.label==`string`&&typeof e.description==`string`?[{label:e.label,description:e.description}]:[]):[]}])}function Fi(e){return{answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,{answers:[e.answer]}]))}}function Ii(e){return typeof e==`object`&&!!e}var Li=J(`<button type="button"> </button>`),Ri=J(`<label> </label> <input/> <!>`,1),zi=J(`<form><!> <button type="submit">Send answers</button></form>`),Bi=J(`<p>Grant the requested permissions for this turn only.</p><button type="button">Approve</button>`,1),Vi=J(`<pre class="command-approval-command svelte-ajsqcq"><code> </code></pre>`),Hi=J(`<p class="command-approval-missing svelte-ajsqcq">Command details were not provided.</p>`),Ui=J(`<p>Approve this command?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),Wi=J(`<button type="button">Approve</button><button type="button">Deny</button>`,1),Gi=J(`<article><p> </p> <!></article>`),Ki=J(`<section aria-labelledby="interactions-title"><h3 id="interactions-title">Codex needs your decision</h3> <!></section>`);function qi(e,t){ze(t,!0);var n=Dr(),r=V(n),i=e=>{var n=Ki();Q(H(B(n),2),17,()=>t.interactions,e=>e.requestId,(e,n)=>{var r=Gi(),i=B(r),a=B(i,!0);P(i);var o=H(i,2),s=e=>{let r=F(()=>Pi(K(n).payload));var i=zi(),a=B(i);Q(a,17,()=>K(r),e=>e.id,(e,r)=>{var i=Ri(),a=V(i),o=B(a);P(a);var s=H(a,2);ci(s),Q(H(s,2),17,()=>K(r).options,e=>e.label,(e,n)=>{var i=Li(),a=B(i,!0);P(i),U(()=>X(a,K(n).label)),q(`click`,i,()=>t.onanswer(K(r).id,K(n).label)),Y(e,i)}),U(()=>{$(a,`for`,`${K(n).requestId}-${K(r).id}`),X(o,`${K(r).header??``}: ${K(r).question??``}`),$(s,`id`,`${K(n).requestId}-${K(r).id}`),$(s,`type`,K(r).isSecret?`password`:`text`),li(s,t.answers[K(r).id]??``)}),q(`input`,s,e=>t.onanswer(K(r).id,e.currentTarget.value)),Y(e,i)});var o=H(a,2);P(i),U(()=>o.disabled=!K(r).length),vr(`submit`,i,e=>{e.preventDefault(),t.onuserinput(K(n))}),Y(e,i)},c=e=>{var r=Bi();q(`click`,H(V(r)),()=>t.onpermission(K(n))),Y(e,r)},l=e=>{let r=F(()=>Ni(K(n).payload));var i=Ui(),a=H(V(i),2),o=e=>{var t=Vi(),n=B(t),i=B(n,!0);P(n),P(t),U(()=>X(i,K(r))),Y(e,t)},s=e=>{Y(e,Hi())};Z(a,e=>{K(r)?e(o):e(s,-1)});var c=H(a,2),l=B(c),u=H(l,2);P(c),q(`click`,l,()=>t.ondecision(K(n).requestId,`accept`)),q(`click`,u,()=>t.ondecision(K(n).requestId,`decline`)),Y(e,i)},u=e=>{var r=Wi(),i=V(r),a=H(i);q(`click`,i,()=>t.ondecision(K(n).requestId,`accept`)),q(`click`,a,()=>t.ondecision(K(n).requestId,`decline`)),Y(e,r)};Z(o,e=>{K(n).kind===`userInput`?e(s):K(n).kind===`permissionsApproval`?e(c,1):K(n).kind===`commandApproval`?e(l,2):e(u,-1)}),P(r),U(()=>X(a,K(n).kind)),Y(e,r)}),P(n),Y(e,n)};Z(r,e=>{t.interactions.length&&e(i)}),Y(e,n),Be()}yr([`input`,`click`]);var Ji=[{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 Yi(e){let t=e.match(/^\/([^\s]*)$/);return t?t[1].toLowerCase():null}function Xi(e){let t=Yi(e);return t===null?[]:Ji.filter(e=>e.name.startsWith(t))}function Zi(e){let t=e.match(/^\/([^\s]+)\s*$/)?.[1]?.toLowerCase();return Ji.find(e=>e.name===t)?.argumentPicker}function Qi(e){return[...e].sort((e,t)=>$i(t,e)||t.localeCompare(e))}function $i(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 ea(e){return e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.isComposing}var ta=J(`Ready <span class="block-cursor svelte-1264sfg" aria-hidden="true"></span>`,1),na=J(`<li><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code> <small class="svelte-1264sfg"> </small></button></li>`),ra=J(`<ul id="chat-command-completion" class="command-menu svelte-1264sfg" aria-label="Chat commands"></ul>`),ia=J(`<li class="svelte-1264sfg"><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code></button></li>`),aa=J(`<ul class="command-menu svelte-1264sfg" aria-label="Available models"></ul>`),oa=J(`<ul class="command-menu svelte-1264sfg" aria-label="Reasoning efforts"></ul>`),sa=J(`<button type="button" class="svelte-1264sfg">Interrupt</button>`),ca=J(`<form class="svelte-1264sfg"><p role="status" 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 la(e,t){ze(t,!0);let n=yi(t,`models`,19,()=>[]),r=yi(t,`onscrollbottom`,3,()=>{}),i=yi(t,`onmodelselect`,3,()=>{}),a=L(0),o=L(null),s=F(()=>Xi(t.message)),c=F(()=>Yi(t.message)),l=F(()=>K(c)!==null&&K(c)!==K(o)&&K(s).length>0),u=F(()=>Zi(t.message)),d=F(()=>K(u)===`models`),f=F(()=>Qi(n())),p=F(()=>K(u)===`reasoning`);function m(e){R(o,null),R(a,0),t.onchange(e),r()()}function h(e=K(a)){let t=K(s)[e];t&&m(`/${t.name} `)}function g(e){if(K(l)){if(e.key===`ArrowDown`){e.preventDefault(),R(a,(K(a)+1)%K(s).length);return}if(e.key===`ArrowUp`){e.preventDefault(),R(a,(K(a)-1+K(s).length)%K(s).length);return}if(e.key===`Escape`){e.preventDefault(),R(o,K(c),!0);return}if(e.key===`Tab`||ea(e)){e.preventDefault(),h();return}}!ea(e)||t.activeTurnId||t.starting||!t.message.trim()||(e.preventDefault(),t.onsend())}var _=ca(),v=B(_),y=B(v),b=e=>{var t=ta();je(),Y(e,t)},x=e=>{var n=Er();U(()=>X(n,t.status)),Y(e,n)};Z(y,e=>{t.status===`Ready.`?e(b):e(x,-1)}),P(v);var S=H(v,2),ee=e=>{var t=ra();Q(t,23,()=>K(s),e=>e.name,(e,t,n)=>{var r=na(),i=B(r),o=B(i),s=B(o);P(o);var c=H(o,2),l=B(c,!0);P(c),P(i),P(r),U(()=>{Zr(r,1,Gr(K(n)===K(a)?`command-selected`:void 0),`svelte-1264sfg`),X(s,`/${K(t).name??``}`),X(l,K(t).description)}),q(`click`,i,()=>h(K(n))),Y(e,r)}),P(t),Y(e,t)};Z(S,e=>{K(l)&&e(ee)});var C=H(S,2),w=e=>{var t=aa();Q(t,20,()=>K(f),e=>e,(e,t)=>{var n=ia(),r=B(n),a=B(r),o=B(a,!0);P(a),P(r),P(n),U(()=>X(o,t)),q(`click`,r,()=>i()(t)),Y(e,n)}),P(t),Y(e,t)};Z(C,e=>{K(d)&&e(w)});var T=H(C,2),E=e=>{var t=oa();Q(t,20,()=>[`low`,`medium`,`high`],e=>e,(e,t)=>{var n=ia(),r=B(n),i=B(r),a=B(i,!0);P(i),P(r),P(n),U(()=>X(a,t)),q(`click`,r,()=>m(`/reasoning ${t} `)),Y(e,n)}),P(t),Y(e,t)};Z(T,e=>{K(p)&&e(E)});var te=H(T,2),D=B(te);ln(D);var ne=H(D,2);P(te);var O=H(te,2),re=e=>{var n=sa();q(`click`,n,function(...e){t.oninterrupt?.apply(this,e)}),Y(e,n)};Z(O,e=>{t.activeTurnId&&e(re)}),P(_),U(e=>{$(v,`aria-label`,t.status),li(D,t.message),ne.disabled=e},[()=>!!t.activeTurnId||t.starting||!t.message.trim()]),vr(`submit`,_,e=>{e.preventDefault(),t.onsend()}),q(`input`,D,e=>m(e.currentTarget.value)),q(`keydown`,D,g),Y(e,_),Be()}yr([`click`,`input`,`keydown`]);function ua(e){let t=[],n=[],r=()=>{n.length&&(t.push({id:n.at(-1).id,kind:`assistant`,commentary:n.map(e=>e.text).join(`
|
|
4
|
+
|
|
5
|
+
`),answer:null,...n.at(-1)?.occurredAt?{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.occurredAt?{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
|
+
|
|
7
|
+
`):null,answer:i.text,...i.occurredAt?{occurredAt:i.occurredAt}:{}}),n=[]}return r(),t}function da(e,t){if(e===void 0||t===void 0)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 fa(e){return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}).format(e)}function pa(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(...ma(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(...ma(i)),t}function ma(e){let t=[],n=e.split(`
|
|
8
|
+
`),r=0,i=e=>{let i=n.slice(r,e).join(`
|
|
9
|
+
`);i&&t.push({kind:`text`,parts:_a(i)})};for(let e=0;e<n.length-1;e+=1){let a=ha(n[e]??``),o=ha(n[e+1]??``);if(!a||!o||a.length!==o.length||!o.every(ga))continue;i(e),e+=2;let s=[];for(;e<n.length;){let t=ha(n[e]??``);if(!t||t.length!==a.length)break;s.push(t),e+=1}t.push({kind:`table`,headers:a.map(_a),rows:s.map(e=>e.map(_a))}),r=e,--e}return i(n.length),t.length?t:[{kind:`text`,parts:_a(e)}]}function ha(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 ga(e){return/^:?-{3,}:?$/.test(e)}function _a(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 va=(e,t=d)=>{var n=Dr();Q(V(n),17,t,Nr,(e,t)=>{var n=Dr(),r=V(n),i=e=>{var n=ba(),r=B(n,!0);P(n),U(()=>{$(n,`href`,K(t).href),X(r,K(t).text)}),Y(e,n)},a=e=>{var n=xa(),r=B(n,!0);P(n),U(()=>X(r,K(t).text)),Y(e,n)},o=e=>{var n=Er();U(()=>X(n,K(t).text)),Y(e,n)};Z(r,e=>{K(t).kind===`link`?e(i):K(t).kind===`code`?e(a,1):e(o,-1)}),Y(e,n)}),Y(e,n)},ya=(e,t=d)=>{var n=Dr();Q(V(n),17,()=>pa(t()),Nr,(e,t)=>{var n=Dr(),r=V(n),i=e=>{var n=Sa(),r=B(n),i=B(r,!0);P(r),P(n),U(()=>X(i,K(t).text)),Y(e,n)},a=e=>{var n=Ea(),r=B(n),i=B(r),a=B(i);Q(a,21,()=>K(t).headers,Nr,(e,t)=>{var n=Ca();va(B(n),()=>K(t)),P(n),Y(e,n)}),P(a),P(i);var o=H(i);Q(o,21,()=>K(t).rows,Nr,(e,t)=>{var n=Ta();Q(n,21,()=>K(t),Nr,(e,t)=>{var n=wa();va(B(n),()=>K(t)),P(n),Y(e,n)}),P(n),Y(e,n)}),P(o),P(r),P(n),Y(e,n)},o=e=>{var n=Da();va(B(n),()=>K(t).parts),P(n),Y(e,n)};Z(r,e=>{K(t).kind===`code`?e(i):K(t).kind===`table`?e(a,1):e(o,-1)}),Y(e,n)}),Y(e,n)},ba=J(`<a target="_blank" rel="noreferrer"> </a>`),xa=J(`<code class="svelte-1im954t"> </code>`),Sa=J(`<pre class="svelte-1im954t"><code class="svelte-1im954t"> </code></pre>`),Ca=J(`<th scope="col" class="svelte-1im954t"><!></th>`),wa=J(`<td class="svelte-1im954t"><!></td>`),Ta=J(`<tr></tr>`),Ea=J(`<div class="table-scroll svelte-1im954t"><table class="svelte-1im954t"><thead><tr></tr></thead><tbody></tbody></table></div>`),Da=J(`<div><!></div>`),Oa=J(`<time class="svelte-1im954t"> <!></time>`),ka=J(`<div class="entry-heading svelte-1im954t"><strong>prompt</strong> <!></div> <div class="entry-content svelte-1im954t"><!></div>`,1),Aa=J(`<button class="commentary-toggle svelte-1im954t" type="button"><span aria-hidden="true"> </span>commentary</button>`),ja=J(`<div class="commentary-content svelte-1im954t"><!></div>`),Ma=J(`<section class="answer-turn"><div class="entry-heading svelte-1im954t"><strong>answer</strong> <!> <!> <!></div> <!> <div class="entry-content svelte-1im954t"><!></div></section>`),Na=J(`<section class="commentary-turn"><div class="entry-heading svelte-1im954t"><details><summary>commentary</summary> <!></details> <!></div></section>`),Pa=J(`<li><!></li>`),Fa=J(`<ol aria-label="Chat messages" class="svelte-1im954t"></ol>`);function Ia(e,t){ze(t,!0);let n=F(()=>ua(t.messages)),r=z({}),i=F(()=>K(n).findLast(e=>e.kind===`assistant`&&e.answer)?.id);var a=Fa();Q(a,23,()=>K(n),e=>e.id,(e,a,o)=>{var s=Pa(),c=B(s),l=e=>{var t=ka(),r=V(t),i=H(B(r),2),s=e=>{var t=Oa(),r=B(t),i=H(r),s=e=>{var t=Er();U(e=>X(t,`· ${e??``}`),[()=>da(K(n)[K(o)-1]?.occurredAt,K(a).occurredAt)]),Y(e,t)},c=F(()=>da(K(n)[K(o)-1]?.occurredAt,K(a).occurredAt));Z(i,e=>{K(c)&&e(s)}),P(t),U((e,n)=>{$(t,`datetime`,e),X(r,`${n??``} `)},[()=>new Date(K(a).occurredAt).toISOString(),()=>fa(K(a).occurredAt)]),Y(e,t)};Z(i,e=>{K(a).occurredAt&&e(s)}),P(r);var c=H(r,2);ya(B(c),()=>K(a).text),P(c),Y(e,t)},u=e=>{var s=Ma(),c=B(s),l=H(B(c),2),u=e=>{var t=Aa(),n=B(t),i=B(n,!0);P(n),je(),P(t),U(e=>{$(t,`aria-expanded`,e),$(t,`aria-controls`,`commentary-${K(a).id}`),X(i,r[K(a).id]?`⌄`:`>`)},[()=>!!r[K(a).id]]),q(`click`,t,()=>r[K(a).id]=!r[K(a).id]),Y(e,t)};Z(l,e=>{K(a).commentary&&e(u)});var d=H(l,2),f=e=>{Mi(e,{get activities(){return t.activities}})};Z(d,e=>{K(a).id===K(i)&&e(f)});var p=H(d,2),m=e=>{var t=Oa(),r=B(t),i=H(r),s=e=>{var t=Er();U(e=>X(t,`· ${e??``}`),[()=>da(K(n)[K(o)-1]?.occurredAt,K(a).occurredAt)]),Y(e,t)},c=F(()=>da(K(n)[K(o)-1]?.occurredAt,K(a).occurredAt));Z(i,e=>{K(c)&&e(s)}),P(t),U((e,n)=>{$(t,`datetime`,e),X(r,`${n??``} `)},[()=>new Date(K(a).occurredAt).toISOString(),()=>fa(K(a).occurredAt)]),Y(e,t)};Z(p,e=>{K(a).occurredAt&&e(m)}),P(c);var h=H(c,2),g=e=>{var t=ja();ya(B(t),()=>K(a).commentary),P(t),U(()=>$(t,`id`,`commentary-${K(a).id}`)),Y(e,t)};Z(h,e=>{K(a).commentary&&r[K(a).id]&&e(g)});var _=H(h,2);ya(B(_),()=>K(a).answer),P(_),P(s),Y(e,s)},d=e=>{var n=Na(),r=B(n),i=B(r);ya(H(B(i),2),()=>K(a).commentary),P(i),Mi(H(i,2),{get activities(){return t.activities}}),P(r),P(n),Y(e,n)};Z(c,e=>{K(a).kind===`user`?e(l):K(a).answer?e(u,1):K(a).commentary&&e(d,2)}),P(s),U(()=>Zr(s,1,Gr(K(a).kind===`user`?`prompt-turn`:`answer-item`),`svelte-1im954t`)),Y(e,s)}),P(a),Y(e,a),Be()}yr([`click`]);var La=[150,300,600];function Ra(e){return new Promise(t=>setTimeout(t,e))}function za(e){return e.status===502||e.status===503||e.status===504}async function Ba(e=fetch){for(let t=0;t<=La.length;t+=1){let n;try{n=await e(`/api/bootstrap`)}catch(e){if(e instanceof Error&&e.name===`AbortError`)throw e;if(t===La.length)throw Error(`BOOTSTRAP_FAILED`);await Ra(La[t]);continue}if(n.ok)return n.json();if(!za(n)||t===La.length)throw Error(`BOOTSTRAP_FAILED`);await Ra(La[t])}throw Error(`BOOTSTRAP_FAILED`)}function Va(e){if(typeof e.id!=`string`)return null;if(e.kind===`reasoning`&&Array.isArray(e.summary)){let t=e.summary.filter(e=>typeof e==`string`).join(`
|
|
10
|
+
`);return t?{id:e.id,label:`Reasoning summary`,detail:t}:null}return e.kind===`plan`&&typeof e.text==`string`?{id:e.id,label:`Plan`,detail:e.text}:e.kind===`command`&&typeof e.command==`string`?{id:e.id,label:`Command · ${String(e.status??`unknown`)}`,detail:e.command}:e.kind===`fileChange`&&Array.isArray(e.paths)?{id:e.id,label:`File change · ${String(e.status??`unknown`)}`,detail:e.paths.join(`
|
|
11
|
+
`)}:e.kind===`tool`&&typeof e.name==`string`?{id:e.id,label:`Tool · ${String(e.status??`unknown`)}`,detail:e.name}:null}var Ha=`gestalt-mobile`,Ua=2,Wa=[`settings`,`drafts`,`cursors`,`messages`];function Ga(e){return new Promise((t,n)=>{let r=e.open(Ha,Ua);r.onupgradeneeded=()=>{for(let e of Wa)r.result.objectStoreNames.contains(e)||r.result.createObjectStore(e)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function Ka(e,t,n){return Ya(e.transaction(t,`readonly`).objectStore(t).get(n))}function qa(e,t,n,r){return Ya(e.transaction(t,`readwrite`).objectStore(t).put(r,n))}function Ja(e,t,n){return Ya(e.transaction(t,`readwrite`).objectStore(t).delete(n))}function Ya(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}var Xa=`messages`;function Za(e){return e.slice(-200)}function Qa(e=globalThis.indexedDB){if(!e)return{read:async()=>[],write:async()=>{}};let t=Ga(e);return{async read(e){try{return await Ka(await t,Xa,e)??[]}catch{return[]}},async write(e,n){try{await qa(await t,Xa,e,Za(n))}catch{}}}}var $a={RELAY_UNAVAILABLE:`The relay is unavailable. Check the connection and try again.`,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 eo(e,t){let n=e instanceof Error?e.message:``,r=Object.hasOwn($a,n)?n:t;return{code:r,message:$a[r]}}var to={error:null,success:5e3,info:7e3};function no(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=to[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 ro=J(`<small class="svelte-1a0rutm"> </small>`),io=J(`<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>`),ao=J(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function oo(e,t){ze(t,!0);let n=L([]),r=F(()=>K(n).slice(-3));bi(()=>t.queue.subscribe(e=>R(n,e)));var i=ao();Q(i,21,()=>K(r),e=>e.id,(e,n)=>{var r=io();let i;var a=B(r),o=B(a,!0);P(a);var s=H(a,2),c=B(s),l=B(c,!0);P(c);var u=H(c,2),d=B(u,!0);P(u);var f=H(u,2),p=e=>{var t=ro(),r=B(t);P(t),U(()=>X(r,`Repeated ${K(n).occurrences??``} times.`)),Y(e,t)};Z(f,e=>{K(n).occurrences>1&&e(p)}),P(s);var m=H(s,2);P(r),U(()=>{i=Zr(r,1,`toast svelte-1a0rutm`,null,i,{error:K(n).kind===`error`}),$(r,`role`,K(n).kind===`error`?`alert`:`status`),$(r,`aria-live`,K(n).kind===`error`?`assertive`:`polite`),X(o,K(n).kind===`error`?`!`:K(n).kind===`success`?`✓`:`i`),X(l,K(n).kind===`error`?`Error`:K(n).kind===`success`?`Success`:`Info`),X(d,K(n).message),$(m,`aria-label`,`Dismiss ${K(n).kind} notification`)}),vr(`pointerenter`,r,()=>t.queue.pause(K(n).id,`hover`)),vr(`pointerleave`,r,()=>t.queue.resume(K(n).id,`hover`)),q(`focusin`,r,()=>t.queue.pause(K(n).id,`focus`)),q(`focusout`,r,()=>t.queue.resume(K(n).id,`focus`)),q(`click`,m,()=>t.queue.dismiss(K(n).id)),Y(e,r)}),P(i),Y(e,i),Be()}yr([`focusin`,`focusout`,`click`]);var so=J(`<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 co(e,t){ze(t,!0);let n=no();bi(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=so();oo(H(V(r),4),{get queue(){return n}}),Y(e,r),Be()}var lo={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function uo(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 fo(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function po(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 mo(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 ho(e,t){for(let n of e){if(n.id===t)return n;let e=ho(n.children,t);if(e)return e}}function go(e,t,n,r){if(e){let i=ho(n,e);if(i&&r(i))return i.id;let a=mo(t,e);for(let e of a.toReversed()){let t=ho(n,e);if(t&&r(t))return t.id}}return _o(n).find(r)?.id??null}function _o(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var vo=J(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),yo=J(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),bo=J(`<span class="repository-badge svelte-6z3q4v">Git</span>`),xo=J(`<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>`),So=J(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function Co(e,t){ze(t,!0);let n=yi(t,`isSelectable`,3,()=>!0),r=L(null),i=z({}),a=F(()=>po(t.roots,t.expandedIds)),o=F(()=>K(r)&&K(a).some(({node:e})=>e.id===K(r))?K(r):t.selectedId&&K(a).some(({node:e})=>e.id===t.selectedId)?t.selectedId:K(a)[0]?.node.id??null);function s(e){return!e.isGitRepository&&e.children.length>0}function c(e){return e===`.`?`~/`:`~/${e}`}function l(e){R(r,e,!0),i[e]?.focus()}function u(e,t){let n=Math.max(0,Math.min(K(a).length-1,t)),r=K(a)[n];r&&n!==e&&l(r.node.id)}function d(e){n()(e)&&t.onselect(e)}function f(e){s(e)&&t.onexpandedchange(fo(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)?K(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,K(a).length-1);break;case`Enter`:case` `:e.preventDefault(),d(i);break}}var m=So();Q(m,23,()=>K(a),e=>e.node.id,(e,a,l)=>{let u=F(()=>K(a).node),m=F(()=>s(K(u)));var h=xo();let g;var _=B(h),v=e=>{var n=vo(),r=B(n),i=B(r,!0);P(r),P(n),U((e,t)=>{$(n,`aria-label`,e),X(i,t)},[()=>`${t.expandedIds.has(K(u).id)?`Collapse`:`Expand`} ${K(u).name}`,()=>t.expandedIds.has(K(u).id)?`−`:`+`]),q(`click`,n,()=>f(K(u))),Y(e,n)},y=e=>{Y(e,yo())};Z(_,e=>{K(m)?e(v):e(y,-1)});var b=H(_,2);let x;var S=B(b),ee=B(S,!0);P(S);var C=H(S,2),w=B(C),T=B(w,!0);P(w);var E=H(w,2),te=B(E,!0);P(E),P(C);var D=H(C,2),ne=e=>{Y(e,bo())};Z(D,e=>{K(u).isGitRepository&&e(ne)}),P(b),vi(b,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(u)]),P(h),U((e,n,r,i,s)=>{g=$r(h,``,g,e),x=Zr(b,1,`tree-item svelte-6z3q4v`,null,x,{selected:t.selectedId===K(u).id,repository:K(u).isGitRepository}),$(b,`aria-level`,K(a).level),$(b,`aria-expanded`,n),$(b,`aria-selected`,t.selectedId===K(u).id),$(b,`aria-disabled`,r),$(b,`tabindex`,K(o)===K(u).id?0:-1),$(b,`title`,i),X(ee,t.selectedId===K(u).id?`✓`:``),X(T,K(u).name),X(te,s)},[()=>({"--tree-level":Math.min(K(a).level-1,6)}),()=>K(m)?t.expandedIds.has(K(u).id):void 0,()=>!n()(K(u)),()=>c(K(u).relativePath),()=>c(K(u).relativePath)]),vr(`focus`,b,()=>R(r,K(u).id,!0)),q(`keydown`,b,e=>p(e,K(a),K(l))),q(`click`,b,()=>d(K(u))),Y(e,h)}),P(m),U(()=>$(m,`aria-label`,t.label)),Y(e,m),Be()}yr([`click`,`keydown`]);var wo=J(`<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 To(e,t){ze(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=L(z(new Set([`.`,`dyne`,`dyne/mobile-applications`]))),a=L(null),o=F(()=>t.context===`sessions`?`dyne/mobile-applications`:`dyne/mobile-applications/gestalt-mobile`),s=F(()=>K(a)??K(o));var c=wo(),l=B(c),u=B(l,!0);P(l);var d=H(l,2),f=B(d,!0);P(d);var p=H(d,2),m=B(p,!0);P(p);var h=H(p,2),g=B(h);{let e=F(()=>t.context===`sessions`?`Session base`:`Git repository`),n=F(()=>t.context===`sessions`?lo.sessionBase:lo.gitRepositoryTarget);Co(g,{get roots(){return r},get expandedIds(){return K(i)},get selectedId(){return K(s)},get label(){return K(e)},get isSelectable(){return K(n)},onexpandedchange:e=>R(i,e,!0),onselect:e=>R(a,e.id,!0)})}P(h),P(c),U(()=>{X(u,t.context===`sessions`?`Sessions`:`Git`),X(f,t.context===`sessions`?`Session base`:`Git repository`),X(m,t.context===`sessions`?`Select the folder Codex should use as its working directory.`:`Select a repository for Git actions.`)}),Y(e,c),Be()}function Eo(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 Do(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 Oo=J(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),ko=J(`<option> </option>`),Ao=J(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),jo=J(`<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>`),Mo=J(`<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>`),No=J(`<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),Po=J(`<p>This workspace is not a Git repository.</p>`),Fo=J(`<p role="status">Loading repository status…</p>`),Io=J(`<p><strong> </strong> is available as a Clone destination. Select a Git
|
|
12
|
+
repository 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),Lo=J(`<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),Ro=J(`<p role="alert"> </p>`),zo=J(`<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 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 Bo(e,t){ze(t,!0);let n=L(``),r=F(()=>t.selectedWorkspace&&!t.selectedWorkspace.isGitRepository?t.selectedWorkspace:null);function i(e){e.preventDefault(),!(!K(n).trim()||t.cloning)&&t.onclone(K(n).trim())}var a=zo(),o=H(B(a),2),s=H(B(o),2);{let e=F(()=>t.selectedWorkspace?.id??null);Co(s,{get roots(){return t.workspaceTree},get expandedIds(){return t.expandedIds},get selectedId(){return K(e)},label:`Git repository and clone destination`,get onexpandedchange(){return t.onexpandedchange},get onselect(){return t.onselect}})}P(o);var c=H(o,2),l=B(c),u=B(l),d=H(B(u),2),f=B(d,!0);P(d),P(u);var p=H(u,2),m=H(B(p),2);ci(m),P(p);var h=H(p,2),g=B(h,!0);P(h),P(l);var _=H(l,4),v=e=>{var n=Oo(),r=B(n,!0);P(n),U(()=>X(r,t.cloneStatus)),Y(e,n)};Z(_,e=>{t.cloneStatus&&e(v)}),P(c);var y=H(c,2),b=H(B(y),2),x=e=>{var n=Dr(),r=V(n),i=e=>{var n=Dr(),r=V(n),i=e=>{var n=No(),r=V(n),i=B(r),a=H(B(i),2);Q(a,20,()=>t.summary.branches??[],e=>e,(e,t)=>{var n=ko(),r=B(n,!0);P(n);var i={};U(()=>{X(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),Y(e,n)}),P(a);var o;ti(a);var s=H(a,2),c=B(s);P(s);var l=H(s,2),u=B(l);P(l);var d=H(l,2),f=B(d),p=B(f,!0);P(f),P(d);var m=H(d,2),h=B(m);P(m),P(i);var g=H(i,2),_=B(g),v=H(_,2),y=H(B(v));P(v),P(g),P(r);var b=H(r,2),x=e=>{var n=Ao(),r=B(n),i=B(r);P(r);var a=H(r,2),o=H(a,2);P(n),U(()=>X(i,`Push HEAD to ${t.summary.upstream??``}?`)),q(`click`,a,function(...e){t.onpush?.apply(this,e)}),q(`click`,o,function(...e){t.oncancelpush?.apply(this,e)}),Y(e,n)};Z(b,e=>{t.confirmingPush&&e(x)});var S=H(b,2),ee=e=>{var n=Mo(),r=H(B(n),2);Q(r,21,()=>t.summary.commits,e=>e.hash,(e,t)=>{var n=jo(),r=B(n),i=B(r),a=B(i,!0);P(i);var o=H(i),s=B(o,!0);P(o),P(r);var c=H(r,2),l=B(c),u=B(l,!0);P(l);var d=H(l),f=B(d,!0);P(d),P(c),P(n),U(e=>{$(i,`title`,K(t).hash),X(a,K(t).shortHash),X(s,K(t).subject),X(u,K(t).author),$(d,`datetime`,K(t).authoredAt),$(d,`title`,K(t).authoredAt),X(f,e)},[()=>Do(K(t).authoredAt)]),Y(e,n)}),P(r),P(n),Y(e,n)};Z(S,e=>{t.summary.commits.length&&e(ee)}),U(e=>{a.disabled=t.refreshing||t.checkingOut||!t.summary.branches?.length,o!==(o=t.summary.branch??``)&&(a.value=(a.__value=t.summary.branch??``)??``,ei(a,t.summary.branch??``)),X(c,`Upstream: ${t.summary.upstream??`none`??``}`),X(u,`Ahead ${t.summary.ahead??``}; behind ${t.summary.behind??``}.`),$(f,`datetime`,t.summary.fetchedAt??void 0),X(p,e),X(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,X(y,` ${t.refreshing?`Pulling…`:`Pull`}`)},[()=>Eo(t.summary.fetchedAt)]),q(`change`,a,e=>t.oncheckout(e.currentTarget.value)),q(`click`,_,function(...e){t.onopenpushconfirmation?.apply(this,e)}),q(`click`,v,function(...e){t.onpull?.apply(this,e)}),Y(e,n)},a=e=>{Y(e,Po())};Z(r,e=>{t.summary.available?e(i):e(a,-1)}),Y(e,n)},a=e=>{Y(e,Fo())};Z(r,e=>{t.summary?e(i):t.error||e(a,1)}),Y(e,n)},S=e=>{var n=Io(),r=V(n),i=B(r),a=B(i,!0);P(i),je(),P(r),je(2),U(()=>X(a,t.selectedWorkspace.name)),Y(e,n)},ee=e=>{var t=Lo();je(2),Y(e,t)};Z(b,e=>{t.selectedWorkspace?.isGitRepository?e(x):t.selectedWorkspace?e(S,1):e(ee,-1)});var C=H(b,2),w=e=>{var n=Ro(),r=B(n,!0);P(n),U(()=>X(r,t.error)),Y(e,n)};Z(C,e=>{t.error&&e(w)}),P(y),P(a),U(()=>{X(f,K(r)?`~/${K(r).relativePath}`:`Select a non-repository folder`),h.disabled=t.cloning,X(g,t.cloning?`Cloning…`:`Clone`)}),vr(`submit`,c,i),mi(m,()=>K(n),e=>R(n,e)),Y(e,a),Be()}yr([`change`,`click`]);function Vo(e,t,n,r,i){let a=new Set(Ho(e).filter(e=>e.isGitRepository).map(e=>e.id)),o=ho(t,n),s=o?Ho(o.children).filter(e=>e.isGitRepository&&!a.has(e.id)):[],c=Uo(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&&mo(t,u).forEach(e=>d.add(e)),!l&&o&&d.add(o.id),{selectedId:u,expandedIds:d}}function Ho(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}function Uo(e){return(e.trim().replace(/[?#].*$/,``).replace(/\/+$/,``).split(/[/:]/).at(-1)??``).replace(/\.git$/i,``)}function Wo(e,t,n,r){return[...e,{id:t,role:`user`,text:n,...r?{occurredAt:r}:{},complete:!0}]}function Go(e,t,n,r){return e.find(e=>e.id===t)?e.map(e=>e.id===t?{...e,text:e.text+n}:e):[...e,{id:t,role:`assistant`,phase:`commentary`,text:n,...r?{occurredAt:r}:{},complete:!1}]}function Ko(e,t){return e.map(e=>e.id===t?{...e,complete:!0}:e)}function qo(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 Jo(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 Error(n)}async function n(n,r,i={}){let a=await e(n,{method:`POST`,headers:{"content-type":`application/json`,...i},body:JSON.stringify(r)});if(!a.ok)throw await t(a);return a.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)=>n(`/api/sessions/${encodeURIComponent(e)}/turns`,{text:t}),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`),getGitSummary:e=>a(`/api/git/repositories/${encodeURIComponent(e)}`),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)=>n(`/api/git/repositories/${encodeURIComponent(e)}/pull`,{},t?{"idempotency-key":t}:{}),checkoutGitBranch:(e,t)=>n(`/api/git/repositories/${encodeURIComponent(e)}/checkout`,{branch:t}),pushGit:(e,t)=>n(`/api/git/repositories/${encodeURIComponent(e)}/push`,{},t?{"idempotency-key":t}:{}),listAvailableSkills:(e,t,n=!1)=>a(`/api/skills?${new URLSearchParams({workspaceId:e,profile:t,...n?{refresh:`true`}:{}}).toString()}`),listSkillProfiles:()=>a(`/api/skill-profiles`),replaceSkillProfile:(e,t)=>r(`/api/skill-profiles/${encodeURIComponent(e)}`,t),deleteSkillProfile:e=>i(`/api/skill-profiles/${encodeURIComponent(e)}`),respondInteraction:(e,t,r)=>n(`/api/sessions/${encodeURIComponent(e)}/interactions/${encodeURIComponent(t)}`,r)}}async function Yo(e,t=globalThis.navigator?.clipboard,n=Zo){if(!t)return Xo(e,n);try{return await t.writeText(e),!0}catch{return Xo(e,n)}}function Xo(e,t){try{return t(e)}catch{return!1}}function Zo(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}function Qo(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 $o(e,t,n,r=()=>{},i=()=>{}){if(t.type!==`relay.event`||!t.event||t.event.sequence<=e)return e;if(t.event.sequence>e+1)return r(t.event.sequence),e;if(i(t.event),t.event.type===`agentMessageDelta`){let e=t.event.payload.text;e&&n(e)}return t.event.sequence}function es(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 ts(e){return e instanceof Error?e.message:`Could not load the plan.`}function ns(e){return{...e,...e.skills?{skills:[...e.skills]}:{},description:{...e.description},children:e.children.map(ns)}}function rs(e){return{...e,steps:e.steps.map(ns)}}function is(e,t){return e.kind===`unavailable`&&e.sessionId===t}function as(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:rs(e)}:{kind:`unavailable`,sessionId:t})}).catch(e=>{o?.signal.aborted||a!==i||n!==t||c({kind:`error`,sessionId:t,error:ts(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){n!==e||t.sequence<=s||(t.type===`plan.updated`&&es(t.payload)&&(s=t.sequence,c({kind:`ready`,sessionId:e,plan:rs(t.payload)})),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`):is(r,t)?`chat`:null:null}catch(e){return n===t?a===o?(c({kind:`error`,sessionId:t,plan:i,error:ts(e)}),null):is(r,t)?`chat`:null:null}},dispose(){o?.abort(),o=null,n=null,++i,c({kind:`unavailable`,sessionId:null})}}}var os=J(`<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>`),ss=J(`<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>`),cs=J(`<section aria-labelledby="plan-title" class="svelte-3rmyvg"><h2 id="plan-title" class="svelte-3rmyvg">Plan</h2><p class="svelte-3rmyvg"> </p></section>`),ls=J(`<button class="close svelte-3rmyvg" aria-label="Close completed plan">×</button>`),us=J(`<p class="svelte-3rmyvg">Closing completed plan…</p>`),ds=J(`<p class="svelte-3rmyvg"> </p>`),fs=J(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Subtitle</dt><dd class="svelte-3rmyvg"> </dd></div>`),ps=J(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Date</dt><dd class="svelte-3rmyvg"> </dd></div>`),ms=J(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Keywords</dt><dd class="svelte-3rmyvg"> </dd></div>`),hs=J(`<dl class="metadata svelte-3rmyvg"><!> <!> <!></dl>`),gs=J(`<p class="svelte-3rmyvg">No plan steps have been retained yet.</p>`),_s=J(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg"> </strong> </p>`),vs=J(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg">Skills:</strong> </p>`),ys=J(`<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>`),bs=J(`<ol class="svelte-3rmyvg"></ol>`),xs=J(`<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>`),Ss=J(`<ol class="plan-steps svelte-3rmyvg"></ol>`),Cs=J(`<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> <!></header> <progress aria-label="Plan progress" class="svelte-3rmyvg"> </progress> <p class="svelte-3rmyvg"> </p> <!> <!> <!></section>`),ws=J(`<p class="visually-hidden svelte-3rmyvg" aria-live="polite" aria-atomic="true"> </p> <!>`,1);function Ts(e,t){ze(t,!0);let n={effort:`Effort`,goal:`Goal`,notes:`Notes`,why:`Why`,change:`Change`,tests:`Tests`,doneWhen:`Done when`},r=L(z(new Set)),i=z({}),a=null,o=0,s=F(()=>t.state.kind===`ready`||t.state.kind===`closing`||t.state.kind===`error`?t.state.plan:void 0),c=F(()=>K(s)?d(K(s).steps,K(s).currentStepId):void 0),l=F(()=>K(s)?f(K(s).steps,K(s).currentStepId):new Set),u=F(()=>t.state.kind===`loading`?`Loading plan.`:t.state.kind===`unavailable`?`No retained plan for this session.`:t.state.kind===`error`&&!K(s)?t.state.error:t.state.kind===`closing`?`Closing completed plan.`:K(s)?K(c)?`Current step: ${K(c).title}, ${K(c).state}. ${K(s).doneSteps} of ${K(s).totalSteps} complete.${t.state.kind===`error`?` ${t.state.error}`:``}`:`${K(s).doneSteps} of ${K(s).totalSteps} plan steps complete.`:``);yn(()=>{let e=K(s)?.currentStepId||null;if(!e||a===e)return;a=e;let t=++o;cr().then(()=>{t!==o||K(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 K(r).has(e)||K(l).has(e)}function h(e,t){R(r,t?new Set([...K(r),e]):new Set([...K(r)].filter(t=>t!==e)),!0)}function g(e){return e.description.goal??e.description.why??e.title}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=ws(),b=V(y),x=B(b,!0);P(b);var S=H(b,2),ee=e=>{Y(e,os())},C=e=>{Y(e,ss())},w=e=>{var n=cs(),r=H(B(n)),i=B(r,!0);P(r),P(n),U(()=>X(i,t.state.error)),Y(e,n)},T=e=>{var n=Cs(),r=B(n),a=B(r),o=B(a),l=B(o,!0);P(o);var u=H(o,2),d=B(u);P(u),P(a);var f=H(a,2),y=e=>{var n=ls();U(()=>n.disabled=t.state.kind===`closing`),q(`click`,n,function(...e){t.onclose?.apply(this,e)}),Y(e,n)};Z(f,e=>{K(s).allDone&&e(y)}),P(r);var b=H(r,2),x=B(b);P(b);var S=H(b,2),ee=B(S);P(S);var C=H(S,2),w=e=>{Y(e,us())},T=e=>{var n=ds(),r=B(n,!0);P(n),U(()=>X(r,t.state.error)),Y(e,n)};Z(C,e=>{t.state.kind===`closing`?e(w):t.state.kind===`error`&&e(T,1)});var E=H(C,2),te=e=>{var t=hs(),n=B(t),r=e=>{var t=fs(),n=H(B(t)),r=B(n,!0);P(n),P(t),U(()=>X(r,K(s).subtitle)),Y(e,t)};Z(n,e=>{K(s).subtitle&&e(r)});var i=H(n,2),a=e=>{var t=ps(),n=H(B(t)),r=B(n,!0);P(n),P(t),U(()=>X(r,K(s).date)),Y(e,t)};Z(i,e=>{K(s).date&&e(a)});var o=H(i,2),c=e=>{var t=ms(),n=H(B(t)),r=B(n,!0);P(n),P(t),U(()=>X(r,K(s).keywords)),Y(e,t)};Z(o,e=>{K(s).keywords&&e(c)}),P(t),Y(e,t)};Z(E,e=>{(K(s).subtitle||K(s).date||K(s).keywords)&&e(te)});var D=H(E,2),ne=e=>{Y(e,gs())},O=e=>{var t=Ss();Q(t,21,()=>K(s).steps,e=>e.id,(e,t)=>{var n=xs(),r=B(n),a=B(r),o=B(a),s=B(o,!0);P(o);var c=H(o,2),l=B(c);P(c);var u=H(c,2),d=B(u,!0);P(u),P(a);var f=H(a,2);Q(f,17,()=>_(K(t)),([e,t])=>e,(e,t)=>{var n=F(()=>m(K(t),2));let r=()=>K(n)[0],i=()=>K(n)[1];var a=_s(),o=B(a),s=B(o);P(o);var c=H(o);P(a),U(()=>{X(s,`${r()??``}:`),X(c,` ${i()??``}`)}),Y(e,a)});var v=H(f,2),y=e=>{var n=vs(),r=H(B(n));P(n),U(e=>X(r,` ${e??``}`),[()=>K(t).skills.join(`, `)]),Y(e,n)};Z(v,e=>{K(t).skills?.length&&e(y)});var b=H(v,2),x=e=>{var n=bs();Q(n,21,()=>K(t).children,e=>e.id,(e,t)=>{var n=ys(),r=B(n),a=B(r),o=B(a),s=B(o,!0);P(o);var c=H(o,2),l=B(c);P(c);var u=H(c,2),d=B(u,!0);P(u),P(a);var f=H(a,2);Q(f,17,()=>_(K(t)),([e,t])=>e,(e,t)=>{var n=F(()=>m(K(t),2));let r=()=>K(n)[0],i=()=>K(n)[1];var a=_s(),o=B(a),s=B(o);P(o);var c=H(o);P(a),U(()=>{X(s,`${r()??``}:`),X(c,` ${i()??``}`)}),Y(e,a)});var v=H(f,2),y=e=>{var n=vs(),r=H(B(n));P(n),U(e=>X(r,` ${e??``}`),[()=>K(t).skills.join(`, `)]),Y(e,n)};Z(v,e=>{K(t).skills?.length&&e(y)}),P(r),vi(r,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(t)]),P(n),U((e,n)=>{$(r,`data-step-id`,K(t).id),r.open=e,X(s,K(t).title),X(l,`${K(t).state??``} · Priority ${K(t).priority??``}${K(t).reviewStatus?` · ${K(t).reviewStatus}`:``}`),X(d,n)},[()=>p(K(t).id),()=>g(K(t))]),vr(`toggle`,r,e=>h(K(t).id,e.currentTarget.open)),Y(e,n)}),P(n),Y(e,n)};Z(b,e=>{K(t).children.length&&e(x)}),P(r),vi(r,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(t)]),P(n),U((e,n)=>{$(r,`data-step-id`,K(t).id),r.open=e,X(s,K(t).title),X(l,`${K(t).state??``} · Priority ${K(t).priority??``}${K(t).reviewStatus?` · ${K(t).reviewStatus}`:``}`),X(d,n)},[()=>p(K(t).id),()=>g(K(t))]),vr(`toggle`,r,e=>h(K(t).id,e.currentTarget.open)),Y(e,n)}),P(t),Y(e,t)};Z(D,e=>{K(s).steps.length===0?e(ne):e(O,-1)}),P(n),U(e=>{X(l,K(s).title),X(d,`${K(s).doneSteps??``} / ${K(s).totalSteps??``} complete`),li(b,K(s).doneSteps),$(b,`max`,e),X(x,`${K(s).doneSteps??``} of ${K(s).totalSteps??``} complete`),X(ee,`Current: ${K(c)?`${K(c).title} (${K(c).state})`:`No current step`}`)},[()=>v(K(s))]),Y(e,n)};Z(S,e=>{t.state.kind===`loading`?e(ee):t.state.kind===`unavailable`?e(C,1):t.state.kind===`error`&&!K(s)?e(w,2):K(s)&&e(T,3)}),U(()=>X(x,K(u))),Y(e,y),Be()}yr([`click`]);function Es(e){return e?`Codex is working…`:`Ready.`}function Ds(e,t=Math.random){let n=[500,1e3,2e3,5e3,1e4];return Math.round((n[Math.min(e,n.length-1)]??1e4)*(.8+t()*.4))}var Os=`settings`,ks=`drafts`,As=`cursors`,js=`selected-session`;function Ms(e=globalThis.indexedDB){if(!e)return Ns;let t=Ga(e);return{async readSelectedSession(){try{return await Ka(await t,Os,js)??null}catch{return null}},async saveSelectedSession(e){try{let n=await t;e?await qa(n,Os,js,e):await Ja(n,Os,js)}catch{}},async readDraft(e){try{return await Ka(await t,ks,e)??``}catch{return``}},async saveDraft(e,n){try{await qa(await t,ks,e,n)}catch{}},async readCursor(e){try{let n=await Ka(await t,As,e);return typeof n==`number`&&Number.isSafeInteger(n)&&n>=0?n:0}catch{return 0}},async saveCursor(e,n){try{await qa(await t,As,e,n)}catch{}}}}var Ns={readSelectedSession:async()=>null,saveSelectedSession:async()=>{},readDraft:async()=>``,saveDraft:async()=>{},readCursor:async()=>0,saveCursor:async()=>{}};function Ps(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 Fs(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 Is(e){let t=/^\/home\/[^/]+/.exec(e)?.[0];if(!t)return e;let n=e.slice(t.length);return n?`~${n}`:`~/`}var Ls=J(`<time> </time>`),Rs=J(`<div> </div>`),zs=J(`<span class="profile-badge svelte-hxb22h"> </span>`),Bs=J(`<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>`),Vs=J(`<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>`),Hs=J(`<li class="managed-session svelte-hxb22h"><div class="session-actions svelte-hxb22h"><button type="button">Open</button> <button type="button">Forget</button></div> <div class="session-details svelte-hxb22h"><!> <div class="workspace-path svelte-hxb22h"> </div> <!> <!> <!></div></li>`),Us=J(`<ul class="session-list svelte-hxb22h" aria-label="Saved sessions"></ul>`),Ws=J(`<p>No saved sessions yet.</p>`),Gs=J(`<option> </option>`),Ks=J(`<p class="skills-profile-error svelte-hxb22h" role="alert"> </p>`),qs=J(`<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>`),Js=J(`<ul class="session-list recent-session-list svelte-hxb22h" aria-label="Recent sessions"></ul>`),Ys=J(`<p>No other recent Codex sessions found.</p>`),Xs=J(`<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" class="svelte-hxb22h"><option>untrusted</option><option>on-request</option><option>never</option></select></div> <!> <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 Zs(e,t){ze(t,!0);let n=yi(t,`models`,19,()=>[]),r=yi(t,`selectedModel`,3,``),i=yi(t,`onmodelchange`,3,()=>{}),a=F(()=>t.sessions.filter(e=>e.state===`ready`||e.state===`turnActive`)),o=F(()=>t.sessions.filter(e=>e.state!==`ready`&&e.state!==`turnActive`)),s=F(()=>t.recentSessions.filter(e=>!K(a).some(t=>t.threadId===e.id))),c=F(()=>ho(t.workspaceTree,t.workspaceId));var l=Xs(),u=H(B(l),2),d=e=>{var n=Vs(),r=H(B(n),2);Q(r,21,()=>K(a),e=>e.id,(e,n)=>{let r=F(()=>Fs(K(n)));var i=Bs();let a;var o=B(i),s=B(o);P(o);var c=H(o,2),l=B(c),u=B(l),d=e=>{var t=Ls(),n=B(t,!0);P(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>Ps(K(r).updatedAt)]),Y(e,t)},f=e=>{var t=Rs(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>Ps(null)]),Y(e,t)};Z(u,e=>{K(r).updatedAt===null?e(f,-1):e(d)});var p=H(u,2),m=B(p,!0);P(p);var h=H(p,2),g=e=>{var t=zs(),r=B(t);P(t),U(()=>X(r,`Model: ${K(n).model??``}`)),Y(e,t)};Z(h,e=>{K(n).model&&e(g)});var _=H(h,2),v=e=>{var t=zs(),r=B(t);P(t),U(()=>X(r,`Branch: ${K(n).branch??``}`)),Y(e,t)};Z(_,e=>{K(n).branch&&e(v)});var y=H(_,2),b=e=>{var t=zs(),r=B(t);P(t),U(()=>X(r,`Skills profile: ${K(n).effectiveSkillSelection.selectedProfileName??``}`)),Y(e,t)};Z(y,e=>{K(n).effectiveSkillSelection?.selectedProfileName&&e(b)}),P(l),P(c),P(i),U(e=>{a=Zr(i,1,`managed-session open-session svelte-hxb22h`,null,a,{"current-session":K(n).id===t.selectedSessionId}),$(l,`aria-current`,K(n).id===t.selectedSessionId?`page`:void 0),X(m,e)},[()=>Is(K(r).workspacePath)]),q(`click`,s,()=>t.onclose(K(n).id)),q(`click`,l,()=>t.onselectopen(K(n).id)),Y(e,i)}),P(r),P(n),Y(e,n)};Z(u,e=>{K(a).length&&e(d)});var f=H(u,2),p=e=>{var n=Us();Q(n,21,()=>K(o),e=>e.id,(e,n)=>{let r=F(()=>Fs(K(n)));var i=Hs(),a=B(i),o=B(a),s=H(o,2);P(a);var c=H(a,2),l=B(c),u=e=>{var t=Ls(),n=B(t,!0);P(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>Ps(K(r).updatedAt)]),Y(e,t)},d=e=>{var t=Rs(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>Ps(null)]),Y(e,t)};Z(l,e=>{K(r).updatedAt===null?e(d,-1):e(u)});var f=H(l,2),p=B(f,!0);P(f);var m=H(f,2),h=e=>{var t=zs(),r=B(t);P(t),U(()=>X(r,`Model: ${K(n).model??``}`)),Y(e,t)};Z(m,e=>{K(n).model&&e(h)});var g=H(m,2),_=e=>{var t=zs(),r=B(t);P(t),U(()=>X(r,`Branch: ${K(n).branch??``}`)),Y(e,t)};Z(g,e=>{K(n).branch&&e(_)});var v=H(g,2),y=e=>{var t=zs(),r=B(t);P(t),U(()=>X(r,`Skills profile: ${K(n).effectiveSkillSelection.selectedProfileName??``}`)),Y(e,t)};Z(v,e=>{K(n).effectiveSkillSelection?.selectedProfileName&&e(y)}),P(c),P(i),U(e=>X(p,e),[()=>Is(K(r).workspacePath)]),q(`click`,o,()=>t.onopen(K(n).id)),q(`click`,s,()=>t.onforget(K(n).id)),Y(e,i)}),P(n),Y(e,n)},m=e=>{Y(e,Ws())};Z(f,e=>{K(o).length?e(p):K(a).length||e(m,1)});var h=H(f,2),g=B(h),_=H(B(g),2),v=B(_);{let e=F(()=>K(c)?.id??null);Co(v,{get roots(){return t.workspaceTree},get expandedIds(){return t.expandedIds},get selectedId(){return K(e)},get isSelectable(){return lo.sessionBase},label:`Session base`,get onexpandedchange(){return t.onexpandedchange},onselect:e=>t.onworkspacechange(e.id)})}P(_),P(g);var y=H(g,2),b=H(B(y),2),x=B(b),S=B(x);S.value=S.__value=``,Q(H(S),17,()=>t.skillProfiles,e=>e.name,(e,t)=>{var n=Gs(),r=B(n,!0);P(n);var i={};U(()=>{X(r,K(t).name),i!==(i=K(t).name)&&(n.value=(n.__value=K(t).name)??``)}),Y(e,n)}),P(x);var ee;ti(x);var C=H(x,2),w=B(C);w.value=w.__value=`workspace-write`;var T=H(w);T.value=T.__value=`read-only`;var E=H(T);E.value=E.__value=`danger-full-access`,P(C);var te;ti(C);var D=H(C,2),ne=B(D);ne.value=ne.__value=`untrusted`;var O=H(ne);O.value=O.__value=`on-request`;var re=H(O);re.value=re.__value=`never`,P(D);var ie;ti(D),P(b);var ae=H(b,2),oe=e=>{var n=Ks(),r=B(n,!0);P(n),U(()=>X(r,t.skillProfileError)),Y(e,n)};Z(ae,e=>{t.skillProfileError&&e(oe)});var se=H(ae,2),ce=B(se),le=H(ce,2),ue=H(B(le),2);Q(ue,20,n,e=>e,(e,t)=>{var n=Gs(),r=B(n,!0);P(n);var i={};U(()=>{X(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),Y(e,n)}),P(ue);var de;ti(ue),P(le);var fe=H(le,2),pe=B(fe,!0);P(fe),P(se),P(y),P(h);var k=H(h,2),me=H(B(k),2),he=e=>{var n=Js();Q(n,21,()=>K(s),e=>e.id,(e,n)=>{var r=qs(),i=B(r),a=B(i),o=e=>{var t=Ls(),r=B(t,!0);P(t),U((e,n)=>{$(t,`datetime`,e),X(r,n)},[()=>new Date(K(n).recencyAt*1e3).toISOString(),()=>Ps(K(n).recencyAt*1e3)]),Y(e,t)},s=e=>{var t=Rs(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>Ps(null)]),Y(e,t)};Z(a,e=>{K(n).recencyAt===null?e(s,-1):e(o)});var c=H(a,2),l=B(c,!0);P(c),P(i);var u=H(i,2),d=B(u),f=H(d,2);P(u),P(r),U(e=>X(l,e),[()=>Is(K(n).cwd)]),q(`click`,d,()=>t.onopenrecent(K(n))),q(`click`,f,()=>t.oncopyresume(K(n).resumeCommand)),Y(e,r)}),P(n),Y(e,n)},ge=e=>{Y(e,Ys())};Z(me,e=>{K(s).length?e(he):e(ge,-1)}),P(k),P(l),U(()=>{ee!==(ee=t.selectedSkillProfile)&&(x.value=(x.__value=t.selectedSkillProfile)??``,ei(x,t.selectedSkillProfile)),te!==(te=t.sandbox)&&(C.value=(C.__value=t.sandbox)??``,ei(C,t.sandbox)),ie!==(ie=t.approvalPolicy)&&(D.value=(D.__value=t.approvalPolicy)??``,ei(D,t.approvalPolicy)),ue.disabled=n().length===0,de!==(de=r())&&(ue.value=(ue.__value=r())??``,ei(ue,r())),fe.disabled=!K(c)||t.startingSession,X(pe,t.startingSession?`Creating…`:`Create session`)}),vr(`submit`,h,e=>{e.preventDefault(),t.onstart()}),q(`change`,x,e=>t.onskillprofilechange(e.currentTarget.value)),q(`change`,C,e=>t.onsandboxchange(e.currentTarget.value)),q(`change`,D,e=>t.onapprovalpolicychange(e.currentTarget.value)),q(`click`,ce,e=>t.onmanageprofiles(e.currentTarget)),q(`change`,ue,e=>i()(e.currentTarget.value)),Y(e,l),Be()}yr([`click`,`change`]);function Qs(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}function $s({chatEnabled:e,planEnabled:t}){return[`sessions`,`git`,...e?[`chat`]:[],...e&&t?[`plan`]:[]]}function ec(e,t,n={chatEnabled:!0,planEnabled:!1}){let r=$s(n);return r[(r.indexOf(e)+t+r.length)%r.length]}var tc=J(`<button>Plan</button>`),nc=J(`<nav class="bottom-navigation" aria-label="Primary"><button>Sess<wbr/>ions</button> <button>Git</button> <button>Chat</button> <!></nav>`);function rc(e,t){ze(t,!0);let n=yi(t,`planEnabled`,3,!1),r=yi(t,`focusTab`,3,null),i=z({});yn(()=>{r()&&i[r()]?.focus()}),yn(()=>{if(!n()&&t.activeTab===`plan`){let e=t.chatEnabled?`chat`:`sessions`;t.onselect(e),i[e]?.focus()}});function a(e){let r=e.key===`ArrowRight`?1:e.key===`ArrowLeft`?-1:null;if(r===null)return;e.preventDefault();let a=ec(t.activeTab,r,{chatEnabled:t.chatEnabled,planEnabled:n()});t.onselect(a),i[a]?.focus()}var o=nc(),s=B(o);vi(s,e=>i.sessions=e,()=>i?.sessions);var c=H(s,2);vi(c,e=>i.git=e,()=>i?.git);var l=H(c,2);vi(l,e=>i.chat=e,()=>i?.chat);var u=H(l,2),d=e=>{var n=tc();vi(n,e=>i.plan=e,()=>i?.plan),U(()=>$(n,`aria-pressed`,t.activeTab===`plan`)),q(`keydown`,n,a),q(`click`,n,()=>t.onselect(`plan`)),Y(e,n)};Z(u,e=>{n()&&e(d)}),P(o),U(()=>{$(s,`aria-pressed`,t.activeTab===`sessions`),$(c,`aria-pressed`,t.activeTab===`git`),$(l,`aria-pressed`,t.activeTab===`chat`),l.disabled=!t.chatEnabled}),q(`keydown`,s,a),q(`click`,s,()=>t.onselect(`sessions`)),q(`keydown`,c,a),q(`click`,c,()=>t.onselect(`git`)),q(`keydown`,l,a),q(`click`,l,()=>t.onselect(`chat`,!0)),Y(e,o),Be()}yr([`keydown`,`click`]);var ic=J(`<option> </option>`),ac=J(`<p id="skills-status" aria-live="polite">Loading skills…</p>`),oc=J(`<p id="skills-status">No skills were discovered for this workspace and Codex profile.</p>`),sc=J(`<p id="skills-status" class="notice svelte-dg6sjj" role="status"> </p>`),cc=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert"> </p>`),lc=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert" tabindex="-1"> </p>`),uc=J(`<p id="skills-status" role="status">Profile saved.</p>`),dc=J(`<p id="skills-status" role="status">Profile deleted.</p>`),fc=J(`<p class="svelte-dg6sjj"> </p>`),pc=J(`<li> </li>`),mc=J(`<dt class="svelte-dg6sjj">Tool dependencies</dt> <dd class="svelte-dg6sjj"><ul class="svelte-dg6sjj"></ul></dd>`,1),hc=J(`<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>`),gc=J(`<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),_c=J(`<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 vc(e,t){ze(t,!0);let n=yi(t,`skillsState`,7),r=yi(t,`heading`,3,`Manage skill profiles`),i=L(0),a=L(null),o=L(null),s=L(null),c=L(null),l=L(`__new__`),u=F(()=>(K(i),n())),d=F(()=>K(u).profiles.filter(e=>!(`error`in e)));function f(){n(Object.assign(Object.create(Object.getPrototypeOf(n())),n())),R(i,K(i)+1)}async function p(){await t.onrefresh(),f()}function m(e){R(l,e.currentTarget.value,!0),K(l)===`__new__`||K(l)===`__default__`?K(u).selectDefaultProfile():K(u).selectProfile(K(l)),f()}async function h(e){e.preventDefault(),await K(u).save(),f(),K(u).status.kind===`saved`&&(R(l,K(u).selectedProfileName,!0),t.onprofileschange()),K(u).status.kind===`save-failed`&&(await cr(),K(a)?.focus())}function g(){K(c)?.showModal()}async function _(){K(c)?.close(),await K(u).deleteSelectedProfile(),f(),K(u).status.kind===`deleted`&&(R(l,`__new__`),t.onprofileschange()),await cr(),K(o)?.focus()}async function v(){K(c)?.close(),await cr(),K(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=_c(),ee=B(S),C=B(ee,!0);P(ee);var w=H(ee,4),T=B(w),E=H(B(T),2),te=B(E);te.value=te.__value=`__new__`;var D=H(te);D.value=D.__value=`__default__`,Q(H(D),17,()=>K(d),e=>e.name,(e,t)=>{var n=ic(),r=B(n,!0);P(n);var i={};U(()=>{X(r,K(t).name),i!==(i=K(t).name)&&(n.value=(n.__value=K(t).name)??``)}),Y(e,n)}),P(E),vi(E,e=>R(o,e),()=>K(o));var ne=H(E,4);ci(ne),P(T);var O=H(T,2),re=B(O,!0);P(O);var ie=H(O,2),ae=B(ie);vi(ae,e=>R(s,e),()=>K(s));var oe=H(ae,2),se=B(oe,!0);P(oe),P(ie),P(w);var ce=H(w,2),le=H(B(ce),2),ue=B(le);P(le);var de=H(le,2),fe=B(de),pe=H(fe,2);P(de),P(ce),vi(ce,e=>R(c,e),()=>K(c));var k=H(ce,2),me=e=>{Y(e,ac())},he=e=>{Y(e,oc())},ge=e=>{var t=sc(),n=B(t);P(t),U(()=>X(n,`Discovery warning: ${K(u).status.message??``}`)),Y(e,t)},_e=e=>{var t=cc(),n=B(t,!0);P(t),U(()=>X(n,K(u).status.message)),Y(e,t)},ve=e=>{var t=lc(),n=B(t,!0);P(t),vi(t,e=>R(a,e),()=>K(a)),U(()=>X(n,K(u).status.message)),Y(e,t)},ye=e=>{Y(e,uc())},be=e=>{Y(e,dc())},xe=e=>{var t=cc(),n=B(t,!0);P(t),U(()=>X(n,K(u).status.message)),Y(e,t)};Z(k,e=>{K(u).status.kind===`loading`?e(me):K(u).status.kind===`empty`?e(he,1):K(u).status.kind===`warning`?e(ge,2):K(u).status.kind===`invalid-profile`||K(u).status.kind===`error`?e(_e,3):K(u).status.kind===`save-failed`?e(ve,4):K(u).status.kind===`saved`?e(ye,5):K(u).status.kind===`deleted`?e(be,6):K(u).status.kind===`delete-failed`&&e(xe,7)});var Se=H(k,2),Ce=e=>{var t=gc(),n=V(t),r=B(n),i=H(r,2),a=B(i);P(i),P(n);var o=H(n,2);Q(o,21,()=>K(u).skills,e=>e.path,(e,t)=>{var n=hc();let r;var i=B(n),a=B(i);ci(a);var o=H(a,2),s=B(o,!0);P(o);var c=H(o,2),l=B(c,!0);P(c),P(i);var d=H(i,2),p=B(d),m=e=>{var n=fc(),r=B(n,!0);P(n),U(()=>X(r,K(t).description)),Y(e,n)};Z(p,e=>{K(t).description&&e(m)});var h=H(p,2),g=e=>{var n=fc(),r=B(n,!0);P(n),U(()=>X(r,K(t).shortDescription)),Y(e,n)};Z(h,e=>{K(t).shortDescription&&e(g)});var _=H(h,2),v=H(B(_)),S=B(v,!0);P(v);var ee=H(v,2),C=e=>{var n=mc(),r=H(V(n),2),i=B(r);Q(i,21,()=>K(t).dependencies.tools,e=>`${e.type}:${e.value}`,(e,t)=>{var n=pc(),r=B(n);P(n),U(()=>X(r,`${K(t).type??``}: ${K(t).value??``}${K(t).description?` — ${K(t).description}`:``}`)),Y(e,n)}),P(i),P(r),Y(e,n)};Z(ee,e=>{K(t).dependencies?.tools?.length&&e(C)}),P(_),P(d),P(n),U((e,o)=>{r=$r(n,``,r,e),$(i,`for`,`skill-${K(t).path}`),$(a,`id`,`skill-${K(t).path}`),ui(a,K(t).enabled),X(s,K(t).displayName??K(t).name),X(l,K(t).enabled?`Enabled`:`Disabled`),X(S,o)},[()=>({"--brand-color":y(K(t).brandColor)}),()=>b(K(t).path)]),vr(`focus`,a,x),q(`change`,a,e=>{K(u).toggle(K(t).path,e.currentTarget.checked),f()}),Y(e,n)}),P(o),U(()=>X(a,`${K(u).enabledCount??``} of ${K(u).skills.length??``} skills enabled.`)),q(`click`,r,()=>void p()),Y(e,t)};Z(Se,e=>{K(u).skills.length>0&&e(Ce)}),P(S),U(()=>{X(C,r()),li(ne,K(u).saveAsName),X(re,K(u).saveIntent===`replace`?`Saved the selected profile.`:`Creating a new saved profile.`),ae.disabled=!K(u).selectedProfileName||K(u).status.kind===`deleting`,oe.disabled=K(u).status.kind===`saving`,X(se,K(u).status.kind===`saving`?`Saving profile…`:`Save profile`),X(ue,`Delete ${K(u).selectedProfileName??``}? Existing sessions keep their saved skill set.`)}),vr(`submit`,w,h),q(`change`,E,m),ni(E,()=>K(l),e=>R(l,e)),q(`input`,ne,e=>{K(u).saveAsName=e.currentTarget.value,f()}),q(`click`,ae,g),q(`click`,fe,()=>void v()),q(`click`,pe,()=>void _()),Y(e,S),Be()}yr([`change`,`input`,`click`]);var yc=class{client;workspaceId=``;codexProfile=``;selectedProfileName=``;saveAsName=``;source=`native`;skills=[];profiles=[];status={kind:`idle`};baseline=new Map;saving=!1;deleting=!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){this.workspaceId=e,this.codexProfile=t,this.status={kind:`loading`};try{let[n,r]=await Promise.all([this.client.listAvailableSkills(e,t),this.client.listSkillProfiles()]);this.applyAvailable(n),this.profiles=r.profiles;let i=r.profiles.find(e=>`error`in e);i&&`error`in i?this.status={kind:`invalid-profile`,message:i.error.message}:n.errors.length?this.status={kind:`warning`,message:n.errors.map(e=>e.message).join(` `)}:this.status=this.skills.length?{kind:`ready`}:{kind:`empty`}}catch(e){this.status={kind:`error`,message:bc(e)}}}async refresh(){this.status={kind:`loading`};try{let e=await this.client.listAvailableSkills(this.workspaceId,this.codexProfile,!0);this.applyAvailable(e),this.status=e.errors.length?{kind:`warning`,message:e.errors.map(e=>e.message).join(` `)}:this.skills.length?{kind:`ready`}:{kind:`empty`}}catch(e){this.status={kind:`error`,message:bc(e)}}}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:bc(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:bc(e)}}finally{this.deleting=!1}}}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 bc(e){return e instanceof Error?e.message:`Unknown relay error.`}var xc=J(`<main class="evidence-mode svelte-y74n0s"><!></main>`),Sc=J(`<!> <!> <!>`,1),Cc=J(`<p>Start a session from the Sessions tab to chat with Codex.</p>`),wc=J(`<section class="chat-view svelte-y74n0s" aria-labelledby="chat-title"><h2 id="chat-title" class="visually-hidden">Chat</h2> <!></section>`),Tc=J(`<p>Loading skill profiles…</p>`),Ec=J(`<section class="session-profile-manager" aria-labelledby="session-profile-manager-title"><div class="session-profile-manager-header svelte-y74n0s"><h2 id="session-profile-manager-title" tabindex="-1" class="svelte-y74n0s">Manage skill profiles</h2> <button type="button" class="close-profile-manager svelte-y74n0s" aria-label="Close skill profile editor">×</button></div> <!></section>`),Dc=J(`<main class="swipe-surface svelte-y74n0s"><!> <!> <!></main>`),Oc=J(`<!> <!>`,1);function kc(e,t){ze(t,!0);let n=L(`sessions`),r=L(`Loading relay…`),i=L(`system`),a=L(z([])),o=`gpt-5.6-terra`,s=L([o]),c=L(o),l=L([]),u=L(null),d=L(`list`),f=L([]),p=L(``),m=L(``),h=L(null),g=L(``),_=L(z(new Set)),v=L(null),y=L(z([])),b=F(()=>K(y).some(e=>e.id===K(v)&&(e.state===`ready`||e.state===`turnActive`))),x=L(z([])),S=L(`workspace-write`),ee=L(`on-request`),C=L(null),w=L(!1),T=L(``),E=L(null),te=L(!1),D=L(z([])),ne=L(z([])),O=L(0),re=L(z({kind:`unavailable`,sessionId:null})),ie=L(null),ae=F(()=>(K(re).kind===`ready`||K(re).kind===`closing`||K(re).kind===`error`)&&!!K(re).plan),oe=null,se=null,ce=null,le=null,ue=!1,de=0,fe=0,pe=L(null),k=L(null),me=L(z(new Set)),he=L(!1),ge=L(!1),_e=L(!1),ve=L(!1),ye=L(null),be=L(null),xe=L(null),Se=L(null),Ce=0,A=L(z([])),we=z({}),j=Jo(),Te=as({getPlan:j.getPlan,closePlan:j.closePlan},e=>R(re,e,!0)),Ee=Qa(),De=Ms(),M=no(),Oe=new URLSearchParams(location.search).get(`tree-evidence`),N=new URLSearchParams(location.search).get(`toast-evidence`);bi(async()=>{let e=localStorage.getItem(`gestalt-mobile.theme`);if((e===`light`||e===`dark`||e===`system`)&&ke(e),!(Oe===`sessions`||Oe===`git`||N===`error`||N===`stacked`)){le=setInterval(Ge,2e3),document.addEventListener(`visibilitychange`,Ge),window.addEventListener(`focus`,Ge);try{let e=await Ba();R(g,go(K(g)||null,K(a),e.workspaces,lo.sessionBase)??``,!0),R(a,e.workspaces,!0),R(l,e.profiles),R(s,[...new Set([o,...e.models??[]])]),await tt(),R(_,uo(K(a)),!0),R(me,uo(K(a)),!0);let t=await De.readSelectedSession();R(v,e.sessions.some(e=>e.id===t)?t:e.sessions[0]?.id??null,!0),K(v)&&R(O,await De.readCursor(K(v)),!0),K(v)&&R(T,await De.readDraft(K(v)),!0),K(v)&&R(D,await Ee.read(K(v)),!0),R(y,e.sessions,!0),R(A,K(y).find(e=>e.id===K(v))?.pendingInteractions??[],!0),Me(),R(E,K(y).find(e=>e.id===K(v))?.activeTurnId??null,!0),R(r,K(v)?Es(K(E)):`Choose a workspace and start a session.`,!0),Te.select(K(v)),K(v)&&(await We(K(v)),xt(K(v)))}catch(e){R(r,bt(e,`RELAY_UNAVAILABLE`),!0)}}});function ke(e){R(i,e,!0),e===`system`?document.documentElement.removeAttribute(`data-theme`):document.documentElement.dataset.theme=e,localStorage.setItem(`gestalt-mobile.theme`,e)}xi(()=>{se&&clearTimeout(se),ce&&clearTimeout(ce),le&&clearInterval(le),document.removeEventListener(`visibilitychange`,Ge),window.removeEventListener(`focus`,Ge),oe?.close(),Te.dispose()});async function Ae(){if(!K(g)||K(w))return;let e=Qs({workspaceId:K(g),profile:`default`,profileState:`ok`});if(e.profile){R(r,e.profile,!0);return}R(C,K(C)??Qo(),!0),R(w,!0),R(r,`Starting session…`);try{let e=await j.startSession(K(g),{sandbox:K(S),approvalPolicy:K(ee),model:K(c),skillProfile:K(p)||void 0},K(C));R(C,null),R(v,e.id,!0),Te.select(e.id),R(E,null),De.saveSelectedSession(e.id),await je(),R(D,[],!0),I(e.id),R(ne,[],!0),R(O,0),R(T,await De.readDraft(e.id),!0),xt(e.id),R(n,`chat`),it(`chat`),R(r,`Session started.`)}catch(e){R(r,bt(e,`SESSION_START_FAILED`),!0)}finally{R(w,!1)}}async function je(){R(y,await j.listSessions(),!0)}async function Me(){try{R(x,await j.listRecentSessions(),!0)}catch{R(x,[],!0)}}async function Ne(){try{await Promise.all([je(),Me()])}catch(e){R(r,bt(e,`SESSION_REFRESH_FAILED`),!0)}}async function Pe(e){R(r,`Opening session…`);try{let t=K(y).find(t=>t.id===e);if(t&&t.state!==`ready`&&t.state!==`turnActive`){let t=await j.restoreSession(e);R(y,K(y).map(n=>n.id===e?t:n),!0)}R(v,e,!0),Te.select(e),De.saveSelectedSession(e),R(D,await Ee.read(e),!0),R(ne,[],!0),R(O,0),R(T,await De.readDraft(e),!0),R(E,K(y).find(t=>t.id===e)?.activeTurnId??null,!0),R(A,K(y).find(t=>t.id===e)?.pendingInteractions??[],!0),R(n,`chat`),it(`chat`),await We(e),xt(e)}catch(e){R(r,`Could not open session: ${yt(e)}`)}}async function Fe(e){R(r,`Opening recent session…`);try{let t=await j.openRecentSession(e.id,e.cwd);await Ne(),await Pe(t.id)}catch(e){R(r,`Could not open recent session: ${yt(e)}`)}}async function Ie(e){R(r,`Closing session…`);try{await j.releaseSession(e),K(v)===e&&(R(v,null),R(n,`sessions`),R(E,null),R(A,[],!0),De.saveSelectedSession(null),se&&clearTimeout(se),se=null,oe?.close(),oe=null),await Ne(),R(r,`Session closed.`)}catch(e){R(r,`Could not close session: ${yt(e)}`)}}async function Le(e){try{await j.forgetSession(e),K(v)===e&&(oe?.close(),R(v,null),R(E,null),De.saveSelectedSession(null)),await Ne()}catch(e){R(r,`Could not forget session: ${yt(e)}`)}}async function Re(e){R(r,await Yo(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function Ve(e){if(!(!K(v)||K(E)))try{let t=await j.selectModel(K(v),e);R(y,K(y).map(e=>e.id===t.id?{...e,...t}:e),!0),R(T,``),R(r,`Model changed to ${e}; it applies to the next turn.`)}catch(e){R(r,`Could not change model: ${yt(e)}`)}}async function He(){if(!K(v)||!K(T).trim()||K(E)||K(te))return;let e=K(T).trim();R(te,!0);try{let t=await j.startTurn(K(v),e);R(E,t.activeTurnId??null,!0),R(D,Wo(K(D),`user-${t.activeTurnId??Date.now().toString()}`,e,Date.now()),!0),I(K(v)),R(T,``),De.saveDraft(K(v),``),R(r,Es(K(E)),!0)}catch(e){R(r,bt(e,`MESSAGE_SEND_FAILED`),!0)}finally{R(te,!1)}}async function Ue(){if(!(!K(v)||!K(E)))try{await j.interruptTurn(K(v),K(E)),R(E,null),R(r,`Codex turn interrupted.`)}catch(e){R(r,`Could not interrupt Codex: ${yt(e)}`)}}async function We(e,t=0){let n=await j.getHistory(e);if(K(v)!==e)return;let i=n.items.filter(e=>(e.kind===`user`||e.kind===`agent`)&&e.text).map(e=>({id:e.id,role:e.kind===`user`?`user`:`assistant`,text:e.text,...typeof e.occurredAt==`number`?{occurredAt:e.occurredAt}:{},...e.phase===`commentary`||e.phase===`final_answer`?{phase:e.phase}:{},complete:!0})),a=K(D).filter(e=>!e.complete);R(D,[...i,...a],!0),I(e);let o=n.items.flatMap(e=>{let t=Va(e);return t?[t]:[]});R(ne,[...o,...K(ne).filter(e=>!o.some(t=>t.id===e.id))],!0),`activeTurnId`in n&&(R(E,n.activeTurnId??null,!0),R(y,K(y).map(t=>t.id===e?{...t,activeTurnId:K(E)}:t),!0)),R(O,Math.max(K(O),n.currentSequence??t),!0),De.saveCursor(e,K(O)),t&&Te.refresh(e),R(r,Es(K(E)),!0)}function Ge(){K(n)!==`chat`||!K(v)||document.visibilityState!==`visible`||ue||(ue=!0,We(K(v)).catch(()=>void 0).finally(()=>{ue=!1}))}function Ke(e,t=!1){if(e===`chat`&&!K(b)||e===`plan`&&!K(ae))return;let r=K(n)!==e;R(n,e,!0),it(e),e===`chat`&&(Ge(),r&&t&&st()),e===`git`&&K(k)&&ct(K(k)),e===`sessions`&&(K(d)===`profile-manager`&&rt(!1),Ne())}function qe(e){R(ie,e,!0),queueMicrotask(()=>R(ie,null))}let Je=null;function Ye(e){return e instanceof Element&&e.closest(`button, input, textarea, select, a, summary, [contenteditable]`)!==null}function Xe(e){e.pointerType!==`touch`||Ye(e.target)||(Je={pointerId:e.pointerId,x:e.clientX,y:e.clientY})}function Ze(e){if(!Je||e.pointerId!==Je.pointerId)return;let t=Je;Je=null;let r=e.clientX-t.x,i=e.clientY-t.y;Math.abs(r)<48||Math.abs(r)<=Math.abs(i)||Ke(ec(K(n),r<0?1:-1,{chatEnabled:K(b),planEnabled:K(ae)}))}function Qe(e){Je?.pointerId===e.pointerId&&(Je=null)}async function $e(){await Te.close()===`chat`&&(Ke(`chat`),qe(`chat`))}async function et(e,t){let n=new yc(j);await n.load(e,t),R(u,n,!0)}async function tt(){try{let e=await j.listSkillProfiles();R(f,e.profiles.filter(e=>!(`error`in e)));let t=e.profiles.find(e=>`error`in e);R(m,t&&`error`in t?t.error.message:``,!0),K(f).some(e=>e.name===K(p))||R(p,``)}catch(e){R(f,[]),R(m,e instanceof Error?e.message:`Unable to load saved skill profiles.`,!0)}}async function nt(e){let t=K(g)||K(a)[0]?.id||``,n=K(l).find(e=>e.state===`ok`)?.name??``;if(!t||!n){R(r,`Choose a workspace and available Codex profile before managing skill profiles.`);return}await et(t,n),R(d,`profile-manager`),await cr(),K(h)?.focus()}async function rt(e=!0){R(d,`list`),await cr(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function it(e){requestAnimationFrame(()=>{K(n)===e&&window.scrollTo({top:e===`chat`?document.documentElement.scrollHeight:0})})}let at=!1;function ot(){at||(at=!0,requestAnimationFrame(()=>{at=!1,K(n)===`chat`&&window.scrollTo({top:document.documentElement.scrollHeight})}))}function st(){window.matchMedia(`(min-width: 48rem)`).matches&&cr().then(()=>{K(n)===`chat`&&document.getElementById(`message`)?.focus()})}async function ct(e=K(k)){let t=e?ho(K(a),e):void 0;if(!e||!t?.isGitRepository){Ce+=1,R(pe,null);return}let n=++Ce;try{let t=await j.getGitSummary(e);n===Ce&&K(k)===e&&R(pe,t,!0)}catch(t){if(n!==Ce||K(k)!==e)return;R(pe,null),R(ye,bt(t,`GIT_SUMMARY_FAILED`),!0)}}function lt(e){R(k,e.id,!0),R(ye,null),R(pe,null),R(he,!1),e.isGitRepository?ct(e.id):(Ce+=1,R(pe,null))}async function ut(){let e=K(k);if(!(!e||!ho(K(a),e)?.isGitRepository)){R(xe,K(xe)??Qo(),!0),R(ge,!0),R(ye,null);try{await j.pullGit(e,K(xe)),await ct(e),R(xe,null)}catch(e){R(ye,bt(e,`GIT_PULL_FAILED`),!0)}finally{R(ge,!1)}}}async function dt(e){if(K(ve))return;let t=K(k)?ho(K(a),K(k)):void 0;if(!t||t.isGitRepository){R(be,null),M.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let n=t.id;R(ve,!0),R(ye,null),R(be,null);try{await j.cloneGitRepository(n,e);let t=await Ba(),r=Vo(K(a),t.workspaces,n,e,K(me));R(g,go(K(g)||null,K(a),t.workspaces,lo.sessionBase)??``,!0),R(a,t.workspaces,!0),R(k,r.selectedId,!0),R(me,r.expandedIds,!0),K(k)&&ho(K(a),K(k))?.isGitRepository?await ct(K(k)):R(pe,null),R(be,`Repository cloned into the selected workspace.`),M.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){bt(e,`GIT_CLONE_FAILED`)}finally{R(ve,!1)}}async function ft(e){let t=K(k);if(!(!t||e===K(pe)?.branch)){R(_e,!0),R(ye,null);try{await j.checkoutGitBranch(t,e),await ct(t)}catch(e){R(ye,bt(e,`GIT_CHECKOUT_FAILED`),!0)}finally{R(_e,!1)}}}async function pt(){let e=K(k);if(e){R(Se,K(Se)??Qo(),!0),R(ye,null);try{await j.pushGit(e,K(Se)),R(he,!1),await ct(e),R(Se,null)}catch(e){R(ye,bt(e,`GIT_PUSH_FAILED`),!0)}}}async function mt(e,t){K(v)&&(await j.respondInteraction(K(v),e,{decision:t}),R(A,K(A).filter(t=>t.requestId!==e),!0))}async function ht(e){if(!K(v))return;let t=Fi(Pi(e.payload).map(e=>({id:e.id,answer:we[e.id]??``})));await j.respondInteraction(K(v),e.requestId,t),R(A,K(A).filter(t=>t.requestId!==e.requestId),!0)}async function gt(e){if(!K(v))return;let t=qo(e.payload);if(!t){R(r,`Codex sent an invalid permission request.`);return}await j.respondInteraction(K(v),e.requestId,t),R(A,K(A).filter(t=>t.requestId!==e.requestId),!0)}function _t(e,t){we[e]=t}function vt(e){R(T,e,!0),K(v)&&De.saveDraft(K(v),e)}function I(e){Ee.write(e,K(D))}function yt(e){return e instanceof Error?e.message:`Unknown relay error.`}function bt(e,t){let n=eo(e,t);return M.enqueue({kind:`error`,...n}),n.message}function xt(e){se&&clearTimeout(se),ce&&clearTimeout(ce),oe?.close();let t=++fe,n=location.protocol===`https:`?`wss:`:`ws:`;oe=new WebSocket(`${n}//${location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${K(O)}`),oe.onopen=()=>{t!==fe||K(v)!==e||(R(r,Es(K(E)),!0),Ge(),ce=setTimeout(()=>{de=0},3e4))},oe.onmessage=t=>{let n=JSON.parse(String(t.data));if(n.type===`relay.resyncRequired`){We(e,typeof n.currentSequence==`number`?n.currentSequence:0);return}if(n.type===`relay.event`&&n.event?.type===`interaction.requested`){let e=n.event.payload;K(A).some(t=>t.requestId===e.requestId)||R(A,[...K(A),e],!0)}if(n.type===`relay.event`&&n.event?.type===`turnCompleted`&&(R(E,null),R(r,Es(K(E)),!0),R(D,Ko(K(D),`assistant-${e}`),!0),I(e),We(e).catch(()=>void 0)),n.type===`relay.event`&&n.event?.type===`session.updated`){let t=n.event.payload;if(typeof t==`object`&&t&&t.id===e){let n=t,i=K(E);R(E,typeof n.activeTurnId==`string`?n.activeTurnId:null,!0),i&&!K(E)&&R(r,Es(K(E)),!0),R(y,K(y).map(t=>t.id===e?{...t,...n}:t),!0)}}if(n.type===`relay.event`&&n.event?.type===`interaction.resolved`){let{requestId:e}=n.event.payload;R(A,K(A).filter(t=>t.requestId!==e),!0)}if(n.type===`relay.event`&&n.event?.type===`activity.updated`){let e=n.event.payload;typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&R(ne,[...K(ne).filter(t=>t.id!==e.id),e],!0)}R(O,$o(K(O),n,t=>{R(D,Go(K(D),`assistant-${e}`,t,Date.now()),!0),I(e)},()=>{We(e)},t=>Te.applyEvent(e,t)),!0),De.saveCursor(e,K(O))},oe.onclose=()=>{t!==fe||K(v)!==e||(ce&&clearTimeout(ce),R(r,`Connection interrupted. Reconnecting…`),se=setTimeout(()=>xt(e),Ds(de++)))}}var St=Oc();Hr(`y74n0s`,e=>{Sn(()=>{Xt.title=`Gestalt Mobile`})});var Ct=V(St),wt=e=>{co(e,{get variant(){return N}})},Tt=e=>{var t=xc();To(B(t),{get context(){return Oe}}),P(t),Y(e,t)},Et=e=>{var t=Dc(),l=B(t);{let e=F(()=>K(n)===`chat`?Is(K(y).find(e=>e.id===K(v))?.workspacePath??``):null),t=F(()=>K(n)===`chat`?K(y).find(e=>e.id===K(v))?.model??o:null);Ti(l,{get theme(){return K(i)},get sessionPath(){return K(e)},get sessionModel(){return K(t)},onthemechange:ke})}var C=H(l,2),O=e=>{var t=wc(),n=H(B(t),2),i=e=>{var t=Sc(),n=V(t);Ia(n,{get messages(){return K(D)},get activities(){return K(ne)}});var i=H(n,2);qi(i,{get interactions(){return K(A)},get answers(){return we},onanswer:_t,onuserinput:e=>void ht(e),onpermission:e=>void gt(e),ondecision:(e,t)=>void mt(e,t)}),la(H(i,2),{get status(){return K(r)},get message(){return K(T)},get activeTurnId(){return K(E)},get starting(){return K(te)},get models(){return K(s)},onchange:vt,onscrollbottom:ot,onmodelselect:e=>void Ve(e),onsend:()=>void He(),oninterrupt:()=>void Ue()}),Y(e,t)},a=e=>{Y(e,Cc())};Z(n,e=>{K(v)?e(i):e(a,-1)}),P(t),Y(e,t)},oe=e=>{Ts(e,{get state(){return K(re)},onclose:()=>void $e()})},se=e=>{{let t=F(()=>K(k)?ho(K(a),K(k))??null:null);Bo(e,{get workspaceTree(){return K(a)},get selectedWorkspace(){return K(t)},get expandedIds(){return K(me)},get summary(){return K(pe)},get refreshing(){return K(ge)},get checkingOut(){return K(_e)},get cloning(){return K(ve)},get error(){return K(ye)},get cloneStatus(){return K(be)},get confirmingPush(){return K(he)},onpull:()=>void ut(),oncheckout:e=>void ft(e),onopenpushconfirmation:()=>R(he,!0),onpush:()=>void pt(),oncancelpush:()=>R(he,!1),onselect:lt,onexpandedchange:e=>R(me,e,!0),onclone:e=>void dt(e)})}},ce=e=>{var t=Dr(),n=V(t),r=e=>{var t=Ec(),n=B(t),r=B(n);vi(r,e=>R(h,e),()=>K(h));var i=H(r,2);P(n);var a=H(n,2),o=e=>{vc(e,{get skillsState(){return K(u)},onrefresh:()=>K(u)?.refresh()??Promise.resolve(),onprofileschange:()=>void tt(),heading:`Skill profile editor`})},s=e=>{Y(e,Tc())};Z(a,e=>{K(u)?e(o):e(s,-1)}),P(t),q(`click`,i,()=>void rt()),Y(e,t)},i=e=>{Zs(e,{get sessions(){return K(y)},get recentSessions(){return K(x)},get selectedSessionId(){return K(v)},get workspaceTree(){return K(a)},get workspaceId(){return K(g)},get expandedIds(){return K(_)},get sandbox(){return K(S)},get approvalPolicy(){return K(ee)},get models(){return K(s)},get selectedModel(){return K(c)},get skillProfiles(){return K(f)},get selectedSkillProfile(){return K(p)},get skillProfileError(){return K(m)},get startingSession(){return K(w)},onworkspacechange:e=>R(g,e,!0),onexpandedchange:e=>R(_,e,!0),onsandboxchange:e=>R(S,e,!0),onapprovalpolicychange:e=>R(ee,e,!0),onmodelchange:e=>R(c,e,!0),onskillprofilechange:e=>R(p,e,!0),onmanageprofiles:e=>void nt(e),onopen:Pe,onselectopen:Pe,onclose:e=>void Ie(e),onopenrecent:e=>void Fe(e),onforget:e=>void Le(e),oncopyresume:e=>void Re(e),onstart:()=>void Ae()})};Z(n,e=>{K(d)===`profile-manager`?e(r):e(i,-1)}),Y(e,t)};Z(C,e=>{K(n)===`chat`?e(O):K(n)===`plan`?e(oe,1):K(n)===`git`?e(se,2):e(ce,-1)}),rc(H(C,2),{get activeTab(){return K(n)},get chatEnabled(){return K(b)},get planEnabled(){return K(ae)},get focusTab(){return K(ie)},onselect:Ke}),P(t),q(`pointerdown`,t,Xe),q(`pointerup`,t,Ze),vr(`pointercancel`,t,Qe),Y(e,t)};Z(Ct,e=>{N===`error`||N===`stacked`?e(wt):Oe===`sessions`||Oe===`git`?e(Tt,1):e(Et,-1)});var Dt=H(Ct,2),Ot=e=>{oo(e,{get queue(){return M}})};Z(Dt,e=>{N!==`error`&&N!==`stacked`&&e(Ot)}),Y(e,St),Be()}yr([`pointerdown`,`pointerup`,`click`]);var Ac=document.getElementById(`app`);if(!Ac)throw Error(`Missing application mount target`);Or(kc,{target:Ac});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.session-path.svelte-t9laac{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;margin:0;overflow:hidden}.session-model.svelte-t9laac{margin-inline-start:clamp(.75rem,3vw,2rem)}@media (width<=34rem){.session-model.svelte-t9laac{display:none}}#chat-activity.svelte-thyolt{--activity-gap:.4rem;--activity-type-color:var(--muted-text,currentColor)}#chat-activity.svelte-thyolt>summary:where(.svelte-thyolt){color:var(--activity-type-color);cursor:pointer;font-size:.875em}.activity-list.svelte-thyolt{gap:var(--activity-gap);margin-block:.25rem 0;margin-inline:0;padding:0;list-style:none;display:grid}.activity-row.svelte-thyolt{flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;display:flex}.activity-type.svelte-thyolt{color:var(--activity-type-color);font-size:.75em;line-height:1.2}.activity-content.svelte-thyolt{overflow-wrap:anywhere;white-space:pre-wrap;min-inline-size:0}.command-approval-command.svelte-ajsqcq{white-space:pre-wrap;background:color-mix(in srgb, CanvasText 8%, Canvas);border-radius:.375rem;max-inline-size:100%;margin-block:.5rem .75rem;padding:.625rem;overflow-x:auto}.command-approval-missing.svelte-ajsqcq{margin-block:.5rem .75rem}.approval-actions.svelte-ajsqcq{flex-wrap:wrap;gap:clamp(.5rem,2vw,1rem);display:flex}form.svelte-1264sfg>[role=status]:where(.svelte-1264sfg){text-align:start;margin-block:1rem .35rem}.command-menu.svelte-1264sfg{border:1px solid color-mix(in srgb, CanvasText 20%, Canvas);background:canvas;border-radius:.375rem;gap:.125rem;max-inline-size:min(100%,32rem);margin:0 0 .35rem;padding:.25rem;list-style:none;display:grid}.command-menu.svelte-1264sfg button:where(.svelte-1264sfg){inline-size:100%;color:inherit;text-align:start;background:0 0;border:0;border-radius:.25rem;align-items:baseline;gap:.5rem;padding:.25rem .375rem;display:flex}.command-menu.svelte-1264sfg .command-selected:where(.svelte-1264sfg) button:where(.svelte-1264sfg),.command-menu.svelte-1264sfg button:where(.svelte-1264sfg):hover{background:color-mix(in srgb, CanvasText 10%, Canvas)}.command-menu.svelte-1264sfg small:where(.svelte-1264sfg){color:#666;font-size:.8em}.command-menu.svelte-1264sfg button:where(.svelte-1264sfg):focus-visible{outline-offset:1px;outline:2px solid}.prompt-row.svelte-1264sfg{align-items:end;gap:.5rem;display:flex}textarea.svelte-1264sfg{resize:vertical;flex:auto;min-block-size:2.75rem}.prompt-row.svelte-1264sfg button:where(.svelte-1264sfg){flex:none;place-items:center;min-block-size:3rem;inline-size:3rem;padding:0;display:grid}.prompt-row.svelte-1264sfg svg:where(.svelte-1264sfg){fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;block-size:1.35rem;inline-size:1.35rem}.block-cursor.svelte-1264sfg{vertical-align:-.1em;background:currentColor;block-size:1em;inline-size:.55ch;animation:1s steps(2,start) infinite svelte-1264sfg-blink;display:inline-block}@media (prefers-reduced-motion:reduce){.block-cursor.svelte-1264sfg{animation:none}}@keyframes svelte-1264sfg-blink{50%{opacity:0}}ol.svelte-1im954t{inline-size:100%;margin:0;padding:0;list-style:none}li.svelte-1im954t{box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;inline-size:100%;margin-block-end:0}li.svelte-1im954t+li:where(.svelte-1im954t){margin-block-start:1rem}.prompt-turn.svelte-1im954t{background:color-mix(in srgb, Canvas 94%, CanvasText);border-radius:.375rem;padding:.5rem .625rem}.entry-heading.svelte-1im954t{align-items:baseline;gap:.75rem;display:flex}time.svelte-1im954t{color:#666;white-space:nowrap;margin-inline-start:auto;font-size:.875em}.commentary-toggle.svelte-1im954t{color:#666;background:0 0;border:0;min-block-size:1.5rem;padding:0 .125rem;font-size:.875em}.commentary-content.svelte-1im954t{margin-block:.25rem .5rem}.entry-content.svelte-1im954t{margin-block:.125rem 0;margin-inline:0}pre.svelte-1im954t,code.svelte-1im954t{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}pre.svelte-1im954t{white-space:pre;overflow-x:auto}.table-scroll.svelte-1im954t{margin-block:.75rem;overflow-x:auto}table.svelte-1im954t{border-collapse:collapse;white-space:normal;width:max-content;min-width:100%}th.svelte-1im954t,td.svelte-1im954t{text-align:left;vertical-align:top;padding:.25rem .5rem}th.svelte-1im954t{font-weight:600}.toast-viewport.svelte-1a0rutm{z-index:10;pointer-events:none;gap:.5rem;max-block-size:calc(100dvh - 7rem);inline-size:min(24rem,100vw - 1.5rem);display:grid;position:fixed;inset-block-start:calc(1rem + env(safe-area-inset-top));inset-inline-end:max(.75rem, env(safe-area-inset-right));overflow-y:auto}.toast.svelte-1a0rutm{box-sizing:border-box;color:canvastext;border:1px solid canvastext;min-inline-size:0;box-shadow:0 .4rem 1.2rem color-mix(in srgb, CanvasText 24%, transparent);pointer-events:auto;background:canvas;border-inline-start-width:.35rem;border-radius:.55rem;grid-template-columns:auto minmax(0,1fr) 44px;align-items:start;gap:.6rem;padding:.65rem;display:grid}.toast.error.svelte-1a0rutm{border-inline-start-style:double}.toast-symbol.svelte-1a0rutm{box-sizing:border-box;border:2px solid;border-radius:50%;place-items:center;block-size:1.6rem;inline-size:1.6rem;font-weight:800;line-height:1;display:grid}.toast-copy.svelte-1a0rutm{overflow-wrap:anywhere;gap:.15rem;min-inline-size:0;padding-block:.1rem;display:grid}.toast-copy.svelte-1a0rutm strong:where(.svelte-1a0rutm){text-transform:capitalize}.toast-copy.svelte-1a0rutm small:where(.svelte-1a0rutm){opacity:.72}button.svelte-1a0rutm{min-block-size:44px;inline-size:44px;color:inherit;font:inherit;background:0 0;border:0;border-radius:.35rem;place-items:center;padding:0;font-size:1.5rem;display:grid}button.svelte-1a0rutm:hover{background:color-mix(in srgb, CanvasText 10%, transparent)}@media (width<=24rem){.toast.svelte-1a0rutm{grid-template-columns:minmax(0,1fr) 44px;gap:.25rem;max-block-size:5rem;padding:.35rem;overflow-y:auto}.toast-symbol.svelte-1a0rutm{display:none}.toast-copy.svelte-1a0rutm strong:where(.svelte-1a0rutm){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;block-size:1px;inline-size:1px;padding:0;position:absolute;overflow:hidden}}@media (forced-colors:active){.toast.svelte-1a0rutm,.toast-symbol.svelte-1a0rutm{border-color:canvastext}}.evidence-page.svelte-1j55xyh{box-sizing:border-box;min-block-size:100dvh;inline-size:100%;padding:1rem 1rem 7rem}h1.svelte-1j55xyh{margin-block:0 .5rem}.evidence-composer.svelte-1j55xyh{position:fixed;inset-block-end:2.75rem;inset-inline:1rem}.evidence-prompt.svelte-1j55xyh{box-sizing:border-box;inline-size:100%;margin-block-start:.35rem;display:block}.evidence-nav.svelte-1j55xyh{padding:.5rem 1rem calc(.5rem + env(safe-area-inset-bottom));background:canvas;border-block-start:1px solid canvastext;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid;position:fixed;inset-block-end:0;inset-inline:0}.evidence-nav.svelte-1j55xyh button:where(.svelte-1j55xyh){text-overflow:ellipsis;min-block-size:44px;min-inline-size:0;overflow:hidden}@media (width<=24rem){.evidence-page.svelte-1j55xyh{padding:.5rem .5rem 7rem}.evidence-composer.svelte-1j55xyh{inset-inline:.5rem}}.filesystem-tree.svelte-6z3q4v{inline-size:100%;max-inline-size:100%;display:grid;overflow-x:clip}.tree-row.svelte-6z3q4v{min-inline-size:0;align-items:stretch;padding-inline-start:min(calc(var(--tree-level) * .75rem), 4.5rem);display:flex}.disclosure.svelte-6z3q4v,.disclosure-spacer.svelte-6z3q4v{flex:0 0 44px;min-block-size:44px;inline-size:44px}.disclosure.svelte-6z3q4v{color:inherit;font:inherit;background:0 0;border:0;border-radius:.35rem;place-items:center;padding:0;font-size:1.25rem;font-weight:700;display:grid}.disclosure.svelte-6z3q4v:hover{background:color-mix(in srgb, CanvasText 10%, transparent)}.tree-item.svelte-6z3q4v{min-block-size:44px;min-inline-size:0;color:inherit;font:inherit;text-align:start;background:0 0;border:1px solid #0000;border-radius:.35rem;flex:auto;align-items:center;gap:.5rem;padding:.3rem .5rem;display:flex;overflow:hidden}.tree-item.svelte-6z3q4v:hover{background:color-mix(in srgb, CanvasText 8%, transparent)}.tree-item.selected.svelte-6z3q4v{background:color-mix(in srgb, Highlight 16%, Canvas);border-color:currentColor;font-weight:650}.tree-item[aria-disabled=true].svelte-6z3q4v{opacity:.58}.tree-item.repository.svelte-6z3q4v{border-inline-start-width:3px}.selection-mark.svelte-6z3q4v{text-align:center;flex:0 0 1rem;inline-size:1rem}.node-copy.svelte-6z3q4v{flex:auto;min-inline-size:0;display:grid}.node-name.svelte-6z3q4v,.node-path.svelte-6z3q4v{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;overflow:hidden}.node-path.svelte-6z3q4v{opacity:.72;font-size:.75em;font-weight:400}.repository-badge.svelte-6z3q4v{border:1px solid;border-radius:999px;flex:none;padding:.1rem .35rem;font-size:.72em;font-weight:700;line-height:1.2}@media (width<=24rem){.tree-row.svelte-6z3q4v{padding-inline-start:min(calc(var(--tree-level) * .25rem), 1.5rem)}.tree-item.svelte-6z3q4v{gap:.35rem;padding-inline:.35rem}.repository-badge.svelte-6z3q4v{display:none}}@media (forced-colors:active){.tree-item.selected.svelte-6z3q4v,.tree-item.repository.svelte-6z3q4v,.repository-badge.svelte-6z3q4v{border-color:canvastext}}.evidence-shell.svelte-1d6w4ti{box-sizing:border-box;inline-size:min(100%,48rem);min-inline-size:0;margin-inline:auto;padding:1rem}.eyebrow.svelte-1d6w4ti{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:750}h1.svelte-1d6w4ti{margin-block:.25rem .5rem;font-size:clamp(1.35rem,6vw,2rem);line-height:1.15}.instructions.svelte-1d6w4ti{max-inline-size:42rem;margin-block:0 1rem}.tree-panel.svelte-1d6w4ti{border:1px solid color-mix(in srgb, CanvasText 35%, transparent);border-radius:.6rem;min-inline-size:0;padding:.5rem}@media (width<=24rem){.evidence-shell.svelte-1d6w4ti{padding:.5rem}.tree-panel.svelte-1d6w4ti{padding:.25rem}}.git-view.svelte-pudr3t{gap:1.5rem;inline-size:100%;min-inline-size:0;display:grid}.git-tree.svelte-pudr3t,.repository-details.svelte-pudr3t{min-inline-size:0}.section-heading.svelte-pudr3t h3:where(.svelte-pudr3t),.repository-details.svelte-pudr3t h3:where(.svelte-pudr3t){margin-block:0 .35rem}.section-heading.svelte-pudr3t p:where(.svelte-pudr3t){color:color-mix(in srgb, CanvasText 70%, Canvas);margin-block:0 .75rem}.clone-form.svelte-pudr3t{gap:.35rem;min-inline-size:0;display:grid}.clone-controls.svelte-pudr3t{grid-template-columns:minmax(10rem,.45fr) minmax(0,1fr) auto;align-items:end;gap:.5rem;display:grid}.clone-field.svelte-pudr3t{gap:.35rem;min-inline-size:0;display:grid}.field-label.svelte-pudr3t{font-weight:600}.clone-destination.svelte-pudr3t output:where(.svelte-pudr3t){overflow-wrap:anywhere;border:1px solid color-mix(in srgb, CanvasText 35%, Canvas);border-radius:.35rem;min-block-size:2.75rem;padding:.65rem .75rem}.clone-controls.svelte-pudr3t button:where(.svelte-pudr3t){min-inline-size:5.75rem}.clone-form.svelte-pudr3t p:where(.svelte-pudr3t){color:color-mix(in srgb, CanvasText 70%, Canvas);margin:0;font-size:.875rem}.clone-status.svelte-pudr3t{font-weight:600;color:canvastext!important}.git-overview.svelte-pudr3t{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;display:grid}.git-status.svelte-pudr3t p:where(.svelte-pudr3t){margin-block:.5rem}.git-actions.svelte-pudr3t{gap:.5rem;display:grid}.git-actions.svelte-pudr3t button:where(.svelte-pudr3t){min-inline-size:6rem}.commit-history.svelte-pudr3t{margin-block-start:2rem}.commit-history.svelte-pudr3t h3:where(.svelte-pudr3t){margin-block-end:.75rem}.commit-list.svelte-pudr3t{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.commit-entry.svelte-pudr3t{border-block-end:1px solid color-mix(in srgb, CanvasText 20%, Canvas);gap:.35rem;min-inline-size:0;padding:.8rem 0;display:grid}.commit-subject.svelte-pudr3t,.commit-meta.svelte-pudr3t{gap:.65rem;min-inline-size:0;display:flex}.commit-subject.svelte-pudr3t{overflow-wrap:anywhere;align-items:baseline;font-weight:600}.commit-subject.svelte-pudr3t code:where(.svelte-pudr3t){color:color-mix(in srgb, CanvasText 75%, Canvas);flex:none;font-size:.875em}.commit-meta.svelte-pudr3t{color:color-mix(in srgb, CanvasText 70%, Canvas);flex-wrap:wrap;justify-content:space-between;font-size:.875rem}.commit-meta.svelte-pudr3t time:where(.svelte-pudr3t){overflow-wrap:anywhere;min-inline-size:0;max-inline-size:100%}@media (width<=28rem){.clone-controls.svelte-pudr3t{grid-template-columns:1fr}.clone-controls.svelte-pudr3t button:where(.svelte-pudr3t){inline-size:100%}}.plan.svelte-3rmyvg{overflow-wrap:anywhere;min-inline-size:0}header.svelte-3rmyvg{justify-content:space-between;align-items:start;gap:1rem;display:flex}h2.svelte-3rmyvg,p.svelte-3rmyvg{margin-block:.4rem}progress.svelte-3rmyvg{inline-size:100%}ol.svelte-3rmyvg{padding-inline-start:1.25rem}details.svelte-3rmyvg{margin-block:.5rem}summary.svelte-3rmyvg{cursor:pointer;gap:.2rem;display:grid}.metadata.svelte-3rmyvg{gap:.25rem;display:grid}.metadata.svelte-3rmyvg div:where(.svelte-3rmyvg){gap:.5rem;display:flex}.metadata.svelte-3rmyvg dd:where(.svelte-3rmyvg){margin:0}.close.svelte-3rmyvg{flex:none;block-size:2.75rem;inline-size:2.75rem;font-size:1.5rem}button.svelte-3rmyvg:focus-visible,summary.svelte-3rmyvg:focus-visible{outline-offset:2px;outline:3px solid}@media (prefers-reduced-motion:reduce){.svelte-3rmyvg{scroll-behavior:auto}}.session-list.svelte-hxb22h{gap:1rem;inline-size:100%;margin-block:0 1.5rem;padding-inline:0;list-style:none;display:grid}.current-session.svelte-hxb22h{outline:2px solid var(--accent,#4f46e5);outline-offset:2px}.session-select.svelte-hxb22h{inline-size:100%;color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block}.managed-session.svelte-hxb22h{box-sizing:border-box;border:1px solid canvastext;border-radius:.5rem;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:.75rem;inline-size:100%;padding:.75rem;display:grid}.open-session.svelte-hxb22h{background:color-mix(in srgb, Highlight 12%, Canvas);border-inline-start:.3rem solid highlight}.session-details.svelte-hxb22h{min-inline-size:0}.workspace-path.svelte-hxb22h{overflow-wrap:anywhere}.profile-badge.svelte-hxb22h{background:color-mix(in srgb, Highlight 14%, Canvas);color:canvastext;overflow-wrap:anywhere;border-radius:999px;margin-block-start:.35rem;padding:.15rem .4rem;font-size:.875rem;display:inline-block}.session-actions.svelte-hxb22h{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=30rem){.managed-session.svelte-hxb22h{grid-template-columns:minmax(0,1fr)}}.recent-session.svelte-hxb22h{grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:.75rem;display:grid}.session-base.svelte-hxb22h{gap:.65rem;min-inline-size:0;margin-block:1rem;display:grid}.session-base-heading.svelte-hxb22h h3:where(.svelte-hxb22h),.session-base-heading.svelte-hxb22h p:where(.svelte-hxb22h){margin:0}.session-base-heading.svelte-hxb22h p:where(.svelte-hxb22h){margin-block-start:.25rem}.tree-panel.svelte-hxb22h{box-sizing:border-box;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid color-mix(in srgb, CanvasText 35%, transparent);border-radius:.6rem;max-block-size:min(22rem,48vh);min-inline-size:0;padding:.35rem;overflow-y:auto}.session-settings.svelte-hxb22h{gap:.5rem;min-inline-size:0;margin-block-end:.75rem;display:grid}.session-setting-labels.svelte-hxb22h,.session-setting-controls.svelte-hxb22h{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;min-inline-size:0;display:grid}.session-setting-labels.svelte-hxb22h label:where(.svelte-hxb22h){overflow-wrap:anywhere;min-inline-size:0}.session-setting-controls.svelte-hxb22h select:where(.svelte-hxb22h){text-overflow:ellipsis;inline-size:100%;min-inline-size:0;max-inline-size:100%;overflow:hidden}.session-secondary-actions.svelte-hxb22h,.model-control.svelte-hxb22h{align-items:center;gap:.5rem;min-inline-size:0;display:flex}.session-secondary-actions.svelte-hxb22h{flex-wrap:wrap}.model-control.svelte-hxb22h{margin-inline-start:auto}.skills-profile-error.svelte-hxb22h{color:#8a1c14;margin:0;font-size:.875rem}.new-session-button.svelte-hxb22h{color:canvas;inline-size:auto;box-shadow:inset 0 .15rem 0 color-mix(in srgb, Canvas 45%, transparent);background:canvastext;border-color:canvastext;font-weight:700}@media (width<=28rem){.tree-panel.svelte-hxb22h{padding:.2rem}.model-control.svelte-hxb22h{margin-inline-start:0}}.skills-view.svelte-dg6sjj{min-inline-size:0;padding:1rem max(1rem, env(safe-area-inset-right)) calc(5rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left))}.intro.svelte-dg6sjj,.save-intent.svelte-dg6sjj,.summary.svelte-dg6sjj{max-inline-size:70ch}form.svelte-dg6sjj,.field-grid.svelte-dg6sjj{gap:.65rem;display:grid}.field-grid.svelte-dg6sjj{grid-template-columns:minmax(0,1fr)}label.svelte-dg6sjj{font-weight:650}select.svelte-dg6sjj,input.svelte-dg6sjj,button.svelte-dg6sjj{box-sizing:border-box;min-block-size:3rem;inline-size:100%;font:inherit}dialog.svelte-dg6sjj{max-inline-size:min(100% - 2rem,32rem)}.dialog-actions.svelte-dg6sjj{gap:.65rem;display:grid}input.svelte-dg6sjj,select.svelte-dg6sjj{padding-inline:.7rem;font-size:1rem}button.svelte-dg6sjj{padding-inline:1rem}.profile-actions.svelte-dg6sjj{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.skills-toolbar.svelte-dg6sjj{flex-wrap:wrap;align-items:center;gap:.65rem;margin-block:1rem;display:flex}.refresh-skills.svelte-dg6sjj{flex:none;min-block-size:2.25rem;inline-size:auto;padding-inline:.65rem}.refresh-skills.svelte-dg6sjj span:where(.svelte-dg6sjj):first-child{font-size:1.2em;line-height:1}.summary.svelte-dg6sjj{overflow-wrap:anywhere;min-inline-size:0;margin:0}.notice.svelte-dg6sjj{border-inline-start:.3rem solid #976600;padding-inline-start:.7rem}.error.svelte-dg6sjj{color:#8a1c14;border-inline-start:.3rem solid #b42318;padding-inline-start:.7rem}.skill-list.svelte-dg6sjj{gap:.75rem;padding:0;list-style:none;display:grid}.skill-card.svelte-dg6sjj{border:1px solid color-mix(in srgb, var(--brand-color,currentColor) 35%, transparent);border-radius:.5rem;min-inline-size:0;padding:.75rem;scroll-margin-block:1rem}.skill-toggle.svelte-dg6sjj{flex-wrap:wrap;align-items:center;gap:.65rem;min-block-size:3rem;display:flex}.skill-toggle.svelte-dg6sjj>span:where(.svelte-dg6sjj){overflow-wrap:anywhere;min-inline-size:0}.skill-toggle.svelte-dg6sjj input:where(.svelte-dg6sjj){flex:none;min-block-size:1.25rem;inline-size:1.25rem}.state.svelte-dg6sjj{margin-inline-start:auto;font-weight:500}.skill-details.svelte-dg6sjj{overflow-wrap:anywhere;padding-inline-start:1.9rem}.skill-details.svelte-dg6sjj>:where(.svelte-dg6sjj):first-child{margin-block-start:.25rem}.skill-details.svelte-dg6sjj>:where(.svelte-dg6sjj):last-child{margin-block-end:0}dl.svelte-dg6sjj{grid-template-columns:minmax(7rem,auto) minmax(0,1fr);gap:.45rem .75rem;display:grid}dt.svelte-dg6sjj{font-weight:650}dd.svelte-dg6sjj{min-inline-size:0;margin:0}dd.svelte-dg6sjj ul:where(.svelte-dg6sjj){margin:0;padding-inline-start:1.25rem}.path.svelte-dg6sjj{overflow-wrap:anywhere}.svelte-dg6sjj:where(button:where(.svelte-dg6sjj),input:where(.svelte-dg6sjj),select:where(.svelte-dg6sjj)):focus-visible{outline-offset:2px;outline:3px solid #1261a0}@media (prefers-color-scheme:dark){.error.svelte-dg6sjj{color:#ffb4ab}.notice.svelte-dg6sjj{color:#ffd8a8}}@media (width>=42rem){.field-grid.svelte-dg6sjj{grid-template-columns:minmax(10rem,1fr) minmax(0,2fr);align-items:center}}@media (width<=30rem){dl.svelte-dg6sjj{grid-template-columns:1fr;gap:.2rem}}.chat-view.svelte-y74n0s{margin-inline:calc(.25rem - var(--page-inline-padding))}.swipe-surface.svelte-y74n0s{touch-action:pan-y}.evidence-mode.svelte-y74n0s{box-sizing:border-box;inline-size:100%;min-inline-size:0;padding:0}.session-profile-manager-header.svelte-y74n0s{box-sizing:border-box;inline-size:100%;min-inline-size:0;padding-inline:max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));justify-content:space-between;align-items:safe center;gap:1rem;display:flex}.session-profile-manager-header.svelte-y74n0s h2:where(.svelte-y74n0s){overflow-wrap:anywhere;min-inline-size:0;margin:0}.close-profile-manager.svelte-y74n0s{min-block-size:2.5rem;inline-size:2.5rem;color:inherit;background:0 0;border:0;flex:none;padding:0;font-size:2rem;line-height:1}:root{--bottom-navigation-clearance:calc(4rem + env(safe-area-inset-bottom));--sticky-header-clearance:calc(5rem + env(safe-area-inset-top));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{min-block-size:100dvh;margin:0}.visually-hidden{clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;block-size:1px!important;inline-size:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}main{--page-inline-padding:1rem;box-sizing:border-box;min-block-size:100dvh;max-inline-size:42rem;padding:calc(1rem + env(safe-area-inset-top)) var(--page-inline-padding) calc(var(--bottom-navigation-clearance) + 1rem);margin-inline:auto}@media (width<=24rem){main{--page-inline-padding:.5rem}}.app-header{z-index:1;margin:calc(-1rem - env(safe-area-inset-top)) calc(.25rem - var(--page-inline-padding)) 1.5rem;padding:calc(1rem + env(safe-area-inset-top)) calc(var(--page-inline-padding) - .25rem) .75rem;background:color-mix(in srgb, Canvas 78%, transparent);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;inset-block-start:0}.app-header [role=status]{overflow-wrap:anywhere;text-align:end;min-inline-size:0;margin:0}.brand{align-items:center;gap:.4rem;display:flex}.menu-trigger{min-block-size:44px;inline-size:44px;color:inherit;background:0 0;border:0;flex:none;place-items:center;margin-inline-start:auto;padding:0;display:grid}.menu-lines{gap:.25rem;inline-size:1.25rem;display:grid}.menu-lines span{box-sizing:border-box;background:currentColor;block-size:1px;display:block}.menu-lines span:first-child,.menu-lines span:nth-child(2),.menu-lines span:last-child{block-size:2px}@media (width<=28rem){.app-header [role=status]{flex-basis:100%;margin-inline-start:0}}.brand-icon{block-size:2rem;inline-size:2rem}.brand-logotype{block-size:auto;inline-size:6.25rem}.dark-asset,:root[data-theme=dark] .light-asset{display:none}:root[data-theme=dark] .dark-asset{display:initial}@media (prefers-color-scheme:dark){:root:not([data-theme]) .light-asset{display:none}:root:not([data-theme]) .dark-asset{display:initial}}.configuration-panel{color:canvastext;min-inline-size:min(13rem,100vw - 2rem);box-shadow:0 .5rem 1.5rem color-mix(in srgb, CanvasText 25%, transparent);background:canvas;border:1px solid canvastext;border-radius:.5rem;padding:.75rem;position:fixed;inset:4.5rem 1rem auto auto}.configuration-logo{block-size:auto;inline-size:4.5rem;margin-block-end:.5rem;margin-inline-start:auto;display:block}.appearance-control{align-items:center;gap:.5rem;display:flex}.appearance-control span{letter-spacing:-.08em;font-weight:700}.appearance-control select{field-sizing:content;flex:none;min-block-size:2.25rem;inline-size:auto;padding-inline:.5rem}.bottom-navigation{padding:.5rem calc(.25rem + env(safe-area-inset-right)) calc(.5rem + env(safe-area-inset-bottom)) calc(.25rem + env(safe-area-inset-left));background:canvas;border-block-start:1px solid canvastext;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;display:grid;position:fixed;inset-block-end:0;inset-inline:0}.bottom-navigation button{overflow-wrap:anywhere;word-break:break-word;min-inline-size:0;max-inline-size:100%;padding-inline:0;transition:color .12s,background-color .12s,box-shadow .12s}.bottom-navigation button[aria-pressed=true]{color:canvas;box-shadow:inset 0 .2rem 0 color-mix(in srgb, Canvas 70%, transparent);background:canvastext;font-weight:700}.bottom-navigation button:disabled{color:color-mix(in srgb, CanvasText 40%, transparent);cursor:not-allowed;opacity:.65}@media (width<=30rem){:root{--bottom-navigation-clearance:calc(10rem + env(safe-area-inset-bottom));--sticky-header-clearance:calc(14rem + env(safe-area-inset-top))}.bottom-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-navigation button{text-align:center;padding-inline:.25rem}}button{min-block-size:44px;font:inherit}.git-view button{scroll-margin-block:var(--sticky-header-clearance) var(--bottom-navigation-clearance)}input,select,textarea{box-sizing:border-box;min-block-size:44px;inline-size:100%;font:inherit;font-size:max(1rem,16px)}:focus-visible{outline-offset:3px;outline:3px solid canvastext}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (forced-colors:active){button,input,select,textarea{border:1px solid canvastext}}
|
package/dist/client/index.html
CHANGED
|
@@ -10,8 +10,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
10
10
|
<meta charset="UTF-8" />
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<title>Codex Relay</title>
|
|
13
|
-
<script type="module" crossorigin src="/assets/index
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-CGAy94nY.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DSU_Fcvo.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="app"></div>
|
|
@@ -20,6 +20,7 @@ import { registerPromoteRecentThread } from './features/sessions/promote-recent-
|
|
|
20
20
|
import { registerGetHistory } from './features/sessions/get-history/endpoint.js';
|
|
21
21
|
import { registerStartSession } from './features/sessions/start-session/endpoint.js';
|
|
22
22
|
import { registerStartTurn } from './features/sessions/start-turn/endpoint.js';
|
|
23
|
+
import { registerSelectModel } from './features/sessions/select-model/endpoint.js';
|
|
23
24
|
import { registerInterruptTurn } from './features/sessions/interrupt-turn/endpoint.js';
|
|
24
25
|
import { registerStopSession } from './features/sessions/stop-session/endpoint.js';
|
|
25
26
|
import { registerRestoreSession } from './features/sessions/restore-session/endpoint.js';
|
|
@@ -28,11 +29,13 @@ import { registerForgetSession } from './features/sessions/forget-session/endpoi
|
|
|
28
29
|
import { registerRespondInteraction } from './features/sessions/respond-interaction/endpoint.js';
|
|
29
30
|
import { stopSession } from './features/sessions/lifecycle/use-case.js';
|
|
30
31
|
import { registerSessionEvents } from './features/sessions/session-events/endpoint.js';
|
|
32
|
+
import { registerGetPlan } from './features/plans/get-plan/endpoint.js';
|
|
33
|
+
import { registerClosePlan } from './features/plans/close-plan/endpoint.js';
|
|
31
34
|
import { registerProblemHandler } from './platform/http/problem-handler.js';
|
|
32
|
-
import { registerListAvailableSkills } from './features/skills/list-available/endpoint.js';
|
|
33
|
-
import { registerListSkillProfiles } from './features/skills/list-profiles/endpoint.js';
|
|
34
|
-
import { registerReplaceSkillProfile } from './features/skills/replace-profile/endpoint.js';
|
|
35
|
-
import { registerDeleteSkillProfile } from './features/skills/delete-profile/endpoint.js';
|
|
35
|
+
import { registerListAvailableSkills, } from './features/skills/list-available/endpoint.js';
|
|
36
|
+
import { registerListSkillProfiles, } from './features/skills/list-profiles/endpoint.js';
|
|
37
|
+
import { registerReplaceSkillProfile, } from './features/skills/replace-profile/endpoint.js';
|
|
38
|
+
import { registerDeleteSkillProfile, } from './features/skills/delete-profile/endpoint.js';
|
|
36
39
|
export async function buildApp(deps) {
|
|
37
40
|
const app = fastify({ logger: false });
|
|
38
41
|
if (deps.staticDir)
|
|
@@ -62,6 +65,13 @@ export async function buildApp(deps) {
|
|
|
62
65
|
start: deps.sessionRoutes.startTurn,
|
|
63
66
|
save: deps.sessionRoutes.save,
|
|
64
67
|
});
|
|
68
|
+
if (deps.sessionRoutes.models)
|
|
69
|
+
registerSelectModel(app, {
|
|
70
|
+
find: deps.sessionRoutes.find,
|
|
71
|
+
models: () => deps.sessionRoutes.models.list(),
|
|
72
|
+
now: deps.sessionRoutes.now,
|
|
73
|
+
save: deps.sessionRoutes.save,
|
|
74
|
+
});
|
|
65
75
|
if (deps.sessionRoutes.interruptTurn)
|
|
66
76
|
registerInterruptTurn(app, {
|
|
67
77
|
find: deps.sessionRoutes.find,
|
|
@@ -113,6 +123,10 @@ export async function buildApp(deps) {
|
|
|
113
123
|
}
|
|
114
124
|
if (deps.sessionEvents)
|
|
115
125
|
registerSessionEvents(app, deps.sessionEvents);
|
|
126
|
+
if (deps.planRoutes) {
|
|
127
|
+
registerGetPlan(app, deps.planRoutes);
|
|
128
|
+
registerClosePlan(app, deps.planRoutes);
|
|
129
|
+
}
|
|
116
130
|
if (deps.gitSummary)
|
|
117
131
|
registerGetGitSummary(app, {
|
|
118
132
|
workspaces: deps.gitSummary.workspaces,
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { randomUUID } from 'node:crypto';
|
|
7
7
|
import { existsSync } from 'node:fs';
|
|
8
8
|
import { homedir } from 'node:os';
|
|
9
|
-
import { join, resolve } from 'node:path';
|
|
9
|
+
import { dirname, join, resolve } from 'node:path';
|
|
10
10
|
import { buildApp } from './app.js';
|
|
11
11
|
import { FilesystemWorkspaceCatalog } from './platform/catalog/filesystem-workspace-catalog.js';
|
|
12
12
|
import { protocolCompatibility } from './platform/codex/protocol-compatibility.js';
|
|
@@ -36,6 +36,8 @@ import { FilesystemSkillProfileStore } from './platform/skills/filesystem-skill-
|
|
|
36
36
|
import { CodexSkillCatalog } from './platform/skills/codex-skill-catalog.js';
|
|
37
37
|
import { CachedSkillCatalog } from './platform/skills/cached-skill-catalog.js';
|
|
38
38
|
import { compileSkillOverride } from './features/skills/model/skill-profile.js';
|
|
39
|
+
import { SupervisedPlanRegistry } from './features/plans/application/supervised-plan-registry.js';
|
|
40
|
+
import { FilesystemPlanStatusSource } from './platform/plans/filesystem-plan-status-source.js';
|
|
39
41
|
const generatedProtocolVersion = 'codex-cli 0.144.3';
|
|
40
42
|
export async function composeRelayApp(options) {
|
|
41
43
|
const root = resolve(options.root);
|
|
@@ -48,6 +50,8 @@ export async function composeRelayApp(options) {
|
|
|
48
50
|
const journal = new SqliteEventJournal(database);
|
|
49
51
|
const interactions = new SqlitePendingInteractionStore(database);
|
|
50
52
|
const idempotency = new SqliteIdempotencyStore(database);
|
|
53
|
+
const supervisedPlans = new SupervisedPlanRegistry();
|
|
54
|
+
const planStatusSource = new FilesystemPlanStatusSource(join(dirname(databasePath), 'plans'));
|
|
51
55
|
const withPendingInteractions = (session) => (session ? { ...session, pendingInteractions: interactions.list(session.id) } : null);
|
|
52
56
|
const events = new SessionEventBus();
|
|
53
57
|
const workspaces = new FilesystemWorkspaceCatalog(root);
|
|
@@ -103,7 +107,13 @@ export async function composeRelayApp(options) {
|
|
|
103
107
|
sessions.save(updated);
|
|
104
108
|
events.publish(journal.append(sessionId, 'interaction.requested', interaction, updated.updatedAt));
|
|
105
109
|
return true;
|
|
106
|
-
}, (sessionId) => recoverExitedSession(sessionId), resolveSkills)
|
|
110
|
+
}, (sessionId) => recoverExitedSession(sessionId), resolveSkills, planStatusSource, (sessionId, update) => {
|
|
111
|
+
supervisedPlans.accept(sessionId, update);
|
|
112
|
+
if (update.kind === 'updated') {
|
|
113
|
+
const occurredAt = new Date().toISOString();
|
|
114
|
+
events.publish(journal.append(sessionId, 'plan.updated', update.plan, occurredAt));
|
|
115
|
+
}
|
|
116
|
+
})
|
|
107
117
|
: null;
|
|
108
118
|
const saveSession = (session) => {
|
|
109
119
|
sessions.save(session);
|
|
@@ -178,6 +188,7 @@ export async function composeRelayApp(options) {
|
|
|
178
188
|
startTurn: runtime
|
|
179
189
|
? async (session, text) => runtime.startTurn(session, text, new Date().toISOString())
|
|
180
190
|
: undefined,
|
|
191
|
+
models,
|
|
181
192
|
readHistory: runtime ? (session) => runtime.readHistory(session) : undefined,
|
|
182
193
|
currentSequence: (sessionId) => journal.since(sessionId, 0).at(-1)?.sequence ?? 0,
|
|
183
194
|
interruptTurn: runtime
|
|
@@ -211,6 +222,16 @@ export async function composeRelayApp(options) {
|
|
|
211
222
|
since: (id, after) => journal.since(id, after),
|
|
212
223
|
subscribe: (id, listener) => events.subscribe(id, listener),
|
|
213
224
|
},
|
|
225
|
+
planRoutes: {
|
|
226
|
+
exists: (id) => sessions.find(id) !== null,
|
|
227
|
+
find: (id) => supervisedPlans.find(id),
|
|
228
|
+
removeStatus: (id) => planStatusSource.remove(id, supervisedPlans.identity(id) ?? undefined),
|
|
229
|
+
clear: (id) => supervisedPlans.clear(id),
|
|
230
|
+
closed: (id) => {
|
|
231
|
+
const occurredAt = new Date().toISOString();
|
|
232
|
+
events.publish(journal.append(id, 'plan.closed', {}, occurredAt));
|
|
233
|
+
},
|
|
234
|
+
},
|
|
214
235
|
interactions: {
|
|
215
236
|
resolve: (sessionId, requestId, resolvedAt) => interactions.resolve(sessionId, requestId, resolvedAt),
|
|
216
237
|
validate: (sessionId, requestId, value) => {
|
|
@@ -270,6 +291,7 @@ export async function composeRelayApp(options) {
|
|
|
270
291
|
});
|
|
271
292
|
app.addHook('onClose', async () => {
|
|
272
293
|
runtime?.stopAll();
|
|
294
|
+
planStatusSource.closeAll();
|
|
273
295
|
database.close();
|
|
274
296
|
});
|
|
275
297
|
return app;
|