gestalt-mobile 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/client/assets/index-Cjxvsp9k.js +12 -0
- package/dist/client/index.html +1 -1
- package/dist/server/server/composition.js +1 -1
- package/dist/server/server/features/sessions/get-history/endpoint.js +23 -1
- package/dist/server/server/features/sessions/restore-session/endpoint.js +24 -4
- package/dist/server/server/features/sessions/restore-session/use-case.js +20 -0
- package/dist/server/server/platform/codex/json-rpc-client.js +36 -2
- package/dist/server/server/platform/codex/session-runtime.js +64 -22
- package/dist/server/server/platform/plans/filesystem-plan-status-source.js +1 -3
- package/dist/server/shared/contracts/plan-signal.js +17 -0
- package/package.json +2 -1
- package/dist/client/assets/index-D7-LoAAR.js +0 -12
package/README.md
CHANGED
|
@@ -105,6 +105,11 @@ stored with the relay session and shown in managed session entries.
|
|
|
105
105
|
Use **Open** to relaunch a released, stopped, or attention-required
|
|
106
106
|
relay session from the browser.
|
|
107
107
|
|
|
108
|
+
If an upgrade has removed the Codex rollout for a saved session, **Open** keeps
|
|
109
|
+
the relay session and its settings but creates and binds a replacement Codex
|
|
110
|
+
thread. The client shows that the earlier Codex history is unavailable; other
|
|
111
|
+
restore failures leave the saved thread unchanged so Open can be retried.
|
|
112
|
+
|
|
108
113
|
The relay keeps SQLite state under the supplied data directory, or
|
|
109
114
|
under the root-hashed XDG state directory when `--data-dir` is
|
|
110
115
|
omitted. Active durable threads are resumed after a relay restart. A
|
|
@@ -157,6 +162,20 @@ fails, first confirm `codex --version` works in the same shell and that Codex is
|
|
|
157
162
|
authenticated. Use `gestalt-mobile --help` to diagnose rejected options without
|
|
158
163
|
starting the server.
|
|
159
164
|
|
|
165
|
+
From a source checkout, maintainers can exercise the installed isolated
|
|
166
|
+
`gestalt` profile without touching their normal relay data:
|
|
167
|
+
|
|
168
|
+
```sh
|
|
169
|
+
npm run test:open-profile-smoke
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The opt-in smoke derives the selected profile's CLI version, creates a
|
|
173
|
+
temporary workspace and relay database, then checks normal Open and
|
|
174
|
+
missing-rollout replacement. It creates one bounded harmless turn to establish
|
|
175
|
+
durable history, deletes only the exact smoke-created Codex threads through the
|
|
176
|
+
app-server afterwards, and always removes its temporary state. It reports
|
|
177
|
+
`SKIP` when the isolated profile is unavailable.
|
|
178
|
+
|
|
160
179
|
## Run from source
|
|
161
180
|
|
|
162
181
|
```sh
|
|
@@ -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,te=1<<25,T=65536,ne=1<<21,E=1<<22,re=1<<23,D=Symbol(`$state`),ie=Symbol(`legacy props`),ae=Symbol(``),oe=Symbol(`attributes`),se=Symbol(`class`),ce=Symbol(`style`),le=Symbol(`text`),ue=Symbol(`form reset`),O=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 me(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function he(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function ge(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function _e(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function ve(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function ye(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function be(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function xe(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Se(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ce(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var we={},k=Symbol(`uninitialized`),Te=`http://www.w3.org/1999/xhtml`;function Ee(){console.warn(`https://svelte.dev/e/derived_inert`)}function De(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Oe(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function ke(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var A=!1;function Ae(e){A=e}var j;function M(e){if(e===null)throw De(),we;return j=e}function je(){return M(rn(j))}function N(e){if(A){if(rn(j)!==null)throw De(),we;j=e}}function Me(e=1){if(A){for(var t=e,n=j;t--;)n=rn(n);j=n}}function Ne(e=!0){for(var t=0,n=j;;){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 Pe(e){if(!e||e.nodeType!==8)throw De(),we;return e.data}function Fe(e){return e===this.v}function Ie(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Le(e){return!Ie(e,this.v)}var Re=null;function ze(e){Re=e}function Be(e,t=!1,n){Re={p:Re,i:!1,c:null,e:null,s:e,x:null,r:G,l:null}}function Ve(e){var t=Re,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,Re=t.p,e??{}}function He(){return!0}var Ue=[];function We(){var e=Ue;Ue=[],f(e)}function Ge(e){if(Ue.length===0&&!St){var t=Ue;queueMicrotask(()=>{t===Ue&&We()})}Ue.push(e)}function Ke(){for(;Ue.length>0;)We()}function qe(e){var t=G;if(t===null)return W.f|=re,e;if(!(t.f&32768)&&!(t.f&4))throw e;Je(e,t)}function Je(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 Ye=~(g|_|h);function P(e,t){e.f=e.f&Ye|t}function Xe(e){e.f&512||e.deps===null?P(e,h):P(e,_)}function Ze(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=T,Ze(t.deps))}function Qe(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),Ze(e.deps),P(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,()=>{Ge(()=>{--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=A?j: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(A){let e=this.#t;je();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),A&&(this.#e=j)}#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)),Ge(()=>{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=Re;Wn(this.#i),Un(this.#i),ze(this.#i.ctx);try{return Ot.ensure(),e()}catch(e){return qe(e),null}finally{Wn(t),Un(n),ze(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,Ge(()=>{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),A&&(M(this.#t),Me(),M(Ne()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){ke();return}r=!0,i&&Ce(),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){Je(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 Je(e,this.#i.parent),null}}))};Ge(()=>{var t;try{t=this.transform_error(e)}catch(e){Je(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>Je(e,this.#i&&this.#i.parent)):o(t)})}};function at(e,t,n,r){let i=He()?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){Je(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=>Je(e,s)).finally(d)}l?l.then(()=>{c(),f(),st()}):f()}function ot(){var e=G,t=W,n=Re,r=I;return function(i=!0){Wn(e),Un(t),ze(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function st(e=!0){Wn(null),Un(null),ze(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:Re,deps:null,effects:null,equals:Fe,f:t,fn:e,reactions:null,rv:0,v:k,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(k),o=!W,s=new Set;return Cn(()=>{var t=G,n=p();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==O&&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|=re,Ut(a,t)):(a.f&8388608&&(a.f^=re),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=Le,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!==k&&r.f&24576)return Ee(),e.v;Wn(r);try{e.f&=~T,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))){P(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(O),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)P(r,g),t(r);for(r of n.m)P(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),P(e,g),this.schedule(e);for(let e of this.#d)P(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),P(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!==k&&!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,Ge(()=>{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&&Ge(()=>{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(Ke(),I===null)return n;I.flush()}}finally{St=t}}function At(){try{ve()}catch(e){Je(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)&&(P(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),P(e,h);for(var n=e.first;n!==null;)It(n,t),n=n.next}}function Lt(e){P(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:Fe,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=Le),r}function R(e,t,n=!1){return W!==null&&(!Hn||W.f&131072)&&He()&&W.f&4325394&&(Gn===null||!Gn.has(e))&&Se(),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),He()&&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&&P(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=He(),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&&P(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|=T),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||D 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)&&be();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(k,u));r.set(t,e),Gt(o)}}else R(n,k),Gt(o);return!0},get(e,n,i){if(n===D)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]:k),u)),r.set(n,o)),o!==void 0){var c=K(o);return c===k?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!==k)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===D)return!0;var n=r.get(t),i=n!==void 0&&n.v!==k||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]):k,u)),r.set(t,n)),K(n)===k)?!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(k,u)),r.set(d+``,p)):R(p,k)}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!==k;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!==k});for(var[n,i]of r)i.v!==k&&!(n in e)&&t.push(n);return t},setPrototypeOf(){xe()}})}function qt(e){try{if(typeof e==`object`&&e&&D in e)return e[D]}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[se]=void 0,e[oe]=null,e[ce]=void 0,e.__e=void 0),u(n)&&(n[le]=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(!A)return nn(e);var n=nn(j);if(n===null)n=j.appendChild(tn());else if(t&&n.nodeType!==3){var r=tn();return n?.before(r),M(r),r}return t&&cn(n),M(n),n}function V(e,t=!1){if(!A){var n=nn(e);return n instanceof Comment&&n.data===``?rn(n):n}if(t){if(j?.nodeType!==3){var r=tn();return j?.before(r),M(r),r}cn(j)}return j}function H(e,t=1,n=!1){let r=A?j:e;for(var i;t--;)i=r,r=rn(r);if(!A)return r;if(n){if(r?.nodeType!==3){var a=tn();return r===null?i?.after(a):r.before(a),M(a),a}cn(r)}return M(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){A&&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[ue]?.()})},{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[ue];i?e[ue]=()=>{i(),r(!0)}:e[ue]=()=>r(!0),dn()}function mn(e){G===null&&(W===null&&_e(e),ge()),Bn&&he(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:Re,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 P(t,h),t.teardown=e,t}function yn(e){mn(`$effect`);var t=G.f;if(!W&&t&32&&Re!==null&&!Re.i){var n=Re;(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(E|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(O)});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||(P(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&=~T),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&&P(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?P(a,g):a.f&1024&&P(a,_),Ft(a))}}function ir(e){var t=qn,n=Jn,r=Yn,i=W,a=Gn,o=Re,s=Hn,c=$n,l=e.f;qn=null,Jn=0,Yn=null,W=l&96?null:e,Gn=null,ze(e.ctx),Hn=!1,$n=++Qn,e.ac!==null&&(fn(()=>{e.ac.abort(O)}),e.ac=null);try{e.f|=ne;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(He()&&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^=re),d}catch(e){return qe(e)}finally{e.f^=ne,qn=t,Jn=n,Yn=r,W=i,Gn=a,ze(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&=~T),s.v!==k&&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)){P(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===k)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`?Ge(()=>{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(A)return Tr(j,null),j;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(!A){var t=tn(e+``);return Tr(t,t),t}var n=j;return n.nodeType===3?cn(n):(n.before(n=tn()),M(n)),Tr(n,n),n}function Dr(){if(A)return Tr(j,null),j;var e=document.createDocumentFragment(),t=document.createComment(``),n=tn();return e.append(t,n),Tr(t,n),e}function Y(e,t){if(A){var n=G;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=j),je();return}e!==null&&e.before(t)}function X(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[le]??=e.nodeValue)&&(e[le]=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=>{Be({});var n=Re;if(o&&(n.c=o),a&&(i.$$events=a),A&&Tr(t,null),l=e(t,i)||{},A&&(G.nodes.end=j,j===null||j.nodeType!==8||j.data!==`]`))throw De(),we;Ve()},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 A&&(this.anchor=j),this.#a(n)}};function Z(e,t,n=!1){var r;A&&(r=j,je());var i=new Mr(e),a=n?S:0;function o(e,t){if(A){var n=Pe(r);if(e!==parseInt(n.substring(1))){var a=Ne();M(a),i.anchor=a,Ae(!1),i.ensure(e,t),Ae(!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|=te,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=A?M(nn(u)):u.appendChild(tn())}A&&je();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^=te,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;A&&Pe(c)===`[!`!=(e===0)&&(c=Ne(),M(c),Ae(!1),t=!0);for(var r=new Set,u=I,v=on(),y=0;y<e;y+=1){A&&j.nodeType===8&&j.data===`]`&&(c=j,t=!0,Ae(!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|=te),l.set(x,S)),r.add(x)}if(e===0&&s&&!d&&(h?d=En(()=>s(c)):(d=En(()=>s(Ir??=tn())),d.f|=te)),e>r.size&&me(``,``,``),A&&e>0&&M(Ne()),!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&&Ae(!0),K(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,A&&(c=j)}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^=te,_===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 T=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,T)}}o&&Ge(()=>{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=A;var i;if(A){n=j;for(var a=nn(document.head);a!==null&&(a.nodeType!==8||a.data!==e);)a=rn(a);if(a===null)Ae(!1);else{var o=rn(a);a.remove(),M(o)}}A||(i=document.head.appendChild(tn()));try{Tn(()=>{var e=En(()=>t(i));e.f|=ee})}finally{r&&(Ae(!0),M(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[se];if(A||o!==n||o===void 0){var s=qr(n,r,a);(!A||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[se]=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[ce];if(A||i!==t){var a=Xr(t,r);(!A||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[ce]=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 Oe();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(A){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[ue]=n,Ge(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);A&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===oi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ae]=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[oe]??={[ii]:e.nodeName.includes(`-`),[ai]:e.namespaceURI===Te}}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))}}}),(A&&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?.[D]===t}function vi(e={},t,n,r){var i=Re.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=D in e||ie 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&&ye(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){Re===null&&fe(`onMount`),yn(()=>{let t=dr(e);if(typeof t==`function`)return t})}function xi(e){Re===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(`<span class="weekly-quota" aria-label="Weekly quota remaining"> </span>`),Ti=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> <!> <div class="header-actions"><!> <button class="menu-trigger" type="button" popovertarget="configuration-panel" aria-label="Open configuration"><span class="menu-lines" aria-hidden="true"><span></span><span></span><span></span></span></button></div></header> <div id="configuration-panel" class="configuration-panel" popover="auto"><div class="configuration-brand" aria-label="Dyne"><img class="configuration-logo light-asset" src="/branding/dyne-logotype-black.svg" alt=""/> <img class="configuration-logo dark-asset" src="/branding/dyne-logotype-white.svg" alt=""/></div> <label class="appearance-control" for="appearance"><span aria-hidden="true">aA</span> <select id="appearance" aria-label="Appearance"><option>System</option><option>Light</option><option>Dark</option></select></label></div>`,1);function Ei(e,t){Be(t,!0);let n=yi(t,`sessionPath`,3,null),r=yi(t,`sessionModel`,3,null),i=yi(t,`weeklyQuotaRemaining`,3,null);var a=Ti(),o=V(a),s=H(B(o),2),c=e=>{var t=Ci(),i=B(t,!0),a=H(i),o=e=>{var t=Si(),n=B(t),i=B(n);N(n),N(t),U(()=>X(i,`· ${r()??``}`)),Y(e,t)};Z(a,e=>{r()&&e(o)}),N(t),U(()=>{$(t,`title`,n()),X(i,n())}),Y(e,t)};Z(s,e=>{n()&&e(c)});var l=H(s,2),u=B(l),d=e=>{var t=wi(),n=B(t);N(t),U(()=>X(n,`${i()??``}% left`)),Y(e,t)};Z(u,e=>{i()!==null&&e(d)}),Me(2),N(l),N(o);var f=H(o,2),p=H(B(f),2),m=H(B(p),2),h=B(m);h.value=h.__value=`system`;var g=H(h);g.value=g.__value=`light`;var _=H(g);_.value=_.__value=`dark`,N(m);var v;ti(m),N(p),N(f),U(()=>{v!==(v=t.theme)&&(m.value=(m.__value=t.theme)??``,ei(m,t.theme))}),q(`change`,m,e=>t.onthemechange(e.currentTarget.value)),Y(e,a),Ve()}yr([`change`]);function Di(e){if(Oi(e))return null;let[t,n]=e.label.split(` · `,2);return{kind:t,...n?{status:n}:{},content:ki(t,e.detail)}}function Oi(e){return e.label.startsWith(`Tool`)&&(e.detail.includes(`context_mode`)||/(^|[_:])ctx_[a-z]/i.test(e.detail))}function ki(e,t){return e===`Command`?Ai(t):e===`File change`||e===`fileChange`?t.split(`
|
|
3
|
+
`).filter(Boolean).join(`, `):t}function Ai(e){let t=e.match(/^\/bin\/bash -lc "([\s\S]*)"$/);return t?t[1].replace(/\\"/g,`"`).replace(/\\\\/g,`\\`):e}var ji=J(`<li class="activity-row svelte-thyolt"><small class="activity-type svelte-thyolt"> </small> <span class="activity-content svelte-thyolt"> </span></li>`),Mi=J(`<details id="chat-activity" class="svelte-thyolt"><summary class="svelte-thyolt">activity</summary> <ul class="activity-list svelte-thyolt"></ul></details>`);function Ni(e,t){Be(t,!0);let n=F(()=>t.activities.flatMap(e=>{let t=Di(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=Mi(),i=H(B(t),2);Q(i,21,()=>K(n),e=>e.id,(e,t)=>{var n=ji(),r=B(n),i=B(r);N(r);var a=H(r,2),o=B(a,!0);N(a),N(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)}),N(i),N(t),U(()=>t.open=K(r)),Y(e,t)};Z(a,e=>{K(n).length&&e(o)}),Y(e,i),Ve()}function Pi(e){if(!e||typeof e!=`object`)return null;let t=e.command;return typeof t==`string`&&t.trim()?t:null}function Fi(e){if(!Ii(e))return null;let t=e.changes;if(!Array.isArray(t))return null;let n=t.map(e=>Ii(e)&&typeof e.path==`string`&&e.path.trim()?e.path:null).filter(e=>e!==null);return n.length===t.length&&n.length>0?n:null}function Ii(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Li=J(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></label></div>`),Ri=J(`<label class="custom svelte-77f3gb">Your custom answer <input required="" class="svelte-77f3gb"/></label>`),zi=J(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong>Custom answer</strong><span class="svelte-77f3gb">Provide your own response.</span></label></div> <!>`,1),Bi=J(`<fieldset class="svelte-77f3gb"><legend class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></legend> <div class="choices svelte-77f3gb"><!> <!></div></fieldset>`),Vi=J(`<form class="quiz-form svelte-77f3gb"><!> <button type="submit">Send answers</button></form>`);function Hi(e,t){Be(t,!0);let n=z({}),r=z({}),i=F(()=>t.quiz.questions.every(e=>!!t.answers[e.id]?.trim()));async function a(e){r[e]=!0,t.onanswer(e,t.answers[e]??``),await cr(),n[e]?.focus()}var o=Vi(),s=B(o);Q(s,17,()=>t.quiz.questions,e=>e.id,(e,i)=>{let o=F(()=>`${t.requestId}-${K(i).id}-custom`),s=F(()=>K(i).choices.some(e=>e.label===t.answers[K(i).id]));var c=Bi(),l=B(c),u=B(l),d=B(u,!0);N(u);var f=H(u),p=B(f,!0);N(f),N(l);var m=H(l,2),h=B(m);Q(h,17,()=>K(i).choices,e=>`${K(i).id}-${e.label}`,(e,n)=>{let a=F(()=>`${t.requestId}-${K(i).id}-${K(n).label}`);var o=Li(),s=B(o);ci(s);var c=H(s,2),l=B(c),u=B(l,!0);N(l);var d=H(l),f=B(d,!0);N(d),N(c),N(o),U(()=>{$(s,`id`,K(a)),$(s,`name`,`${t.requestId}-${K(i).id}`),ui(s,t.answers[K(i).id]===K(n).label),$(c,`for`,K(a)),X(u,K(n).label),X(f,K(n).description)}),q(`change`,s,()=>{r[K(i).id]=!1,t.onanswer(K(i).id,K(n).label)}),Y(e,o)});var g=H(h,2),_=e=>{var c=zi(),l=V(c),u=B(l);ci(u);var d=H(u,2);N(l);var f=H(l,2),p=e=>{var r=Ri(),a=H(B(r));ci(a),vi(a,(e,t)=>n[t.id]=e,e=>n?.[e.id],()=>[K(i)]),N(r),U(()=>{$(r,`for`,`${K(o)}-text`),$(a,`id`,`${K(o)}-text`),$(a,`type`,K(i).isSecret?`password`:`text`),li(a,t.answers[K(i).id])}),q(`input`,a,e=>t.onanswer(K(i).id,e.currentTarget.value)),Y(e,r)},m=F(()=>r[K(i).id]||!!t.answers[K(i).id]&&!K(s));Z(f,e=>{K(m)&&e(p)}),U(e=>{$(u,`id`,K(o)),$(u,`name`,`${t.requestId}-${K(i).id}`),ui(u,e),$(d,`for`,K(o))},[()=>r[K(i).id]||!!t.answers[K(i).id]&&!K(s)]),q(`change`,u,()=>a(K(i).id)),q(`click`,u,()=>{r[K(i).id]&&a(K(i).id)}),Y(e,c)};Z(g,e=>{K(i).allowCustom&&e(_)}),N(m),N(c),U(()=>{X(d,K(i).header),X(p,K(i).question)}),Y(e,c)});var c=H(s,2);N(o),U(()=>c.disabled=!K(i)),vr(`submit`,o,e=>{e.preventDefault(),K(i)&&t.onsubmit()}),Y(e,o),Ve()}yr([`change`,`click`,`input`]);function Ui(e,t=2){if(!Xi(e)||!Array.isArray(e.questions)||e.questions.length<1||e.questions.length>8)return null;let n=e.questions.map(e=>Ki(e,t));if(n.some(e=>e===null))return null;let r=n;return new Set(r.map(e=>e.id)).size===r.length?{questions:r}:null}function Wi(e){return!Xi(e)||!Array.isArray(e.questions)||e.questions.length>3?null:Ui({questions:e.questions.map(e=>Xi(e)?{id:e.id,header:e.header,question:e.question,choices:e.options,allowCustom:e.isOther===!0,isSecret:e.isSecret===!0}:e)},1)}function Gi(e){return{contentItems:[{type:`input_text`,text:JSON.stringify({answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,e.answer]))})}],success:!0}}function Ki(e,t){if(!Xi(e)||!Array.isArray(e.choices)||e.choices.length<t||e.choices.length>5||!Ji(e.id)||!Yi(e.header,120)||!Yi(e.question,600)||typeof e.allowCustom!=`boolean`)return null;let n=e.choices.map(qi);return n.some(e=>e===null)?null:{id:e.id,header:e.header,question:e.question,choices:n,allowCustom:e.allowCustom,isSecret:e.isSecret===!0}}function qi(e){return!Xi(e)||!Yi(e.label,160)||!Yi(e.description,600)?null:{label:e.label,description:e.description}}function Ji(e){return typeof e==`string`&&/^[A-Za-z][A-Za-z0-9_-]{0,63}$/.test(e)}function Yi(e,t){return typeof e==`string`&&e.trim().length>0&&e.length<=t}function Xi(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Zi=J(`<p>Codex sent an invalid quiz request.</p>`),Qi=J(`<p>Grant the requested permissions for this turn only.</p><button type="button">Approve</button>`,1),$i=J(`<pre class="command-approval-command svelte-ajsqcq"><code> </code></pre>`),ea=J(`<p class="command-approval-missing svelte-ajsqcq">Command details were not provided.</p>`),ta=J(`<p>Approve this command?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),na=J(`<li><code> </code></li>`),ra=J(`<ul class="file-change-approval-targets svelte-ajsqcq" aria-label="Files to change"></ul>`),ia=J(`<p class="file-change-approval-missing svelte-ajsqcq">File details were not provided.</p>`),aa=J(`<p>Approve changes to these files?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),oa=J(`<button type="button">Approve</button><button type="button">Deny</button>`,1),sa=J(`<article><p> </p> <!></article>`),ca=J(`<section aria-labelledby="interactions-title"><h3 id="interactions-title">Codex needs your decision</h3> <!></section>`);function la(e,t){Be(t,!0);let n=e=>Object.fromEntries(Object.entries(t.answers).filter(([t])=>t.startsWith(`${e}:`)).map(([t,n])=>[t.slice(e.length+1),n]));var r=Dr(),i=V(r),a=e=>{var r=ca();Q(H(B(r),2),17,()=>t.interactions,e=>e.requestId,(e,r)=>{var i=sa(),a=B(i),o=B(a,!0);N(a);var s=H(a,2),c=e=>{let i=F(()=>K(r).kind===`quiz`?Ui(K(r).payload):Wi(K(r).payload));var a=Dr(),o=V(a),s=e=>{{let a=F(()=>n(K(r).requestId));Hi(e,{get requestId(){return K(r).requestId},get quiz(){return K(i)},get answers(){return K(a)},onanswer:(e,n)=>t.onanswer(K(r).requestId,e,n),onsubmit:()=>t.onquiz(K(r))})}},c=e=>{Y(e,Zi())};Z(o,e=>{K(i)?e(s):e(c,-1)}),Y(e,a)},l=e=>{var n=Qi();q(`click`,H(V(n)),()=>t.onpermission(K(r))),Y(e,n)},u=e=>{let n=F(()=>Pi(K(r).payload));var i=ta(),a=H(V(i),2),o=e=>{var t=$i(),r=B(t),i=B(r,!0);N(r),N(t),U(()=>X(i,K(n))),Y(e,t)},s=e=>{Y(e,ea())};Z(a,e=>{K(n)?e(o):e(s,-1)});var c=H(a,2),l=B(c),u=H(l,2);N(c),q(`click`,l,()=>t.ondecision(K(r).requestId,`accept`)),q(`click`,u,()=>t.ondecision(K(r).requestId,`decline`)),Y(e,i)},d=e=>{let n=F(()=>Fi(K(r).payload));var i=aa(),a=H(V(i),2),o=e=>{var t=ra();Q(t,20,()=>K(n),e=>e,(e,t)=>{var n=na(),r=B(n),i=B(r,!0);N(r),N(n),U(()=>X(i,t)),Y(e,n)}),N(t),Y(e,t)},s=e=>{Y(e,ia())};Z(a,e=>{K(n)?e(o):e(s,-1)});var c=H(a,2),l=B(c),u=H(l,2);N(c),q(`click`,l,()=>t.ondecision(K(r).requestId,`accept`)),q(`click`,u,()=>t.ondecision(K(r).requestId,`decline`)),Y(e,i)},f=e=>{var n=oa(),i=V(n),a=H(i);q(`click`,i,()=>t.ondecision(K(r).requestId,`accept`)),q(`click`,a,()=>t.ondecision(K(r).requestId,`decline`)),Y(e,n)};Z(s,e=>{K(r).kind===`userInput`||K(r).kind===`quiz`?e(c):K(r).kind===`permissionsApproval`?e(l,1):K(r).kind===`commandApproval`?e(u,2):K(r).kind===`fileChangeApproval`?e(d,3):e(f,-1)}),N(i),U(()=>X(o,K(r).kind)),Y(e,i)}),N(r),Y(e,r)};Z(i,e=>{t.interactions.length&&e(a)}),Y(e,r),Ve()}yr([`click`]);var ua=[{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 da(e){let t=e.match(/^\/([^\s]*)$/);return t?t[1].toLowerCase():null}function fa(e){let t=da(e);return t===null?[]:ua.filter(e=>e.name.startsWith(t))}function pa(e){let t=e.match(/^\/([^\s]+)\s*$/)?.[1]?.toLowerCase();return ua.find(e=>e.name===t)?.argumentPicker}function ma(e){return[...e].sort((e,t)=>ha(t,e)||t.localeCompare(e))}function ha(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 ga(e){return e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.isComposing}var _a=J(`Ready <span class="block-cursor svelte-1264sfg" aria-hidden="true"></span>`,1),va=J(`<li><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code> <small class="svelte-1264sfg"> </small></button></li>`),ya=J(`<ul id="chat-command-completion" class="command-menu svelte-1264sfg" aria-label="Chat commands"></ul>`),ba=J(`<li class="svelte-1264sfg"><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code></button></li>`),xa=J(`<ul class="command-menu svelte-1264sfg" aria-label="Available models"></ul>`),Sa=J(`<ul class="command-menu svelte-1264sfg" aria-label="Reasoning efforts"></ul>`),Ca=J(`<button type="button" class="svelte-1264sfg">Interrupt</button>`),wa=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 Ta(e,t){Be(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(()=>fa(t.message)),c=F(()=>da(t.message)),l=F(()=>K(c)!==null&&K(c)!==K(o)&&K(s).length>0),u=F(()=>pa(t.message)),d=F(()=>K(u)===`models`),f=F(()=>ma(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`||ga(e)){e.preventDefault(),h();return}}!ga(e)||t.activeTurnId||t.starting||!t.message.trim()||(e.preventDefault(),t.onsend())}var _=wa(),v=B(_),y=B(v),b=e=>{var t=_a();Me(),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)}),N(v);var S=H(v,2),ee=e=>{var t=ya();Q(t,23,()=>K(s),e=>e.name,(e,t,n)=>{var r=va(),i=B(r),o=B(i),s=B(o);N(o);var c=H(o,2),l=B(c,!0);N(c),N(i),N(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)}),N(t),Y(e,t)};Z(S,e=>{K(l)&&e(ee)});var C=H(S,2),w=e=>{var t=xa();Q(t,20,()=>K(f),e=>e,(e,t)=>{var n=ba(),r=B(n),a=B(r),o=B(a,!0);N(a),N(r),N(n),U(()=>X(o,t)),q(`click`,r,()=>i()(t)),Y(e,n)}),N(t),Y(e,t)};Z(C,e=>{K(d)&&e(w)});var te=H(C,2),T=e=>{var t=Sa();Q(t,20,()=>[`low`,`medium`,`high`],e=>e,(e,t)=>{var n=ba(),r=B(n),i=B(r),a=B(i,!0);N(i),N(r),N(n),U(()=>X(a,t)),q(`click`,r,()=>m(`/reasoning ${t} `)),Y(e,n)}),N(t),Y(e,t)};Z(te,e=>{K(p)&&e(T)});var ne=H(te,2),E=B(ne);ln(E);var re=H(E,2);N(ne);var D=H(ne,2),ie=e=>{var n=Ca();q(`click`,n,function(...e){t.oninterrupt?.apply(this,e)}),Y(e,n)};Z(D,e=>{t.activeTurnId&&e(ie)}),N(_),U(e=>{$(v,`aria-label`,t.status),li(E,t.message),re.disabled=e},[()=>!!t.activeTurnId||t.starting||!t.message.trim()]),vr(`submit`,_,e=>{e.preventDefault(),t.onsend()}),q(`input`,E,e=>m(e.currentTarget.value)),q(`keydown`,E,g),Y(e,_),Ve()}yr([`click`,`input`,`keydown`]);function Ea(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 Oa(e){return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}).format(e)}function ka(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(...Aa(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(...Aa(i)),t}function Aa(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:Na(i)})};for(let e=0;e<n.length-1;e+=1){let a=ja(n[e]??``),o=ja(n[e+1]??``);if(!a||!o||a.length!==o.length||!o.every(Ma))continue;i(e),e+=2;let s=[];for(;e<n.length;){let t=ja(n[e]??``);if(!t||t.length!==a.length)break;s.push(t),e+=1}t.push({kind:`table`,headers:a.map(Na),rows:s.map(e=>e.map(Na))}),r=e,--e}return i(n.length),t.length?t:[{kind:`text`,parts:Na(e)}]}function ja(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 Ma(e){return/^:?-{3,}:?$/.test(e)}function Na(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 Pa=(e,t=d)=>{var n=Dr();Q(V(n),17,t,Nr,(e,t)=>{var n=Dr(),r=V(n),i=e=>{var n=Ia(),r=B(n,!0);N(n),U(()=>{$(n,`href`,K(t).href),X(r,K(t).text)}),Y(e,n)},a=e=>{var n=La(),r=B(n,!0);N(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)},Fa=(e,t=d)=>{var n=Dr();Q(V(n),17,()=>ka(t()),Nr,(e,t)=>{var n=Dr(),r=V(n),i=e=>{var n=Ra(),r=B(n),i=B(r,!0);N(r),N(n),U(()=>X(i,K(t).text)),Y(e,n)},a=e=>{var n=Ha(),r=B(n),i=B(r),a=B(i);Q(a,21,()=>K(t).headers,Nr,(e,t)=>{var n=za();Pa(B(n),()=>K(t)),N(n),Y(e,n)}),N(a),N(i);var o=H(i);Q(o,21,()=>K(t).rows,Nr,(e,t)=>{var n=Va();Q(n,21,()=>K(t),Nr,(e,t)=>{var n=Ba();Pa(B(n),()=>K(t)),N(n),Y(e,n)}),N(n),Y(e,n)}),N(o),N(r),N(n),Y(e,n)},o=e=>{var n=Ua();Pa(B(n),()=>K(t).parts),N(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)},Ia=J(`<a target="_blank" rel="noreferrer"> </a>`),La=J(`<code class="svelte-1im954t"> </code>`),Ra=J(`<pre class="svelte-1im954t"><code class="svelte-1im954t"> </code></pre>`),za=J(`<th scope="col" class="svelte-1im954t"><!></th>`),Ba=J(`<td class="svelte-1im954t"><!></td>`),Va=J(`<tr></tr>`),Ha=J(`<div class="table-scroll svelte-1im954t"><table class="svelte-1im954t"><thead><tr></tr></thead><tbody></tbody></table></div>`),Ua=J(`<div><!></div>`),Wa=J(`<time class="svelte-1im954t"> <!></time>`),Ga=J(`<div class="entry-heading svelte-1im954t"><strong>prompt</strong> <!></div> <div class="entry-content svelte-1im954t"><!></div>`,1),Ka=J(`<button class="commentary-toggle svelte-1im954t" type="button"><span aria-hidden="true"> </span>commentary</button>`),qa=J(`<div class="commentary-content svelte-1im954t"><!></div>`),Ja=J(`<section class="answer-turn"><div class="entry-heading svelte-1im954t"><strong>answer</strong> <!> <!> <!></div> <!> <div class="entry-content svelte-1im954t"><!></div></section>`),Ya=J(`<section class="commentary-turn"><div class="entry-heading svelte-1im954t"><details><summary>commentary</summary> <!></details> <!></div></section>`),Xa=J(`<li><!></li>`),Za=J(`<ol aria-label="Chat messages" class="svelte-1im954t"></ol>`);function Qa(e,t){Be(t,!0);let n=F(()=>Ea(t.messages)),r=z({}),i=F(()=>K(n).findLast(e=>e.kind===`assistant`&&e.answer)?.id);var a=Za();Q(a,23,()=>K(n),e=>e.id,(e,a,o)=>{var s=Xa(),c=B(s),l=e=>{var t=Ga(),r=V(t),i=H(B(r),2),s=e=>{var t=Wa(),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)}),N(t),U((e,n)=>{$(t,`datetime`,e),X(r,`${n??``} `)},[()=>new Date(K(a).occurredAt).toISOString(),()=>Oa(K(a).occurredAt)]),Y(e,t)};Z(i,e=>{K(a).occurredAt&&e(s)}),N(r);var c=H(r,2);Fa(B(c),()=>K(a).text),N(c),Y(e,t)},u=e=>{var s=Ja(),c=B(s),l=H(B(c),2),u=e=>{var t=Ka(),n=B(t),i=B(n,!0);N(n),Me(),N(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=>{Ni(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=Wa(),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)}),N(t),U((e,n)=>{$(t,`datetime`,e),X(r,`${n??``} `)},[()=>new Date(K(a).occurredAt).toISOString(),()=>Oa(K(a).occurredAt)]),Y(e,t)};Z(p,e=>{K(a).occurredAt&&e(m)}),N(c);var h=H(c,2),g=e=>{var t=qa();Fa(B(t),()=>K(a).commentary),N(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);Fa(B(_),()=>K(a).answer),N(_),N(s),Y(e,s)},d=e=>{var n=Ya(),r=B(n),i=B(r);Fa(H(B(i),2),()=>K(a).commentary),N(i),Ni(H(i,2),{get activities(){return t.activities}}),N(r),N(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)}),N(s),U(()=>Zr(s,1,Gr(K(a).kind===`user`?`prompt-turn`:`answer-item`),`svelte-1im954t`)),Y(e,s)}),N(a),Y(e,a),Ve()}yr([`click`]);var $a=[150,300,600];function eo(e){return new Promise(t=>setTimeout(t,e))}function to(e){return e.status===502||e.status===503||e.status===504}async function no(e=fetch){for(let t=0;t<=$a.length;t+=1){let n;try{n=await e(`/api/bootstrap`)}catch(e){if(e instanceof Error&&e.name===`AbortError`)throw e;if(t===$a.length)throw Error(`BOOTSTRAP_FAILED`);await eo($a[t]);continue}if(n.ok)return n.json();if(!to(n)||t===$a.length)throw Error(`BOOTSTRAP_FAILED`);await eo($a[t])}throw Error(`BOOTSTRAP_FAILED`)}function ro(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 io=`gestalt-mobile`,ao=2,oo=[`settings`,`drafts`,`cursors`,`messages`];function so(e){return new Promise((t,n)=>{let r=e.open(io,ao);r.onupgradeneeded=()=>{for(let e of oo)r.result.objectStoreNames.contains(e)||r.result.createObjectStore(e)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function co(e,t,n){return fo(e.transaction(t,`readonly`).objectStore(t).get(n))}function lo(e,t,n,r){return fo(e.transaction(t,`readwrite`).objectStore(t).put(r,n))}function uo(e,t,n){return fo(e.transaction(t,`readwrite`).objectStore(t).delete(n))}function fo(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}var po=`messages`;function mo(e){return e.slice(-200)}function ho(e=globalThis.indexedDB){if(!e)return{read:async()=>[],write:async()=>{}};let t=so(e);return{async read(e){try{return await co(await t,po,e)??[]}catch{return[]}},async write(e,n){try{await lo(await t,po,e,mo(n))}catch{}}}}var go={RELAY_UNAVAILABLE:`The relay is unavailable. Check the connection and try again.`,SESSION_HISTORY_UNAVAILABLE:`Session history could not be loaded from GET /api/sessions/:id/history. The relay is connected, but Codex has no active process for this session. Open the session to restore it, then retry.`,SESSION_HISTORY_READ_FAILED:`GET /api/sessions/:id/history reached the relay, but Codex could not read this session after recovery. This is not a connection failure. Open the session again; if it continues, inspect the running relay output.`,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 _o(e,t){let n=e instanceof Error?e.message:``,r=typeof e==`object`&&e&&`code`in e&&typeof e.code==`string`?e.code:``,i=Object.hasOwn(go,r)?r:Object.hasOwn(go,n)?n:t;return{code:i,message:go[i]}}var vo={error:null,success:5e3,info:7e3};function yo(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=vo[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 bo=J(`<small class="svelte-1a0rutm"> </small>`),xo=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>`),So=J(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function Co(e,t){Be(t,!0);let n=L([]),r=F(()=>K(n).slice(-3));bi(()=>t.queue.subscribe(e=>R(n,e)));var i=So();Q(i,21,()=>K(r),e=>e.id,(e,n)=>{var r=xo();let i;var a=B(r),o=B(a,!0);N(a);var s=H(a,2),c=B(s),l=B(c,!0);N(c);var u=H(c,2),d=B(u,!0);N(u);var f=H(u,2),p=e=>{var t=bo(),r=B(t);N(t),U(()=>X(r,`Repeated ${K(n).occurrences??``} times.`)),Y(e,t)};Z(f,e=>{K(n).occurrences>1&&e(p)}),N(s);var m=H(s,2);N(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)}),N(i),Y(e,i),Ve()}yr([`focusin`,`focusout`,`click`]);var wo=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 To(e,t){Be(t,!0);let n=yo();bi(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=wo();Co(H(V(r),4),{get queue(){return n}}),Y(e,r),Ve()}var Eo={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function Do(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 Oo(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function ko(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 Ao(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 jo(e,t){for(let n of e){if(n.id===t)return n;let e=jo(n.children,t);if(e)return e}}function Mo(e,t,n,r){if(e){let i=jo(n,e);if(i&&r(i))return i.id;let a=Ao(t,e);for(let e of a.toReversed()){let t=jo(n,e);if(t&&r(t))return t.id}}return No(n).find(r)?.id??null}function No(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var Po=J(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),Fo=J(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),Io=J(`<span class="repository-badge svelte-6z3q4v">Git</span>`),Lo=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>`),Ro=J(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function zo(e,t){Be(t,!0);let n=yi(t,`isSelectable`,3,()=>!0),r=L(null),i=z({}),a=F(()=>ko(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(Oo(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=Ro();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=Lo();let g;var _=B(h),v=e=>{var n=Po(),r=B(n),i=B(r,!0);N(r),N(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,Fo())};Z(_,e=>{K(m)?e(v):e(y,-1)});var b=H(_,2);let x;var S=B(b),ee=B(S,!0);N(S);var C=H(S,2),w=B(C),te=B(w,!0);N(w);var T=H(w,2),ne=B(T,!0);N(T),N(C);var E=H(C,2),re=e=>{Y(e,Io())};Z(E,e=>{K(u).isGitRepository&&e(re)}),N(b),vi(b,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(u)]),N(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(te,K(u).name),X(ne,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)}),N(m),U(()=>$(m,`aria-label`,t.label)),Y(e,m),Ve()}yr([`click`,`keydown`]);var Bo=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 Vo(e,t){Be(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=Bo(),l=B(c),u=B(l,!0);N(l);var d=H(l,2),f=B(d,!0);N(d);var p=H(d,2),m=B(p,!0);N(p);var h=H(p,2),g=B(h);{let e=F(()=>t.context===`sessions`?`Session base`:`Git repository`),n=F(()=>t.context===`sessions`?Eo.sessionBase:Eo.gitRepositoryTarget);zo(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)})}N(h),N(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),Ve()}function Ho(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 Uo(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 Wo=J(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),Go=J(`<option> </option>`),Ko=J(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),qo=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>`),Jo=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>`),Yo=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),Xo=J(`<p>This workspace is not a Git repository.</p>`),Zo=J(`<p role="status">Loading repository status…</p>`),Qo=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),$o=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),es=J(`<p role="alert"> </p>`),ts=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 ns(e,t){Be(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=ts(),o=H(B(a),2),s=H(B(o),2);{let e=F(()=>t.selectedWorkspace?.id??null);zo(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}})}N(o);var c=H(o,2),l=B(c),u=B(l),d=H(B(u),2),f=B(d,!0);N(d),N(u);var p=H(u,2),m=H(B(p),2);ci(m),N(p);var h=H(p,2),g=B(h,!0);N(h),N(l);var _=H(l,4),v=e=>{var n=Wo(),r=B(n,!0);N(n),U(()=>X(r,t.cloneStatus)),Y(e,n)};Z(_,e=>{t.cloneStatus&&e(v)}),N(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=Yo(),r=V(n),i=B(r),a=H(B(i),2);Q(a,20,()=>t.summary.branches??[],e=>e,(e,t)=>{var n=Go(),r=B(n,!0);N(n);var i={};U(()=>{X(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),Y(e,n)}),N(a);var o;ti(a);var s=H(a,2),c=B(s);N(s);var l=H(s,2),u=B(l);N(l);var d=H(l,2),f=B(d),p=B(f,!0);N(f),N(d);var m=H(d,2),h=B(m);N(m),N(i);var g=H(i,2),_=B(g),v=H(_,2),y=H(B(v));N(v),N(g),N(r);var b=H(r,2),x=e=>{var n=Ko(),r=B(n),i=B(r);N(r);var a=H(r,2),o=H(a,2);N(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=Jo(),r=H(B(n),2);Q(r,21,()=>t.summary.commits,e=>e.hash,(e,t)=>{var n=qo(),r=B(n),i=B(r),a=B(i,!0);N(i);var o=H(i),s=B(o,!0);N(o),N(r);var c=H(r,2),l=B(c),u=B(l,!0);N(l);var d=H(l),f=B(d,!0);N(d),N(c),N(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)},[()=>Uo(K(t).authoredAt)]),Y(e,n)}),N(r),N(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`}`)},[()=>Ho(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,Xo())};Z(r,e=>{t.summary.available?e(i):e(a,-1)}),Y(e,n)},a=e=>{Y(e,Zo())};Z(r,e=>{t.summary?e(i):t.error||e(a,1)}),Y(e,n)},S=e=>{var n=Qo(),r=V(n),i=B(r),a=B(i,!0);N(i),Me(),N(r),Me(2),U(()=>X(a,t.selectedWorkspace.name)),Y(e,n)},ee=e=>{var t=$o();Me(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=es(),r=B(n,!0);N(n),U(()=>X(r,t.error)),Y(e,n)};Z(C,e=>{t.error&&e(w)}),N(y),N(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),Ve()}yr([`change`,`click`]);function rs(e,t,n,r,i){let a=new Set(is(e).filter(e=>e.isGitRepository).map(e=>e.id)),o=jo(t,n),s=o?is(o.children).filter(e=>e.isGitRepository&&!a.has(e.id)):[],c=as(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&&Ao(t,u).forEach(e=>d.add(e)),!l&&o&&d.add(o.id),{selectedId:u,expandedIds:d}}function is(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}function as(e){return(e.trim().replace(/[?#].*$/,``).replace(/\/+$/,``).split(/[/:]/).at(-1)??``).replace(/\.git$/i,``)}function os(e,t,n,r){return[...e,{id:t,role:`user`,text:n,...r?{occurredAt:r}:{},complete:!0}]}function ss(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 cs(e,t){return e.map(e=>e.id===t?{...e,complete:!0}:e)}function ls(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 us(e){return{answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,{answers:[e.answer]}]))}}function ds(e=fetch){async function t(e){let t=await e.json().catch(()=>null),n=typeof t?.detail==`string`?t.detail:typeof t?.title==`string`?t.title:`Relay request failed (${e.status}).`;return Object.assign(Error(n),{...typeof t?.code==`string`&&/^[A-Z0-9_]+$/.test(t.code)?{code:t.code}:{}})}async function n(n,r,i={}){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 fs(e,t=globalThis.navigator?.clipboard,n=ms){if(!t)return ps(e,n);try{return await t.writeText(e),!0}catch{return ps(e,n)}}function ps(e,t){try{return t(e)}catch{return!1}}function ms(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 hs(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 gs(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}var _s=[`authoring-start`,`work-start`,`checkpoint`,`update`,`supervision-start`,`resync`];function vs(e){return typeof e==`string`&&_s.includes(e)}function ys(e){if(!e||typeof e!=`object`)return!1;let t=e;return bs(t.plan)&&(t.reason===null||vs(t.reason))}function bs(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 xs(e){return e instanceof Error?e.message:`Could not load the plan.`}function Ss(e){return{...e,...e.skills?{skills:[...e.skills]}:{},description:{...e.description},children:e.children.map(Ss)}}function Cs(e){return{...e,steps:e.steps.map(Ss)}}function ws(e,t){return e.kind===`unavailable`&&e.sessionId===t}function Ts(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:Cs(e)}:{kind:`unavailable`,sessionId:t})}).catch(e=>{o?.signal.aborted||a!==i||n!==t||c({kind:`error`,sessionId:t,error:xs(e),...r?{plan:r}:{}})})};return{select(e){if(o?.abort(),n=e,s=0,!e){++i,c({kind:`unavailable`,sessionId:null});return}l(e,void 0)},refresh(e){if(n!==e)return;let t=r.kind===`ready`||r.kind===`closing`||r.kind===`error`?r.plan:void 0;l(e,t)},applyEvent(e,t){if(!(n!==e||t.sequence<=s)){if(t.type===`plan.updated`&&(bs(t.payload)||ys(t.payload))){let n=ys(t.payload)?t.payload.plan:t.payload;s=t.sequence,c({kind:`ready`,sessionId:e,plan:Cs(n)})}t.type===`plan.closed`&&(s=t.sequence,c({kind:`unavailable`,sessionId:e}))}},async close(){if(r.kind!==`ready`&&r.kind!==`error`||!r.plan?.allDone)return null;let{sessionId:t,plan:i}=r;c({kind:`closing`,sessionId:t,plan:i});let o=a;try{return await e.closePlan(t),n===t?a===o?(c({kind:`unavailable`,sessionId:t}),`chat`):ws(r,t)?`chat`:null:null}catch(e){return n===t?a===o?(c({kind:`error`,sessionId:t,plan:i,error:xs(e)}),null):ws(r,t)?`chat`:null:null}},dispose(){o?.abort(),o=null,n=null,++i,c({kind:`unavailable`,sessionId:null})}}}function Es(e){if(!e)return null;let t=Ds(e.steps,e.currentStepId)?.measurement?.weeklyRemainingCurrent;return typeof t==`number`&&Number.isFinite(t)&&t>=0&&t<=100?Math.round(t):null}function Ds(e,t){for(let n of e){if(n.id===t)return n;let e=Ds(n.children,t);if(e)return e}}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>`),ks=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>`),As=J(`<section aria-labelledby="plan-title" class="svelte-3rmyvg"><h2 id="plan-title" class="svelte-3rmyvg">Plan</h2><p class="svelte-3rmyvg"> </p></section>`),js=J(`<button class="close svelte-3rmyvg" aria-label="Close completed plan">×</button>`),Ms=J(`<p class="svelte-3rmyvg">Closing completed plan…</p>`),Ns=J(`<p class="svelte-3rmyvg"> </p>`),Ps=J(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Subtitle</dt><dd class="svelte-3rmyvg"> </dd></div>`),Fs=J(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Date</dt><dd class="svelte-3rmyvg"> </dd></div>`),Is=J(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Keywords</dt><dd class="svelte-3rmyvg"> </dd></div>`),Ls=J(`<dl class="metadata svelte-3rmyvg"><!> <!> <!></dl>`),Rs=J(`<p class="svelte-3rmyvg">No plan steps have been retained yet.</p>`),zs=J(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg"> </strong> </p>`),Bs=J(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg">Skills:</strong> </p>`),Vs=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>`),Hs=J(`<ol class="svelte-3rmyvg"></ol>`),Us=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> <span class="measurement svelte-3rmyvg"> </span></summary> <!> <!> <!></details></li>`),Ws=J(`<ol class="plan-steps svelte-3rmyvg"></ol>`),Gs=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>`),Ks=J(`<p class="visually-hidden svelte-3rmyvg" aria-live="polite" aria-atomic="true"> </p> <!>`,1);function qs(e,t){Be(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){let t=e.measurement;if(!t)return`Measurements unavailable`;let n=[];return t.elapsedSeconds!==void 0&&n.push(`${Math.floor(t.elapsedSeconds/60)}m ${t.elapsedSeconds%60}s elapsed`),t.weeklyPercentUsed!==void 0&&n.push(`${t.weeklyPercentUsed}% observed account-wide usage`),t.tokensUsed!==void 0&&n.push(`${t.tokensUsed.toLocaleString()} tokens used`),n.join(` · `)||`Measurements unavailable`}function v(e){return Object.keys(n).flatMap(t=>{let r=e.description[t];return r?[[n[t],r]]:[]})}function y(e){return Math.max(e.totalSteps,1)}var b=Ks(),x=V(b),S=B(x,!0);N(x);var ee=H(x,2),C=e=>{Y(e,Os())},w=e=>{Y(e,ks())},te=e=>{var n=As(),r=H(B(n)),i=B(r,!0);N(r),N(n),U(()=>X(i,t.state.error)),Y(e,n)},T=e=>{var n=Gs(),r=B(n),a=B(r),o=B(a),l=B(o,!0);N(o);var u=H(o,2),d=B(u);N(u),N(a);var f=H(a,2),b=e=>{var n=js();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(b)}),N(r);var x=H(r,2),S=B(x);N(x);var ee=H(x,2),C=B(ee);N(ee);var w=H(ee,2),te=e=>{Y(e,Ms())},T=e=>{var n=Ns(),r=B(n,!0);N(n),U(()=>X(r,t.state.error)),Y(e,n)};Z(w,e=>{t.state.kind===`closing`?e(te):t.state.kind===`error`&&e(T,1)});var ne=H(w,2),E=e=>{var t=Ls(),n=B(t),r=e=>{var t=Ps(),n=H(B(t)),r=B(n,!0);N(n),N(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=Fs(),n=H(B(t)),r=B(n,!0);N(n),N(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=Is(),n=H(B(t)),r=B(n,!0);N(n),N(t),U(()=>X(r,K(s).keywords)),Y(e,t)};Z(o,e=>{K(s).keywords&&e(c)}),N(t),Y(e,t)};Z(ne,e=>{(K(s).subtitle||K(s).date||K(s).keywords)&&e(E)});var re=H(ne,2),D=e=>{Y(e,Rs())},ie=e=>{var t=Ws();Q(t,21,()=>K(s).steps,e=>e.id,(e,t)=>{var n=Us(),r=B(n),a=B(r),o=B(a),s=B(o,!0);N(o);var c=H(o,2),l=B(c);N(c);var u=H(c,2),d=B(u,!0);N(u);var f=H(u,2),y=B(f,!0);N(f),N(a);var b=H(a,2);Q(b,17,()=>v(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=zs(),o=B(a),s=B(o);N(o);var c=H(o);N(a),U(()=>{X(s,`${r()??``}:`),X(c,` ${i()??``}`)}),Y(e,a)});var x=H(b,2),S=e=>{var n=Bs(),r=H(B(n));N(n),U(e=>X(r,` ${e??``}`),[()=>K(t).skills.join(`, `)]),Y(e,n)};Z(x,e=>{K(t).skills?.length&&e(S)});var ee=H(x,2),C=e=>{var n=Hs();Q(n,21,()=>K(t).children,e=>e.id,(e,t)=>{var n=Vs(),r=B(n),a=B(r),o=B(a),s=B(o,!0);N(o);var c=H(o,2),l=B(c);N(c);var u=H(c,2),d=B(u,!0);N(u),N(a);var f=H(a,2);Q(f,17,()=>v(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=zs(),o=B(a),s=B(o);N(o);var c=H(o);N(a),U(()=>{X(s,`${r()??``}:`),X(c,` ${i()??``}`)}),Y(e,a)});var _=H(f,2),y=e=>{var n=Bs(),r=H(B(n));N(n),U(e=>X(r,` ${e??``}`),[()=>K(t).skills.join(`, `)]),Y(e,n)};Z(_,e=>{K(t).skills?.length&&e(y)}),N(r),vi(r,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(t)]),N(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)}),N(n),Y(e,n)};Z(ee,e=>{K(t).children.length&&e(C)}),N(r),vi(r,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(t)]),N(n),U((e,n,i)=>{$(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),X(y,i)},[()=>p(K(t).id),()=>g(K(t)),()=>_(K(t))]),vr(`toggle`,r,e=>h(K(t).id,e.currentTarget.open)),Y(e,n)}),N(t),Y(e,t)};Z(re,e=>{K(s).steps.length===0?e(D):e(ie,-1)}),N(n),U(e=>{X(l,K(s).title),X(d,`${K(s).doneSteps??``} / ${K(s).totalSteps??``} complete`),li(x,K(s).doneSteps),$(x,`max`,e),X(S,`${K(s).doneSteps??``} of ${K(s).totalSteps??``} complete`),X(C,`Current: ${K(c)?`${K(c).title} (${K(c).state})`:`No current step`}`)},[()=>y(K(s))]),Y(e,n)};Z(ee,e=>{t.state.kind===`loading`?e(C):t.state.kind===`unavailable`?e(w,1):t.state.kind===`error`&&!K(s)?e(te,2):K(s)&&e(T,3)}),U(()=>X(S,K(u))),Y(e,b),Ve()}yr([`click`]);function Js(e){return e?`Codex is working…`:`Ready.`}function Ys(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 Xs=`settings`,Zs=`drafts`,Qs=`cursors`,$s=`selected-session`;function ec(e=globalThis.indexedDB){if(!e)return tc;let t=so(e);return{async readSelectedSession(){try{return await co(await t,Xs,$s)??null}catch{return null}},async saveSelectedSession(e){try{let n=await t;e?await lo(n,Xs,$s,e):await uo(n,Xs,$s)}catch{}},async readDraft(e){try{return await co(await t,Zs,e)??``}catch{return``}},async saveDraft(e,n){try{await lo(await t,Zs,e,n)}catch{}},async readCursor(e){try{let n=await co(await t,Qs,e);return typeof n==`number`&&Number.isSafeInteger(n)&&n>=0?n:0}catch{return 0}},async saveCursor(e,n){try{await lo(await t,Qs,e,n)}catch{}}}}var tc={readSelectedSession:async()=>null,saveSelectedSession:async()=>{},readDraft:async()=>``,saveDraft:async()=>{},readCursor:async()=>0,saveCursor:async()=>{}};async function nc(e,t){try{return{history:await e.getHistory(t),restored:null}}catch(n){if(!rc(n,`SESSION_HISTORY_UNAVAILABLE`))throw n;let r=await e.restoreSession(t);return{history:await e.getHistory(t),restored:r}}}function rc(e,t){return typeof e==`object`&&!!e&&`code`in e&&e.code===t}function ic(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 ac(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 oc(e,t){if(!t?.threadId||!t.workspacePath||!t.resumeCommand||e.some(e=>e.id===t.threadId))return e;let n=t.updatedAt?Date.parse(t.updatedAt)/1e3:NaN,r={id:t.threadId,cwd:t.workspacePath,recencyAt:Number.isFinite(n)?n:null,resumeCommand:t.resumeCommand,...t.model===void 0?{}:{model:t.model},...t.effectiveSkillSelection?.selectedProfileName===void 0?{}:{skillProfile:t.effectiveSkillSelection.selectedProfileName},...t.lastOrgPlan===void 0?{}:{orgPlanFilename:t.lastOrgPlan.filename}};return[...e,r].sort((e,t)=>(t.recencyAt??-1/0)-(e.recencyAt??-1/0))}function sc(e){let t=/^\/home\/[^/]+/.exec(e)?.[0];if(!t)return e;let n=e.slice(t.length);return n?`~${n}`:`~/`}var cc=J(`<time> </time>`),lc=J(`<div> </div>`),uc=J(`<span class="profile-badge svelte-hxb22h"> </span>`),dc=J(`<span class="org-plan-metadata svelte-hxb22h"><span class="org-plan-title svelte-hxb22h"> </span> <span class="org-plan-filename svelte-hxb22h"> </span></span>`),fc=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>`),pc=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>`),mc=J(`<li class="managed-session svelte-hxb22h"><div class="session-actions svelte-hxb22h"><button type="button"> </button> <button type="button">Forget</button></div> <div class="session-details svelte-hxb22h"><!> <div class="workspace-path svelte-hxb22h"> </div> <!> <!> <!></div></li>`),hc=J(`<ul class="session-list svelte-hxb22h" aria-label="Saved sessions"></ul>`),gc=J(`<p>No saved sessions yet.</p>`),_c=J(`<option> </option>`),vc=J(`<p class="skills-profile-error svelte-hxb22h" role="alert"> </p>`),yc=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>`),bc=J(`<ul class="session-list recent-session-list svelte-hxb22h" aria-label="Recent sessions"></ul>`),xc=J(`<p>No other recent Codex sessions found.</p>`),Sc=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" aria-describedby="approval-policy-help" class="svelte-hxb22h"><option>Ask on all commands</option><option>Ask out of workspace</option><option>Approve everything</option></select></div> <p id="approval-policy-help">This controls when Codex asks; it does not expand the sandbox's technical permissions.</p> <!> <div class="session-secondary-actions svelte-hxb22h"><button id="manage-skill-profiles" type="button">Manage skill profiles</button> <div class="model-control svelte-hxb22h"><label for="model">Model</label> <select id="model"></select></div> <button class="new-session-button svelte-hxb22h" type="submit"> </button></div></section></form> <section aria-labelledby="recent-sessions-title"><h3 id="recent-sessions-title">Recent sessions</h3> <!></section></section>`);function Cc(e,t){Be(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(()=>jo(t.workspaceTree,t.workspaceId));var l=Sc(),u=H(B(l),2),d=e=>{var n=pc(),r=H(B(n),2);Q(r,21,()=>K(a),e=>e.id,(e,n)=>{let r=F(()=>ac(K(n)));var i=fc();let a;var o=B(i),s=B(o);N(o);var c=H(o,2),l=B(c),u=B(l),d=e=>{var t=cc(),n=B(t,!0);N(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>ic(K(r).updatedAt)]),Y(e,t)},f=e=>{var t=lc(),n=B(t,!0);N(t),U(e=>X(n,e),[()=>ic(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);N(p);var h=H(p,2),g=e=>{var t=uc(),r=B(t);N(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=uc(),r=B(t);N(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=uc(),r=B(t);N(t),U(()=>X(r,`Skills profile: ${K(n).effectiveSkillSelection.selectedProfileName??``}`)),Y(e,t)};Z(y,e=>{K(n).effectiveSkillSelection?.selectedProfileName&&e(b)});var x=H(y,2),S=e=>{var t=dc(),r=B(t),i=B(r,!0);N(r);var a=H(r,2),o=B(a,!0);N(a),N(t),U(()=>{X(i,K(n).lastOrgPlan.title),X(o,K(n).lastOrgPlan.filename)}),Y(e,t)};Z(x,e=>{K(n).lastOrgPlan&&e(S)}),N(l),N(c),N(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)},[()=>sc(K(r).workspacePath)]),q(`click`,s,()=>t.onclose(K(n).id)),q(`click`,l,()=>t.onselectopen(K(n).id)),Y(e,i)}),N(r),N(n),Y(e,n)};Z(u,e=>{K(a).length&&e(d)});var f=H(u,2),p=e=>{var n=hc();Q(n,21,()=>K(o),e=>e.id,(e,n)=>{let r=F(()=>ac(K(n)));var i=mc(),a=B(i),o=B(a),s=B(o,!0);N(o);var c=H(o,2);N(a);var l=H(a,2),u=B(l),d=e=>{var t=cc(),n=B(t,!0);N(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>ic(K(r).updatedAt)]),Y(e,t)},f=e=>{var t=lc(),n=B(t,!0);N(t),U(e=>X(n,e),[()=>ic(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);N(p);var h=H(p,2),g=e=>{var t=uc(),r=B(t);N(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=uc(),r=B(t);N(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=uc(),r=B(t);N(t),U(()=>X(r,`Skills profile: ${K(n).effectiveSkillSelection.selectedProfileName??``}`)),Y(e,t)};Z(y,e=>{K(n).effectiveSkillSelection?.selectedProfileName&&e(b)}),N(l),N(i),U(e=>{o.disabled=t.openingSessionId===K(n).id,X(s,t.openingSessionId===K(n).id?`Opening…`:`Open`),X(m,e)},[()=>sc(K(r).workspacePath)]),q(`click`,o,()=>t.onopen(K(n).id)),q(`click`,c,()=>t.onforget(K(n).id)),Y(e,i)}),N(n),Y(e,n)},m=e=>{Y(e,gc())};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);zo(v,{get roots(){return t.workspaceTree},get expandedIds(){return t.expandedIds},get selectedId(){return K(e)},get isSelectable(){return Eo.sessionBase},label:`Session base`,get onexpandedchange(){return t.onexpandedchange},onselect:e=>t.onworkspacechange(e.id)})}N(_),N(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=_c(),r=B(n,!0);N(n);var i={};U(()=>{X(r,K(t).name),i!==(i=K(t).name)&&(n.value=(n.__value=K(t).name)??``)}),Y(e,n)}),N(x);var ee;ti(x);var C=H(x,2),w=B(C);w.value=w.__value=`workspace-write`;var te=H(w);te.value=te.__value=`read-only`;var T=H(te);T.value=T.__value=`danger-full-access`,N(C);var ne;ti(C);var E=H(C,2),re=B(E);re.value=re.__value=`untrusted`;var D=H(re);D.value=D.__value=`on-request`;var ie=H(D);ie.value=ie.__value=`never`,N(E);var ae;ti(E),N(b);var oe=H(b,4),se=e=>{var n=vc(),r=B(n,!0);N(n),U(()=>X(r,t.skillProfileError)),Y(e,n)};Z(oe,e=>{t.skillProfileError&&e(se)});var ce=H(oe,2),le=B(ce),ue=H(le,2),O=H(B(ue),2);Q(O,20,n,e=>e,(e,t)=>{var n=_c(),r=B(n,!0);N(n);var i={};U(()=>{X(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),Y(e,n)}),N(O);var de;ti(O),N(ue);var fe=H(ue,2),pe=B(fe,!0);N(fe),N(ce),N(y),N(h);var me=H(h,2),he=H(B(me),2),ge=e=>{var n=bc();Q(n,21,()=>K(s),e=>e.id,(e,n)=>{var r=yc(),i=B(r),a=B(i),o=e=>{var t=cc(),r=B(t,!0);N(t),U((e,n)=>{$(t,`datetime`,e),X(r,n)},[()=>new Date(K(n).recencyAt*1e3).toISOString(),()=>ic(K(n).recencyAt*1e3)]),Y(e,t)},s=e=>{var t=lc(),n=B(t,!0);N(t),U(e=>X(n,e),[()=>ic(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);N(c);var u=H(c,2),d=e=>{var t=uc(),r=B(t);N(t),U(()=>X(r,`Model: ${K(n).model??``}`)),Y(e,t)};Z(u,e=>{K(n).model&&e(d)});var f=H(u,2),p=e=>{var t=uc(),r=B(t);N(t),U(()=>X(r,`Skills profile: ${K(n).skillProfile??``}`)),Y(e,t)};Z(f,e=>{K(n).skillProfile&&e(p)});var m=H(f,2),h=e=>{var t=uc(),r=B(t);N(t),U(()=>X(r,`Org plan: ${K(n).orgPlanFilename??``}`)),Y(e,t)};Z(m,e=>{K(n).orgPlanFilename&&e(h)}),N(i);var g=H(i,2),_=B(g),v=H(_,2);N(g),N(r),U(e=>X(l,e),[()=>sc(K(n).cwd)]),q(`click`,_,()=>t.onopenrecent(K(n))),q(`click`,v,()=>t.oncopyresume(K(n).resumeCommand)),Y(e,r)}),N(n),Y(e,n)},_e=e=>{Y(e,xc())};Z(he,e=>{K(s).length?e(ge):e(_e,-1)}),N(me),N(l),U(()=>{ee!==(ee=t.selectedSkillProfile)&&(x.value=(x.__value=t.selectedSkillProfile)??``,ei(x,t.selectedSkillProfile)),ne!==(ne=t.sandbox)&&(C.value=(C.__value=t.sandbox)??``,ei(C,t.sandbox)),ae!==(ae=t.approvalPolicy)&&(E.value=(E.__value=t.approvalPolicy)??``,ei(E,t.approvalPolicy)),O.disabled=n().length===0,de!==(de=r())&&(O.value=(O.__value=r())??``,ei(O,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`,E,e=>t.onapprovalpolicychange(e.currentTarget.value)),q(`click`,le,e=>t.onmanageprofiles(e.currentTarget)),q(`change`,O,e=>i()(e.currentTarget.value)),Y(e,l),Ve()}yr([`click`,`change`]);function wc(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 Tc({chatEnabled:e,planEnabled:t}){return[`sessions`,`git`,...e?[`chat`]:[],...e&&t?[`plan`]:[]]}function Ec(e,t,n={chatEnabled:!0,planEnabled:!1}){let r=Tc(n);return r[(r.indexOf(e)+t+r.length)%r.length]}var Dc=J(`<button>Plan</button>`),Oc=J(`<nav class="bottom-navigation" aria-label="Primary"><button>Sess<wbr/>ions</button> <button>Git</button> <button>Chat</button> <!></nav>`);function kc(e,t){Be(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=Oc(),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=Dc();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)}),N(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),Ve()}yr([`keydown`,`click`]);var Ac=J(`<option> </option>`),jc=J(`<p id="skills-status" aria-live="polite">Loading skills…</p>`),Mc=J(`<p id="skills-status">No skills were discovered for this workspace and Codex profile.</p>`),Nc=J(`<p id="skills-status" class="notice svelte-dg6sjj" role="status"> </p>`),Pc=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert"> </p>`),Fc=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert" tabindex="-1"> </p>`),Ic=J(`<p id="skills-status" role="status">Profile saved.</p>`),Lc=J(`<p id="skills-status" role="status">Profile deleted.</p>`),Rc=J(`<p class="svelte-dg6sjj"> </p>`),zc=J(`<li> </li>`),Bc=J(`<dt class="svelte-dg6sjj">Tool dependencies</dt> <dd class="svelte-dg6sjj"><ul class="svelte-dg6sjj"></ul></dd>`,1),Vc=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>`),Hc=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),Uc=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 Wc(e,t){Be(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=Uc(),ee=B(S),C=B(ee,!0);N(ee);var w=H(ee,4),te=B(w),T=H(B(te),2),ne=B(T);ne.value=ne.__value=`__new__`;var E=H(ne);E.value=E.__value=`__default__`,Q(H(E),17,()=>K(d),e=>e.name,(e,t)=>{var n=Ac(),r=B(n,!0);N(n);var i={};U(()=>{X(r,K(t).name),i!==(i=K(t).name)&&(n.value=(n.__value=K(t).name)??``)}),Y(e,n)}),N(T),vi(T,e=>R(o,e),()=>K(o));var re=H(T,4);ci(re),N(te);var D=H(te,2),ie=B(D,!0);N(D);var ae=H(D,2),oe=B(ae);vi(oe,e=>R(s,e),()=>K(s));var se=H(oe,2),ce=B(se,!0);N(se),N(ae),N(w);var le=H(w,2),ue=H(B(le),2),O=B(ue);N(ue);var de=H(ue,2),fe=B(de),pe=H(fe,2);N(de),N(le),vi(le,e=>R(c,e),()=>K(c));var me=H(le,2),he=e=>{Y(e,jc())},ge=e=>{Y(e,Mc())},_e=e=>{var t=Nc(),n=B(t);N(t),U(()=>X(n,`Discovery warning: ${K(u).status.message??``}`)),Y(e,t)},ve=e=>{var t=Pc(),n=B(t,!0);N(t),U(()=>X(n,K(u).status.message)),Y(e,t)},ye=e=>{var t=Fc(),n=B(t,!0);N(t),vi(t,e=>R(a,e),()=>K(a)),U(()=>X(n,K(u).status.message)),Y(e,t)},be=e=>{Y(e,Ic())},xe=e=>{Y(e,Lc())},Se=e=>{var t=Pc(),n=B(t,!0);N(t),U(()=>X(n,K(u).status.message)),Y(e,t)};Z(me,e=>{K(u).status.kind===`loading`?e(he):K(u).status.kind===`empty`?e(ge,1):K(u).status.kind===`warning`?e(_e,2):K(u).status.kind===`invalid-profile`||K(u).status.kind===`error`?e(ve,3):K(u).status.kind===`save-failed`?e(ye,4):K(u).status.kind===`saved`?e(be,5):K(u).status.kind===`deleted`?e(xe,6):K(u).status.kind===`delete-failed`&&e(Se,7)});var Ce=H(me,2),we=e=>{var t=Hc(),n=V(t),r=B(n),i=H(r,2),a=B(i);N(i),N(n);var o=H(n,2);Q(o,21,()=>K(u).skills,e=>e.path,(e,t)=>{var n=Vc();let r;var i=B(n),a=B(i);ci(a);var o=H(a,2),s=B(o,!0);N(o);var c=H(o,2),l=B(c,!0);N(c),N(i);var d=H(i,2),p=B(d),m=e=>{var n=Rc(),r=B(n,!0);N(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=Rc(),r=B(n,!0);N(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);N(v);var ee=H(v,2),C=e=>{var n=Bc(),r=H(V(n),2),i=B(r);Q(i,21,()=>K(t).dependencies.tools,e=>`${e.type}:${e.value}`,(e,t)=>{var n=zc(),r=B(n);N(n),U(()=>X(r,`${K(t).type??``}: ${K(t).value??``}${K(t).description?` — ${K(t).description}`:``}`)),Y(e,n)}),N(i),N(r),Y(e,n)};Z(ee,e=>{K(t).dependencies?.tools?.length&&e(C)}),N(_),N(d),N(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)}),N(o),U(()=>X(a,`${K(u).enabledCount??``} of ${K(u).skills.length??``} skills enabled.`)),q(`click`,r,()=>void p()),Y(e,t)};Z(Ce,e=>{K(u).skills.length>0&&e(we)}),N(S),U(()=>{X(C,r()),li(re,K(u).saveAsName),X(ie,K(u).saveIntent===`replace`?`Saved the selected profile.`:`Creating a new saved profile.`),oe.disabled=!K(u).selectedProfileName||K(u).status.kind===`deleting`,se.disabled=K(u).status.kind===`saving`,X(ce,K(u).status.kind===`saving`?`Saving profile…`:`Save profile`),X(O,`Delete ${K(u).selectedProfileName??``}? Existing sessions keep their saved skill set.`)}),vr(`submit`,w,h),q(`change`,T,m),ni(T,()=>K(l),e=>R(l,e)),q(`input`,re,e=>{K(u).saveAsName=e.currentTarget.value,f()}),q(`click`,oe,g),q(`click`,fe,()=>void v()),q(`click`,pe,()=>void _()),Y(e,S),Ve()}yr([`change`,`input`,`click`]);var Gc=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:Kc(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:Kc(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:Kc(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:Kc(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 Kc(e){return e instanceof Error?e.message:`Unknown relay error.`}var qc=J(`<main class="evidence-mode svelte-y74n0s"><!></main>`),Jc=J(`<div class="recovery-notice" role="status" aria-live="polite" aria-atomic="true"><span> </span> <button type="button">Dismiss</button></div>`),Yc=J(`<!> <!> <!>`,1),Xc=J(`<p>Start a session from the Sessions tab to chat with Codex.</p>`),Zc=J(`<section class="chat-view svelte-y74n0s" aria-labelledby="chat-title"><h2 id="chat-title" class="visually-hidden">Chat</h2> <!></section>`),Qc=J(`<p>Loading skill profiles…</p>`),$c=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>`),el=J(`<main class="swipe-surface svelte-y74n0s"><!> <!> <!> <!></main>`),tl=J(`<!> <!>`,1);function nl(e,t){Be(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),te=L(null),T=L(null),ne=L(``),E=L(null),re=L(!1),D=L(z([])),ie=L(z([])),ae=L(0),oe=L(z({kind:`unavailable`,sessionId:null})),se=L(null),ce=L(``),le=F(()=>(K(oe).kind===`ready`||K(oe).kind===`closing`||K(oe).kind===`error`)&&!!K(oe).plan),ue=F(()=>Es(K(oe).kind===`ready`||K(oe).kind===`closing`||K(oe).kind===`error`?K(oe).plan:void 0)),O=null,de=null,fe=null,pe=null,me=!1,he=0,ge=0,_e=L(null),ve=L(null),ye=L(z(new Set)),be=L(!1),xe=L(!1),Se=L(!1),Ce=L(!1),we=L(null),k=L(null),Te=L(null),Ee=L(null),De=0,Oe=L(z([])),ke=z({}),A=ds(),Ae=Ts({getPlan:A.getPlan,closePlan:A.closePlan},e=>R(oe,e,!0)),j=ho(),M=ec(),je=yo(),Me=new URLSearchParams(location.search).get(`tree-evidence`),Ne=new URLSearchParams(location.search).get(`toast-evidence`);bi(async()=>{let e=localStorage.getItem(`gestalt-mobile.theme`);if((e===`light`||e===`dark`||e===`system`)&&Pe(e),!(Me===`sessions`||Me===`git`||Ne===`error`||Ne===`stacked`)){pe=setInterval(P,2e3),document.addEventListener(`visibilitychange`,P),window.addEventListener(`focus`,P);try{let e=await no();R(g,Mo(K(g)||null,K(a),e.workspaces,Eo.sessionBase)??``,!0),R(a,e.workspaces,!0),R(l,e.profiles),R(s,[...new Set([o,...e.models??[]])]),await at(),R(_,Do(K(a)),!0),R(ye,Do(K(a)),!0);let t=await M.readSelectedSession();R(v,e.sessions.some(e=>e.id===t)?t:e.sessions[0]?.id??null,!0),K(v)&&R(ae,await M.readCursor(K(v)),!0),K(v)&&R(ne,await M.readDraft(K(v)),!0),K(v)&&R(D,await j.read(K(v)),!0),R(y,e.sessions,!0),R(Oe,K(y).find(e=>e.id===K(v))?.pendingInteractions??[],!0),Le(),R(E,K(y).find(e=>e.id===K(v))?.activeTurnId??null,!0),R(r,K(v)?Js(K(E)):`Choose a workspace and start a session.`,!0),Ae.select(K(v)),K(v)&&(await Ye(K(v)),Tt(K(v)))}catch(e){R(r,wt(e,`RELAY_UNAVAILABLE`),!0)}}});function Pe(e){R(i,e,!0),e===`system`?document.documentElement.removeAttribute(`data-theme`):document.documentElement.dataset.theme=e,localStorage.setItem(`gestalt-mobile.theme`,e)}xi(()=>{de&&clearTimeout(de),fe&&clearTimeout(fe),pe&&clearInterval(pe),document.removeEventListener(`visibilitychange`,P),window.removeEventListener(`focus`,P),O?.close(),Ae.dispose()});async function Fe(){if(!K(g)||K(w))return;let e=wc({workspaceId:K(g),profile:`default`,profileState:`ok`});if(e.profile){R(r,e.profile,!0);return}R(C,K(C)??hs(),!0),R(w,!0),R(r,`Starting session…`);try{let e=await A.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),Ae.select(e.id),R(E,null),M.saveSelectedSession(e.id),await Ie(),R(D,[],!0),St(e.id),R(ie,[],!0),R(ae,0),R(ne,await M.readDraft(e.id),!0),Tt(e.id),R(n,`chat`),ct(`chat`),R(r,`Session started.`)}catch(e){R(r,wt(e,`SESSION_START_FAILED`),!0)}finally{R(w,!1)}}async function Ie(){R(y,await A.listSessions(),!0)}async function Le(){try{R(x,await A.listRecentSessions(),!0)}catch{R(x,[],!0)}}async function Re(){try{await Promise.all([Ie(),Le()])}catch(e){R(r,wt(e,`SESSION_REFRESH_FAILED`),!0)}}async function ze(e){R(r,`Opening session…`),R(te,e,!0);try{let t=K(y).find(t=>t.id===e);if(t&&t.state!==`ready`&&t.state!==`turnActive`){let t=await A.restoreSession(e);R(y,K(y).map(n=>n.id===e?t:n),!0),t.recovery?.replacementCreated&&R(T,`Open created a replacement session because the prior Codex history was unavailable.`)}R(v,e,!0),Ae.select(e),M.saveSelectedSession(e),R(D,await j.read(e),!0),R(ie,[],!0),R(ae,0),R(ne,await M.readDraft(e),!0),R(E,K(y).find(t=>t.id===e)?.activeTurnId??null,!0),R(Oe,K(y).find(t=>t.id===e)?.pendingInteractions??[],!0),R(n,`chat`),ct(`chat`),await Ye(e),Tt(e)}catch(e){R(r,`Could not open session: ${Ct(e)}`)}finally{R(te,null)}}async function He(e){R(r,`Opening recent session…`);try{let t=await A.openRecentSession(e.id,e.cwd);await Re(),await ze(t.id)}catch(e){R(r,`Could not open recent session: ${Ct(e)}`)}}async function Ue(e){R(r,`Closing session…`);try{await A.releaseSession(e),K(v)===e&&(R(v,null),R(n,`sessions`),R(E,null),R(Oe,[],!0),M.saveSelectedSession(null),de&&clearTimeout(de),de=null,O?.close(),O=null),await Re(),R(r,`Session closed.`)}catch(e){R(r,`Could not close session: ${Ct(e)}`)}}async function We(e){let t=K(y).find(t=>t.id===e);try{await A.forgetSession(e),K(v)===e&&(O?.close(),R(v,null),R(E,null),M.saveSelectedSession(null)),await Re(),R(x,oc(K(x),t),!0)}catch(e){R(r,`Could not forget session: ${Ct(e)}`)}}async function Ge(e){R(r,await fs(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function Ke(e){if(!(!K(v)||K(E)))try{let t=await A.selectModel(K(v),e);R(y,K(y).map(e=>e.id===t.id?{...e,...t}:e),!0),R(ne,``),R(r,`Model changed to ${e}; it applies to the next turn.`)}catch(e){R(r,`Could not change model: ${Ct(e)}`)}}async function qe(){if(!K(v)||!K(ne).trim()||K(E)||K(re))return;let e=K(ne).trim();R(re,!0);try{let t=await A.startTurn(K(v),e);R(E,t.activeTurnId??null,!0),R(D,os(K(D),`user-${t.activeTurnId??Date.now().toString()}`,e,Date.now()),!0),St(K(v)),R(ne,``),M.saveDraft(K(v),``),R(r,Js(K(E)),!0)}catch(e){R(r,wt(e,`MESSAGE_SEND_FAILED`),!0)}finally{R(re,!1)}}async function Je(){if(!(!K(v)||!K(E)))try{await A.interruptTurn(K(v),K(E)),R(E,null),R(r,`Codex turn interrupted.`)}catch(e){R(r,`Could not interrupt Codex: ${Ct(e)}`)}}async function Ye(e,t=0){let{history:n,restored:i}=await nc(A,e);if(i&&(R(y,K(y).map(t=>t.id===e?i:t),!0),i.recovery?.replacementCreated&&R(T,`The session was restored with a replacement Codex thread because its prior history was unavailable.`)),K(v)!==e)return;let a=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})),o=K(D).filter(e=>!e.complete);R(D,[...a,...o],!0),St(e);let s=n.items.flatMap(e=>{let t=ro(e);return t?[t]:[]});R(ie,[...s,...K(ie).filter(e=>!s.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(ae,Math.max(K(ae),n.currentSequence??t),!0),M.saveCursor(e,K(ae)),t&&Ae.refresh(e),R(r,Js(K(E)),!0)}function P(){K(n)!==`chat`||!K(v)||document.visibilityState!==`visible`||me||(me=!0,Ye(K(v)).catch(()=>void 0).finally(()=>{me=!1}))}function Xe(e,t=!1){if(e===`chat`&&!K(b)||e===`plan`&&!K(le))return;let r=K(n)!==e;R(n,e,!0),ct(e),e===`chat`&&(P(),r&&t&&dt()),e===`git`&&K(ve)&&ft(K(ve)),e===`sessions`&&(K(d)===`profile-manager`&&st(!1),Re())}function Ze(e){R(se,e,!0),queueMicrotask(()=>R(se,null))}let Qe=null;function $e(e){return e instanceof Element&&e.closest(`button, input, textarea, select, a, summary, [contenteditable]`)!==null}function et(e){e.pointerType!==`touch`||$e(e.target)||(Qe={pointerId:e.pointerId,x:e.clientX,y:e.clientY})}function tt(e){if(!Qe||e.pointerId!==Qe.pointerId)return;let t=Qe;Qe=null;let r=e.clientX-t.x,i=e.clientY-t.y;Math.abs(r)<48||Math.abs(r)<=Math.abs(i)||Xe(Ec(K(n),r<0?1:-1,{chatEnabled:K(b),planEnabled:K(le)}))}function nt(e){Qe?.pointerId===e.pointerId&&(Qe=null)}async function rt(){await Ae.close()===`chat`&&(Xe(`chat`),Ze(`chat`))}async function it(e,t){let n=new Gc(A);await n.load(e,t),R(u,n,!0)}async function at(){try{let e=await A.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 ot(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 it(t,n),R(d,`profile-manager`),await cr(),K(h)?.focus()}async function st(e=!0){R(d,`list`),await cr(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function ct(e){requestAnimationFrame(()=>{K(n)===e&&window.scrollTo({top:e===`chat`?document.documentElement.scrollHeight:0})})}let lt=!1;function ut(){lt||(lt=!0,requestAnimationFrame(()=>{lt=!1,K(n)===`chat`&&window.scrollTo({top:document.documentElement.scrollHeight})}))}function dt(){window.matchMedia(`(min-width: 48rem)`).matches&&cr().then(()=>{K(n)===`chat`&&document.getElementById(`message`)?.focus()})}async function ft(e=K(ve)){let t=e?jo(K(a),e):void 0;if(!e||!t?.isGitRepository){De+=1,R(_e,null);return}let n=++De;try{let t=await A.getGitSummary(e);n===De&&K(ve)===e&&R(_e,t,!0)}catch(t){if(n!==De||K(ve)!==e)return;R(_e,null),R(we,wt(t,`GIT_SUMMARY_FAILED`),!0)}}function pt(e){R(ve,e.id,!0),R(we,null),R(_e,null),R(be,!1),e.isGitRepository?ft(e.id):(De+=1,R(_e,null))}async function mt(){let e=K(ve);if(!(!e||!jo(K(a),e)?.isGitRepository)){R(Te,K(Te)??hs(),!0),R(xe,!0),R(we,null);try{await A.pullGit(e,K(Te)),await ft(e),R(Te,null)}catch(e){R(we,wt(e,`GIT_PULL_FAILED`),!0)}finally{R(xe,!1)}}}async function ht(e){if(K(Ce))return;let t=K(ve)?jo(K(a),K(ve)):void 0;if(!t||t.isGitRepository){R(k,null),je.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let n=t.id;R(Ce,!0),R(we,null),R(k,null);try{await A.cloneGitRepository(n,e);let t=await no(),r=rs(K(a),t.workspaces,n,e,K(ye));R(g,Mo(K(g)||null,K(a),t.workspaces,Eo.sessionBase)??``,!0),R(a,t.workspaces,!0),R(ve,r.selectedId,!0),R(ye,r.expandedIds,!0),K(ve)&&jo(K(a),K(ve))?.isGitRepository?await ft(K(ve)):R(_e,null),R(k,`Repository cloned into the selected workspace.`),je.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){wt(e,`GIT_CLONE_FAILED`)}finally{R(Ce,!1)}}async function gt(e){let t=K(ve);if(!(!t||e===K(_e)?.branch)){R(Se,!0),R(we,null);try{await A.checkoutGitBranch(t,e),await ft(t)}catch(e){R(we,wt(e,`GIT_CHECKOUT_FAILED`),!0)}finally{R(Se,!1)}}}async function _t(){let e=K(ve);if(e){R(Ee,K(Ee)??hs(),!0),R(we,null);try{await A.pushGit(e,K(Ee)),R(be,!1),await ft(e),R(Ee,null)}catch(e){R(we,wt(e,`GIT_PUSH_FAILED`),!0)}}}async function vt(e,t){K(v)&&(await A.respondInteraction(K(v),e,{decision:t}),R(Oe,K(Oe).filter(t=>t.requestId!==e),!0))}async function I(e){if(!K(v))return;let t=e.kind===`quiz`?Ui(e.payload):Wi(e.payload);if(!t)return;let n=t.questions.map(t=>({id:t.id,answer:ke[`${e.requestId}:${t.id}`]??``})),i=e.kind===`quiz`?Gi(n):us(n);try{await A.respondInteraction(K(v),e.requestId,i),R(Oe,K(Oe).filter(t=>t.requestId!==e.requestId),!0)}catch{R(r,`Could not send quiz answers. Please try again.`)}}async function yt(e){if(!K(v))return;let t=ls(e.payload);if(!t){R(r,`Codex sent an invalid permission request.`);return}await A.respondInteraction(K(v),e.requestId,t),R(Oe,K(Oe).filter(t=>t.requestId!==e.requestId),!0)}function bt(e,t,n){ke[`${e}:${t}`]=n}function xt(e){R(ne,e,!0),K(v)&&M.saveDraft(K(v),e)}function St(e){j.write(e,K(D))}function Ct(e){return e instanceof Error?e.message:`Unknown relay error.`}function wt(e,t){let n=_o(e,t);return je.enqueue({kind:`error`,...n}),n.message}function Tt(e){de&&clearTimeout(de),fe&&clearTimeout(fe),O?.close();let t=++ge,i=location.protocol===`https:`?`wss:`:`ws:`;O=new WebSocket(`${i}//${location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${K(ae)}`),O.onopen=()=>{t!==ge||K(v)!==e||(R(r,Js(K(E)),!0),P(),fe=setTimeout(()=>{he=0},3e4))},O.onmessage=t=>{let i=JSON.parse(String(t.data));if(i.type===`relay.resyncRequired`){Ye(e,typeof i.currentSequence==`number`?i.currentSequence:0);return}if(i.type===`relay.event`&&i.event?.type===`interaction.requested`){let e=i.event.payload;K(Oe).some(t=>t.requestId===e.requestId)||R(Oe,[...K(Oe),e],!0)}if(i.type===`relay.event`&&i.event?.type===`turnCompleted`&&(R(E,null),R(r,Js(K(E)),!0),R(D,cs(K(D),`assistant-${e}`),!0),St(e),Ye(e).catch(()=>void 0)),i.type===`relay.event`&&i.event?.type===`session.updated`){let t=i.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,Js(K(E)),!0),R(y,K(y).map(t=>t.id===e?{...t,...n}:t),!0)}}if(i.type===`relay.event`&&i.event?.type===`interaction.resolved`){let{requestId:e}=i.event.payload;R(Oe,K(Oe).filter(t=>t.requestId!==e),!0)}if(i.type===`relay.event`&&i.event?.type===`activity.updated`){let e=i.event.payload;typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&R(ie,[...K(ie).filter(t=>t.id!==e.id),e],!0)}R(ae,gs(K(ae),i,t=>{R(D,ss(K(D),`assistant-${e}`,t,Date.now()),!0),St(e)},()=>{Ye(e)},t=>{if(Ae.applyEvent(e,t),t.type!==`plan.updated`||!ys(t.payload)||t.payload.reason!==`authoring-start`&&t.payload.reason!==`work-start`&&t.payload.reason!==`supervision-start`&&t.payload.reason!==`resync`)return;let r=`${e}:${t.sequence}`;r!==K(ce)&&(R(ce,r),R(n,`plan`),ct(`plan`))}),!0),M.saveCursor(e,K(ae))},O.onclose=()=>{t!==ge||K(v)!==e||(fe&&clearTimeout(fe),R(r,`Connection interrupted. Reconnecting…`),de=setTimeout(()=>Tt(e),Ys(he++)))}}var Et=tl();Hr(`y74n0s`,e=>{Sn(()=>{Xt.title=`Gestalt Mobile`})});var Dt=V(Et),Ot=e=>{To(e,{get variant(){return Ne}})},kt=e=>{var t=qc();Vo(B(t),{get context(){return Me}}),N(t),Y(e,t)},At=e=>{var t=el(),l=B(t);{let e=F(()=>K(n)===`chat`?sc(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);Ei(l,{get theme(){return K(i)},get sessionPath(){return K(e)},get sessionModel(){return K(t)},get weeklyQuotaRemaining(){return K(ue)},onthemechange:Pe})}var C=H(l,2),ae=e=>{var t=Jc(),n=B(t),r=B(n,!0);N(n);var i=H(n,2);N(t),U(()=>X(r,K(T))),q(`click`,i,()=>R(T,null)),Y(e,t)};Z(C,e=>{K(T)&&e(ae)});var ce=H(C,2),O=e=>{var t=Zc(),n=H(B(t),2),i=e=>{var t=Yc(),n=V(t);Qa(n,{get messages(){return K(D)},get activities(){return K(ie)}});var i=H(n,2);la(i,{get interactions(){return K(Oe)},get answers(){return ke},onanswer:bt,onquiz:e=>void I(e),onpermission:e=>void yt(e),ondecision:(e,t)=>void vt(e,t)}),Ta(H(i,2),{get status(){return K(r)},get message(){return K(ne)},get activeTurnId(){return K(E)},get starting(){return K(re)},get models(){return K(s)},onchange:xt,onscrollbottom:ut,onmodelselect:e=>void Ke(e),onsend:()=>void qe(),oninterrupt:()=>void Je()}),Y(e,t)},a=e=>{Y(e,Xc())};Z(n,e=>{K(v)?e(i):e(a,-1)}),N(t),Y(e,t)},de=e=>{qs(e,{get state(){return K(oe)},onclose:()=>void rt()})},fe=e=>{{let t=F(()=>K(ve)?jo(K(a),K(ve))??null:null);ns(e,{get workspaceTree(){return K(a)},get selectedWorkspace(){return K(t)},get expandedIds(){return K(ye)},get summary(){return K(_e)},get refreshing(){return K(xe)},get checkingOut(){return K(Se)},get cloning(){return K(Ce)},get error(){return K(we)},get cloneStatus(){return K(k)},get confirmingPush(){return K(be)},onpull:()=>void mt(),oncheckout:e=>void gt(e),onopenpushconfirmation:()=>R(be,!0),onpush:()=>void _t(),oncancelpush:()=>R(be,!1),onselect:pt,onexpandedchange:e=>R(ye,e,!0),onclone:e=>void ht(e)})}},pe=e=>{var t=Dr(),n=V(t),r=e=>{var t=$c(),n=B(t),r=B(n);vi(r,e=>R(h,e),()=>K(h));var i=H(r,2);N(n);var a=H(n,2),o=e=>{Wc(e,{get skillsState(){return K(u)},onrefresh:()=>K(u)?.refresh()??Promise.resolve(),onprofileschange:()=>void at(),heading:`Skill profile editor`})},s=e=>{Y(e,Qc())};Z(a,e=>{K(u)?e(o):e(s,-1)}),N(t),q(`click`,i,()=>void st()),Y(e,t)},i=e=>{Cc(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)},get openingSessionId(){return K(te)},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 ot(e),onopen:ze,onselectopen:ze,onclose:e=>void Ue(e),onopenrecent:e=>void He(e),onforget:e=>void We(e),oncopyresume:e=>void Ge(e),onstart:()=>void Fe()})};Z(n,e=>{K(d)===`profile-manager`?e(r):e(i,-1)}),Y(e,t)};Z(ce,e=>{K(n)===`chat`?e(O):K(n)===`plan`?e(de,1):K(n)===`git`?e(fe,2):e(pe,-1)}),kc(H(ce,2),{get activeTab(){return K(n)},get chatEnabled(){return K(b)},get planEnabled(){return K(le)},get focusTab(){return K(se)},onselect:Xe}),N(t),q(`pointerdown`,t,et),q(`pointerup`,t,tt),vr(`pointercancel`,t,nt),Y(e,t)};Z(Dt,e=>{Ne===`error`||Ne===`stacked`?e(Ot):Me===`sessions`||Me===`git`?e(kt,1):e(At,-1)});var jt=H(Dt,2),Mt=e=>{Co(e,{get queue(){return je}})};Z(jt,e=>{Ne!==`error`&&Ne!==`stacked`&&e(Mt)}),Y(e,Et),Ve()}yr([`pointerdown`,`pointerup`,`click`]);var rl=document.getElementById(`app`);if(!rl)throw Error(`Missing application mount target`);Or(nl,{target:rl});
|
package/dist/client/index.html
CHANGED
|
@@ -10,7 +10,7 @@ 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-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-Cjxvsp9k.js"></script>
|
|
14
14
|
<link rel="stylesheet" crossorigin href="/assets/index-DrULMr7l.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
@@ -220,7 +220,7 @@ export async function composeRelayApp(options) {
|
|
|
220
220
|
? (session, turnId) => runtime.interruptTurn(session, turnId)
|
|
221
221
|
: undefined,
|
|
222
222
|
restore: runtime
|
|
223
|
-
? (session) => runtime.
|
|
223
|
+
? (session) => runtime.restoreWithOutcome(session, new Date().toISOString())
|
|
224
224
|
: undefined,
|
|
225
225
|
promoteRecent: runtime
|
|
226
226
|
? (thread) => promoteRecentThread(thread, {
|
|
@@ -9,7 +9,29 @@ export function registerGetHistory(app, deps) {
|
|
|
9
9
|
const session = deps.find(request.params.id);
|
|
10
10
|
if (!session)
|
|
11
11
|
return reply.code(404).send({ code: 'SESSION_NOT_FOUND' });
|
|
12
|
-
|
|
12
|
+
let history;
|
|
13
|
+
try {
|
|
14
|
+
history = await deps.read(session);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
if (error instanceof Error && error.message === 'CODEX_SESSION_NOT_RUNNING')
|
|
18
|
+
return reply.code(409).type('application/problem+json').send({
|
|
19
|
+
type: 'urn:gestalt-mobile:error:session-history-unavailable',
|
|
20
|
+
title: 'Session history unavailable',
|
|
21
|
+
status: 409,
|
|
22
|
+
detail: 'GET /api/sessions/:id/history requires an active Codex session process. Open the session to restore it, then retry.',
|
|
23
|
+
code: 'SESSION_HISTORY_UNAVAILABLE',
|
|
24
|
+
retryable: true,
|
|
25
|
+
});
|
|
26
|
+
return reply.code(502).type('application/problem+json').send({
|
|
27
|
+
type: 'urn:gestalt-mobile:error:session-history-read-failed',
|
|
28
|
+
title: 'Session history read failed',
|
|
29
|
+
status: 502,
|
|
30
|
+
detail: 'GET /api/sessions/:id/history reached the relay, but Codex could not read this session history. The Codex process may have stopped during recovery; open the session again and inspect the running relay output if it persists.',
|
|
31
|
+
code: 'SESSION_HISTORY_READ_FAILED',
|
|
32
|
+
retryable: true,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
13
35
|
const items = toChatItems(history.turns);
|
|
14
36
|
return reply.send({
|
|
15
37
|
items,
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
5
|
*/
|
|
6
6
|
import { idempotencyKey } from '../../../platform/http/idempotency.js';
|
|
7
|
+
import { RelaySession } from '../model/relay-session.js';
|
|
7
8
|
import { canRestore } from './use-case.js';
|
|
8
9
|
export function registerRestoreSession(app, deps) {
|
|
9
10
|
app.post('/api/sessions/:id/restore', async (request, reply) => {
|
|
@@ -18,10 +19,29 @@ export function registerRestoreSession(app, deps) {
|
|
|
18
19
|
return reply.code(404).send({ code: 'SESSION_NOT_FOUND' });
|
|
19
20
|
if (!canRestore(session))
|
|
20
21
|
return reply.code(409).send({ code: 'SESSION_CANNOT_RESTORE' });
|
|
21
|
-
const
|
|
22
|
-
deps.save(
|
|
22
|
+
const recovering = RelaySession.rehydrate(session).beginRecovery(new Date().toISOString()).snapshot;
|
|
23
|
+
deps.save(recovering);
|
|
24
|
+
let restored;
|
|
25
|
+
try {
|
|
26
|
+
restored = await deps.restore(session);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// The pre-I/O recovery marker must never strand a saved session: keep
|
|
30
|
+
// its original thread and inactive state available for a later Open.
|
|
31
|
+
deps.save(session);
|
|
32
|
+
return reply.code(502).send({ code: 'RESTORE_FAILED' });
|
|
33
|
+
}
|
|
34
|
+
const response = 'session' in restored
|
|
35
|
+
? {
|
|
36
|
+
...restored.session,
|
|
37
|
+
...(restored.replacementCreated
|
|
38
|
+
? { recovery: { historyUnavailable: true, replacementCreated: true } }
|
|
39
|
+
: {}),
|
|
40
|
+
}
|
|
41
|
+
: restored;
|
|
42
|
+
deps.save(response);
|
|
23
43
|
if (key)
|
|
24
|
-
deps.idempotency?.put(scope, key, 200, JSON.stringify(
|
|
25
|
-
return reply.send(
|
|
44
|
+
deps.idempotency?.put(scope, key, 200, JSON.stringify(response));
|
|
45
|
+
return reply.send(response);
|
|
26
46
|
});
|
|
27
47
|
}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
5
|
*/
|
|
6
6
|
import { RelaySession } from '../model/relay-session.js';
|
|
7
|
+
import { threadId } from '../model/value-objects.js';
|
|
8
|
+
import { isMissingCodexThreadRollout } from '../../../platform/codex/json-rpc-client.js';
|
|
7
9
|
export function canRestore(session) {
|
|
8
10
|
return (session.threadId !== null &&
|
|
9
11
|
(session.state === 'stopped' ||
|
|
@@ -15,3 +17,21 @@ export function restore(session, now) {
|
|
|
15
17
|
throw new Error('SESSION_CANNOT_RESTORE');
|
|
16
18
|
return RelaySession.rehydrate(session).beginRecovery(now).restore(now).snapshot;
|
|
17
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* The runtime may replace a thread only after a failed resume is confirmed to
|
|
22
|
+
* be the historical-rollout case. This pure policy leaves persistence to the
|
|
23
|
+
* caller, so the original thread remains durable until thread/start succeeds.
|
|
24
|
+
*/
|
|
25
|
+
export function canRebindMissingRollout(session, error) {
|
|
26
|
+
return canRestore(session) && isMissingCodexThreadRollout(error);
|
|
27
|
+
}
|
|
28
|
+
export function rebindMissingRollout(session, error, replacementThreadId, now) {
|
|
29
|
+
if (!canRebindMissingRollout(session, error))
|
|
30
|
+
throw new Error('CODEX_ROLLOUT_REBIND_NOT_ALLOWED');
|
|
31
|
+
threadId(replacementThreadId);
|
|
32
|
+
return {
|
|
33
|
+
session: RelaySession.rehydrate(session).bindThread(replacementThreadId, now).snapshot,
|
|
34
|
+
historyUnavailable: true,
|
|
35
|
+
replacementCreated: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
@@ -4,6 +4,38 @@
|
|
|
4
4
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
5
|
*/
|
|
6
6
|
import { createInterface } from 'node:readline';
|
|
7
|
+
export const CODEX_THREAD_NOT_FOUND = 'CODEX_THREAD_NOT_FOUND';
|
|
8
|
+
export const CODEX_JSON_RPC_ERROR = 'CODEX_JSON_RPC_ERROR';
|
|
9
|
+
/** A bounded representation of an app-server JSON-RPC failure. */
|
|
10
|
+
export class CodexJsonRpcError extends Error {
|
|
11
|
+
code;
|
|
12
|
+
kind;
|
|
13
|
+
constructor(code, message, kind = classifyCodexJsonRpcError(code, message)) {
|
|
14
|
+
super(boundMessage(message));
|
|
15
|
+
this.code = code;
|
|
16
|
+
this.kind = kind;
|
|
17
|
+
this.name = 'CodexJsonRpcError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Codex 0.146 reports a rollout removed by an upgrade as -32600. Keep the
|
|
22
|
+
* message match deliberately narrow: other invalid-request responses must not
|
|
23
|
+
* be treated as permission to replace a durable thread.
|
|
24
|
+
*/
|
|
25
|
+
export function isMissingCodexThreadRollout(error) {
|
|
26
|
+
return error instanceof CodexJsonRpcError && error.kind === CODEX_THREAD_NOT_FOUND;
|
|
27
|
+
}
|
|
28
|
+
function classifyCodexJsonRpcError(code, message) {
|
|
29
|
+
return code === -32600 && /^no rollout found for thread id\b/i.test(message)
|
|
30
|
+
? CODEX_THREAD_NOT_FOUND
|
|
31
|
+
: CODEX_JSON_RPC_ERROR;
|
|
32
|
+
}
|
|
33
|
+
function boundMessage(message) {
|
|
34
|
+
return message
|
|
35
|
+
.replace(/((?:authorization|token|api[_ -]?key|password)\s*[:=]\s*)\S+/gi, '$1[REDACTED]')
|
|
36
|
+
.replace(/(authentication failed:\s*).*/i, '$1[REDACTED]')
|
|
37
|
+
.slice(0, 256);
|
|
38
|
+
}
|
|
7
39
|
export class JsonRpcClient {
|
|
8
40
|
output;
|
|
9
41
|
sequence = 0;
|
|
@@ -59,8 +91,10 @@ export class JsonRpcClient {
|
|
|
59
91
|
if (!pending)
|
|
60
92
|
return;
|
|
61
93
|
this.pending.delete(message.id);
|
|
62
|
-
if (message.error)
|
|
63
|
-
|
|
94
|
+
if (message.error) {
|
|
95
|
+
const error = message.error;
|
|
96
|
+
pending.reject(new CodexJsonRpcError(typeof error.code === 'number' ? error.code : undefined, typeof error.message === 'string' ? error.message : 'JSON_RPC_ERROR'));
|
|
97
|
+
}
|
|
64
98
|
else
|
|
65
99
|
pending.resolve(message.result);
|
|
66
100
|
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { RelaySession, } from '../../features/sessions/model/relay-session.js';
|
|
7
7
|
import { randomUUID } from 'node:crypto';
|
|
8
8
|
import { createPlanMeasurementSnapshot, } from '../../features/plans/application/measurement-snapshot.js';
|
|
9
|
+
import { canRebindMissingRollout, rebindMissingRollout, } from '../../features/sessions/restore-session/use-case.js';
|
|
9
10
|
import { gestaltQuizDynamicTool } from '../../../shared/contracts/quiz.js';
|
|
10
11
|
export class CodexSessionRuntime {
|
|
11
12
|
launch;
|
|
@@ -43,22 +44,13 @@ export class CodexSessionRuntime {
|
|
|
43
44
|
clientInfo: { name: 'gestalt-mobile', version: '0.1.0' },
|
|
44
45
|
capabilities: { experimentalApi: true },
|
|
45
46
|
});
|
|
46
|
-
const
|
|
47
|
-
cwd: session.workspacePath,
|
|
48
|
-
approvalPolicy: settings.approvalPolicy ?? 'on-request',
|
|
49
|
-
dynamicTools: [gestaltQuizDynamicTool],
|
|
50
|
-
...(settings.model ? { model: settings.model } : {}),
|
|
51
|
-
...(settings.sandbox ? { sandbox: settings.sandbox } : {}),
|
|
52
|
-
}));
|
|
53
|
-
if (!result.thread?.id)
|
|
54
|
-
throw new Error('CODEX_THREAD_ID_MISSING');
|
|
47
|
+
const startedThreadId = await this.startThread(process, session, settings);
|
|
55
48
|
this.processes.set(session.id, process);
|
|
56
|
-
this.threadIds.set(session.id,
|
|
57
|
-
return RelaySession.rehydrate(session).bindThread(
|
|
49
|
+
this.threadIds.set(session.id, startedThreadId);
|
|
50
|
+
return RelaySession.rehydrate(session).bindThread(startedThreadId, now).snapshot;
|
|
58
51
|
}
|
|
59
52
|
catch (error) {
|
|
60
|
-
|
|
61
|
-
this.releasePlanStatus(session.id);
|
|
53
|
+
this.discardProcess(session.id, process);
|
|
62
54
|
throw error;
|
|
63
55
|
}
|
|
64
56
|
}
|
|
@@ -68,6 +60,8 @@ export class CodexSessionRuntime {
|
|
|
68
60
|
this.processes.get(sessionId)?.close();
|
|
69
61
|
this.processes.delete(sessionId);
|
|
70
62
|
this.threadIds.delete(sessionId);
|
|
63
|
+
this.clearPendingRequests(sessionId);
|
|
64
|
+
this.planMeasurementTokens.delete(sessionId);
|
|
71
65
|
this.releasePlanStatus(sessionId);
|
|
72
66
|
}
|
|
73
67
|
async release(sessionId) {
|
|
@@ -156,6 +150,9 @@ export class CodexSessionRuntime {
|
|
|
156
150
|
};
|
|
157
151
|
}
|
|
158
152
|
async restore(session, now) {
|
|
153
|
+
return (await this.restoreWithOutcome(session, now)).session;
|
|
154
|
+
}
|
|
155
|
+
async restoreWithOutcome(session, now) {
|
|
159
156
|
if (!session.threadId)
|
|
160
157
|
throw new Error('CODEX_THREAD_ID_MISSING');
|
|
161
158
|
const process = await this.launchForSession(session);
|
|
@@ -167,18 +164,31 @@ export class CodexSessionRuntime {
|
|
|
167
164
|
clientInfo: { name: 'gestalt-mobile', version: '0.1.0' },
|
|
168
165
|
capabilities: { experimentalApi: true },
|
|
169
166
|
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
167
|
+
let result;
|
|
168
|
+
try {
|
|
169
|
+
await process.rpc.request('thread/resume', {
|
|
170
|
+
threadId: session.threadId,
|
|
171
|
+
cwd: session.workspacePath,
|
|
172
|
+
dynamicTools: [gestaltQuizDynamicTool],
|
|
173
|
+
});
|
|
174
|
+
result = {
|
|
175
|
+
session: RelaySession.rehydrate(session).restore(now).snapshot,
|
|
176
|
+
historyUnavailable: false,
|
|
177
|
+
replacementCreated: false,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
if (!canRebindMissingRollout(session, error))
|
|
182
|
+
throw error;
|
|
183
|
+
const replacementThreadId = await this.startThread(process, session, { model: session.model });
|
|
184
|
+
result = rebindMissingRollout(session, error, replacementThreadId, now);
|
|
185
|
+
}
|
|
175
186
|
this.processes.set(session.id, process);
|
|
176
|
-
this.threadIds.set(session.id, session.threadId);
|
|
177
|
-
return
|
|
187
|
+
this.threadIds.set(session.id, result.session.threadId);
|
|
188
|
+
return result;
|
|
178
189
|
}
|
|
179
190
|
catch (error) {
|
|
180
|
-
|
|
181
|
-
this.releasePlanStatus(session.id);
|
|
191
|
+
this.discardProcess(session.id, process);
|
|
182
192
|
throw error;
|
|
183
193
|
}
|
|
184
194
|
}
|
|
@@ -192,12 +202,44 @@ export class CodexSessionRuntime {
|
|
|
192
202
|
this.exitUnsubscribers.set(sessionId, process.onExit?.(() => {
|
|
193
203
|
this.processes.delete(sessionId);
|
|
194
204
|
this.threadIds.delete(sessionId);
|
|
205
|
+
this.clearPendingRequests(sessionId);
|
|
195
206
|
this.planMeasurementTokens.delete(sessionId);
|
|
196
207
|
this.exitUnsubscribers.delete(sessionId);
|
|
197
208
|
this.releasePlanStatus(sessionId);
|
|
198
209
|
this.onProcessExit?.(sessionId);
|
|
199
210
|
}) ?? (() => { }));
|
|
200
211
|
}
|
|
212
|
+
async startThread(process, session, settings = {}) {
|
|
213
|
+
const result = (await process.rpc.request('thread/start', this.threadStartParams(session, settings)));
|
|
214
|
+
if (typeof result.thread?.id !== 'string' || !result.thread.id) {
|
|
215
|
+
throw new Error('CODEX_THREAD_ID_MISSING');
|
|
216
|
+
}
|
|
217
|
+
return result.thread.id;
|
|
218
|
+
}
|
|
219
|
+
threadStartParams(session, settings) {
|
|
220
|
+
return {
|
|
221
|
+
cwd: session.workspacePath,
|
|
222
|
+
approvalPolicy: settings.approvalPolicy ?? 'on-request',
|
|
223
|
+
dynamicTools: [gestaltQuizDynamicTool],
|
|
224
|
+
...(settings.model ? { model: settings.model } : {}),
|
|
225
|
+
...(settings.sandbox ? { sandbox: settings.sandbox } : {}),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
discardProcess(sessionId, process) {
|
|
229
|
+
this.exitUnsubscribers.get(sessionId)?.();
|
|
230
|
+
this.exitUnsubscribers.delete(sessionId);
|
|
231
|
+
process.close();
|
|
232
|
+
this.clearPendingRequests(sessionId);
|
|
233
|
+
this.planMeasurementTokens.delete(sessionId);
|
|
234
|
+
this.releasePlanStatus(sessionId);
|
|
235
|
+
}
|
|
236
|
+
clearPendingRequests(sessionId) {
|
|
237
|
+
const prefix = `${sessionId}:`;
|
|
238
|
+
for (const key of this.pendingRequests.keys()) {
|
|
239
|
+
if (key.startsWith(prefix))
|
|
240
|
+
this.pendingRequests.delete(key);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
201
243
|
async launchForSession(session) {
|
|
202
244
|
const lease = this.planStatusSource
|
|
203
245
|
? await this.planStatusSource.open({ id: session.id, workspacePath: session.workspacePath }, (update) => this.onPlanStatus?.(session.id, update))
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { chmod, mkdir, readFile, readdir, rename, rm, stat, watch, writeFile, realpath, } from 'node:fs/promises';
|
|
7
7
|
import { createHash, randomUUID } from 'node:crypto';
|
|
8
|
+
import { isPlanSignalReason } from '../../../shared/contracts/plan-signal.js';
|
|
8
9
|
import { basename, dirname, join } from 'node:path';
|
|
9
10
|
import { parseSupervisedPlan } from '../../features/plans/application/parse-supervised-plan.js';
|
|
10
11
|
import { isPlanPathWithinWorkspace } from '../../features/plans/application/parse-supervised-plan.js';
|
|
@@ -298,9 +299,6 @@ function parseSignal(source) {
|
|
|
298
299
|
return null;
|
|
299
300
|
}
|
|
300
301
|
}
|
|
301
|
-
function isPlanSignalReason(value) {
|
|
302
|
-
return value === 'authoring-start' || value === 'work-start' || value === 'checkpoint' || value === 'update';
|
|
303
|
-
}
|
|
304
302
|
function isRfc3339Utc(value) {
|
|
305
303
|
return (typeof value === 'string' &&
|
|
306
304
|
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/.test(value) &&
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2026 Dyne.org foundation
|
|
3
|
+
* Designed by Denis Roio <jaromil@dyne.org>
|
|
4
|
+
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
|
+
*/
|
|
6
|
+
/** Every reason published by the bundled org-plan helper. */
|
|
7
|
+
export const planSignalReasons = [
|
|
8
|
+
'authoring-start',
|
|
9
|
+
'work-start',
|
|
10
|
+
'checkpoint',
|
|
11
|
+
'update',
|
|
12
|
+
'supervision-start',
|
|
13
|
+
'resync',
|
|
14
|
+
];
|
|
15
|
+
export function isPlanSignalReason(value) {
|
|
16
|
+
return typeof value === 'string' && planSignalReasons.includes(value);
|
|
17
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gestalt-mobile",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Mobile-first web relay for durable Codex development sessions",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"codex",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"format": "prettier --write .",
|
|
46
46
|
"format:check": "prettier --check .",
|
|
47
47
|
"test": "vitest run",
|
|
48
|
+
"test:open-profile-smoke": "tsx scripts/open-profile-smoke.ts",
|
|
48
49
|
"test:watch": "vitest",
|
|
49
50
|
"test:package": "node scripts/smoke-packed-cli.mjs",
|
|
50
51
|
"test:e2e": "playwright test",
|
|
@@ -1,12 +0,0 @@
|
|
|
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,C=1<<18,w=1<<19,T=1<<20,E=1<<25,D=65536,ee=1<<21,O=1<<22,te=1<<23,k=Symbol(`$state`),ne=Symbol(`legacy props`),re=Symbol(``),ie=Symbol(`attributes`),ae=Symbol(`class`),oe=Symbol(`style`),se=Symbol(`text`),ce=Symbol(`form reset`),le=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ue=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function de(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function fe(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function pe(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 Te(){console.warn(`https://svelte.dev/e/derived_inert`)}function Ee(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function j(){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 Ee(),Ce;return N=e}function Ae(){return ke(rn(N))}function P(e){if(M){if(rn(N)!==null)throw Ee(),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 Ee(),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|=te,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^=D,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|w;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|=w),{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&&fe();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!==le&&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|=te,Ut(a,t)):(a.f&8388608&&(a.f^=te),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 Te(),e.v;Wn(r);try{e.f&=~D,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(le),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|=D),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||k 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===k)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===k)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&&k in e)return e[k]}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[ae]=void 0,e[ie]=null,e[oe]=void 0,e.__e=void 0),u(n)&&(n[se]=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[ce]?.()})},{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[ce];i?e[ce]=()=>{i(),r(!0)}:e[ce]=()=>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|T,e)}function xn(e){Ot.ensure();let t=gn(64|w,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(O|w,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|w,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(le)});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&=~D),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(le)}),e.ac=null);try{e.f|=ee;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^=te),d}catch(e){return Ke(e)}finally{e.f^=ee,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&=~D),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[se]??=e.nodeValue)&&(e[se]=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 Ee(),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|=E,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^=E,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|=E),l.set(x,S)),r.add(x)}if(e===0&&s&&!d&&(h?d=En(()=>s(c)):(d=En(()=>s(Ir??=tn())),d.f|=E)),e>r.size&&pe(``,``,``),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^=E,_===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],C=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,C.next),Vr(e,d,S),Vr(e,C,b),l=b,d=C,--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 w=[];if(u!==void 0)for(_ of u)_.f&8192||w.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&w.push(l),l=Lr(l.next);var T=w.length;if(T>0){var D=i&4&&s===0?n:null;if(o){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}Pr(e,w,D)}}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|=C})}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[ae];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[ae]=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[oe];if(M||i!==t){var a=Xr(t,r);(!M||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[oe]=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 j();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=ue?`link`:`LINK`,si=ue?`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[ce]=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[re]=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[ie]??={[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?.[k]===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=k in e||ne 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&&de(`onMount`),yn(()=>{let t=dr(e);if(typeof t==`function`)return t})}function xi(e){Le===null&&de(`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(`<span class="weekly-quota" aria-label="Weekly quota used"> </span>`),Ti=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> <!> <div class="header-actions"><!> <button class="menu-trigger" type="button" popovertarget="configuration-panel" aria-label="Open configuration"><span class="menu-lines" aria-hidden="true"><span></span><span></span><span></span></span></button></div></header> <div id="configuration-panel" class="configuration-panel" popover="auto"><div class="configuration-brand" aria-label="Dyne"><img class="configuration-logo light-asset" src="/branding/dyne-logotype-black.svg" alt=""/> <img class="configuration-logo dark-asset" src="/branding/dyne-logotype-white.svg" alt=""/></div> <label class="appearance-control" for="appearance"><span aria-hidden="true">aA</span> <select id="appearance" aria-label="Appearance"><option>System</option><option>Light</option><option>Dark</option></select></label></div>`,1);function Ei(e,t){ze(t,!0);let n=yi(t,`sessionPath`,3,null),r=yi(t,`sessionModel`,3,null),i=yi(t,`weeklyQuotaUsed`,3,null);var a=Ti(),o=V(a),s=H(B(o),2),c=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(s,e=>{n()&&e(c)});var l=H(s,2),u=B(l),d=e=>{var t=wi(),n=B(t);P(t),U(()=>X(n,`${i()??``}% used`)),Y(e,t)};Z(u,e=>{i()!==null&&e(d)}),je(2),P(l),P(o);var f=H(o,2),p=H(B(f),2),m=H(B(p),2),h=B(m);h.value=h.__value=`system`;var g=H(h);g.value=g.__value=`light`;var _=H(g);_.value=_.__value=`dark`,P(m);var v;ti(m),P(p),P(f),U(()=>{v!==(v=t.theme)&&(m.value=(m.__value=t.theme)??``,ei(m,t.theme))}),q(`change`,m,e=>t.onthemechange(e.currentTarget.value)),Y(e,a),Be()}yr([`change`]);function Di(e){if(Oi(e))return null;let[t,n]=e.label.split(` · `,2);return{kind:t,...n?{status:n}:{},content:ki(t,e.detail)}}function Oi(e){return e.label.startsWith(`Tool`)&&(e.detail.includes(`context_mode`)||/(^|[_:])ctx_[a-z]/i.test(e.detail))}function ki(e,t){return e===`Command`?Ai(t):e===`File change`||e===`fileChange`?t.split(`
|
|
3
|
-
`).filter(Boolean).join(`, `):t}function Ai(e){let t=e.match(/^\/bin\/bash -lc "([\s\S]*)"$/);return t?t[1].replace(/\\"/g,`"`).replace(/\\\\/g,`\\`):e}var ji=J(`<li class="activity-row svelte-thyolt"><small class="activity-type svelte-thyolt"> </small> <span class="activity-content svelte-thyolt"> </span></li>`),Mi=J(`<details id="chat-activity" class="svelte-thyolt"><summary class="svelte-thyolt">activity</summary> <ul class="activity-list svelte-thyolt"></ul></details>`);function Ni(e,t){ze(t,!0);let n=F(()=>t.activities.flatMap(e=>{let t=Di(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=Mi(),i=H(B(t),2);Q(i,21,()=>K(n),e=>e.id,(e,t)=>{var n=ji(),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 Pi(e){if(!e||typeof e!=`object`)return null;let t=e.command;return typeof t==`string`&&t.trim()?t:null}function Fi(e){if(!Ii(e))return null;let t=e.changes;if(!Array.isArray(t))return null;let n=t.map(e=>Ii(e)&&typeof e.path==`string`&&e.path.trim()?e.path:null).filter(e=>e!==null);return n.length===t.length&&n.length>0?n:null}function Ii(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Li=J(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></label></div>`),Ri=J(`<label class="custom svelte-77f3gb">Your custom answer <input required="" class="svelte-77f3gb"/></label>`),zi=J(`<div class="choice svelte-77f3gb"><input type="radio" class="svelte-77f3gb"/> <label class="svelte-77f3gb"><strong>Custom answer</strong><span class="svelte-77f3gb">Provide your own response.</span></label></div> <!>`,1),Bi=J(`<fieldset class="svelte-77f3gb"><legend class="svelte-77f3gb"><strong> </strong><span class="svelte-77f3gb"> </span></legend> <div class="choices svelte-77f3gb"><!> <!></div></fieldset>`),Vi=J(`<form class="quiz-form svelte-77f3gb"><!> <button type="submit">Send answers</button></form>`);function Hi(e,t){ze(t,!0);let n=z({}),r=z({}),i=F(()=>t.quiz.questions.every(e=>!!t.answers[e.id]?.trim()));async function a(e){r[e]=!0,t.onanswer(e,t.answers[e]??``),await cr(),n[e]?.focus()}var o=Vi(),s=B(o);Q(s,17,()=>t.quiz.questions,e=>e.id,(e,i)=>{let o=F(()=>`${t.requestId}-${K(i).id}-custom`),s=F(()=>K(i).choices.some(e=>e.label===t.answers[K(i).id]));var c=Bi(),l=B(c),u=B(l),d=B(u,!0);P(u);var f=H(u),p=B(f,!0);P(f),P(l);var m=H(l,2),h=B(m);Q(h,17,()=>K(i).choices,e=>`${K(i).id}-${e.label}`,(e,n)=>{let a=F(()=>`${t.requestId}-${K(i).id}-${K(n).label}`);var o=Li(),s=B(o);ci(s);var c=H(s,2),l=B(c),u=B(l,!0);P(l);var d=H(l),f=B(d,!0);P(d),P(c),P(o),U(()=>{$(s,`id`,K(a)),$(s,`name`,`${t.requestId}-${K(i).id}`),ui(s,t.answers[K(i).id]===K(n).label),$(c,`for`,K(a)),X(u,K(n).label),X(f,K(n).description)}),q(`change`,s,()=>{r[K(i).id]=!1,t.onanswer(K(i).id,K(n).label)}),Y(e,o)});var g=H(h,2),_=e=>{var c=zi(),l=V(c),u=B(l);ci(u);var d=H(u,2);P(l);var f=H(l,2),p=e=>{var r=Ri(),a=H(B(r));ci(a),vi(a,(e,t)=>n[t.id]=e,e=>n?.[e.id],()=>[K(i)]),P(r),U(()=>{$(r,`for`,`${K(o)}-text`),$(a,`id`,`${K(o)}-text`),$(a,`type`,K(i).isSecret?`password`:`text`),li(a,t.answers[K(i).id])}),q(`input`,a,e=>t.onanswer(K(i).id,e.currentTarget.value)),Y(e,r)},m=F(()=>r[K(i).id]||!!t.answers[K(i).id]&&!K(s));Z(f,e=>{K(m)&&e(p)}),U(e=>{$(u,`id`,K(o)),$(u,`name`,`${t.requestId}-${K(i).id}`),ui(u,e),$(d,`for`,K(o))},[()=>r[K(i).id]||!!t.answers[K(i).id]&&!K(s)]),q(`change`,u,()=>a(K(i).id)),q(`click`,u,()=>{r[K(i).id]&&a(K(i).id)}),Y(e,c)};Z(g,e=>{K(i).allowCustom&&e(_)}),P(m),P(c),U(()=>{X(d,K(i).header),X(p,K(i).question)}),Y(e,c)});var c=H(s,2);P(o),U(()=>c.disabled=!K(i)),vr(`submit`,o,e=>{e.preventDefault(),K(i)&&t.onsubmit()}),Y(e,o),Be()}yr([`change`,`click`,`input`]);function Ui(e,t=2){if(!Xi(e)||!Array.isArray(e.questions)||e.questions.length<1||e.questions.length>8)return null;let n=e.questions.map(e=>Ki(e,t));if(n.some(e=>e===null))return null;let r=n;return new Set(r.map(e=>e.id)).size===r.length?{questions:r}:null}function Wi(e){return!Xi(e)||!Array.isArray(e.questions)||e.questions.length>3?null:Ui({questions:e.questions.map(e=>Xi(e)?{id:e.id,header:e.header,question:e.question,choices:e.options,allowCustom:e.isOther===!0,isSecret:e.isSecret===!0}:e)},1)}function Gi(e){return{contentItems:[{type:`input_text`,text:JSON.stringify({answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,e.answer]))})}],success:!0}}function Ki(e,t){if(!Xi(e)||!Array.isArray(e.choices)||e.choices.length<t||e.choices.length>5||!Ji(e.id)||!Yi(e.header,120)||!Yi(e.question,600)||typeof e.allowCustom!=`boolean`)return null;let n=e.choices.map(qi);return n.some(e=>e===null)?null:{id:e.id,header:e.header,question:e.question,choices:n,allowCustom:e.allowCustom,isSecret:e.isSecret===!0}}function qi(e){return!Xi(e)||!Yi(e.label,160)||!Yi(e.description,600)?null:{label:e.label,description:e.description}}function Ji(e){return typeof e==`string`&&/^[A-Za-z][A-Za-z0-9_-]{0,63}$/.test(e)}function Yi(e,t){return typeof e==`string`&&e.trim().length>0&&e.length<=t}function Xi(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Zi=J(`<p>Codex sent an invalid quiz request.</p>`),Qi=J(`<p>Grant the requested permissions for this turn only.</p><button type="button">Approve</button>`,1),$i=J(`<pre class="command-approval-command svelte-ajsqcq"><code> </code></pre>`),ea=J(`<p class="command-approval-missing svelte-ajsqcq">Command details were not provided.</p>`),ta=J(`<p>Approve this command?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),na=J(`<li><code> </code></li>`),ra=J(`<ul class="file-change-approval-targets svelte-ajsqcq" aria-label="Files to change"></ul>`),ia=J(`<p class="file-change-approval-missing svelte-ajsqcq">File details were not provided.</p>`),aa=J(`<p>Approve changes to these files?</p> <!> <div class="approval-actions svelte-ajsqcq"><button type="button">Approve</button> <button type="button">Deny</button></div>`,1),oa=J(`<button type="button">Approve</button><button type="button">Deny</button>`,1),sa=J(`<article><p> </p> <!></article>`),ca=J(`<section aria-labelledby="interactions-title"><h3 id="interactions-title">Codex needs your decision</h3> <!></section>`);function la(e,t){ze(t,!0);let n=e=>Object.fromEntries(Object.entries(t.answers).filter(([t])=>t.startsWith(`${e}:`)).map(([t,n])=>[t.slice(e.length+1),n]));var r=Dr(),i=V(r),a=e=>{var r=ca();Q(H(B(r),2),17,()=>t.interactions,e=>e.requestId,(e,r)=>{var i=sa(),a=B(i),o=B(a,!0);P(a);var s=H(a,2),c=e=>{let i=F(()=>K(r).kind===`quiz`?Ui(K(r).payload):Wi(K(r).payload));var a=Dr(),o=V(a),s=e=>{{let a=F(()=>n(K(r).requestId));Hi(e,{get requestId(){return K(r).requestId},get quiz(){return K(i)},get answers(){return K(a)},onanswer:(e,n)=>t.onanswer(K(r).requestId,e,n),onsubmit:()=>t.onquiz(K(r))})}},c=e=>{Y(e,Zi())};Z(o,e=>{K(i)?e(s):e(c,-1)}),Y(e,a)},l=e=>{var n=Qi();q(`click`,H(V(n)),()=>t.onpermission(K(r))),Y(e,n)},u=e=>{let n=F(()=>Pi(K(r).payload));var i=ta(),a=H(V(i),2),o=e=>{var t=$i(),r=B(t),i=B(r,!0);P(r),P(t),U(()=>X(i,K(n))),Y(e,t)},s=e=>{Y(e,ea())};Z(a,e=>{K(n)?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(r).requestId,`accept`)),q(`click`,u,()=>t.ondecision(K(r).requestId,`decline`)),Y(e,i)},d=e=>{let n=F(()=>Fi(K(r).payload));var i=aa(),a=H(V(i),2),o=e=>{var t=ra();Q(t,20,()=>K(n),e=>e,(e,t)=>{var n=na(),r=B(n),i=B(r,!0);P(r),P(n),U(()=>X(i,t)),Y(e,n)}),P(t),Y(e,t)},s=e=>{Y(e,ia())};Z(a,e=>{K(n)?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(r).requestId,`accept`)),q(`click`,u,()=>t.ondecision(K(r).requestId,`decline`)),Y(e,i)},f=e=>{var n=oa(),i=V(n),a=H(i);q(`click`,i,()=>t.ondecision(K(r).requestId,`accept`)),q(`click`,a,()=>t.ondecision(K(r).requestId,`decline`)),Y(e,n)};Z(s,e=>{K(r).kind===`userInput`||K(r).kind===`quiz`?e(c):K(r).kind===`permissionsApproval`?e(l,1):K(r).kind===`commandApproval`?e(u,2):K(r).kind===`fileChangeApproval`?e(d,3):e(f,-1)}),P(i),U(()=>X(o,K(r).kind)),Y(e,i)}),P(r),Y(e,r)};Z(i,e=>{t.interactions.length&&e(a)}),Y(e,r),Be()}yr([`click`]);var ua=[{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 da(e){let t=e.match(/^\/([^\s]*)$/);return t?t[1].toLowerCase():null}function fa(e){let t=da(e);return t===null?[]:ua.filter(e=>e.name.startsWith(t))}function pa(e){let t=e.match(/^\/([^\s]+)\s*$/)?.[1]?.toLowerCase();return ua.find(e=>e.name===t)?.argumentPicker}function ma(e){return[...e].sort((e,t)=>ha(t,e)||t.localeCompare(e))}function ha(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 ga(e){return e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.isComposing}var _a=J(`Ready <span class="block-cursor svelte-1264sfg" aria-hidden="true"></span>`,1),va=J(`<li><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code> <small class="svelte-1264sfg"> </small></button></li>`),ya=J(`<ul id="chat-command-completion" class="command-menu svelte-1264sfg" aria-label="Chat commands"></ul>`),ba=J(`<li class="svelte-1264sfg"><button type="button" class="svelte-1264sfg"><code class="svelte-1264sfg"> </code></button></li>`),xa=J(`<ul class="command-menu svelte-1264sfg" aria-label="Available models"></ul>`),Sa=J(`<ul class="command-menu svelte-1264sfg" aria-label="Reasoning efforts"></ul>`),Ca=J(`<button type="button" class="svelte-1264sfg">Interrupt</button>`),wa=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 Ta(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(()=>fa(t.message)),c=F(()=>da(t.message)),l=F(()=>K(c)!==null&&K(c)!==K(o)&&K(s).length>0),u=F(()=>pa(t.message)),d=F(()=>K(u)===`models`),f=F(()=>ma(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`||ga(e)){e.preventDefault(),h();return}}!ga(e)||t.activeTurnId||t.starting||!t.message.trim()||(e.preventDefault(),t.onsend())}var _=wa(),v=B(_),y=B(v),b=e=>{var t=_a();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),C=e=>{var t=ya();Q(t,23,()=>K(s),e=>e.name,(e,t,n)=>{var r=va(),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(C)});var w=H(S,2),T=e=>{var t=xa();Q(t,20,()=>K(f),e=>e,(e,t)=>{var n=ba(),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(w,e=>{K(d)&&e(T)});var E=H(w,2),D=e=>{var t=Sa();Q(t,20,()=>[`low`,`medium`,`high`],e=>e,(e,t)=>{var n=ba(),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(E,e=>{K(p)&&e(D)});var ee=H(E,2),O=B(ee);ln(O);var te=H(O,2);P(ee);var k=H(ee,2),ne=e=>{var n=Ca();q(`click`,n,function(...e){t.oninterrupt?.apply(this,e)}),Y(e,n)};Z(k,e=>{t.activeTurnId&&e(ne)}),P(_),U(e=>{$(v,`aria-label`,t.status),li(O,t.message),te.disabled=e},[()=>!!t.activeTurnId||t.starting||!t.message.trim()]),vr(`submit`,_,e=>{e.preventDefault(),t.onsend()}),q(`input`,O,e=>m(e.currentTarget.value)),q(`keydown`,O,g),Y(e,_),Be()}yr([`click`,`input`,`keydown`]);function Ea(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 Oa(e){return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}).format(e)}function ka(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(...Aa(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(...Aa(i)),t}function Aa(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:Na(i)})};for(let e=0;e<n.length-1;e+=1){let a=ja(n[e]??``),o=ja(n[e+1]??``);if(!a||!o||a.length!==o.length||!o.every(Ma))continue;i(e),e+=2;let s=[];for(;e<n.length;){let t=ja(n[e]??``);if(!t||t.length!==a.length)break;s.push(t),e+=1}t.push({kind:`table`,headers:a.map(Na),rows:s.map(e=>e.map(Na))}),r=e,--e}return i(n.length),t.length?t:[{kind:`text`,parts:Na(e)}]}function ja(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 Ma(e){return/^:?-{3,}:?$/.test(e)}function Na(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 Pa=(e,t=d)=>{var n=Dr();Q(V(n),17,t,Nr,(e,t)=>{var n=Dr(),r=V(n),i=e=>{var n=Ia(),r=B(n,!0);P(n),U(()=>{$(n,`href`,K(t).href),X(r,K(t).text)}),Y(e,n)},a=e=>{var n=La(),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)},Fa=(e,t=d)=>{var n=Dr();Q(V(n),17,()=>ka(t()),Nr,(e,t)=>{var n=Dr(),r=V(n),i=e=>{var n=Ra(),r=B(n),i=B(r,!0);P(r),P(n),U(()=>X(i,K(t).text)),Y(e,n)},a=e=>{var n=Ha(),r=B(n),i=B(r),a=B(i);Q(a,21,()=>K(t).headers,Nr,(e,t)=>{var n=za();Pa(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=Va();Q(n,21,()=>K(t),Nr,(e,t)=>{var n=Ba();Pa(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=Ua();Pa(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)},Ia=J(`<a target="_blank" rel="noreferrer"> </a>`),La=J(`<code class="svelte-1im954t"> </code>`),Ra=J(`<pre class="svelte-1im954t"><code class="svelte-1im954t"> </code></pre>`),za=J(`<th scope="col" class="svelte-1im954t"><!></th>`),Ba=J(`<td class="svelte-1im954t"><!></td>`),Va=J(`<tr></tr>`),Ha=J(`<div class="table-scroll svelte-1im954t"><table class="svelte-1im954t"><thead><tr></tr></thead><tbody></tbody></table></div>`),Ua=J(`<div><!></div>`),Wa=J(`<time class="svelte-1im954t"> <!></time>`),Ga=J(`<div class="entry-heading svelte-1im954t"><strong>prompt</strong> <!></div> <div class="entry-content svelte-1im954t"><!></div>`,1),Ka=J(`<button class="commentary-toggle svelte-1im954t" type="button"><span aria-hidden="true"> </span>commentary</button>`),qa=J(`<div class="commentary-content svelte-1im954t"><!></div>`),Ja=J(`<section class="answer-turn"><div class="entry-heading svelte-1im954t"><strong>answer</strong> <!> <!> <!></div> <!> <div class="entry-content svelte-1im954t"><!></div></section>`),Ya=J(`<section class="commentary-turn"><div class="entry-heading svelte-1im954t"><details><summary>commentary</summary> <!></details> <!></div></section>`),Xa=J(`<li><!></li>`),Za=J(`<ol aria-label="Chat messages" class="svelte-1im954t"></ol>`);function Qa(e,t){ze(t,!0);let n=F(()=>Ea(t.messages)),r=z({}),i=F(()=>K(n).findLast(e=>e.kind===`assistant`&&e.answer)?.id);var a=Za();Q(a,23,()=>K(n),e=>e.id,(e,a,o)=>{var s=Xa(),c=B(s),l=e=>{var t=Ga(),r=V(t),i=H(B(r),2),s=e=>{var t=Wa(),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(),()=>Oa(K(a).occurredAt)]),Y(e,t)};Z(i,e=>{K(a).occurredAt&&e(s)}),P(r);var c=H(r,2);Fa(B(c),()=>K(a).text),P(c),Y(e,t)},u=e=>{var s=Ja(),c=B(s),l=H(B(c),2),u=e=>{var t=Ka(),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=>{Ni(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=Wa(),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(),()=>Oa(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=qa();Fa(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);Fa(B(_),()=>K(a).answer),P(_),P(s),Y(e,s)},d=e=>{var n=Ya(),r=B(n),i=B(r);Fa(H(B(i),2),()=>K(a).commentary),P(i),Ni(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 $a=[150,300,600];function eo(e){return new Promise(t=>setTimeout(t,e))}function to(e){return e.status===502||e.status===503||e.status===504}async function no(e=fetch){for(let t=0;t<=$a.length;t+=1){let n;try{n=await e(`/api/bootstrap`)}catch(e){if(e instanceof Error&&e.name===`AbortError`)throw e;if(t===$a.length)throw Error(`BOOTSTRAP_FAILED`);await eo($a[t]);continue}if(n.ok)return n.json();if(!to(n)||t===$a.length)throw Error(`BOOTSTRAP_FAILED`);await eo($a[t])}throw Error(`BOOTSTRAP_FAILED`)}function ro(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 io=`gestalt-mobile`,ao=2,oo=[`settings`,`drafts`,`cursors`,`messages`];function so(e){return new Promise((t,n)=>{let r=e.open(io,ao);r.onupgradeneeded=()=>{for(let e of oo)r.result.objectStoreNames.contains(e)||r.result.createObjectStore(e)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function co(e,t,n){return fo(e.transaction(t,`readonly`).objectStore(t).get(n))}function lo(e,t,n,r){return fo(e.transaction(t,`readwrite`).objectStore(t).put(r,n))}function uo(e,t,n){return fo(e.transaction(t,`readwrite`).objectStore(t).delete(n))}function fo(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}var po=`messages`;function mo(e){return e.slice(-200)}function ho(e=globalThis.indexedDB){if(!e)return{read:async()=>[],write:async()=>{}};let t=so(e);return{async read(e){try{return await co(await t,po,e)??[]}catch{return[]}},async write(e,n){try{await lo(await t,po,e,mo(n))}catch{}}}}var go={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 _o(e,t){let n=e instanceof Error?e.message:``,r=Object.hasOwn(go,n)?n:t;return{code:r,message:go[r]}}var vo={error:null,success:5e3,info:7e3};function yo(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=vo[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 bo=J(`<small class="svelte-1a0rutm"> </small>`),xo=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>`),So=J(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function Co(e,t){ze(t,!0);let n=L([]),r=F(()=>K(n).slice(-3));bi(()=>t.queue.subscribe(e=>R(n,e)));var i=So();Q(i,21,()=>K(r),e=>e.id,(e,n)=>{var r=xo();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=bo(),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 wo=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 To(e,t){ze(t,!0);let n=yo();bi(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=wo();Co(H(V(r),4),{get queue(){return n}}),Y(e,r),Be()}var Eo={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function Do(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 Oo(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function ko(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 Ao(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 jo(e,t){for(let n of e){if(n.id===t)return n;let e=jo(n.children,t);if(e)return e}}function Mo(e,t,n,r){if(e){let i=jo(n,e);if(i&&r(i))return i.id;let a=Ao(t,e);for(let e of a.toReversed()){let t=jo(n,e);if(t&&r(t))return t.id}}return No(n).find(r)?.id??null}function No(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var Po=J(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),Fo=J(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),Io=J(`<span class="repository-badge svelte-6z3q4v">Git</span>`),Lo=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>`),Ro=J(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function zo(e,t){ze(t,!0);let n=yi(t,`isSelectable`,3,()=>!0),r=L(null),i=z({}),a=F(()=>ko(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(Oo(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=Ro();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=Lo();let g;var _=B(h),v=e=>{var n=Po(),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,Fo())};Z(_,e=>{K(m)?e(v):e(y,-1)});var b=H(_,2);let x;var S=B(b),C=B(S,!0);P(S);var w=H(S,2),T=B(w),E=B(T,!0);P(T);var D=H(T,2),ee=B(D,!0);P(D),P(w);var O=H(w,2),te=e=>{Y(e,Io())};Z(O,e=>{K(u).isGitRepository&&e(te)}),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(C,t.selectedId===K(u).id?`✓`:``),X(E,K(u).name),X(ee,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 Bo=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 Vo(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=Bo(),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`?Eo.sessionBase:Eo.gitRepositoryTarget);zo(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 Ho(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 Uo(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 Wo=J(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),Go=J(`<option> </option>`),Ko=J(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),qo=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>`),Jo=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>`),Yo=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),Xo=J(`<p>This workspace is not a Git repository.</p>`),Zo=J(`<p role="status">Loading repository status…</p>`),Qo=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),$o=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),es=J(`<p role="alert"> </p>`),ts=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 ns(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=ts(),o=H(B(a),2),s=H(B(o),2);{let e=F(()=>t.selectedWorkspace?.id??null);zo(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=Wo(),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=Yo(),r=V(n),i=B(r),a=H(B(i),2);Q(a,20,()=>t.summary.branches??[],e=>e,(e,t)=>{var n=Go(),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=Ko(),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),C=e=>{var n=Jo(),r=H(B(n),2);Q(r,21,()=>t.summary.commits,e=>e.hash,(e,t)=>{var n=qo(),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)},[()=>Uo(K(t).authoredAt)]),Y(e,n)}),P(r),P(n),Y(e,n)};Z(S,e=>{t.summary.commits.length&&e(C)}),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`}`)},[()=>Ho(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,Xo())};Z(r,e=>{t.summary.available?e(i):e(a,-1)}),Y(e,n)},a=e=>{Y(e,Zo())};Z(r,e=>{t.summary?e(i):t.error||e(a,1)}),Y(e,n)},S=e=>{var n=Qo(),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)},C=e=>{var t=$o();je(2),Y(e,t)};Z(b,e=>{t.selectedWorkspace?.isGitRepository?e(x):t.selectedWorkspace?e(S,1):e(C,-1)});var w=H(b,2),T=e=>{var n=es(),r=B(n,!0);P(n),U(()=>X(r,t.error)),Y(e,n)};Z(w,e=>{t.error&&e(T)}),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 rs(e,t,n,r,i){let a=new Set(is(e).filter(e=>e.isGitRepository).map(e=>e.id)),o=jo(t,n),s=o?is(o.children).filter(e=>e.isGitRepository&&!a.has(e.id)):[],c=as(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&&Ao(t,u).forEach(e=>d.add(e)),!l&&o&&d.add(o.id),{selectedId:u,expandedIds:d}}function is(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}function as(e){return(e.trim().replace(/[?#].*$/,``).replace(/\/+$/,``).split(/[/:]/).at(-1)??``).replace(/\.git$/i,``)}function os(e,t,n,r){return[...e,{id:t,role:`user`,text:n,...r?{occurredAt:r}:{},complete:!0}]}function ss(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 cs(e,t){return e.map(e=>e.id===t?{...e,complete:!0}:e)}function ls(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 us(e){return{answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,{answers:[e.answer]}]))}}function ds(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 fs(e,t=globalThis.navigator?.clipboard,n=ms){if(!t)return ps(e,n);try{return await t.writeText(e),!0}catch{return ps(e,n)}}function ps(e,t){try{return t(e)}catch{return!1}}function ms(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 hs(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 gs(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 _s(e){if(!e||typeof e!=`object`)return!1;let t=e;return ys(t.plan)&&(t.reason===null||vs(t.reason))}function vs(e){return e===`authoring-start`||e===`work-start`||e===`checkpoint`||e===`update`}function ys(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 bs(e){return e instanceof Error?e.message:`Could not load the plan.`}function xs(e){return{...e,...e.skills?{skills:[...e.skills]}:{},description:{...e.description},children:e.children.map(xs)}}function Ss(e){return{...e,steps:e.steps.map(xs)}}function Cs(e,t){return e.kind===`unavailable`&&e.sessionId===t}function ws(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:Ss(e)}:{kind:`unavailable`,sessionId:t})}).catch(e=>{o?.signal.aborted||a!==i||n!==t||c({kind:`error`,sessionId:t,error:bs(e),...r?{plan:r}:{}})})};return{select(e){if(o?.abort(),n=e,s=0,!e){++i,c({kind:`unavailable`,sessionId:null});return}l(e,void 0)},refresh(e){if(n!==e)return;let t=r.kind===`ready`||r.kind===`closing`||r.kind===`error`?r.plan:void 0;l(e,t)},applyEvent(e,t){if(!(n!==e||t.sequence<=s)){if(t.type===`plan.updated`&&(ys(t.payload)||_s(t.payload))){let n=_s(t.payload)?t.payload.plan:t.payload;s=t.sequence,c({kind:`ready`,sessionId:e,plan:Ss(n)})}t.type===`plan.closed`&&(s=t.sequence,c({kind:`unavailable`,sessionId:e}))}},async close(){if(r.kind!==`ready`&&r.kind!==`error`||!r.plan?.allDone)return null;let{sessionId:t,plan:i}=r;c({kind:`closing`,sessionId:t,plan:i});let o=a;try{return await e.closePlan(t),n===t?a===o?(c({kind:`unavailable`,sessionId:t}),`chat`):Cs(r,t)?`chat`:null:null}catch(e){return n===t?a===o?(c({kind:`error`,sessionId:t,plan:i,error:bs(e)}),null):Cs(r,t)?`chat`:null:null}},dispose(){o?.abort(),o=null,n=null,++i,c({kind:`unavailable`,sessionId:null})}}}function Ts(e){if(!e)return null;let t=Es(e.steps,e.currentStepId)?.measurement?.weeklyRemainingCurrent;return typeof t==`number`&&Number.isFinite(t)&&t>=0&&t<=100?Math.round(100-t):null}function Es(e,t){for(let n of e){if(n.id===t)return n;let e=Es(n.children,t);if(e)return e}}var Ds=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>`),Os=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>`),ks=J(`<section aria-labelledby="plan-title" class="svelte-3rmyvg"><h2 id="plan-title" class="svelte-3rmyvg">Plan</h2><p class="svelte-3rmyvg"> </p></section>`),As=J(`<button class="close svelte-3rmyvg" aria-label="Close completed plan">×</button>`),js=J(`<p class="svelte-3rmyvg">Closing completed plan…</p>`),Ms=J(`<p class="svelte-3rmyvg"> </p>`),Ns=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>`),Fs=J(`<div class="svelte-3rmyvg"><dt class="svelte-3rmyvg">Keywords</dt><dd class="svelte-3rmyvg"> </dd></div>`),Is=J(`<dl class="metadata svelte-3rmyvg"><!> <!> <!></dl>`),Ls=J(`<p class="svelte-3rmyvg">No plan steps have been retained yet.</p>`),Rs=J(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg"> </strong> </p>`),zs=J(`<p class="svelte-3rmyvg"><strong class="svelte-3rmyvg">Skills:</strong> </p>`),Bs=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>`),Vs=J(`<ol class="svelte-3rmyvg"></ol>`),Hs=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> <span class="measurement svelte-3rmyvg"> </span></summary> <!> <!> <!></details></li>`),Us=J(`<ol class="plan-steps svelte-3rmyvg"></ol>`),Ws=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>`),Gs=J(`<p class="visually-hidden svelte-3rmyvg" aria-live="polite" aria-atomic="true"> </p> <!>`,1);function Ks(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){let t=e.measurement;if(!t)return`Measurements unavailable`;let n=[];return t.elapsedSeconds!==void 0&&n.push(`${Math.floor(t.elapsedSeconds/60)}m ${t.elapsedSeconds%60}s elapsed`),t.weeklyPercentUsed!==void 0&&n.push(`${t.weeklyPercentUsed}% observed account-wide usage`),t.tokensUsed!==void 0&&n.push(`${t.tokensUsed.toLocaleString()} tokens used`),n.join(` · `)||`Measurements unavailable`}function v(e){return Object.keys(n).flatMap(t=>{let r=e.description[t];return r?[[n[t],r]]:[]})}function y(e){return Math.max(e.totalSteps,1)}var b=Gs(),x=V(b),S=B(x,!0);P(x);var C=H(x,2),w=e=>{Y(e,Ds())},T=e=>{Y(e,Os())},E=e=>{var n=ks(),r=H(B(n)),i=B(r,!0);P(r),P(n),U(()=>X(i,t.state.error)),Y(e,n)},D=e=>{var n=Ws(),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),b=e=>{var n=As();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(b)}),P(r);var x=H(r,2),S=B(x);P(x);var C=H(x,2),w=B(C);P(C);var T=H(C,2),E=e=>{Y(e,js())},D=e=>{var n=Ms(),r=B(n,!0);P(n),U(()=>X(r,t.state.error)),Y(e,n)};Z(T,e=>{t.state.kind===`closing`?e(E):t.state.kind===`error`&&e(D,1)});var ee=H(T,2),O=e=>{var t=Is(),n=B(t),r=e=>{var t=Ns(),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=Fs(),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(ee,e=>{(K(s).subtitle||K(s).date||K(s).keywords)&&e(O)});var te=H(ee,2),k=e=>{Y(e,Ls())},ne=e=>{var t=Us();Q(t,21,()=>K(s).steps,e=>e.id,(e,t)=>{var n=Hs(),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);var f=H(u,2),y=B(f,!0);P(f),P(a);var b=H(a,2);Q(b,17,()=>v(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=Rs(),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 x=H(b,2),S=e=>{var n=zs(),r=H(B(n));P(n),U(e=>X(r,` ${e??``}`),[()=>K(t).skills.join(`, `)]),Y(e,n)};Z(x,e=>{K(t).skills?.length&&e(S)});var C=H(x,2),w=e=>{var n=Vs();Q(n,21,()=>K(t).children,e=>e.id,(e,t)=>{var n=Bs(),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,()=>v(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=Rs(),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 _=H(f,2),y=e=>{var n=zs(),r=H(B(n));P(n),U(e=>X(r,` ${e??``}`),[()=>K(t).skills.join(`, `)]),Y(e,n)};Z(_,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(C,e=>{K(t).children.length&&e(w)}),P(r),vi(r,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(t)]),P(n),U((e,n,i)=>{$(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),X(y,i)},[()=>p(K(t).id),()=>g(K(t)),()=>_(K(t))]),vr(`toggle`,r,e=>h(K(t).id,e.currentTarget.open)),Y(e,n)}),P(t),Y(e,t)};Z(te,e=>{K(s).steps.length===0?e(k):e(ne,-1)}),P(n),U(e=>{X(l,K(s).title),X(d,`${K(s).doneSteps??``} / ${K(s).totalSteps??``} complete`),li(x,K(s).doneSteps),$(x,`max`,e),X(S,`${K(s).doneSteps??``} of ${K(s).totalSteps??``} complete`),X(w,`Current: ${K(c)?`${K(c).title} (${K(c).state})`:`No current step`}`)},[()=>y(K(s))]),Y(e,n)};Z(C,e=>{t.state.kind===`loading`?e(w):t.state.kind===`unavailable`?e(T,1):t.state.kind===`error`&&!K(s)?e(E,2):K(s)&&e(D,3)}),U(()=>X(S,K(u))),Y(e,b),Be()}yr([`click`]);function qs(e){return e?`Codex is working…`:`Ready.`}function Js(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 Ys=`settings`,Xs=`drafts`,Zs=`cursors`,Qs=`selected-session`;function $s(e=globalThis.indexedDB){if(!e)return ec;let t=so(e);return{async readSelectedSession(){try{return await co(await t,Ys,Qs)??null}catch{return null}},async saveSelectedSession(e){try{let n=await t;e?await lo(n,Ys,Qs,e):await uo(n,Ys,Qs)}catch{}},async readDraft(e){try{return await co(await t,Xs,e)??``}catch{return``}},async saveDraft(e,n){try{await lo(await t,Xs,e,n)}catch{}},async readCursor(e){try{let n=await co(await t,Zs,e);return typeof n==`number`&&Number.isSafeInteger(n)&&n>=0?n:0}catch{return 0}},async saveCursor(e,n){try{await lo(await t,Zs,e,n)}catch{}}}}var ec={readSelectedSession:async()=>null,saveSelectedSession:async()=>{},readDraft:async()=>``,saveDraft:async()=>{},readCursor:async()=>0,saveCursor:async()=>{}};function tc(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 nc(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 rc(e,t){if(!t?.threadId||!t.workspacePath||!t.resumeCommand||e.some(e=>e.id===t.threadId))return e;let n=t.updatedAt?Date.parse(t.updatedAt)/1e3:NaN,r={id:t.threadId,cwd:t.workspacePath,recencyAt:Number.isFinite(n)?n:null,resumeCommand:t.resumeCommand,...t.model===void 0?{}:{model:t.model},...t.effectiveSkillSelection?.selectedProfileName===void 0?{}:{skillProfile:t.effectiveSkillSelection.selectedProfileName},...t.lastOrgPlan===void 0?{}:{orgPlanFilename:t.lastOrgPlan.filename}};return[...e,r].sort((e,t)=>(t.recencyAt??-1/0)-(e.recencyAt??-1/0))}function ic(e){let t=/^\/home\/[^/]+/.exec(e)?.[0];if(!t)return e;let n=e.slice(t.length);return n?`~${n}`:`~/`}var ac=J(`<time> </time>`),oc=J(`<div> </div>`),sc=J(`<span class="profile-badge svelte-hxb22h"> </span>`),cc=J(`<span class="org-plan-metadata svelte-hxb22h"><span class="org-plan-title svelte-hxb22h"> </span> <span class="org-plan-filename svelte-hxb22h"> </span></span>`),lc=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>`),uc=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>`),dc=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>`),fc=J(`<ul class="session-list svelte-hxb22h" aria-label="Saved sessions"></ul>`),pc=J(`<p>No saved sessions yet.</p>`),mc=J(`<option> </option>`),hc=J(`<p class="skills-profile-error svelte-hxb22h" role="alert"> </p>`),gc=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>`),_c=J(`<ul class="session-list recent-session-list svelte-hxb22h" aria-label="Recent sessions"></ul>`),vc=J(`<p>No other recent Codex sessions found.</p>`),yc=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" aria-describedby="approval-policy-help" class="svelte-hxb22h"><option>Ask on all commands</option><option>Ask out of workspace</option><option>Approve everything</option></select></div> <p id="approval-policy-help">This controls when Codex asks; it does not expand the sandbox's technical permissions.</p> <!> <div class="session-secondary-actions svelte-hxb22h"><button id="manage-skill-profiles" type="button">Manage skill profiles</button> <div class="model-control svelte-hxb22h"><label for="model">Model</label> <select id="model"></select></div> <button class="new-session-button svelte-hxb22h" type="submit"> </button></div></section></form> <section aria-labelledby="recent-sessions-title"><h3 id="recent-sessions-title">Recent sessions</h3> <!></section></section>`);function bc(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(()=>jo(t.workspaceTree,t.workspaceId));var l=yc(),u=H(B(l),2),d=e=>{var n=uc(),r=H(B(n),2);Q(r,21,()=>K(a),e=>e.id,(e,n)=>{let r=F(()=>nc(K(n)));var i=lc();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=ac(),n=B(t,!0);P(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>tc(K(r).updatedAt)]),Y(e,t)},f=e=>{var t=oc(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>tc(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=sc(),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=sc(),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=sc(),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)});var x=H(y,2),S=e=>{var t=cc(),r=B(t),i=B(r,!0);P(r);var a=H(r,2),o=B(a,!0);P(a),P(t),U(()=>{X(i,K(n).lastOrgPlan.title),X(o,K(n).lastOrgPlan.filename)}),Y(e,t)};Z(x,e=>{K(n).lastOrgPlan&&e(S)}),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)},[()=>ic(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=fc();Q(n,21,()=>K(o),e=>e.id,(e,n)=>{let r=F(()=>nc(K(n)));var i=dc(),a=B(i),o=B(a),s=H(o,2);P(a);var c=H(a,2),l=B(c),u=e=>{var t=ac(),n=B(t,!0);P(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>tc(K(r).updatedAt)]),Y(e,t)},d=e=>{var t=oc(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>tc(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=sc(),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=sc(),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=sc(),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),[()=>ic(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,pc())};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);zo(v,{get roots(){return t.workspaceTree},get expandedIds(){return t.expandedIds},get selectedId(){return K(e)},get isSelectable(){return Eo.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=mc(),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 C;ti(x);var w=H(x,2),T=B(w);T.value=T.__value=`workspace-write`;var E=H(T);E.value=E.__value=`read-only`;var D=H(E);D.value=D.__value=`danger-full-access`,P(w);var ee;ti(w);var O=H(w,2),te=B(O);te.value=te.__value=`untrusted`;var k=H(te);k.value=k.__value=`on-request`;var ne=H(k);ne.value=ne.__value=`never`,P(O);var re;ti(O),P(b);var ie=H(b,4),ae=e=>{var n=hc(),r=B(n,!0);P(n),U(()=>X(r,t.skillProfileError)),Y(e,n)};Z(ie,e=>{t.skillProfileError&&e(ae)});var oe=H(ie,2),se=B(oe),ce=H(se,2),le=H(B(ce),2);Q(le,20,n,e=>e,(e,t)=>{var n=mc(),r=B(n,!0);P(n);var i={};U(()=>{X(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),Y(e,n)}),P(le);var ue;ti(le),P(ce);var de=H(ce,2),fe=B(de,!0);P(de),P(oe),P(y),P(h);var pe=H(h,2),me=H(B(pe),2),he=e=>{var n=_c();Q(n,21,()=>K(s),e=>e.id,(e,n)=>{var r=gc(),i=B(r),a=B(i),o=e=>{var t=ac(),r=B(t,!0);P(t),U((e,n)=>{$(t,`datetime`,e),X(r,n)},[()=>new Date(K(n).recencyAt*1e3).toISOString(),()=>tc(K(n).recencyAt*1e3)]),Y(e,t)},s=e=>{var t=oc(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>tc(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);var u=H(c,2),d=e=>{var t=sc(),r=B(t);P(t),U(()=>X(r,`Model: ${K(n).model??``}`)),Y(e,t)};Z(u,e=>{K(n).model&&e(d)});var f=H(u,2),p=e=>{var t=sc(),r=B(t);P(t),U(()=>X(r,`Skills profile: ${K(n).skillProfile??``}`)),Y(e,t)};Z(f,e=>{K(n).skillProfile&&e(p)});var m=H(f,2),h=e=>{var t=sc(),r=B(t);P(t),U(()=>X(r,`Org plan: ${K(n).orgPlanFilename??``}`)),Y(e,t)};Z(m,e=>{K(n).orgPlanFilename&&e(h)}),P(i);var g=H(i,2),_=B(g),v=H(_,2);P(g),P(r),U(e=>X(l,e),[()=>ic(K(n).cwd)]),q(`click`,_,()=>t.onopenrecent(K(n))),q(`click`,v,()=>t.oncopyresume(K(n).resumeCommand)),Y(e,r)}),P(n),Y(e,n)},ge=e=>{Y(e,vc())};Z(me,e=>{K(s).length?e(he):e(ge,-1)}),P(pe),P(l),U(()=>{C!==(C=t.selectedSkillProfile)&&(x.value=(x.__value=t.selectedSkillProfile)??``,ei(x,t.selectedSkillProfile)),ee!==(ee=t.sandbox)&&(w.value=(w.__value=t.sandbox)??``,ei(w,t.sandbox)),re!==(re=t.approvalPolicy)&&(O.value=(O.__value=t.approvalPolicy)??``,ei(O,t.approvalPolicy)),le.disabled=n().length===0,ue!==(ue=r())&&(le.value=(le.__value=r())??``,ei(le,r())),de.disabled=!K(c)||t.startingSession,X(fe,t.startingSession?`Creating…`:`Create session`)}),vr(`submit`,h,e=>{e.preventDefault(),t.onstart()}),q(`change`,x,e=>t.onskillprofilechange(e.currentTarget.value)),q(`change`,w,e=>t.onsandboxchange(e.currentTarget.value)),q(`change`,O,e=>t.onapprovalpolicychange(e.currentTarget.value)),q(`click`,se,e=>t.onmanageprofiles(e.currentTarget)),q(`change`,le,e=>i()(e.currentTarget.value)),Y(e,l),Be()}yr([`click`,`change`]);function xc(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 Sc({chatEnabled:e,planEnabled:t}){return[`sessions`,`git`,...e?[`chat`]:[],...e&&t?[`plan`]:[]]}function Cc(e,t,n={chatEnabled:!0,planEnabled:!1}){let r=Sc(n);return r[(r.indexOf(e)+t+r.length)%r.length]}var wc=J(`<button>Plan</button>`),Tc=J(`<nav class="bottom-navigation" aria-label="Primary"><button>Sess<wbr/>ions</button> <button>Git</button> <button>Chat</button> <!></nav>`);function Ec(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=Cc(t.activeTab,r,{chatEnabled:t.chatEnabled,planEnabled:n()});t.onselect(a),i[a]?.focus()}var o=Tc(),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=wc();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 Dc=J(`<option> </option>`),Oc=J(`<p id="skills-status" aria-live="polite">Loading skills…</p>`),kc=J(`<p id="skills-status">No skills were discovered for this workspace and Codex profile.</p>`),Ac=J(`<p id="skills-status" class="notice svelte-dg6sjj" role="status"> </p>`),jc=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert"> </p>`),Mc=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert" tabindex="-1"> </p>`),Nc=J(`<p id="skills-status" role="status">Profile saved.</p>`),Pc=J(`<p id="skills-status" role="status">Profile deleted.</p>`),Fc=J(`<p class="svelte-dg6sjj"> </p>`),Ic=J(`<li> </li>`),Lc=J(`<dt class="svelte-dg6sjj">Tool dependencies</dt> <dd class="svelte-dg6sjj"><ul class="svelte-dg6sjj"></ul></dd>`,1),Rc=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>`),zc=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),Bc=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=Bc(),C=B(S),w=B(C,!0);P(C);var T=H(C,4),E=B(T),D=H(B(E),2),ee=B(D);ee.value=ee.__value=`__new__`;var O=H(ee);O.value=O.__value=`__default__`,Q(H(O),17,()=>K(d),e=>e.name,(e,t)=>{var n=Dc(),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(D),vi(D,e=>R(o,e),()=>K(o));var te=H(D,4);ci(te),P(E);var k=H(E,2),ne=B(k,!0);P(k);var re=H(k,2),ie=B(re);vi(ie,e=>R(s,e),()=>K(s));var ae=H(ie,2),oe=B(ae,!0);P(ae),P(re),P(T);var se=H(T,2),ce=H(B(se),2),le=B(ce);P(ce);var ue=H(ce,2),de=B(ue),fe=H(de,2);P(ue),P(se),vi(se,e=>R(c,e),()=>K(c));var pe=H(se,2),me=e=>{Y(e,Oc())},he=e=>{Y(e,kc())},ge=e=>{var t=Ac(),n=B(t);P(t),U(()=>X(n,`Discovery warning: ${K(u).status.message??``}`)),Y(e,t)},_e=e=>{var t=jc(),n=B(t,!0);P(t),U(()=>X(n,K(u).status.message)),Y(e,t)},ve=e=>{var t=Mc(),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,Nc())},be=e=>{Y(e,Pc())},xe=e=>{var t=jc(),n=B(t,!0);P(t),U(()=>X(n,K(u).status.message)),Y(e,t)};Z(pe,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(pe,2),Ce=e=>{var t=zc(),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=Rc();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 C=H(v,2),w=e=>{var n=Lc(),r=H(V(n),2),i=B(r);Q(i,21,()=>K(t).dependencies.tools,e=>`${e.type}:${e.value}`,(e,t)=>{var n=Ic(),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(C,e=>{K(t).dependencies?.tools?.length&&e(w)}),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(w,r()),li(te,K(u).saveAsName),X(ne,K(u).saveIntent===`replace`?`Saved the selected profile.`:`Creating a new saved profile.`),ie.disabled=!K(u).selectedProfileName||K(u).status.kind===`deleting`,ae.disabled=K(u).status.kind===`saving`,X(oe,K(u).status.kind===`saving`?`Saving profile…`:`Save profile`),X(le,`Delete ${K(u).selectedProfileName??``}? Existing sessions keep their saved skill set.`)}),vr(`submit`,T,h),q(`change`,D,m),ni(D,()=>K(l),e=>R(l,e)),q(`input`,te,e=>{K(u).saveAsName=e.currentTarget.value,f()}),q(`click`,ie,g),q(`click`,de,()=>void v()),q(`click`,fe,()=>void _()),Y(e,S),Be()}yr([`change`,`input`,`click`]);var Hc=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:Uc(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:Uc(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:Uc(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:Uc(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 Uc(e){return e instanceof Error?e.message:`Unknown relay error.`}var Wc=J(`<main class="evidence-mode svelte-y74n0s"><!></main>`),Gc=J(`<!> <!> <!>`,1),Kc=J(`<p>Start a session from the Sessions tab to chat with Codex.</p>`),qc=J(`<section class="chat-view svelte-y74n0s" aria-labelledby="chat-title"><h2 id="chat-title" class="visually-hidden">Chat</h2> <!></section>`),Jc=J(`<p>Loading skill profiles…</p>`),Yc=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>`),Xc=J(`<main class="swipe-surface svelte-y74n0s"><!> <!> <!></main>`),Zc=J(`<!> <!>`,1);function Qc(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`),C=L(`on-request`),w=L(null),T=L(!1),E=L(``),D=L(null),ee=L(!1),O=L(z([])),te=L(z([])),k=L(0),ne=L(z({kind:`unavailable`,sessionId:null})),re=L(null),ie=L(``),ae=F(()=>(K(ne).kind===`ready`||K(ne).kind===`closing`||K(ne).kind===`error`)&&!!K(ne).plan),oe=F(()=>Ts(K(ne).kind===`ready`||K(ne).kind===`closing`||K(ne).kind===`error`?K(ne).plan:void 0)),se=null,ce=null,le=null,ue=null,de=!1,fe=0,pe=0,me=L(null),he=L(null),ge=L(z(new Set)),_e=L(!1),ve=L(!1),ye=L(!1),be=L(!1),xe=L(null),Se=L(null),Ce=L(null),A=L(null),we=0,Te=L(z([])),Ee=z({}),j=ds(),De=ws({getPlan:j.getPlan,closePlan:j.closePlan},e=>R(ne,e,!0)),M=ho(),Oe=$s(),N=yo(),ke=new URLSearchParams(location.search).get(`tree-evidence`),Ae=new URLSearchParams(location.search).get(`toast-evidence`);bi(async()=>{let e=localStorage.getItem(`gestalt-mobile.theme`);if((e===`light`||e===`dark`||e===`system`)&&je(e),!(ke===`sessions`||ke===`git`||Ae===`error`||Ae===`stacked`)){ue=setInterval(qe,2e3),document.addEventListener(`visibilitychange`,qe),window.addEventListener(`focus`,qe);try{let e=await no();R(g,Mo(K(g)||null,K(a),e.workspaces,Eo.sessionBase)??``,!0),R(a,e.workspaces,!0),R(l,e.profiles),R(s,[...new Set([o,...e.models??[]])]),await rt(),R(_,Do(K(a)),!0),R(ge,Do(K(a)),!0);let t=await Oe.readSelectedSession();R(v,e.sessions.some(e=>e.id===t)?t:e.sessions[0]?.id??null,!0),K(v)&&R(k,await Oe.readCursor(K(v)),!0),K(v)&&R(E,await Oe.readDraft(K(v)),!0),K(v)&&R(O,await M.read(K(v)),!0),R(y,e.sessions,!0),R(Te,K(y).find(e=>e.id===K(v))?.pendingInteractions??[],!0),Pe(),R(D,K(y).find(e=>e.id===K(v))?.activeTurnId??null,!0),R(r,K(v)?qs(K(D)):`Choose a workspace and start a session.`,!0),De.select(K(v)),K(v)&&(await Ke(K(v)),Ct(K(v)))}catch(e){R(r,St(e,`RELAY_UNAVAILABLE`),!0)}}});function je(e){R(i,e,!0),e===`system`?document.documentElement.removeAttribute(`data-theme`):document.documentElement.dataset.theme=e,localStorage.setItem(`gestalt-mobile.theme`,e)}xi(()=>{ce&&clearTimeout(ce),le&&clearTimeout(le),ue&&clearInterval(ue),document.removeEventListener(`visibilitychange`,qe),window.removeEventListener(`focus`,qe),se?.close(),De.dispose()});async function Me(){if(!K(g)||K(T))return;let e=xc({workspaceId:K(g),profile:`default`,profileState:`ok`});if(e.profile){R(r,e.profile,!0);return}R(w,K(w)??hs(),!0),R(T,!0),R(r,`Starting session…`);try{let e=await j.startSession(K(g),{sandbox:K(S),approvalPolicy:K(C),model:K(c),skillProfile:K(p)||void 0},K(w));R(w,null),R(v,e.id,!0),De.select(e.id),R(D,null),Oe.saveSelectedSession(e.id),await Ne(),R(O,[],!0),bt(e.id),R(te,[],!0),R(k,0),R(E,await Oe.readDraft(e.id),!0),Ct(e.id),R(n,`chat`),ot(`chat`),R(r,`Session started.`)}catch(e){R(r,St(e,`SESSION_START_FAILED`),!0)}finally{R(T,!1)}}async function Ne(){R(y,await j.listSessions(),!0)}async function Pe(){try{R(x,await j.listRecentSessions(),!0)}catch{R(x,[],!0)}}async function Fe(){try{await Promise.all([Ne(),Pe()])}catch(e){R(r,St(e,`SESSION_REFRESH_FAILED`),!0)}}async function Ie(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),De.select(e),Oe.saveSelectedSession(e),R(O,await M.read(e),!0),R(te,[],!0),R(k,0),R(E,await Oe.readDraft(e),!0),R(D,K(y).find(t=>t.id===e)?.activeTurnId??null,!0),R(Te,K(y).find(t=>t.id===e)?.pendingInteractions??[],!0),R(n,`chat`),ot(`chat`),await Ke(e),Ct(e)}catch(e){R(r,`Could not open session: ${xt(e)}`)}}async function Le(e){R(r,`Opening recent session…`);try{let t=await j.openRecentSession(e.id,e.cwd);await Fe(),await Ie(t.id)}catch(e){R(r,`Could not open recent session: ${xt(e)}`)}}async function Re(e){R(r,`Closing session…`);try{await j.releaseSession(e),K(v)===e&&(R(v,null),R(n,`sessions`),R(D,null),R(Te,[],!0),Oe.saveSelectedSession(null),ce&&clearTimeout(ce),ce=null,se?.close(),se=null),await Fe(),R(r,`Session closed.`)}catch(e){R(r,`Could not close session: ${xt(e)}`)}}async function Ve(e){let t=K(y).find(t=>t.id===e);try{await j.forgetSession(e),K(v)===e&&(se?.close(),R(v,null),R(D,null),Oe.saveSelectedSession(null)),await Fe(),R(x,rc(K(x),t),!0)}catch(e){R(r,`Could not forget session: ${xt(e)}`)}}async function He(e){R(r,await fs(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function Ue(e){if(!(!K(v)||K(D)))try{let t=await j.selectModel(K(v),e);R(y,K(y).map(e=>e.id===t.id?{...e,...t}:e),!0),R(E,``),R(r,`Model changed to ${e}; it applies to the next turn.`)}catch(e){R(r,`Could not change model: ${xt(e)}`)}}async function We(){if(!K(v)||!K(E).trim()||K(D)||K(ee))return;let e=K(E).trim();R(ee,!0);try{let t=await j.startTurn(K(v),e);R(D,t.activeTurnId??null,!0),R(O,os(K(O),`user-${t.activeTurnId??Date.now().toString()}`,e,Date.now()),!0),bt(K(v)),R(E,``),Oe.saveDraft(K(v),``),R(r,qs(K(D)),!0)}catch(e){R(r,St(e,`MESSAGE_SEND_FAILED`),!0)}finally{R(ee,!1)}}async function Ge(){if(!(!K(v)||!K(D)))try{await j.interruptTurn(K(v),K(D)),R(D,null),R(r,`Codex turn interrupted.`)}catch(e){R(r,`Could not interrupt Codex: ${xt(e)}`)}}async function Ke(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(O).filter(e=>!e.complete);R(O,[...i,...a],!0),bt(e);let o=n.items.flatMap(e=>{let t=ro(e);return t?[t]:[]});R(te,[...o,...K(te).filter(e=>!o.some(t=>t.id===e.id))],!0),`activeTurnId`in n&&(R(D,n.activeTurnId??null,!0),R(y,K(y).map(t=>t.id===e?{...t,activeTurnId:K(D)}:t),!0)),R(k,Math.max(K(k),n.currentSequence??t),!0),Oe.saveCursor(e,K(k)),t&&De.refresh(e),R(r,qs(K(D)),!0)}function qe(){K(n)!==`chat`||!K(v)||document.visibilityState!==`visible`||de||(de=!0,Ke(K(v)).catch(()=>void 0).finally(()=>{de=!1}))}function Je(e,t=!1){if(e===`chat`&&!K(b)||e===`plan`&&!K(ae))return;let r=K(n)!==e;R(n,e,!0),ot(e),e===`chat`&&(qe(),r&&t&<()),e===`git`&&K(he)&&ut(K(he)),e===`sessions`&&(K(d)===`profile-manager`&&at(!1),Fe())}function Ye(e){R(re,e,!0),queueMicrotask(()=>R(re,null))}let Xe=null;function Ze(e){return e instanceof Element&&e.closest(`button, input, textarea, select, a, summary, [contenteditable]`)!==null}function Qe(e){e.pointerType!==`touch`||Ze(e.target)||(Xe={pointerId:e.pointerId,x:e.clientX,y:e.clientY})}function $e(e){if(!Xe||e.pointerId!==Xe.pointerId)return;let t=Xe;Xe=null;let r=e.clientX-t.x,i=e.clientY-t.y;Math.abs(r)<48||Math.abs(r)<=Math.abs(i)||Je(Cc(K(n),r<0?1:-1,{chatEnabled:K(b),planEnabled:K(ae)}))}function et(e){Xe?.pointerId===e.pointerId&&(Xe=null)}async function tt(){await De.close()===`chat`&&(Je(`chat`),Ye(`chat`))}async function nt(e,t){let n=new Hc(j);await n.load(e,t),R(u,n,!0)}async function rt(){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 it(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 nt(t,n),R(d,`profile-manager`),await cr(),K(h)?.focus()}async function at(e=!0){R(d,`list`),await cr(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function ot(e){requestAnimationFrame(()=>{K(n)===e&&window.scrollTo({top:e===`chat`?document.documentElement.scrollHeight:0})})}let st=!1;function ct(){st||(st=!0,requestAnimationFrame(()=>{st=!1,K(n)===`chat`&&window.scrollTo({top:document.documentElement.scrollHeight})}))}function lt(){window.matchMedia(`(min-width: 48rem)`).matches&&cr().then(()=>{K(n)===`chat`&&document.getElementById(`message`)?.focus()})}async function ut(e=K(he)){let t=e?jo(K(a),e):void 0;if(!e||!t?.isGitRepository){we+=1,R(me,null);return}let n=++we;try{let t=await j.getGitSummary(e);n===we&&K(he)===e&&R(me,t,!0)}catch(t){if(n!==we||K(he)!==e)return;R(me,null),R(xe,St(t,`GIT_SUMMARY_FAILED`),!0)}}function dt(e){R(he,e.id,!0),R(xe,null),R(me,null),R(_e,!1),e.isGitRepository?ut(e.id):(we+=1,R(me,null))}async function ft(){let e=K(he);if(!(!e||!jo(K(a),e)?.isGitRepository)){R(Ce,K(Ce)??hs(),!0),R(ve,!0),R(xe,null);try{await j.pullGit(e,K(Ce)),await ut(e),R(Ce,null)}catch(e){R(xe,St(e,`GIT_PULL_FAILED`),!0)}finally{R(ve,!1)}}}async function pt(e){if(K(be))return;let t=K(he)?jo(K(a),K(he)):void 0;if(!t||t.isGitRepository){R(Se,null),N.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let n=t.id;R(be,!0),R(xe,null),R(Se,null);try{await j.cloneGitRepository(n,e);let t=await no(),r=rs(K(a),t.workspaces,n,e,K(ge));R(g,Mo(K(g)||null,K(a),t.workspaces,Eo.sessionBase)??``,!0),R(a,t.workspaces,!0),R(he,r.selectedId,!0),R(ge,r.expandedIds,!0),K(he)&&jo(K(a),K(he))?.isGitRepository?await ut(K(he)):R(me,null),R(Se,`Repository cloned into the selected workspace.`),N.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){St(e,`GIT_CLONE_FAILED`)}finally{R(be,!1)}}async function mt(e){let t=K(he);if(!(!t||e===K(me)?.branch)){R(ye,!0),R(xe,null);try{await j.checkoutGitBranch(t,e),await ut(t)}catch(e){R(xe,St(e,`GIT_CHECKOUT_FAILED`),!0)}finally{R(ye,!1)}}}async function ht(){let e=K(he);if(e){R(A,K(A)??hs(),!0),R(xe,null);try{await j.pushGit(e,K(A)),R(_e,!1),await ut(e),R(A,null)}catch(e){R(xe,St(e,`GIT_PUSH_FAILED`),!0)}}}async function gt(e,t){K(v)&&(await j.respondInteraction(K(v),e,{decision:t}),R(Te,K(Te).filter(t=>t.requestId!==e),!0))}async function _t(e){if(!K(v))return;let t=e.kind===`quiz`?Ui(e.payload):Wi(e.payload);if(!t)return;let n=t.questions.map(t=>({id:t.id,answer:Ee[`${e.requestId}:${t.id}`]??``})),i=e.kind===`quiz`?Gi(n):us(n);try{await j.respondInteraction(K(v),e.requestId,i),R(Te,K(Te).filter(t=>t.requestId!==e.requestId),!0)}catch{R(r,`Could not send quiz answers. Please try again.`)}}async function vt(e){if(!K(v))return;let t=ls(e.payload);if(!t){R(r,`Codex sent an invalid permission request.`);return}await j.respondInteraction(K(v),e.requestId,t),R(Te,K(Te).filter(t=>t.requestId!==e.requestId),!0)}function I(e,t,n){Ee[`${e}:${t}`]=n}function yt(e){R(E,e,!0),K(v)&&Oe.saveDraft(K(v),e)}function bt(e){M.write(e,K(O))}function xt(e){return e instanceof Error?e.message:`Unknown relay error.`}function St(e,t){let n=_o(e,t);return N.enqueue({kind:`error`,...n}),n.message}function Ct(e){ce&&clearTimeout(ce),le&&clearTimeout(le),se?.close();let t=++pe,i=location.protocol===`https:`?`wss:`:`ws:`;se=new WebSocket(`${i}//${location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${K(k)}`),se.onopen=()=>{t!==pe||K(v)!==e||(R(r,qs(K(D)),!0),qe(),le=setTimeout(()=>{fe=0},3e4))},se.onmessage=t=>{let i=JSON.parse(String(t.data));if(i.type===`relay.resyncRequired`){Ke(e,typeof i.currentSequence==`number`?i.currentSequence:0);return}if(i.type===`relay.event`&&i.event?.type===`interaction.requested`){let e=i.event.payload;K(Te).some(t=>t.requestId===e.requestId)||R(Te,[...K(Te),e],!0)}if(i.type===`relay.event`&&i.event?.type===`turnCompleted`&&(R(D,null),R(r,qs(K(D)),!0),R(O,cs(K(O),`assistant-${e}`),!0),bt(e),Ke(e).catch(()=>void 0)),i.type===`relay.event`&&i.event?.type===`session.updated`){let t=i.event.payload;if(typeof t==`object`&&t&&t.id===e){let n=t,i=K(D);R(D,typeof n.activeTurnId==`string`?n.activeTurnId:null,!0),i&&!K(D)&&R(r,qs(K(D)),!0),R(y,K(y).map(t=>t.id===e?{...t,...n}:t),!0)}}if(i.type===`relay.event`&&i.event?.type===`interaction.resolved`){let{requestId:e}=i.event.payload;R(Te,K(Te).filter(t=>t.requestId!==e),!0)}if(i.type===`relay.event`&&i.event?.type===`activity.updated`){let e=i.event.payload;typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&R(te,[...K(te).filter(t=>t.id!==e.id),e],!0)}R(k,gs(K(k),i,t=>{R(O,ss(K(O),`assistant-${e}`,t,Date.now()),!0),bt(e)},()=>{Ke(e)},t=>{if(De.applyEvent(e,t),t.type!==`plan.updated`||!_s(t.payload)||t.payload.reason!==`authoring-start`&&t.payload.reason!==`work-start`)return;let r=`${e}:${t.sequence}`;r!==K(ie)&&(R(ie,r),R(n,`plan`),ot(`plan`))}),!0),Oe.saveCursor(e,K(k))},se.onclose=()=>{t!==pe||K(v)!==e||(le&&clearTimeout(le),R(r,`Connection interrupted. Reconnecting…`),ce=setTimeout(()=>Ct(e),Js(fe++)))}}var wt=Zc();Hr(`y74n0s`,e=>{Sn(()=>{Xt.title=`Gestalt Mobile`})});var Tt=V(wt),Et=e=>{To(e,{get variant(){return Ae}})},Dt=e=>{var t=Wc();Vo(B(t),{get context(){return ke}}),P(t),Y(e,t)},Ot=e=>{var t=Xc(),l=B(t);{let e=F(()=>K(n)===`chat`?ic(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);Ei(l,{get theme(){return K(i)},get sessionPath(){return K(e)},get sessionModel(){return K(t)},get weeklyQuotaUsed(){return K(oe)},onthemechange:je})}var w=H(l,2),k=e=>{var t=qc(),n=H(B(t),2),i=e=>{var t=Gc(),n=V(t);Qa(n,{get messages(){return K(O)},get activities(){return K(te)}});var i=H(n,2);la(i,{get interactions(){return K(Te)},get answers(){return Ee},onanswer:I,onquiz:e=>void _t(e),onpermission:e=>void vt(e),ondecision:(e,t)=>void gt(e,t)}),Ta(H(i,2),{get status(){return K(r)},get message(){return K(E)},get activeTurnId(){return K(D)},get starting(){return K(ee)},get models(){return K(s)},onchange:yt,onscrollbottom:ct,onmodelselect:e=>void Ue(e),onsend:()=>void We(),oninterrupt:()=>void Ge()}),Y(e,t)},a=e=>{Y(e,Kc())};Z(n,e=>{K(v)?e(i):e(a,-1)}),P(t),Y(e,t)},ie=e=>{Ks(e,{get state(){return K(ne)},onclose:()=>void tt()})},se=e=>{{let t=F(()=>K(he)?jo(K(a),K(he))??null:null);ns(e,{get workspaceTree(){return K(a)},get selectedWorkspace(){return K(t)},get expandedIds(){return K(ge)},get summary(){return K(me)},get refreshing(){return K(ve)},get checkingOut(){return K(ye)},get cloning(){return K(be)},get error(){return K(xe)},get cloneStatus(){return K(Se)},get confirmingPush(){return K(_e)},onpull:()=>void ft(),oncheckout:e=>void mt(e),onopenpushconfirmation:()=>R(_e,!0),onpush:()=>void ht(),oncancelpush:()=>R(_e,!1),onselect:dt,onexpandedchange:e=>R(ge,e,!0),onclone:e=>void pt(e)})}},ce=e=>{var t=Dr(),n=V(t),r=e=>{var t=Yc(),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 rt(),heading:`Skill profile editor`})},s=e=>{Y(e,Jc())};Z(a,e=>{K(u)?e(o):e(s,-1)}),P(t),q(`click`,i,()=>void at()),Y(e,t)},i=e=>{bc(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(C)},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(T)},onworkspacechange:e=>R(g,e,!0),onexpandedchange:e=>R(_,e,!0),onsandboxchange:e=>R(S,e,!0),onapprovalpolicychange:e=>R(C,e,!0),onmodelchange:e=>R(c,e,!0),onskillprofilechange:e=>R(p,e,!0),onmanageprofiles:e=>void it(e),onopen:Ie,onselectopen:Ie,onclose:e=>void Re(e),onopenrecent:e=>void Le(e),onforget:e=>void Ve(e),oncopyresume:e=>void He(e),onstart:()=>void Me()})};Z(n,e=>{K(d)===`profile-manager`?e(r):e(i,-1)}),Y(e,t)};Z(w,e=>{K(n)===`chat`?e(k):K(n)===`plan`?e(ie,1):K(n)===`git`?e(se,2):e(ce,-1)}),Ec(H(w,2),{get activeTab(){return K(n)},get chatEnabled(){return K(b)},get planEnabled(){return K(ae)},get focusTab(){return K(re)},onselect:Je}),P(t),q(`pointerdown`,t,Qe),q(`pointerup`,t,$e),vr(`pointercancel`,t,et),Y(e,t)};Z(Tt,e=>{Ae===`error`||Ae===`stacked`?e(Et):ke===`sessions`||ke===`git`?e(Dt,1):e(Ot,-1)});var kt=H(Tt,2),At=e=>{Co(e,{get queue(){return N}})};Z(kt,e=>{Ae!==`error`&&Ae!==`stacked`&&e(At)}),Y(e,wt),Be()}yr([`pointerdown`,`pointerup`,`click`]);var $c=document.getElementById(`app`);if(!$c)throw Error(`Missing application mount target`);Or(Qc,{target:$c});
|