gestalt-mobile 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,301 @@
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
+ import { chmod, mkdir, readFile, readdir, rename, rm, stat, watch, writeFile, realpath, } from 'node:fs/promises';
7
+ import { createHash, randomUUID } from 'node:crypto';
8
+ import { basename, dirname, join } from 'node:path';
9
+ import { parseSupervisedPlan } from '../../features/plans/application/parse-supervised-plan.js';
10
+ import { isPlanPathWithinWorkspace } from '../../features/plans/application/parse-supervised-plan.js';
11
+ const statusFileSuffix = '.plan-status.json';
12
+ export class FilesystemPlanStatusSource {
13
+ dismissalDirectory;
14
+ dismissalFilesystem;
15
+ planReadFilesystem;
16
+ statusRemovalFilesystem;
17
+ leases = new Map();
18
+ activeStatusPaths = new Map();
19
+ constructor(dismissalDirectory, dismissalFilesystem = { writeFile, rename }, planReadFilesystem = { readFile, realpath }, statusRemovalFilesystem = { rm }) {
20
+ this.dismissalDirectory = dismissalDirectory;
21
+ this.dismissalFilesystem = dismissalFilesystem;
22
+ this.planReadFilesystem = planReadFilesystem;
23
+ this.statusRemovalFilesystem = statusRemovalFilesystem;
24
+ }
25
+ async open(session, listener) {
26
+ this.leases.get(session.id)?.close();
27
+ const statusDirectory = planStatusDirectoryPath(session.workspacePath, session.id);
28
+ await mkdir(this.dismissalDirectory, { recursive: true, mode: 0o700 });
29
+ await mkdir(statusDirectory, { recursive: true, mode: 0o700 });
30
+ if (process.platform !== 'win32') {
31
+ await Promise.all([
32
+ chmod(this.dismissalDirectory, 0o700),
33
+ chmod(statusDirectory, 0o700),
34
+ ]);
35
+ }
36
+ const lease = new ActiveLease(statusDirectory, session.id, session.workspacePath, listener, this.planReadFilesystem, (identity) => this.isDismissed(session.id, identity), (statusPath) => this.activeStatusPaths.set(session.id, statusPath), () => {
37
+ this.leases.delete(session.id);
38
+ this.activeStatusPaths.delete(session.id);
39
+ });
40
+ this.leases.set(session.id, lease);
41
+ await lease.start();
42
+ return lease;
43
+ }
44
+ closeAll() {
45
+ for (const lease of this.leases.values())
46
+ lease.close();
47
+ this.leases.clear();
48
+ }
49
+ async remove(sessionId, identity) {
50
+ const statusPath = this.activeStatusPaths.get(sessionId);
51
+ const signal = statusPath ? await this.readStatusForRollback(statusPath) : undefined;
52
+ if (statusPath)
53
+ await this.statusRemovalFilesystem.rm(statusPath, { force: true });
54
+ try {
55
+ if (identity)
56
+ await this.dismiss(sessionId, identity);
57
+ }
58
+ catch (error) {
59
+ if (signal !== undefined && statusPath)
60
+ await this.restoreStatus(statusPath, signal);
61
+ throw error;
62
+ }
63
+ }
64
+ async readStatusForRollback(statusPath) {
65
+ try {
66
+ return await this.planReadFilesystem.readFile(statusPath, 'utf8');
67
+ }
68
+ catch (error) {
69
+ if (error.code === 'ENOENT')
70
+ return undefined;
71
+ throw error;
72
+ }
73
+ }
74
+ async restoreStatus(statusPath, signal) {
75
+ const candidate = join(dirname(statusPath), `.${randomUUID()}.status.tmp`);
76
+ try {
77
+ await writeFile(candidate, signal, { mode: 0o600 });
78
+ await rename(candidate, statusPath);
79
+ }
80
+ catch (error) {
81
+ await rm(candidate, { force: true }).catch(() => { });
82
+ throw error;
83
+ }
84
+ }
85
+ async dismiss(sessionId, identity) {
86
+ const path = this.dismissalPath(sessionId);
87
+ const dismissed = await this.dismissed(sessionId);
88
+ const next = new Set(dismissed).add(identity);
89
+ const candidate = join(this.dismissalDirectory, `.${randomUUID()}.dismissals.tmp`);
90
+ try {
91
+ await this.dismissalFilesystem.writeFile(candidate, JSON.stringify([...next]), { mode: 0o600 });
92
+ await this.dismissalFilesystem.rename(candidate, path);
93
+ }
94
+ catch (error) {
95
+ await rm(candidate, { force: true }).catch(() => { });
96
+ throw error;
97
+ }
98
+ this.dismissedBySession.set(sessionId, next);
99
+ }
100
+ async isDismissed(sessionId, identity) {
101
+ return (await this.dismissed(sessionId)).has(identity);
102
+ }
103
+ dismissedBySession = new Map();
104
+ async dismissed(sessionId) {
105
+ const cached = this.dismissedBySession.get(sessionId);
106
+ if (cached)
107
+ return cached;
108
+ try {
109
+ const values = JSON.parse(await this.planReadFilesystem.readFile(this.dismissalPath(sessionId), 'utf8'));
110
+ if (!Array.isArray(values) || values.some((value) => typeof value !== 'string'))
111
+ throw new Error();
112
+ const dismissed = new Set(values);
113
+ this.dismissedBySession.set(sessionId, dismissed);
114
+ return dismissed;
115
+ }
116
+ catch (error) {
117
+ if (error.code !== 'ENOENT')
118
+ throw error;
119
+ const absent = new Set();
120
+ this.dismissedBySession.set(sessionId, absent);
121
+ return absent;
122
+ }
123
+ }
124
+ dismissalPath(sessionId) {
125
+ return join(this.dismissalDirectory, `${createHash('sha256').update(sessionId).digest('hex')}.dismissals.json`);
126
+ }
127
+ }
128
+ export function planStatusDirectoryPath(workspacePath, sessionId) {
129
+ const opaqueSessionId = createHash('sha256').update(sessionId).digest('hex');
130
+ return join(workspacePath, '.gestalt', 'status', opaqueSessionId);
131
+ }
132
+ export function planStatusFilePath(statusDirectory, canonicalPlanPath) {
133
+ const opaquePlanId = createHash('sha256').update(canonicalPlanPath).digest('hex');
134
+ return join(statusDirectory, `${opaquePlanId}${statusFileSuffix}`);
135
+ }
136
+ class ActiveLease {
137
+ statusDirectory;
138
+ sessionId;
139
+ workspacePath;
140
+ listener;
141
+ planReadFilesystem;
142
+ isDismissed;
143
+ onActiveStatusPath;
144
+ onClose;
145
+ watcher;
146
+ debounce;
147
+ closed = false;
148
+ activeStatusPath;
149
+ constructor(statusDirectory, sessionId, workspacePath, listener, planReadFilesystem, isDismissed, onActiveStatusPath, onClose) {
150
+ this.statusDirectory = statusDirectory;
151
+ this.sessionId = sessionId;
152
+ this.workspacePath = workspacePath;
153
+ this.listener = listener;
154
+ this.planReadFilesystem = planReadFilesystem;
155
+ this.isDismissed = isDismissed;
156
+ this.onActiveStatusPath = onActiveStatusPath;
157
+ this.onClose = onClose;
158
+ }
159
+ async start() {
160
+ await this.refreshLatest();
161
+ try {
162
+ this.watcher = watch(this.statusDirectory, { persistent: false });
163
+ void this.consumeChanges();
164
+ }
165
+ catch {
166
+ this.listener({ kind: 'unavailable', code: 'PLAN_STATUS_UNAVAILABLE' });
167
+ }
168
+ }
169
+ close() {
170
+ if (this.closed)
171
+ return;
172
+ this.closed = true;
173
+ if (this.debounce)
174
+ clearTimeout(this.debounce);
175
+ void this.watcher?.return?.();
176
+ this.onClose();
177
+ }
178
+ async remove() {
179
+ if (this.activeStatusPath)
180
+ await rm(this.activeStatusPath, { force: true });
181
+ }
182
+ async consumeChanges() {
183
+ try {
184
+ for await (const event of this.watcher) {
185
+ if (this.closed)
186
+ return;
187
+ if (!event.filename) {
188
+ this.scheduleRefresh();
189
+ continue;
190
+ }
191
+ const filename = basename(String(event.filename));
192
+ if (!filename.endsWith(statusFileSuffix))
193
+ continue;
194
+ this.scheduleRefresh(join(this.statusDirectory, filename));
195
+ }
196
+ }
197
+ catch {
198
+ if (!this.closed)
199
+ this.listener({ kind: 'unavailable', code: 'PLAN_STATUS_UNAVAILABLE' });
200
+ }
201
+ }
202
+ pendingStatusPath;
203
+ scheduleRefresh(statusPath) {
204
+ this.pendingStatusPath = statusPath;
205
+ if (this.debounce)
206
+ clearTimeout(this.debounce);
207
+ this.debounce = setTimeout(() => {
208
+ this.debounce = undefined;
209
+ const pendingStatusPath = this.pendingStatusPath;
210
+ this.pendingStatusPath = undefined;
211
+ void (pendingStatusPath ? this.refresh(pendingStatusPath) : this.refreshLatest());
212
+ }, 25);
213
+ }
214
+ async refreshLatest() {
215
+ try {
216
+ const candidates = (await readdir(this.statusDirectory))
217
+ .filter((filename) => filename.endsWith(statusFileSuffix))
218
+ .map((filename) => join(this.statusDirectory, filename));
219
+ const signals = await Promise.all(candidates.map(async (statusPath) => {
220
+ const [source, metadata] = await Promise.all([
221
+ this.planReadFilesystem.readFile(statusPath, 'utf8').catch(() => ''),
222
+ stat(statusPath).catch(() => undefined),
223
+ ]);
224
+ return { statusPath, signal: parseSignal(source), modifiedAt: metadata?.mtimeMs ?? 0 };
225
+ }));
226
+ const latest = signals
227
+ .filter((candidate) => candidate.signal !== null)
228
+ .sort((left, right) => right.signal.updatedAt.localeCompare(left.signal.updatedAt) ||
229
+ right.modifiedAt - left.modifiedAt)[0];
230
+ if (latest)
231
+ await this.refresh(latest.statusPath, latest.signal);
232
+ }
233
+ catch {
234
+ if (!this.closed)
235
+ this.listener({ kind: 'unavailable', code: 'PLAN_STATUS_UNAVAILABLE' });
236
+ }
237
+ }
238
+ async refresh(statusPath, parsedSignal) {
239
+ try {
240
+ const signal = parsedSignal ?? parseSignal(await this.planReadFilesystem.readFile(statusPath, 'utf8'));
241
+ if (!signal)
242
+ throw new Error('INVALID_PLAN_STATUS');
243
+ const [planPath, workspacePath] = await Promise.all([
244
+ this.planReadFilesystem.realpath(signal.planPath),
245
+ this.planReadFilesystem.realpath(this.workspacePath),
246
+ ]);
247
+ if (!isPlanPathWithinWorkspace(planPath, workspacePath))
248
+ throw new Error('PATH_OUTSIDE_WORKSPACE');
249
+ const identity = createHash('sha256').update(planPath).digest('hex');
250
+ if (await this.isDismissed(identity))
251
+ return;
252
+ const result = parseSupervisedPlan({
253
+ source: await this.planReadFilesystem.readFile(planPath, 'utf8'),
254
+ planPath,
255
+ workspacePath,
256
+ });
257
+ if (result.kind === 'available') {
258
+ if (!this.closed && !(await this.isDismissed(identity)) && !this.closed) {
259
+ const previousStatusPath = this.activeStatusPath;
260
+ this.activeStatusPath = statusPath;
261
+ this.onActiveStatusPath(statusPath);
262
+ this.listener({ kind: 'updated', plan: result.plan, identity });
263
+ if (previousStatusPath && previousStatusPath !== statusPath)
264
+ await rm(previousStatusPath, { force: true }).catch(() => { });
265
+ }
266
+ }
267
+ else if (!this.closed) {
268
+ this.listener({ kind: 'unavailable', code: 'PLAN_STATUS_UNAVAILABLE' });
269
+ }
270
+ }
271
+ catch (error) {
272
+ if (error.code === 'ENOENT' &&
273
+ this.activeStatusPath !== undefined &&
274
+ statusPath !== this.activeStatusPath)
275
+ return;
276
+ if (!this.closed)
277
+ this.listener({ kind: 'unavailable', code: 'PLAN_STATUS_UNAVAILABLE' });
278
+ }
279
+ }
280
+ }
281
+ function parseSignal(source) {
282
+ try {
283
+ const value = JSON.parse(source);
284
+ if (!value || typeof value !== 'object')
285
+ return null;
286
+ const signal = value;
287
+ if (signal.schemaVersion !== 1 || typeof signal.planPath !== 'string')
288
+ return null;
289
+ if (typeof signal.reason !== 'string' || !isRfc3339Utc(signal.updatedAt))
290
+ return null;
291
+ return { planPath: signal.planPath, updatedAt: signal.updatedAt };
292
+ }
293
+ catch {
294
+ return null;
295
+ }
296
+ }
297
+ function isRfc3339Utc(value) {
298
+ return (typeof value === 'string' &&
299
+ /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/.test(value) &&
300
+ !Number.isNaN(Date.parse(value)));
301
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gestalt-mobile",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Mobile-first web relay for durable Codex development sessions",
5
5
  "keywords": [
6
6
  "codex",
@@ -48,6 +48,8 @@
48
48
  "test:watch": "vitest",
49
49
  "test:package": "node scripts/smoke-packed-cli.mjs",
50
50
  "test:e2e": "playwright test",
51
+ "test:e2e:plan-lifecycle": "npm run build:client && playwright test test/e2e/plan-lifecycle.spec.ts",
52
+ "test:e2e:plan-evidence": "playwright test test/e2e/plan-ui-evidence.spec.ts",
51
53
  "license:check": "node scripts/check-license-headers.mjs",
52
54
  "license:apply": "node scripts/apply-license-headers.mjs"
53
55
  },
@@ -1,11 +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}}var m=1024,h=2048,g=4096,_=8192,v=16384,y=32768,b=1<<25,x=65536,S=1<<18,C=1<<19,w=1<<20,T=1<<25,E=65536,D=1<<21,ee=1<<22,O=1<<23,k=Symbol(`$state`),te=Symbol(`legacy props`),ne=Symbol(``),re=Symbol(`attributes`),ie=Symbol(`class`),ae=Symbol(`style`),oe=Symbol(`text`),se=Symbol(`form reset`),ce=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},le=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function A(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function ue(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function de(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function fe(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function pe(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function me(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function he(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function ge(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function _e(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function ve(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function ye(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function be(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var xe={},j=Symbol(`uninitialized`),Se=`http://www.w3.org/1999/xhtml`;function Ce(){console.warn(`https://svelte.dev/e/derived_inert`)}function we(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Te(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ee(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var M=!1;function De(e){M=e}var N;function Oe(e){if(e===null)throw we(),xe;return N=e}function ke(){return Oe(nn(N))}function P(e){if(M){if(nn(N)!==null)throw we(),xe;N=e}}function Ae(e=1){if(M){for(var t=e,n=N;t--;)n=nn(n);N=n}}function je(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=nn(n);e&&n.remove(),n=i}}function Me(e){if(!e||e.nodeType!==8)throw we(),xe;return e.data}function Ne(e){return e===this.v}function Pe(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Fe(e){return!Pe(e,this.v)}var Ie=null;function Le(e){Ie=e}function Re(e,t=!1,n){Ie={p:Ie,i:!1,c:null,e:null,s:e,x:null,r:G,l:null}}function ze(e){var t=Ie,n=t.e;if(n!==null){t.e=null;for(var r of n)yn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ie=t.p,e??{}}function Be(){return!0}var Ve=[];function He(){var e=Ve;Ve=[],f(e)}function Ue(e){if(Ve.length===0&&!bt){var t=Ve;queueMicrotask(()=>{t===Ve&&He()})}Ve.push(e)}function We(){for(;Ve.length>0;)He()}function Ge(e){var t=G;if(t===null)return W.f|=O,e;if(!(t.f&32768)&&!(t.f&4))throw e;Ke(e,t)}function Ke(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 qe=~(h|g|m);function F(e,t){e.f=e.f&qe|t}function Je(e){e.f&512||e.deps===null?F(e,m):F(e,g)}function Ye(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=E,Ye(t.deps))}function Xe(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),Ye(e.deps),F(e,m)}var Ze=!1;function Qe(e){var t=Ze;try{return Ze=!1,[e(),Ze]}finally{Ze=t}}function $e(e){let t=0,n=zt(0),r;return()=>{gn()&&(K(n),Cn(()=>(t===0&&(r=ur(()=>e(()=>Ut(n)))),t+=1,()=>{Ue(()=>{--t,t===0&&(r?.(),r=void 0,Ut(n))})})))}}var et=x|C;function tt(e,t,n,r){new nt(e,t,n,r)}var nt=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=$e(()=>(this.#m=zt(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=wn(()=>{if(M){let e=this.#t;ke();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()},et),M&&(this.#e=N)}#g(){try{this.#a=Tn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Tn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Tn(()=>e(this.#e)),Ue(()=>{var e=this.#c=document.createDocumentFragment(),t=en();e.append(t),this.#a=this.#x(()=>Tn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Mn(this.#o,()=>{this.#o=null}),this.#b(L))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Tn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();In(this.#a,e);let t=this.#n.pending;this.#o=Tn(()=>t(this.#e))}else this.#b(L)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){Xe(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=Ie;Un(this.#i),Hn(this.#i),Le(this.#i.ctx);try{return Et.ensure(),e()}catch(e){return Ge(e),null}finally{Un(t),Hn(n),Le(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&&Mn(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,Ue(()=>{this.#d=!1,this.#m&&Vt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),K(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;L?.is_fork?(this.#a&&L.skip_effect(this.#a),this.#o&&L.skip_effect(this.#o),this.#s&&L.skip_effect(this.#s),L.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(kn(this.#a),null),this.#o&&=(kn(this.#o),null),this.#s&&=(kn(this.#s),null),M&&(Oe(this.#t),Ae(),Oe(je()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Ee();return}r=!0,i&&be(),this.#s!==null&&Mn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){Ke(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Tn(()=>{var t=G;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return Ke(e,this.#i.parent),null}}))};Ue(()=>{var t;try{t=this.transform_error(e)}catch(e){Ke(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>Ke(e,this.#i&&this.#i.parent)):o(t)})}};function rt(e,t,n,r){let i=Be()?st:ut;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=it(),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){Ke(e,s)}at()}}var d=ot();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>lt(e))).then(u).catch(e=>Ke(e,s)).finally(d)}l?l.then(()=>{c(),f(),at()}):f()}function it(){var e=G,t=W,n=Ie,r=L;return function(i=!0){Un(e),Hn(t),Le(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function at(e=!0){Un(null),Hn(null),Le(null),e&&L?.deactivate()}function ot(){var e=G,t=e.b,n=L,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 st(e){var t=2|h;return G!==null&&(G.f|=C),{ctx:Ie,deps:null,effects:null,equals:Ne,f:t,fn:e,reactions:null,rv:0,v:j,wv:0,parent:G,ac:null}}var ct=Symbol(`obsolete`);function lt(e,t,n){let r=G;r===null&&ue();var i=void 0,a=zt(j),o=!W,s=new Set;return Sn(()=>{var t=G,n=p();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ce&&n.reject(e)}).finally(at)}catch(e){n.reject(e),at()}var c=L;if(o){if(t.f&32768)var l=ot();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(ct);else for(let e of s.values())e.reject(ct);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==ct&&(c.activate(),t?(a.f|=O,Vt(a,t)):(a.f&8388608&&(a.f^=O),Vt(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),_n(()=>{for(let e of s)e.reject(ct)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function I(e){let t=st(e);return Gn(t),t}function ut(e){let t=st(e);return t.equals=Fe,t}function dt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)kn(t[n])}}function ft(e){var t,n=G,r=e.parent;if(!zn&&r!==null&&e.v!==j&&r.f&24576)return Ce(),e.v;Un(r);try{e.f&=~E,dt(e),t=rr(e)}finally{Un(n)}return t}function pt(e){var t=ft(e);if(!e.equals(t)&&(e.wv=er(),(!L?.is_fork||e.deps===null)&&(L===null?e.v=t:(L.capture(e,t,!0),_t?.capture(e,t,!0)),e.deps===null))){F(e,m);return}zn||(vt===null?Je(e):(gn()||L?.is_fork)&&vt.set(e,t))}function mt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ce),t.fn!==null&&(t.teardown=d),t.ac=null,ar(t,0),Dn(t))}function ht(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&or(t)}var gt=null,L=null,_t=null,vt=null,yt=null,bt=!1,xt=!1,St=null,Ct=null,wt=0,Tt=1,Et=class e{id=Tt++;#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(){gt===null?gt=this:(gt.#n=this,this.#t=gt),gt=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)F(r,h),t(r);for(r of n.m)F(r,g),t(r)}this.#p.add(e)}#g(){this.#e=!0,wt++>1e3&&(this.#x(),Ot());for(let e of this.#u)this.#d.delete(e),F(e,h),this.schedule(e);for(let e of this.#d)F(e,g),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=St=[],r=[],i=Ct=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Ft(e),this.#h()||this.discard(),t}if(L=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(St=null,Ct=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Pt(e,t);i.length>0&&L.#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(),_t=this,At(r),At(n),_t=null,this.#s?.resolve();var s=L;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^=m;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^=m:i&4?t.push(r):tr(r)&&(i&16&&this.#d.add(r),or(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),F(i,h),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),L=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)Xe(e[t],this.#u,this.#d)}capture(e,t,n=!1){e.v!==j&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),vt?.set(e,t)),this.is_fork||(e.v=t)}activate(){L=this}deactivate(){L=null,vt=null}flush(){try{xt=!0,L=this,this.#g()}finally{wt=0,yt=null,St=null,Ct=null,xt=!1,L=null,vt=null,Lt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(ct);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,Ue(()=>{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(L===null){let t=L=new e;!xt&&!bt&&Ue(()=>{t.#e||t.flush()})}return L}apply(){vt=null}schedule(e){if(yt=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(St!==null&&t===G&&(W===null||!(W.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=m}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?gt=e:t.#t=e,this.linked=!1}}};function Dt(e){var t=bt;bt=!0;try{var n;for(e&&(L!==null&&!L.is_fork&&L.flush(),n=e());;){if(We(),L===null)return n;L.flush()}}finally{bt=t}}function Ot(){try{he()}catch(e){Ke(e,yt)}}var kt=null;function At(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&tr(r)&&(kt=new Set,or(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&jn(r),kt?.size>0)){Lt.clear();for(let e of kt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)kt.has(n)&&(kt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||or(n)}}kt.clear()}}kt=null}}function jt(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?jt(i,t,n,r):e&4194320&&!(e&2048)&&Mt(i,t,r)&&(F(i,h),Nt(i))}}function Mt(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&&Mt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Nt(e){L.schedule(e)}function Pt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),F(e,m);for(var n=e.first;n!==null;)Pt(n,t),n=n.next}}function Ft(e){F(e,m);for(var t=e.first;t!==null;)Ft(t),t=t.next}var It=new Set,Lt=new Map,Rt=!1;function zt(e,t){return{f:0,v:e,reactions:null,equals:Ne,rv:0,wv:0}}function R(e,t){let n=zt(e,t);return Gn(n),n}function Bt(e,t=!1,n=!0){let r=zt(e);return t||(r.equals=Fe),r}function z(e,t,n=!1){return W!==null&&(!Vn||W.f&131072)&&Be()&&W.f&4325394&&(Wn===null||!Wn.has(e))&&ye(),Vt(e,n?Gt(t):t,Ct)}function Vt(e,t,n=null){if(!e.equals(t)){Lt.set(e,zn?t:e.v);var r=Et.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&ft(t),vt===null&&Je(t)}e.wv=er(),Wt(e,h,n),Be()&&G!==null&&G.f&1024&&!(G.f&96)&&(Jn===null?Yn([e]):Jn.push(e)),!r.is_fork&&It.size>0&&!Rt&&Ht()}return t}function Ht(){Rt=!1;for(let e of It){e.f&1024&&F(e,g);let t;try{t=tr(e)}catch{t=!0}t&&or(e)}It.clear()}function Ut(e){z(e,e.v+1)}function Wt(e,t,n){var r=e.reactions;if(r!==null)for(var i=Be(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===G)){var l=(c&h)===0;if(l&&F(s,t),c&131072)It.add(s);else if(c&2){var u=s;vt?.delete(u),c&65536||(c&512&&(G===null||!(G.f&2097152))&&(s.f|=E),Wt(u,g,n))}else if(l){var d=s;c&16&&kt!==null&&kt.add(d),n===null?Nt(d):n.push(d)}}}}function Gt(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=R(0),u=null,d=Qn,f=e=>{if(Qn===d)return e();var t=W,n=Qn;Hn(null),$n(d);var r=e();return Hn(t),$n(n),r};return i&&r.set(`length`,R(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&_e();var i=r.get(t);return i===void 0?f(()=>{var e=R(n.value,u);return r.set(t,e),e}):z(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>R(j,u));r.set(t,e),Ut(o)}}else z(n,j),Ut(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(()=>R(Gt(s?e[n]:j),u)),r.set(n,o)),o!==void 0){var c=K(o);return c===j?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!==j)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!==j||Reflect.has(e,t);return(n!==void 0||G!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>R(i?Gt(e[t]):j,u)),r.set(t,n)),K(n)===j)?!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(()=>R(j,u)),r.set(d+``,p)):z(p,j)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>R(void 0,u)),z(c,Gt(n)),r.set(t,c));else{l=c.v!==j;var m=f(()=>Gt(n));z(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&&z(g,_+1)}Ut(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!==j});for(var[n,i]of r)i.v!==j&&!(n in e)&&t.push(n);return t},setPrototypeOf(){ve()}})}function Kt(e){try{if(typeof e==`object`&&e&&k in e)return e[k]}catch{}return e}function qt(e,t){return Object.is(Kt(e),Kt(t))}var Jt,Yt,Xt,Zt,Qt;function $t(){if(Jt===void 0){Jt=window,Yt=document,Xt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Zt=a(t,`firstChild`).get,Qt=a(t,`nextSibling`).get,u(e)&&(e[ie]=void 0,e[re]=null,e[ae]=void 0,e.__e=void 0),u(n)&&(n[oe]=void 0)}}function en(e=``){return document.createTextNode(e)}function tn(e){return Zt.call(e)}function nn(e){return Qt.call(e)}function B(e,t){if(!M)return tn(e);var n=tn(N);if(n===null)n=N.appendChild(en());else if(t&&n.nodeType!==3){var r=en();return n?.before(r),Oe(r),r}return t&&sn(n),Oe(n),n}function V(e,t=!1){if(!M){var n=tn(e);return n instanceof Comment&&n.data===``?nn(n):n}if(t){if(N?.nodeType!==3){var r=en();return N?.before(r),Oe(r),r}sn(N)}return N}function H(e,t=1,n=!1){let r=M?N:e;for(var i;t--;)i=r,r=nn(r);if(!M)return r;if(n){if(r?.nodeType!==3){var a=en();return r===null?i?.after(a):r.before(a),Oe(a),a}sn(r)}return Oe(r),r}function rn(e){e.textContent=``}function an(){return!1}function on(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 sn(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 cn(e){M&&tn(e)!==null&&rn(e)}var ln=!1;function un(){ln||(ln=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[se]?.()})},{capture:!0}))}function dn(e){var t=W,n=G;Hn(null),Un(null);try{return e()}finally{Hn(t),Un(n)}}function fn(e,t,n,r=n){e.addEventListener(t,()=>dn(n));let i=e[se];i?e[se]=()=>{i(),r(!0)}:e[se]=()=>r(!0),un()}function pn(e){G===null&&(W===null&&me(e),pe()),zn&&fe(e)}function mn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function hn(e,t){var n=G;n!==null&&n.f&8192&&(e|=_);var r={ctx:Ie,deps:null,nodes:null,f:e|h|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};L?.register_created_effect(r);var i=r;if(e&4)St===null?Et.ensure().schedule(r):St.push(r);else if(t!==null){try{or(r)}catch(e){throw kn(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|=x))}if(i!==null&&(i.parent=n,n!==null&&mn(i,n),W!==null&&W.f&2&&!(e&64))){var a=W;(a.effects??=[]).push(i)}return r}function gn(){return W!==null&&!Vn}function _n(e){let t=hn(8,null);return F(t,m),t.teardown=e,t}function vn(e){pn(`$effect`);var t=G.f;if(!W&&t&32&&Ie!==null&&!Ie.i){var n=Ie;(n.e??=[]).push(e)}else return yn(e)}function yn(e){return hn(4|w,e)}function bn(e){Et.ensure();let t=hn(64|C,e);return(e={})=>new Promise(n=>{e.outro?Mn(t,()=>{kn(t),n(void 0)}):(kn(t),n(void 0))})}function xn(e){return hn(4,e)}function Sn(e){return hn(ee|C,e)}function Cn(e,t=0){return hn(8|t,e)}function U(e,t=[],n=[],r=[]){rt(r,t,n,t=>{hn(8,()=>{e(...t.map(K))})})}function wn(e,t=0){return hn(16|t,e)}function Tn(e){return hn(32|C,e)}function En(e){var t=e.teardown;if(t!==null){let e=zn,n=W;Bn(!0),Hn(null);try{t.call(null)}finally{Bn(e),Hn(n)}}}function Dn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&dn(()=>{e.abort(ce)});var r=n.next;n.f&64?n.parent=null:kn(n,t),n=r}}function On(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||kn(t),t=n}}function kn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(An(e.nodes.start,e.nodes.end),n=!0),e.f|=b,Dn(e,t&&!n),ar(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();En(e),e.f^=b,e.f|=v;var i=e.parent;i!==null&&i.first!==null&&jn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function An(e,t){for(;e!==null;){var n=e===t?null:nn(e);e.remove(),e=n}}function jn(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 Mn(e,t,n=!0){var r=[];Nn(e,r,!0);var i=()=>{n&&kn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Nn(e,t,n){if(!(e.f&8192)){e.f^=_;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;Nn(i,t,o?n:!1)}i=a}}}function Pn(e){Fn(e,!0)}function Fn(e,t){if(e.f&8192){e.f^=_,e.f&1024||(F(e,h),Et.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;Fn(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 In(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:nn(n);t.append(n),n=i}}var Ln=null,Rn=!1,zn=!1;function Bn(e){zn=e}var W=null,Vn=!1;function Hn(e){W=e}var G=null;function Un(e){G=e}var Wn=null;function Gn(e){W!==null&&(Wn??=new Set).add(e)}var Kn=null,qn=0,Jn=null;function Yn(e){Jn=e}var Xn=1,Zn=0,Qn=Zn;function $n(e){Qn=e}function er(){return++Xn}function tr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~E),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(tr(a)&&pt(a),a.wv>e.wv)return!0}t&512&&vt===null&&F(e,m)}return!1}function nr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Wn!==null&&Wn.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?nr(a,t,!1):t===a&&(n?F(a,h):a.f&1024&&F(a,g),Nt(a))}}function rr(e){var t=Kn,n=qn,r=Jn,i=W,a=Wn,o=Ie,s=Vn,c=Qn,l=e.f;Kn=null,qn=0,Jn=null,W=l&96?null:e,Wn=null,Le(e.ctx),Vn=!1,Qn=++Zn,e.ac!==null&&(dn(()=>{e.ac.abort(ce)}),e.ac=null);try{e.f|=D;var u=e.fn,d=u();e.f|=y;var f=e.deps,p=L?.is_fork;if(Kn!==null){var m;if(p||ar(e,qn),f!==null&&qn>0)for(f.length=qn+Kn.length,m=0;m<Kn.length;m++)f[qn+m]=Kn[m];else e.deps=f=Kn;if(gn()&&e.f&512)for(m=qn;m<f.length;m++)(f[m].reactions??=[]).push(e)}else!p&&f!==null&&qn<f.length&&(ar(e,qn),f.length=qn);if(Be()&&Jn!==null&&!Vn&&f!==null&&!(e.f&6146))for(m=0;m<Jn.length;m++)nr(Jn[m],e);if(i!==null&&i!==e){if(Zn++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=Zn;if(t!==null)for(let e of t)e.rv=Zn;Jn!==null&&(r===null?r=Jn:r.push(...Jn))}return e.f&8388608&&(e.f^=O),d}catch(e){return Ge(e)}finally{e.f^=D,Kn=t,qn=n,Jn=r,W=i,Wn=a,Le(o),Vn=s,Qn=c}}function ir(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&&(Kn===null||!n.call(Kn,r))){var s=r;s.f&512&&(s.f^=512,s.f&=~E),s.v!==j&&Je(s),mt(s),ar(s,0)}}function ar(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ir(e,n[r])}function or(e){var t=e.f;if(!(t&16384)){F(e,m);var n=G,r=Rn;G=e,Rn=!0;try{t&16777232?On(e):Dn(e),En(e);var i=rr(e);e.teardown=typeof i==`function`?i:null,e.wv=Xn}finally{Rn=r,G=n}}}async function sr(){await Promise.resolve(),Dt()}function K(e){var t=(e.f&2)!=0;if(Ln?.add(e),W!==null&&!Vn&&!(G!==null&&G.f&16384)&&(Wn===null||!Wn.has(e))){var r=W.deps;if(W.f&2097152)e.rv<Zn&&(e.rv=Zn,Kn===null&&r!==null&&r[qn]===e?qn++:Kn===null?Kn=[e]:Kn.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(zn&&Lt.has(e))return Lt.get(e);if(t){var a=e;if(zn){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||lr(a))&&(o=ft(a)),Lt.set(a,o),o}var s=(a.f&512)==0&&!Vn&&W!==null&&(Rn||(W.f&512)!=0),c=(a.f&y)===0;tr(a)&&(s&&(a.f|=512),pt(a)),s&&!c&&(ht(a),cr(a))}if(vt?.has(e))return vt.get(e);if(e.f&8388608)throw e.v;return e.v}function cr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(ht(t),cr(t))}function lr(e){if(e.v===j)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(Lt.has(t)||t.f&2&&lr(t))return!0;return!1}function ur(e){var t=Vn;try{return Vn=!0,e()}finally{Vn=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 dr=[`touchstart`,`touchmove`];function fr(e){return dr.includes(e)}var pr=Symbol(`events`),mr=new Set,hr=new Set;function gr(e,t,n,r={}){function i(e){if(r.capture||br.call(t,e),!e.cancelBubble)return dn(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?Ue(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function _r(e,t,n,r,i){var a={capture:r,passive:i},o=gr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&_n(()=>{t.removeEventListener(e,o,a)})}function q(e,t,n){(t[pr]??={})[e]=n}function vr(e){for(var t=0;t<e.length;t++)mr.add(e[t]);for(var n of hr)n(e)}var yr=null;function br(e){var t=this,n=t.ownerDocument,r=e.type,a=e.composedPath?.()||[],o=a[0]||e.target;yr=e;var s=0,c=yr===e&&e[pr];if(c){var l=a.indexOf(c);if(l!==-1&&(t===document||t===window)){e[pr]=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;Hn(null),Un(null);try{for(var p,m=[];o!==null&&o!==t;){try{var h=o[pr]?.[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[pr]=t,delete e.currentTarget,Hn(d),Un(f)}}}var xr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Sr(e){return xr?.createHTML(e)??e}function Cr(e){var t=on(`template`);return t.innerHTML=Sr(e.replaceAll(`<!>`,`<!---->`)),t.content}function wr(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 wr(N,null),N;i===void 0&&(i=Cr(a?e:`<!>`+e),n||(i=tn(i)));var t=r||Xt?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=tn(t),s=t.lastChild;wr(o,s)}else wr(t,t);return t}}function Tr(e=``){if(!M){var t=en(e+``);return wr(t,t),t}var n=N;return n.nodeType===3?sn(n):(n.before(n=en()),Oe(n)),wr(n,n),n}function Er(){if(M)return wr(N,null),N;var e=document.createDocumentFragment(),t=document.createComment(``),n=en();return e.append(t,n),wr(t,n),e}function Y(e,t){if(M){var n=G;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=N),ke();return}e!==null&&e.before(t)}function X(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[oe]??=e.nodeValue)&&(e[oe]=n,e.nodeValue=`${n}`)}function Dr(e,t){return kr(e,t)}var Or=new Map;function kr(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){$t();var l=void 0,u=bn(()=>{var s=n??t.appendChild(en());tt(s,{pending:()=>{}},t=>{Re({});var n=Ie;if(o&&(n.c=o),a&&(i.$$events=a),M&&wr(t,null),l=e(t,i)||{},M&&(G.nodes.end=N,N===null||N.nodeType!==8||N.data!==`]`))throw we(),xe;ze()},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=fr(r);for(let e of[t,document]){var a=Or.get(e);a===void 0&&(a=new Map,Or.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,br,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(r(mr)),hr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=Or.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,br),r.delete(e),r.size===0&&Or.delete(n)):r.set(e,i)}hr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Ar.set(l,u),l}var Ar=new WeakMap,jr=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)Pn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Pn(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&&(kn(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();In(r,t),t.append(en()),this.#n.set(e,{effect:r,fragment:t})}else kn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Mn(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)||(kn(n.effect),this.#n.delete(e))};ensure(e,t){var n=L,r=an();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=en();i.append(a),this.#n.set(e,{effect:Tn(()=>t(a)),fragment:i})}else this.#t.set(e,Tn(()=>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,ke());var i=new jr(e),a=n?x:0;function o(e,t){if(M){var n=Me(r);if(e!==parseInt(n.substring(1))){var a=je();Oe(a),i.anchor=a,De(!1),i.ensure(e,t),De(!0);return}}i.ensure(e,t)}wn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Mr(e,t){return t}function Nr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c<a;c++){let n=t[c];Mn(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;Pr(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;rn(d),d.append(u),e.items.clear()}Pr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Pr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=T,In(a,document.createDocumentFragment())):kn(t[i],n)}}var Fr;function Q(t,n,i,a,o,s=null){var c=t,l=new Map;if(n&4){var u=t;c=M?Oe(tn(u)):u.appendChild(en())}M&&ke();var d=null,f=ut(()=>{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,Lr(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=T,zr(d,null,c)):Pn(d):Mn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:wn(()=>{p=K(f);var e=p.length;let t=!1;M&&Me(c)===`[!`!=(e===0)&&(c=je(),Oe(c),De(!1),t=!0);for(var r=new Set,u=L,v=an(),y=0;y<e;y+=1){M&&N.nodeType===8&&N.data===`]`&&(c=N,t=!0,De(!1));var b=p[y],x=a(b,y),S=h?null:l.get(x);S?(S.v&&Vt(S.v,b),S.i&&Vt(S.i,y),v&&u.unskip_effect(S.e)):(S=Rr(l,h?c:Fr??=en(),b,x,y,o,n,i),h||(S.e.f|=T),l.set(x,S)),r.add(x)}if(e===0&&s&&!d&&(h?d=Tn(()=>s(c)):(d=Tn(()=>s(Fr??=en())),d.f|=T)),e>r.size&&de(``,``,``),M&&e>0&&Oe(je()),!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&&De(!0),K(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,M&&(c=N)}function Ir(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Lr(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=Ir(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&&(Pn(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=T,_===l)zr(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),Br(e,d,_),Br(e,_,y),zr(_,y,n),d=_,p=[],m=[],l=Ir(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)zr(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);Br(e,S.prev,C.next),Br(e,d,S),Br(e,C,b),l=b,d=C,--v,p=[],m=[]}else u.delete(_),zr(_,l,n),Br(e,_.prev,_.next),Br(e,_,d===null?e.effect.first:d.next),Br(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=Ir(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=Ir(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(Pr(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=Ir(l.next);var E=w.length;if(E>0){var D=i&4&&s===0?n:null;if(o){for(v=0;v<E;v+=1)w[v].nodes?.a?.measure();for(v=0;v<E;v+=1)w[v].nodes?.a?.fix()}Nr(e,w,D)}}o&&Ue(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Rr(e,t,n,r,i,a,o,s){var c=o&1?o&16?zt(n):Bt(n,!1,!1):null,l=o&2?zt(i):null;return{v:c,i:l,e:Tn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function zr(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=nn(r);if(a.before(r),r===i)return;r=o}}function Br(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Vr(e,t){let n=null,r=M;var i;if(M){n=N;for(var a=tn(document.head);a!==null&&(a.nodeType!==8||a.data!==e);)a=nn(a);if(a===null)De(!1);else{var o=nn(a);a.remove(),Oe(o)}}M||(i=document.head.appendChild(en()));try{wn(()=>{var e=Tn(()=>t(i));e.f|=S})}finally{r&&(De(!0),Oe(n))}}function Hr(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=Hr(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Ur(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Hr(e))&&(r&&(r+=` `),r+=t);return r}function Wr(e){return typeof e==`object`?Ur(e):e??``}var Gr=[...`
2
- \r\f\xA0\v`];function Kr(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||Gr.includes(r[o-1]))&&(s===r.length||Gr.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function qr(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 Jr(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Yr(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(Jr)),i&&c.push(...Object.keys(i).map(Jr));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=Jr(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+=qr(r)),i&&(n+=qr(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function Xr(e,t,n,r,i,a){var o=e[ie];if(M||o!==n||o===void 0){var s=Kr(n,r,a);(!M||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[ie]=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 Zr(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 Qr(e,t,n,r){var i=e[ae];if(M||i!==t){var a=Yr(t,r);(!M||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[ae]=t}else r&&(Array.isArray(r)?(Zr(e,n?.[0],r[0]),Zr(e,n?.[1],r[1],`important`)):Zr(e,n,r));return r}function $r(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return Te();for(var i of t.options)i.selected=n.includes(ni(i));return}for(i of t.options)if(qt(ni(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function ei(e){var t=new MutationObserver(()=>{$r(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),_n(()=>{t.disconnect()})}function ti(e,t,n=t){var r=new WeakSet,i=!0;fn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),ni);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&ni(o)}n(a),e.__value=a,L!==null&&r.add(L)}),xn(()=>{var a=t();if(e===document.activeElement){var o=L;if(r.has(o))return}if($r(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=ni(s),n(a))}e.__value=a,i=!1}),ei(e)}function ni(e){return`__value`in e?e.__value:e.value}var ri=Symbol(`is custom element`),ii=Symbol(`is html`),ai=le?`link`:`LINK`,oi=le?`progress`:`PROGRESS`;function si(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[se]=n,Ue(n),un()}}function ci(e,t){var n=ui(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==oi)||(e.value=t??``)}function li(e,t){var n=ui(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function $(e,t,n,r){var i=ui(e);M&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===ai)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ne]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&fi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function ui(e){return e[re]??={[ri]:e.nodeName.includes(`-`),[ii]:e.namespaceURI===Se}}var di=new Map;function fi(e){var t=e.getAttribute(`is`)||e.nodeName,n=di.get(t);if(n)return n;di.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 pi(e,t,n=t){var r=new WeakSet;fn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=mi(e)?hi(a):a,n(a),L!==null&&r.add(L),await sr(),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||ur(t)==null&&e.value)&&(n(mi(e)?hi(e.value):e.value),L!==null&&r.add(L)),Cn(()=>{var n=t();if(e===document.activeElement){var i=L;if(r.has(i))return}mi(e)&&n===hi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function mi(e){var t=e.type;return t===`number`||t===`range`}function hi(e){return e===``?null:+e}function gi(e,t){return e===t||e?.[k]===t}function _i(e={},t,n,r){var i=Ie.r,a=G;return xn(()=>{var o,s;return Cn(()=>{o=s,s=r?.()||[],ur(()=>{gi(n(...s),e)||(t(e,...s),o&&gi(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&&gi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function vi(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??=st(r),K(u)):(l&&(l=!1,c=s?ur(r):r),c);let f;if(o){var p=k in e||te in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=Qe(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&ge(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?st:ut)(()=>(v=!1,g()));o&&K(y);var b=G;return(function(e,t){if(arguments.length>0){let n=t?K(y):i&&o?Gt(e):e;return z(y,n),v=!0,c!==void 0&&(c=n),e}return zn&&v||b.f&16384?y.v:K(y)})}function yi(e){Ie===null&&A(`onMount`),vn(()=>{let t=ur(e);if(typeof t==`function`)return t})}function bi(e){Ie===null&&A(`onDestroy`),yi(()=>()=>ur(e))}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var xi=J(`<p class="session-path svelte-t9laac"> </p>`),Si=J(`<header class="app-header"><a class="brand" href="/" aria-label="Gestalt Mobile"><img class="brand-icon light-asset" src="/branding/p_glogo_grey.svg" alt=""/> <img class="brand-icon dark-asset" src="/branding/p_glogo_white.svg" alt=""/> <img class="brand-logotype light-asset" src="/branding/t_glogo_grey.svg" alt=""/> <img class="brand-logotype dark-asset" src="/branding/t_glogo_white.svg" alt=""/></a> <!> <button class="menu-trigger" type="button" popovertarget="configuration-panel" aria-label="Open configuration"><span class="menu-lines" aria-hidden="true"><span></span><span></span><span></span></span></button></header> <div id="configuration-panel" class="configuration-panel" popover="auto"><div class="configuration-brand" aria-label="Dyne"><img class="configuration-logo light-asset" src="/branding/dyne-logotype-black.svg" alt=""/> <img class="configuration-logo dark-asset" src="/branding/dyne-logotype-white.svg" alt=""/></div> <label class="appearance-control" for="appearance"><span aria-hidden="true">aA</span> <select id="appearance" aria-label="Appearance"><option>System</option><option>Light</option><option>Dark</option></select></label></div>`,1);function Ci(e,t){Re(t,!0);let n=vi(t,`sessionPath`,3,null);var r=Si(),i=V(r),a=H(B(i),2),o=e=>{var t=xi(),r=B(t,!0);P(t),U(()=>{$(t,`title`,n()),X(r,n())}),Y(e,t)};Z(a,e=>{n()&&e(o)}),Ae(2),P(i);var s=H(i,2),c=H(B(s),2),l=H(B(c),2),u=B(l);u.value=u.__value=`system`;var d=H(u);d.value=d.__value=`light`;var f=H(d);f.value=f.__value=`dark`,P(l);var p;ei(l),P(c),P(s),U(()=>{p!==(p=t.theme)&&(l.value=(l.__value=t.theme)??``,$r(l,t.theme))}),q(`change`,l,e=>t.onthemechange(e.currentTarget.value)),Y(e,r),ze()}vr([`change`]);var wi=J(`<details><summary> </summary><pre> </pre></details>`),Ti=J(`<section aria-labelledby="activities-title"><h3 id="activities-title">Activity</h3> <!></section>`);function Ei(e,t){Re(t,!0);var n=Er(),r=V(n),i=e=>{var n=Ti();Q(H(B(n),2),17,()=>t.activities,e=>e.id,(e,t)=>{var n=wi(),r=B(n),i=B(r,!0);P(r);var a=H(r),o=B(a,!0);P(a),P(n),U(()=>{X(i,K(t).label),X(o,K(t).detail)}),Y(e,n)}),P(n),Y(e,n)};Z(r,e=>{t.activities.length&&e(i)}),Y(e,n),ze()}function Di(e){return!ki(e)||!Array.isArray(e.questions)?[]:e.questions.flatMap(e=>!ki(e)||typeof e.id!=`string`||typeof e.header!=`string`||typeof e.question!=`string`?[]:[{id:e.id,header:e.header,question:e.question,isSecret:e.isSecret===!0,options:Array.isArray(e.options)?e.options.flatMap(e=>ki(e)&&typeof e.label==`string`&&typeof e.description==`string`?[{label:e.label,description:e.description}]:[]):[]}])}function Oi(e){return{answers:Object.fromEntries(e.filter(e=>e.answer.trim()).map(e=>[e.id,{answers:[e.answer]}]))}}function ki(e){return typeof e==`object`&&!!e}var Ai=J(`<button type="button"> </button>`),ji=J(`<label> </label> <input/> <!>`,1),Mi=J(`<form><!> <button type="submit">Send answers</button></form>`),Ni=J(`<p>Grant the requested permissions for this turn only.</p><button type="button">Approve</button>`,1),Pi=J(`<button type="button">Approve</button><button type="button">Deny</button>`,1),Fi=J(`<article><p> </p> <!></article>`),Ii=J(`<section aria-labelledby="interactions-title"><h3 id="interactions-title">Codex needs your decision</h3> <!></section>`);function Li(e,t){Re(t,!0);var n=Er(),r=V(n),i=e=>{var n=Ii();Q(H(B(n),2),17,()=>t.interactions,e=>e.requestId,(e,n)=>{var r=Fi(),i=B(r),a=B(i,!0);P(i);var o=H(i,2),s=e=>{let r=I(()=>Di(K(n).payload));var i=Mi(),a=B(i);Q(a,17,()=>K(r),e=>e.id,(e,r)=>{var i=ji(),a=V(i),o=B(a);P(a);var s=H(a,2);si(s),Q(H(s,2),17,()=>K(r).options,e=>e.label,(e,n)=>{var i=Ai(),a=B(i,!0);P(i),U(()=>X(a,K(n).label)),q(`click`,i,()=>t.onanswer(K(r).id,K(n).label)),Y(e,i)}),U(()=>{$(a,`for`,`${K(n).requestId}-${K(r).id}`),X(o,`${K(r).header??``}: ${K(r).question??``}`),$(s,`id`,`${K(n).requestId}-${K(r).id}`),$(s,`type`,K(r).isSecret?`password`:`text`),ci(s,t.answers[K(r).id]??``)}),q(`input`,s,e=>t.onanswer(K(r).id,e.currentTarget.value)),Y(e,i)});var o=H(a,2);P(i),U(()=>o.disabled=!K(r).length),_r(`submit`,i,e=>{e.preventDefault(),t.onuserinput(K(n))}),Y(e,i)},c=e=>{var r=Ni();q(`click`,H(V(r)),()=>t.onpermission(K(n))),Y(e,r)},l=e=>{var r=Pi(),i=V(r),a=H(i);q(`click`,i,()=>t.ondecision(K(n).requestId,`accept`)),q(`click`,a,()=>t.ondecision(K(n).requestId,`decline`)),Y(e,r)};Z(o,e=>{K(n).kind===`userInput`?e(s):K(n).kind===`permissionsApproval`?e(c,1):e(l,-1)}),P(r),U(()=>X(a,K(n).kind)),Y(e,r)}),P(n),Y(e,n)};Z(r,e=>{t.interactions.length&&e(i)}),Y(e,n),ze()}vr([`input`,`click`]);function Ri(e){return e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.isComposing}var zi=J(`Ready <span class="block-cursor svelte-1264sfg" aria-hidden="true"></span>`,1),Bi=J(`<button type="button" class="svelte-1264sfg">Interrupt</button>`),Vi=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 Hi(e,t){Re(t,!0);function n(e){!Ri(e)||t.activeTurnId||t.starting||!t.message.trim()||(e.preventDefault(),t.onsend())}var r=Vi(),i=B(r),a=B(i),o=e=>{var t=zi();Ae(),Y(e,t)},s=e=>{var n=Tr();U(()=>X(n,t.status)),Y(e,n)};Z(a,e=>{t.status===`Ready.`?e(o):e(s,-1)}),P(i);var c=H(i,2),l=B(c);cn(l);var u=H(l,2);P(c);var d=H(c,2),f=e=>{var n=Bi();q(`click`,n,function(...e){t.oninterrupt?.apply(this,e)}),Y(e,n)};Z(d,e=>{t.activeTurnId&&e(f)}),P(r),U(e=>{$(i,`aria-label`,t.status),ci(l,t.message),u.disabled=e},[()=>!!t.activeTurnId||t.starting||!t.message.trim()]),_r(`submit`,r,e=>{e.preventDefault(),t.onsend()}),q(`input`,l,e=>t.onchange(e.currentTarget.value)),q(`keydown`,l,n),Y(e,r),ze()}vr([`input`,`keydown`,`click`]);function Ui(e){let t=[],n=[],r=()=>{n.length&&(t.push({id:n.at(-1).id,kind:`assistant`,commentary:n.map(e=>e.text).join(`
3
-
4
- `),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(`
5
-
6
- `):null,answer:i.text,...i.occurredAt?{occurredAt:i.occurredAt}:{}}),n=[]}return r(),t}function Wi(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 Gi(e){return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}).format(e)}function Ki(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(...qi(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(...qi(i)),t}function qi(e){let t=[],n=e.split(`
7
- `),r=0,i=e=>{let i=n.slice(r,e).join(`
8
- `);i&&t.push({kind:`text`,parts:Xi(i)})};for(let e=0;e<n.length-1;e+=1){let a=Ji(n[e]??``),o=Ji(n[e+1]??``);if(!a||!o||a.length!==o.length||!o.every(Yi))continue;i(e),e+=2;let s=[];for(;e<n.length;){let t=Ji(n[e]??``);if(!t||t.length!==a.length)break;s.push(t),e+=1}t.push({kind:`table`,headers:a.map(Xi),rows:s.map(e=>e.map(Xi))}),r=e,--e}return i(n.length),t.length?t:[{kind:`text`,parts:Xi(e)}]}function Ji(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 Yi(e){return/^:?-{3,}:?$/.test(e)}function Xi(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 Zi=(e,t=d)=>{var n=Er();Q(V(n),17,t,Mr,(e,t)=>{var n=Er(),r=V(n),i=e=>{var n=$i(),r=B(n,!0);P(n),U(()=>{$(n,`href`,K(t).href),X(r,K(t).text)}),Y(e,n)},a=e=>{var n=ea(),r=B(n,!0);P(n),U(()=>X(r,K(t).text)),Y(e,n)},o=e=>{var n=Tr();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)},Qi=(e,t=d)=>{var n=Er();Q(V(n),17,()=>Ki(t()),Mr,(e,t)=>{var n=Er(),r=V(n),i=e=>{var n=ta(),r=B(n),i=B(r,!0);P(r),P(n),U(()=>X(i,K(t).text)),Y(e,n)},a=e=>{var n=aa(),r=B(n),i=B(r),a=B(i);Q(a,21,()=>K(t).headers,Mr,(e,t)=>{var n=na();Zi(B(n),()=>K(t)),P(n),Y(e,n)}),P(a),P(i);var o=H(i);Q(o,21,()=>K(t).rows,Mr,(e,t)=>{var n=ia();Q(n,21,()=>K(t),Mr,(e,t)=>{var n=ra();Zi(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=oa();Zi(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)},$i=J(`<a target="_blank" rel="noreferrer"> </a>`),ea=J(`<code class="svelte-1im954t"> </code>`),ta=J(`<pre class="svelte-1im954t"><code class="svelte-1im954t"> </code></pre>`),na=J(`<th scope="col" class="svelte-1im954t"><!></th>`),ra=J(`<td class="svelte-1im954t"><!></td>`),ia=J(`<tr></tr>`),aa=J(`<div class="table-scroll svelte-1im954t"><table class="svelte-1im954t"><thead><tr></tr></thead><tbody></tbody></table></div>`),oa=J(`<div><!></div>`),sa=J(`<time class="svelte-1im954t"> <!></time>`),ca=J(`<div class="entry-heading svelte-1im954t"><strong>prompt</strong> <!></div> <div class="entry-content svelte-1im954t"><!></div>`,1),la=J(`<button class="commentary-toggle svelte-1im954t" type="button"><span aria-hidden="true"> </span>commentary</button>`),ua=J(`<div class="commentary-content svelte-1im954t"><!></div>`),da=J(`<section class="answer-turn"><div class="entry-heading svelte-1im954t"><strong>answer</strong> <!> <!></div> <!> <div class="entry-content svelte-1im954t"><!></div></section>`),fa=J(`<details><summary>commentary</summary> <!></details>`),pa=J(`<li><!></li>`),ma=J(`<ol aria-label="Chat messages" class="svelte-1im954t"></ol>`);function ha(e,t){Re(t,!0);let n=I(()=>Ui(t.messages)),r=Gt({});var i=ma();Q(i,23,()=>K(n),e=>e.id,(e,t,i)=>{var a=pa(),o=B(a),s=e=>{var r=ca(),a=V(r),o=H(B(a),2),s=e=>{var r=sa(),a=B(r),o=H(a),s=e=>{var r=Tr();U(e=>X(r,`· ${e??``}`),[()=>Wi(K(n)[K(i)-1]?.occurredAt,K(t).occurredAt)]),Y(e,r)},c=I(()=>Wi(K(n)[K(i)-1]?.occurredAt,K(t).occurredAt));Z(o,e=>{K(c)&&e(s)}),P(r),U((e,t)=>{$(r,`datetime`,e),X(a,`${t??``} `)},[()=>new Date(K(t).occurredAt).toISOString(),()=>Gi(K(t).occurredAt)]),Y(e,r)};Z(o,e=>{K(t).occurredAt&&e(s)}),P(a);var c=H(a,2);Qi(B(c),()=>K(t).text),P(c),Y(e,r)},c=e=>{var a=da(),o=B(a),s=H(B(o),2),c=e=>{var n=la(),i=B(n),a=B(i,!0);P(i),Ae(),P(n),U(e=>{$(n,`aria-expanded`,e),$(n,`aria-controls`,`commentary-${K(t).id}`),X(a,r[K(t).id]?`⌄`:`>`)},[()=>!!r[K(t).id]]),q(`click`,n,()=>r[K(t).id]=!r[K(t).id]),Y(e,n)};Z(s,e=>{K(t).commentary&&e(c)});var l=H(s,2),u=e=>{var r=sa(),a=B(r),o=H(a),s=e=>{var r=Tr();U(e=>X(r,`· ${e??``}`),[()=>Wi(K(n)[K(i)-1]?.occurredAt,K(t).occurredAt)]),Y(e,r)},c=I(()=>Wi(K(n)[K(i)-1]?.occurredAt,K(t).occurredAt));Z(o,e=>{K(c)&&e(s)}),P(r),U((e,t)=>{$(r,`datetime`,e),X(a,`${t??``} `)},[()=>new Date(K(t).occurredAt).toISOString(),()=>Gi(K(t).occurredAt)]),Y(e,r)};Z(l,e=>{K(t).occurredAt&&e(u)}),P(o);var d=H(o,2),f=e=>{var n=ua();Qi(B(n),()=>K(t).commentary),P(n),U(()=>$(n,`id`,`commentary-${K(t).id}`)),Y(e,n)};Z(d,e=>{K(t).commentary&&r[K(t).id]&&e(f)});var p=H(d,2);Qi(B(p),()=>K(t).answer),P(p),P(a),Y(e,a)},l=e=>{var n=fa();Qi(H(B(n),2),()=>K(t).commentary),P(n),Y(e,n)};Z(o,e=>{K(t).kind===`user`?e(s):K(t).answer?e(c,1):K(t).commentary&&e(l,2)}),P(a),U(()=>Xr(a,1,Wr(K(t).kind===`user`?`prompt-turn`:`answer-item`),`svelte-1im954t`)),Y(e,a)}),P(i),Y(e,i),ze()}vr([`click`]);var ga=[150,300,600];function _a(e){return new Promise(t=>setTimeout(t,e))}function va(e){return e.status===502||e.status===503||e.status===504}async function ya(e=fetch){for(let t=0;t<=ga.length;t+=1){let n;try{n=await e(`/api/bootstrap`)}catch(e){if(e instanceof Error&&e.name===`AbortError`)throw e;if(t===ga.length)throw Error(`BOOTSTRAP_FAILED`);await _a(ga[t]);continue}if(n.ok)return n.json();if(!va(n)||t===ga.length)throw Error(`BOOTSTRAP_FAILED`);await _a(ga[t])}throw Error(`BOOTSTRAP_FAILED`)}function ba(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(`
9
- `);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(`
10
- `)}:e.kind===`tool`&&typeof e.name==`string`?{id:e.id,label:`Tool · ${String(e.status??`unknown`)}`,detail:e.name}:null}var xa=`gestalt-mobile`,Sa=2,Ca=[`settings`,`drafts`,`cursors`,`messages`];function wa(e){return new Promise((t,n)=>{let r=e.open(xa,Sa);r.onupgradeneeded=()=>{for(let e of Ca)r.result.objectStoreNames.contains(e)||r.result.createObjectStore(e)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}function Ta(e,t,n){return Oa(e.transaction(t,`readonly`).objectStore(t).get(n))}function Ea(e,t,n,r){return Oa(e.transaction(t,`readwrite`).objectStore(t).put(r,n))}function Da(e,t,n){return Oa(e.transaction(t,`readwrite`).objectStore(t).delete(n))}function Oa(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}var ka=`messages`;function Aa(e){return e.slice(-200)}function ja(e=globalThis.indexedDB){if(!e)return{read:async()=>[],write:async()=>{}};let t=wa(e);return{async read(e){try{return await Ta(await t,ka,e)??[]}catch{return[]}},async write(e,n){try{await Ea(await t,ka,e,Aa(n))}catch{}}}}var Ma={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 Na(e,t){let n=e instanceof Error?e.message:``,r=Object.hasOwn(Ma,n)?n:t;return{code:r,message:Ma[r]}}var Pa={error:null,success:5e3,info:7e3};function Fa(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=Pa[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 Ia=J(`<small class="svelte-1a0rutm"> </small>`),La=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>`),Ra=J(`<div class="toast-viewport svelte-1a0rutm" aria-label="Notifications"></div>`);function za(e,t){Re(t,!0);let n=R([]),r=I(()=>K(n).slice(-3));yi(()=>t.queue.subscribe(e=>z(n,e)));var i=Ra();Q(i,21,()=>K(r),e=>e.id,(e,n)=>{var r=La();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=Ia(),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=Xr(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`)}),_r(`pointerenter`,r,()=>t.queue.pause(K(n).id,`hover`)),_r(`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),ze()}vr([`focusin`,`focusout`,`click`]);var Ba=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 Va(e,t){Re(t,!0);let n=Fa();yi(()=>{t.variant===`stacked`&&n.enqueue({kind:`success`,message:`Cloned.`}),n.enqueue({kind:`error`,code:`GIT_CLONE_FAILED`,message:`Clone failed.`})});var r=Ba();za(H(V(r),4),{get queue(){return n}}),Y(e,r),ze()}var Ha={sessionBase:()=>!0,gitRepositoryTarget:e=>e.isGitRepository,cloneDestination:e=>!e.isGitRepository};function Ua(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 Wa(e,t){let n=new Set(e);return t.isGitRepository||(n.has(t.id)?n.delete(t.id):n.add(t.id)),n}function Ga(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 Ka(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 qa(e,t){for(let n of e){if(n.id===t)return n;let e=qa(n.children,t);if(e)return e}}function Ja(e,t,n,r){if(e){let i=qa(n,e);if(i&&r(i))return i.id;let a=Ka(t,e);for(let e of a.toReversed()){let t=qa(n,e);if(t&&r(t))return t.id}}return Ya(n).find(r)?.id??null}function Ya(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}var Xa=J(`<button class="disclosure svelte-6z3q4v" type="button" tabindex="-1"><span aria-hidden="true"> </span></button>`),Za=J(`<span class="disclosure-spacer svelte-6z3q4v" aria-hidden="true"></span>`),Qa=J(`<span class="repository-badge svelte-6z3q4v">Git</span>`),$a=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>`),eo=J(`<div class="filesystem-tree svelte-6z3q4v" role="tree"></div>`);function to(e,t){Re(t,!0);let n=vi(t,`isSelectable`,3,()=>!0),r=R(null),i=Gt({}),a=I(()=>Ga(t.roots,t.expandedIds)),o=I(()=>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){z(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(Wa(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=eo();Q(m,23,()=>K(a),e=>e.node.id,(e,a,l)=>{let u=I(()=>K(a).node),m=I(()=>s(K(u)));var h=$a();let g;var _=B(h),v=e=>{var n=Xa(),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,Za())};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),k=e=>{Y(e,Qa())};Z(O,e=>{K(u).isGitRepository&&e(k)}),P(b),_i(b,(e,t)=>i[t.id]=e,e=>i?.[e.id],()=>[K(u)]),P(h),U((e,n,r,i,s)=>{g=Qr(h,``,g,e),x=Xr(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)]),_r(`focus`,b,()=>z(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),ze()}vr([`click`,`keydown`]);var no=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 ro(e,t){Re(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=R(Gt(new Set([`.`,`dyne`,`dyne/mobile-applications`]))),a=R(null),o=I(()=>t.context===`sessions`?`dyne/mobile-applications`:`dyne/mobile-applications/gestalt-mobile`),s=I(()=>K(a)??K(o));var c=no(),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=I(()=>t.context===`sessions`?`Session base`:`Git repository`),n=I(()=>t.context===`sessions`?Ha.sessionBase:Ha.gitRepositoryTarget);to(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=>z(i,e,!0),onselect:e=>z(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),ze()}function io(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 ao(e,t=Date.now()){let n=Date.parse(e);if(!Number.isFinite(n))return`unknown time`;let r=Math.round((n-t)/1e3),i=[[`year`,31536e3],[`month`,2592e3],[`week`,604800],[`day`,86400],[`hour`,3600],[`minute`,60],[`second`,1]],[a,o]=i.find(([,e])=>Math.abs(r)>=e)??i.at(-1);return new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}).format(Math.round(r/o),a)}var oo=J(`<p class="clone-status svelte-pudr3t" role="status"> </p>`),so=J(`<option> </option>`),co=J(`<section aria-label="Confirm push"><p> </p> <button type="button">Confirm push</button> <button type="button">Cancel</button></section>`),lo=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>`),uo=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>`),fo=J(`<div class="git-overview svelte-pudr3t"><div class="git-status svelte-pudr3t"><label for="git-branch">Branch</label> <select id="git-branch"></select> <p class="svelte-pudr3t"> </p> <p class="svelte-pudr3t"> </p> <p class="svelte-pudr3t"><time> </time></p> <p class="svelte-pudr3t"> </p></div> <div class="git-actions svelte-pudr3t"><button type="button" class="svelte-pudr3t"><span aria-hidden="true">↑</span> Push</button> <button type="button" class="svelte-pudr3t"><span aria-hidden="true">↓</span> </button></div></div> <!> <!>`,1),po=J(`<p>This workspace is not a Git repository.</p>`),mo=J(`<p role="status">Loading repository status…</p>`),ho=J(`<p><strong> </strong> is available as a Clone destination. Select a Git
11
- 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),go=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),_o=J(`<p role="alert"> </p>`),vo=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 yo(e,t){Re(t,!0);let n=R(``),r=I(()=>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=vo(),o=H(B(a),2),s=H(B(o),2);{let e=I(()=>t.selectedWorkspace?.id??null);to(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);si(m),P(p);var h=H(p,2),g=B(h,!0);P(h),P(l);var _=H(l,4),v=e=>{var n=oo(),r=B(n,!0);P(n),U(()=>X(r,t.cloneStatus)),Y(e,n)};Z(_,e=>{t.cloneStatus&&e(v)}),P(c);var y=H(c,2),b=H(B(y),2),x=e=>{var n=Er(),r=V(n),i=e=>{var n=Er(),r=V(n),i=e=>{var n=fo(),r=V(n),i=B(r),a=H(B(i),2);Q(a,20,()=>t.summary.branches??[],e=>e,(e,t)=>{var n=so(),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;ei(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=co(),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=uo(),r=H(B(n),2);Q(r,21,()=>t.summary.commits,e=>e.hash,(e,t)=>{var n=lo(),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)},[()=>ao(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??``)??``,$r(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`}`)},[()=>io(t.summary.fetchedAt)]),q(`change`,a,e=>t.oncheckout(e.currentTarget.value)),q(`click`,_,function(...e){t.onopenpushconfirmation?.apply(this,e)}),q(`click`,v,function(...e){t.onpull?.apply(this,e)}),Y(e,n)},a=e=>{Y(e,po())};Z(r,e=>{t.summary.available?e(i):e(a,-1)}),Y(e,n)},a=e=>{Y(e,mo())};Z(r,e=>{t.summary?e(i):t.error||e(a,1)}),Y(e,n)},S=e=>{var n=ho(),r=V(n),i=B(r),a=B(i,!0);P(i),Ae(),P(r),Ae(2),U(()=>X(a,t.selectedWorkspace.name)),Y(e,n)},C=e=>{var t=go();Ae(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=_o(),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`)}),_r(`submit`,c,i),pi(m,()=>K(n),e=>z(n,e)),Y(e,a),ze()}vr([`change`,`click`]);function bo(e,t,n,r,i){let a=new Set(xo(e).filter(e=>e.isGitRepository).map(e=>e.id)),o=qa(t,n),s=o?xo(o.children).filter(e=>e.isGitRepository&&!a.has(e.id)):[],c=So(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&&Ka(t,u).forEach(e=>d.add(e)),!l&&o&&d.add(o.id),{selectedId:u,expandedIds:d}}function xo(e){let t=[],n=e=>{t.push(e),e.children.forEach(n)};return e.forEach(n),t}function So(e){return(e.trim().replace(/[?#].*$/,``).replace(/\/+$/,``).split(/[/:]/).at(-1)??``).replace(/\.git$/i,``)}function Co(e,t,n,r){return[...e,{id:t,role:`user`,text:n,...r?{occurredAt:r}:{},complete:!0}]}function wo(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 To(e,t){return e.map(e=>e.id===t?{...e,complete:!0}:e)}function Eo(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 Do(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){let r=await e(n);if(!r.ok)throw await t(r);return r.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}),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`),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 Oo(e,t=globalThis.navigator?.clipboard,n=Ao){if(!t)return ko(e,n);try{return await t.writeText(e),!0}catch{return ko(e,n)}}function ko(e,t){try{return t(e)}catch{return!1}}function Ao(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 jo(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 Mo(e,t,n,r=()=>{}){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(t.event.type===`agentMessageDelta`){let e=t.event.payload.text;e&&n(e)}return t.event.sequence}function No(e){return e?`Codex is working…`:`Ready.`}function Po(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 Fo=`settings`,Io=`drafts`,Lo=`cursors`,Ro=`selected-session`;function zo(e=globalThis.indexedDB){if(!e)return Bo;let t=wa(e);return{async readSelectedSession(){try{return await Ta(await t,Fo,Ro)??null}catch{return null}},async saveSelectedSession(e){try{let n=await t;e?await Ea(n,Fo,Ro,e):await Da(n,Fo,Ro)}catch{}},async readDraft(e){try{return await Ta(await t,Io,e)??``}catch{return``}},async saveDraft(e,n){try{await Ea(await t,Io,e,n)}catch{}},async readCursor(e){try{let n=await Ta(await t,Lo,e);return typeof n==`number`&&Number.isSafeInteger(n)&&n>=0?n:0}catch{return 0}},async saveCursor(e,n){try{await Ea(await t,Lo,e,n)}catch{}}}}var Bo={readSelectedSession:async()=>null,saveSelectedSession:async()=>{},readDraft:async()=>``,saveDraft:async()=>{},readCursor:async()=>0,saveCursor:async()=>{}};function Vo(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 Ho(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 Uo(e){let t=/^\/home\/[^/]+/.exec(e)?.[0];if(!t)return e;let n=e.slice(t.length);return n?`~${n}`:`~/`}var Wo=J(`<time> </time>`),Go=J(`<div> </div>`),Ko=J(`<span class="profile-badge svelte-hxb22h"> </span>`),qo=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>`),Jo=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>`),Yo=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>`),Xo=J(`<ul class="session-list svelte-hxb22h" aria-label="Saved sessions"></ul>`),Zo=J(`<p>No saved sessions yet.</p>`),Qo=J(`<option> </option>`),$o=J(`<p class="skills-profile-error svelte-hxb22h" role="alert"> </p>`),es=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>`),ts=J(`<ul class="session-list recent-session-list svelte-hxb22h" aria-label="Recent sessions"></ul>`),ns=J(`<p>No other recent Codex sessions found.</p>`),rs=J(`<section aria-labelledby="sessions-title"><h2 id="sessions-title" class="visually-hidden">Sessions</h2> <!> <!> <form><section class="session-base svelte-hxb22h" aria-labelledby="session-base-title"><div class="session-base-heading svelte-hxb22h"><h3 id="session-base-title" class="svelte-hxb22h">Session base</h3> <p class="svelte-hxb22h">Select the folder or repository Codex should use as its working directory.</p></div> <div class="tree-panel svelte-hxb22h"><!></div></section> <section class="session-settings svelte-hxb22h" aria-label="New session settings"><div class="session-setting-labels svelte-hxb22h"><label for="skills-profile" class="svelte-hxb22h">Skills profile</label> <label for="sandbox" class="svelte-hxb22h">Sandbox</label> <label for="approval-policy" class="svelte-hxb22h">Approval policy</label></div> <div class="session-setting-controls svelte-hxb22h"><select id="skills-profile" class="svelte-hxb22h"><option>Default</option><!></select> <select id="sandbox" class="svelte-hxb22h"><option>workspace-write</option><option>read-only</option><option>danger-full-access</option></select> <select id="approval-policy" class="svelte-hxb22h"><option>untrusted</option><option>on-request</option><option>never</option></select></div> <!> <div class="session-secondary-actions svelte-hxb22h"><button id="manage-skill-profiles" type="button">Manage skill profiles</button> <div class="model-control svelte-hxb22h"><label for="model">Model</label> <select id="model"></select></div> <button class="new-session-button svelte-hxb22h" type="submit"> </button></div></section></form> <section aria-labelledby="recent-sessions-title"><h3 id="recent-sessions-title">Recent sessions</h3> <!></section></section>`);function is(e,t){Re(t,!0);let n=vi(t,`models`,19,()=>[]),r=vi(t,`selectedModel`,3,``),i=vi(t,`onmodelchange`,3,()=>{}),a=I(()=>t.sessions.filter(e=>e.state===`ready`||e.state===`turnActive`)),o=I(()=>t.sessions.filter(e=>e.state!==`ready`&&e.state!==`turnActive`)),s=I(()=>t.recentSessions.filter(e=>!K(a).some(t=>t.threadId===e.id))),c=I(()=>qa(t.workspaceTree,t.workspaceId));var l=rs(),u=H(B(l),2),d=e=>{var n=Jo(),r=H(B(n),2);Q(r,21,()=>K(a),e=>e.id,(e,n)=>{let r=I(()=>Ho(K(n)));var i=qo();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=Wo(),n=B(t,!0);P(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>Vo(K(r).updatedAt)]),Y(e,t)},f=e=>{var t=Go(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>Vo(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=Ko(),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=Ko(),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=Ko(),r=B(t);P(t),U(()=>X(r,`Skills profile: ${K(n).effectiveSkillSelection.selectedProfileName??``}`)),Y(e,t)};Z(y,e=>{K(n).effectiveSkillSelection?.selectedProfileName&&e(b)}),P(l),P(c),P(i),U(e=>{a=Xr(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)},[()=>Uo(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=Xo();Q(n,21,()=>K(o),e=>e.id,(e,n)=>{let r=I(()=>Ho(K(n)));var i=Yo(),a=B(i),o=B(a),s=H(o,2);P(a);var c=H(a,2),l=B(c),u=e=>{var t=Wo(),n=B(t,!0);P(t),U((e,r)=>{$(t,`datetime`,e),X(n,r)},[()=>new Date(K(r).updatedAt).toISOString(),()=>Vo(K(r).updatedAt)]),Y(e,t)},d=e=>{var t=Go(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>Vo(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=Ko(),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=Ko(),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=Ko(),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),[()=>Uo(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,Zo())};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=I(()=>K(c)?.id??null);to(v,{get roots(){return t.workspaceTree},get expandedIds(){return t.expandedIds},get selectedId(){return K(e)},get isSelectable(){return Ha.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=Qo(),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;ei(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;ei(w);var O=H(w,2),k=B(O);k.value=k.__value=`untrusted`;var te=H(k);te.value=te.__value=`on-request`;var ne=H(te);ne.value=ne.__value=`never`,P(O);var re;ei(O),P(b);var ie=H(b,2),ae=e=>{var n=$o(),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=Qo(),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 A;ei(le),P(ce);var ue=H(ce,2),de=B(ue,!0);P(ue),P(oe),P(y),P(h);var fe=H(h,2),pe=H(B(fe),2),me=e=>{var n=ts();Q(n,21,()=>K(s),e=>e.id,(e,n)=>{var r=es(),i=B(r),a=B(i),o=e=>{var t=Wo(),r=B(t,!0);P(t),U((e,n)=>{$(t,`datetime`,e),X(r,n)},[()=>new Date(K(n).recencyAt*1e3).toISOString(),()=>Vo(K(n).recencyAt*1e3)]),Y(e,t)},s=e=>{var t=Go(),n=B(t,!0);P(t),U(e=>X(n,e),[()=>Vo(null)]),Y(e,t)};Z(a,e=>{K(n).recencyAt===null?e(s,-1):e(o)});var c=H(a,2),l=B(c,!0);P(c),P(i);var u=H(i,2),d=B(u),f=H(d,2);P(u),P(r),U(e=>X(l,e),[()=>Uo(K(n).cwd)]),q(`click`,d,()=>t.onopenrecent(K(n))),q(`click`,f,()=>t.oncopyresume(K(n).resumeCommand)),Y(e,r)}),P(n),Y(e,n)},he=e=>{Y(e,ns())};Z(pe,e=>{K(s).length?e(me):e(he,-1)}),P(fe),P(l),U(()=>{C!==(C=t.selectedSkillProfile)&&(x.value=(x.__value=t.selectedSkillProfile)??``,$r(x,t.selectedSkillProfile)),ee!==(ee=t.sandbox)&&(w.value=(w.__value=t.sandbox)??``,$r(w,t.sandbox)),re!==(re=t.approvalPolicy)&&(O.value=(O.__value=t.approvalPolicy)??``,$r(O,t.approvalPolicy)),le.disabled=n().length===0,A!==(A=r())&&(le.value=(le.__value=r())??``,$r(le,r())),ue.disabled=!K(c)||t.startingSession,X(de,t.startingSession?`Creating…`:`Create session`)}),_r(`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),ze()}vr([`click`,`change`]);function as(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 os(e,t,n=!0){let r=n?[`sessions`,`git`,`chat`]:[`sessions`,`git`];return r[(r.indexOf(e)+t+r.length)%r.length]}var ss=J(`<nav class="bottom-navigation" aria-label="Primary"><button>Sess<wbr/>ions</button> <button>Git</button> <button>Chat</button></nav>`);function cs(e,t){Re(t,!0);let n={};function r(e){let r=e.key===`ArrowRight`?1:e.key===`ArrowLeft`?-1:null;if(r===null)return;e.preventDefault();let i=os(t.activeTab,r,t.chatEnabled);t.onselect(i),n[i]?.focus()}var i=ss(),a=B(i);_i(a,e=>n.sessions=e,()=>n?.sessions);var o=H(a,2);_i(o,e=>n.git=e,()=>n?.git);var s=H(o,2);_i(s,e=>n.chat=e,()=>n?.chat),P(i),U(()=>{$(a,`aria-pressed`,t.activeTab===`sessions`),$(o,`aria-pressed`,t.activeTab===`git`),$(s,`aria-pressed`,t.activeTab===`chat`),s.disabled=!t.chatEnabled}),q(`keydown`,a,r),q(`click`,a,()=>t.onselect(`sessions`)),q(`keydown`,o,r),q(`click`,o,()=>t.onselect(`git`)),q(`keydown`,s,r),q(`click`,s,()=>t.onselect(`chat`)),Y(e,i),ze()}vr([`keydown`,`click`]);var ls=J(`<option> </option>`),us=J(`<p id="skills-status" aria-live="polite">Loading skills…</p>`),ds=J(`<p id="skills-status">No skills were discovered for this workspace and Codex profile.</p>`),fs=J(`<p id="skills-status" class="notice svelte-dg6sjj" role="status"> </p>`),ps=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert"> </p>`),ms=J(`<p id="skills-status" class="error svelte-dg6sjj" role="alert" tabindex="-1"> </p>`),hs=J(`<p id="skills-status" role="status">Profile saved.</p>`),gs=J(`<p id="skills-status" role="status">Profile deleted.</p>`),_s=J(`<p class="svelte-dg6sjj"> </p>`),vs=J(`<li> </li>`),ys=J(`<dt class="svelte-dg6sjj">Tool dependencies</dt> <dd class="svelte-dg6sjj"><ul class="svelte-dg6sjj"></ul></dd>`,1),bs=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>`),xs=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),Ss=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 Cs(e,t){Re(t,!0);let n=vi(t,`skillsState`,7),r=vi(t,`heading`,3,`Manage skill profiles`),i=R(0),a=R(null),o=R(null),s=R(null),c=R(null),l=R(`__new__`),u=I(()=>(K(i),n())),d=I(()=>K(u).profiles.filter(e=>!(`error`in e)));function f(){n(Object.assign(Object.create(Object.getPrototypeOf(n())),n())),z(i,K(i)+1)}async function p(){await t.onrefresh(),f()}function m(e){z(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`&&(z(l,K(u).selectedProfileName,!0),t.onprofileschange()),K(u).status.kind===`save-failed`&&(await sr(),K(a)?.focus())}function g(){K(c)?.showModal()}async function _(){K(c)?.close(),await K(u).deleteSelectedProfile(),f(),K(u).status.kind===`deleted`&&(z(l,`__new__`),t.onprofileschange()),await sr(),K(o)?.focus()}async function v(){K(c)?.close(),await sr(),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=Ss(),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=ls(),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),_i(D,e=>z(o,e),()=>K(o));var k=H(D,4);si(k),P(E);var te=H(E,2),ne=B(te,!0);P(te);var re=H(te,2),ie=B(re);_i(ie,e=>z(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 A=H(ce,2),ue=B(A),de=H(ue,2);P(A),P(se),_i(se,e=>z(c,e),()=>K(c));var fe=H(se,2),pe=e=>{Y(e,us())},me=e=>{Y(e,ds())},he=e=>{var t=fs(),n=B(t);P(t),U(()=>X(n,`Discovery warning: ${K(u).status.message??``}`)),Y(e,t)},ge=e=>{var t=ps(),n=B(t,!0);P(t),U(()=>X(n,K(u).status.message)),Y(e,t)},_e=e=>{var t=ms(),n=B(t,!0);P(t),_i(t,e=>z(a,e),()=>K(a)),U(()=>X(n,K(u).status.message)),Y(e,t)},ve=e=>{Y(e,hs())},ye=e=>{Y(e,gs())},be=e=>{var t=ps(),n=B(t,!0);P(t),U(()=>X(n,K(u).status.message)),Y(e,t)};Z(fe,e=>{K(u).status.kind===`loading`?e(pe):K(u).status.kind===`empty`?e(me,1):K(u).status.kind===`warning`?e(he,2):K(u).status.kind===`invalid-profile`||K(u).status.kind===`error`?e(ge,3):K(u).status.kind===`save-failed`?e(_e,4):K(u).status.kind===`saved`?e(ve,5):K(u).status.kind===`deleted`?e(ye,6):K(u).status.kind===`delete-failed`&&e(be,7)});var xe=H(fe,2),j=e=>{var t=xs(),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=bs();let r;var i=B(n),a=B(i);si(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=_s(),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=_s(),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=ys(),r=H(V(n),2),i=B(r);Q(i,21,()=>K(t).dependencies.tools,e=>`${e.type}:${e.value}`,(e,t)=>{var n=vs(),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=Qr(n,``,r,e),$(i,`for`,`skill-${K(t).path}`),$(a,`id`,`skill-${K(t).path}`),li(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)]),_r(`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(xe,e=>{K(u).skills.length>0&&e(j)}),P(S),U(()=>{X(w,r()),ci(k,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.`)}),_r(`submit`,T,h),q(`change`,D,m),ti(D,()=>K(l),e=>z(l,e)),q(`input`,k,e=>{K(u).saveAsName=e.currentTarget.value,f()}),q(`click`,ie,g),q(`click`,ue,()=>void v()),q(`click`,de,()=>void _()),Y(e,S),ze()}vr([`change`,`input`,`click`]);var ws=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:Ts(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:Ts(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:Ts(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:Ts(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 Ts(e){return e instanceof Error?e.message:`Unknown relay error.`}var Es=J(`<main class="evidence-mode svelte-y74n0s"><!></main>`),Ds=J(`<!> <!> <!> <!>`,1),Os=J(`<p>Start a session from the Sessions tab to chat with Codex.</p>`),ks=J(`<section class="chat-view svelte-y74n0s" aria-labelledby="chat-title"><h2 id="chat-title" class="visually-hidden">Chat</h2> <!></section>`),As=J(`<p>Loading skill profiles…</p>`),js=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>`),Ms=J(`<main><!> <!> <!></main>`),Ns=J(`<!> <!>`,1);function Ps(e,t){Re(t,!0);let n=R(`sessions`),r=R(`Loading relay…`),i=R(`system`),a=R(Gt([])),o=`gpt-5.6-terra`,s=R([o]),c=R(o),l=R([]),u=R(null),d=R(`list`),f=R([]),p=R(``),m=R(``),h=R(null),g=R(``),_=R(Gt(new Set)),v=R(null),y=R(Gt([])),b=I(()=>K(y).some(e=>e.id===K(v)&&(e.state===`ready`||e.state===`turnActive`))),x=R(Gt([])),S=R(`workspace-write`),C=R(`on-request`),w=R(null),T=R(!1),E=R(``),D=R(null),ee=R(!1),O=R(Gt([])),k=R(Gt([])),te=R(0),ne=null,re=null,ie=null,ae=null,oe=!1,se=0,ce=0,le=R(null),A=R(null),ue=R(Gt(new Set)),de=R(!1),fe=R(!1),pe=R(!1),me=R(!1),he=R(null),ge=R(null),_e=R(null),ve=R(null),ye=0,be=R(Gt([])),xe=Gt({}),j=Do(),Se=ja(),Ce=zo(),we=Fa(),Te=new URLSearchParams(location.search).get(`tree-evidence`),Ee=new URLSearchParams(location.search).get(`toast-evidence`);yi(async()=>{let e=localStorage.getItem(`gestalt-mobile.theme`);if((e===`light`||e===`dark`||e===`system`)&&M(e),!(Te===`sessions`||Te===`git`||Ee===`error`||Ee===`stacked`)){ae=setInterval(Be,2e3),document.addEventListener(`visibilitychange`,Be),window.addEventListener(`focus`,Be);try{let e=await ya();z(g,Ja(K(g)||null,K(a),e.workspaces,Ha.sessionBase)??``,!0),z(a,e.workspaces,!0),z(l,e.profiles),z(s,[...new Set([o,...e.models??[]])]),await Ue(),z(_,Ua(K(a)),!0),z(ue,Ua(K(a)),!0);let t=await Ce.readSelectedSession();z(v,e.sessions.some(e=>e.id===t)?t:e.sessions[0]?.id??null,!0),K(v)&&z(te,await Ce.readCursor(K(v)),!0),K(v)&&z(E,await Ce.readDraft(K(v)),!0),K(v)&&z(O,await Se.read(K(v)),!0),z(y,e.sessions,!0),z(be,K(y).find(e=>e.id===K(v))?.pendingInteractions??[],!0),Oe(),z(D,K(y).find(e=>e.id===K(v))?.activeTurnId??null,!0),z(r,K(v)?No(K(D)):`Choose a workspace and start a session.`,!0),K(v)&&(await Le(K(v)),ot(K(v)))}catch(e){z(r,at(e,`RELAY_UNAVAILABLE`),!0)}}});function M(e){z(i,e,!0),e===`system`?document.documentElement.removeAttribute(`data-theme`):document.documentElement.dataset.theme=e,localStorage.setItem(`gestalt-mobile.theme`,e)}bi(()=>{re&&clearTimeout(re),ie&&clearTimeout(ie),ae&&clearInterval(ae),document.removeEventListener(`visibilitychange`,Be),window.removeEventListener(`focus`,Be),ne?.close()});async function De(){if(!K(g)||K(T))return;let e=as({workspaceId:K(g),profile:`default`,profileState:`ok`});if(e.profile){z(r,e.profile,!0);return}z(w,K(w)??jo(),!0),z(T,!0),z(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));z(w,null),z(v,e.id,!0),z(D,null),Ce.saveSelectedSession(e.id),await N(),z(O,[],!0),rt(e.id),z(k,[],!0),z(te,0),z(E,await Ce.readDraft(e.id),!0),ot(e.id),z(n,`chat`),Ke(),z(r,`Session started.`)}catch(e){z(r,at(e,`SESSION_START_FAILED`),!0)}finally{z(T,!1)}}async function N(){z(y,await j.listSessions(),!0)}async function Oe(){try{z(x,await j.listRecentSessions(),!0)}catch{z(x,[],!0)}}async function ke(){try{await Promise.all([N(),Oe()])}catch(e){z(r,at(e,`SESSION_REFRESH_FAILED`),!0)}}async function Ae(e){z(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);z(y,K(y).map(n=>n.id===e?t:n),!0)}z(v,e,!0),Ce.saveSelectedSession(e),z(O,await Se.read(e),!0),z(k,[],!0),z(te,0),z(E,await Ce.readDraft(e),!0),z(D,K(y).find(t=>t.id===e)?.activeTurnId??null,!0),z(be,K(y).find(t=>t.id===e)?.pendingInteractions??[],!0),z(n,`chat`),Ke(),await Le(e),ot(e)}catch(e){z(r,`Could not open session: ${it(e)}`)}}async function je(e){z(r,`Opening recent session…`);try{let t=await j.openRecentSession(e.id,e.cwd);await ke(),await Ae(t.id)}catch(e){z(r,`Could not open recent session: ${it(e)}`)}}async function Me(e){z(r,`Closing session…`);try{await j.releaseSession(e),K(v)===e&&(z(v,null),z(n,`sessions`),z(D,null),z(be,[],!0),Ce.saveSelectedSession(null),re&&clearTimeout(re),re=null,ne?.close(),ne=null),await ke(),z(r,`Session closed.`)}catch(e){z(r,`Could not close session: ${it(e)}`)}}async function Ne(e){try{await j.forgetSession(e),K(v)===e&&(ne?.close(),z(v,null),z(D,null),Ce.saveSelectedSession(null)),await ke()}catch(e){z(r,`Could not forget session: ${it(e)}`)}}async function Pe(e){z(r,await Oo(e)?`Resume command copied.`:`Could not copy the resume command.`,!0)}async function Fe(){if(!K(v)||!K(E).trim()||K(D)||K(ee))return;let e=K(E).trim();z(ee,!0);try{let t=await j.startTurn(K(v),e);z(D,t.activeTurnId??null,!0),z(O,Co(K(O),`user-${t.activeTurnId??Date.now().toString()}`,e,Date.now()),!0),rt(K(v)),z(E,``),Ce.saveDraft(K(v),``),z(r,No(K(D)),!0)}catch(e){z(r,at(e,`MESSAGE_SEND_FAILED`),!0)}finally{z(ee,!1)}}async function Ie(){if(!(!K(v)||!K(D)))try{await j.interruptTurn(K(v),K(D)),z(D,null),z(r,`Codex turn interrupted.`)}catch(e){z(r,`Could not interrupt Codex: ${it(e)}`)}}async function Le(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);z(O,[...i,...a],!0),rt(e);let o=n.items.flatMap(e=>{let t=ba(e);return t?[t]:[]});z(k,[...o,...K(k).filter(e=>!o.some(t=>t.id===e.id))],!0),`activeTurnId`in n&&(z(D,n.activeTurnId??null,!0),z(y,K(y).map(t=>t.id===e?{...t,activeTurnId:K(D)}:t),!0)),z(te,Math.max(K(te),n.currentSequence??t),!0),Ce.saveCursor(e,K(te)),z(r,No(K(D)),!0)}function Be(){K(n)!==`chat`||!K(v)||document.visibilityState!==`visible`||oe||(oe=!0,Le(K(v)).catch(()=>void 0).finally(()=>{oe=!1}))}function Ve(e){e===`chat`&&!K(b)||(z(n,e,!0),e===`chat`&&(Be(),Ke()),e===`git`&&K(A)&&qe(K(A)),e===`sessions`&&(K(d)===`profile-manager`&&Ge(!1),ke()))}async function He(e,t){let n=new ws(j);await n.load(e,t),z(u,n,!0)}async function Ue(){try{let e=await j.listSkillProfiles();z(f,e.profiles.filter(e=>!(`error`in e)));let t=e.profiles.find(e=>`error`in e);z(m,t&&`error`in t?t.error.message:``,!0),K(f).some(e=>e.name===K(p))||z(p,``)}catch(e){z(f,[]),z(m,e instanceof Error?e.message:`Unable to load saved skill profiles.`,!0)}}async function We(e){let t=K(g)||K(a)[0]?.id||``,n=K(l).find(e=>e.state===`ok`)?.name??``;if(!t||!n){z(r,`Choose a workspace and available Codex profile before managing skill profiles.`);return}await He(t,n),z(d,`profile-manager`),await sr(),K(h)?.focus()}async function Ge(e=!0){z(d,`list`),await sr(),e&&document.getElementById(`manage-skill-profiles`)?.focus()}function Ke(){requestAnimationFrame(()=>window.scrollTo({top:document.documentElement.scrollHeight}))}async function qe(e=K(A)){let t=e?qa(K(a),e):void 0;if(!e||!t?.isGitRepository){ye+=1,z(le,null);return}let n=++ye;try{let t=await j.getGitSummary(e);n===ye&&K(A)===e&&z(le,t,!0)}catch(t){if(n!==ye||K(A)!==e)return;z(le,null),z(he,at(t,`GIT_SUMMARY_FAILED`),!0)}}function F(e){z(A,e.id,!0),z(he,null),z(le,null),z(de,!1),e.isGitRepository?qe(e.id):(ye+=1,z(le,null))}async function Je(){let e=K(A);if(!(!e||!qa(K(a),e)?.isGitRepository)){z(_e,K(_e)??jo(),!0),z(fe,!0),z(he,null);try{await j.pullGit(e,K(_e)),await qe(e),z(_e,null)}catch(e){z(he,at(e,`GIT_PULL_FAILED`),!0)}finally{z(fe,!1)}}}async function Ye(e){if(K(me))return;let t=K(A)?qa(K(a),K(A)):void 0;if(!t||t.isGitRepository){z(ge,null),we.enqueue({kind:`error`,code:`INVALID_CLONE_DESTINATION`,message:`Select a non-repository folder before cloning.`});return}let n=t.id;z(me,!0),z(he,null),z(ge,null);try{await j.cloneGitRepository(n,e);let t=await ya(),r=bo(K(a),t.workspaces,n,e,K(ue));z(g,Ja(K(g)||null,K(a),t.workspaces,Ha.sessionBase)??``,!0),z(a,t.workspaces,!0),z(A,r.selectedId,!0),z(ue,r.expandedIds,!0),K(A)&&qa(K(a),K(A))?.isGitRepository?await qe(K(A)):z(le,null),z(ge,`Repository cloned into the selected workspace.`),we.enqueue({kind:`success`,message:`Repository cloned.`})}catch(e){at(e,`GIT_CLONE_FAILED`)}finally{z(me,!1)}}async function Xe(e){let t=K(A);if(!(!t||e===K(le)?.branch)){z(pe,!0),z(he,null);try{await j.checkoutGitBranch(t,e),await qe(t)}catch(e){z(he,at(e,`GIT_CHECKOUT_FAILED`),!0)}finally{z(pe,!1)}}}async function Ze(){let e=K(A);if(e){z(ve,K(ve)??jo(),!0),z(he,null);try{await j.pushGit(e,K(ve)),z(de,!1),await qe(e),z(ve,null)}catch(e){z(he,at(e,`GIT_PUSH_FAILED`),!0)}}}async function Qe(e,t){K(v)&&(await j.respondInteraction(K(v),e,{decision:t}),z(be,K(be).filter(t=>t.requestId!==e),!0))}async function $e(e){if(!K(v))return;let t=Oi(Di(e.payload).map(e=>({id:e.id,answer:xe[e.id]??``})));await j.respondInteraction(K(v),e.requestId,t),z(be,K(be).filter(t=>t.requestId!==e.requestId),!0)}async function et(e){if(!K(v))return;let t=Eo(e.payload);if(!t){z(r,`Codex sent an invalid permission request.`);return}await j.respondInteraction(K(v),e.requestId,t),z(be,K(be).filter(t=>t.requestId!==e.requestId),!0)}function tt(e,t){xe[e]=t}function nt(e){z(E,e,!0),K(v)&&Ce.saveDraft(K(v),e)}function rt(e){Se.write(e,K(O))}function it(e){return e instanceof Error?e.message:`Unknown relay error.`}function at(e,t){let n=Na(e,t);return we.enqueue({kind:`error`,...n}),n.message}function ot(e){re&&clearTimeout(re),ie&&clearTimeout(ie),ne?.close();let t=++ce,n=location.protocol===`https:`?`wss:`:`ws:`;ne=new WebSocket(`${n}//${location.host}/api/sessions/${encodeURIComponent(e)}/events?after=${K(te)}`),ne.onopen=()=>{t!==ce||K(v)!==e||(z(r,No(K(D)),!0),Be(),ie=setTimeout(()=>{se=0},3e4))},ne.onmessage=t=>{let n=JSON.parse(String(t.data));if(n.type===`relay.resyncRequired`){Le(e,typeof n.currentSequence==`number`?n.currentSequence:0);return}if(n.type===`relay.event`&&n.event?.type===`interaction.requested`){let e=n.event.payload;K(be).some(t=>t.requestId===e.requestId)||z(be,[...K(be),e],!0)}if(n.type===`relay.event`&&n.event?.type===`turnCompleted`&&(z(D,null),z(r,No(K(D)),!0),z(O,To(K(O),`assistant-${e}`),!0),rt(e),Le(e).catch(()=>void 0)),n.type===`relay.event`&&n.event?.type===`session.updated`){let t=n.event.payload;if(typeof t==`object`&&t&&t.id===e){let n=t,i=K(D);z(D,typeof n.activeTurnId==`string`?n.activeTurnId:null,!0),i&&!K(D)&&z(r,No(K(D)),!0),z(y,K(y).map(t=>t.id===e?{...t,...n}:t),!0)}}if(n.type===`relay.event`&&n.event?.type===`interaction.resolved`){let{requestId:e}=n.event.payload;z(be,K(be).filter(t=>t.requestId!==e),!0)}if(n.type===`relay.event`&&n.event?.type===`activity.updated`){let e=n.event.payload;typeof e.id==`string`&&typeof e.label==`string`&&typeof e.detail==`string`&&z(k,[...K(k).filter(t=>t.id!==e.id),e],!0)}z(te,Mo(K(te),n,t=>{z(O,wo(K(O),`assistant-${e}`,t,Date.now()),!0),rt(e)},()=>{Le(e)}),!0),Ce.saveCursor(e,K(te))},ne.onclose=()=>{t!==ce||K(v)!==e||(ie&&clearTimeout(ie),z(r,`Connection interrupted. Reconnecting…`),re=setTimeout(()=>ot(e),Po(se++)))}}var st=Ns();Vr(`y74n0s`,e=>{xn(()=>{Yt.title=`Gestalt Mobile`})});var ct=V(st),lt=e=>{Va(e,{get variant(){return Ee}})},ut=e=>{var t=Es();ro(B(t),{get context(){return Te}}),P(t),Y(e,t)},dt=e=>{var t=Ms(),o=B(t);{let e=I(()=>K(n)===`chat`?Uo(K(y).find(e=>e.id===K(v))?.workspacePath??``):null);Ci(o,{get theme(){return K(i)},get sessionPath(){return K(e)},onthemechange:M})}var l=H(o,2),w=e=>{var t=ks(),n=H(B(t),2),i=e=>{var t=Ds(),n=V(t);ha(n,{get messages(){return K(O)}});var i=H(n,2);Ei(i,{get activities(){return K(k)}});var a=H(i,2);Li(a,{get interactions(){return K(be)},get answers(){return xe},onanswer:tt,onuserinput:e=>void $e(e),onpermission:e=>void et(e),ondecision:(e,t)=>void Qe(e,t)}),Hi(H(a,2),{get status(){return K(r)},get message(){return K(E)},get activeTurnId(){return K(D)},get starting(){return K(ee)},onchange:nt,onsend:()=>void Fe(),oninterrupt:()=>void Ie()}),Y(e,t)},a=e=>{Y(e,Os())};Z(n,e=>{K(v)?e(i):e(a,-1)}),P(t),Y(e,t)},te=e=>{{let t=I(()=>K(A)?qa(K(a),K(A))??null:null);yo(e,{get workspaceTree(){return K(a)},get selectedWorkspace(){return K(t)},get expandedIds(){return K(ue)},get summary(){return K(le)},get refreshing(){return K(fe)},get checkingOut(){return K(pe)},get cloning(){return K(me)},get error(){return K(he)},get cloneStatus(){return K(ge)},get confirmingPush(){return K(de)},onpull:()=>void Je(),oncheckout:e=>void Xe(e),onopenpushconfirmation:()=>z(de,!0),onpush:()=>void Ze(),oncancelpush:()=>z(de,!1),onselect:F,onexpandedchange:e=>z(ue,e,!0),onclone:e=>void Ye(e)})}},ne=e=>{var t=Er(),n=V(t),r=e=>{var t=js(),n=B(t),r=B(n);_i(r,e=>z(h,e),()=>K(h));var i=H(r,2);P(n);var a=H(n,2),o=e=>{Cs(e,{get skillsState(){return K(u)},onrefresh:()=>K(u)?.refresh()??Promise.resolve(),onprofileschange:()=>void Ue(),heading:`Skill profile editor`})},s=e=>{Y(e,As())};Z(a,e=>{K(u)?e(o):e(s,-1)}),P(t),q(`click`,i,()=>void Ge()),Y(e,t)},i=e=>{is(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=>z(g,e,!0),onexpandedchange:e=>z(_,e,!0),onsandboxchange:e=>z(S,e,!0),onapprovalpolicychange:e=>z(C,e,!0),onmodelchange:e=>z(c,e,!0),onskillprofilechange:e=>z(p,e,!0),onmanageprofiles:e=>void We(e),onopen:Ae,onselectopen:Ae,onclose:e=>void Me(e),onopenrecent:e=>void je(e),onforget:e=>void Ne(e),oncopyresume:e=>void Pe(e),onstart:()=>void De()})};Z(n,e=>{K(d)===`profile-manager`?e(r):e(i,-1)}),Y(e,t)};Z(l,e=>{K(n)===`chat`?e(w):K(n)===`git`?e(te,1):e(ne,-1)}),cs(H(l,2),{get activeTab(){return K(n)},get chatEnabled(){return K(b)},onselect:Ve}),P(t),Y(e,t)};Z(ct,e=>{Ee===`error`||Ee===`stacked`?e(lt):Te===`sessions`||Te===`git`?e(ut,1):e(dt,-1)});var ft=H(ct,2),pt=e=>{za(e,{get queue(){return we}})};Z(ft,e=>{Ee!==`error`&&Ee!==`stacked`&&e(pt)}),Y(e,st),ze()}vr([`click`]);var Fs=document.getElementById(`app`);if(!Fs)throw Error(`Missing application mount target`);Dr(Ps,{target:Fs});