@promptctl/cc-candybar 1.80.0 → 1.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +81 -81
- package/package.json +5 -5
- package/schema/cc-candybar.schema.json +21 -0
package/dist/index.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as e}from"node:module";import t from"node:process";import{json as n}from"node:stream/consumers";import r,{createReadStream as i,existsSync as a,statSync as o,watch as s}from"node:fs";import c,{basename as l,dirname as u,join as d}from"node:path";import f,{homedir as p}from"node:os";import{spawn as m,spawnSync as h}from"node:child_process";import g from"node:net";import _ from"node:v8";import{URL as v,URLSearchParams as y,fileURLToPath as b,pathToFileURL as x}from"node:url";import{parseArgs as S}from"node:util";import C,{createHash as ee}from"node:crypto";import{get as te}from"node:https";import{setTimeout as w}from"node:timers/promises";import{open as ne,readFile as re,readdir as ie,stat as T}from"node:fs/promises";import{createInterface as E}from"node:readline";import{clearInterval as ae,setInterval as oe}from"node:timers";var se=Object.create,ce=Object.defineProperty,le=Object.getOwnPropertyDescriptor,ue=Object.getOwnPropertyNames,de=Object.getPrototypeOf,fe=Object.prototype.hasOwnProperty,pe=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),me=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ue(t),a=0,o=i.length,s;a<o;a++)s=i[a],!fe.call(e,s)&&s!==n&&ce(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=le(t,s))||r.enumerable});return e},he=(e,t,n)=>(n=e==null?{}:se(de(e)),me(t||!e||!e.__esModule?ce(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}const ge={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3},_e=new Map;function ve(e){let t=ge[e];if(t===void 0)return{allowed:!0};let n=_e.get(e);if(n===void 0)return{allowed:!0};let r=Date.now()-n;return r>=t?{allowed:!0}:{allowed:!1,minIntervalMs:t,sinceLastMs:r}}function ye(e){_e.set(e,Date.now())}function be(e){return e.env??process.env}function xe(e,t,n){return{ok:!1,reason:`rate-limited`,stdout:``,stderr:``,exitCode:null,signal:null,error:`rate-limited: ${e} min interval ${t}ms, last start ${n}ms ago`}}let Se=null;function Ce(e){Se=e}function we(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Te(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=ve(e.category);if(!t.allowed)return xe(e.category,t.minIntervalMs,t.sinceLastMs);ye(e.category);let n=Date.now();return Se?.onStart(e.category),new Promise(t=>{let r;try{r=m(e.bin,e.args??[],{cwd:e.cwd,env:be(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){Se?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:r instanceof Error?r.message:String(r)});return}let i=``,a=``,o=!1,s=null,c=null,l=null,u=()=>h(`aborted`),d=t=>{o||(o=!0,s&&clearTimeout(s),c&&clearTimeout(c),e.signal?.removeEventListener(`abort`,u),Se?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{we(e,t)}catch(e){f({ok:!1,reason:`signal-refused`,stdout:i,stderr:a,exitCode:null,signal:null,error:e instanceof Error?e.message:String(e)})}},h=t=>{l=t,s&&clearTimeout(s),e.signal?.removeEventListener(`abort`,u);let n=r.pid;n!==void 0&&(c=setTimeout(()=>p(n,`SIGKILL`),250),p(n,`SIGTERM`))};r.stdout?.on(`data`,e=>{i+=e.toString(`utf8`)}),r.stderr?.on(`data`,e=>{a+=e.toString(`utf8`)}),r.on(`error`,e=>{f({ok:!1,reason:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:null,error:e.message})}),r.on(`close`,(e,t)=>{if(l!==null){f({ok:!1,reason:l,stdout:i,stderr:a,exitCode:e,signal:t});return}if(e===0){f({ok:!0,stdout:i,stderr:a,exitCode:e});return}f({ok:!1,reason:t?`signal`:`non-zero`,stdout:i,stderr:a,exitCode:e,signal:t})}),e.timeoutMs&&e.timeoutMs>0&&(s=setTimeout(()=>h(`timeout`),e.timeoutMs)),e.signal?.addEventListener(`abort`,u,{once:!0}),e.stdinInput!==void 0&&r.stdin?r.stdin.end(e.stdinInput):r.stdin&&r.stdin.end()})}function Ee(e){let t=ve(e.category);if(!t.allowed)return xe(e.category,t.minIntervalMs,t.sinceLastMs);ye(e.category);let n=Date.now();Se?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=h(e.bin,e.args??[],{cwd:e.cwd,env:be(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});Se?.onEnd(e.category,Date.now()-n);let i=typeof t.stdout==`string`?t.stdout:``,a=typeof t.stderr==`string`?t.stderr:``;if(t.error)return{ok:!1,reason:t.error.code===`ETIMEDOUT`?`timeout`:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:t.signal??null,error:t.error.message};if(t.status===0)return{ok:!0,stdout:i,stderr:a,exitCode:t.status};let o=e.timeoutMs!==void 0&&e.timeoutMs>0;return{ok:!1,reason:t.signal?o&&t.signal===`SIGTERM`?`timeout`:`signal`:`non-zero`,stdout:i,stderr:a,exitCode:t.status,signal:t.signal??null}}catch(t){return Se?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:t instanceof Error?t.message:String(t)}}}function De(e){let t=ve(e.category);if(!t.allowed)return xe(e.category,t.minIntervalMs,t.sinceLastMs);ye(e.category);let n=Date.now();Se?.onStart(e.category);let r=Oe(e);return Se?.onEnd(e.category,Date.now()-n),r}function Oe(e){let t;try{t=m(e.bin,e.args??[],{cwd:e.cwd,env:be(e),detached:!0,stdio:`ignore`})}catch(e){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:e instanceof Error?e.message:String(e)}}return t.once(`error`,()=>{}),t.pid===void 0?{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:`spawn(${e.bin}): no pid (binary not found or unexecutable)`}:(t.unref(),{ok:!0,stdout:``,stderr:``,exitCode:null})}function ke(e,t,n){let i=`${e}.tmp`,a=n??r.statSync(e,{throwIfNoEntry:!1})?.mode;try{r.writeFileSync(i,t,a===void 0?{}:{mode:a}),r.renameSync(i,e)}catch(e){throw r.rmSync(i,{force:!0}),e}}function Ae(e,t){let n=e[t];return n&&n.length>0?n:void 0}function je(e=process.env){let t=Ae(e,`XDG_STATE_HOME`)??c.join(f.homedir(),`.local`,`state`);return c.join(t,`cc-candybar`)}function O(){let e=Ae(process.env,`XDG_CACHE_HOME`)??c.join(f.homedir(),`.cache`);return c.join(e,`cc-candybar`)}function Me(){return je()}function Ne(){let e=process.env.CC_CANDYBAR_SOCKET;if(e)return e;let t=f.userInfo().uid;return c.join(`/tmp`,`cc-candybar-${t}`,`socket`)}function Pe(e){r.mkdirSync(e,{recursive:!0,mode:448});let t=r.lstatSync(e);if(t.isSymbolicLink())throw Error(`directory is a symlink: ${e}`);if(!t.isDirectory())throw Error(`not a directory: ${e}`);let n=f.userInfo().uid;if(typeof n==`number`&&t.uid!==n)throw Error(`directory is not owned by uid ${n}: ${e} (owner uid=${t.uid})`);if(t.mode&63)throw Error(`directory has unsafe permissions: ${e} (mode=${(t.mode&511).toString(8)}, expected 0700)`)}function Fe(e){Pe(c.dirname(e));for(let t of[e,Ie(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function Ie(e){return`${e}.lease`}function Le(){return Ie(Ne())}function Re(){return c.join(je(),`session-state.json`)}function ze(){return c.join(je(),`config-edit-history.json`)}function Be(){let e=process.env.CC_CANDYBAR_DAEMON_REGISTRY_DIR;if(e)return e;let t=f.userInfo().uid;return c.join(`/tmp`,`cc-candybar-${t}`,`daemons`)}function Ve(){return c.join(je(),`spawn.lock`)}function He(){return c.join(je(),`spawn.cooldown`)}function Ue(){return c.join(je(),`spawn.backoff`)}function We(){return c.join(je(),`diagnostics`)}function Ge(e=process.env){return c.join(je(e),`daemon.log`)}var Ke=pe(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,t.exports.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/})),qe=pe(((e,t)=>{let n=Ke();t.exports={isSpaceSeparator(e){return typeof e==`string`&&n.Space_Separator.test(e)},isIdStartChar(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`$`||e===`_`||n.ID_Start.test(e))},isIdContinueChar(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e>=`0`&&e<=`9`||e===`$`||e===`_`||e===``||e===``||n.ID_Continue.test(e))},isDigit(e){return typeof e==`string`&&/[0-9]/.test(e)},isHexDigit(e){return typeof e==`string`&&/[0-9A-Fa-f]/.test(e)}}})),Je=pe(((e,t)=>{let n=qe(),r,i,a,o,s,c,l,u,d;t.exports=function(e,t){r=String(e),i=`start`,a=[],o=0,s=1,c=0,l=void 0,u=void 0,d=void 0;do l=v(),ne[i]();while(l.type!==`eof`);return typeof t==`function`?f({"":d},``,t):d};function f(e,t,n){let r=e[t];if(typeof r==`object`&&r)if(Array.isArray(r))for(let e=0;e<r.length;e++){let t=String(e),i=f(r,t,n);i===void 0?delete r[t]:Object.defineProperty(r,t,{value:i,writable:!0,enumerable:!0,configurable:!0})}else for(let e in r){let t=f(r,e,n);t===void 0?delete r[e]:Object.defineProperty(r,e,{value:t,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,t,r)}let p,m,h,g,_;function v(){for(p=`default`,m=``,h=!1,g=1;;){_=y();let e=x[p]();if(e)return e}}function y(){if(r[o])return String.fromCodePoint(r.codePointAt(o))}function b(){let e=y();return e===`
|
|
2
|
+
import{createRequire as e}from"node:module";import t from"node:process";import{json as n}from"node:stream/consumers";import r,{createReadStream as i,existsSync as a,statSync as o,watch as s}from"node:fs";import c,{basename as l,dirname as u,join as d}from"node:path";import f,{homedir as p}from"node:os";import{spawn as m,spawnSync as h}from"node:child_process";import g from"node:net";import _ from"node:v8";import{URL as v,URLSearchParams as y,fileURLToPath as b,pathToFileURL as x}from"node:url";import{parseArgs as S}from"node:util";import C,{createHash as ee}from"node:crypto";import{get as w}from"node:https";import{setTimeout as te}from"node:timers/promises";import{open as ne,readFile as re,readdir as ie,stat as T}from"node:fs/promises";import{createInterface as E}from"node:readline";import{clearInterval as ae,setInterval as oe}from"node:timers";var se=Object.create,ce=Object.defineProperty,le=Object.getOwnPropertyDescriptor,ue=Object.getOwnPropertyNames,de=Object.getPrototypeOf,fe=Object.prototype.hasOwnProperty,pe=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),me=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ue(t),a=0,o=i.length,s;a<o;a++)s=i[a],!fe.call(e,s)&&s!==n&&ce(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=le(t,s))||r.enumerable});return e},he=(e,t,n)=>(n=e==null?{}:se(de(e)),me(t||!e||!e.__esModule?ce(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}const ge={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3},_e=new Map;function ve(e){let t=ge[e];if(t===void 0)return{allowed:!0};let n=_e.get(e);if(n===void 0)return{allowed:!0};let r=Date.now()-n;return r>=t?{allowed:!0}:{allowed:!1,minIntervalMs:t,sinceLastMs:r}}function ye(e){_e.set(e,Date.now())}function be(e){return e.env??process.env}function xe(e,t,n){return{ok:!1,reason:`rate-limited`,stdout:``,stderr:``,exitCode:null,signal:null,error:`rate-limited: ${e} min interval ${t}ms, last start ${n}ms ago`}}let Se=null;function Ce(e){Se=e}function we(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Te(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=ve(e.category);if(!t.allowed)return xe(e.category,t.minIntervalMs,t.sinceLastMs);ye(e.category);let n=Date.now();return Se?.onStart(e.category),new Promise(t=>{let r;try{r=m(e.bin,e.args??[],{cwd:e.cwd,env:be(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){Se?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:r instanceof Error?r.message:String(r)});return}let i=``,a=``,o=!1,s=null,c=null,l=null,u=()=>h(`aborted`),d=t=>{o||(o=!0,s&&clearTimeout(s),c&&clearTimeout(c),e.signal?.removeEventListener(`abort`,u),Se?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{we(e,t)}catch(e){f({ok:!1,reason:`signal-refused`,stdout:i,stderr:a,exitCode:null,signal:null,error:e instanceof Error?e.message:String(e)})}},h=t=>{l=t,s&&clearTimeout(s),e.signal?.removeEventListener(`abort`,u);let n=r.pid;n!==void 0&&(c=setTimeout(()=>p(n,`SIGKILL`),250),p(n,`SIGTERM`))};r.stdout?.on(`data`,e=>{i+=e.toString(`utf8`)}),r.stderr?.on(`data`,e=>{a+=e.toString(`utf8`)}),r.on(`error`,e=>{f({ok:!1,reason:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:null,error:e.message})}),r.on(`close`,(e,t)=>{if(l!==null){f({ok:!1,reason:l,stdout:i,stderr:a,exitCode:e,signal:t});return}if(e===0){f({ok:!0,stdout:i,stderr:a,exitCode:e});return}f({ok:!1,reason:t?`signal`:`non-zero`,stdout:i,stderr:a,exitCode:e,signal:t})}),e.timeoutMs&&e.timeoutMs>0&&(s=setTimeout(()=>h(`timeout`),e.timeoutMs)),e.signal?.addEventListener(`abort`,u,{once:!0}),e.stdinInput!==void 0&&r.stdin?r.stdin.end(e.stdinInput):r.stdin&&r.stdin.end()})}function Ee(e){let t=ve(e.category);if(!t.allowed)return xe(e.category,t.minIntervalMs,t.sinceLastMs);ye(e.category);let n=Date.now();Se?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=h(e.bin,e.args??[],{cwd:e.cwd,env:be(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});Se?.onEnd(e.category,Date.now()-n);let i=typeof t.stdout==`string`?t.stdout:``,a=typeof t.stderr==`string`?t.stderr:``;if(t.error)return{ok:!1,reason:t.error.code===`ETIMEDOUT`?`timeout`:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:t.signal??null,error:t.error.message};if(t.status===0)return{ok:!0,stdout:i,stderr:a,exitCode:t.status};let o=e.timeoutMs!==void 0&&e.timeoutMs>0;return{ok:!1,reason:t.signal?o&&t.signal===`SIGTERM`?`timeout`:`signal`:`non-zero`,stdout:i,stderr:a,exitCode:t.status,signal:t.signal??null}}catch(t){return Se?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:t instanceof Error?t.message:String(t)}}}function De(e){let t=ve(e.category);if(!t.allowed)return xe(e.category,t.minIntervalMs,t.sinceLastMs);ye(e.category);let n=Date.now();Se?.onStart(e.category);let r=Oe(e);return Se?.onEnd(e.category,Date.now()-n),r}function Oe(e){let t;try{t=m(e.bin,e.args??[],{cwd:e.cwd,env:be(e),detached:!0,stdio:`ignore`})}catch(e){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:e instanceof Error?e.message:String(e)}}return t.once(`error`,()=>{}),t.pid===void 0?{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:`spawn(${e.bin}): no pid (binary not found or unexecutable)`}:(t.unref(),{ok:!0,stdout:``,stderr:``,exitCode:null})}function ke(e,t,n){let i=`${e}.tmp`,a=n??r.statSync(e,{throwIfNoEntry:!1})?.mode;try{r.writeFileSync(i,t,a===void 0?{}:{mode:a}),r.renameSync(i,e)}catch(e){throw r.rmSync(i,{force:!0}),e}}function Ae(e,t){let n=e[t];return n&&n.length>0?n:void 0}function je(e=process.env){let t=Ae(e,`XDG_STATE_HOME`)??c.join(f.homedir(),`.local`,`state`);return c.join(t,`cc-candybar`)}function O(){let e=Ae(process.env,`XDG_CACHE_HOME`)??c.join(f.homedir(),`.cache`);return c.join(e,`cc-candybar`)}function Me(){return je()}function Ne(){let e=process.env.CC_CANDYBAR_SOCKET;if(e)return e;let t=f.userInfo().uid;return c.join(`/tmp`,`cc-candybar-${t}`,`socket`)}function Pe(e){r.mkdirSync(e,{recursive:!0,mode:448});let t=r.lstatSync(e);if(t.isSymbolicLink())throw Error(`directory is a symlink: ${e}`);if(!t.isDirectory())throw Error(`not a directory: ${e}`);let n=f.userInfo().uid;if(typeof n==`number`&&t.uid!==n)throw Error(`directory is not owned by uid ${n}: ${e} (owner uid=${t.uid})`);if(t.mode&63)throw Error(`directory has unsafe permissions: ${e} (mode=${(t.mode&511).toString(8)}, expected 0700)`)}function Fe(e){Pe(c.dirname(e));for(let t of[e,Ie(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function Ie(e){return`${e}.lease`}function Le(){return Ie(Ne())}function Re(){return c.join(je(),`session-state.json`)}function ze(){return c.join(je(),`config-edit-history.json`)}function Be(){let e=process.env.CC_CANDYBAR_DAEMON_REGISTRY_DIR;if(e)return e;let t=f.userInfo().uid;return c.join(`/tmp`,`cc-candybar-${t}`,`daemons`)}function Ve(){return c.join(je(),`spawn.lock`)}function He(){return c.join(je(),`spawn.cooldown`)}function Ue(){return c.join(je(),`spawn.backoff`)}function We(){return c.join(je(),`diagnostics`)}function Ge(e=process.env){return c.join(je(e),`daemon.log`)}var Ke=pe(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,t.exports.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/})),qe=pe(((e,t)=>{let n=Ke();t.exports={isSpaceSeparator(e){return typeof e==`string`&&n.Space_Separator.test(e)},isIdStartChar(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`$`||e===`_`||n.ID_Start.test(e))},isIdContinueChar(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e>=`0`&&e<=`9`||e===`$`||e===`_`||e===``||e===``||n.ID_Continue.test(e))},isDigit(e){return typeof e==`string`&&/[0-9]/.test(e)},isHexDigit(e){return typeof e==`string`&&/[0-9A-Fa-f]/.test(e)}}})),Je=pe(((e,t)=>{let n=qe(),r,i,a,o,s,c,l,u,d;t.exports=function(e,t){r=String(e),i=`start`,a=[],o=0,s=1,c=0,l=void 0,u=void 0,d=void 0;do l=v(),ne[i]();while(l.type!==`eof`);return typeof t==`function`?f({"":d},``,t):d};function f(e,t,n){let r=e[t];if(typeof r==`object`&&r)if(Array.isArray(r))for(let e=0;e<r.length;e++){let t=String(e),i=f(r,t,n);i===void 0?delete r[t]:Object.defineProperty(r,t,{value:i,writable:!0,enumerable:!0,configurable:!0})}else for(let e in r){let t=f(r,e,n);t===void 0?delete r[e]:Object.defineProperty(r,e,{value:t,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,t,r)}let p,m,h,g,_;function v(){for(p=`default`,m=``,h=!1,g=1;;){_=y();let e=x[p]();if(e)return e}}function y(){if(r[o])return String.fromCodePoint(r.codePointAt(o))}function b(){let e=y();return e===`
|
|
3
3
|
`?(s++,c=0):e?c+=e.length:c++,e&&(o+=e.length),e}let x={default(){switch(_){case` `:case`\v`:case`\f`:case` `:case`\xA0`:case``:case`
|
|
4
4
|
`:case`\r`:case`\u2028`:case`\u2029`:b();return;case`/`:b(),p=`comment`;return;case void 0:return b(),S(`eof`)}if(n.isSpaceSeparator(_)){b();return}return x[i]()},comment(){switch(_){case`*`:b(),p=`multiLineComment`;return;case`/`:b(),p=`singleLineComment`;return}throw T(b())},multiLineComment(){switch(_){case`*`:b(),p=`multiLineCommentAsterisk`;return;case void 0:throw T(b())}b()},multiLineCommentAsterisk(){switch(_){case`*`:b();return;case`/`:b(),p=`default`;return;case void 0:throw T(b())}b(),p=`multiLineComment`},singleLineComment(){switch(_){case`
|
|
5
|
-
`:case`\r`:case`\u2028`:case`\u2029`:b(),p=`default`;return;case void 0:return b(),S(`eof`)}b()},value(){switch(_){case`{`:case`[`:return S(`punctuator`,b());case`n`:return b(),C(`ull`),S(`null`,null);case`t`:return b(),C(`rue`),S(`boolean`,!0);case`f`:return b(),C(`alse`),S(`boolean`,!1);case`-`:case`+`:b()===`-`&&(g=-1),p=`sign`;return;case`.`:m=b(),p=`decimalPointLeading`;return;case`0`:m=b(),p=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:m=b(),p=`decimalInteger`;return;case`I`:return b(),C(`nfinity`),S(`numeric`,1/0);case`N`:return b(),C(`aN`),S(`numeric`,NaN);case`"`:case`'`:h=b()===`"`,m=``,p=`string`;return}throw T(b())},identifierNameStartEscape(){if(_!==`u`)throw T(b());b();let e=
|
|
5
|
+
`:case`\r`:case`\u2028`:case`\u2029`:b(),p=`default`;return;case void 0:return b(),S(`eof`)}b()},value(){switch(_){case`{`:case`[`:return S(`punctuator`,b());case`n`:return b(),C(`ull`),S(`null`,null);case`t`:return b(),C(`rue`),S(`boolean`,!0);case`f`:return b(),C(`alse`),S(`boolean`,!1);case`-`:case`+`:b()===`-`&&(g=-1),p=`sign`;return;case`.`:m=b(),p=`decimalPointLeading`;return;case`0`:m=b(),p=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:m=b(),p=`decimalInteger`;return;case`I`:return b(),C(`nfinity`),S(`numeric`,1/0);case`N`:return b(),C(`aN`),S(`numeric`,NaN);case`"`:case`'`:h=b()===`"`,m=``,p=`string`;return}throw T(b())},identifierNameStartEscape(){if(_!==`u`)throw T(b());b();let e=te();switch(e){case`$`:case`_`:break;default:if(!n.isIdStartChar(e))throw ae();break}m+=e,p=`identifierName`},identifierName(){switch(_){case`$`:case`_`:case``:case``:m+=b();return;case`\\`:b(),p=`identifierNameEscape`;return}if(n.isIdContinueChar(_)){m+=b();return}return S(`identifier`,m)},identifierNameEscape(){if(_!==`u`)throw T(b());b();let e=te();switch(e){case`$`:case`_`:case``:case``:break;default:if(!n.isIdContinueChar(e))throw ae();break}m+=e,p=`identifierName`},sign(){switch(_){case`.`:m=b(),p=`decimalPointLeading`;return;case`0`:m=b(),p=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:m=b(),p=`decimalInteger`;return;case`I`:return b(),C(`nfinity`),S(`numeric`,g*(1/0));case`N`:return b(),C(`aN`),S(`numeric`,NaN)}throw T(b())},zero(){switch(_){case`.`:m+=b(),p=`decimalPoint`;return;case`e`:case`E`:m+=b(),p=`decimalExponent`;return;case`x`:case`X`:m+=b(),p=`hexadecimal`;return}return S(`numeric`,g*0)},decimalInteger(){switch(_){case`.`:m+=b(),p=`decimalPoint`;return;case`e`:case`E`:m+=b(),p=`decimalExponent`;return}if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},decimalPointLeading(){if(n.isDigit(_)){m+=b(),p=`decimalFraction`;return}throw T(b())},decimalPoint(){switch(_){case`e`:case`E`:m+=b(),p=`decimalExponent`;return}if(n.isDigit(_)){m+=b(),p=`decimalFraction`;return}return S(`numeric`,g*Number(m))},decimalFraction(){switch(_){case`e`:case`E`:m+=b(),p=`decimalExponent`;return}if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},decimalExponent(){switch(_){case`+`:case`-`:m+=b(),p=`decimalExponentSign`;return}if(n.isDigit(_)){m+=b(),p=`decimalExponentInteger`;return}throw T(b())},decimalExponentSign(){if(n.isDigit(_)){m+=b(),p=`decimalExponentInteger`;return}throw T(b())},decimalExponentInteger(){if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},hexadecimal(){if(n.isHexDigit(_)){m+=b(),p=`hexadecimalInteger`;return}throw T(b())},hexadecimalInteger(){if(n.isHexDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},string(){switch(_){case`\\`:b(),m+=ee();return;case`"`:if(h)return b(),S(`string`,m);m+=b();return;case`'`:if(!h)return b(),S(`string`,m);m+=b();return;case`
|
|
6
6
|
`:case`\r`:throw T(b());case`\u2028`:case`\u2029`:oe(_);break;case void 0:throw T(b())}m+=b()},start(){switch(_){case`{`:case`[`:return S(`punctuator`,b())}p=`value`},beforePropertyName(){switch(_){case`$`:case`_`:m=b(),p=`identifierName`;return;case`\\`:b(),p=`identifierNameStartEscape`;return;case`}`:return S(`punctuator`,b());case`"`:case`'`:h=b()===`"`,p=`string`;return}if(n.isIdStartChar(_)){m+=b(),p=`identifierName`;return}throw T(b())},afterPropertyName(){if(_===`:`)return S(`punctuator`,b());throw T(b())},beforePropertyValue(){p=`value`},afterPropertyValue(){switch(_){case`,`:case`}`:return S(`punctuator`,b())}throw T(b())},beforeArrayValue(){if(_===`]`)return S(`punctuator`,b());p=`value`},afterArrayValue(){switch(_){case`,`:case`]`:return S(`punctuator`,b())}throw T(b())},end(){throw T(b())}};function S(e,t){return{type:e,value:t,line:s,column:c}}function C(e){for(let t of e){if(y()!==t)throw T(b());b()}}function ee(){switch(y()){case`b`:return b(),`\b`;case`f`:return b(),`\f`;case`n`:return b(),`
|
|
7
|
-
`;case`r`:return b(),`\r`;case`t`:return b(),` `;case`v`:return b(),`\v`;case`0`:if(b(),n.isDigit(y()))throw T(b());return`\0`;case`x`:return b(),
|
|
7
|
+
`;case`r`:return b(),`\r`;case`t`:return b(),` `;case`v`:return b(),`\v`;case`0`:if(b(),n.isDigit(y()))throw T(b());return`\0`;case`x`:return b(),w();case`u`:return b(),te();case`
|
|
8
8
|
`:case`\u2028`:case`\u2029`:return b(),``;case`\r`:return b(),y()===`
|
|
9
|
-
`&&b(),``;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:throw T(b());case void 0:throw T(b())}return b()}function
|
|
9
|
+
`&&b(),``;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:throw T(b());case void 0:throw T(b())}return b()}function w(){let e=``,t=y();if(!n.isHexDigit(t)||(e+=b(),t=y(),!n.isHexDigit(t)))throw T(b());return e+=b(),String.fromCodePoint(parseInt(e,16))}function te(){let e=``,t=4;for(;t-- >0;){let t=y();if(!n.isHexDigit(t))throw T(b());e+=b()}return String.fromCodePoint(parseInt(e,16))}let ne={start(){if(l.type===`eof`)throw E();re()},beforePropertyName(){switch(l.type){case`identifier`:case`string`:u=l.value,i=`afterPropertyName`;return;case`punctuator`:ie();return;case`eof`:throw E()}},afterPropertyName(){if(l.type===`eof`)throw E();i=`beforePropertyValue`},beforePropertyValue(){if(l.type===`eof`)throw E();re()},beforeArrayValue(){if(l.type===`eof`)throw E();if(l.type===`punctuator`&&l.value===`]`){ie();return}re()},afterPropertyValue(){if(l.type===`eof`)throw E();switch(l.value){case`,`:i=`beforePropertyName`;return;case`}`:ie()}},afterArrayValue(){if(l.type===`eof`)throw E();switch(l.value){case`,`:i=`beforeArrayValue`;return;case`]`:ie()}},end(){}};function re(){let e;switch(l.type){case`punctuator`:switch(l.value){case`{`:e={};break;case`[`:e=[];break}break;case`null`:case`boolean`:case`numeric`:case`string`:e=l.value;break}if(d===void 0)d=e;else{let t=a[a.length-1];Array.isArray(t)?t.push(e):Object.defineProperty(t,u,{value:e,writable:!0,enumerable:!0,configurable:!0})}if(typeof e==`object`&&e)a.push(e),i=Array.isArray(e)?`beforeArrayValue`:`beforePropertyName`;else{let e=a[a.length-1];i=e==null?`end`:Array.isArray(e)?`afterArrayValue`:`afterPropertyValue`}}function ie(){a.pop();let e=a[a.length-1];i=e==null?`end`:Array.isArray(e)?`afterArrayValue`:`afterPropertyValue`}function T(e){return ce(e===void 0?`JSON5: invalid end of input at ${s}:${c}`:`JSON5: invalid character '${se(e)}' at ${s}:${c}`)}function E(){return ce(`JSON5: invalid end of input at ${s}:${c}`)}function ae(){return c-=5,ce(`JSON5: invalid identifier character at ${s}:${c}`)}function oe(e){console.warn(`JSON5: '${se(e)}' in strings is not valid ECMAScript; consider escaping`)}function se(e){let t={"'":`\\'`,'"':`\\"`,"\\":`\\\\`,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`,"\v":`\\v`,"\0":`\\0`,"\u2028":`\\u2028`,"\u2029":`\\u2029`};if(t[e])return t[e];if(e<` `){let t=e.charCodeAt(0).toString(16);return`\\x`+(`00`+t).substring(t.length)}return e}function ce(e){let t=SyntaxError(e);return t.lineNumber=s,t.columnNumber=c,t}})),Ye=pe(((e,t)=>{let n=qe();t.exports=function(e,t,r){let i=[],a=``,o,s,c=``,l;if(typeof t==`object`&&t&&!Array.isArray(t)&&(r=t.space,l=t.quote,t=t.replacer),typeof t==`function`)s=t;else if(Array.isArray(t)){o=[];for(let e of t){let t;typeof e==`string`?t=e:(typeof e==`number`||e instanceof String||e instanceof Number)&&(t=String(e)),t!==void 0&&o.indexOf(t)<0&&o.push(t)}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r==`number`?r>0&&(r=Math.min(10,Math.floor(r)),c=` `.substr(0,r)):typeof r==`string`&&(c=r.substr(0,10)),u(``,{"":e});function u(e,t){let n=t[e];switch(n!=null&&(typeof n.toJSON5==`function`?n=n.toJSON5(e):typeof n.toJSON==`function`&&(n=n.toJSON(e))),s&&(n=s.call(t,e,n)),n instanceof Number?n=Number(n):n instanceof String?n=String(n):n instanceof Boolean&&(n=n.valueOf()),n){case null:return`null`;case!0:return`true`;case!1:return`false`}if(typeof n==`string`)return d(n,!1);if(typeof n==`number`)return String(n);if(typeof n==`object`)return Array.isArray(n)?m(n):f(n)}function d(e){let t={"'":.1,'"':.2},r={"'":`\\'`,'"':`\\"`,"\\":`\\\\`,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`,"\v":`\\v`,"\0":`\\0`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},i=``;for(let a=0;a<e.length;a++){let o=e[a];switch(o){case`'`:case`"`:t[o]++,i+=o;continue;case`\0`:if(n.isDigit(e[a+1])){i+=`\\x00`;continue}}if(r[o]){i+=r[o];continue}if(o<` `){let e=o.charCodeAt(0).toString(16);i+=`\\x`+(`00`+e).substring(e.length);continue}i+=o}let a=l||Object.keys(t).reduce((e,n)=>t[e]<t[n]?e:n);return i=i.replace(new RegExp(a,`g`),r[a]),a+i+a}function f(e){if(i.indexOf(e)>=0)throw TypeError(`Converting circular structure to JSON5`);i.push(e);let t=a;a+=c;let n=o||Object.keys(e),r=[];for(let t of n){let n=u(t,e);if(n!==void 0){let e=p(t)+`:`;c!==``&&(e+=` `),e+=n,r.push(e)}}let s;if(r.length===0)s=`{}`;else{let e;if(c===``)e=r.join(`,`),s=`{`+e+`}`;else{let n=`,
|
|
10
10
|
`+a;e=r.join(n),s=`{
|
|
11
11
|
`+a+e+`,
|
|
12
12
|
`+t+`}`}}return i.pop(),a=t,s}function p(e){if(e.length===0)return d(e,!0);let t=String.fromCodePoint(e.codePointAt(0));if(!n.isIdStartChar(t))return d(e,!0);for(let r=t.length;r<e.length;r++)if(!n.isIdContinueChar(String.fromCodePoint(e.codePointAt(r))))return d(e,!0);return e}function m(e){if(i.indexOf(e)>=0)throw TypeError(`Converting circular structure to JSON5`);i.push(e);let t=a;a+=c;let n=[];for(let t=0;t<e.length;t++){let r=u(String(t),e);n.push(r===void 0?`null`:r)}let r;if(n.length===0)r=`[]`;else if(c===``)r=`[`+n.join(`,`)+`]`;else{let e=`,
|
|
@@ -21,42 +21,42 @@ import{createRequire as e}from"node:module";import t from"node:process";import{j
|
|
|
21
21
|
`,this._tabSize=t?.tabSize??8,this._noWrap=t?.noWrap??!1}get plain(){return this._text}set plain(e){let t=Xr(e);this._text=t;let n=t.length;this._spans=this._spans.map(e=>e.end>n?new ai(e.start,Math.min(e.end,n),e.style):e).filter(e=>e.start<n)}get length(){return this._text.length}get cellLength(){return k(this._text)}get hasContent(){return this._text.length>0}get style(){return this._style}set style(e){this._style=ti(e)}get justify(){return this._justify}set justify(e){this._justify=e}get overflow(){return this._overflow}set overflow(e){this._overflow=e}get end(){return this._end}set end(e){this._end=e}get noWrap(){return this._noWrap}set noWrap(e){this._noWrap=e}get spans(){return this._spans}resolvedStyle(e){return ri(e,this._style)}edgeStyle(e,t){let n=this.resolvedStyle(t);if(this._text.length===0)return n;let r=e===`left`?0:this._text.length-1,i=n;for(let e of this._spans)e.start<=r&&r<e.end&&(i=i.add(ri(t,e.style)));return i}append(t,n){if(t instanceof e){if(n!==void 0)throw Error(`Style argument must not be provided when appending RichText`);let e=this._text.length;this._text+=t._text;for(let n of t._spans)this._spans.push(n.move(e));return this}let r=Xr(t),i=this._text.length;return this._text+=r,this._addSpan(i,this._text.length,n??``),this}contains(t){let n=t instanceof e?t._text:t;return this._text.includes(n)}at(t){let n=t<0?this._text.length+t:t;return this._text[n]===void 0?new e(``):this.slice(n,n+1)}slice(e,t){let n=this._text,r=n.length,i=e??0,a=t??r,o=i<0?Math.max(0,r+i):Math.min(i,r),s=a<0?Math.max(0,r+a):Math.min(a,r);if(o>=s)return this.blankCopy();let c=n.slice(o,s),l=this.blankCopy(c);for(let e of this._spans){let t=Math.max(e.start,o)-o,n=Math.min(e.end,s)-o;t<n&&l._spans.push(new ai(t,n,e.style))}return l}_addSpan(e,t,n){ni(n)||this._spans.push(new ai(e,t,ti(n)))}stylize(e,t,n){let r=this._text.length,i=t===void 0?0:t<0?r+t:t,a=n===void 0?r:n<0?r+n:n;if(i>=a||i>=r||a<=0)return this;let o=Math.max(0,i),s=Math.min(r,a);return this._addSpan(o,s,e),this}highlightRegex(e,t){let n=this._text,r=0,i=e.flags.includes(`g`)?e.flags:e.flags+`g`,a=new RegExp(e.source,i),o;for(;(o=a.exec(n))!==null;){if(o[0].length===0){a.lastIndex++;continue}if(o.groups){let e=0;for(let[t,n]of Object.entries(o.groups))if(n!==void 0){let r=o[0].indexOf(n,e);if(r>=0){let i=o.index+r;this._addSpan(i,i+n.length,t),e=r+n.length}}r++;continue}this._addSpan(o.index,o.index+o[0].length,t??``),r++}return r}highlightWords(e,t,n){let r=n?.caseSensitive!==!1,i=0;for(let n of e){if(n.length===0)continue;let e=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),a=r?`g`:`gi`,o=RegExp(`\\b${e}\\b`,a),s;for(;(s=o.exec(this._text))!==null;)this._addSpan(s.index,s.index+s[0].length,t),i++}return i}copy(){let t=new e(this._text,{style:this._style,justify:this._justify,overflow:this._overflow,end:this._end,tabSize:this._tabSize,noWrap:this._noWrap});return t._spans=this._spans.slice(),t}blankCopy(t){return new e(t??``,{style:this._style,justify:this._justify,overflow:this._overflow,end:this._end,tabSize:this._tabSize,noWrap:this._noWrap})}split(e){let t=e??`
|
|
22
22
|
`,n=this._text,r=[],i=0;for(;;){let e=n.indexOf(t,i);if(e===-1){r.push(this.slice(i));break}r.push(this.slice(i,e)),i=e+t.length}return r}divide(e){if(e.length===0)return[this.copy()];let t=[],n=0;for(let r of e)t.push(this.slice(n,r)),n=r;return t.push(this.slice(n)),t}rstrip(){let e=this._text.replace(/\s+$/,``);return e.length<this._text.length&&(this.plain=e),this}pad(e,t){let n=(t??` `).repeat(e);return this._spans=this._spans.map(t=>t.move(e)),this._text=n+this._text+n,this}padLeft(e,t){let n=t??` `;return this._spans=this._spans.map(t=>t.move(e)),this._text=n.repeat(e)+this._text,this}padRight(e,t){let n=t??` `;return this._text+=n.repeat(e),this}setLength(e){return this._text.length<e?this._text+=` `.repeat(e-this._text.length):this._text.length>e&&(this.plain=this._text.slice(0,e)),this}extendStyle(e){let t=this._text.length;return this._text+=` `.repeat(e),this._spans=this._spans.map(n=>n.end===t?n.extend(e):n),this}truncate(e,t){if(this.cellLength<=e)return this;let n=t?.mode??`right`,r=t?.marker??`…`,i=k(r);if(e<=0)return this.plain=``,this;let a=Math.max(0,e-i);if(n===`right`)return this._cropRightTo(a),r&&(this._text+=r),this;if(n===`left`)return this._cropLeftTo(a),r&&(this._spans=this._spans.map(e=>e.move(r.length)),this._text=r+this._text),this;let o=Math.floor(a/2),s=a-o,c=this._cellPrefixCharLength(o),l=this._cellSuffixStartCharIndex(s),u=this._text.slice(0,c),d=this._text.slice(l),f=c,p=l,m=r.length-(p-f),h=[];for(let e of this._spans)e.end<=f?h.push(e):e.start>=p?h.push(e.move(m)):(e.start<f&&h.push(new ai(e.start,f,e.style)),e.end>p&&h.push(new ai(p+m,e.end+m,e.style)));return this._text=u+r+d,this._spans=h,this}_cropRightTo(e){let t=this._cellPrefixCharLength(e);this.plain=this._text.slice(0,t)}_cropLeftTo(e){let t=this._cellSuffixStartCharIndex(e),n=-t;this._spans=this._spans.map(e=>{if(!(e.end<=t))return new ai(Math.max(0,e.start+n),e.end+n,e.style)}).filter(e=>e!==void 0),this._text=this._text.slice(t)}_cellPrefixCharLength(e){let t=0,n=0;for(let r of this._text){let i=k(r);if(t+i>e)break;t+=i,n+=r.length}return n}_cellSuffixStartCharIndex(e){let t=[...this._text],n=0,r=0;for(let i=t.length-1;i>=0;i--){let a=k(t[i]);if(n+a>e)break;n+=a,r+=t[i].length}return this._text.length-r}align(e,t){let n=this.cellLength;if(n>=t)return this;let r=t-n;switch(e){case`left`:this.padRight(r);break;case`right`:this.padLeft(r);break;case`center`:{let e=Math.floor(r/2),t=r-e;this.padLeft(e),this.padRight(t);break}}return this}removeSuffix(e){return this._text.endsWith(e)&&(this.plain=this._text.slice(0,-e.length)),this}appendTokens(e){for(let[t,n]of e)this.append(t,n);return this}static assemble(t,n){let r=new e(``,{style:n?.style});for(let n of t)if(typeof n==`string`)r.append(n);else if(n instanceof e)r.append(n);else{let[e,t]=n;r.append(e,t)}return r}static styled(t,n){let r=new e(t);return r.stylize(n),r}static fromFragments(t,n){let r=new e(``,{end:n?.end??``});for(let e of t){let t=r.length;r.append(e.plain),r.stylize(e.style,t,r.length);for(let n of e.spans)r.stylize(n.style,t+n.start,t+n.end)}return r}*render(e){let t=this._expandTabs(this._text),n=this.resolvedStyle(e),r=this._buildSegments(t,n,e),i=V.splitLines(r),a=Rt(Rr(e,this).maxWidth),o=this._overflow??e.overflow??`fold`,s=this._justify??e.justify,c=this._noWrap||(e.noWrap??!1)?Rt(1/0):a,l=t.endsWith(`
|
|
23
23
|
`);for(let e=0;e<i.length;e+=1){let t=i[e],r=e<i.length-1||l,u=Vr(Qr(t),c,{fold:o===`fold`}),d=V.divide(t,u),f=this._justifyLines(d.map(e=>[...this._fitLine(e,c,o)]),a,n,s);for(let e=0;e<f.length;e+=1)yield*f[e],(e<f.length-1||r)&&(yield V.line())}this._end&&(yield new V(this._end))}measure(e){let t=this._expandTabs(this._text).split(`
|
|
24
|
-
`),n=0,r=0;for(let e of t){let t=k(e);n=Math.max(n,t);let i=e.split(/\s+/);for(let e of i)e.length>0&&(r=Math.max(r,k(e)))}let i=Rt(e.maxWidth);return{minimum:Math.min(r,i),maximum:Math.min(n,i)}}_expandTabs(e){return e.includes(` `)?e.replace(/\t/g,` `.repeat(this._tabSize)):e}_buildSegments(e,t,n){let r=t=>Math.max(0,Math.min(t,e.length)),i=new Set([0,e.length]);for(let e of this._spans)i.add(r(e.start)),i.add(r(e.end));let a=[...i].sort((e,t)=>e-t),o=new Map(a.map((e,t)=>[e,t])),s=a.slice(0,-1).map(()=>t);for(let e of this._spans){let t=r(e.end),i=ri(n,e.style),c=o.get(r(e.start));for(let e=c;a[e]<t;e++)s[e]=s[e].add(i)}return s.map((t,n)=>new V(e.slice(a[n],a[n+1]),t.isNull?void 0:t))}_justifyLines(e,t,n,r){return r===`full`?e.map((r,i)=>i===e.length-1?r:this._fillLine(r,t,n)):e.map(e=>[...this._justifyLine(e,t,r)])}*_justifyLine(e,t,n){switch(n){case`center`:case`right`:{let r=V.adjustLineLength(e,V.getLineLength(e)-$r(e),void 0,!1),i=Math.max(t-V.getLineLength(r),0),a=n===`center`?Math.floor(i/2):i;a>0&&(yield new V(` `.repeat(a))),yield*r;let o=i-a;o>0&&(yield new V(` `.repeat(o)));break}case`left`:yield*V.adjustLineLength(e,Math.max(t,V.getLineLength(e)));break;default:yield*e;break}}_fillLine(e,t,n){let r=Qr(e),i=r.split(` `);r.endsWith(` `)&&i.pop();let a=i.length-1,o=Array(a).fill(1),s=i.reduce((e,t)=>e+k(t),0)+a;for(let e=0;s<t&&a>0;e=(e+1)%a)o[a-1-e]+=1,s+=1;let c=[],l=0;for(let e=0;e<i.length;e+=1)l+=k(i[e]),c.push(l),l+=1,e<a&&c.push(l);let u=V.divide(e,c),d=(e,t)=>e.filter(e=>e.hasText).at(t)?.style??n,f=[];for(let e=0;e<i.length;e+=1)if(f.push(...u[e*2]),e<a){let t=d(u[e*2],-1),r=d(u[e*2+2],0),i=t.equals(r)?t:n;f.push(new V(` `.repeat(o[e]),i.isNull?void 0:i))}return f}*_fitLine(e,t,n){let r=V.getLineLength(e);if(r-$r(e)<=t){yield*V.adjustLineLength(e,Math.min(r,t),void 0,!1);return}if(n===`ellipsis`&&t>0){yield*V.adjustLineLength(e,t-1,void 0,!1),yield new V(`…`);return}yield*V.adjustLineLength(e,t,void 0,!1)}},oi=class{items;joiner;constructor(e,t){this.items=e,this.joiner=t}*render(e){let t=this.items;if(t.length!==0){yield*this.joiner.join(null,t[0]).render(e);for(let n=0;n<t.length;n++){let r=t[n];yield*r.render(e);let i=n+1<t.length?t[n+1]:null;yield*this.joiner.join(r,i).render(e)}yield V.line()}}};const si={*render(e){}};var ci=class{_text;_style;constructor(e,t){this._text=e,this._style=t}*render(e){yield new V(this._text,this._style)}};function li(e){return{render:e}}function ui(e){return new B({color:e.bgcolor})}function di(e){return e!==void 0&&!e.isDefault?e:void 0}function fi(e){return new B({bgcolor:e}).drawnColors().bgcolor}function*pi(e,t){e!==``&&(yield new V(e,new B({color:fi(t)})))}function mi(e,t){let{color:n,bgcolor:r}=e.drawnColors(t??M.TRUECOLOR);if(n===void 0||r===void 0)return!1;let i=n.fixedValue,a=r.fixedValue;return i!==void 0&&a!==void 0?R.fromRgba(i).deltaE(R.fromRgba(a))<.04:n.number===r.number}const hi=Object.freeze({glyph:``,divider:``,lead:``,tail:``});var gi=class{_glyph;_divider;_lead;_tail;constructor(e=hi){this._glyph=e.glyph,this._divider=e.divider,this._lead=e.lead,this._tail=e.tail}join(e,t){let n=this._glyph,r=this._divider,i=this._lead,a=this._tail;return li(function*(o){let s=e?.edgeStyle(`right`,o),c=di(s?.bgcolor),l=di(t?.edgeStyle(`left`,o).bgcolor);if(c===void 0){l!==void 0&&(yield*pi(i,l));return}if(l===void 0){yield*pi(a,c);return}let u=new B({color:fi(c),bgcolor:l});yield mi(u,o.colorSystem)?new V(r,new B({color:s?.color,bgcolor:c})):new V(n,u)})}},_i=class{_left;_right;_separator;constructor(e){this._left=e?.left??``,this._right=e?.right??``,this._separator=e?.separator??` `}*_emit(e,t,n){if(!(e===null&&t===null)){if(e===null){yield new V(this._left,ui(t.edgeStyle(`left`,n)));return}if(t===null){yield new V(this._right,ui(e.edgeStyle(`right`,n)));return}yield new V(this._right,ui(e.edgeStyle(`right`,n))),this._separator.length>0&&(yield new V(this._separator)),yield new V(this._left,ui(t.edgeStyle(`left`,n)))}}join(e,t){return li(n=>this._emit(e,t,n))}},vi=class{_separator;_style;constructor(e){this._separator=e?.separator??` | `,this._style=e?.style??B.parse(`dim`)}join(e,t){return e===null||t===null?si:new ci(this._separator,this._style)}};function yi(e,t){if(e.isControl||e.text.length===0)return;let n=e.style;return!n||n.isNull?{text:e.text,sgrCodes:``,link:void 0}:{text:e.text,sgrCodes:t.colorSystem===null?``:n.toSgrCodes(t.colorSystem),link:t.hyperlinks?n.link:void 0}}function bi(e,t){let n=[];for(let r of e){let e=yi(r,t);e&&n.push(e)}if(n.length===0)return``;let r=[],i=0;for(;i<n.length;){let e=n[i].sgrCodes,t=i+1;for(;t<n.length&&n[t].sgrCodes===e;)t++;e.length>0&&r.push(`\x1b[${e}m`);let a=i;for(;a<t;){let e=n[a].link,i=a+1;for(;i<t&&n[i].link===e;)i++;if(e){r.push(qr(e));for(let e=a;e<i;e++)r.push(n[e].text);r.push(`\x1B]8;;\x1B\\`)}else for(let e=a;e<i;e++)r.push(n[e].text);a=i}e.length>0&&r.push(`\x1B[0m`),i=t}return r.join(``)}function xi(e,t){let n=t?.width??80,r={};t?.env!==void 0&&(r.env=t.env),t?.isTTY!==void 0&&(r.isTTY=t.isTTY);let i=t?.colorSystem,a=an(i===void 0?M.TRUECOLOR:i,r),o={colorSystem:t?.noColor?null:a.colorSystem,hyperlinks:t?.hyperlinks??a.hyperlinks},s={maxWidth:n,isTerminal:!1,encoding:`utf-8`,asciiOnly:!1,colorSystem:o.colorSystem};return bi(e.render(s),o)}function Si(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const Ci={segments:[],width:0},wi={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Ti(e,t){return wi[e](t)}function Ei(e,t,n,r){let i=Math.max(0,r-1),a=e===`justify`&&!t&&i>0&&n>0?n:0,o=i>0?Math.floor(a/i):0,s=a-o*i;return Array.from({length:i},(e,t)=>o+ +(t<s))}var Di=class{items;joiner;gap;align;constructor(e,t){this.items=e,this.joiner=t?.joiner,this.gap=t?.gap??0,this.align=t?.align??`left`}*render(e){let t=this.items;if(t.length===0)return;let n=Math.max(1,e.maxWidth),r=this.gap,i=this.joiner,a=t.map(t=>Si(t,e)),o=n=>i?Si(i.join(null,t[n]),e):Ci,s=n=>i?Si(i.join(t[n],null),e):Ci,c=(n,r)=>i?Si(i.join(t[n],t[r]),e):Ci,l=[],u=null,d=r>0?{segments:[new V(` `.repeat(r))],width:r}:Ci;for(let e=0;e<t.length;e++){let t=a[e];if(u===null){let n=o(e),r=s(e),i=n.width>0?[n,t]:[t],a=[i.length-1];u={blocks:i,width:n.width+t.width,lastIndex:e,itemBlockIndices:a},u.endCap=r;continue}let i=u.lastIndex,f=c(i,e),p=s(e),m=(r>0?r:0)+f.width+(r>0?r:0)+t.width;if(u.width+m+p.width<=n)r>0&&u.blocks.push(d),f.width>0&&u.blocks.push(f),r>0&&u.blocks.push(d),u.blocks.push(t),u.itemBlockIndices.push(u.blocks.length-1),u.width+=m,u.lastIndex=e,u.endCap=p;else{let n=u.endCap;n.width>0&&u.blocks.push(n),u.width+=n.width,l.push(u);let r=o(e),i=s(e),a=r.width>0?[r,t]:[t],c=[a.length-1];u={blocks:a,width:r.width+t.width,lastIndex:e,itemBlockIndices:c},u.endCap=i}}let f=u;{let e=f.endCap;e.width>0&&f.blocks.push(e),f.width+=e.width,l.push(f)}let p=this.align;for(let e=0;e<l.length;e++){let t=l[e],r=e===l.length-1,i=Math.max(0,n-t.width),a=Ti(p,i),o=Ei(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new V(` `.repeat(a)));for(let e=0;e<t.blocks.length;e++){let n=s.get(e);if(n!==void 0&&n>0){let e=o[n-1];e>0&&(yield new V(` `.repeat(e)))}yield*t.blocks[e].segments}yield V.line()}}measure(e){let t=this.items;if(t.length===0)return{minimum:0,maximum:0};let n=0,r=0;for(let i=0;i<t.length;i++){let a=Si(t[i],e).width,o=this.joiner?Si(this.joiner.join(null,t[i]),e).width:0,s=this.joiner?Si(this.joiner.join(t[i],null),e).width:0;n=Math.max(n,a+o+s),r+=a,i>0&&(r+=this.gap*2,this.joiner&&(r+=Si(this.joiner.join(t[i-1],t[i]),e).width))}return this.joiner&&(r+=Si(this.joiner.join(null,t[0]),e).width,r+=Si(this.joiner.join(t[t.length-1],null),e).width),{minimum:n,maximum:r}}};const Oi={dark:`textual-dark`,light:`textual-light`};function ki(e){return Oi[e]??e}const Ai=`textual-dark`;function ji(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function U(){return Object.keys(Oi)}function Mi(){return[...rr(),...U()]}function Ni(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return ji(e===void 0?null:a(e),t,a(n??r),r,a)}const Pi=[`look`,`palette`];function Fi(e){return e!==void 0&&e.includes(`{{`)}function Ii(e,t,n,r,i){let a=Fi(n)?{kind:`expression`,source:n}:i(n??r.name);return ji(e===void 0?null:i(e),t,a,r,i)}function Li(e,t,n){return e.kind===`decided`?e:n(t())}const Ri=`none`;function zi(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function Bi(e,t){return zi(e,t)??zi(`none`,t)??{kind:`decided`,name:`none`,value:On}}function Vi(e,t,n,r){return Ii(e,t,n,Bi(Ri,r),e=>zi(e,r))}const Hi=[`powerline`,`capsule`,`plain`];function Ui(e){return Hi.includes(e)}function Wi(e,t,n){return ji(e,t,n,`powerline`,e=>Ui(e)?e:null)}const Gi=[`unicode`,`ascii`],Ki=`unicode`;function qi(e){return Gi.includes(e)}function Ji(e,t,n){return ji(e,t,n,Ki,e=>qi(e)?e:null)}const Yi=[`truecolor`,`256`,`ansi`,`none`],Xi=`truecolor`;function Zi(e){return Yi.includes(e)}function Qi(e,t,n){return ji(e,t,n,Xi,e=>Zi(e)?e:null)}function $i(e){return on(e)??M.DEFAULT}const ea=`true`,ta=`false`,na=[ea,ta],ra={min:0,max:16};function ia(e){return e===`true`?!0:e===`false`?!1:null}function aa(e){if(!/^\d+$/.test(e))return null;let t=Number(e);return t>=ra.min&&t<=ra.max?t:null}function oa(e,t,n){return ji(e,t,n,!0,ia)}function sa(e,t,n){return ji(e,t,n,1,aa)}var ca=class extends Error{constructor(e,t){super(`${e} (at offset ${t})`),this.reason=e,this.offset=t,this.name=`Json5EditError`}};const la=/[A-Za-z_$\p{L}]/u,ua=/[A-Za-z0-9_$\u200C\u200D\p{L}\p{N}]/u,da=/[A-Za-z0-9_$.+\-\p{L}\p{N}]/u,fa=/[\t\n\v\f\r \u00A0\uFEFF\u2028\u2029\p{Zs}]/u;var pa=class{pos=0;constructor(e){this.text=e}peek(){return this.text[this.pos]??``}fail(e){throw new ca(e,this.pos)}skipTrivia(){for(;;){let e=this.peek();if(e===``)return;if(fa.test(e))this.pos++;else if(e===`/`&&this.text[this.pos+1]===`/`){let e=this.text.indexOf(`
|
|
25
|
-
`,this.pos);this.pos=e===-1?this.text.length:e}else if(e===`/`&&this.text[this.pos+1]===`*`){let e=this.text.indexOf(`*/`,this.pos+2);e===-1&&this.fail(`unterminated block comment`),this.pos=e+2}else return}}expect(e){this.peek()!==e&&this.fail(`expected "${e}"`),this.pos++}value(){this.skipTrivia();let e=this.peek();if(e===`{`)return this.object();if(e===`[`)return this.array();if(e===`"`||e===`'`){let e=this.stringSpan();return{kind:`string`,span:e,value:this.decode(e)}}e===``&&this.fail(`unexpected end of input`);let t=this.pos;for(;this.pos<this.text.length&&
|
|
24
|
+
`),n=0,r=0;for(let e of t){let t=k(e);n=Math.max(n,t);let i=e.split(/\s+/);for(let e of i)e.length>0&&(r=Math.max(r,k(e)))}let i=Rt(e.maxWidth);return{minimum:Math.min(r,i),maximum:Math.min(n,i)}}_expandTabs(e){return e.includes(` `)?e.replace(/\t/g,` `.repeat(this._tabSize)):e}_buildSegments(e,t,n){let r=t=>Math.max(0,Math.min(t,e.length)),i=new Set([0,e.length]);for(let e of this._spans)i.add(r(e.start)),i.add(r(e.end));let a=[...i].sort((e,t)=>e-t),o=new Map(a.map((e,t)=>[e,t])),s=a.slice(0,-1).map(()=>t);for(let e of this._spans){let t=r(e.end),i=ri(n,e.style),c=o.get(r(e.start));for(let e=c;a[e]<t;e++)s[e]=s[e].add(i)}return s.map((t,n)=>new V(e.slice(a[n],a[n+1]),t.isNull?void 0:t))}_justifyLines(e,t,n,r){return r===`full`?e.map((r,i)=>i===e.length-1?r:this._fillLine(r,t,n)):e.map(e=>[...this._justifyLine(e,t,r)])}*_justifyLine(e,t,n){switch(n){case`center`:case`right`:{let r=V.adjustLineLength(e,V.getLineLength(e)-$r(e),void 0,!1),i=Math.max(t-V.getLineLength(r),0),a=n===`center`?Math.floor(i/2):i;a>0&&(yield new V(` `.repeat(a))),yield*r;let o=i-a;o>0&&(yield new V(` `.repeat(o)));break}case`left`:yield*V.adjustLineLength(e,Math.max(t,V.getLineLength(e)));break;default:yield*e;break}}_fillLine(e,t,n){let r=Qr(e),i=r.split(` `);r.endsWith(` `)&&i.pop();let a=i.length-1,o=Array(a).fill(1),s=i.reduce((e,t)=>e+k(t),0)+a;for(let e=0;s<t&&a>0;e=(e+1)%a)o[a-1-e]+=1,s+=1;let c=[],l=0;for(let e=0;e<i.length;e+=1)l+=k(i[e]),c.push(l),l+=1,e<a&&c.push(l);let u=V.divide(e,c),d=(e,t)=>e.filter(e=>e.hasText).at(t)?.style??n,f=[];for(let e=0;e<i.length;e+=1)if(f.push(...u[e*2]),e<a){let t=d(u[e*2],-1),r=d(u[e*2+2],0),i=t.equals(r)?t:n;f.push(new V(` `.repeat(o[e]),i.isNull?void 0:i))}return f}*_fitLine(e,t,n){let r=V.getLineLength(e);if(r-$r(e)<=t){yield*V.adjustLineLength(e,Math.min(r,t),void 0,!1);return}if(n===`ellipsis`&&t>0){yield*V.adjustLineLength(e,t-1,void 0,!1),yield new V(`…`);return}yield*V.adjustLineLength(e,t,void 0,!1)}},oi=class{items;joiner;constructor(e,t){this.items=e,this.joiner=t}*render(e){let t=this.items;if(t.length!==0){yield*this.joiner.join(null,t[0]).render(e);for(let n=0;n<t.length;n++){let r=t[n];yield*r.render(e);let i=n+1<t.length?t[n+1]:null;yield*this.joiner.join(r,i).render(e)}yield V.line()}}};const si={*render(e){}};var ci=class{_text;_style;constructor(e,t){this._text=e,this._style=t}*render(e){yield new V(this._text,this._style)}};function li(e){return{render:e}}function ui(e){return new B({color:e.bgcolor})}function di(e){return e!==void 0&&!e.isDefault?e:void 0}function fi(e){return new B({bgcolor:e}).drawnColors().bgcolor}function*pi(e,t){e!==``&&(yield new V(e,new B({color:fi(t)})))}function mi(e,t){let{color:n,bgcolor:r}=e.drawnColors(t??M.TRUECOLOR);if(n===void 0||r===void 0)return!1;let i=n.fixedValue,a=r.fixedValue;return i!==void 0&&a!==void 0?R.fromRgba(i).deltaE(R.fromRgba(a))<.04:n.number===r.number}const hi=Object.freeze({glyph:``,divider:``,lead:``,tail:``});var gi=class{_glyph;_divider;_lead;_tail;constructor(e=hi){this._glyph=e.glyph,this._divider=e.divider,this._lead=e.lead,this._tail=e.tail}join(e,t){let n=this._glyph,r=this._divider,i=this._lead,a=this._tail;return li(function*(o){let s=e?.edgeStyle(`right`,o),c=di(s?.bgcolor),l=di(t?.edgeStyle(`left`,o).bgcolor);if(c===void 0){l!==void 0&&(yield*pi(i,l));return}if(l===void 0){yield*pi(a,c);return}let u=new B({color:fi(c),bgcolor:l});yield mi(u,o.colorSystem)?new V(r,new B({color:s?.color,bgcolor:c})):new V(n,u)})}},_i=class{_left;_right;_separator;constructor(e){this._left=e?.left??``,this._right=e?.right??``,this._separator=e?.separator??` `}*_emit(e,t,n){if(!(e===null&&t===null)){if(e===null){yield new V(this._left,ui(t.edgeStyle(`left`,n)));return}if(t===null){yield new V(this._right,ui(e.edgeStyle(`right`,n)));return}yield new V(this._right,ui(e.edgeStyle(`right`,n))),this._separator.length>0&&(yield new V(this._separator)),yield new V(this._left,ui(t.edgeStyle(`left`,n)))}}join(e,t){return li(n=>this._emit(e,t,n))}},vi=class{_separator;_style;constructor(e){this._separator=e?.separator??` | `,this._style=e?.style??B.parse(`dim`)}join(e,t){return e===null||t===null?si:new ci(this._separator,this._style)}};function yi(e,t){if(e.isControl||e.text.length===0)return;let n=e.style;return!n||n.isNull?{text:e.text,sgrCodes:``,link:void 0}:{text:e.text,sgrCodes:t.colorSystem===null?``:n.toSgrCodes(t.colorSystem),link:t.hyperlinks?n.link:void 0}}function bi(e,t){let n=[];for(let r of e){let e=yi(r,t);e&&n.push(e)}if(n.length===0)return``;let r=[],i=0;for(;i<n.length;){let e=n[i].sgrCodes,t=i+1;for(;t<n.length&&n[t].sgrCodes===e;)t++;e.length>0&&r.push(`\x1b[${e}m`);let a=i;for(;a<t;){let e=n[a].link,i=a+1;for(;i<t&&n[i].link===e;)i++;if(e){r.push(qr(e));for(let e=a;e<i;e++)r.push(n[e].text);r.push(`\x1B]8;;\x1B\\`)}else for(let e=a;e<i;e++)r.push(n[e].text);a=i}e.length>0&&r.push(`\x1B[0m`),i=t}return r.join(``)}function xi(e,t){let n=t?.width??80,r={};t?.env!==void 0&&(r.env=t.env),t?.isTTY!==void 0&&(r.isTTY=t.isTTY);let i=t?.colorSystem,a=an(i===void 0?M.TRUECOLOR:i,r),o={colorSystem:t?.noColor?null:a.colorSystem,hyperlinks:t?.hyperlinks??a.hyperlinks},s={maxWidth:n,isTerminal:!1,encoding:`utf-8`,asciiOnly:!1,colorSystem:o.colorSystem};return bi(e.render(s),o)}function Si(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const Ci={segments:[],width:0},wi={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Ti(e,t){return wi[e](t)}function Ei(e,t,n,r){let i=Math.max(0,r-1),a=e===`justify`&&!t&&i>0&&n>0?n:0,o=i>0?Math.floor(a/i):0,s=a-o*i;return Array.from({length:i},(e,t)=>o+ +(t<s))}var Di=class{items;joiner;gap;align;constructor(e,t){this.items=e,this.joiner=t?.joiner,this.gap=t?.gap??0,this.align=t?.align??`left`}*render(e){let t=this.items;if(t.length===0)return;let n=Math.max(1,e.maxWidth),r=this.gap,i=this.joiner,a=t.map(t=>Si(t,e)),o=n=>i?Si(i.join(null,t[n]),e):Ci,s=n=>i?Si(i.join(t[n],null),e):Ci,c=(n,r)=>i?Si(i.join(t[n],t[r]),e):Ci,l=[],u=null,d=r>0?{segments:[new V(` `.repeat(r))],width:r}:Ci;for(let e=0;e<t.length;e++){let t=a[e];if(u===null){let n=o(e),r=s(e),i=n.width>0?[n,t]:[t],a=[i.length-1];u={blocks:i,width:n.width+t.width,lastIndex:e,itemBlockIndices:a},u.endCap=r;continue}let i=u.lastIndex,f=c(i,e),p=s(e),m=(r>0?r:0)+f.width+(r>0?r:0)+t.width;if(u.width+m+p.width<=n)r>0&&u.blocks.push(d),f.width>0&&u.blocks.push(f),r>0&&u.blocks.push(d),u.blocks.push(t),u.itemBlockIndices.push(u.blocks.length-1),u.width+=m,u.lastIndex=e,u.endCap=p;else{let n=u.endCap;n.width>0&&u.blocks.push(n),u.width+=n.width,l.push(u);let r=o(e),i=s(e),a=r.width>0?[r,t]:[t],c=[a.length-1];u={blocks:a,width:r.width+t.width,lastIndex:e,itemBlockIndices:c},u.endCap=i}}let f=u;{let e=f.endCap;e.width>0&&f.blocks.push(e),f.width+=e.width,l.push(f)}let p=this.align;for(let e=0;e<l.length;e++){let t=l[e],r=e===l.length-1,i=Math.max(0,n-t.width),a=Ti(p,i),o=Ei(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new V(` `.repeat(a)));for(let e=0;e<t.blocks.length;e++){let n=s.get(e);if(n!==void 0&&n>0){let e=o[n-1];e>0&&(yield new V(` `.repeat(e)))}yield*t.blocks[e].segments}yield V.line()}}measure(e){let t=this.items;if(t.length===0)return{minimum:0,maximum:0};let n=0,r=0;for(let i=0;i<t.length;i++){let a=Si(t[i],e).width,o=this.joiner?Si(this.joiner.join(null,t[i]),e).width:0,s=this.joiner?Si(this.joiner.join(t[i],null),e).width:0;n=Math.max(n,a+o+s),r+=a,i>0&&(r+=this.gap*2,this.joiner&&(r+=Si(this.joiner.join(t[i-1],t[i]),e).width))}return this.joiner&&(r+=Si(this.joiner.join(null,t[0]),e).width,r+=Si(this.joiner.join(t[t.length-1],null),e).width),{minimum:n,maximum:r}}};const Oi=[`primary`,`secondary`,`accent`],ki={"secondary-accent":[`secondary`,`accent`],"primary-secondary":[`primary`,`secondary`],primary:[`primary`]},Ai=`accent`,ji=[0,.5,1],U=e=>e.flatMap(e=>ji.map(t=>({hue:e,tone:t}))),Mi=U(Oi.filter(e=>Object.values(ki).some(t=>t.includes(e)))),Ni=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},Pi=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],Fi=e=>typeof e==`string`&&Pi.includes(e),Ii={"van-der-corput":Ni,"golden-angle":e=>e*.6180339887498949%1,"ends-interleaved":(e,t)=>((e%2==0?e/2:t-1-(e-1)/2)+.5)/t,monotonic:(e,t)=>(e+.5)/t,uniform:()=>.5},Li=e=>Ii[e??`van-der-corput`];function Ri(e){let t=0,n=1;for(let{index:r,count:i,distribution:a}of e)t+=a(r,i)*n,n*=.37;return t%1}const zi=(e,t)=>Math.floor(e*t),Bi=(e,t)=>Math.round(e*t)%t;function Vi(e,t,n){let r=e[n(t===void 0?0:t.distribution(t.index,t.count),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function Hi(e,t){let n=t.findIndex(e=>e.axis===`cell`),r=n===-1?t:t.slice(0,n);return{hue:Vi(e,r.at(-1),zi),tone:Vi(ji,t[r.length],Bi)}}function Ui(e,t){let n=e.get(t);if(n===void 0)throw Error(`palette "${e.name}" has no "${t}" role; decoration needs it`);return n}function Wi(e,t){let n=Gi.get(e);n===void 0&&(n=new Map,Gi.set(e,n));let r=`${t.hue}|${t.tone}`,i=n.get(r);if(i!==void 0)return i;let a=R.fromRgba(Ui(e,t.hue)),o=R.fromRgba(Ui(e,`surface`)),s=(e,t)=>e.mixAxes(a,{l:t,c:.8,h:1,alpha:0}),c=s(o.mixAxes(R.fromRgba(Ui(e,`background`)),{l:.5,c:0,h:0,alpha:0}),0).mixAxes(s(o,.35),{l:t.tone,c:t.tone,h:t.tone,alpha:0}).toRgba();return n.set(r,c),c}const Gi=new WeakMap,Ki=(e,t,n)=>Wi(e,Hi(t,n)),qi=2.2;function Ji(e,t,n){let r=Yi(e,t,n);if(`refused`in r)throw Error(r.refused);return r.state}function Yi(e,t,n){let r=Xi.get(e);r===void 0&&(r=new Map,Xi.set(e,r));let i=`${t}|${n}`,a=r.get(i);if(a!==void 0)return a;let o=Zi(e,t,n);return r.set(i,o),o}const Xi=new WeakMap;function Zi(e,t,n){let r=Mi.map(t=>Xn(Wi(e,t),M.TRUECOLOR)),i=hn(Ui(e,`surface`),Ui(e,t),.92),a=Ui(e,`foreground`),o=r.reduce((e,t)=>Jn(e,t,qi),a),s=[...Array.from({length:13},(e,t)=>hn(i,a,t/12)),o].find(e=>r.every(t=>Yt(Xn(e,M.TRUECOLOR),t)>=qi));if(s===void 0)return{refused:`palette "${e.name}": "${t}" cannot clear the ${qi} state floor even beyond foreground`};let c=Yn(s,n,(e,t)=>r.every(n=>Yt(e,t(n))>=qi));return c===void 0?{refused:`palette "${e.name}": "${t}" cannot clear the ${qi} state floor on the colours drawn at depth ${M[n]}`}:{state:c}}const Qi=4.5;function $i(e,t,n){let r=ea.get(e);r===void 0&&(r=new Map,ea.set(e,r));let i=`${t.hex}|${n}`,a=r.get(i);if(a!==void 0)return a;let o=qn(t),s=Jn([`background`,`foreground`].map(t=>Ui(e,t)).reduce((e,t)=>Yt(o,t)<Yt(o,e)?t:e),t,Qi,n);return r.set(i,s),s}const ea=new WeakMap,ta={base:.42,perDepth:.14,cap:.75},na={floor:.12,span:.8};function ra(e,t){return Oi[(Oi.indexOf(e)+t)%Oi.length]}const ia={triggerPlane:.1,nestedPlane:.035,nestedTriggerPlane:.08};function aa(e,t,n){let r=`${t.hue}|${t.depth}|${n}`,i=da.get(e);i===void 0&&(i=new Map,da.set(e,i));let a=i.get(r);if(a!==void 0)return a;let o=Ji(e,ra(t.hue,t.depth),n),s=ua(e,t,o,n),c=Yn(sa(e,t).plane,n,(e,t)=>s.every(([n,r])=>oa(e,t(n))>=r));if(c===void 0)throw Error(`palette "${e.name}": the ${t.hue} band at depth ${t.depth} cannot keep its floors on the colours drawn at depth ${M[n]}`);let l={state:o,plane:c};return i.set(r,l),l}const oa=(e,t)=>R.fromRgba(e).deltaE(R.fromRgba(t));function sa(e,t){let n=`${t.hue}|${t.depth}`,r=ca.get(e);r===void 0&&(r=new Map,ca.set(e,r));let i=r.get(n);if(i!==void 0)return i;let a=la(e,t);return r.set(n,a),a}const ca=new WeakMap;function la(e,t){let n=Ji(e,ra(t.hue,t.depth),M.TRUECOLOR),r=Math.min(ta.cap,ta.base+ta.perDepth*t.depth);return{state:n,plane:hn(n,Ui(e,`background`),r)}}function ua(e,t,n,r){let{hue:i,depth:a}=t,o=t=>sa(e,{hue:i,depth:t}).state,s=t=>sa(e,{hue:i,depth:t}).plane,c=e=>Xn(e,M.TRUECOLOR),l=s(a),u=(e,t)=>oa(c(l),c(t))>=e?e:0,d=ra(i,a+1),f=Yi(e,d,r),p=Yi(e,d,M.TRUECOLOR);return[[n,u(ia.triggerPlane,o(a))],...`state`in f&&`state`in p?[[f.state,u(ia.nestedTriggerPlane,p.state)]]:[],...a>0?[[aa(e,{hue:i,depth:a-1},r).plane,u(ia.nestedPlane,s(a-1))]]:[]]}const da=new WeakMap;function fa(e,t,n,r){let i=aa(e,t,r),a=sa(e,t),o=Yn(hn(a.plane,a.state,na.floor+na.span*Ri(n)),r,(e,t)=>e.hex!==t(i.plane).hex&&e.hex!==t(i.state).hex);if(o===void 0)throw Error(`palette "${e.name}": a ${t.hue} band item at depth ${t.depth} is drawn as its plane or its trigger at depth ${M[r]}, and nothing that depth draws is neither`);return o}const pa=e=>({kind:`bar`,progression:e,address:[]}),ma=(e,t)=>({...e,address:[...e.address,t]}),ha=e=>({kind:`band`,band:e,address:[]});function ga(e,t,n){switch(t.kind){case`bar`:return{tint:Ki(e,t.progression,t.address),disclosure:{hue:Ai,depth:0}};case`band`:return{tint:fa(e,t.band,t.address,n),disclosure:{hue:t.band.hue,depth:t.band.depth+1}}}}const _a={dark:`textual-dark`,light:`textual-light`};function va(e){return _a[e]??e}const ya=`textual-dark`;function ba(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function xa(){return Object.keys(_a)}function Sa(){return[...rr(),...xa()]}function Ca(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return ba(e===void 0?null:a(e),t,a(n??r),r,a)}const wa=[`look`,`palette`];function Ta(e){return e!==void 0&&e.includes(`{{`)}function Ea(e,t,n,r,i){let a=Ta(n)?{kind:`expression`,source:n}:i(n??r.name);return ba(e===void 0?null:i(e),t,a,r,i)}function Da(e,t,n){return e.kind===`decided`?e:n(t())}const Oa=`none`;function ka(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function Aa(e,t){return ka(e,t)??ka(`none`,t)??{kind:`decided`,name:`none`,value:On}}function ja(e,t,n,r){return Ea(e,t,n,Aa(Oa,r),e=>ka(e,r))}const Ma=[`powerline`,`capsule`,`plain`];function Na(e){return Ma.includes(e)}function Pa(e,t,n){return ba(e,t,n,`powerline`,e=>Na(e)?e:null)}const Fa=[`unicode`,`ascii`],Ia=`unicode`;function La(e){return Fa.includes(e)}function Ra(e,t,n){return ba(e,t,n,Ia,e=>La(e)?e:null)}const za=[`truecolor`,`256`,`ansi`,`none`],Ba=`truecolor`;function Va(e){return za.includes(e)}function Ha(e,t,n){return ba(e,t,n,Ba,e=>Va(e)?e:null)}function Ua(e){return on(e)??M.DEFAULT}const Wa=Object.keys(ki);function Ga(e){return Wa.includes(e)}function Ka(e,t,n){return ba(e,t,n,`secondary-accent`,e=>Ga(e)?e:null)}const qa=`true`,Ja=`false`,Ya=[qa,Ja],Xa={min:0,max:16};function Za(e){return e===`true`?!0:e===`false`?!1:null}function Qa(e){if(!/^\d+$/.test(e))return null;let t=Number(e);return t>=Xa.min&&t<=Xa.max?t:null}function $a(e,t,n){return ba(e,t,n,!0,Za)}function eo(e,t,n){return ba(e,t,n,1,Qa)}var to=class extends Error{constructor(e,t){super(`${e} (at offset ${t})`),this.reason=e,this.offset=t,this.name=`Json5EditError`}};const no=/[A-Za-z_$\p{L}]/u,ro=/[A-Za-z0-9_$\u200C\u200D\p{L}\p{N}]/u,io=/[A-Za-z0-9_$.+\-\p{L}\p{N}]/u,ao=/[\t\n\v\f\r \u00A0\uFEFF\u2028\u2029\p{Zs}]/u;var oo=class{pos=0;constructor(e){this.text=e}peek(){return this.text[this.pos]??``}fail(e){throw new to(e,this.pos)}skipTrivia(){for(;;){let e=this.peek();if(e===``)return;if(ao.test(e))this.pos++;else if(e===`/`&&this.text[this.pos+1]===`/`){let e=this.text.indexOf(`
|
|
25
|
+
`,this.pos);this.pos=e===-1?this.text.length:e}else if(e===`/`&&this.text[this.pos+1]===`*`){let e=this.text.indexOf(`*/`,this.pos+2);e===-1&&this.fail(`unterminated block comment`),this.pos=e+2}else return}}expect(e){this.peek()!==e&&this.fail(`expected "${e}"`),this.pos++}value(){this.skipTrivia();let e=this.peek();if(e===`{`)return this.object();if(e===`[`)return this.array();if(e===`"`||e===`'`){let e=this.stringSpan();return{kind:`string`,span:e,value:this.decode(e)}}e===``&&this.fail(`unexpected end of input`);let t=this.pos;for(;this.pos<this.text.length&&io.test(this.peek());)this.pos++;this.pos===t&&this.fail(`unexpected character "${e}"`);let n={start:t,end:this.pos},r=this.decode(n);return r===null?{kind:`null`,span:n}:typeof r==`boolean`?{kind:`boolean`,span:n,value:r}:typeof r==`number`?{kind:`number`,span:n,value:r}:this.fail(`unexpected word "${this.text.slice(t,this.pos)}"`)}decode(e){try{return Xe.default.parse(this.text.slice(e.start,e.end))}catch(t){throw new to(t.message,e.start)}}stringSpan(){let e=this.pos,t=this.peek();for(this.pos++;;){let n=this.peek();if(n===``&&this.fail(`unterminated string`),n===`\\`){let e=this.text.startsWith(`\r
|
|
26
26
|
`,this.pos+1);this.pos+=e?3:2;continue}if(this.pos++,n===t)return{start:e,end:this.pos};n===`
|
|
27
|
-
`&&this.fail(`unterminated string`)}}key(){let e=this.peek();if(e===`"`||e===`'`){let e=this.stringSpan();return{key:this.decode(e),span:e}}let t=this.pos;for(
|
|
27
|
+
`&&this.fail(`unterminated string`)}}key(){let e=this.peek();if(e===`"`||e===`'`){let e=this.stringSpan();return{key:this.decode(e),span:e}}let t=this.pos;for(no.test(e)||this.fail(`expected an object key`);this.pos<this.text.length&&ro.test(this.peek());)this.pos++;return{key:this.text.slice(t,this.pos),span:{start:t,end:this.pos}}}object(){let e=this.pos;this.expect(`{`);let t=[];for(;this.skipTrivia(),this.peek()!==`}`;){let{key:e,span:n}=this.key();if(t.some(t=>t.key===e))throw new to(`duplicate key "${e}"`,n.start);this.skipTrivia(),this.expect(`:`);let r=this.value();if(t.push({key:e,keySpan:n,value:r,span:{start:n.start,end:r.span.end}}),this.skipTrivia(),this.peek()===`,`){this.pos++;continue}this.peek()!==`}`&&this.fail(`expected "," or "}"`)}return this.expect(`}`),{kind:`object`,span:{start:e,end:this.pos},entries:t}}array(){let e=this.pos;this.expect(`[`);let t=[];for(;this.skipTrivia(),this.peek()!==`]`;){if(t.push(this.value()),this.skipTrivia(),this.peek()===`,`){this.pos++;continue}this.peek()!==`]`&&this.fail(`expected "," or "]"`)}return this.expect(`]`),{kind:`array`,span:{start:e,end:this.pos},elements:t}}};function so(e){let t=new oo(e),n=t.value();return t.skipTrivia(),t.pos!==e.length&&t.fail(`trailing content after the document`),n}function co(e,t){return e.kind===`object`?e.entries.find(e=>e.key===t):void 0}function lo(e,t){let n=e;for(let e of t)n=n===void 0?void 0:co(n,e)?.value;return n}function uo(e,t){return e.slice(t.span.start,t.span.end)}const fo=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function po(e){return fo.test(e)?e:JSON.stringify(e)}const mo={key:po,trailingComma:`,`,parse:e=>Xe.default.parse(e)},ho={key:e=>JSON.stringify(e),trailingComma:``,parse:e=>JSON.parse(e)};function go(e){if(Array.isArray(e))return e.length===0?`[]`:`[\n${e.map(e=>` ${vo(go(e),` `,`
|
|
28
28
|
`)},`).join(`
|
|
29
|
-
`)}\n]`;if(typeof e==`object`&&e){let t=Object.entries(e).filter(([,e])=>e!==void 0);return t.length===0?`{}`:`{\n${t.map(([e,t])=>` ${
|
|
29
|
+
`)}\n]`;if(typeof e==`object`&&e){let t=Object.entries(e).filter(([,e])=>e!==void 0);return t.length===0?`{}`:`{\n${t.map(([e,t])=>` ${po(e)}: ${vo(go(t),` `,`
|
|
30
30
|
`)},`).join(`
|
|
31
|
-
`)}\n}`}return JSON.stringify(e)}function
|
|
31
|
+
`)}\n}`}return JSON.stringify(e)}function _o(e){return e.includes(`\r
|
|
32
32
|
`)?`\r
|
|
33
33
|
`:`
|
|
34
|
-
`}function
|
|
35
|
-
`).join(`${n}${t}`)}function
|
|
36
|
-
`)}${n.trailingComma}\n}`;return`${n.key(r)}: ${a}`}function
|
|
37
|
-
`,t-1)+1}function
|
|
38
|
-
`)}const $a=[`vertical`,`horizontal`],eo={vertical:`row`,horizontal:`cell`};function to(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*no(e){yield e;for(let t of ro(e))yield*no(t)}function ro(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}function io(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const ao=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function oo(e){return e.kind!==`literal`&&e.kind!==`input`&&e.kind!==`env`&&e.kind!==`state`}const so=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],co=[`file`,`shell`,`git`],lo=[`left`,`center`,`right`],uo=[`right`,`left`,`middle`];function fo(e,t,n,r){let i=n[r];return typeof i==`string`?i:(e.issues.push({path:`${t}.${r}`,message:`${t}.${r} must be a string, got ${vo(i)}`,line:W(e.source,[...t.split(`.`),r])}),null)}function po(e,t,n,r){let i=n.default;if(i!==void 0){if(!(r===`string`&&typeof i==`string`||r===`number`&&typeof i==`number`||r===`boolean`&&typeof i==`boolean`)){e.issues.push({path:`${t}.default`,message:`default must be a ${r}, got ${vo(i)}`,line:W(e.source,[...t.split(`.`),`default`])});return}return i}}function mo(e,t,n,r){let i=n[r];if(i!==void 0){if(typeof i!=`string`){e.issues.push({path:`${t}.${r}`,message:`${t}.${r} must be a string, got ${vo(i)}`,line:W(e.source,[...t.split(`.`),r])});return}return i}}function ho(e,t,n){let r=mo(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}". Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:W(e.source,[...t.split(`.`),`palette`])});return}return r}}function go(e,t,n,r,i){let a=n[r];if(a!==void 0){if(typeof a!=`string`||!i.includes(a)){e.issues.push({path:`${t}.${r}`,message:`${t}.${r} must be one of: ${i.join(`, `)}; got ${G(a)}`,line:W(e.source,[...t.split(`.`),r])});return}return a}}function _o(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function vo(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function G(e){return typeof e==`string`?JSON.stringify(e):e===void 0?`undefined`:String(e)}function yo(e,t,n,r){return _o(r)?(So(e,n,r,t.noun,new Set(Object.keys(t.fields))),bo(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${vo(r)}`,line:W(e.source,n.split(`.`))}),null)}function bo(e,t,n,r){let i=t,a={},o=!0;for(let[t,s]of Object.entries(i)){let i=s.parse(e,n,t,r);i===void 0?s.required&&(o=!1):a[t]=i}return o?a:null}const xo=new Set;function So(e,t,n,r,i,a=xo){for(let o of Object.keys(n))!i.has(o)&&!a.has(`${t}.${o}`)&&e.issues.push({path:`${t}.${o}`,message:`Unknown ${r} "${o}". Expected one of: ${[...i].join(`, `)}`,line:W(e.source,[...t.split(`.`),o])})}function Co(e,t,n){return e.issues.push({path:t,message:n,line:W(e.source,t.split(`.`))}),null}function wo(e,t,n,r){if(!_o(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${vo(r)}`,line:W(e.source,n.split(`.`))}),null;let i=t.arms,a=Object.keys(i),o=Object.keys(r).filter(e=>e in i),s=Object.keys(r).filter(e=>!(e in i));for(let r of s)e.issues.push({path:`${n}.${r}`,message:`Unknown ${t.noun} key "${r}". Expected exactly one of: ${a.join(`, `)}`,line:W(e.source,[...n.split(`.`),r])});if(o.length===0)return e.issues.push({path:n,message:`${t.noun} must declare exactly one of: ${a.join(`, `)}`,line:W(e.source,n.split(`.`))}),null;if(o.length>1)return e.issues.push({path:n,message:`${t.noun} must declare exactly one of: ${a.join(`, `)} (found: ${o.join(`, `)})`,line:W(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function To(e,t,n,r){if(!_o(r))return e.issues.push({path:n,message:`${n} must be an object, got ${vo(r)}`,line:W(e.source,n.split(`.`))}),null;let i=r[t.tag];if(typeof i!=`string`)return e.issues.push({path:`${n}.${t.tag}`,message:`${n}.${t.tag} must be a string, got ${vo(i)}`,line:W(e.source,n.split(`.`))}),null;let a=t.arms;if(!(i in a))return e.issues.push({path:`${n}.${t.tag}`,message:`Unknown ${t.noun} "${i}". Expected one of: ${Object.keys(a).join(`, `)}`,line:W(e.source,[...n.split(`.`),t.tag])}),null;let o=a[i],s=e.issues.length,c=o.parse(e,n,r),l=new Set(e.issues.slice(s).map(e=>e.path));return So(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function Eo(e,t,n){return{json:Lo(Fo(n),e,t),keys:new Set([e,...Object.keys(n)])}}function Do(e){return(...t)=>e()(...t)}function Oo(e,...t){return(n,r,i)=>{let a=e(n,r,i);if(a===null)return null;for(let e of t){if(e.ok(a))continue;let{field:t,message:i}=e.issue(a),o=t===``?r:`${r}.${t}`;return n.issues.push({path:o,message:i,line:W(n.source,o.split(`.`))}),null}return a}}function K(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>mo(e,t,r,n)}}function ko(){return{required:!1,json:{type:`boolean`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(typeof i!=`boolean`){e.issues.push({path:`${t}.${n}`,message:`${n} must be a boolean, got ${vo(i)}`,line:W(e.source,[n])});return}return i}}}}function Ao(e){let{min:t,max:n}=e;return{required:!1,json:{type:`integer`,minimum:t,maximum:n},parse:(e,r,i,a)=>{let o=a[i];if(o!==void 0){if(typeof o!=`number`||!Number.isInteger(o)||o<t||o>n){e.issues.push({path:`${r}.${i}`,message:`${i} must be an integer between ${t} and ${n}, got ${G(o)}`,line:W(e.source,[i])});return}return o}}}}function jo(e={}){let{min:t}=e;return{required:!1,json:{type:`number`,...t!==void 0&&{minimum:t}},parse:(e,n,r,i)=>{let a=i[r];if(a!==void 0){if(typeof a!=`number`||!Number.isFinite(a)||t!==void 0&&a<t){let i=t===void 0?`a finite number`:`a finite number >= ${t}`;e.issues.push({path:`${n}.${r}`,message:`${r} must be ${i}, got ${G(a)}`,line:W(e.source,[r])});return}return a}}}}function Mo(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>ho(e,t,r)}}function No(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>fo(e,t,r,n)??void 0}}function Po(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>go(t,n,i,r,e)}}function Fo(e,t={closed:!0}){let n=e,r={},i=[];for(let[e,t]of Object.entries(n))r[e]=t.json,t.required&&i.push(e);return{type:`object`,properties:r,...i.length>0&&{required:i},...t.closed&&{additionalProperties:!1}}}function Io(e){return Fo(e.fields)}function Lo(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function Ro(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function zo(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const Bo=/^[A-Za-z_][A-Za-z0-9_]*$/;function Vo(e){return`#${e+1}`}const Ho={rows:{}};function Uo(e){return`rows`in e}function Wo(e){return Object.fromEntries(e.map((e,t)=>[Vo(t),e]))}function Go(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:Wo(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:Wo([n])}}function Ko(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function qo(e){return Uo(e)?Ko(e):e}function Jo(e,t){return Uo(e)?{...t,...e,rows:{...t.rows,...e.rows}}:Go(e)}function Yo(e){if(!Uo(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}function Xo(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:Zo(t.segments,e.segments??{}),root:Jo(e.root??Ho,t.root),actions:{...t.actions,...e.actions??{}},looks:{...t.looks,...e.looks??{}},presets:Zo(t.presets,e.presets??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function Zo(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}const Qo=`closed`,$o=`🍫`;function es(e,t,n){if(t===0)return`${e} needs a display (the clickable text)`;if(t!==1&&t!==n)return`${e} cycles ${n} members; bind one display per member (${n}) or one static display, got ${t}`}function ts(e,t,n,r){let i=es(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function ns(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function rs(e,t,n,r,i){return{kind:`segment`,name:e,opens:{ref:t,body:n,placement:r},...i!==void 0&&{when:i}}}function is(e,...t){return`{{ and ${[e,...t].map(as).join(` `)} }}`}function as(e){return`(eq .${e.variable} "${ns(e.member)}")`}function os(e,t,n){return`{{ action "${e}" "${ns(t)}" "${ns(n)}" }}`}function ss(e,t){return{kind:`state`,key:e,default:t}}function cs(e,t){return{set:e,cycle:[Qo,t]}}const ls={required:!1,json:{enum:[...Yi]},parse:(e,t,n,r)=>{if(r[n]===`auto`){e.issues.push({path:`${t}.${n}`,message:`${t}.${n}: "auto" is not supported — the render daemon runs detached, so terminal detection would read the daemon's environment, not your terminal's. Pick an explicit depth: ${Yi.join(`, `)}`,line:W(e.source,[...t.split(`.`),n])});return}return go(e,t,r,n,Yi)}},us={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=mo(e,t,r,n);return Fi(i)?i:ho(e,t,r)}},ds=/^[^\r\n]*\S[^\r\n]*$/u,fs=RegExp(`^(?:❌|✕)[\\uFE0E\\uFE0F]?$`,`u`),ps={required:!1,json:{type:`string`,pattern:ds.source,not:{pattern:fs.source}},parse:(e,t,n,r)=>{let i=mo(e,t,r,n);if(i===void 0||ds.test(i)&&!fs.test(i))return i;e.issues.push({path:`${t}.${n}`,message:`${t}.${n}: must be one line of visible text other than a close glyph ("❌", "✕") — the settings menu needs a glyph to click`,line:W(e.source,[...t.split(`.`),n])})}},ms={default_bg:K(),default_fg:K(),default_empty_value:K(),default_separator:K(),default_truncate_marker:K(),palette:us,look:K(),preset:K(),style:Po(Hi),autoWrap:ko(),padding:Ao(ra),charset:Po(Gi),updateNotice:ko(),colorCompatibility:ls,menuGlyph:ps},hs={noun:`globals key`,fields:ms};function gs(e,t){return{required:!1,json:{not:{},description:`not allowed here — ${e}`},parse:(e,n,r,i)=>{i[r]!==void 0&&e.issues.push({path:`${n}.${r}`,message:t(`${n}.${r}`),line:W(e.source,[...n.split(`.`),r])})}}}function _s(e){return gs(`${e} cannot select a preset`,t=>`${t}: ${e} cannot select a preset. Which preset is active is resolved once, as session pick over globals.preset over "default"; a fragment naming another would be a second authority over that. Set the default arrangement in the top-level globals.preset instead.`)}function vs(e){return gs(`${e} cannot change the settings menu glyph`,t=>`${t}: ${e} cannot change the settings menu glyph — one menu is shared by every preset. Set it in the top-level globals.menuGlyph instead.`)}const ys={noun:`preset globals key`,fields:{...ms,preset:_s(`a preset`),menuGlyph:vs(`a preset`)}},bs={noun:`editGlobals key`,fields:{...ms,preset:_s(`the editGlobals fragment`),menuGlyph:vs(`the editGlobals fragment`)}};function xs(e,t,n){return n===void 0?{}:yo(e,hs,t,n)??{}}function Ss(e,t,n){return yo(e,ys,t,n)??{}}function Cs(){return Io(ys)}function ws(e,t,n){return yo(e,bs,t,n)??{}}const Ts=new Set(Object.keys(hs.fields));function Es(e){return Ts.has(e)}function Ds(){return[...Ts]}const Os={padding:1};function ks(e){let t=new Map;for(let[n,r]of Object.entries(Os)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}function As(e,t,n,r){return n.cache===void 0?(co.includes(r)&&e.issues.push({path:`${t}.cache`,message:`${r} variables must declare a cache policy (one of: ${ao.join(`, `)})`,line:W(e.source,t.split(`.`))}),null):Fs(e,`${t}.cache`,n.cache)}function js(e,t,n){if(n.cache!==void 0)return Fs(e,`${t}.cache`,n.cache)??void 0}function Ms(e){return{required:!0,json:Rs(),parse:(t,n,r,i)=>As(t,n,i,e)??void 0}}function Ns(){return{required:!1,json:Rs(),parse:(e,t,n,r)=>js(e,t,r)}}const Ps={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&Bs(n)?{ttl:n}:Co(e,t,`cache.ttl must be a duration string like "5s", "100ms", "2m", "1h"; got ${G(n)}`)},watch_file:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{watch_file:n}:Co(e,t,`cache.watch_file must be a non-empty path string, got ${G(n)}`)},depends_on:{json:{type:`array`,items:{type:`string`}},parse:(e,t,n)=>Array.isArray(n)&&n.every(e=>typeof e==`string`)?{depends_on:n}:Co(e,t,`cache.depends_on must be an array of variable-name strings, got ${G(n)}`)},key:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{key:n}:Co(e,t,`cache.key must be a non-empty template string, got ${G(n)}`)},never:{json:{const:!0},parse:(e,t,n)=>n===!0?{never:!0}:Co(e,t,`cache.never must be the literal boolean true, got ${G(n)}`)}}};function Fs(e,t,n){return wo(e,Ps,t,n)}const Is={noun:`time-variable cache`,arms:{ttl:Ps.arms.ttl}};function Ls(){return{required:!1,json:zo(Is),parse:(e,t,n,r)=>r.cache===void 0?void 0:wo(e,Is,`${t}.cache`,r.cache)??void 0}}function Rs(){return zo(Ps)}const zs=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function Bs(e){return zs.test(e)}function Vs(e,t,n){if(n===void 0)return{};if(!_o(n))return e.issues.push({path:t,message:`${t} must be an object, got ${vo(n)}`,line:W(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=To(e,lc,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function Hs(){return{required:!0,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.value;if(typeof i!=`string`&&typeof i!=`number`&&typeof i!=`boolean`){e.issues.push({path:`${t}.value`,message:`literal value must be string|number|boolean, got ${vo(i)}`,line:W(e.source,t.split(`.`))});return}return i}}}function Us(){return{required:!0,json:{enum:[...so]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!so.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${so.join(`, `)}, got ${JSON.stringify(i)}`,line:W(e.source,[...t.split(`.`),`field`])});return}return i}}}function Ws(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return po(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const Gs={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:Co(e,t,`parse.text must be the literal boolean true, got ${G(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?Ks(e,t,n):Co(e,t,`parse.regex must be a pattern string, got ${G(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:Co(e,t,`parse.json must be the literal boolean true, got ${G(n)}`)}}};function Ks(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return Co(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:Co(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function qs(){return{required:!1,json:zo(Gs),parse:(e,t,n,r)=>(r.regex!==void 0&&e.issues.push({path:`${t}.regex`,message:`${t}.regex was retired; the regex is the parse step's regex arm now: parse: { regex: ${JSON.stringify(r.regex)} }`,line:W(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:wo(e,Gs,`${t}.parse`,r.parse)??void 0)}}function Js(){return{required:!1,json:{type:[`string`,`number`,`boolean`,`array`,`object`],description:`The value published when the source fails: a string under the text/regex parse arms, any non-null JSON value under the json arm`},parse:(e,t,n,r)=>_o(r.parse)&&`json`in r.parse?Ys(e,t,r.default):mo(e,t,r,`default`)}}function Ys(e,t,n){if(n!==void 0)return Xs(n)?n:Co(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${G(n)}`)??void 0}function Xs(e){return e!==null&&Zs(e)}function Zs(e){if(e===null)return!0;switch(typeof e){case`string`:case`boolean`:return!0;case`number`:return Number.isFinite(e);case`object`:{if(Array.isArray(e))return e.every(Zs);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(Zs)}default:return!1}}const Qs={value:Hs(),default:K()},$s={path:No(),type:Po([`string`,`number`,`boolean`]),default:Ws()},ec={name:No(),default:K()},tc={path:No(),readMode:Po([`whole`,`first-line`]),parse:qs(),cache:Ms(`file`),default:Js()},nc={command:No(),parse:qs(),cache:Ms(`shell`),default:Js()},rc={template:No(),cache:Ns(),default:K()},ic={layout:No(),cache:Ls(),default:K()},ac={field:Us(),cache:Ms(`git`),default:K()},oc={key:No(),default:K()},sc=`kind`;function cc(e,t){return{...Eo(sc,e,t),parse:(n,r,i)=>{let a=bo(n,t,r,i);return a===null?null:{kind:e,...a}}}}const lc={tag:sc,noun:`source kind`,memberNoun:`variable`,arms:{literal:cc(`literal`,Qs),input:cc(`input`,$s),env:cc(`env`,ec),file:cc(`file`,tc),shell:cc(`shell`,nc),template:cc(`template`,rc),time:cc(`time`,ic),git:cc(`git`,ac),state:cc(`state`,oc)}};function uc(){return Ro(lc)}function dc(){return{type:`object`,additionalProperties:uc()}}function fc(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}const pc=`groups.`,mc=`menus.`,hc=`edit.`,gc=`settings.`,_c=[pc,mc,hc,gc];function vc(e){return _c.some(t=>e.startsWith(t))}function yc(e){let t=fc(e);return _c.find(e=>t.startsWith(fc(e)))}function bc(e,t,n,r){for(let i of[`variables`,`actions`,`segments`])for(let a of Object.keys(t[i]??{}))a.startsWith(n)&&e.issues.push({path:`${i}.${a}`,message:`"${a}" is in the reserved "${n}" namespace (synthesized by ${r}) — rename it`,line:W(e.source,[`root`])})}function xc(e){return new Set(Object.keys(e.segments).filter(e=>!vc(e)))}function Sc(e,t,n){if(t===void 0)return{};if(!_o(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${vo(t)}`,line:W(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=yo(e,n.has(i)?Oc:Dc,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function Cc(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?Co(e,`${t}.${n}`,`${t} declares no template — only a segment the bundled default declares may omit it (inheriting the bundled template); a segment of your own needs its own`)??void 0:fo(e,t,r,n)??void 0}}function wc(){return{required:!1,json:{anyOf:[{const:`auto`},{const:`fill`},{type:`integer`,minimum:1}]},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(i===`auto`)return`auto`;if(i===`fill`)return`fill`;if(typeof i==`number`&&Number.isInteger(i)&&i>0)return i;e.issues.push({path:`${t}.${n}`,message:`width must be "auto", "fill", or a positive integer, got ${G(i)}`,line:W(e.source,[...t.split(`.`),n])})}}}}function Tc(){return{required:!1,json:dc(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return Vs(e,`${t}.${n}`,i)}}}const Ec={template:Cc(),description:K(),width:wc(),justify:Po(lo),truncate:Po(uo),bg:K(),fg:K(),when:K(),palette:Mo(),vars:Tc()},Dc={noun:`segment key`,fields:Ec},Oc={noun:`segment key`,fields:{...Ec,template:K()}},kc=[`primary`,`secondary`,`accent`],Ac=[`primary`,`secondary`],jc=`accent`,Mc=[0,.5,1],Nc=Ac.flatMap(e=>Mc.map(t=>({hue:e,tone:t}))),Pc=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},Fc=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],Ic=e=>typeof e==`string`&&Fc.includes(e),Lc={"van-der-corput":Pc,"golden-angle":e=>e*.6180339887498949%1,"ends-interleaved":(e,t)=>((e%2==0?e/2:t-1-(e-1)/2)+.5)/t,monotonic:(e,t)=>(e+.5)/t,uniform:()=>.5},Rc=e=>Lc[e??`van-der-corput`];function zc(e){let t=0,n=1;for(let{index:r,count:i,distribution:a}of e)t+=a(r,i)*n,n*=.37;return t%1}const Bc=(e,t)=>Math.floor(e*t),Vc=(e,t)=>Math.round(e*t)%t;function Hc(e,t,n){let r=e[n(t===void 0?0:t.distribution(t.index,t.count),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function Uc(e){let t=e.findIndex(e=>e.axis===`cell`),n=t===-1?e:e.slice(0,t);return{hue:Hc(Ac,n.at(-1),Bc),tone:Hc(Mc,e[n.length],Vc)}}function Wc(e,t){let n=e.get(t);if(n===void 0)throw Error(`palette "${e.name}" has no "${t}" role; decoration needs it`);return n}function Gc(e,t){let n=Kc.get(e);n===void 0&&(n=new Map,Kc.set(e,n));let r=`${t.hue}|${t.tone}`,i=n.get(r);if(i!==void 0)return i;let a=R.fromRgba(Wc(e,t.hue)),o=R.fromRgba(Wc(e,`surface`)),s=(e,t)=>e.mixAxes(a,{l:t,c:.8,h:1,alpha:0}),c=s(o.mixAxes(R.fromRgba(Wc(e,`background`)),{l:.5,c:0,h:0,alpha:0}),0).mixAxes(s(o,.35),{l:t.tone,c:t.tone,h:t.tone,alpha:0}).toRgba();return n.set(r,c),c}const Kc=new WeakMap,qc=(e,t)=>Gc(e,Uc(t)),Jc=2.2;function Yc(e,t,n){let r=Xc(e,t,n);if(`refused`in r)throw Error(r.refused);return r.state}function Xc(e,t,n){let r=Zc.get(e);r===void 0&&(r=new Map,Zc.set(e,r));let i=`${t}|${n}`,a=r.get(i);if(a!==void 0)return a;let o=Qc(e,t,n);return r.set(i,o),o}const Zc=new WeakMap;function Qc(e,t,n){let r=Nc.map(t=>Xn(Gc(e,t),M.TRUECOLOR)),i=hn(Wc(e,`surface`),Wc(e,t),.92),a=Wc(e,`foreground`),o=r.reduce((e,t)=>Jn(e,t,Jc),a),s=[...Array.from({length:13},(e,t)=>hn(i,a,t/12)),o].find(e=>r.every(t=>Yt(Xn(e,M.TRUECOLOR),t)>=Jc));if(s===void 0)return{refused:`palette "${e.name}": "${t}" cannot clear the ${Jc} state floor even beyond foreground`};let c=Yn(s,n,(e,t)=>r.every(n=>Yt(e,t(n))>=Jc));return c===void 0?{refused:`palette "${e.name}": "${t}" cannot clear the ${Jc} state floor on the colours drawn at depth ${M[n]}`}:{state:c}}const $c=4.5;function el(e,t,n){let r=tl.get(e);r===void 0&&(r=new Map,tl.set(e,r));let i=`${t.hex}|${n}`,a=r.get(i);if(a!==void 0)return a;let o=qn(t),s=Jn([`background`,`foreground`].map(t=>Wc(e,t)).reduce((e,t)=>Yt(o,t)<Yt(o,e)?t:e),t,$c,n);return r.set(i,s),s}const tl=new WeakMap,nl={base:.42,perDepth:.14,cap:.75},rl={floor:.12,span:.8};function il(e,t){return kc[(kc.indexOf(e)+t)%kc.length]}const al={triggerPlane:.1,nestedPlane:.035,nestedTriggerPlane:.08};function ol(e,t,n){let r=`${t.hue}|${t.depth}|${n}`,i=fl.get(e);i===void 0&&(i=new Map,fl.set(e,i));let a=i.get(r);if(a!==void 0)return a;let o=Yc(e,il(t.hue,t.depth),n),s=dl(e,t,o,n),c=Yn(cl(e,t).plane,n,(e,t)=>s.every(([n,r])=>sl(e,t(n))>=r));if(c===void 0)throw Error(`palette "${e.name}": the ${t.hue} band at depth ${t.depth} cannot keep its floors on the colours drawn at depth ${M[n]}`);let l={state:o,plane:c};return i.set(r,l),l}const sl=(e,t)=>R.fromRgba(e).deltaE(R.fromRgba(t));function cl(e,t){let n=`${t.hue}|${t.depth}`,r=ll.get(e);r===void 0&&(r=new Map,ll.set(e,r));let i=r.get(n);if(i!==void 0)return i;let a=ul(e,t);return r.set(n,a),a}const ll=new WeakMap;function ul(e,t){let n=Yc(e,il(t.hue,t.depth),M.TRUECOLOR),r=Math.min(nl.cap,nl.base+nl.perDepth*t.depth);return{state:n,plane:hn(n,Wc(e,`background`),r)}}function dl(e,t,n,r){let{hue:i,depth:a}=t,o=t=>cl(e,{hue:i,depth:t}).state,s=t=>cl(e,{hue:i,depth:t}).plane,c=e=>Xn(e,M.TRUECOLOR),l=s(a),u=(e,t)=>sl(c(l),c(t))>=e?e:0,d=il(i,a+1),f=Xc(e,d,r),p=Xc(e,d,M.TRUECOLOR);return[[n,u(al.triggerPlane,o(a))],...`state`in f&&`state`in p?[[f.state,u(al.nestedTriggerPlane,p.state)]]:[],...a>0?[[ol(e,{hue:i,depth:a-1},r).plane,u(al.nestedPlane,s(a-1))]]:[]]}const fl=new WeakMap;function pl(e,t,n,r){let i=ol(e,t,r),a=cl(e,t),o=Yn(hn(a.plane,a.state,rl.floor+rl.span*zc(n)),r,(e,t)=>e.hex!==t(i.plane).hex&&e.hex!==t(i.state).hex);if(o===void 0)throw Error(`palette "${e.name}": a ${t.hue} band item at depth ${t.depth} is drawn as its plane or its trigger at depth ${M[r]}, and nothing that depth draws is neither`);return o}const ml={kind:`bar`,address:[]},hl=(e,t)=>({...e,address:[...e.address,t]}),gl=e=>({kind:`band`,band:e,address:[]});function _l(e,t,n){switch(t.kind){case`bar`:return{tint:qc(e,t.address),disclosure:{hue:jc,depth:0}};case`band`:return{tint:pl(e,t.band,t.address,n),disclosure:{hue:t.band.hue,depth:t.band.depth+1}}}}const vl=`#/definitions/LayoutNode`,yl={kind:`container`,direction:`vertical`,children:[]};function bl(e){return{required:!0,json:{const:e},parse:()=>e}}function xl(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&i.length>0?i:(e.issues.push({path:`${t}.${n}`,message:`a segment node must have a non-empty "name" (a segment name), got ${G(i)}`,line:W(e.source,[`root`])}),``)}}}function Sl(){return{required:!0,json:{enum:[...$a]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&$a.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${$a.join(`, `)} (got ${JSON.stringify(i)})`,line:W(e.source,[`root`])}),`vertical`)}}}function Cl(e){return{required:!0,json:{type:`array`,items:{$ref:vl}},parse:(t,n,r,i)=>{let a=i[r];return Array.isArray(a)?a.map((i,a)=>e(t,`${n}.${r}[${a}]`,i)):(t.issues.push({path:`${n}.${r}`,message:`a container must have a "children" array of layout nodes, got ${vo(a)}`,line:W(t.source,[`root`])}),[])}}}const wl={noun:`layout-node key`,fields:{kind:bl(`segment`),name:xl(),when:K()}},Tl=()=>Po(Fc),El={noun:`layout-node key`,fields:{kind:bl(`container`),direction:Sl(),children:Cl(Do(()=>jl)),when:K(),distribution:Tl()}};function Dl(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&i.length>0?i:(e.issues.push({path:`${t}.${n}`,message:`a "seg" node must have a non-empty segment name, got ${G(i)}`,line:W(e.source,[`root`])}),``)}}}const Ol={noun:`layout-node key`,fields:{seg:Dl(),when:K()}},kl={noun:`layout-node key`,fields:{h:Cl(Do(()=>jl)),when:K(),distribution:Tl()}},Al={noun:`layout-node key`,fields:{v:Cl(Do(()=>jl)),when:K(),distribution:Tl()}},jl=(e,t,n)=>{if(typeof n==`string`)return n.length===0?(e.issues.push({path:t,message:`a bare-string layout node must be a non-empty segment name`,line:W(e.source,[`root`])}),yl):{kind:`segment`,name:n};if(!_o(n))return e.issues.push({path:t,message:`a layout node must be a string (segment name) or an object with "kind" / "seg" / "h" / "v", got ${vo(n)}`,line:W(e.source,[`root`])}),yl;if(n.kind===`container`)return yo(e,El,t,n)??yl;if(n.kind===`segment`)return yo(e,wl,t,n)??yl;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
|
|
34
|
+
`}function vo(e,t,n){return e.split(`
|
|
35
|
+
`).join(`${n}${t}`)}function yo(e,t,n){let[r,...i]=e,a=i.length===0?t:`{\n ${vo(yo(i,t,n),` `,`
|
|
36
|
+
`)}${n.trailingComma}\n}`;return`${n.key(r)}: ${a}`}function bo(e,t,n,r){return e.slice(0,t)+r+e.slice(n)}function xo(e,t){return e.lastIndexOf(`
|
|
37
|
+
`,t-1)+1}function So(e){return/^[ \t]*$/.test(e)}function Co(e,t){let n=xo(e,t);return/^[ \t]*/.exec(e.slice(n))[0]}function wo(e,t){return So(e.slice(xo(e,t),t))}const To=/(?:\/\/[^\n]*?)?(\r\n|\n|$)/y;function Eo(e,t){let n=t;for(;n<e.length&&(e[n]===` `||e[n]===` `);)n++;let r=e[n]===`,`?n+1:-1;for(r!==-1&&(n=r);n<e.length&&(e[n]===` `||e[n]===` `);)n++;To.lastIndex=n;let i=To.exec(e);if(i===null)return{commaEnd:r,line:null};let a=n+i[0].length;return{commaEnd:r,line:{at:a-i[1].length,next:a}}}function Do(e,t){let{commaEnd:n,line:r}=Eo(e,t.end);if(wo(e,t.start)&&r!==null)return bo(e,xo(e,t.start),r.next,``);if(n!==-1){let r=n;for(;r<e.length&&e[r]===` `;)r++;return bo(e,t.start,r,``)}let i=t.start;for(;i>0&&(e[i-1]===` `||e[i-1]===` `);)i--;return e[i-1]===`,`?bo(e,i-1,t.end,``):bo(e,t.start,t.end,``)}function Oo(e,t,n,r,i){let a=n.commaEnd!==-1,o=a?e:bo(e,t.end,t.end,`,`),s=n.line.at+ +!a,c=_o(e);return bo(o,s,s,`${c}${i}${vo(r,i,c)}${a?`,`:``}`)}function ko(e,t,n,r){let i=t.kind===`object`?t.entries:t.elements,a=i[i.length-1],o=Co(e,t.span.start);if(a===void 0){let i=o+` `,a=_o(e);return bo(e,t.span.start+1,t.span.end-1,`${a}${i}${vo(n,i,a)}${r.trailingComma}${a}${o}`)}let{commaEnd:s,line:c}=Eo(e,a.span.end);if(wo(e,a.span.start)&&c!==null){let t=e.slice(xo(e,a.span.start),a.span.start);return Oo(e,a.span,{commaEnd:s,line:c},n,t)}let l=s===-1?a.span.end:s;return bo(e,l,l,`${s===-1?`, `:` `}${n}${s===-1?``:`,`}`)}function Ao(e,t,n,r){if(t.length===0)throw new to(`setValue needs a non-empty path`,0);if(/^\s*$/.test(e)){let i=_o(e);return`{${i} ${vo(yo(t,n,r),` `,i)}${r.trailingComma}${i}}${i}`}let i=so(e);for(let a=0;a<t.length;a++){if(i.kind!==`object`)throw new to(`cannot set ${t.join(`.`)}: ${t.slice(0,a).join(`.`)||`the document`} is not an object`,i.span.start);let o=co(i,t[a]);if(o===void 0)return ko(e,i,yo(t.slice(a),n,r),r);if(a===t.length-1){let t=Co(e,o.keySpan.start);return bo(e,o.value.span.start,o.value.span.end,vo(n,t,_o(e)))}i=o.value}throw new to(`unreachable: path exhausted`,0)}function jo(e,t){if(t.length===0)throw new to(`deleteValue needs a non-empty path`,0);if(/^\s*$/.test(e))return e;let n=t.slice(0,-1),r=lo(so(e),n),i=r===void 0?void 0:co(r,t[t.length-1]);if(i===void 0||r?.kind!==`object`)return e;let a=Do(e,i.span);return n.length>0&&r.entries.length===1?jo(a,n):a}const Mo=[`h`,`v`,`children`];function No(e){if(e.kind===`string`)return e.value;if(e.kind!==`object`)return;let t=co(e,`seg`)?.value;if(t?.kind===`string`)return t.value;let n=co(e,`kind`)?.value,r=co(e,`name`)?.value;return n?.kind===`string`&&n.value===`segment`&&r?.kind===`string`?r.value:void 0}function Po(e){return e.kind===`object`?Mo.map(t=>co(e,t)?.value).filter(e=>e?.kind===`array`):[]}function Fo(e){let t=co(e,`rows`)?.value;return t?.kind===`object`?t.entries:null}function Io(e){if(e.kind!==`object`)return!0;let t=Fo(e);return t===null||t.length>0||e.entries.some(e=>e.key!==`rows`)}function*Lo(e,t){yield{node:e,bareAt:t};for(let t of Po(e))for(let e of t.elements)yield*Lo(e,null);for(let n of Fo(e)??[])yield*Lo(n.value,t===null?null:[...t,`rows`,n.key])}function Ro(e,t){for(let{node:n}of Lo(e,null))if(No(n)===t)return!0;return!1}function zo(e,t,n){let r=lo(so(e),t);if(r===void 0)return null;for(let{node:i,bareAt:a}of Lo(r,t))if(No(i)===n)return a===null?{text:e,ref:i}:zo(Ao(e,a,`{ h: [${uo(e,i)}] }`,mo),t,n);return null}function Bo(e,t,n){let r=zo(e,t,n);return r===null?null:Do(r.text,r.ref.span)}function Vo(e,t,n,r,i){let a=zo(e,t,r);if(a===null)return null;let{text:o,ref:s}=a,c=JSON.stringify(n),{commaEnd:l,line:u}=Eo(o,s.span.end);if(wo(o,s.span.start)&&u!==null){let e=o.slice(xo(o,s.span.start),s.span.start);return i===`after`?Oo(o,s.span,{commaEnd:l,line:u},c,e):bo(o,s.span.start,s.span.start,`${c},${_o(o)}${e}`)}let d=uo(o,s),f=i===`before`?`${c}, ${d}`:`${d}, ${c}`;return bo(o,s.span.start,s.span.end,f)}var Ho=class extends Error{file;issues;warnings;constructor(e,t,n=[]){super(Ko(e,t)),this.name=`ConfigError`,this.file=e,this.issues=t,this.warnings=n}};function W(e,t){let n=0,r;for(let i of t){if(i===``||/^\d+$/.test(i))continue;let t=Uo(e,n,i);if(t===-1)return r===void 0?void 0:Wo(e,r);n=t,r=t}return r===void 0?void 0:Wo(e,r)}function Uo(e,t,n){let r=n.replace(/[\\^$.*+?()[\]{}|]/g,`\\$&`),i=RegExp(`(?:["']${r}["']|\\b${r}\\b)\\s*:`,`g`);i.lastIndex=t;let a=i.exec(e);return a?a.index:-1}function Wo(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function Go(e,t){try{return so(t),null}catch(n){if(!(n instanceof to))throw n;return`${e}:${Wo(t,n.offset)}: ${n.reason} — the settings menu cannot edit this file until it is fixed`}}function Ko(e,t){if(t.length===0)return`${e}: invalid config (no details)`;let n=[`Invalid config in ${e} (${t.length} issue${t.length===1?``:`s`}):`];for(let e of t){let t=[];e.line!==void 0&&t.push(`line ${e.line}${e.col===void 0?``:`:${e.col}`}`),e.path&&t.push(e.path);let r=t.length>0?`[${t.join(` • `)}] `:``;n.push(` ${r}${e.message}`)}return n.join(`
|
|
38
|
+
`)}const qo=[`vertical`,`horizontal`],Jo={vertical:`row`,horizontal:`cell`};function Yo(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*Xo(e){yield e;for(let t of Zo(e))yield*Xo(t)}function Zo(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}function Qo(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const $o=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function es(e){return e.kind!==`literal`&&e.kind!==`input`&&e.kind!==`env`&&e.kind!==`state`}const ts=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],ns=[`file`,`shell`,`git`],rs=[`left`,`center`,`right`],is=[`right`,`left`,`middle`];function as(e,t,n,r){let i=n[r];return typeof i==`string`?i:(e.issues.push({path:`${t}.${r}`,message:`${t}.${r} must be a string, got ${ds(i)}`,line:W(e.source,[...t.split(`.`),r])}),null)}function os(e,t,n,r){let i=n.default;if(i!==void 0){if(!(r===`string`&&typeof i==`string`||r===`number`&&typeof i==`number`||r===`boolean`&&typeof i==`boolean`)){e.issues.push({path:`${t}.default`,message:`default must be a ${r}, got ${ds(i)}`,line:W(e.source,[...t.split(`.`),`default`])});return}return i}}function ss(e,t,n,r){let i=n[r];if(i!==void 0){if(typeof i!=`string`){e.issues.push({path:`${t}.${r}`,message:`${t}.${r} must be a string, got ${ds(i)}`,line:W(e.source,[...t.split(`.`),r])});return}return i}}function cs(e,t,n){let r=ss(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}". Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:W(e.source,[...t.split(`.`),`palette`])});return}return r}}function ls(e,t,n,r,i){let a=n[r];if(a!==void 0){if(typeof a!=`string`||!i.includes(a)){e.issues.push({path:`${t}.${r}`,message:`${t}.${r} must be one of: ${i.join(`, `)}; got ${G(a)}`,line:W(e.source,[...t.split(`.`),r])});return}return a}}function us(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ds(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function G(e){return typeof e==`string`?JSON.stringify(e):e===void 0?`undefined`:String(e)}function fs(e,t,n,r){return us(r)?(hs(e,n,r,t.noun,new Set(Object.keys(t.fields))),ps(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${ds(r)}`,line:W(e.source,n.split(`.`))}),null)}function ps(e,t,n,r){let i=t,a={},o=!0;for(let[t,s]of Object.entries(i)){let i=s.parse(e,n,t,r);i===void 0?s.required&&(o=!1):a[t]=i}return o?a:null}const ms=new Set;function hs(e,t,n,r,i,a=ms){for(let o of Object.keys(n))!i.has(o)&&!a.has(`${t}.${o}`)&&e.issues.push({path:`${t}.${o}`,message:`Unknown ${r} "${o}". Expected one of: ${[...i].join(`, `)}`,line:W(e.source,[...t.split(`.`),o])})}function gs(e,t,n){return e.issues.push({path:t,message:n,line:W(e.source,t.split(`.`))}),null}function _s(e,t,n,r){if(!us(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${ds(r)}`,line:W(e.source,n.split(`.`))}),null;let i=t.arms,a=Object.keys(i),o=Object.keys(r).filter(e=>e in i),s=Object.keys(r).filter(e=>!(e in i));for(let r of s)e.issues.push({path:`${n}.${r}`,message:`Unknown ${t.noun} key "${r}". Expected exactly one of: ${a.join(`, `)}`,line:W(e.source,[...n.split(`.`),r])});if(o.length===0)return e.issues.push({path:n,message:`${t.noun} must declare exactly one of: ${a.join(`, `)}`,line:W(e.source,n.split(`.`))}),null;if(o.length>1)return e.issues.push({path:n,message:`${t.noun} must declare exactly one of: ${a.join(`, `)} (found: ${o.join(`, `)})`,line:W(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function vs(e,t,n,r){if(!us(r))return e.issues.push({path:n,message:`${n} must be an object, got ${ds(r)}`,line:W(e.source,n.split(`.`))}),null;let i=r[t.tag];if(typeof i!=`string`)return e.issues.push({path:`${n}.${t.tag}`,message:`${n}.${t.tag} must be a string, got ${ds(i)}`,line:W(e.source,n.split(`.`))}),null;let a=t.arms;if(!(i in a))return e.issues.push({path:`${n}.${t.tag}`,message:`Unknown ${t.noun} "${i}". Expected one of: ${Object.keys(a).join(`, `)}`,line:W(e.source,[...n.split(`.`),t.tag])}),null;let o=a[i],s=e.issues.length,c=o.parse(e,n,r),l=new Set(e.issues.slice(s).map(e=>e.path));return hs(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function ys(e,t,n){return{json:As(Os(n),e,t),keys:new Set([e,...Object.keys(n)])}}function bs(e){return(...t)=>e()(...t)}function xs(e,...t){return(n,r,i)=>{let a=e(n,r,i);if(a===null)return null;for(let e of t){if(e.ok(a))continue;let{field:t,message:i}=e.issue(a),o=t===``?r:`${r}.${t}`;return n.issues.push({path:o,message:i,line:W(n.source,o.split(`.`))}),null}return a}}function K(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>ss(e,t,r,n)}}function Ss(){return{required:!1,json:{type:`boolean`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(typeof i!=`boolean`){e.issues.push({path:`${t}.${n}`,message:`${n} must be a boolean, got ${ds(i)}`,line:W(e.source,[n])});return}return i}}}}function Cs(e){let{min:t,max:n}=e;return{required:!1,json:{type:`integer`,minimum:t,maximum:n},parse:(e,r,i,a)=>{let o=a[i];if(o!==void 0){if(typeof o!=`number`||!Number.isInteger(o)||o<t||o>n){e.issues.push({path:`${r}.${i}`,message:`${i} must be an integer between ${t} and ${n}, got ${G(o)}`,line:W(e.source,[i])});return}return o}}}}function ws(e={}){let{min:t}=e;return{required:!1,json:{type:`number`,...t!==void 0&&{minimum:t}},parse:(e,n,r,i)=>{let a=i[r];if(a!==void 0){if(typeof a!=`number`||!Number.isFinite(a)||t!==void 0&&a<t){let i=t===void 0?`a finite number`:`a finite number >= ${t}`;e.issues.push({path:`${n}.${r}`,message:`${r} must be ${i}, got ${G(a)}`,line:W(e.source,[r])});return}return a}}}}function Ts(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>cs(e,t,r)}}function Es(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>as(e,t,r,n)??void 0}}function Ds(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>ls(t,n,i,r,e)}}function Os(e,t={closed:!0}){let n=e,r={},i=[];for(let[e,t]of Object.entries(n))r[e]=t.json,t.required&&i.push(e);return{type:`object`,properties:r,...i.length>0&&{required:i},...t.closed&&{additionalProperties:!1}}}function ks(e){return Os(e.fields)}function As(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function js(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function Ms(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const Ns=/^[A-Za-z_][A-Za-z0-9_]*$/;function Ps(e){return`#${e+1}`}const Fs={rows:{}};function Is(e){return`rows`in e}function Ls(e){return Object.fromEntries(e.map((e,t)=>[Ps(t),e]))}function Rs(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:Ls(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:Ls([n])}}function zs(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function Bs(e){return Is(e)?zs(e):e}function Vs(e,t){return Is(e)?{...t,...e,rows:{...t.rows,...e.rows}}:Rs(e)}function Hs(e){if(!Is(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}function Us(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:Ws(t.segments,e.segments??{}),root:Vs(e.root??Fs,t.root),actions:{...t.actions,...e.actions??{}},looks:{...t.looks,...e.looks??{}},presets:Ws(t.presets,e.presets??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function Ws(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}const Gs=`closed`,Ks=`🍫`;function qs(e,t,n){if(t===0)return`${e} needs a display (the clickable text)`;if(t!==1&&t!==n)return`${e} cycles ${n} members; bind one display per member (${n}) or one static display, got ${t}`}function Js(e,t,n,r){let i=qs(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function Ys(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function Xs(e,t,n,r,i){return{kind:`segment`,name:e,opens:{ref:t,body:n,placement:r},...i!==void 0&&{when:i}}}function Zs(e,...t){return`{{ and ${[e,...t].map(Qs).join(` `)} }}`}function Qs(e){return`(eq .${e.variable} "${Ys(e.member)}")`}function $s(e,t,n){return`{{ action "${e}" "${Ys(t)}" "${Ys(n)}" }}`}function ec(e,t){return{kind:`state`,key:e,default:t}}function tc(e,t){return{set:e,cycle:[Gs,t]}}const nc={required:!1,json:{enum:[...za]},parse:(e,t,n,r)=>{if(r[n]===`auto`){e.issues.push({path:`${t}.${n}`,message:`${t}.${n}: "auto" is not supported — the render daemon runs detached, so terminal detection would read the daemon's environment, not your terminal's. Pick an explicit depth: ${za.join(`, `)}`,line:W(e.source,[...t.split(`.`),n])});return}return ls(e,t,r,n,za)}},rc={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=ss(e,t,r,n);return Ta(i)?i:cs(e,t,r)}},ic=/^[^\r\n]*\S[^\r\n]*$/u,ac=RegExp(`^(?:❌|✕)[\\uFE0E\\uFE0F]?$`,`u`),oc={required:!1,json:{type:`string`,pattern:ic.source,not:{pattern:ac.source}},parse:(e,t,n,r)=>{let i=ss(e,t,r,n);if(i===void 0||ic.test(i)&&!ac.test(i))return i;e.issues.push({path:`${t}.${n}`,message:`${t}.${n}: must be one line of visible text other than a close glyph ("❌", "✕") — the settings menu needs a glyph to click`,line:W(e.source,[...t.split(`.`),n])})}},sc={default_bg:K(),default_fg:K(),default_empty_value:K(),default_separator:K(),default_truncate_marker:K(),palette:rc,look:K(),preset:K(),style:Ds(Ma),progression:Ds(Wa),autoWrap:Ss(),padding:Cs(Xa),charset:Ds(Fa),updateNotice:Ss(),colorCompatibility:nc,menuGlyph:oc},cc={noun:`globals key`,fields:sc};function lc(e,t){return{required:!1,json:{not:{},description:`not allowed here — ${e}`},parse:(e,n,r,i)=>{i[r]!==void 0&&e.issues.push({path:`${n}.${r}`,message:t(`${n}.${r}`),line:W(e.source,[...n.split(`.`),r])})}}}function uc(e){return lc(`${e} cannot select a preset`,t=>`${t}: ${e} cannot select a preset. Which preset is active is resolved once, as session pick over globals.preset over "default"; a fragment naming another would be a second authority over that. Set the default arrangement in the top-level globals.preset instead.`)}function dc(e){return lc(`${e} cannot change the settings menu glyph`,t=>`${t}: ${e} cannot change the settings menu glyph — one menu is shared by every preset. Set it in the top-level globals.menuGlyph instead.`)}const fc={noun:`preset globals key`,fields:{...sc,preset:uc(`a preset`),menuGlyph:dc(`a preset`)}},pc={noun:`editGlobals key`,fields:{...sc,preset:uc(`the editGlobals fragment`),menuGlyph:dc(`the editGlobals fragment`)}};function mc(e,t,n){return n===void 0?{}:fs(e,cc,t,n)??{}}function hc(e,t,n){return fs(e,fc,t,n)??{}}function gc(){return ks(fc)}function _c(e,t,n){return fs(e,pc,t,n)??{}}const vc=new Set(Object.keys(cc.fields));function yc(e){return vc.has(e)}function bc(){return[...vc]}const xc={padding:1};function Sc(e){let t=new Map;for(let[n,r]of Object.entries(xc)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}function Cc(e,t,n,r){return n.cache===void 0?(ns.includes(r)&&e.issues.push({path:`${t}.cache`,message:`${r} variables must declare a cache policy (one of: ${$o.join(`, `)})`,line:W(e.source,t.split(`.`))}),null):Oc(e,`${t}.cache`,n.cache)}function wc(e,t,n){if(n.cache!==void 0)return Oc(e,`${t}.cache`,n.cache)??void 0}function Tc(e){return{required:!0,json:jc(),parse:(t,n,r,i)=>Cc(t,n,i,e)??void 0}}function Ec(){return{required:!1,json:jc(),parse:(e,t,n,r)=>wc(e,t,r)}}const Dc={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&Nc(n)?{ttl:n}:gs(e,t,`cache.ttl must be a duration string like "5s", "100ms", "2m", "1h"; got ${G(n)}`)},watch_file:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{watch_file:n}:gs(e,t,`cache.watch_file must be a non-empty path string, got ${G(n)}`)},depends_on:{json:{type:`array`,items:{type:`string`}},parse:(e,t,n)=>Array.isArray(n)&&n.every(e=>typeof e==`string`)?{depends_on:n}:gs(e,t,`cache.depends_on must be an array of variable-name strings, got ${G(n)}`)},key:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{key:n}:gs(e,t,`cache.key must be a non-empty template string, got ${G(n)}`)},never:{json:{const:!0},parse:(e,t,n)=>n===!0?{never:!0}:gs(e,t,`cache.never must be the literal boolean true, got ${G(n)}`)}}};function Oc(e,t,n){return _s(e,Dc,t,n)}const kc={noun:`time-variable cache`,arms:{ttl:Dc.arms.ttl}};function Ac(){return{required:!1,json:Ms(kc),parse:(e,t,n,r)=>r.cache===void 0?void 0:_s(e,kc,`${t}.cache`,r.cache)??void 0}}function jc(){return Ms(Dc)}const Mc=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function Nc(e){return Mc.test(e)}function Pc(e,t,n){if(n===void 0)return{};if(!us(n))return e.issues.push({path:t,message:`${t} must be an object, got ${ds(n)}`,line:W(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=vs(e,nl,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function Fc(){return{required:!0,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.value;if(typeof i!=`string`&&typeof i!=`number`&&typeof i!=`boolean`){e.issues.push({path:`${t}.value`,message:`literal value must be string|number|boolean, got ${ds(i)}`,line:W(e.source,t.split(`.`))});return}return i}}}function Ic(){return{required:!0,json:{enum:[...ts]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!ts.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${ts.join(`, `)}, got ${JSON.stringify(i)}`,line:W(e.source,[...t.split(`.`),`field`])});return}return i}}}function Lc(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return os(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const Rc={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:gs(e,t,`parse.text must be the literal boolean true, got ${G(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?zc(e,t,n):gs(e,t,`parse.regex must be a pattern string, got ${G(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:gs(e,t,`parse.json must be the literal boolean true, got ${G(n)}`)}}};function zc(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return gs(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:gs(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function Bc(){return{required:!1,json:Ms(Rc),parse:(e,t,n,r)=>(r.regex!==void 0&&e.issues.push({path:`${t}.regex`,message:`${t}.regex was retired; the regex is the parse step's regex arm now: parse: { regex: ${JSON.stringify(r.regex)} }`,line:W(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:_s(e,Rc,`${t}.parse`,r.parse)??void 0)}}function Vc(){return{required:!1,json:{type:[`string`,`number`,`boolean`,`array`,`object`],description:`The value published when the source fails: a string under the text/regex parse arms, any non-null JSON value under the json arm`},parse:(e,t,n,r)=>us(r.parse)&&`json`in r.parse?Hc(e,t,r.default):ss(e,t,r,`default`)}}function Hc(e,t,n){if(n!==void 0)return Uc(n)?n:gs(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${G(n)}`)??void 0}function Uc(e){return e!==null&&Wc(e)}function Wc(e){if(e===null)return!0;switch(typeof e){case`string`:case`boolean`:return!0;case`number`:return Number.isFinite(e);case`object`:{if(Array.isArray(e))return e.every(Wc);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(Wc)}default:return!1}}const Gc={value:Fc(),default:K()},Kc={path:Es(),type:Ds([`string`,`number`,`boolean`]),default:Lc()},qc={name:Es(),default:K()},Jc={path:Es(),readMode:Ds([`whole`,`first-line`]),parse:Bc(),cache:Tc(`file`),default:Vc()},Yc={command:Es(),parse:Bc(),cache:Tc(`shell`),default:Vc()},Xc={template:Es(),cache:Ec(),default:K()},Zc={layout:Es(),cache:Ac(),default:K()},Qc={field:Ic(),cache:Tc(`git`),default:K()},$c={key:Es(),default:K()},el=`kind`;function tl(e,t){return{...ys(el,e,t),parse:(n,r,i)=>{let a=ps(n,t,r,i);return a===null?null:{kind:e,...a}}}}const nl={tag:el,noun:`source kind`,memberNoun:`variable`,arms:{literal:tl(`literal`,Gc),input:tl(`input`,Kc),env:tl(`env`,qc),file:tl(`file`,Jc),shell:tl(`shell`,Yc),template:tl(`template`,Xc),time:tl(`time`,Zc),git:tl(`git`,Qc),state:tl(`state`,$c)}};function rl(){return js(nl)}function il(){return{type:`object`,additionalProperties:rl()}}function al(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}const ol=`groups.`,sl=`menus.`,cl=`edit.`,ll=`settings.`,ul=[ol,sl,cl,ll];function dl(e){return ul.some(t=>e.startsWith(t))}function fl(e){let t=al(e);return ul.find(e=>t.startsWith(al(e)))}function pl(e,t,n,r){for(let i of[`variables`,`actions`,`segments`])for(let a of Object.keys(t[i]??{}))a.startsWith(n)&&e.issues.push({path:`${i}.${a}`,message:`"${a}" is in the reserved "${n}" namespace (synthesized by ${r}) — rename it`,line:W(e.source,[`root`])})}function ml(e){return new Set(Object.keys(e.segments).filter(e=>!dl(e)))}function hl(e,t,n){if(t===void 0)return{};if(!us(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${ds(t)}`,line:W(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=fs(e,n.has(i)?xl:bl,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function gl(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?gs(e,`${t}.${n}`,`${t} declares no template — only a segment the bundled default declares may omit it (inheriting the bundled template); a segment of your own needs its own`)??void 0:as(e,t,r,n)??void 0}}function _l(){return{required:!1,json:{anyOf:[{const:`auto`},{const:`fill`},{type:`integer`,minimum:1}]},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(i===`auto`)return`auto`;if(i===`fill`)return`fill`;if(typeof i==`number`&&Number.isInteger(i)&&i>0)return i;e.issues.push({path:`${t}.${n}`,message:`width must be "auto", "fill", or a positive integer, got ${G(i)}`,line:W(e.source,[...t.split(`.`),n])})}}}}function vl(){return{required:!1,json:il(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return Pc(e,`${t}.${n}`,i)}}}const yl={template:gl(),description:K(),width:_l(),justify:Ds(rs),truncate:Ds(is),bg:K(),fg:K(),when:K(),palette:Ts(),vars:vl()},bl={noun:`segment key`,fields:yl},xl={noun:`segment key`,fields:{...yl,template:K()}},Sl=`#/definitions/LayoutNode`,Cl={kind:`container`,direction:`vertical`,children:[]};function wl(e){return{required:!0,json:{const:e},parse:()=>e}}function Tl(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&i.length>0?i:(e.issues.push({path:`${t}.${n}`,message:`a segment node must have a non-empty "name" (a segment name), got ${G(i)}`,line:W(e.source,[`root`])}),``)}}}function El(){return{required:!0,json:{enum:[...qo]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&qo.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${qo.join(`, `)} (got ${JSON.stringify(i)})`,line:W(e.source,[`root`])}),`vertical`)}}}function Dl(e){return{required:!0,json:{type:`array`,items:{$ref:Sl}},parse:(t,n,r,i)=>{let a=i[r];return Array.isArray(a)?a.map((i,a)=>e(t,`${n}.${r}[${a}]`,i)):(t.issues.push({path:`${n}.${r}`,message:`a container must have a "children" array of layout nodes, got ${ds(a)}`,line:W(t.source,[`root`])}),[])}}}const Ol={noun:`layout-node key`,fields:{kind:wl(`segment`),name:Tl(),when:K()}},kl=()=>Ds(Pi),Al={noun:`layout-node key`,fields:{kind:wl(`container`),direction:El(),children:Dl(bs(()=>Fl)),when:K(),distribution:kl()}};function jl(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&i.length>0?i:(e.issues.push({path:`${t}.${n}`,message:`a "seg" node must have a non-empty segment name, got ${G(i)}`,line:W(e.source,[`root`])}),``)}}}const Ml={noun:`layout-node key`,fields:{seg:jl(),when:K()}},Nl={noun:`layout-node key`,fields:{h:Dl(bs(()=>Fl)),when:K(),distribution:kl()}},Pl={noun:`layout-node key`,fields:{v:Dl(bs(()=>Fl)),when:K(),distribution:kl()}},Fl=(e,t,n)=>{if(typeof n==`string`)return n.length===0?(e.issues.push({path:t,message:`a bare-string layout node must be a non-empty segment name`,line:W(e.source,[`root`])}),Cl):{kind:`segment`,name:n};if(!us(n))return e.issues.push({path:t,message:`a layout node must be a string (segment name) or an object with "kind" / "seg" / "h" / "v", got ${ds(n)}`,line:W(e.source,[`root`])}),Cl;if(n.kind===`container`)return fs(e,Al,t,n)??Cl;if(n.kind===`segment`)return fs(e,Ol,t,n)??Cl;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
|
|
39
39
|
Old: { kind: "cells", segments: ["seg1", "seg2"] }
|
|
40
|
-
New: { h: ["seg1", "seg2"] }`,line:W(e.source,[`root`])}),
|
|
40
|
+
New: { h: ["seg1", "seg2"] }`,line:W(e.source,[`root`])}),Cl;if(n.kind===`group`){let r=fs(e,Hl,t,n);return r===null?Cl:(e.groups.push({name:r.name,label:r.label,...r.open!==void 0&&{open:r.open},...r.direction!==void 0&&{direction:r.direction},...r.key!==void 0&&{key:r.key},...r.bg!==void 0&&{bg:r.bg},...r.fg!==void 0&&{fg:r.fg},...r.when!==void 0&&{when:r.when},path:t}),Wl(r))}let r=`h`in n,i=`v`in n,a=`seg`in n;if(+!!r+ +!!i+ +!!a>1){let r=[`seg`,`h`,`v`].filter(e=>e in n);return e.issues.push({path:t,message:`a layout node may have exactly one of "seg", "h", or "v" — got ${r.map(e=>`"${e}"`).join(` and `)} together`,line:W(e.source,[`root`])}),Cl}if(a){let r=fs(e,Ml,t,n);return r===null?Cl:{kind:`segment`,name:r.seg,...r.when!==void 0&&{when:r.when}}}if(r){let r=fs(e,Nl,t,n);return r===null?Cl:{kind:`container`,direction:`horizontal`,children:r.h,...r.when!==void 0&&{when:r.when},...r.distribution!==void 0&&{distribution:r.distribution}}}if(i){let r=fs(e,Pl,t,n);return r===null?Cl:{kind:`container`,direction:`vertical`,children:r.v,...r.when!==void 0&&{when:r.when},...r.distribution!==void 0&&{distribution:r.distribution}}}return e.issues.push({path:`${t}.kind`,message:`a layout node "kind" must be "container", "segment", or "group", or use the terse A-grammar: a bare string, or an object with "seg", "h", or "v" (got ${JSON.stringify(n.kind)})`,line:W(e.source,[`root`])}),Cl};function Il(){return{required:!0,json:{type:`object`,propertyNames:{pattern:Ns.source},additionalProperties:{$ref:Sl}},parse:(e,t,n,r)=>{let i=r[n];if(!us(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${ds(i)}`,line:W(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!Ns.test(r)){e.issues.push({path:`${t}.${n}.${r}`,message:`row name "${r}" must be an identifier (letters, digits, _; not starting with a digit) — it names the row in the config file and merges by name over the bundled default's rows`,line:W(e.source,[...t.split(`.`),n,r])});continue}a[r]=Fl(e,`${t}.${n}.${r}`,o)}return a}}}const Ll={noun:`root key`,fields:{rows:Il(),when:K(),distribution:kl()}};function Rl(e,t,n){return us(n)&&`rows`in n?fs(e,Ll,t,n)??{rows:{}}:Fl(e,t,n)}function zl(){return{required:!0,json:{type:`string`,pattern:Ns.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!Ns.test(i)||i===`closed`){e.issues.push({path:`${t}.${n}`,message:`a group "name" must be an identifier (letters, digits, _; not starting with a digit) and not the reserved "${Gs}", got ${G(i)}`,line:W(e.source,[`root`])});return}return i}}}function Bl(){return{required:!1,json:{type:`string`,minLength:1},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(typeof i!=`string`||i===``||i.includes(`/`)){e.issues.push({path:`${t}.${n}`,message:`a group "key" must be a non-empty, slash-free SessionState key, got ${G(i)}`,line:W(e.source,[`root`])});return}return i}}}}function Vl(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=as(e,t,r,n);if(i!==null){if(/[\n\r]/.test(i)){e.issues.push({path:`${t}.${n}`,message:`${t}.${n}: group label must not contain newlines`,line:W(e.source,[...t.split(`.`),n])});return}return i}}}}const Hl={noun:`layout-node key`,fields:{kind:wl(`group`),name:zl(),label:Vl(),open:Ss(),direction:Ds(qo),key:Bl(),bg:K(),fg:K(),when:K(),distribution:kl(),children:Dl(bs(()=>Fl))}};function Ul(e){return e.key??`groups.`+e.name}function Wl(e){let t=ol+e.name;return Xs(t,{variable:t,key:Ul(e),member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},`drop`,e.when)}function Gl(e,t,n){e.issues.push({path:t,message:n,line:W(e.source,[`root`])})}function Kl(e,t){pl(e,t,ol,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&Gl(e,t.path,`duplicate group name "${t.name}" — group names must be unique (they name the synthesized state var, action, and toggle segment)`),r.add(t.name);for(let t of n)for(let r of n)t!==r&&t.path.startsWith(`${r.path}.`)&&Ul(t)===Ul(r)&&Gl(e,t.path,`group "${t.name}" shares key "${Ul(t)}" with its ancestor group "${r.name}" — a shared key holds ONE open group, so an ancestor and a descendant cannot share one. Sibling accordions share a key; nested groups use distinct keys.`);let i=new Map;for(let t of n){let n=Ul(t);if(i.has(n)||i.set(n,Gs),t.open===!0){let r=i.get(n);r!==`closed`&&Gl(e,t.path,`groups "${r}" and "${t.name}" share key "${n}" and both declare open: true — a shared key holds one open group; pick one`),i.set(n,t.name)}}let a={},o={},s={};for(let e of n){let t=ol+e.name,r=Ul(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=ec(r,i.get(r)),o[t]=tc(r,e.name),s[t]={template:$s(t,`${l}${e.label} ▸`,`${l}${e.label} ▾`),...e.bg!==void 0&&{bg:e.bg},...e.fg!==void 0&&{fg:e.fg}}}t.variables={...t.variables??{},...a},t.actions={...t.actions??{},...o},t.segments={...t.segments??{},...s}}var ql=class extends Error{name=`TemplateError`;kind=`EvalError`;pos;source;constructor(e,t,n={}){super(e),this.pos=t,this.source=n.source}get sourceSnippet(){return this.source?eu(this.source,this.pos):``}toString(){let e=`${this.name}: ${this.message}\n at line ${this.pos.line}, column ${this.pos.column}`,t=this.sourceSnippet;return t?`${e}\n\n${t}`:e}},Jl=class extends ql{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},Yl=class extends ql{name=`EvalError`;kind=`EvalError`},Xl=class extends Yl{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=tu(e,n.available??[]),i=r.length===0?``:` (did you mean: ${r.join(`, `)}?)`;super(`function ${JSON.stringify(e)} is not registered${i}`,t,n),this.funcName=e,this.suggestions=r}},Zl=class extends Yl{name=`TypeMismatchError`;kind=`TypeMismatchError`;funcName;argIndex;expected;receivedSummary;constructor(e,t,n,r,i,a={}){super(`function ${JSON.stringify(e)} arg ${t}: expected ${n}, but a ${r} flowed in. Pass it through \`unstyled\` (or your engine's flatten function) to convert.`,i,a),this.funcName=e,this.argIndex=t,this.expected=n,this.receivedSummary=r}},Ql=class extends Yl{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},$l=class extends Yl{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function eu(e,t){let n=e.split(`
|
|
41
41
|
`),r=t.line-1,i=[];if(r-1>=0&&r-1<n.length&&i.push({num:r,text:n[r-1]??``}),r>=0&&r<n.length&&i.push({num:r+1,text:n[r]??``}),r+1<n.length&&i.push({num:r+2,text:n[r+1]??``}),i.length===0)return``;let a=String(i[i.length-1]?.num??1).length,o=[];for(let e of i)if(o.push(` ${String(e.num).padStart(a,` `)} | ${e.text}`),e.num===t.line){let e=` ${` `.repeat(a)} | `,n=` `.repeat(Math.max(0,t.column-1));o.push(`${e}${n}^`)}return o.join(`
|
|
42
|
-
`)}function
|
|
42
|
+
`)}function tu(e,t){if(t.length===0)return[];let n=t.map(t=>({name:t,dist:nu(e,t)})).sort((e,t)=>e.dist-t.dist),r=Math.max(2,Math.floor(e.length/2));return n.filter(e=>e.dist<=r).slice(0,3).map(e=>e.name)}function nu(e,t){if(e===t)return 0;let n=e.length,r=t.length;if(n===0)return r;if(r===0)return n;let i=Array(r+1),a=Array(r+1);for(let e=0;e<=r;e++)i[e]=e;for(let o=1;o<=n;o++){a[0]=o;for(let n=1;n<=r;n++){let r=e[o-1]===t[n-1]?0:1;a[n]=Math.min((a[n-1]??0)+1,(i[n]??0)+1,(i[n-1]??0)+r)}for(let e=0;e<=r;e++)i[e]=a[e]??0}return i[r]??0}function ru(e){throw Error(`unhandled node kind: ${JSON.stringify(e)}`)}const iu=new Map([[`if`,`If`],[`else`,`Else`],[`end`,`End`],[`range`,`Range`],[`with`,`With`],[`break`,`Break`],[`continue`,`Continue`],[`define`,`Define`],[`template`,`Template`],[`block`,`Block`],[`true`,`Bool`],[`false`,`Bool`],[`nil`,`Nil`]]),au={left:`{{`,right:`}}`};var ou=class{src;leftDelim;rightDelim;offset=0;line=1;column=1;mode=`text`;pending;constructor(e,t=au){this.src=e,this.leftDelim=t.left,this.rightDelim=t.right}pos(){return{line:this.line,column:this.column,offset:this.offset}}err(e,t,n={}){return new Jl(e,t,{...n,source:this.src})}next(){if(this.pending){let e=this.pending;return this.pending=void 0,e}return this.read()}peek(){return this.pending||=this.read(),this.pending}read(){switch(this.mode){case`text`:return this.readText();case`action`:return this.readAction();case`done`:return this.makeToken(`EOF`,``,this.pos())}}readText(){if(this.offset>=this.src.length)return this.mode=`done`,this.makeToken(`EOF`,``,this.pos());let e=this.pos(),t=this.offset;for(;t<this.src.length&&!this.src.startsWith(this.leftDelim,t);)t+=1;let n=t<this.src.length&&this.src[t+this.leftDelim.length]===`-`,r=t;if(n)for(;r>this.offset&&su(this.src[r-1]??``);)--r;if(r>this.offset){let t=this.src.slice(this.offset,r);return this.advanceTo(r),this.makeToken(`Text`,t,e)}return this.advanceTo(t),this.emitLeftDelim(n)}emitLeftDelim(e){let t=this.pos();if(this.advanceBy(this.leftDelim.length),e)for(this.advanceBy(1);su(this.src[this.offset]??``);)this.advanceBy(1);return this.mode=`action`,this.src.startsWith(`/*`,this.offset)?this.readComment(t,e):this.makeToken(`LeftDelim`,e?`${this.leftDelim}-`:this.leftDelim,t,e?{trimLeft:!0}:{})}readComment(e,t){this.advanceBy(2);let n=this.offset,r=this.src.indexOf(`*/`,this.offset);if(r===-1)throw this.err(`unclosed comment`,e,{expected:`*/${this.rightDelim}`,found:`end of input`});this.advanceTo(r);let i=this.src.slice(n,r).trim();for(this.advanceBy(2);su(this.src[this.offset]??``);)this.advanceBy(1);let a=!1;if(this.src[this.offset]===`-`&&(a=!0,this.advanceBy(1)),!this.src.startsWith(this.rightDelim,this.offset))throw this.err(`expected \`${this.rightDelim}\` to close comment`,this.pos(),{expected:this.rightDelim,found:this.src[this.offset]??`end of input`});if(this.advanceBy(this.rightDelim.length),a)for(;su(this.src[this.offset]??``);)this.advanceBy(1);return this.mode=`text`,this.makeToken(`Comment`,i,e,{...t?{trimLeft:!0}:{},...a?{trimRight:!0}:{}})}readAction(){if(this.skipActionSpaces(),this.src.startsWith(`-${this.rightDelim}`,this.offset)){let e=this.pos();for(this.advanceBy(1+this.rightDelim.length),this.mode=`text`;su(this.src[this.offset]??``);)this.advanceBy(1);return this.makeToken(`RightDelim`,`-${this.rightDelim}`,e,{trimRight:!0})}if(this.src.startsWith(this.rightDelim,this.offset)){let e=this.pos();return this.advanceBy(this.rightDelim.length),this.mode=`text`,this.makeToken(`RightDelim`,this.rightDelim,e)}if(this.offset>=this.src.length)throw this.err(`unclosed action`,this.pos(),{expected:this.rightDelim,found:`end of input`});let e=this.src[this.offset],t=this.pos();switch(e){case`(`:return this.advanceBy(1),this.makeToken(`LeftParen`,`(`,t);case`)`:return this.advanceBy(1),this.makeToken(`RightParen`,`)`,t);case`|`:return this.advanceBy(1),this.makeToken(`Pipe`,`|`,t);case`,`:return this.advanceBy(1),this.makeToken(`Comma`,`,`,t);case`:`:if(this.src[this.offset+1]===`=`)return this.advanceBy(2),this.makeToken(`Declare`,`:=`,t);throw this.err("expected `:=`",t,{expected:`:=`,found:`:`});case`=`:return this.advanceBy(1),this.makeToken(`Assign`,`=`,t);case`"`:return this.readQuotedString(t);case"`":return this.readRawString(t);case`'`:return this.readChar(t)}if(e===`$`)return this.readVariable(t);if(e!==void 0&&(lu(e)||cu(e)&&lu(this.src[this.offset+1]??``)||e===`.`&&lu(this.src[this.offset+1]??``)))return this.readNumber(t);if(e===`.`)return this.readDotOrField(t);if(e!==void 0&&mu(e))return this.readIdentifier(t);throw this.err(`unexpected character ${JSON.stringify(e)}`,t,{found:e??`end of input`})}readQuotedString(e){let t=this.offset;for(this.advanceBy(1);this.offset<this.src.length;){let n=this.src[this.offset];if(n===`\\`){this.advanceBy(1),this.offset<this.src.length&&this.advanceBy(1);continue}if(n===`
|
|
43
43
|
`)throw this.err(`newline in interpreted string`,e,{found:`\\n`});if(n===`"`)return this.advanceBy(1),this.makeToken(`String`,this.src.slice(t,this.offset),e);this.advanceBy(1)}throw this.err(`unterminated string literal`,e,{expected:`"`,found:`end of input`})}readRawString(e){let t=this.offset;for(this.advanceBy(1);this.offset<this.src.length;){if(this.src[this.offset]==="`")return this.advanceBy(1),this.makeToken(`String`,this.src.slice(t,this.offset),e);this.advanceBy(1)}throw this.err(`unterminated raw string literal`,e,{expected:"`",found:`end of input`})}readChar(e){let t=this.offset;for(this.advanceBy(1);this.offset<this.src.length;){let n=this.src[this.offset];if(n===`\\`){this.advanceBy(1),this.offset<this.src.length&&this.advanceBy(1);continue}if(n===`
|
|
44
|
-
`)throw this.err(`newline in rune literal`,e,{found:`\\n`});if(n===`'`)return this.advanceBy(1),this.makeToken(`Char`,this.src.slice(t,this.offset),e);this.advanceBy(1)}throw this.err(`unterminated rune literal`,e,{expected:`'`,found:`end of input`})}readNumber(e){let t=this.offset;if(
|
|
44
|
+
`)throw this.err(`newline in rune literal`,e,{found:`\\n`});if(n===`'`)return this.advanceBy(1),this.makeToken(`Char`,this.src.slice(t,this.offset),e);this.advanceBy(1)}throw this.err(`unterminated rune literal`,e,{expected:`'`,found:`end of input`})}readNumber(e){let t=this.offset;if(cu(this.src[this.offset]??``)&&this.advanceBy(1),this.src[this.offset]===`0`&&this.offset+1<this.src.length){let n=this.src[this.offset+1];if(n===`x`||n===`X`){for(this.advanceBy(2);uu(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`.`||this.src[this.offset]===`p`||this.src[this.offset]===`P`)for(;this.isHexFloatTail(this.src[this.offset]??``);)this.advanceBy(1);return this.finishNumber(t,e)}if(n===`o`||n===`O`){for(this.advanceBy(2);du(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);return this.finishNumber(t,e)}if(n===`b`||n===`B`){for(this.advanceBy(2);fu(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);return this.finishNumber(t,e)}}for(;lu(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`.`)for(this.advanceBy(1);lu(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`e`||this.src[this.offset]===`E`)for(this.advanceBy(1),cu(this.src[this.offset]??``)&&this.advanceBy(1);lu(this.src[this.offset]??``);)this.advanceBy(1);return this.src[this.offset]===`i`&&this.advanceBy(1),this.finishNumber(t,e)}isHexFloatTail(e){return uu(e)||e===`.`||e===`p`||e===`P`||e===`+`||e===`-`||e===`_`}finishNumber(e,t){if(this.offset===e)throw this.err(`expected number`,t,{expected:`digit`});return this.makeToken(`Number`,this.src.slice(e,this.offset),t)}readVariable(e){let t=this.offset;for(this.advanceBy(1);hu(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&mu(this.src[this.offset+1]??``);)for(this.advanceBy(1);hu(this.src[this.offset]??``);)this.advanceBy(1);return this.makeToken(`Variable`,this.src.slice(t,this.offset),e)}readDotOrField(e){let t=this.offset;if(this.advanceBy(1),!mu(this.src[this.offset]??``))return this.makeToken(`Dot`,`.`,e);for(;hu(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&mu(this.src[this.offset+1]??``);)for(this.advanceBy(1);hu(this.src[this.offset]??``);)this.advanceBy(1);return this.makeToken(`Field`,this.src.slice(t,this.offset),e)}readIdentifier(e){let t=this.offset;for(;hu(this.src[this.offset]??``);)this.advanceBy(1);let n=this.src.slice(t,this.offset),r=iu.get(n);return r?this.makeToken(r,n,e):this.makeToken(`Identifier`,n,e)}skipActionSpaces(){for(;this.offset<this.src.length;){let e=this.src[this.offset];if(e===` `||e===` `||e===`\r`||e===`
|
|
45
45
|
`)this.advanceBy(1);else return}}advanceBy(e){for(let t=0;t<e;t++){let e=this.src[this.offset];this.offset+=1,e===`
|
|
46
|
-
`?(this.line+=1,this.column=1):this.column+=1}}advanceTo(e){for(;this.offset<e;)this.advanceBy(1)}makeToken(e,t,n,r={}){return Object.freeze({type:e,value:t,pos:n,...r.trimLeft===void 0?{}:{trimLeft:r.trimLeft},...r.trimRight===void 0?{}:{trimRight:r.trimRight}})}};function
|
|
47
|
-
`}function
|
|
48
|
-
`;break;case`t`:r+=` `;break;case`r`:r+=`\r`;break;case`\\`:r+=`\\`;break;case`"`:r+=`"`;break;case`'`:r+=`'`;break;case`a`:r+=`\x07`;break;case`b`:r+=`\b`;break;case`f`:r+=`\f`;break;case`v`:r+=`\v`;break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:{let t=o+(e[i+1]??``)+(e[i+2]??``);i+=2,r+=String.fromCodePoint(Number.parseInt(t,8));break}case`x`:{let t=(e[i+1]??``)+(e[i+2]??``);i+=2,r+=String.fromCodePoint(Number.parseInt(t,16));break}case`u`:{let t=e.slice(i+1,i+5);i+=4,r+=String.fromCodePoint(Number.parseInt(t,16));break}case`U`:{let t=e.slice(i+1,i+9);i+=8,r+=String.fromCodePoint(Number.parseInt(t,16));break}default:throw new Wl(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function ku(e,t,n){let r=Ou(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new Wl(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function Au(e,t){if(t(e)!==!1)for(let n of ju(e))Au(n,t)}function ju(e){switch(e.type){case`Text`:case`Comment`:case`Dot`:case`Nil`:case`Bool`:case`Number`:case`String`:case`Identifier`:case`Field`:case`Variable`:case`Break`:case`Continue`:return[];case`List`:return e.nodes;case`Chain`:return[e.node];case`Command`:return e.args;case`Pipe`:return[...e.decls,...e.cmds];case`Action`:return[e.pipe];case`If`:case`Range`:case`With`:return e.elseList?[e.pipe,e.list,e.elseList]:[e.pipe,e.list];case`Template`:return e.pipe?[e.pipe]:[];case`Block`:return e.pipe?[e.pipe,e.list]:[e.list];default:return $l(e)}}const Mu=Symbol(`go-template-js.MISSING`);function Nu(e,t){if(e==null)return Mu;if(e instanceof Map)return e.has(t)?e.get(t):Mu;if(Array.isArray(e))return Mu;if(typeof e==`object`){let n=e;return t in n?n[t]:Mu}return Mu}function Pu(e,t){let n=e;for(let e of t){if(n===Mu)return Mu;n=Nu(n,e)}return n}function Fu(e,t){if(Object.is(e,t))return!0;if(e===null||t===null||e===void 0||t===void 0||typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length?e.every((e,n)=>Fu(e,t[n])):!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Fu(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(typeof e==`object`&&typeof t==`object`){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length?n.every(n=>Fu(e[n],t[n])):!1}return!1}const Iu=new WeakSet;function Lu(e){return Iu.add(e),e}function Ru(e){return Iu.has(e)}function zu(e){return e==null||e===!1?!1:typeof e==`number`?e!==0&&!Number.isNaN(e):typeof e==`bigint`?e!==0n:typeof e==`string`||Array.isArray(e)?e.length>0:e instanceof Map||e instanceof Set?e.size>0:typeof e==`object`?Object.keys(e).length>0:!!e}function Bu(e,t){return{eq:{fn:(e,...t)=>t.some(t=>Uu(e,t)),argTypes:[`comparable`]},ne:{fn:(e,t)=>!Uu(e,t),argTypes:[`comparable`,`comparable`]},lt:{fn:(e,t)=>Wu(e,t)<0,argTypes:[`ordered`,`ordered`]},le:{fn:(e,t)=>Wu(e,t)<=0,argTypes:[`ordered`,`ordered`]},gt:{fn:(e,t)=>Wu(e,t)>0,argTypes:[`ordered`,`ordered`]},ge:{fn:(e,t)=>Wu(e,t)>=0,argTypes:[`ordered`,`ordered`]},len:{fn:e=>Gu(e),argTypes:[`sized`]},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=Ku(n,e);return n},argTypes:[`collection`,`index-key`]},slice:{fn:(e,...t)=>{let n=t.length>=1?t[0]:0,r=t.length>=2?t[1]:void 0;return e.slice(n,r)},argTypes:[`sliceable`,`int`]},print:{fn:(...t)=>Yu(t,e),argTypes:[`stringifiable`],returnType:`string`},println:{fn:(...t)=>`${Yu(t,e)}\n`,argTypes:[`stringifiable`],returnType:`string`},printf:{fn:(n,...r)=>id(n,r,e,t),argTypes:[`string`,`stringifiable`],returnType:`string`},toString:{fn:n=>sd(n,e,t),argTypes:[`value`],returnType:`string`},toStrings:{fn:n=>n.map(n=>sd(n,e,t)),argTypes:[`list`]},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`]},html:{fn:(...t)=>Qu(Yu(t,e)),argTypes:[`stringifiable`],returnType:`string`},js:{fn:(...t)=>td(Yu(t,e)),argTypes:[`stringifiable`],returnType:`string`},urlquery:{fn:(...t)=>rd(Yu(t,e)),argTypes:[`stringifiable`],returnType:`string`},not:{fn:e=>!zu(e),argTypes:[`truthy`]}}}function Vu(){return{and:Lu({argTypes:[`truthy`],fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!zu(t))return t;return t}}),or:Lu({argTypes:[`truthy`],fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),zu(t))return t;return t}})}}function Hu(e,t){return{...Bu(e,t),...Vu()}}function Uu(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):Fu(e,t)}function Wu(e,t){if(typeof e==`bigint`&&typeof t==`bigint`)return e===t?0:e<t?-1:1;if(typeof e==`bigint`||typeof t==`bigint`){let n=typeof e==`bigint`?e:BigInt(Math.trunc(Number(e))),r=typeof t==`bigint`?t:BigInt(Math.trunc(Number(t)));return n===r?0:n<r?-1:1}let n=e,r=t;return n===r?0:n<r?-1:1}function Gu(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Ku(e,t){if(Array.isArray(e)){let n=Number(t);if(!Number.isInteger(n))throw Error(`index: array index must be integer, got ${qu(t)}`);if(n<0||n>=e.length)throw Error(`index: out of range [${n}] with length ${e.length}`);return e[n]}if(e instanceof Map)return e.get(t);if(typeof e==`string`)return e[Number(t)];if(typeof e==`object`&&e){if(typeof t!=`string`)throw Error(`index: object index must be string, got ${qu(t)}`);return e[t]}throw Error(`index: cannot index ${qu(e)}`)}function qu(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Ju(e){return e==null?`<nil>`:typeof e==`string`?`string`:typeof e==`boolean`?`bool`:typeof e==`bigint`?`int64`:typeof e==`number`?Number.isInteger(e)?`int`:`float64`:Array.isArray(e)?`[]interface {}`:e instanceof Map||typeof e==`object`?`map[string]interface {}`:typeof e}function Yu(e,t){let n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i],o=typeof a==`string`;i>0&&!r&&!o&&(n+=` `),n+=Xu(a,t),r=o}return n}function Xu(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const Zu={"\0":`�`,'"':`"`,"'":`'`,"&":`&`,"<":`<`,">":`>`};function Qu(e){return e.replace(/[\0"'&<>]/g,e=>Zu[e]??e)}const $u={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},ed=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function td(e){let t=``;for(let n of e){let e=$u[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!ed.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const nd=new TextEncoder;function rd(e){let t=``,n=nd.encode(e);for(let e of n)e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45||e===46||e===95||e===126?t+=String.fromCharCode(e):e===32?t+=`+`:t+=`%${e.toString(16).toUpperCase().padStart(2,`0`)}`;return t}function id(e,t,n,r){let i=``,a=0,o=0;for(;o<e.length;){let s=e[o];if(s!==`%`){i+=s,o+=1;continue}if(e[o+1]===`%`){i+=`%`,o+=2;continue}let c=o+1;for(;c<e.length&&`+-# 0`.includes(e[c]??``);)c+=1;for(;c<e.length&&e[c]!==void 0&&/[0-9]/.test(e[c]);)c+=1;if(e[c]===`.`)for(c+=1;c<e.length&&e[c]!==void 0&&/[0-9]/.test(e[c]);)c+=1;let l=e[c],u=e.slice(o+1,c),d=t[a++];i+=ad(l??``,u,d,n,r),o=c+1}return i}function ad(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?od(t,n):od(t,Xu(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Ju(n)}=${Xu(n,r)})`:od(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return od(t,sd(n,r,i));case`q`:return od(t,JSON.stringify(Xu(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${Ju(n)}=${Xu(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return od(t,Number(n).toFixed(i))}case`t`:return od(t,zu(n)?`true`:`false`);case`x`:if(typeof n==`string`){let e=new TextEncoder().encode(n),r=``;for(let t of e)r+=t.toString(16).padStart(2,`0`);return od(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Ju(n)}=${Xu(n,r)})`:typeof n==`bigint`?od(t,n.toString(16)):od(t,Math.trunc(n).toString(16));default:return`%!${e}(${Ju(n)}=${Xu(n,r)})`}}function od(e,t){let n=e.match(/^([+\-# 0]*)/)?.[1]??``,r=e.slice(n.length).match(/^(\d+)/);if(!r)return t;let i=Number(r[1]);if(t.length>=i)return t;let a=` `.repeat(i-t.length);return n.includes(`-`)?t+a:a+t}function sd(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>sd(e,t,n)).join(` `)}]`:e instanceof Map?cd([...e.entries()],t,n):ld(e)?cd(Object.entries(e),t,n):String(e)}function cd(e,t,n){let r=e=>sd(e,t,n),i=e=>typeof e==`number`||typeof e==`bigint`,a=([e],[t])=>{if(i(e)&&i(t))return e<t?-1:+(e>t);if(i(e)!==i(t))return i(e)?-1:1;let[n,a]=[r(e),r(t)];return n<a?-1:+(n>a)};return`map[${[...e].sort(a).map(([e,t])=>`${r(e)}:${r(t)}`).join(` `)}]`}function ld(e){if(typeof e!=`object`||!e||Array.isArray(e)||e instanceof Map||e instanceof Set)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function ud(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function dd(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function fd(e,t){let n=e;for(;n!==void 0;){if(n.vars.has(t))return{found:!0,value:n.vars.get(t)};n=n.parent}return{found:!1}}function pd(e,t,n){e.vars.set(t,n)}const md=new Set([`default`,`zero`,`error`]);function hd(e){if(e===void 0)return`default`;if(md.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${gd(e)}`)}function gd(e){return typeof e==`string`?JSON.stringify(e):e===null?`null`:e===void 0?`undefined`:typeof e==`bigint`?`${e}n`:typeof e==`number`||typeof e==`boolean`?String(e):typeof e==`symbol`?e.toString():typeof e==`function`?`[Function]`:`[${typeof e}]`}function _d(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${gd(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${gd(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${gd(e.right)}`);return{left:e.left,right:e.right}}}const vd=Object.freeze({kind:`break`}),yd=Object.freeze({kind:`continue`}),bd={kind:`none`};let xd;(class e{source;_evaluate;_defines;_referencedFunctions;_referencedCalls;constructor(e,t,n,r,i){this.source=e,this._evaluate=t,this._defines=n,this._referencedFunctions=r,this._referencedCalls=i}static{xd=(t,n,r,i,a)=>new e(t,n,r,i,a)}defines(){return this._defines}evaluate(e){return this._evaluate(e)}referencedFunctions(){return this._referencedFunctions}referencedCalls(){return this._referencedCalls}});function Sd(e){let t=new Set,n=e=>{Au(e,e=>{e.type===`Identifier`&&t.add(e.ident)})};n(e.root);for(let t of e.ownDefines.values())n(t.list);return t}const Cd={kind:`dynamic`};function wd(e){switch(e.type){case`String`:return{kind:`literal`,value:e.value};case`Bool`:return{kind:`literal`,value:e.value};case`Nil`:return{kind:`literal`,value:null};case`Number`:{let t=Ud(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:Cd}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return Cd;let t=e.cmds[0];if(t===void 0)return Cd;let n=t.args[0];return n===void 0||n.type!==`Identifier`?Cd:{kind:`call`,name:n.ident,args:t.args.slice(1).map(wd)}}default:return Cd}}function Td(e){let t=[],n=e=>{Au(e,e=>{if(e.type!==`Command`)return;let n=e.args[0];if(n===void 0||n.type!==`Identifier`)return;let r=e.args.slice(1).map(wd);t.push({name:n.ident,args:r.map(e=>e.kind===`literal`&&typeof e.value==`string`?e.value:null),argExprs:r})})};n(e.root);for(let t of e.ownDefines.values())n(t.list);return t}var Ed=class{fromString;toString;isT;funcs;missingKey;delims;constructor(e){this.fromString=e.fromString;let t=Object.hasOwn(e,`toString`)?e.toString:void 0;this.toString=t??Nd,this.isT=e.isT??Dd,this.missingKey=hd(e.missingKey),this.delims=_d(e.delims),this.funcs={...Hu(this.toString,this.isT),...e.funcs??{}}}parse(e,t){let n=gu(e,this.delims,t);return xd(n.source,e=>this.evalParsed(n,e),n.defines,Sd(n),Td(n))}compile(e){let t=this.parse(e);return e=>t.evaluate(e)}evaluate(e,t){return e.evaluate(t)}evalParsed(e,t){let n=[],r=ud(t),i={out:n,defines:e.defines,source:e.source};return this.evalList(e.root,r,i),n}evalList(e,t,n){for(let r of e.nodes)this.evalNode(r,t,n)}evalNode(e,t,n){switch(e.type){case`Text`:n.out.push(this.fromString(e.text));return;case`Comment`:return;case`Action`:{let r=this.evalAction(e,t,n);e.pipe.decls.length===0&&this.emitFromValue(r,n);return}case`List`:this.evalList(e,t,n);return;case`If`:this.evalIf(e,t,n);return;case`Range`:this.evalRange(e,t,n);return;case`With`:this.evalWith(e,t,n);return;case`Break`:throw vd;case`Continue`:throw yd;case`Template`:this.evalTemplateInvoke(e,t,n);return;case`Block`:this.evalBlock(e,t,n);return;case`Pipe`:case`Command`:case`Identifier`:case`Field`:case`Variable`:case`Chain`:case`Dot`:case`Nil`:case`Bool`:case`Number`:case`String`:throw new Gl(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:$l(e)}}evalIf(e,t,n){zu(this.evalPipe(e.pipe,t,n))?this.evalList(e.list,t,n):e.elseList&&this.evalList(e.elseList,t,n)}evalWith(e,t,n){let r=this.evalPipe(e.pipe,t,n);if(zu(r)){let i=dd(t,r);this.evalList(e.list,i,n)}else e.elseList&&this.evalList(e.elseList,t,n)}evalRange(e,t,n){let r=this.evalPipeWithoutDecls(e.pipe,t,n),i=e.pipe.decls,a=Bd(r);try{if(a.length===0){e.elseList&&this.evalList(e.elseList,t,n);return}for(let[r,o]of a){let a=dd(t,o);if(i.length===1)pd(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;pd(a,e,r),pd(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===yd)continue;throw e}}}catch(e){if(e===vd)return;throw e}}evalTemplateInvoke(e,t,n){let r=mu(n.defines,e.name);if(!r)throw new Gl(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=dd(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot);this.evalList(r.list,i,{out:n.out,defines:n.defines,source:r.source})}evalBlock(e,t,n){let r=dd(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=mu(n.defines,e.name)??{list:e.list,source:n.source};this.evalList(i.list,r,{out:n.out,defines:n.defines,source:i.source})}evalAction(e,t,n){return this.evalPipe(e.pipe,t,n)}evalPipe(e,t,n){if(e.cmds.length===0)throw new Gl(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,bd);for(let i=1;i<e.cmds.length;i++){let a=e.cmds[i];r=this.evalCommand(a,t,n,{kind:`value`,value:r})}if(e.decls.length>0)for(let n of e.decls)pd(t,n.idents[0]??`$`,r);return r}evalPipeWithoutDecls(e,t,n){let r={type:`Pipe`,pos:e.pos,decls:[],isAssign:!1,cmds:e.cmds};return this.evalPipe(r,t,n)}evalCommand(e,t,n,r){if(e.args.length===0)throw new Gl(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new Gl(`cannot apply arguments to a ${i.type} primary; only functions take arguments`,e.pos,{source:n.source});return this.evalPrimary(i,t,n)}let a=this.funcs[i.ident];if(!a)throw new Kl(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=Ru(a),c=o.map(e=>s?()=>this.evalPrimary(e,t,n):this.evalPrimary(e,t,n));if(r.kind===`value`){let e=r.value;c.push(s?()=>e:e)}kd(i.ident,a.argTypes,c,e.pos,n.source,this.toString,a.argTypePattern,this.fromString,this.isT);try{return a.fn(...c)}catch(t){throw t instanceof ql?new ql(t.funcName,t.argIndex,t.expected,t.receivedSummary,e.pos,{source:n.source}):t instanceof Yl?new Yl(t.message,e.pos,{source:n.source}):t}}evalPrimary(e,t,n){switch(e.type){case`Dot`:return t.dot;case`Nil`:return null;case`Bool`:return e.value;case`Number`:return Ud(e);case`String`:return e.value;case`Field`:return this.resolveFieldChain(t.dot,e.idents,e.pos,n);case`Variable`:return this.resolveVariable(e.idents,t,e.pos,n);case`Identifier`:{let t=this.funcs[e.ident];if(!t)throw new Kl(e.ident,e.pos,{source:n.source,available:Object.keys(this.funcs)});return kd(e.ident,t.argTypes,[],e.pos,n.source,this.toString,t.argTypePattern,this.fromString,this.isT),t.fn()}case`Chain`:return this.resolveFieldChain(this.evalPrimary(e.node,t,n),e.fields,e.pos,n);case`Pipe`:return this.evalPipe(e,t,n);default:throw new Gl(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=Pu(e,t);if(i!==Mu)return i;if(this.missingKey===`error`)throw new Jl(t,n,{source:r.source})}resolveVariable(e,t,n,r){let i=e[0]??`$`;if(i===`$`){let i=e.slice(1);return i.length===0?t.root:this.resolveFieldChain(t.root,i,n,r)}let a=fd(t,i);if(!a.found)throw new Gl(`undefined variable ${i}`,n,{source:r.source});let o=e.slice(1);return o.length===0?a.value:this.resolveFieldChain(a.value,o,n,r)}emitFromValue(e,t){if(e==null){t.out.push(this.fromString(`<no value>`));return}if(typeof e==`string`){t.out.push(this.fromString(e));return}if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`){t.out.push(this.fromString(String(e)));return}if(this.isT(e)){t.out.push(e);return}t.out.push(this.fromString(sd(e,this.toString,this.isT)))}};const Dd=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function Od(e){return new Ed(e)}function kd(e,t,n,r,i,a=Nd,o,s=Md,c=Dd){let l=Ad(t,o),u=-1,d=-1;for(let t=0;t<n.length;t++){let o=l(t),f=n[t];if(!jd(o,f,a,c))throw new ql(e,t+1,Rd(o),zd(f),r,{source:i});if(o===`liftable`&&typeof f==`string`&&(n[t]=s(f)),o===`int`?n[t]=Math.trunc(Number(f)):o===`float`&&(n[t]=Number(f)),o===`ordered`){if(u===-1)u=t;else if(!Fd(n[u],f))throw new ql(e,t+1,`${Rd(`ordered`)} of the same kind as ${zd(n[u])}`,zd(f),r,{source:i})}if(o===`comparable`){if(d===-1)d=t;else if(!Id(n[d],f))throw new ql(e,t+1,`${Rd(`comparable`)} of the same kind as ${zd(n[d])}`,zd(f),r,{source:i})}}}function Ad(e,t){if(e.length===0)return()=>`value`;if(t===`alternating`){let t=e.length;return n=>e[n%t]}let n=e[e.length-1];return t=>t<e.length?e[t]:n}function jd(e,t,n,r){switch(e){case`truthy`:case`reflective`:case`value`:return!0;case`string`:return typeof t==`string`;case`int`:return typeof t==`number`&&Number.isFinite(t)||typeof t==`bigint`&&Number.isSafeInteger(Number(t));case`float`:return typeof t==`number`||typeof t==`bigint`&&Number.isFinite(Number(t));case`bool`:return typeof t==`boolean`;case`ordered`:return typeof t==`string`||typeof t==`number`||typeof t==`bigint`||typeof t==`boolean`;case`T`:return r(t);case`list`:return Array.isArray(t);case`dict`:return ld(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||ld(t);case`comparable`:return t==null||typeof t==`string`||typeof t==`number`||typeof t==`bigint`||typeof t==`boolean`||Array.isArray(t)||t instanceof Map||t instanceof Set||ld(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||ld(t);case`index-key`:return typeof t==`string`||typeof t==`number`||typeof t==`bigint`;case`sliceable`:return typeof t==`string`||Array.isArray(t);case`stringifiable`:if(typeof t==`string`)return!0;try{return n(t),!0}catch{return!1}case`liftable`:return typeof t==`string`||r(t);case`serializable`:return Pd(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Md(e){return e}function Nd(e){if(typeof e==`string`)return e;if(e==null)return`<nil>`;if(typeof e==`number`||typeof e==`bigint`||typeof e==`boolean`)return String(e);throw new ql(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,zd(e),{line:0,column:0,offset:0})}function Pd(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function Fd(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function Id(e,t){let n=Ld(e),r=Ld(t);return n===`nil`||r===`nil`?!0:n===r}function Ld(e){return e==null?`nil`:typeof e==`string`?`string`:typeof e==`number`||typeof e==`bigint`?`number`:typeof e==`boolean`?`boolean`:Array.isArray(e)?`array`:e instanceof Map?`map`:e instanceof Set?`set`:`object`}function Rd(e){switch(e){case`int`:return`integer (finite number or safe-integer bigint)`;case`float`:return`float (number, including NaN/Infinity, or finite-convertible bigint)`;case`T`:return`T (consumer-defined fragment)`;case`ordered`:return`orderable primitive`;case`list`:return`list`;case`dict`:return`dict (plain object)`;case`sized`:return`sized value (string, list, map, set, or dict)`;case`comparable`:return`comparable value (orderable primitive, nil, list, dict, Map, or Set)`;case`stringifiable`:return`stringifiable value (string or convertible via the engine's toString)`;case`liftable`:return`liftable value (T or string, the latter lifted via the engine's fromString)`;case`callable`:return`callable (function value)`;case`collection`:return`collection (string, array, Map, or dict)`;case`index-key`:return`index key (number, bigint, or string)`;case`sliceable`:return`sliceable value (string or array)`;case`serializable`:return`JSON-serializable value`;case`truthy`:case`reflective`:case`value`:case`string`:case`bool`:return e;default:throw Error(`invalid ArgType: ${String(e)}`)}}function zd(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Bd(e){return e==null?[]:Array.isArray(e)?e.map((e,t)=>[t,e]):typeof e==`string`?[...e].map((e,t)=>[t,e]):e instanceof Map?Vd([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?Vd(Object.entries(e)):[]}function Vd(e){return[...e].sort((e,t)=>Hd(e[0],t[0]))}function Hd(e,t){if((typeof e==`number`||typeof e==`bigint`)&&(typeof t==`number`||typeof t==`bigint`)){let n=typeof e==`bigint`?Number(e):e,r=typeof t==`bigint`?Number(t):t;return n===r?0:n<r?-1:1}let n=String(e),r=String(t);return n===r?0:n<r?-1:1}function Ud(e){if(e.intValue!==void 0){let t=e.intValue;return t>=BigInt(-(2**53-1))&&t<=BigInt(2**53-1)?Number(t):t}if(e.floatValue!==void 0)return e.floatValue;if(e.complexValue!==void 0)return e.complexValue;throw Error(`internal: NumberNode has none of intValue/floatValue/complexValue — parser invariant violated`)}function Wd(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function Gd(e){if(typeof e==`number`)return e;if(typeof e==`bigint`)return Number(e);if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isNaN(t)?0:t}return typeof e==`boolean`?+!!e:0}function Kd(e){if(e===``)return null;let t=1,n=e;return n[0]===`+`?n=n.slice(1):n[0]===`-`&&(t=-1,n=n.slice(1)),n===``?null:/^0x[0-9a-fA-F]+$/i.test(n)?{sign:t,digits:n.slice(2),base:16}:/^0b[01]+$/i.test(n)?{sign:t,digits:n.slice(2),base:2}:/^0o[0-7]+$/i.test(n)?{sign:t,digits:n.slice(2),base:8}:n===`0`?{sign:t,digits:`0`,base:10}:n[0]===`0`?/^0[0-7]+$/.test(n)?{sign:t,digits:n.slice(1),base:8}:null:/^[0-9]+$/.test(n)?{sign:t,digits:n,base:10}:null}function qd(e){if(typeof e==`number`){let t=Math.trunc(e);return Number.isSafeInteger(t)?t:0}if(typeof e==`bigint`){let t=Number(e);return Number.isSafeInteger(t)?t:0}if(typeof e==`string`){let t=Kd(e);if(t===null)return 0;let n=t.sign*Number.parseInt(t.digits,t.base);return Number.isSafeInteger(n)?n:0}return typeof e==`boolean`?+!!e:0}function Jd(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=Kd(e);if(t===null)return 0n;let n=t.base===16?`0x`:t.base===2?`0b`:t.base===8?`0o`:``,r=BigInt(n+t.digits);return t.sign===-1?-r:r}return typeof e==`boolean`&&e?1n:0n}function Yd(e){if(!/^[+-]?[0-7]+$/.test(e))return 0;let t=e[0]===`-`?-1:1,n=e[0]===`+`||e[0]===`-`?e.slice(1):e,r=t*Number.parseInt(n,8);return Number.isSafeInteger(r)?r:0}function Xd(e){return JSON.stringify(e)??`null`}function Zd(){return{atoi:{fn:e=>Wd(e),argTypes:[`string`],returnType:`int`},int:{fn:e=>qd(e),argTypes:[`value`],returnType:`int`},int64:{fn:e=>Jd(e),argTypes:[`value`]},float64:{fn:e=>Gd(e),argTypes:[`value`],returnType:`float`},toDecimal:{fn:e=>Yd(e),argTypes:[`string`],returnType:`int`},toRawJson:{fn:e=>Xd(e),argTypes:[`serializable`],returnType:`string`}}}const Qd={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function $d(e){if(e===`0`)return 0;let t=!1,n=e;if(n.startsWith(`-`)?(t=!0,n=n.slice(1)):n.startsWith(`+`)&&(n=n.slice(1)),!n)return NaN;let r=0,i=/^(\d+(?:\.\d+)?)(ns|µs|us|ms|[smh])/;for(;n.length>0;){let e=i.exec(n);if(!e)return NaN;let t=parseFloat(e[1]??`0`),a=e[2];r+=t*Qd[a],n=n.slice(e[0].length)}return t?-r:r}function ef(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<Qd.us?`${Math.floor(n)}ns`:n<Qd.ms?tf(n,Qd.us,3,`µs`):n<Qd.s?tf(n,Qd.ms,6,`ms`):nf(n),t?`-${r}`:r}function tf(e,t,n,r){let i=Math.floor(e/t),a=Math.round(e%t);return a===0?`${i}${r}`:`${i}.${String(a).padStart(n,`0`).replace(/0+$/,``)}${r}`}function nf(e){let t=Math.floor(e/Qd.h);e-=t*Qd.h;let n=Math.floor(e/Qd.m);e-=n*Qd.m;let r=Math.floor(e/Qd.s),i=e-r*Qd.s,a=i===0?`${r}s`:`${r}.${String(Math.round(i)).padStart(9,`0`).replace(/0+$/,``)}s`;return t>0?`${t}h${n}m${a}`:n>0?`${n}m${a}`:a}function rf(e){return e*Qd.s}function af(e){if(e instanceof Date)return e;if(typeof e==`bigint`)return new Date(Number(e)*1e3);if(typeof e==`number`)return new Date(e*1e3);if(typeof e==`string`){let t=new Date(e);if(!Number.isNaN(t.getTime()))return t;throw Error(`sprig: cannot parse date value ${JSON.stringify(e)}`)}throw Error(`sprig: unsupported date type: ${typeof e}`)}function of(e,t){let n=t().getTime()-af(e).getTime();return ef(Math.round(n/1e3)*1e9)}const sf=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],cf=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],lf=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],uf=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function df(e){return e<10?`0${e}`:String(e)}function ff(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function pf(e){return e<10?` ${e}`:String(e)}function mf(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${df(Math.floor(n/60))}${df(n%60)}`}function hf(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${df(Math.floor(n/60))}:${df(n%60)}`}function gf(e){return`${e>=0?`+`:`-`}${df(Math.floor(Math.abs(e)/60))}`}function _f(e){return e===0?`Z`:mf(e)}function vf(e){return e===0?`Z`:hf(e)}function yf(e){return e===0?`Z`:gf(e)}function bf(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const xf=[[`.000000000`,e=>`.${bf(e.ms,9,!1)}`],[`.999999999`,e=>{let t=bf(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${bf(e.ms,6,!1)}`],[`.999999`,e=>{let t=bf(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${ff(e.ms)}`],[`.999`,e=>{let t=ff(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>sf[e.month-1]??`January`],[`Monday`,e=>lf[e.weekday]??`Monday`],[`Z07:00`,e=>vf(e.offsetMinutes)],[`-07:00`,e=>hf(e.offsetMinutes)],[`Z0700`,e=>_f(e.offsetMinutes)],[`-0700`,e=>mf(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>cf[e.month-1]??`Jan`],[`Mon`,e=>uf[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>gf(e.offsetMinutes)],[`Z07`,e=>yf(e.offsetMinutes)],[`15`,e=>df(e.hour)],[`01`,e=>df(e.month)],[`02`,e=>df(e.day)],[`_2`,e=>pf(e.day)],[`03`,e=>df(e.hour12)],[`04`,e=>df(e.minute)],[`05`,e=>df(e.second)],[`06`,e=>df(e.year%100)],[`PM`,e=>e.hour>=12?`PM`:`AM`],[`pm`,e=>e.hour>=12?`pm`:`am`],[`1`,e=>String(e.month)],[`2`,e=>String(e.day)],[`3`,e=>String(e.hour12)],[`4`,e=>String(e.minute)],[`5`,e=>String(e.second)]];function Sf(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of xf)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const Cf={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function wf(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const Tf=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function Ef(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=wf(new Intl.DateTimeFormat(`en-US`,{...Cf,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=wf(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=Df(wf(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=Tf.indexOf(r.get(`weekday`)??`Sunday`);return{year:parseInt(r.get(`year`)??`2000`,10),month:parseInt(r.get(`month`)??`1`,10),day:parseInt(r.get(`day`)??`1`,10),weekday:s===-1?0:s,hour:i,hour12:i%12||12,minute:parseInt(r.get(`minute`)??`0`,10),second:parseInt(r.get(`second`)??`0`,10),ms:e.getUTCMilliseconds(),tzAbbr:a,offsetMinutes:o}}function Df(e){if(e===`GMT`||e===`UTC`)return 0;let t=e.match(/^GMT([+-])(\d{1,2})(?::(\d{2}))?$/);if(!t)return 0;let n=t[1]===`+`?1:-1,r=parseInt(t[2]??`0`,10),i=parseInt(t[3]??`0`,10);return n*(r*60+i)}function Of(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function kf(e,t){return Sf(e,Ef(af(t),Of()))}function Af(e,t,n){return Sf(e,Ef(af(t),n))}function jf(e,t){let n=af(t),r=$d(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function Mf(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:ef(rf(t))}return typeof e==`bigint`?ef(rf(Number(e))):typeof e==`number`?ef(rf(e)):`0s`}const Nf=36e11*24*365,Pf=36e11*24*30,Ff=36e11*24,If=36e11,Lf=6e10,Rf=1e9;function zf(e){let t=$d(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>Nf?`${Math.floor(n/Nf)}y`:n>Pf?`${Math.floor(n/Pf)}mo`:n>Ff?`${Math.floor(n/Ff)}d`:n>If?`${Math.floor(n/If)}h`:n>Lf?`${Math.floor(n/Lf)}m`:n>Rf?`${Math.floor(n/Rf)}s`:`0s`}function Bf(e){let t=Ef(af(e),Of());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function Vf(e,t){let n=Ef(af(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function Hf(e){return e()}const Uf=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Wf=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Gf(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function Kf(e,t,n){return[e.slice(t,t+n),t+n]}function qf(e,t,n,r){let i=t;for(;i<e.length&&i-t<r&&e.charCodeAt(i)>=48&&e.charCodeAt(i)<=57;)i++;if(i-t<n)throw Error(`sprig toDate: expected ${n}-${r} digits at pos ${t}`);return[parseInt(e.slice(t,i),10),i]}function Jf(e,t){for(let[n,r]of Uf.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function Yf(e,t){for(let[n,r]of Wf.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function Xf(e,t){for(let n of[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`])if(e.startsWith(n,t))return t+n.length;throw Error(`sprig toDate: expected weekday name at pos ${t}`)}function Zf(e,t){for(let n of[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`])if(e.startsWith(n,t))return t+n.length;throw Error(`sprig toDate: expected short weekday name at pos ${t}`)}function Qf(e,t){if(e[t]===` `){let[n,r]=qf(e,t+1,1,1);return[n,r]}return qf(e,t,1,2)}function $f(e,t,n){let r=e[t]===`+`?1:e[t]===`-`?-1:0;if(r===0)throw Error(`sprig toDate: expected +/- at pos ${t}`);let i=t+1,[a,o]=qf(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=qf(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=qf(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function ep(e,t,n,r){if(e[t]===`Z`)return[0,t+1];if(r){let n=e[t]===`+`?1:e[t]===`-`?-1:0;if(n===0)throw Error(`sprig toDate: expected Z or +/- at pos ${t}`);let[r,i]=qf(e,t+1,2,2);return[n*r*60,i]}return $f(e,t,n)}function tp(e,t){let n=t;for(;n<e.length&&e.charCodeAt(n)>=65&&e.charCodeAt(n)<=90;)n++;if(n===t)throw Error(`sprig toDate: expected timezone abbreviation at pos ${t}`);return n}function np(e,t,n){let[r,i]=Kf(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function rp(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=Jf(t,n);return i.month=e,[r,i]}case`Monday`:return[Xf(t,n),i];case`Jan`:{let[e,r]=Yf(t,n);return i.month=e,[r,i]}case`Mon`:return[Zf(t,n),i];case`2006`:{let[e,r]=qf(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=qf(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=qf(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=qf(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=Qf(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=qf(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=qf(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=qf(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=qf(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=qf(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=qf(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=qf(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=qf(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=qf(t,n,1,2);return i.second=e,[r,i]}case`PM`:case`pm`:{let e=t.slice(n,n+2).toLowerCase();if(e!==`am`&&e!==`pm`)throw Error(`sprig toDate: expected AM/PM at pos ${n}, got ${JSON.stringify(t.slice(n,n+2))}`);return i.isPM=e===`pm`,i.hour12=!0,[n+2,i]}case`MST`:return[tp(t,n),i];case`-0700`:{let[e,r]=$f(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=$f(t,n,!0);return i.offsetMinutes=e,[r,i]}case`-07`:{let e=t[n]===`+`?1:t[n]===`-`?-1:0;if(e===0)throw Error(`sprig toDate: expected +/- at pos ${n}`);let[r,a]=qf(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=ep(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=ep(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=ep(t,n,!1,!0);return i.offsetMinutes=e,[r,i]}case`.000000000`:{if(t[n]!==`.`)throw Error(`sprig toDate: expected . at pos ${n}`);let[e,r]=np(t,n+1,9);return i.ms=e,[r,i]}case`.999999999`:{if(t[n]!==`.`)return[n,i];let e=n+1,r=e;for(;r<t.length&&t.charCodeAt(r)>=48&&t.charCodeAt(r)<=57;)r++;let a=t.slice(e,r).padEnd(9,`0`);return i.ms=Math.round(parseInt(a,10)/1e6),[r,i]}case`.000000`:{if(t[n]!==`.`)throw Error(`sprig toDate: expected . at pos ${n}`);let[e,r]=np(t,n+1,6);return i.ms=e,[r,i]}case`.999999`:{if(t[n]!==`.`)return[n,i];let e=n+1,r=e;for(;r<t.length&&t.charCodeAt(r)>=48&&t.charCodeAt(r)<=57;)r++;let a=t.slice(e,r).padEnd(9,`0`);return i.ms=Math.round(parseInt(a,10)/1e6),[r,i]}case`.000`:{if(t[n]!==`.`)throw Error(`sprig toDate: expected . at pos ${n}`);let[e,r]=np(t,n+1,3);return i.ms=e,[r,i]}case`.999`:{if(t[n]!==`.`)return[n,i];let e=n+1,r=e;for(;r<t.length&&t.charCodeAt(r)>=48&&t.charCodeAt(r)<=57;)r++;let a=t.slice(e,r).padEnd(3,`0`);return i.ms=parseInt(a,10),[r,i]}}throw Error(`sprig toDate: unhandled token ${e}`)}const ip=`.000000000,.999999999,.000000,.999999,.000,.999,January,Monday,Z07:00,-07:00,Z0700,-0700,2006,Jan,Mon,MST,-07,Z07,15,01,02,_2,03,04,05,06,PM,pm,1,2,3,4,5`.split(`,`);function ap(e,t){let n=0,r=0,i=Gf();for(;n<e.length;){let a=!1;for(let o of ip)if(e.startsWith(o,n)){let[e,s]=rp(o,t,r,i);r=e,i=s,n+=o.length,a=!0;break}if(!a){let i=e.charAt(n);if(t[r]!==i)throw Error(`sprig toDate: expected ${JSON.stringify(i)} at pos ${r}, got ${JSON.stringify(t[r])}`);n++,r++}}if(r!==t.length)throw Error(`sprig toDate: extra characters at pos ${r}: ${JSON.stringify(t.slice(r))}`);if(i.hour12){let e=i.hour%12;i.hour=i.isPM?e+12:e}let a=Date.UTC(i.year,i.month-1,i.day,i.hour,i.minute,i.second,i.ms)-i.offsetMinutes*60*1e3;return new Date(a)}function op(e,t){return ap(e,t)}function sp(e){return String(Math.floor(af(e).getTime()/1e3))}function cp(e=()=>new Date){return{now:{fn:()=>Hf(e),argTypes:[]},date:{fn:(e,t)=>kf(e,t),argTypes:[`string`,`value`]},dateInZone:{fn:(e,t,n)=>Af(e,t,n),argTypes:[`string`,`value`,`string`]},dateModify:{fn:(e,t)=>jf(e,t),argTypes:[`string`,`value`]},htmlDate:{fn:e=>Bf(e),argTypes:[`value`]},htmlDateInZone:{fn:(e,t)=>Vf(e,t),argTypes:[`value`,`string`]},duration:{fn:e=>Mf(e),argTypes:[`value`]},durationRound:{fn:e=>zf(e),argTypes:[`value`]},toDate:{fn:(e,t)=>op(e,t),argTypes:[`string`,`string`]},ago:{fn:t=>of(t,e),argTypes:[`value`]},unixEpoch:{fn:e=>sp(e),argTypes:[`value`]}}}function lp(e){return e==null||e===!1?!0:typeof e==`number`?e===0||Number.isNaN(e):typeof e==`bigint`?e===0n:typeof e==`string`||Array.isArray(e)?e.length===0:e instanceof Map||e instanceof Set?e.size===0:typeof e==`object`?Object.keys(e).length===0:!1}function up(...e){for(let t of e)if(!lp(t))return t}function dp(e,t){return lp(t)?e:t}function fp(e){return JSON.parse(e)}function pp(e,t,n){return zu(n)?e:t}function mp(e){return JSON.stringify(e)??`null`}function hp(e){return JSON.stringify(e,null,2)??`null`}function gp(){return{default:{fn:(e,t)=>dp(e,t),argTypes:[`value`,`truthy`]},empty:{fn:e=>lp(e),argTypes:[`truthy`]},coalesce:{fn:(...e)=>up(...e),argTypes:[`truthy`]},ternary:{fn:(e,t,n)=>pp(e,t,n),argTypes:[`value`,`value`,`truthy`]},fromJson:{fn:e=>fp(e),argTypes:[`string`]},toJson:{fn:e=>mp(e),argTypes:[`serializable`],returnType:`string`},toPrettyJson:{fn:e=>hp(e),argTypes:[`serializable`],returnType:`string`}}}function _p(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function vp(e){if(e.kind!==`call`||e.name!==`dict`||e.args.length%2!=0)return null;let t=[];for(let[n,r]of e.args.entries()){if(r.kind!==`literal`||n%2==0&&typeof r.value!=`string`)return null;t.push(r.value)}return _p(...t)}function yp(e,t){return e[t]}function bp(e,t){return t in e}function xp(e){return Object.keys(e)}function Sp(e,...t){let n={...e};for(let e of t)for(let[t,r]of Object.entries(e))t in n||(n[t]=r);return n}function Cp(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function wp(e,...t){let n=new Set(t),r={};for(let[t,i]of Object.entries(e))n.has(t)||(r[t]=i);return r}function Tp(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ep(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function Dp(e,t,n){return e[t]=n,e}function Op(e,t){return delete e[t],e}function kp(e){return Object.values(e)}function Ap(){return{dict:{fn:(...e)=>_p(...e),argTypes:[`string`,`value`],argTypePattern:`alternating`},get:{fn:(e,t)=>yp(e,t),argTypes:[`dict`,`string`]},set:{fn:(e,t,n)=>Dp(e,t,n),argTypes:[`dict`,`string`,`value`]},unset:{fn:(e,t)=>Op(e,t),argTypes:[`dict`,`string`]},keys:{fn:e=>xp(e),argTypes:[`dict`]},values:{fn:e=>kp(e),argTypes:[`dict`]},pluck:{fn:(e,...t)=>Ep(e,...t),argTypes:[`string`,`dict`]},pick:{fn:(e,...t)=>Tp(e,...t),argTypes:[`dict`,`string`]},omit:{fn:(e,...t)=>wp(e,...t),argTypes:[`dict`,`string`]},hasKey:{fn:(e,t)=>bp(e,t),argTypes:[`dict`,`string`]},merge:{fn:(e,...t)=>Sp(e,...t),argTypes:[`dict`]},mergeOverwrite:{fn:(e,...t)=>Cp(e,...t),argTypes:[`dict`]}}}new TextEncoder,new Map(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`).map((e,t)=>[e,t])),new TextDecoder,new TextEncoder,new TextDecoder,new TextEncoder;function jp(...e){for(let t of e)if(lp(t))return!1;return!0}function Mp(...e){for(let t of e)if(!lp(t))return!0;return!1}function Np(e,t){return[...e,t]}function Pp(e,t){let n=Math.max(1,e),r=[];for(let e=0;e<t.length;e+=n)r.push(t.slice(e,e+n));return r}function Fp(e){return e.filter(e=>!lp(e))}function Ip(...e){let t=[];for(let n of e)t.push(...n);return t}const Lp={line:0,column:0,offset:0};function Rp(e,t,n,r){return new ql(e,t,n,r,Lp)}function zp(...e){if(e.length<3)throw Rp(`dig`,0,`at least 3 arguments (...keys, default, dict)`,`${e.length} argument${e.length===1?``:`s`}`);let t=e[e.length-1],n=e[e.length-2],r=e.slice(0,-2);if(!Vp(t))throw Rp(`dig`,e.length-1,`dict`,Hp(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw Rp(`dig`,e,`string`,Hp(r[e]));return Bp(t,n,r,e.length)}function Bp(e,t,n,r){let i=n[0];if(!Object.hasOwn(e,i))return t;let a=e[i];if(n.length===1)return a;if(!Vp(a))throw Rp(`dig`,r-1,`dict at intermediate key`,Hp(a));return Bp(a,t,n.slice(1),r)}function Vp(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function Hp(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function Up(e){return e[0]}function Wp(e,t){return t.some(t=>Fu(t,e))}function Gp(e){return e.slice(0,-1)}function Kp(e){return e[e.length-1]}function qp(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Jp(...e){return e}function Yp(e,t){return[t,...e]}function Xp(e){return e.slice(1)}function Zp(e){return[...e].reverse()}function Qp(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function $p(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function em(e){let t=[];for(let n of e)t.some(e=>Fu(e,n))||t.push(n);return t}function tm(e,...t){return e.filter(e=>!t.some(t=>Fu(t,e)))}function nm(){return{list:{fn:(...e)=>Jp(...e),argTypes:[`value`]},first:{fn:e=>Up(e),argTypes:[`list`]},last:{fn:e=>Kp(e),argTypes:[`list`]},rest:{fn:e=>Xp(e),argTypes:[`list`]},initial:{fn:e=>Gp(e),argTypes:[`list`]},len:{fn:e=>qp(e),argTypes:[`sized`]},reverse:{fn:e=>Zp(e),argTypes:[`list`]},uniq:{fn:e=>em(e),argTypes:[`list`]},without:{fn:(e,...t)=>tm(e,...t),argTypes:[`list`,`value`]},has:{fn:(e,t)=>Wp(e,t),argTypes:[`value`,`list`]},compact:{fn:e=>Fp(e),argTypes:[`list`]},slice:{fn:(e,t,n)=>Qp(e,t,n),argTypes:[`list`,`int`,`int`]},concat:{fn:(...e)=>Ip(...e),argTypes:[`list`]},chunk:{fn:(e,t)=>Pp(e,t),argTypes:[`int`,`list`]},prepend:{fn:(e,t)=>Yp(e,t),argTypes:[`list`,`value`]},append:{fn:(e,t)=>Np(e,t),argTypes:[`list`,`value`]},sortAlpha:{fn:e=>$p(e),argTypes:[`list`],returnType:`list`},push:{fn:(e,t)=>Np(e,t),argTypes:[`list`,`value`]},tuple:{fn:(...e)=>Jp(...e),argTypes:[`value`]},dig:{fn:(...e)=>zp(...e),argTypes:[`value`]},all:{fn:(...e)=>jp(...e),argTypes:[`truthy`],returnType:`bool`},any:{fn:(...e)=>Mp(...e),argTypes:[`truthy`],returnType:`bool`}}}function rm(...e){return e.reduce((e,t)=>e+t,0)}function im(e){return e+1}function am(e){return e+1}function om(...e){return e.reduce((e,t)=>e+t,0)}function sm(e){return Math.ceil(e)}function cm(e,t){return Math.trunc(e/t)}function lm(e,t){return e/t}function um(e){return Math.floor(e)}function dm(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function fm(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function pm(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function mm(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function hm(e,t){return e%t}function gm(...e){return e.reduce((e,t)=>e*t,1)}function _m(...e){return e.reduce((e,t)=>e*t,1)}function vm(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function ym(e,t,n){let r=[];if(t<e){if(n>=0)return r;for(let i=e;i>t;i+=n)r.push(i);return r}if(n<=0)return r;for(let i=e;i<t;i+=n)r.push(i);return r}function bm(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),ym(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return ym(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:ym(n,i+t,r).join(` `)}default:return``}}function xm(e,t){return e-t}function Sm(e,t){return e-t}function Cm(e){return ym(0,e,e<0?-1:1)}function wm(){return{add:{fn:(...e)=>rm(...e),argTypes:[`int`]},sub:{fn:(e,t)=>xm(e,t),argTypes:[`int`,`int`]},mul:{fn:(...e)=>gm(...e),argTypes:[`int`]},div:{fn:(e,t)=>cm(e,t),argTypes:[`int`,`int`]},mod:{fn:(e,t)=>hm(e,t),argTypes:[`int`,`int`]},min:{fn:(...e)=>pm(...e),argTypes:[`int`]},max:{fn:(...e)=>dm(...e),argTypes:[`int`]},floor:{fn:e=>um(e),argTypes:[`float`]},ceil:{fn:e=>sm(e),argTypes:[`float`]},round:{fn:(e,t)=>vm(e,t),argTypes:[`float`,`int`]},addf:{fn:(...e)=>om(...e),argTypes:[`float`]},subf:{fn:(e,t)=>Sm(e,t),argTypes:[`float`,`float`]},mulf:{fn:(...e)=>_m(...e),argTypes:[`float`]},divf:{fn:(e,t)=>lm(e,t),argTypes:[`float`,`float`]},add1:{fn:e=>im(e),argTypes:[`int`]},add1f:{fn:e=>am(e),argTypes:[`float`]},maxf:{fn:(...e)=>fm(...e),argTypes:[`float`]},minf:{fn:(...e)=>mm(...e),argTypes:[`float`]},biggest:{fn:(...e)=>dm(...e),argTypes:[`int`]},seq:{fn:(...e)=>bm(...e),argTypes:[`int`],returnType:`string`},until:{fn:e=>Cm(e),argTypes:[`int`],returnType:`list`},untilStep:{fn:(e,t,n)=>ym(e,t,n),argTypes:[`int`,`int`,`int`],returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function Tm(e,t){return t.length<=e||e<4?t:`${t.slice(0,e-3)}...`}function Em(e,t,n){return t<7||n.length<t||e<0||e>n.length-t+1?n:`...${n.slice(e,e+t-6)}...`}const q={Invalid:0,Number:1,UpperCase:2,Alphabet:3,Connector:4,Punct:5,Other:6},Dm=/^[-_\s]$/,Om=/^\p{P}$/u,km=/^\p{L}$/u,Am=/^\p{Lu}$/u,jm=/^\p{N}$/u;function Mm(e){return e!==void 0&&Dm.test(e)}function Nm(e){return e!==void 0&&km.test(e)}function Pm(e){return e!==void 0&&Am.test(e)}function Fm(e){return e!==void 0&&jm.test(e)}function Im(e){return e!==void 0&&Om.test(e)}function Lm(e,t){if(t>=e.length)return{word:{wt:q.Invalid,text:``},next:t};let n=e[t],r=t+1;if(Mm(n)){for(;r<e.length&&Mm(e[r]);)r++;return{word:{wt:q.Connector,text:e.slice(t,r).join(``)},next:r}}if(Im(n)){for(;r<e.length&&Im(e[r]);)r++;return{word:{wt:q.Punct,text:e.slice(t,r).join(``)},next:r}}if(Pm(n)){if(r>=e.length)return{word:{wt:q.UpperCase,text:n},next:r};if(Pm(e[r])){let n=r;for(;n<e.length&&Pm(e[n]);)n++;return n<e.length&&Nm(e[n])?{word:{wt:q.UpperCase,text:e.slice(t,n-1).join(``)},next:n-1}:{word:{wt:q.UpperCase,text:e.slice(t,n).join(``)},next:n}}if(Nm(e[r])){let n=r+1;for(;n<e.length&&Nm(e[n])&&!Pm(e[n]);)n++;return{word:{wt:q.UpperCase,text:e.slice(t,n).join(``)},next:n}}return{word:{wt:q.UpperCase,text:n},next:r}}if(Nm(n)){for(;r<e.length&&Nm(e[r])&&!Pm(e[r]);)r++;return{word:{wt:q.Alphabet,text:e.slice(t,r).join(``)},next:r}}if(Fm(n)){for(;r<e.length&&Fm(e[r]);)r++;return{word:{wt:q.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!Mm(e[r])&&!Nm(e[r])&&!Fm(e[r])&&!Im(e[r]);)r++;return{word:{wt:q.Other,text:e.slice(t,r).join(``)},next:r}}function Rm(e,t,n){if(t.wt!==q.UpperCase&&t.wt!==q.Connector){e.push(t.text);return}for(let r of t.text)Mm(r)?e.push(n):Pm(r)?e.push(r.toLowerCase()):e.push(r)}function zm(e,t){if(e.length===0)return``;let n=Array.from(e),r=[],{word:i,next:a}=Lm(n,0);for(;a<n.length;){i.wt!==q.Connector&&Rm(r,i,t);let e=i,o=i;if({word:i,next:a}=Lm(n,a),e.wt===q.Number){for(;i.wt===q.Alphabet||i.wt===q.Number;)Rm(r,i,t),{word:i,next:a}=Lm(n,a);i.wt!==q.Invalid&&i.wt!==q.Punct&&i.wt!==q.Connector&&r.push(t);continue}if(e.wt===q.Connector){Rm(r,o,t);continue}if(e.wt===q.Punct)continue;if(i.wt!==q.Number){i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}if(a>=n.length)continue;let s=i;if({word:i,next:a}=Lm(n,a),i.wt!==q.Alphabet){Rm(r,s,t),i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}for(r.push(t),Rm(r,s,t);i.wt===q.Alphabet||i.wt===q.Number;)Rm(r,i,t),{word:i,next:a}=Lm(n,a);i.wt!==q.Invalid&&i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t)}return Rm(r,i,t),r.join(``).toLowerCase()}function Bm(e){if(e.length===0)return``;let t=Array.from(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!Mm(i)){i=i.toUpperCase();break}n.push(i)}if(r>=t.length)return t.length>0&&n.push(i),n.join(``);for(;r<t.length;){let e=i;if(i=t[r],r++,Mm(i)&&Mm(e)){n.push(e);continue}Mm(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function Vm(e){return Bm(e)}function Hm(...e){return e.join(` `)}function Um(e,t){return t.includes(e)}function Wm(e,t){return t.startsWith(e)}function Gm(e,t){return t.endsWith(e)}function Km(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
|
|
46
|
+
`?(this.line+=1,this.column=1):this.column+=1}}advanceTo(e){for(;this.offset<e;)this.advanceBy(1)}makeToken(e,t,n,r={}){return Object.freeze({type:e,value:t,pos:n,...r.trimLeft===void 0?{}:{trimLeft:r.trimLeft},...r.trimRight===void 0?{}:{trimRight:r.trimRight}})}};function su(e){return e===` `||e===` `||e===`\r`||e===`
|
|
47
|
+
`}function cu(e){return e===`+`||e===`-`}function lu(e){return e>=`0`&&e<=`9`}function uu(e){return lu(e)||e>=`a`&&e<=`f`||e>=`A`&&e<=`F`}function du(e){return e>=`0`&&e<=`7`}function fu(e){return e===`0`||e===`1`}function pu(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`}function mu(e){return pu(e)||e===`_`}function hu(e){return mu(e)||lu(e)}let gu,_u;function vu(e,t){return _u(e,t)}var yu=class e{static EMPTY=new e(new Map,void 0);#e;#t;constructor(e,t){this.#e=e,this.#t=t}static{gu=(t,n)=>new e(t,n),_u=(e,t)=>e.#e.get(t)??(e.#t&&_u(e.#t,t))}has(e){return _u(this,e)!==void 0}};function bu(e,t,n=yu.EMPTY){return new xu(e,t,n).parseTemplate()}var xu=class{lex;buf=[];defines=new Map;inherit;source;rangeDepth=0;constructor(e,t,n){this.source=e,this.inherit=n,this.lex=t?new ou(e,t):new ou(e)}peek(e=0){for(;this.buf.length<=e;)this.buf.push(this.lex.next());return this.buf[e]}next(){return this.buf.length>0?this.buf.shift():this.lex.next()}expect(e,t){let n=this.next();if(n.type!==e)throw this.errAt(n,`expected ${t}`,{expected:t,found:wu(n)});return n}errAt(e,t,n={}){return new Jl(t,e.pos,{...n,source:this.source})}parseTemplate(){let e=this.parseList();if(this.peek().type!==`EOF`){let e=this.peek(),t=this.peek(1);if(e.type===`LeftDelim`&&(t.type===`Else`||t.type===`End`)){let n=t.type===`Else`?`else`:`end`;throw this.errAt(e,`unexpected \`{{${n}}}\` outside of \`if\`, \`range\`, \`with\`, or \`block\``,{found:`{{${n}}}`})}throw this.errAt(e,`unexpected ${wu(e)}`,{found:wu(e)})}return{root:e,defines:gu(this.defines,this.inherit),ownDefines:this.defines,source:this.source}}parseList(){let e=this.peek().pos,t=[];for(;;){let n=this.peek();if(n.type===`EOF`)break;if(n.type===`Text`){this.next(),t.push({type:`Text`,pos:n.pos,text:n.value});continue}if(n.type===`Comment`){this.next();let e=Cu(n);t.push({type:`Comment`,pos:n.pos,text:n.value,trim:e});continue}if(n.type===`LeftDelim`){let n=this.peek(1).type;if(n===`Else`||n===`End`)return Su(e,t);let r=this.parseAction();r!==null&&t.push(r);continue}throw this.errAt(n,`unexpected ${wu(n)} at top level`,{found:wu(n)})}return Su(e,t)}parseAction(){let e=this.expect(`LeftDelim`,"`{{`"),t=e.trimLeft===!0,n=this.peek();switch(n.type){case`If`:return this.next(),this.parseBranch(`If`,e.pos,t);case`Range`:return this.next(),this.parseBranch(`Range`,e.pos,t);case`With`:return this.next(),this.parseBranch(`With`,e.pos,t);case`Break`:return this.next(),this.parseBreakOrContinue(`Break`,e.pos,t);case`Continue`:return this.next(),this.parseBreakOrContinue(`Continue`,e.pos,t);case`Template`:return this.next(),this.parseTemplateInvocation(e.pos,t);case`Block`:return this.next(),this.parseBlock(e.pos,t);case`Define`:return this.next(),this.parseDefine(e.pos,t),null;case`RightDelim`:throw this.errAt(n,`empty action`,{expected:`pipeline`});default:{let n=this.parsePipeline(),r=this.expect(`RightDelim`,"`}}`");return{type:`Action`,pos:e.pos,pipe:n,trim:{trimLeft:t,trimRight:r.trimRight===!0}}}}}parseBranch(e,t,n){let r=this.parsePipeline();this.expect(`RightDelim`,"`}}`"),e===`Range`&&(this.rangeDepth+=1);let i=this.parseList();e===`Range`&&--this.rangeDepth;let a=this.parseElsePart(),o={trimLeft:n,trimRight:a.endConsumed?a.endRight:this.consumeEnd()},s=a.list?{pipe:r,list:i,elseList:a.list,trim:o}:{pipe:r,list:i,trim:o};switch(e){case`If`:return{type:`If`,pos:t,...s};case`Range`:return{type:`Range`,pos:t,...s};case`With`:return{type:`With`,pos:t,...s}}}parseBreakOrContinue(e,t,n){if(this.rangeDepth===0)throw new Jl(`{{${e===`Break`?`break`:`continue`}}} outside of {{range}}`,t,{source:this.source});let r={trimLeft:n,trimRight:this.expect(`RightDelim`,"`}}`").trimRight===!0};return e===`Break`?{type:`Break`,pos:t,trim:r}:{type:`Continue`,pos:t,trim:r}}parseElsePart(){if(this.peek().type!==`LeftDelim`||this.peek(1).type!==`Else`)return{list:void 0,endRight:!1,endConsumed:!1};let e=this.next();if(this.next(),this.peek().type===`If`){this.next();let t=this.parseBranch(`If`,e.pos,e.trimLeft===!0);return{list:{type:`List`,pos:e.pos,nodes:[t]},endRight:t.trim.trimRight,endConsumed:!0}}return this.expect(`RightDelim`,"`}}`"),{list:this.parseList(),endRight:!1,endConsumed:!1}}consumeEnd(){return this.expect(`LeftDelim`,"`{{end}}`"),this.expect(`End`,"`end`"),this.expect(`RightDelim`,"`}}`").trimRight===!0}parseTemplateInvocation(e,t){let n=this.parseQuotedName(),r=this.peek().type===`RightDelim`?void 0:this.parsePipeline(),i={trimLeft:t,trimRight:this.expect(`RightDelim`,"`}}`").trimRight===!0};return r?{type:`Template`,pos:e,name:n,pipe:r,trim:i}:{type:`Template`,pos:e,name:n,trim:i}}parseBlock(e,t){let n=this.parseQuotedName(),r=this.peek().type===`RightDelim`?void 0:this.parsePipeline();this.expect(`RightDelim`,"`}}`");let i=this.rangeDepth;this.rangeDepth=0;let a=this.parseList();this.rangeDepth=i;let o={trimLeft:t,trimRight:this.consumeEnd()};return!this.defines.has(n)&&!this.inherit.has(n)&&this.defines.set(n,{list:a,source:this.source}),r?{type:`Block`,pos:e,name:n,pipe:r,list:a,trim:o}:{type:`Block`,pos:e,name:n,list:a,trim:o}}parseDefine(e,t){let n=this.parseQuotedName();this.expect(`RightDelim`,"`}}`");let r=this.rangeDepth;this.rangeDepth=0;let i=this.parseList();if(this.rangeDepth=r,this.consumeEnd(),this.defines.has(n)||this.inherit.has(n))throw new Jl(`redefinition of template ${JSON.stringify(n)}`,i.pos,{source:this.source});this.defines.set(n,{list:i,source:this.source})}parseQuotedName(){let e=this.next();if(e.type!==`String`)throw this.errAt(e,`expected template name (quoted string)`,{expected:`string`,found:wu(e)});return Mu(e.value,e.pos,this.source)}parsePipeline(){let e=this.peek().pos,t=this.tryParseDecls(),n=[this.parseCommand()];for(;this.peek().type===`Pipe`;){this.next();let e=this.peek();if(!Tu(e.type))throw this.errAt(e,"missing command after `|`",{expected:`command`,found:wu(e)});n.push(this.parseCommand())}return{type:`Pipe`,pos:e,decls:t?.vars??[],isAssign:t?.isAssign??!1,cmds:n}}tryParseDecls(){if(this.peek().type!==`Variable`)return;let e=1;for(;this.peek(e).type===`Comma`;){if(this.peek(e+1).type!==`Variable`)return;e+=2}let t=this.peek(e).type;if(t!==`Declare`&&t!==`Assign`)return;let n=[Eu(this.next())];for(;this.peek().type===`Comma`;)this.next(),n.push(Eu(this.expect(`Variable`,`$variable`)));return{vars:n,isAssign:this.next().type===`Assign`}}parseCommand(){let e=this.peek().pos,t=[this.parsePrimary()];for(;Tu(this.peek().type);)t.push(this.parsePrimary());return{type:`Command`,pos:e,args:t}}parsePrimary(){let e=this.next();switch(e.type){case`Dot`:return{type:`Dot`,pos:e.pos};case`Field`:return{type:`Field`,pos:e.pos,idents:e.value.slice(1).split(`.`)};case`Variable`:return Eu(e);case`Identifier`:return{type:`Identifier`,pos:e.pos,ident:e.value};case`String`:return{type:`String`,pos:e.pos,raw:e.value,value:Mu(e.value,e.pos,this.source)};case`Number`:return Ou(e);case`Char`:return ku(e,this.source);case`Bool`:return{type:`Bool`,pos:e.pos,value:e.value===`true`};case`Nil`:return{type:`Nil`,pos:e.pos};case`LeftParen`:return this.parseChainOrPipe(e.pos);default:throw this.errAt(e,`expected command argument, found ${wu(e)}`,{expected:`command argument`,found:wu(e)})}}parseChainOrPipe(e){let t=this.parsePipeline(),n=this.expect(`RightParen`,"`)`"),r=[],i=n.pos.offset+1,a=this.peek();return a.type===`Field`&&a.pos.offset===i&&(this.next(),r.push(...a.value.slice(1).split(`.`))),r.length===0?t:{type:`Chain`,pos:e,node:t,fields:r}}};function Su(e,t){return{type:`List`,pos:e,nodes:t}}function Cu(e){return{trimLeft:e.trimLeft===!0,trimRight:e.trimRight===!0}}function wu(e){return e.type===`EOF`?`end of input`:e.value||e.type}function Tu(e){switch(e){case`Dot`:case`Field`:case`Variable`:case`Identifier`:case`String`:case`Number`:case`Char`:case`Bool`:case`Nil`:case`LeftParen`:return!0;default:return!1}}function Eu(e){return{type:`Variable`,pos:e.pos,idents:Du(e.value)}}function Du(e){let t=e.indexOf(`.`);return t===-1?[e]:[e.slice(0,t),...e.slice(t+1).split(`.`)]}function Ou(e){let t=e.value,n=t.replace(/_/g,``),r=n.toLowerCase().endsWith(`i`),i=r?n.slice(0,-1):n,a=!r&&(i.includes(`.`)||!i.startsWith(`0x`)&&!i.startsWith(`0X`)&&/[eE]/.test(i)||(i.startsWith(`0x`)||i.startsWith(`0X`))&&/[pP]/.test(i)),o=!r&&!a,s={type:`Number`,pos:e.pos,text:t,isInt:o,isUint:!1,isFloat:a,isComplex:r};if(o){let e=Au(i);return{...s,intValue:e}}if(a){let e=ju(i);return{...s,floatValue:e}}let c=ju(i);return{...s,complexValue:[0,c]}}function ku(e,t){let n=Nu(e.value,e.pos,t);return{type:`Number`,pos:e.pos,text:e.value,isInt:!0,isUint:!1,isFloat:!1,isComplex:!1,intValue:BigInt(n)}}function Au(e){let t=1n,n=e;return n.startsWith(`+`)?n=n.slice(1):n.startsWith(`-`)&&(t=-1n,n=n.slice(1)),t*BigInt(n)}function ju(e){return Number(e)}function Mu(e,t,n){if(e.startsWith("`"))return e.slice(1,-1);let r=``;for(let i=1;i<e.length-1;i++){let a=e[i];if(a!==`\\`){r+=a;continue}let o=e[++i];switch(o){case`n`:r+=`
|
|
48
|
+
`;break;case`t`:r+=` `;break;case`r`:r+=`\r`;break;case`\\`:r+=`\\`;break;case`"`:r+=`"`;break;case`'`:r+=`'`;break;case`a`:r+=`\x07`;break;case`b`:r+=`\b`;break;case`f`:r+=`\f`;break;case`v`:r+=`\v`;break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:{let t=o+(e[i+1]??``)+(e[i+2]??``);i+=2,r+=String.fromCodePoint(Number.parseInt(t,8));break}case`x`:{let t=(e[i+1]??``)+(e[i+2]??``);i+=2,r+=String.fromCodePoint(Number.parseInt(t,16));break}case`u`:{let t=e.slice(i+1,i+5);i+=4,r+=String.fromCodePoint(Number.parseInt(t,16));break}case`U`:{let t=e.slice(i+1,i+9);i+=8,r+=String.fromCodePoint(Number.parseInt(t,16));break}default:throw new Jl(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function Nu(e,t,n){let r=Mu(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new Jl(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function Pu(e,t){if(t(e)!==!1)for(let n of Fu(e))Pu(n,t)}function Fu(e){switch(e.type){case`Text`:case`Comment`:case`Dot`:case`Nil`:case`Bool`:case`Number`:case`String`:case`Identifier`:case`Field`:case`Variable`:case`Break`:case`Continue`:return[];case`List`:return e.nodes;case`Chain`:return[e.node];case`Command`:return e.args;case`Pipe`:return[...e.decls,...e.cmds];case`Action`:return[e.pipe];case`If`:case`Range`:case`With`:return e.elseList?[e.pipe,e.list,e.elseList]:[e.pipe,e.list];case`Template`:return e.pipe?[e.pipe]:[];case`Block`:return e.pipe?[e.pipe,e.list]:[e.list];default:return ru(e)}}const Iu=Symbol(`go-template-js.MISSING`);function Lu(e,t){if(e==null)return Iu;if(e instanceof Map)return e.has(t)?e.get(t):Iu;if(Array.isArray(e))return Iu;if(typeof e==`object`){let n=e;return t in n?n[t]:Iu}return Iu}function Ru(e,t){let n=e;for(let e of t){if(n===Iu)return Iu;n=Lu(n,e)}return n}function zu(e,t){if(Object.is(e,t))return!0;if(e===null||t===null||e===void 0||t===void 0||typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length?e.every((e,n)=>zu(e,t[n])):!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!zu(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(typeof e==`object`&&typeof t==`object`){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length?n.every(n=>zu(e[n],t[n])):!1}return!1}const Bu=new WeakSet;function Vu(e){return Bu.add(e),e}function Hu(e){return Bu.has(e)}function Uu(e){return e==null||e===!1?!1:typeof e==`number`?e!==0&&!Number.isNaN(e):typeof e==`bigint`?e!==0n:typeof e==`string`||Array.isArray(e)?e.length>0:e instanceof Map||e instanceof Set?e.size>0:typeof e==`object`?Object.keys(e).length>0:!!e}function Wu(e,t){return{eq:{fn:(e,...t)=>t.some(t=>qu(e,t)),argTypes:[`comparable`]},ne:{fn:(e,t)=>!qu(e,t),argTypes:[`comparable`,`comparable`]},lt:{fn:(e,t)=>Ju(e,t)<0,argTypes:[`ordered`,`ordered`]},le:{fn:(e,t)=>Ju(e,t)<=0,argTypes:[`ordered`,`ordered`]},gt:{fn:(e,t)=>Ju(e,t)>0,argTypes:[`ordered`,`ordered`]},ge:{fn:(e,t)=>Ju(e,t)>=0,argTypes:[`ordered`,`ordered`]},len:{fn:e=>Yu(e),argTypes:[`sized`]},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=Xu(n,e);return n},argTypes:[`collection`,`index-key`]},slice:{fn:(e,...t)=>{let n=t.length>=1?t[0]:0,r=t.length>=2?t[1]:void 0;return e.slice(n,r)},argTypes:[`sliceable`,`int`]},print:{fn:(...t)=>$u(t,e),argTypes:[`stringifiable`],returnType:`string`},println:{fn:(...t)=>`${$u(t,e)}\n`,argTypes:[`stringifiable`],returnType:`string`},printf:{fn:(n,...r)=>cd(n,r,e,t),argTypes:[`string`,`stringifiable`],returnType:`string`},toString:{fn:n=>dd(n,e,t),argTypes:[`value`],returnType:`string`},toStrings:{fn:n=>n.map(n=>dd(n,e,t)),argTypes:[`list`]},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`]},html:{fn:(...t)=>nd($u(t,e)),argTypes:[`stringifiable`],returnType:`string`},js:{fn:(...t)=>ad($u(t,e)),argTypes:[`stringifiable`],returnType:`string`},urlquery:{fn:(...t)=>sd($u(t,e)),argTypes:[`stringifiable`],returnType:`string`},not:{fn:e=>!Uu(e),argTypes:[`truthy`]}}}function Gu(){return{and:Vu({argTypes:[`truthy`],fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!Uu(t))return t;return t}}),or:Vu({argTypes:[`truthy`],fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),Uu(t))return t;return t}})}}function Ku(e,t){return{...Wu(e,t),...Gu()}}function qu(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):zu(e,t)}function Ju(e,t){if(typeof e==`bigint`&&typeof t==`bigint`)return e===t?0:e<t?-1:1;if(typeof e==`bigint`||typeof t==`bigint`){let n=typeof e==`bigint`?e:BigInt(Math.trunc(Number(e))),r=typeof t==`bigint`?t:BigInt(Math.trunc(Number(t)));return n===r?0:n<r?-1:1}let n=e,r=t;return n===r?0:n<r?-1:1}function Yu(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Xu(e,t){if(Array.isArray(e)){let n=Number(t);if(!Number.isInteger(n))throw Error(`index: array index must be integer, got ${Zu(t)}`);if(n<0||n>=e.length)throw Error(`index: out of range [${n}] with length ${e.length}`);return e[n]}if(e instanceof Map)return e.get(t);if(typeof e==`string`)return e[Number(t)];if(typeof e==`object`&&e){if(typeof t!=`string`)throw Error(`index: object index must be string, got ${Zu(t)}`);return e[t]}throw Error(`index: cannot index ${Zu(e)}`)}function Zu(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Qu(e){return e==null?`<nil>`:typeof e==`string`?`string`:typeof e==`boolean`?`bool`:typeof e==`bigint`?`int64`:typeof e==`number`?Number.isInteger(e)?`int`:`float64`:Array.isArray(e)?`[]interface {}`:e instanceof Map||typeof e==`object`?`map[string]interface {}`:typeof e}function $u(e,t){let n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i],o=typeof a==`string`;i>0&&!r&&!o&&(n+=` `),n+=ed(a,t),r=o}return n}function ed(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const td={"\0":`�`,'"':`"`,"'":`'`,"&":`&`,"<":`<`,">":`>`};function nd(e){return e.replace(/[\0"'&<>]/g,e=>td[e]??e)}const rd={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},id=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function ad(e){let t=``;for(let n of e){let e=rd[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!id.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const od=new TextEncoder;function sd(e){let t=``,n=od.encode(e);for(let e of n)e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45||e===46||e===95||e===126?t+=String.fromCharCode(e):e===32?t+=`+`:t+=`%${e.toString(16).toUpperCase().padStart(2,`0`)}`;return t}function cd(e,t,n,r){let i=``,a=0,o=0;for(;o<e.length;){let s=e[o];if(s!==`%`){i+=s,o+=1;continue}if(e[o+1]===`%`){i+=`%`,o+=2;continue}let c=o+1;for(;c<e.length&&`+-# 0`.includes(e[c]??``);)c+=1;for(;c<e.length&&e[c]!==void 0&&/[0-9]/.test(e[c]);)c+=1;if(e[c]===`.`)for(c+=1;c<e.length&&e[c]!==void 0&&/[0-9]/.test(e[c]);)c+=1;let l=e[c],u=e.slice(o+1,c),d=t[a++];i+=ld(l??``,u,d,n,r),o=c+1}return i}function ld(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?ud(t,n):ud(t,ed(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Qu(n)}=${ed(n,r)})`:ud(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return ud(t,dd(n,r,i));case`q`:return ud(t,JSON.stringify(ed(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${Qu(n)}=${ed(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return ud(t,Number(n).toFixed(i))}case`t`:return ud(t,Uu(n)?`true`:`false`);case`x`:if(typeof n==`string`){let e=new TextEncoder().encode(n),r=``;for(let t of e)r+=t.toString(16).padStart(2,`0`);return ud(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Qu(n)}=${ed(n,r)})`:typeof n==`bigint`?ud(t,n.toString(16)):ud(t,Math.trunc(n).toString(16));default:return`%!${e}(${Qu(n)}=${ed(n,r)})`}}function ud(e,t){let n=e.match(/^([+\-# 0]*)/)?.[1]??``,r=e.slice(n.length).match(/^(\d+)/);if(!r)return t;let i=Number(r[1]);if(t.length>=i)return t;let a=` `.repeat(i-t.length);return n.includes(`-`)?t+a:a+t}function dd(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>dd(e,t,n)).join(` `)}]`:e instanceof Map?fd([...e.entries()],t,n):pd(e)?fd(Object.entries(e),t,n):String(e)}function fd(e,t,n){let r=e=>dd(e,t,n),i=e=>typeof e==`number`||typeof e==`bigint`,a=([e],[t])=>{if(i(e)&&i(t))return e<t?-1:+(e>t);if(i(e)!==i(t))return i(e)?-1:1;let[n,a]=[r(e),r(t)];return n<a?-1:+(n>a)};return`map[${[...e].sort(a).map(([e,t])=>`${r(e)}:${r(t)}`).join(` `)}]`}function pd(e){if(typeof e!=`object`||!e||Array.isArray(e)||e instanceof Map||e instanceof Set)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function md(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function hd(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function gd(e,t){let n=e;for(;n!==void 0;){if(n.vars.has(t))return{found:!0,value:n.vars.get(t)};n=n.parent}return{found:!1}}function _d(e,t,n){e.vars.set(t,n)}const vd=new Set([`default`,`zero`,`error`]);function yd(e){if(e===void 0)return`default`;if(vd.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${bd(e)}`)}function bd(e){return typeof e==`string`?JSON.stringify(e):e===null?`null`:e===void 0?`undefined`:typeof e==`bigint`?`${e}n`:typeof e==`number`||typeof e==`boolean`?String(e):typeof e==`symbol`?e.toString():typeof e==`function`?`[Function]`:`[${typeof e}]`}function xd(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${bd(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${bd(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${bd(e.right)}`);return{left:e.left,right:e.right}}}const Sd=Object.freeze({kind:`break`}),Cd=Object.freeze({kind:`continue`}),wd={kind:`none`};let Td;(class e{source;_evaluate;_defines;_referencedFunctions;_referencedCalls;constructor(e,t,n,r,i){this.source=e,this._evaluate=t,this._defines=n,this._referencedFunctions=r,this._referencedCalls=i}static{Td=(t,n,r,i,a)=>new e(t,n,r,i,a)}defines(){return this._defines}evaluate(e){return this._evaluate(e)}referencedFunctions(){return this._referencedFunctions}referencedCalls(){return this._referencedCalls}});function Ed(e){let t=new Set,n=e=>{Pu(e,e=>{e.type===`Identifier`&&t.add(e.ident)})};n(e.root);for(let t of e.ownDefines.values())n(t.list);return t}const Dd={kind:`dynamic`};function Od(e){switch(e.type){case`String`:return{kind:`literal`,value:e.value};case`Bool`:return{kind:`literal`,value:e.value};case`Nil`:return{kind:`literal`,value:null};case`Number`:{let t=qd(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:Dd}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return Dd;let t=e.cmds[0];if(t===void 0)return Dd;let n=t.args[0];return n===void 0||n.type!==`Identifier`?Dd:{kind:`call`,name:n.ident,args:t.args.slice(1).map(Od)}}default:return Dd}}function kd(e){let t=[],n=e=>{Pu(e,e=>{if(e.type!==`Command`)return;let n=e.args[0];if(n===void 0||n.type!==`Identifier`)return;let r=e.args.slice(1).map(Od);t.push({name:n.ident,args:r.map(e=>e.kind===`literal`&&typeof e.value==`string`?e.value:null),argExprs:r})})};n(e.root);for(let t of e.ownDefines.values())n(t.list);return t}var Ad=class{fromString;toString;isT;funcs;missingKey;delims;constructor(e){this.fromString=e.fromString;let t=Object.hasOwn(e,`toString`)?e.toString:void 0;this.toString=t??Ld,this.isT=e.isT??jd,this.missingKey=yd(e.missingKey),this.delims=xd(e.delims),this.funcs={...Ku(this.toString,this.isT),...e.funcs??{}}}parse(e,t){let n=bu(e,this.delims,t);return Td(n.source,e=>this.evalParsed(n,e),n.defines,Ed(n),kd(n))}compile(e){let t=this.parse(e);return e=>t.evaluate(e)}evaluate(e,t){return e.evaluate(t)}evalParsed(e,t){let n=[],r=md(t),i={out:n,defines:e.defines,source:e.source};return this.evalList(e.root,r,i),n}evalList(e,t,n){for(let r of e.nodes)this.evalNode(r,t,n)}evalNode(e,t,n){switch(e.type){case`Text`:n.out.push(this.fromString(e.text));return;case`Comment`:return;case`Action`:{let r=this.evalAction(e,t,n);e.pipe.decls.length===0&&this.emitFromValue(r,n);return}case`List`:this.evalList(e,t,n);return;case`If`:this.evalIf(e,t,n);return;case`Range`:this.evalRange(e,t,n);return;case`With`:this.evalWith(e,t,n);return;case`Break`:throw Sd;case`Continue`:throw Cd;case`Template`:this.evalTemplateInvoke(e,t,n);return;case`Block`:this.evalBlock(e,t,n);return;case`Pipe`:case`Command`:case`Identifier`:case`Field`:case`Variable`:case`Chain`:case`Dot`:case`Nil`:case`Bool`:case`Number`:case`String`:throw new Yl(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:ru(e)}}evalIf(e,t,n){Uu(this.evalPipe(e.pipe,t,n))?this.evalList(e.list,t,n):e.elseList&&this.evalList(e.elseList,t,n)}evalWith(e,t,n){let r=this.evalPipe(e.pipe,t,n);if(Uu(r)){let i=hd(t,r);this.evalList(e.list,i,n)}else e.elseList&&this.evalList(e.elseList,t,n)}evalRange(e,t,n){let r=this.evalPipeWithoutDecls(e.pipe,t,n),i=e.pipe.decls,a=Wd(r);try{if(a.length===0){e.elseList&&this.evalList(e.elseList,t,n);return}for(let[r,o]of a){let a=hd(t,o);if(i.length===1)_d(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;_d(a,e,r),_d(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===Cd)continue;throw e}}}catch(e){if(e===Sd)return;throw e}}evalTemplateInvoke(e,t,n){let r=vu(n.defines,e.name);if(!r)throw new Yl(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=hd(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot);this.evalList(r.list,i,{out:n.out,defines:n.defines,source:r.source})}evalBlock(e,t,n){let r=hd(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=vu(n.defines,e.name)??{list:e.list,source:n.source};this.evalList(i.list,r,{out:n.out,defines:n.defines,source:i.source})}evalAction(e,t,n){return this.evalPipe(e.pipe,t,n)}evalPipe(e,t,n){if(e.cmds.length===0)throw new Yl(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,wd);for(let i=1;i<e.cmds.length;i++){let a=e.cmds[i];r=this.evalCommand(a,t,n,{kind:`value`,value:r})}if(e.decls.length>0)for(let n of e.decls)_d(t,n.idents[0]??`$`,r);return r}evalPipeWithoutDecls(e,t,n){let r={type:`Pipe`,pos:e.pos,decls:[],isAssign:!1,cmds:e.cmds};return this.evalPipe(r,t,n)}evalCommand(e,t,n,r){if(e.args.length===0)throw new Yl(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new Yl(`cannot apply arguments to a ${i.type} primary; only functions take arguments`,e.pos,{source:n.source});return this.evalPrimary(i,t,n)}let a=this.funcs[i.ident];if(!a)throw new Xl(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=Hu(a),c=o.map(e=>s?()=>this.evalPrimary(e,t,n):this.evalPrimary(e,t,n));if(r.kind===`value`){let e=r.value;c.push(s?()=>e:e)}Nd(i.ident,a.argTypes,c,e.pos,n.source,this.toString,a.argTypePattern,this.fromString,this.isT);try{return a.fn(...c)}catch(t){throw t instanceof Zl?new Zl(t.funcName,t.argIndex,t.expected,t.receivedSummary,e.pos,{source:n.source}):t instanceof $l?new $l(t.message,e.pos,{source:n.source}):t}}evalPrimary(e,t,n){switch(e.type){case`Dot`:return t.dot;case`Nil`:return null;case`Bool`:return e.value;case`Number`:return qd(e);case`String`:return e.value;case`Field`:return this.resolveFieldChain(t.dot,e.idents,e.pos,n);case`Variable`:return this.resolveVariable(e.idents,t,e.pos,n);case`Identifier`:{let t=this.funcs[e.ident];if(!t)throw new Xl(e.ident,e.pos,{source:n.source,available:Object.keys(this.funcs)});return Nd(e.ident,t.argTypes,[],e.pos,n.source,this.toString,t.argTypePattern,this.fromString,this.isT),t.fn()}case`Chain`:return this.resolveFieldChain(this.evalPrimary(e.node,t,n),e.fields,e.pos,n);case`Pipe`:return this.evalPipe(e,t,n);default:throw new Yl(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=Ru(e,t);if(i!==Iu)return i;if(this.missingKey===`error`)throw new Ql(t,n,{source:r.source})}resolveVariable(e,t,n,r){let i=e[0]??`$`;if(i===`$`){let i=e.slice(1);return i.length===0?t.root:this.resolveFieldChain(t.root,i,n,r)}let a=gd(t,i);if(!a.found)throw new Yl(`undefined variable ${i}`,n,{source:r.source});let o=e.slice(1);return o.length===0?a.value:this.resolveFieldChain(a.value,o,n,r)}emitFromValue(e,t){if(e==null){t.out.push(this.fromString(`<no value>`));return}if(typeof e==`string`){t.out.push(this.fromString(e));return}if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`){t.out.push(this.fromString(String(e)));return}if(this.isT(e)){t.out.push(e);return}t.out.push(this.fromString(dd(e,this.toString,this.isT)))}};const jd=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function Md(e){return new Ad(e)}function Nd(e,t,n,r,i,a=Ld,o,s=Id,c=jd){let l=Pd(t,o),u=-1,d=-1;for(let t=0;t<n.length;t++){let o=l(t),f=n[t];if(!Fd(o,f,a,c))throw new Zl(e,t+1,Hd(o),Ud(f),r,{source:i});if(o===`liftable`&&typeof f==`string`&&(n[t]=s(f)),o===`int`?n[t]=Math.trunc(Number(f)):o===`float`&&(n[t]=Number(f)),o===`ordered`){if(u===-1)u=t;else if(!zd(n[u],f))throw new Zl(e,t+1,`${Hd(`ordered`)} of the same kind as ${Ud(n[u])}`,Ud(f),r,{source:i})}if(o===`comparable`){if(d===-1)d=t;else if(!Bd(n[d],f))throw new Zl(e,t+1,`${Hd(`comparable`)} of the same kind as ${Ud(n[d])}`,Ud(f),r,{source:i})}}}function Pd(e,t){if(e.length===0)return()=>`value`;if(t===`alternating`){let t=e.length;return n=>e[n%t]}let n=e[e.length-1];return t=>t<e.length?e[t]:n}function Fd(e,t,n,r){switch(e){case`truthy`:case`reflective`:case`value`:return!0;case`string`:return typeof t==`string`;case`int`:return typeof t==`number`&&Number.isFinite(t)||typeof t==`bigint`&&Number.isSafeInteger(Number(t));case`float`:return typeof t==`number`||typeof t==`bigint`&&Number.isFinite(Number(t));case`bool`:return typeof t==`boolean`;case`ordered`:return typeof t==`string`||typeof t==`number`||typeof t==`bigint`||typeof t==`boolean`;case`T`:return r(t);case`list`:return Array.isArray(t);case`dict`:return pd(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||pd(t);case`comparable`:return t==null||typeof t==`string`||typeof t==`number`||typeof t==`bigint`||typeof t==`boolean`||Array.isArray(t)||t instanceof Map||t instanceof Set||pd(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||pd(t);case`index-key`:return typeof t==`string`||typeof t==`number`||typeof t==`bigint`;case`sliceable`:return typeof t==`string`||Array.isArray(t);case`stringifiable`:if(typeof t==`string`)return!0;try{return n(t),!0}catch{return!1}case`liftable`:return typeof t==`string`||r(t);case`serializable`:return Rd(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Id(e){return e}function Ld(e){if(typeof e==`string`)return e;if(e==null)return`<nil>`;if(typeof e==`number`||typeof e==`bigint`||typeof e==`boolean`)return String(e);throw new Zl(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,Ud(e),{line:0,column:0,offset:0})}function Rd(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function zd(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function Bd(e,t){let n=Vd(e),r=Vd(t);return n===`nil`||r===`nil`?!0:n===r}function Vd(e){return e==null?`nil`:typeof e==`string`?`string`:typeof e==`number`||typeof e==`bigint`?`number`:typeof e==`boolean`?`boolean`:Array.isArray(e)?`array`:e instanceof Map?`map`:e instanceof Set?`set`:`object`}function Hd(e){switch(e){case`int`:return`integer (finite number or safe-integer bigint)`;case`float`:return`float (number, including NaN/Infinity, or finite-convertible bigint)`;case`T`:return`T (consumer-defined fragment)`;case`ordered`:return`orderable primitive`;case`list`:return`list`;case`dict`:return`dict (plain object)`;case`sized`:return`sized value (string, list, map, set, or dict)`;case`comparable`:return`comparable value (orderable primitive, nil, list, dict, Map, or Set)`;case`stringifiable`:return`stringifiable value (string or convertible via the engine's toString)`;case`liftable`:return`liftable value (T or string, the latter lifted via the engine's fromString)`;case`callable`:return`callable (function value)`;case`collection`:return`collection (string, array, Map, or dict)`;case`index-key`:return`index key (number, bigint, or string)`;case`sliceable`:return`sliceable value (string or array)`;case`serializable`:return`JSON-serializable value`;case`truthy`:case`reflective`:case`value`:case`string`:case`bool`:return e;default:throw Error(`invalid ArgType: ${String(e)}`)}}function Ud(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Wd(e){return e==null?[]:Array.isArray(e)?e.map((e,t)=>[t,e]):typeof e==`string`?[...e].map((e,t)=>[t,e]):e instanceof Map?Gd([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?Gd(Object.entries(e)):[]}function Gd(e){return[...e].sort((e,t)=>Kd(e[0],t[0]))}function Kd(e,t){if((typeof e==`number`||typeof e==`bigint`)&&(typeof t==`number`||typeof t==`bigint`)){let n=typeof e==`bigint`?Number(e):e,r=typeof t==`bigint`?Number(t):t;return n===r?0:n<r?-1:1}let n=String(e),r=String(t);return n===r?0:n<r?-1:1}function qd(e){if(e.intValue!==void 0){let t=e.intValue;return t>=BigInt(-(2**53-1))&&t<=BigInt(2**53-1)?Number(t):t}if(e.floatValue!==void 0)return e.floatValue;if(e.complexValue!==void 0)return e.complexValue;throw Error(`internal: NumberNode has none of intValue/floatValue/complexValue — parser invariant violated`)}function Jd(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function Yd(e){if(typeof e==`number`)return e;if(typeof e==`bigint`)return Number(e);if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isNaN(t)?0:t}return typeof e==`boolean`?+!!e:0}function Xd(e){if(e===``)return null;let t=1,n=e;return n[0]===`+`?n=n.slice(1):n[0]===`-`&&(t=-1,n=n.slice(1)),n===``?null:/^0x[0-9a-fA-F]+$/i.test(n)?{sign:t,digits:n.slice(2),base:16}:/^0b[01]+$/i.test(n)?{sign:t,digits:n.slice(2),base:2}:/^0o[0-7]+$/i.test(n)?{sign:t,digits:n.slice(2),base:8}:n===`0`?{sign:t,digits:`0`,base:10}:n[0]===`0`?/^0[0-7]+$/.test(n)?{sign:t,digits:n.slice(1),base:8}:null:/^[0-9]+$/.test(n)?{sign:t,digits:n,base:10}:null}function Zd(e){if(typeof e==`number`){let t=Math.trunc(e);return Number.isSafeInteger(t)?t:0}if(typeof e==`bigint`){let t=Number(e);return Number.isSafeInteger(t)?t:0}if(typeof e==`string`){let t=Xd(e);if(t===null)return 0;let n=t.sign*Number.parseInt(t.digits,t.base);return Number.isSafeInteger(n)?n:0}return typeof e==`boolean`?+!!e:0}function Qd(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=Xd(e);if(t===null)return 0n;let n=t.base===16?`0x`:t.base===2?`0b`:t.base===8?`0o`:``,r=BigInt(n+t.digits);return t.sign===-1?-r:r}return typeof e==`boolean`&&e?1n:0n}function $d(e){if(!/^[+-]?[0-7]+$/.test(e))return 0;let t=e[0]===`-`?-1:1,n=e[0]===`+`||e[0]===`-`?e.slice(1):e,r=t*Number.parseInt(n,8);return Number.isSafeInteger(r)?r:0}function ef(e){return JSON.stringify(e)??`null`}function tf(){return{atoi:{fn:e=>Jd(e),argTypes:[`string`],returnType:`int`},int:{fn:e=>Zd(e),argTypes:[`value`],returnType:`int`},int64:{fn:e=>Qd(e),argTypes:[`value`]},float64:{fn:e=>Yd(e),argTypes:[`value`],returnType:`float`},toDecimal:{fn:e=>$d(e),argTypes:[`string`],returnType:`int`},toRawJson:{fn:e=>ef(e),argTypes:[`serializable`],returnType:`string`}}}const nf={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function rf(e){if(e===`0`)return 0;let t=!1,n=e;if(n.startsWith(`-`)?(t=!0,n=n.slice(1)):n.startsWith(`+`)&&(n=n.slice(1)),!n)return NaN;let r=0,i=/^(\d+(?:\.\d+)?)(ns|µs|us|ms|[smh])/;for(;n.length>0;){let e=i.exec(n);if(!e)return NaN;let t=parseFloat(e[1]??`0`),a=e[2];r+=t*nf[a],n=n.slice(e[0].length)}return t?-r:r}function af(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<nf.us?`${Math.floor(n)}ns`:n<nf.ms?of(n,nf.us,3,`µs`):n<nf.s?of(n,nf.ms,6,`ms`):sf(n),t?`-${r}`:r}function of(e,t,n,r){let i=Math.floor(e/t),a=Math.round(e%t);return a===0?`${i}${r}`:`${i}.${String(a).padStart(n,`0`).replace(/0+$/,``)}${r}`}function sf(e){let t=Math.floor(e/nf.h);e-=t*nf.h;let n=Math.floor(e/nf.m);e-=n*nf.m;let r=Math.floor(e/nf.s),i=e-r*nf.s,a=i===0?`${r}s`:`${r}.${String(Math.round(i)).padStart(9,`0`).replace(/0+$/,``)}s`;return t>0?`${t}h${n}m${a}`:n>0?`${n}m${a}`:a}function cf(e){return e*nf.s}function lf(e){if(e instanceof Date)return e;if(typeof e==`bigint`)return new Date(Number(e)*1e3);if(typeof e==`number`)return new Date(e*1e3);if(typeof e==`string`){let t=new Date(e);if(!Number.isNaN(t.getTime()))return t;throw Error(`sprig: cannot parse date value ${JSON.stringify(e)}`)}throw Error(`sprig: unsupported date type: ${typeof e}`)}function uf(e,t){let n=t().getTime()-lf(e).getTime();return af(Math.round(n/1e3)*1e9)}const df=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],ff=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],pf=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],mf=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function hf(e){return e<10?`0${e}`:String(e)}function gf(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function _f(e){return e<10?` ${e}`:String(e)}function vf(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${hf(Math.floor(n/60))}${hf(n%60)}`}function yf(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${hf(Math.floor(n/60))}:${hf(n%60)}`}function bf(e){return`${e>=0?`+`:`-`}${hf(Math.floor(Math.abs(e)/60))}`}function xf(e){return e===0?`Z`:vf(e)}function Sf(e){return e===0?`Z`:yf(e)}function Cf(e){return e===0?`Z`:bf(e)}function wf(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const Tf=[[`.000000000`,e=>`.${wf(e.ms,9,!1)}`],[`.999999999`,e=>{let t=wf(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${wf(e.ms,6,!1)}`],[`.999999`,e=>{let t=wf(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${gf(e.ms)}`],[`.999`,e=>{let t=gf(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>df[e.month-1]??`January`],[`Monday`,e=>pf[e.weekday]??`Monday`],[`Z07:00`,e=>Sf(e.offsetMinutes)],[`-07:00`,e=>yf(e.offsetMinutes)],[`Z0700`,e=>xf(e.offsetMinutes)],[`-0700`,e=>vf(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>ff[e.month-1]??`Jan`],[`Mon`,e=>mf[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>bf(e.offsetMinutes)],[`Z07`,e=>Cf(e.offsetMinutes)],[`15`,e=>hf(e.hour)],[`01`,e=>hf(e.month)],[`02`,e=>hf(e.day)],[`_2`,e=>_f(e.day)],[`03`,e=>hf(e.hour12)],[`04`,e=>hf(e.minute)],[`05`,e=>hf(e.second)],[`06`,e=>hf(e.year%100)],[`PM`,e=>e.hour>=12?`PM`:`AM`],[`pm`,e=>e.hour>=12?`pm`:`am`],[`1`,e=>String(e.month)],[`2`,e=>String(e.day)],[`3`,e=>String(e.hour12)],[`4`,e=>String(e.minute)],[`5`,e=>String(e.second)]];function Ef(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of Tf)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const Df={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function Of(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const kf=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function Af(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=Of(new Intl.DateTimeFormat(`en-US`,{...Df,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=Of(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=jf(Of(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=kf.indexOf(r.get(`weekday`)??`Sunday`);return{year:parseInt(r.get(`year`)??`2000`,10),month:parseInt(r.get(`month`)??`1`,10),day:parseInt(r.get(`day`)??`1`,10),weekday:s===-1?0:s,hour:i,hour12:i%12||12,minute:parseInt(r.get(`minute`)??`0`,10),second:parseInt(r.get(`second`)??`0`,10),ms:e.getUTCMilliseconds(),tzAbbr:a,offsetMinutes:o}}function jf(e){if(e===`GMT`||e===`UTC`)return 0;let t=e.match(/^GMT([+-])(\d{1,2})(?::(\d{2}))?$/);if(!t)return 0;let n=t[1]===`+`?1:-1,r=parseInt(t[2]??`0`,10),i=parseInt(t[3]??`0`,10);return n*(r*60+i)}function Mf(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function Nf(e,t){return Ef(e,Af(lf(t),Mf()))}function Pf(e,t,n){return Ef(e,Af(lf(t),n))}function Ff(e,t){let n=lf(t),r=rf(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function If(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:af(cf(t))}return typeof e==`bigint`?af(cf(Number(e))):typeof e==`number`?af(cf(e)):`0s`}const Lf=36e11*24*365,Rf=36e11*24*30,zf=36e11*24,Bf=36e11,Vf=6e10,Hf=1e9;function Uf(e){let t=rf(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>Lf?`${Math.floor(n/Lf)}y`:n>Rf?`${Math.floor(n/Rf)}mo`:n>zf?`${Math.floor(n/zf)}d`:n>Bf?`${Math.floor(n/Bf)}h`:n>Vf?`${Math.floor(n/Vf)}m`:n>Hf?`${Math.floor(n/Hf)}s`:`0s`}function Wf(e){let t=Af(lf(e),Mf());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function Gf(e,t){let n=Af(lf(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function Kf(e){return e()}const qf=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Jf=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Yf(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function Xf(e,t,n){return[e.slice(t,t+n),t+n]}function Zf(e,t,n,r){let i=t;for(;i<e.length&&i-t<r&&e.charCodeAt(i)>=48&&e.charCodeAt(i)<=57;)i++;if(i-t<n)throw Error(`sprig toDate: expected ${n}-${r} digits at pos ${t}`);return[parseInt(e.slice(t,i),10),i]}function Qf(e,t){for(let[n,r]of qf.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function $f(e,t){for(let[n,r]of Jf.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function ep(e,t){for(let n of[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`])if(e.startsWith(n,t))return t+n.length;throw Error(`sprig toDate: expected weekday name at pos ${t}`)}function tp(e,t){for(let n of[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`])if(e.startsWith(n,t))return t+n.length;throw Error(`sprig toDate: expected short weekday name at pos ${t}`)}function np(e,t){if(e[t]===` `){let[n,r]=Zf(e,t+1,1,1);return[n,r]}return Zf(e,t,1,2)}function rp(e,t,n){let r=e[t]===`+`?1:e[t]===`-`?-1:0;if(r===0)throw Error(`sprig toDate: expected +/- at pos ${t}`);let i=t+1,[a,o]=Zf(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=Zf(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=Zf(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function ip(e,t,n,r){if(e[t]===`Z`)return[0,t+1];if(r){let n=e[t]===`+`?1:e[t]===`-`?-1:0;if(n===0)throw Error(`sprig toDate: expected Z or +/- at pos ${t}`);let[r,i]=Zf(e,t+1,2,2);return[n*r*60,i]}return rp(e,t,n)}function ap(e,t){let n=t;for(;n<e.length&&e.charCodeAt(n)>=65&&e.charCodeAt(n)<=90;)n++;if(n===t)throw Error(`sprig toDate: expected timezone abbreviation at pos ${t}`);return n}function op(e,t,n){let[r,i]=Xf(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function sp(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=Qf(t,n);return i.month=e,[r,i]}case`Monday`:return[ep(t,n),i];case`Jan`:{let[e,r]=$f(t,n);return i.month=e,[r,i]}case`Mon`:return[tp(t,n),i];case`2006`:{let[e,r]=Zf(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=Zf(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=Zf(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=Zf(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=np(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=Zf(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=Zf(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=Zf(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=Zf(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=Zf(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=Zf(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=Zf(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=Zf(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=Zf(t,n,1,2);return i.second=e,[r,i]}case`PM`:case`pm`:{let e=t.slice(n,n+2).toLowerCase();if(e!==`am`&&e!==`pm`)throw Error(`sprig toDate: expected AM/PM at pos ${n}, got ${JSON.stringify(t.slice(n,n+2))}`);return i.isPM=e===`pm`,i.hour12=!0,[n+2,i]}case`MST`:return[ap(t,n),i];case`-0700`:{let[e,r]=rp(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=rp(t,n,!0);return i.offsetMinutes=e,[r,i]}case`-07`:{let e=t[n]===`+`?1:t[n]===`-`?-1:0;if(e===0)throw Error(`sprig toDate: expected +/- at pos ${n}`);let[r,a]=Zf(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=ip(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=ip(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=ip(t,n,!1,!0);return i.offsetMinutes=e,[r,i]}case`.000000000`:{if(t[n]!==`.`)throw Error(`sprig toDate: expected . at pos ${n}`);let[e,r]=op(t,n+1,9);return i.ms=e,[r,i]}case`.999999999`:{if(t[n]!==`.`)return[n,i];let e=n+1,r=e;for(;r<t.length&&t.charCodeAt(r)>=48&&t.charCodeAt(r)<=57;)r++;let a=t.slice(e,r).padEnd(9,`0`);return i.ms=Math.round(parseInt(a,10)/1e6),[r,i]}case`.000000`:{if(t[n]!==`.`)throw Error(`sprig toDate: expected . at pos ${n}`);let[e,r]=op(t,n+1,6);return i.ms=e,[r,i]}case`.999999`:{if(t[n]!==`.`)return[n,i];let e=n+1,r=e;for(;r<t.length&&t.charCodeAt(r)>=48&&t.charCodeAt(r)<=57;)r++;let a=t.slice(e,r).padEnd(9,`0`);return i.ms=Math.round(parseInt(a,10)/1e6),[r,i]}case`.000`:{if(t[n]!==`.`)throw Error(`sprig toDate: expected . at pos ${n}`);let[e,r]=op(t,n+1,3);return i.ms=e,[r,i]}case`.999`:{if(t[n]!==`.`)return[n,i];let e=n+1,r=e;for(;r<t.length&&t.charCodeAt(r)>=48&&t.charCodeAt(r)<=57;)r++;let a=t.slice(e,r).padEnd(3,`0`);return i.ms=parseInt(a,10),[r,i]}}throw Error(`sprig toDate: unhandled token ${e}`)}const cp=`.000000000,.999999999,.000000,.999999,.000,.999,January,Monday,Z07:00,-07:00,Z0700,-0700,2006,Jan,Mon,MST,-07,Z07,15,01,02,_2,03,04,05,06,PM,pm,1,2,3,4,5`.split(`,`);function lp(e,t){let n=0,r=0,i=Yf();for(;n<e.length;){let a=!1;for(let o of cp)if(e.startsWith(o,n)){let[e,s]=sp(o,t,r,i);r=e,i=s,n+=o.length,a=!0;break}if(!a){let i=e.charAt(n);if(t[r]!==i)throw Error(`sprig toDate: expected ${JSON.stringify(i)} at pos ${r}, got ${JSON.stringify(t[r])}`);n++,r++}}if(r!==t.length)throw Error(`sprig toDate: extra characters at pos ${r}: ${JSON.stringify(t.slice(r))}`);if(i.hour12){let e=i.hour%12;i.hour=i.isPM?e+12:e}let a=Date.UTC(i.year,i.month-1,i.day,i.hour,i.minute,i.second,i.ms)-i.offsetMinutes*60*1e3;return new Date(a)}function up(e,t){return lp(e,t)}function dp(e){return String(Math.floor(lf(e).getTime()/1e3))}function fp(e=()=>new Date){return{now:{fn:()=>Kf(e),argTypes:[]},date:{fn:(e,t)=>Nf(e,t),argTypes:[`string`,`value`]},dateInZone:{fn:(e,t,n)=>Pf(e,t,n),argTypes:[`string`,`value`,`string`]},dateModify:{fn:(e,t)=>Ff(e,t),argTypes:[`string`,`value`]},htmlDate:{fn:e=>Wf(e),argTypes:[`value`]},htmlDateInZone:{fn:(e,t)=>Gf(e,t),argTypes:[`value`,`string`]},duration:{fn:e=>If(e),argTypes:[`value`]},durationRound:{fn:e=>Uf(e),argTypes:[`value`]},toDate:{fn:(e,t)=>up(e,t),argTypes:[`string`,`string`]},ago:{fn:t=>uf(t,e),argTypes:[`value`]},unixEpoch:{fn:e=>dp(e),argTypes:[`value`]}}}function pp(e){return e==null||e===!1?!0:typeof e==`number`?e===0||Number.isNaN(e):typeof e==`bigint`?e===0n:typeof e==`string`||Array.isArray(e)?e.length===0:e instanceof Map||e instanceof Set?e.size===0:typeof e==`object`?Object.keys(e).length===0:!1}function mp(...e){for(let t of e)if(!pp(t))return t}function hp(e,t){return pp(t)?e:t}function gp(e){return JSON.parse(e)}function _p(e,t,n){return Uu(n)?e:t}function vp(e){return JSON.stringify(e)??`null`}function yp(e){return JSON.stringify(e,null,2)??`null`}function bp(){return{default:{fn:(e,t)=>hp(e,t),argTypes:[`value`,`truthy`]},empty:{fn:e=>pp(e),argTypes:[`truthy`]},coalesce:{fn:(...e)=>mp(...e),argTypes:[`truthy`]},ternary:{fn:(e,t,n)=>_p(e,t,n),argTypes:[`value`,`value`,`truthy`]},fromJson:{fn:e=>gp(e),argTypes:[`string`]},toJson:{fn:e=>vp(e),argTypes:[`serializable`],returnType:`string`},toPrettyJson:{fn:e=>yp(e),argTypes:[`serializable`],returnType:`string`}}}function xp(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function Sp(e){if(e.kind!==`call`||e.name!==`dict`||e.args.length%2!=0)return null;let t=[];for(let[n,r]of e.args.entries()){if(r.kind!==`literal`||n%2==0&&typeof r.value!=`string`)return null;t.push(r.value)}return xp(...t)}function Cp(e,t){return e[t]}function wp(e,t){return t in e}function Tp(e){return Object.keys(e)}function Ep(e,...t){let n={...e};for(let e of t)for(let[t,r]of Object.entries(e))t in n||(n[t]=r);return n}function Dp(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function Op(e,...t){let n=new Set(t),r={};for(let[t,i]of Object.entries(e))n.has(t)||(r[t]=i);return r}function kp(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ap(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function jp(e,t,n){return e[t]=n,e}function Mp(e,t){return delete e[t],e}function Np(e){return Object.values(e)}function Pp(){return{dict:{fn:(...e)=>xp(...e),argTypes:[`string`,`value`],argTypePattern:`alternating`},get:{fn:(e,t)=>Cp(e,t),argTypes:[`dict`,`string`]},set:{fn:(e,t,n)=>jp(e,t,n),argTypes:[`dict`,`string`,`value`]},unset:{fn:(e,t)=>Mp(e,t),argTypes:[`dict`,`string`]},keys:{fn:e=>Tp(e),argTypes:[`dict`]},values:{fn:e=>Np(e),argTypes:[`dict`]},pluck:{fn:(e,...t)=>Ap(e,...t),argTypes:[`string`,`dict`]},pick:{fn:(e,...t)=>kp(e,...t),argTypes:[`dict`,`string`]},omit:{fn:(e,...t)=>Op(e,...t),argTypes:[`dict`,`string`]},hasKey:{fn:(e,t)=>wp(e,t),argTypes:[`dict`,`string`]},merge:{fn:(e,...t)=>Ep(e,...t),argTypes:[`dict`]},mergeOverwrite:{fn:(e,...t)=>Dp(e,...t),argTypes:[`dict`]}}}new TextEncoder,new Map(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`).map((e,t)=>[e,t])),new TextDecoder,new TextEncoder,new TextDecoder,new TextEncoder;function Fp(...e){for(let t of e)if(pp(t))return!1;return!0}function Ip(...e){for(let t of e)if(!pp(t))return!0;return!1}function Lp(e,t){return[...e,t]}function Rp(e,t){let n=Math.max(1,e),r=[];for(let e=0;e<t.length;e+=n)r.push(t.slice(e,e+n));return r}function zp(e){return e.filter(e=>!pp(e))}function Bp(...e){let t=[];for(let n of e)t.push(...n);return t}const Vp={line:0,column:0,offset:0};function Hp(e,t,n,r){return new Zl(e,t,n,r,Vp)}function Up(...e){if(e.length<3)throw Hp(`dig`,0,`at least 3 arguments (...keys, default, dict)`,`${e.length} argument${e.length===1?``:`s`}`);let t=e[e.length-1],n=e[e.length-2],r=e.slice(0,-2);if(!Gp(t))throw Hp(`dig`,e.length-1,`dict`,Kp(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw Hp(`dig`,e,`string`,Kp(r[e]));return Wp(t,n,r,e.length)}function Wp(e,t,n,r){let i=n[0];if(!Object.hasOwn(e,i))return t;let a=e[i];if(n.length===1)return a;if(!Gp(a))throw Hp(`dig`,r-1,`dict at intermediate key`,Kp(a));return Wp(a,t,n.slice(1),r)}function Gp(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function Kp(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function qp(e){return e[0]}function Jp(e,t){return t.some(t=>zu(t,e))}function Yp(e){return e.slice(0,-1)}function Xp(e){return e[e.length-1]}function Zp(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Qp(...e){return e}function $p(e,t){return[t,...e]}function em(e){return e.slice(1)}function tm(e){return[...e].reverse()}function nm(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function rm(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function im(e){let t=[];for(let n of e)t.some(e=>zu(e,n))||t.push(n);return t}function am(e,...t){return e.filter(e=>!t.some(t=>zu(t,e)))}function om(){return{list:{fn:(...e)=>Qp(...e),argTypes:[`value`]},first:{fn:e=>qp(e),argTypes:[`list`]},last:{fn:e=>Xp(e),argTypes:[`list`]},rest:{fn:e=>em(e),argTypes:[`list`]},initial:{fn:e=>Yp(e),argTypes:[`list`]},len:{fn:e=>Zp(e),argTypes:[`sized`]},reverse:{fn:e=>tm(e),argTypes:[`list`]},uniq:{fn:e=>im(e),argTypes:[`list`]},without:{fn:(e,...t)=>am(e,...t),argTypes:[`list`,`value`]},has:{fn:(e,t)=>Jp(e,t),argTypes:[`value`,`list`]},compact:{fn:e=>zp(e),argTypes:[`list`]},slice:{fn:(e,t,n)=>nm(e,t,n),argTypes:[`list`,`int`,`int`]},concat:{fn:(...e)=>Bp(...e),argTypes:[`list`]},chunk:{fn:(e,t)=>Rp(e,t),argTypes:[`int`,`list`]},prepend:{fn:(e,t)=>$p(e,t),argTypes:[`list`,`value`]},append:{fn:(e,t)=>Lp(e,t),argTypes:[`list`,`value`]},sortAlpha:{fn:e=>rm(e),argTypes:[`list`],returnType:`list`},push:{fn:(e,t)=>Lp(e,t),argTypes:[`list`,`value`]},tuple:{fn:(...e)=>Qp(...e),argTypes:[`value`]},dig:{fn:(...e)=>Up(...e),argTypes:[`value`]},all:{fn:(...e)=>Fp(...e),argTypes:[`truthy`],returnType:`bool`},any:{fn:(...e)=>Ip(...e),argTypes:[`truthy`],returnType:`bool`}}}function sm(...e){return e.reduce((e,t)=>e+t,0)}function cm(e){return e+1}function lm(e){return e+1}function um(...e){return e.reduce((e,t)=>e+t,0)}function dm(e){return Math.ceil(e)}function fm(e,t){return Math.trunc(e/t)}function pm(e,t){return e/t}function mm(e){return Math.floor(e)}function hm(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function gm(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function _m(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function vm(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function ym(e,t){return e%t}function bm(...e){return e.reduce((e,t)=>e*t,1)}function xm(...e){return e.reduce((e,t)=>e*t,1)}function Sm(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function Cm(e,t,n){let r=[];if(t<e){if(n>=0)return r;for(let i=e;i>t;i+=n)r.push(i);return r}if(n<=0)return r;for(let i=e;i<t;i+=n)r.push(i);return r}function wm(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),Cm(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return Cm(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:Cm(n,i+t,r).join(` `)}default:return``}}function Tm(e,t){return e-t}function Em(e,t){return e-t}function Dm(e){return Cm(0,e,e<0?-1:1)}function Om(){return{add:{fn:(...e)=>sm(...e),argTypes:[`int`]},sub:{fn:(e,t)=>Tm(e,t),argTypes:[`int`,`int`]},mul:{fn:(...e)=>bm(...e),argTypes:[`int`]},div:{fn:(e,t)=>fm(e,t),argTypes:[`int`,`int`]},mod:{fn:(e,t)=>ym(e,t),argTypes:[`int`,`int`]},min:{fn:(...e)=>_m(...e),argTypes:[`int`]},max:{fn:(...e)=>hm(...e),argTypes:[`int`]},floor:{fn:e=>mm(e),argTypes:[`float`]},ceil:{fn:e=>dm(e),argTypes:[`float`]},round:{fn:(e,t)=>Sm(e,t),argTypes:[`float`,`int`]},addf:{fn:(...e)=>um(...e),argTypes:[`float`]},subf:{fn:(e,t)=>Em(e,t),argTypes:[`float`,`float`]},mulf:{fn:(...e)=>xm(...e),argTypes:[`float`]},divf:{fn:(e,t)=>pm(e,t),argTypes:[`float`,`float`]},add1:{fn:e=>cm(e),argTypes:[`int`]},add1f:{fn:e=>lm(e),argTypes:[`float`]},maxf:{fn:(...e)=>gm(...e),argTypes:[`float`]},minf:{fn:(...e)=>vm(...e),argTypes:[`float`]},biggest:{fn:(...e)=>hm(...e),argTypes:[`int`]},seq:{fn:(...e)=>wm(...e),argTypes:[`int`],returnType:`string`},until:{fn:e=>Dm(e),argTypes:[`int`],returnType:`list`},untilStep:{fn:(e,t,n)=>Cm(e,t,n),argTypes:[`int`,`int`,`int`],returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function km(e,t){return t.length<=e||e<4?t:`${t.slice(0,e-3)}...`}function Am(e,t,n){return t<7||n.length<t||e<0||e>n.length-t+1?n:`...${n.slice(e,e+t-6)}...`}const q={Invalid:0,Number:1,UpperCase:2,Alphabet:3,Connector:4,Punct:5,Other:6},jm=/^[-_\s]$/,Mm=/^\p{P}$/u,Nm=/^\p{L}$/u,Pm=/^\p{Lu}$/u,Fm=/^\p{N}$/u;function Im(e){return e!==void 0&&jm.test(e)}function Lm(e){return e!==void 0&&Nm.test(e)}function Rm(e){return e!==void 0&&Pm.test(e)}function zm(e){return e!==void 0&&Fm.test(e)}function Bm(e){return e!==void 0&&Mm.test(e)}function Vm(e,t){if(t>=e.length)return{word:{wt:q.Invalid,text:``},next:t};let n=e[t],r=t+1;if(Im(n)){for(;r<e.length&&Im(e[r]);)r++;return{word:{wt:q.Connector,text:e.slice(t,r).join(``)},next:r}}if(Bm(n)){for(;r<e.length&&Bm(e[r]);)r++;return{word:{wt:q.Punct,text:e.slice(t,r).join(``)},next:r}}if(Rm(n)){if(r>=e.length)return{word:{wt:q.UpperCase,text:n},next:r};if(Rm(e[r])){let n=r;for(;n<e.length&&Rm(e[n]);)n++;return n<e.length&&Lm(e[n])?{word:{wt:q.UpperCase,text:e.slice(t,n-1).join(``)},next:n-1}:{word:{wt:q.UpperCase,text:e.slice(t,n).join(``)},next:n}}if(Lm(e[r])){let n=r+1;for(;n<e.length&&Lm(e[n])&&!Rm(e[n]);)n++;return{word:{wt:q.UpperCase,text:e.slice(t,n).join(``)},next:n}}return{word:{wt:q.UpperCase,text:n},next:r}}if(Lm(n)){for(;r<e.length&&Lm(e[r])&&!Rm(e[r]);)r++;return{word:{wt:q.Alphabet,text:e.slice(t,r).join(``)},next:r}}if(zm(n)){for(;r<e.length&&zm(e[r]);)r++;return{word:{wt:q.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!Im(e[r])&&!Lm(e[r])&&!zm(e[r])&&!Bm(e[r]);)r++;return{word:{wt:q.Other,text:e.slice(t,r).join(``)},next:r}}function Hm(e,t,n){if(t.wt!==q.UpperCase&&t.wt!==q.Connector){e.push(t.text);return}for(let r of t.text)Im(r)?e.push(n):Rm(r)?e.push(r.toLowerCase()):e.push(r)}function Um(e,t){if(e.length===0)return``;let n=Array.from(e),r=[],{word:i,next:a}=Vm(n,0);for(;a<n.length;){i.wt!==q.Connector&&Hm(r,i,t);let e=i,o=i;if({word:i,next:a}=Vm(n,a),e.wt===q.Number){for(;i.wt===q.Alphabet||i.wt===q.Number;)Hm(r,i,t),{word:i,next:a}=Vm(n,a);i.wt!==q.Invalid&&i.wt!==q.Punct&&i.wt!==q.Connector&&r.push(t);continue}if(e.wt===q.Connector){Hm(r,o,t);continue}if(e.wt===q.Punct)continue;if(i.wt!==q.Number){i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}if(a>=n.length)continue;let s=i;if({word:i,next:a}=Vm(n,a),i.wt!==q.Alphabet){Hm(r,s,t),i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}for(r.push(t),Hm(r,s,t);i.wt===q.Alphabet||i.wt===q.Number;)Hm(r,i,t),{word:i,next:a}=Vm(n,a);i.wt!==q.Invalid&&i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t)}return Hm(r,i,t),r.join(``).toLowerCase()}function Wm(e){if(e.length===0)return``;let t=Array.from(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!Im(i)){i=i.toUpperCase();break}n.push(i)}if(r>=t.length)return t.length>0&&n.push(i),n.join(``);for(;r<t.length;){let e=i;if(i=t[r],r++,Im(i)&&Im(e)){n.push(e);continue}Im(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function Gm(e){return Wm(e)}function Km(...e){return e.join(` `)}function qm(e,t){return t.includes(e)}function Jm(e,t){return t.startsWith(e)}function Ym(e,t){return t.endsWith(e)}function Xm(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
|
|
49
49
|
`).map(e=>n+e).join(`
|
|
50
|
-
`)}function
|
|
51
|
-
`,t)}function
|
|
52
|
-
`)){let n=``;for(let i of t.split(/\s+/))i.length!==0&&(n.length===0?n=i:n.length+1+i.length<=e?n+=` ${i}`:(r.push(n),n=i));n.length>0&&r.push(n)}return r.join(t)}function Th(e,t,n){return wh(e,t,n)}function Eh(){return{abbrev:{fn:(e,t)=>Tm(e,t),argTypes:[`int`,`string`]},abbrevboth:{fn:(e,t,n)=>Em(e,t,n),argTypes:[`int`,`int`,`string`]},camelcase:{fn:e=>Vm(e),argTypes:[`string`],returnType:`string`},cat:{fn:(...e)=>Hm(...e),argTypes:[`string`]},contains:{fn:(e,t)=>Um(e,t),argTypes:[`string`,`string`]},hasPrefix:{fn:(e,t)=>Wm(e,t),argTypes:[`string`,`string`]},hasSuffix:{fn:(e,t)=>Gm(e,t),argTypes:[`string`,`string`]},indent:{fn:(e,t)=>Km(e,t),argTypes:[`int`,`string`]},initials:{fn:e=>qm(e),argTypes:[`string`]},join:{fn:(e,t)=>Jm(e,t),argTypes:[`string`,`list`]},kebabcase:{fn:e=>Xm(e),argTypes:[`string`],returnType:`string`},lower:{fn:e=>Zm(e),argTypes:[`string`]},nindent:{fn:(e,t)=>Qm(e,t),argTypes:[`int`,`string`]},nospace:{fn:e=>$m(e),argTypes:[`string`],returnType:`string`},plural:{fn:(e,t,n)=>eh(e,t,n),argTypes:[`string`,`string`,`int`],returnType:`string`},quote:{fn:(...e)=>th(...e),argTypes:[`string`]},regexQuoteMeta:{fn:e=>nh(e),argTypes:[`string`],returnType:`string`},repeat:{fn:(e,t)=>rh(e,t),argTypes:[`int`,`string`]},replace:{fn:(e,t,n)=>ih(e,t,n),argTypes:[`string`,`string`,`string`]},snakecase:{fn:e=>ah(e),argTypes:[`string`],returnType:`string`},split:{fn:(e,t)=>oh(e,t),argTypes:[`string`,`string`]},splitList:{fn:(e,t)=>sh(e,t),argTypes:[`string`,`string`]},splitn:{fn:(e,t,n)=>ch(e,t,n),argTypes:[`string`,`int`,`string`],returnType:`dict`},squote:{fn:(...e)=>uh(...e),argTypes:[`string`]},substr:{fn:(e,t,n)=>dh(e,t,n),argTypes:[`int`,`int`,`string`]},swapcase:{fn:e=>fh(e),argTypes:[`string`],returnType:`string`},title:{fn:e=>hh(e),argTypes:[`string`]},trim:{fn:e=>gh(e),argTypes:[`string`]},trimAll:{fn:(e,t)=>_h(e,t),argTypes:[`string`,`string`]},trimPrefix:{fn:(e,t)=>vh(e,t),argTypes:[`string`,`string`]},trimSuffix:{fn:(e,t)=>yh(e,t),argTypes:[`string`,`string`]},trunc:{fn:(e,t)=>bh(e,t),argTypes:[`int`,`string`]},untitle:{fn:e=>xh(e),argTypes:[`string`]},upper:{fn:e=>Sh(e),argTypes:[`string`]},wrap:{fn:(e,t)=>Ch(e,t),argTypes:[`int`,`string`]},wrapWith:{fn:(e,t,n)=>Th(e,t,n),argTypes:[`int`,`string`,`string`]}}}function Dh(e){return e}function Oh(e,t,n){return n===void 0?mc+fc(e)+`.`+fc(t):kh(n)}function kh(e){return mc+fc(e)}function Ah(e,t){return e+`.`+t}function jh(e){return e+`.page`}const Mh=[`closeOnPick`,`paged`,`key`,`distribution`],Nh=e=>Mh.includes(e),Ph=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${Fc.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function Fh(e){for(let t of Object.keys(e))if(!Nh(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${Ph}`);let t=(t,n)=>{let r=e[t];if(r===void 0)return n;if(typeof r!=`boolean`)throw Error(`{{ menu }} option "${t}" must be a boolean, got ${JSON.stringify(r)} (e.g. (dict "${t}" ${String(!n)}))`);return r},n=e.key;if(n!==void 0&&typeof n!=`string`)throw Error(`{{ menu }} option "key" must be a string naming the accordion group, got ${JSON.stringify(n)}`);if(n===``)throw Error(`{{ menu }} has an empty accordion key — a shared key must be a non-empty name (or omit "key" for an independent menu)`);let r=e.distribution;if(r!==void 0&&!Ic(r))throw Error(`{{ menu }} option "distribution" must be one of: ${Fc.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:Rc(r)}}const Ih=`menu`,Lh=`a menu binds its trigger text the way a cycle action binds a display — write {{ menu "applyTheme" "▸" "▾" }} (one per state) or {{ menu "insertHere" "+" }} (one static display for both), with the rare knobs in ONE trailing dict: {{ menu "applyTheme" "▸" "▾" (dict "closeOnPick" true "paged" false "key" "pickers") }} (defaults: closeOnPick false, paged true, no key). The renderer no longer appends ▸/▾ of its own (candybar-settings-ui-aok.4), and the older positional tail ("pageAction" closeOnPick paged "key") was removed — the page cursor is synthesized from the menu's identity`,Rh=e=>e.kind===`call`&&e.name===`dict`,zh=e=>e.kind===`literal`&&typeof e.value!=`object`,Bh=e=>es(``,e,2)===void 0;function Vh(e){let t=e=>({kind:`issue`,message:e}),[n,...r]=e.argExprs;if(n===void 0)return t(`with no arguments — it takes an apply-action name and its trigger text (e.g. {{ menu "applyTheme" "▸" "▾" }})`);if(n.kind!==`literal`||typeof n.value!=`string`)return t(`whose apply action is not a string literal — a menu's identity is its apply-action name, which must be a literal so it can be gated at load (e.g. {{ menu "applyTheme" "▸" "▾" }})`);let i=r[r.length-1],a=i!==void 0&&Rh(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(Rh))return t(`whose options (dict …) is not its last argument — ${Lh}`);if(i!==void 0&&a===void 0&&!zh(i)&&Bh(o.length-1))return t(`whose last argument is neither a literal nor a literal (dict …) — the renderer tells a display from the options dict by the value it evaluates to, so this call could be read as ${o.length} displays or as ${o.length-1} plus options, and both are legal. Make the options explicit as a trailing (dict …) — {{ menu "${n.value}" (printf "…") (printf "…") (dict) }} binds dynamic displays unambiguously — or bind the trigger text as literals`);let s=es(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${Lh}`);let c=a===void 0?{}:vp(a);if(c===null)return t(`whose options (dict …) is not fully literal — every option value must be a literal so the menu can be gated at load (a dynamic entry like (dict "key" .x) cannot)`);let l;try{l=Fh(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=yc(u);if(e!==void 0)return t(`whose accordion key "${u}" lands in the reserved "${e}" namespace — a key is collapsed to an identifier (${JSON.stringify(u)} becomes "${kh(u)}"), so it would share one open-state key with the synthesized accordion that owns that namespace instead of grouping only your own menus. Name the group without the reserved prefix`)}return{kind:`ok`,apply:n.value,options:l}}function Hh(e){let t=Od({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===Ih).map(Vh)}catch{return`parse-failed`}}function Uh(e){let t=Od({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(Ih)}catch{return!1}}function Wh(e,t,n){e.issues.push({path:t,message:n,line:W(e.source,[`root`])})}function Gh(e,t){bc(e,t,mc,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))Uh(r)&&e.issues.push({path:`helpers.${n}`,message:`helper "${n}" uses {{ menu }}, but a menu must live directly in a segment template — its identity is derived from the segment it sits in, which a shared helper does not have. Inline the {{ menu }} call into each segment that needs it.`,line:W(e.source,[`helpers`,n])});let n=t.segments??{};for(let[t,r]of Object.entries(n))for(let n of[`bg`,`fg`,`when`]){let i=r[n];typeof i==`string`&&Uh(i)&&Wh(e,`segments.${t}.${n}`,`segment "${t}" uses {{ menu }} in its "${n}" — a menu is only valid in a segment's "template" (its placement is published only there; "${n}" needs a ${n===`when`?`predicate`:`color`}). Move the {{ menu }} into the template.`)}if(t.root!==void 0)for(let n of no(qo(t.root)))typeof n.when==`string`&&Uh(n.when)&&Wh(e,`root`,`a layout node's "when" predicate uses {{ menu }} — a menu is only valid in a segment's "template", not a node predicate. Move it into a segment.`);let r=new Set,i={},a=new Set,o=new Map;for(let[t,{template:s}]of Object.entries(n)){if(s===void 0||!Uh(s))continue;let n=Hh(s);if(n!==`parse-failed`)for(let s of n){if(s.kind===`issue`){Wh(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${s.message}.`);continue}let{apply:n,options:c}=s;if(n===``){Wh(e,`segments.${t}`,`segment "${t}" has a {{ menu }} with an empty apply-action name — an empty member aliases the absent-state sentinel ("") so the menu would render open before any click. Name the apply action.`);continue}let l=Dh(n);if(l===`closed`){Wh(e,`segments.${t}`,`segment "${t}" has a {{ menu }} whose apply action is named "${Qo}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action.`);continue}let u=Oh(t,n,c.key),d=jh(u),f=c.key===void 0?`ind${t}${n}`:`key${c.key}`,p=[u,d].find(e=>{let t=o.get(e);return t!==void 0&&t!==f});if(p!==void 0){Wh(e,`segments.${t}`,`two {{ menu }} disclosures normalize to the same state key ("${p}") but were declared differently — distinct names that differ only by non-alphanumeric characters (e.g. "a-b" vs "a_b") collapse to one key and would silently share open-state. Rename so they don't collide.`);continue}o.set(u,f),o.set(d,f);let m=Ah(u,l);if(a.has(m)){Wh(e,`segments.${t}`,`two {{ menu }} disclosures resolve to the same identity ("${m}") — ${c.key===void 0?`a segment cannot contain two menus over the same apply action "${n}"`:`menus sharing key "${c.key}" must have distinct apply actions`}.`);continue}a.add(m),r.add(u),i[m]=cs(u,l)}}if(r.size===0)return;let s={};for(let e of r){s[e]=ss(e,Qo);let t=jh(e);s[t]={kind:`state`,key:t,default:`0`},i[t]={set:t,int:!0}}t.variables={...t.variables??{},...s},t.actions={...t.actions??{},...i}}const Kh=`edit.mode`,qh=`edit.toggle`,Jh=`open`,Yh={variable:Kh,key:Kh,member:Jh},Xh=is(Yh);function Zh(e){let t=Od({fromString:e=>e});try{return t.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function Qh(e){if(Object.values(e.actions??{}).some(e=>`do`in e&&e.do.includes(`edit.toggle`)))return!0;for(let t of Object.values(e.segments??{}))for(let e of[t.template,t.bg,t.fg])if(typeof e==`string`&&Zh(e))return!0;return!1}function $h(e,t){if(bc(e,t,hc,`edit mode`),!Qh(t))return;let n={[Kh]:ss(Kh,Qo)},r={[qh]:cs(Kh,Jh)};t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function eg(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function tg(e){let t=e.split(`:`);return t[0]===`remove`&&t.length===2&&t[1]?{op:`remove`,target:t[1]}:t[0]===`insert`&&t.length===4&&t[1]&&t[2]&&(t[3]===`before`||t[3]===`after`)?{op:`insert`,segment:t[1],anchor:t[2],relation:t[3]}:null}function ng(e){let t=new Set;for(let n of no(e))n.kind===`segment`&&t.add(n.name);return t}const rg=`default`,ig={};function ag(e){return[...new Set([rg,...Object.keys(e)])]}function og(e,t,n){return Ni(void 0,e,t,rg,n)}function sg(e,t){let n={[rg]:ig,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${rg}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function cg(e,t){let n=sg(e.presets,t).root??Ho;return{node:Ko(Jo(n,e.root)),path:Yo(n)?`presets.${t}.root`:`root`}}function lg(e,t){return{...e.globals,...sg(e.presets,t).globals}}const ug=/^segments\.([^.]+)\.palette$/,dg=/^presets\.(.+)\.root$/;function fg(e){return`presets.${e}.root`}function pg(e){if(Es(e))return{scope:`globals`,field:e};let t=ug.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=dg.exec(e);return n?{scope:`preset-root`,preset:n[1]}:null}function mg(e){return e.scope===`globals`?[`globals`,e.field]:[`segments`,e.segment,`palette`]}const hg=`open`;function gg(e,t,n,r){let i={variable:e,key:e,member:hg};return r.variables[e]=ss(e,Qo),r.actions[e]=cs(e,hg),r.segments[e]={template:os(e,`(?)`,`✕`),..._g(n)},rs(e,i,{kind:`container`,direction:`horizontal`,children:t.map((t,n)=>{let i=`${e}.${n}`;return r.segments[i]={template:t},{kind:`segment`,name:i}})},`drop`)}function _g(e){let[t,...n]=e;return t===void 0?{}:{when:is(t,...n)}}const vg={help:[`-h`,`--help`],version:[`-V`,`--version`]},yg=[`+ inserts here`,`- removes the left one`,`↺ undoes edits`],bg=[`☐ this session only`,`☑ default for every session`],xg=`
|
|
50
|
+
`)}function Zm(e){let t=new TextEncoder;return e.split(/\s+/).filter(e=>e.length>0).map(e=>String.fromCharCode(...t.encode(e).slice(0,1))).join(``)}function Qm(e,t){let n=[];for(let e of t){if(typeof e==`object`&&e)throw Hp(`join`,2,`list of strings/primitives`,`list element of type ${$m(e)}`);n.push(String(e))}return n.join(e)}function $m(e){return Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:`object`}function eh(e){return Um(e,`-`)}function th(e){return e.toLowerCase()}function nh(e,t){return`\n${Xm(e,t)}`}function rh(e){return e.replace(/\s+/g,``)}function ih(e,t,n){return n===1?e:t}function ah(...e){return e.map(e=>`"${e}"`).join(` `)}function oh(e){return e.replace(/[\\.+*?()|[\]{}^$]/g,`\\$&`)}function sh(e,t){return t.repeat(Math.max(0,e))}function ch(e,t,n){return n.split(e).join(t)}function lh(e){return Um(e,`_`)}function uh(e,t){let n=t.split(e),r={};for(let e=0;e<n.length;e++)r[`_${e}`]=n[e];return r}function dh(e,t){return t.split(e)}function fh(e,t,n){let r=ph(n,e,t),i={};for(let e=0;e<r.length;e++)i[`_${e}`]=r[e]??``;return i}function ph(e,t,n){if(n===0)return[];let r=t===``?Array.from(e):e.split(t);if(n<0||r.length<=n)return r;let i=r.slice(0,n-1),a=r.slice(n-1).join(t);return[...i,a]}function mh(...e){return e.map(e=>`'${e}'`).join(` `)}function hh(e,t,n){let r=t<0||t>n.length?n.length:t,i=Math.min(Math.max(0,e),r);return n.slice(i,r)}function gh(e){let t=``;for(let n of e)_h(n)?t+=n.toLowerCase():vh(n)?t+=n.toUpperCase():t+=n;return t}function _h(e){return e!==e.toLowerCase()&&e===e.toUpperCase()}function vh(e){return e!==e.toUpperCase()&&e===e.toLowerCase()}function yh(e){return e.replace(/\b([a-zA-Z])/g,e=>e.toUpperCase())}function bh(e){return e.trim()}function xh(e,t){if(e.length===0)return t;let n=new Set([...e]),r=0;for(;r<t.length&&n.has(t[r]);)r+=1;let i=t.length;for(;i>r&&n.has(t[i-1]);)--i;return t.slice(r,i)}function Sh(e,t){return t.startsWith(e)?t.slice(e.length):t}function Ch(e,t){return t.endsWith(e)?t.slice(0,t.length-e.length):t}function wh(e,t){if(e<0){let n=-e;return n>=t.length?t:t.slice(t.length-n)}return e>=t.length?t:t.slice(0,e)}function Th(e){return e.replace(/\b([A-Z])/g,e=>e.toLowerCase())}function Eh(e){return e.toUpperCase()}function Dh(e,t){return Oh(e,`
|
|
51
|
+
`,t)}function Oh(e,t,n){if(e<=0)return n;let r=[];for(let t of n.split(`
|
|
52
|
+
`)){let n=``;for(let i of t.split(/\s+/))i.length!==0&&(n.length===0?n=i:n.length+1+i.length<=e?n+=` ${i}`:(r.push(n),n=i));n.length>0&&r.push(n)}return r.join(t)}function kh(e,t,n){return Oh(e,t,n)}function Ah(){return{abbrev:{fn:(e,t)=>km(e,t),argTypes:[`int`,`string`]},abbrevboth:{fn:(e,t,n)=>Am(e,t,n),argTypes:[`int`,`int`,`string`]},camelcase:{fn:e=>Gm(e),argTypes:[`string`],returnType:`string`},cat:{fn:(...e)=>Km(...e),argTypes:[`string`]},contains:{fn:(e,t)=>qm(e,t),argTypes:[`string`,`string`]},hasPrefix:{fn:(e,t)=>Jm(e,t),argTypes:[`string`,`string`]},hasSuffix:{fn:(e,t)=>Ym(e,t),argTypes:[`string`,`string`]},indent:{fn:(e,t)=>Xm(e,t),argTypes:[`int`,`string`]},initials:{fn:e=>Zm(e),argTypes:[`string`]},join:{fn:(e,t)=>Qm(e,t),argTypes:[`string`,`list`]},kebabcase:{fn:e=>eh(e),argTypes:[`string`],returnType:`string`},lower:{fn:e=>th(e),argTypes:[`string`]},nindent:{fn:(e,t)=>nh(e,t),argTypes:[`int`,`string`]},nospace:{fn:e=>rh(e),argTypes:[`string`],returnType:`string`},plural:{fn:(e,t,n)=>ih(e,t,n),argTypes:[`string`,`string`,`int`],returnType:`string`},quote:{fn:(...e)=>ah(...e),argTypes:[`string`]},regexQuoteMeta:{fn:e=>oh(e),argTypes:[`string`],returnType:`string`},repeat:{fn:(e,t)=>sh(e,t),argTypes:[`int`,`string`]},replace:{fn:(e,t,n)=>ch(e,t,n),argTypes:[`string`,`string`,`string`]},snakecase:{fn:e=>lh(e),argTypes:[`string`],returnType:`string`},split:{fn:(e,t)=>uh(e,t),argTypes:[`string`,`string`]},splitList:{fn:(e,t)=>dh(e,t),argTypes:[`string`,`string`]},splitn:{fn:(e,t,n)=>fh(e,t,n),argTypes:[`string`,`int`,`string`],returnType:`dict`},squote:{fn:(...e)=>mh(...e),argTypes:[`string`]},substr:{fn:(e,t,n)=>hh(e,t,n),argTypes:[`int`,`int`,`string`]},swapcase:{fn:e=>gh(e),argTypes:[`string`],returnType:`string`},title:{fn:e=>yh(e),argTypes:[`string`]},trim:{fn:e=>bh(e),argTypes:[`string`]},trimAll:{fn:(e,t)=>xh(e,t),argTypes:[`string`,`string`]},trimPrefix:{fn:(e,t)=>Sh(e,t),argTypes:[`string`,`string`]},trimSuffix:{fn:(e,t)=>Ch(e,t),argTypes:[`string`,`string`]},trunc:{fn:(e,t)=>wh(e,t),argTypes:[`int`,`string`]},untitle:{fn:e=>Th(e),argTypes:[`string`]},upper:{fn:e=>Eh(e),argTypes:[`string`]},wrap:{fn:(e,t)=>Dh(e,t),argTypes:[`int`,`string`]},wrapWith:{fn:(e,t,n)=>kh(e,t,n),argTypes:[`int`,`string`,`string`]}}}function jh(e){return e}function Mh(e,t,n){return n===void 0?sl+al(e)+`.`+al(t):Nh(n)}function Nh(e){return sl+al(e)}function Ph(e,t){return e+`.`+t}function Fh(e){return e+`.page`}const Ih=[`closeOnPick`,`paged`,`key`,`distribution`],Lh=e=>Ih.includes(e),Rh=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${Pi.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function zh(e){for(let t of Object.keys(e))if(!Lh(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${Rh}`);let t=(t,n)=>{let r=e[t];if(r===void 0)return n;if(typeof r!=`boolean`)throw Error(`{{ menu }} option "${t}" must be a boolean, got ${JSON.stringify(r)} (e.g. (dict "${t}" ${String(!n)}))`);return r},n=e.key;if(n!==void 0&&typeof n!=`string`)throw Error(`{{ menu }} option "key" must be a string naming the accordion group, got ${JSON.stringify(n)}`);if(n===``)throw Error(`{{ menu }} has an empty accordion key — a shared key must be a non-empty name (or omit "key" for an independent menu)`);let r=e.distribution;if(r!==void 0&&!Fi(r))throw Error(`{{ menu }} option "distribution" must be one of: ${Pi.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:Li(r)}}const Bh=`menu`,Vh=`a menu binds its trigger text the way a cycle action binds a display — write {{ menu "applyTheme" "▸" "▾" }} (one per state) or {{ menu "insertHere" "+" }} (one static display for both), with the rare knobs in ONE trailing dict: {{ menu "applyTheme" "▸" "▾" (dict "closeOnPick" true "paged" false "key" "pickers") }} (defaults: closeOnPick false, paged true, no key). The renderer no longer appends ▸/▾ of its own (candybar-settings-ui-aok.4), and the older positional tail ("pageAction" closeOnPick paged "key") was removed — the page cursor is synthesized from the menu's identity`,Hh=e=>e.kind===`call`&&e.name===`dict`,Uh=e=>e.kind===`literal`&&typeof e.value!=`object`,Wh=e=>qs(``,e,2)===void 0;function Gh(e){let t=e=>({kind:`issue`,message:e}),[n,...r]=e.argExprs;if(n===void 0)return t(`with no arguments — it takes an apply-action name and its trigger text (e.g. {{ menu "applyTheme" "▸" "▾" }})`);if(n.kind!==`literal`||typeof n.value!=`string`)return t(`whose apply action is not a string literal — a menu's identity is its apply-action name, which must be a literal so it can be gated at load (e.g. {{ menu "applyTheme" "▸" "▾" }})`);let i=r[r.length-1],a=i!==void 0&&Hh(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(Hh))return t(`whose options (dict …) is not its last argument — ${Vh}`);if(i!==void 0&&a===void 0&&!Uh(i)&&Wh(o.length-1))return t(`whose last argument is neither a literal nor a literal (dict …) — the renderer tells a display from the options dict by the value it evaluates to, so this call could be read as ${o.length} displays or as ${o.length-1} plus options, and both are legal. Make the options explicit as a trailing (dict …) — {{ menu "${n.value}" (printf "…") (printf "…") (dict) }} binds dynamic displays unambiguously — or bind the trigger text as literals`);let s=qs(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${Vh}`);let c=a===void 0?{}:Sp(a);if(c===null)return t(`whose options (dict …) is not fully literal — every option value must be a literal so the menu can be gated at load (a dynamic entry like (dict "key" .x) cannot)`);let l;try{l=zh(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=fl(u);if(e!==void 0)return t(`whose accordion key "${u}" lands in the reserved "${e}" namespace — a key is collapsed to an identifier (${JSON.stringify(u)} becomes "${Nh(u)}"), so it would share one open-state key with the synthesized accordion that owns that namespace instead of grouping only your own menus. Name the group without the reserved prefix`)}return{kind:`ok`,apply:n.value,options:l}}function Kh(e){let t=Md({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===Bh).map(Gh)}catch{return`parse-failed`}}function qh(e){let t=Md({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(Bh)}catch{return!1}}function Jh(e,t,n){e.issues.push({path:t,message:n,line:W(e.source,[`root`])})}function Yh(e,t){pl(e,t,sl,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))qh(r)&&e.issues.push({path:`helpers.${n}`,message:`helper "${n}" uses {{ menu }}, but a menu must live directly in a segment template — its identity is derived from the segment it sits in, which a shared helper does not have. Inline the {{ menu }} call into each segment that needs it.`,line:W(e.source,[`helpers`,n])});let n=t.segments??{};for(let[t,r]of Object.entries(n))for(let n of[`bg`,`fg`,`when`]){let i=r[n];typeof i==`string`&&qh(i)&&Jh(e,`segments.${t}.${n}`,`segment "${t}" uses {{ menu }} in its "${n}" — a menu is only valid in a segment's "template" (its placement is published only there; "${n}" needs a ${n===`when`?`predicate`:`color`}). Move the {{ menu }} into the template.`)}if(t.root!==void 0)for(let n of Xo(Bs(t.root)))typeof n.when==`string`&&qh(n.when)&&Jh(e,`root`,`a layout node's "when" predicate uses {{ menu }} — a menu is only valid in a segment's "template", not a node predicate. Move it into a segment.`);let r=new Set,i={},a=new Set,o=new Map;for(let[t,{template:s}]of Object.entries(n)){if(s===void 0||!qh(s))continue;let n=Kh(s);if(n!==`parse-failed`)for(let s of n){if(s.kind===`issue`){Jh(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${s.message}.`);continue}let{apply:n,options:c}=s;if(n===``){Jh(e,`segments.${t}`,`segment "${t}" has a {{ menu }} with an empty apply-action name — an empty member aliases the absent-state sentinel ("") so the menu would render open before any click. Name the apply action.`);continue}let l=jh(n);if(l===`closed`){Jh(e,`segments.${t}`,`segment "${t}" has a {{ menu }} whose apply action is named "${Gs}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action.`);continue}let u=Mh(t,n,c.key),d=Fh(u),f=c.key===void 0?`ind${t}${n}`:`key${c.key}`,p=[u,d].find(e=>{let t=o.get(e);return t!==void 0&&t!==f});if(p!==void 0){Jh(e,`segments.${t}`,`two {{ menu }} disclosures normalize to the same state key ("${p}") but were declared differently — distinct names that differ only by non-alphanumeric characters (e.g. "a-b" vs "a_b") collapse to one key and would silently share open-state. Rename so they don't collide.`);continue}o.set(u,f),o.set(d,f);let m=Ph(u,l);if(a.has(m)){Jh(e,`segments.${t}`,`two {{ menu }} disclosures resolve to the same identity ("${m}") — ${c.key===void 0?`a segment cannot contain two menus over the same apply action "${n}"`:`menus sharing key "${c.key}" must have distinct apply actions`}.`);continue}a.add(m),r.add(u),i[m]=tc(u,l)}}if(r.size===0)return;let s={};for(let e of r){s[e]=ec(e,Gs);let t=Fh(e);s[t]={kind:`state`,key:t,default:`0`},i[t]={set:t,int:!0}}t.variables={...t.variables??{},...s},t.actions={...t.actions??{},...i}}const Xh=`edit.mode`,Zh=`edit.toggle`,Qh=`open`,$h={variable:Xh,key:Xh,member:Qh},eg=Zs($h);function tg(e){let t=Md({fromString:e=>e});try{return t.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function ng(e){if(Object.values(e.actions??{}).some(e=>`do`in e&&e.do.includes(`edit.toggle`)))return!0;for(let t of Object.values(e.segments??{}))for(let e of[t.template,t.bg,t.fg])if(typeof e==`string`&&tg(e))return!0;return!1}function rg(e,t){if(pl(e,t,cl,`edit mode`),!ng(t))return;let n={[Xh]:ec(Xh,Gs)},r={[Zh]:tc(Xh,Qh)};t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function ig(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function ag(e){let t=e.split(`:`);return t[0]===`remove`&&t.length===2&&t[1]?{op:`remove`,target:t[1]}:t[0]===`insert`&&t.length===4&&t[1]&&t[2]&&(t[3]===`before`||t[3]===`after`)?{op:`insert`,segment:t[1],anchor:t[2],relation:t[3]}:null}function og(e){let t=new Set;for(let n of Xo(e))n.kind===`segment`&&t.add(n.name);return t}const sg=`default`,cg={};function lg(e){return[...new Set([sg,...Object.keys(e)])]}function ug(e,t,n){return Ca(void 0,e,t,sg,n)}function dg(e,t){let n={[sg]:cg,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${sg}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function fg(e,t){let n=dg(e.presets,t).root??Fs;return{node:zs(Vs(n,e.root)),path:Hs(n)?`presets.${t}.root`:`root`}}function pg(e,t){return{...e.globals,...dg(e.presets,t).globals}}const mg=/^segments\.([^.]+)\.palette$/,hg=/^presets\.(.+)\.root$/;function gg(e){return`presets.${e}.root`}function _g(e){if(yc(e))return{scope:`globals`,field:e};let t=mg.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=hg.exec(e);return n?{scope:`preset-root`,preset:n[1]}:null}function vg(e){return e.scope===`globals`?[`globals`,e.field]:[`segments`,e.segment,`palette`]}const yg=`open`;function bg(e,t,n,r){let i={variable:e,key:e,member:yg};return r.variables[e]=ec(e,Gs),r.actions[e]=tc(e,yg),r.segments[e]={template:$s(e,`(?)`,`✕`),...xg(n)},Xs(e,i,{kind:`container`,direction:`horizontal`,children:t.map((t,n)=>{let i=`${e}.${n}`;return r.segments[i]={template:t},{kind:`segment`,name:i}})},`drop`)}function xg(e){let[t,...n]=e;return t===void 0?{}:{when:Zs(t,...n)}}const Sg={help:[`-h`,`--help`],version:[`-V`,`--version`]},Cg=[`+ inserts here`,`- removes the left one`,`↺ undoes edits`],wg=[`☐ this session only`,`☑ default for every session`],Tg=`
|
|
53
53
|
cc-candybar - Beautiful powerline statusline for Claude Code
|
|
54
54
|
|
|
55
55
|
Usage: cc-candybar [options]
|
|
56
56
|
|
|
57
57
|
Standalone Commands:
|
|
58
|
-
${
|
|
59
|
-
${
|
|
58
|
+
${Sg.help.join(`, `).padEnd(25)}Show this help
|
|
59
|
+
${Sg.version.join(`, `).padEnd(25)}Print the version of this runtime (cc-candybar <version>)
|
|
60
60
|
|
|
61
61
|
Debugging:
|
|
62
62
|
CC_CANDYBAR_DEBUG=1 Enable debug logging for troubleshooting
|
|
@@ -69,16 +69,16 @@ Configuration:
|
|
|
69
69
|
|
|
70
70
|
Every bar carries a settings menu, whatever your config says — no config
|
|
71
71
|
needed, and writing your own \`root\` cannot delete it. Click
|
|
72
|
-
it on the bar (${
|
|
72
|
+
it on the bar (${Ks} by default; globals.menuGlyph changes it) for
|
|
73
73
|
quick actions, preset switching, edit mode, and a config menu of
|
|
74
|
-
clickable theme/look/style/charset/colour-depth/wrap/padding
|
|
75
|
-
\`persist?\` checkbox there chooses where a change lands:
|
|
76
|
-
${
|
|
74
|
+
clickable theme/look/style/progression/charset/colour-depth/wrap/padding
|
|
75
|
+
controls. The \`persist?\` checkbox there chooses where a change lands:
|
|
76
|
+
${wg.join(`, `)}.
|
|
77
77
|
Its 🧰 tools row holds 🩺 doctor: click it to check your setup, and click a
|
|
78
78
|
failed row's [fix] to repair it (the same checks \`cc-candybar doctor\` runs).
|
|
79
79
|
|
|
80
80
|
Anywhere the bar shows (?), clicking it reveals these same instructions
|
|
81
|
-
in place. In edit mode: ${
|
|
81
|
+
in place. In edit mode: ${Cg.join(`, `)}.
|
|
82
82
|
|
|
83
83
|
Subcommands:
|
|
84
84
|
install One-shot setup: stages the runtime (native render
|
|
@@ -116,45 +116,45 @@ Config tooling:
|
|
|
116
116
|
config [--json] The effective merged config. (All three query the
|
|
117
117
|
running daemon; none spawn one.)
|
|
118
118
|
|
|
119
|
-
`,Sg=`${hc}live`,Cg=[`☐ live`,`☑ live`],wg={variable:Sg,key:Sg,member:`open`},Tg=`and ${as(Yh)} (not ${as(wg)})`,Eg=`{{ ${Tg} }}`;function Dg(e,t){return`{{ if ${Tg} }}${e}{{ else }}${t}{{ end }}`}const Og=`preset.customized`,kg=`{{ and ${as(Yh)} .${Og} }}`,Ag=vc;function jg(e){return`${hc}addable.${e}`}function Mg(e){let t=Object.keys(e.segments).filter(e=>!Ag(e)),n=new Map;for(let r of ag(e.presets)){let{node:i}=cg(e,r),a=ng(i);n.set(jg(r),{members:t.filter(e=>!a.has(e))})}return n}function Ng(e,t,n){return n.segments[e]={template:t,when:Xh},{kind:`segment`,name:e}}function Pg(e,t,n,r){let i=`${hc}${e}.remove.${fc(n)}`;return r.actions[i]={persist:t,removeSegment:n},`{{ action "${i}" "-" }}`}const Fg=`${hc}label:`;function Ig(e){return e.startsWith(Fg)?e.slice(Fg.length):e.startsWith(`edit.`)?void 0:e}function Lg(e,t){let n=`${Fg}${e}`;return t.segments[n]={template:`{{ "${ns(e)}" }}`,when:Eg},{kind:`segment`,name:n}}function Rg(e,t,n,r,i,a,o){let s=`${hc}${e}.insert.${n}`,c=`${hc}${e}.insertSeg.${n}`;o.actions[s]={persist:t,insertSegmentFrom:r,anchor:i,relation:a};let l=Dh(s),u=Oh(c,s,void 0),d=jh(u),f=Ah(u,l);return o.variables[u]=ss(u,Qo),o.variables[d]={kind:`state`,key:d,default:`0`},o.actions[f]=cs(u,l),o.actions[d]={set:d,int:!0},{host:c,template:`{{ menu "${s}" "+" "✕" }}`}}function zg(e,t,n,r,i,a){let o=[],s=e.children.findIndex(e=>e.kind===`segment`&&!Ag(e.name)),c=e=>zg(e,t,n,r,i,a);for(let[l,u]of e.children.entries()){if(u.kind===`container`){o.push(c(u));continue}let d=to(u,c);if(Ag(u.name)){o.push(d);continue}let f=e=>Rg(t,n,String(a.n++),r,u.name,e,i),p=l===s?[f(`before`)]:[],m=f(`after`),h={kind:`container`,direction:`horizontal`,children:[...p.map(e=>Ng(e.host,e.template,i)),Lg(u.name,i),{...d,when:Dg(`false`,u.when??`true`)},Ng(m.host,`${Pg(t,n,u.name,i)} ${m.template}`,i)]};o.push(e.direction===`vertical`?{kind:`container`,direction:`horizontal`,children:[h]}:h)}return{...e,children:o,...e.when!==void 0&&{when:Dg(`true`,e.when)}}}function Bg(e,t,n,r,i,a){let o=`${hc}${n}.resetLayout`,s=`${hc}${n}.customized`;i.actions[o]={reset:r},i.ensured[Og]={kind:`input`,path:Og,type:`boolean`,default:!1};let c=ns(t);return i.segments[s]={template:`{{ action "${o}" "↺ ${c} customized" }}`,when:kg},{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:s},Vg(e,a)]}}function Vg(e,t){if(e.kind===`segment`)return{kind:`container`,direction:`horizontal`,children:[e,t]};let n=e.children.at(-1);return e.direction===`vertical`&&n!==void 0&&(n.kind===`segment`||n.when===void 0)?{...e,children:[...e.children.slice(0,-1),Vg(n,t)]}:{...e,children:[...e.children,t]}}function Hg(e,t,n,r){let{node:i}=cg(e,t),a=fg(t),o=jg(t),s=fc(t);return Bg(zg(i,s,a,o,n,{n:0}),t,s,a,n,r)}function Ug(e){if(!(`edit.toggle`in e.actions))return e;let t={variables:{},ensured:{},actions:{},segments:{}},n=gg(`${hc}help`,yg,[Yh],t);t.variables[Sg]=ss(Sg,Qo),t.actions[Sg]=cs(Sg,wg.member),t.segments[Sg]={template:os(Sg,...Cg),when:Xh};let r={kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:Sg},n]},i={...e.presets};for(let n of ag(e.presets)){let a=Hg(e,n,t,r);i[n]={...sg(e.presets,n),root:a}}return{...e,variables:{...t.ensured,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:i}}const Wg={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function Gg(e){let t=e[Wg.socket]??``,n=e[Wg.pane]??``;if(t===``||n===``)return null;let r=e[Wg.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}const Kg=Wg.truecolor,qg=[{name:`tmuxTruecolor`,label:`tmux truecolor`,probe:({tmux:e,claudeSettingsEnv:t})=>{switch(e.kind){case`unreported`:return{ok:!1,reason:"the client reported no tmux facts — re-run `cc-candybar install` to stage a current client"};case`outside`:return{ok:!0};case`inside`:{if(e.termfeatures.kind===`failed`)return{ok:!1,reason:`tmux could not be asked: ${e.termfeatures.reason}`};if(!e.termfeatures.value.includes(`RGB`)||e.hint.truecolor!==null)return{ok:!0};let n=t[Kg];return typeof n==`string`&&n!==``?{ok:!1,reason:`${Kg} is set in ~/.claude/settings.json — restart Claude Code to apply`}:{ok:!1,reason:`Claude Code renders the bar in 256 colours inside tmux`,fix:{kind:`claude-settings-env`,name:Kg,value:`1`}}}}}}];function Jg(e){return qg.map(t=>({check:t,verdict:t.probe(e)}))}function Yg(e){return qg.find(t=>t.name===e)}function Xg(e){let t=`settings.doctor.${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`}}function Zg(e){return e.flatMap(({check:e,verdict:t})=>{let n=Xg(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:ta}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:t.reason},{key:n.fixable,value:t.fix===void 0?ta:ea}]})}const Qg={copySession:{copy:`{{ .session.id }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`}};function $g(e){let t=t=>`${e}${t}`;return{template:`{{ action "${t(`copySession`)}" "⎘ id" }} {{ action "${t(`openProject`)}" "↗ proj" }} {{ action "${t(`openTranscript`)}" "↗ log" }}{{ if ne .git.repoUrl "" }} {{ link .git.repoUrl "↗ repo" }}{{ end }}`,actions:Object.fromEntries(Object.entries(Qg).map(([t,n])=>[`${e}${t}`,n]))}}const e_={theme:{configKey:`palette`,sessionKey:`theme`,effectiveVar:`theme.effective`},preset:{configKey:`preset`,sessionKey:`preset`,effectiveVar:`preset.effective`},look:{configKey:`look`,sessionKey:`look`,effectiveVar:`look.effective`},style:{configKey:`style`,sessionKey:`style`,effectiveVar:`style.effective`},charset:{configKey:`charset`,sessionKey:`charset`,effectiveVar:`charset.effective`},colorCompatibility:{configKey:`colorCompatibility`,sessionKey:`colorCompatibility`,effectiveVar:`colorCompatibility.effective`},autoWrap:{configKey:`autoWrap`,sessionKey:`autoWrap`,effectiveVar:`autoWrap.effective`},padding:{configKey:`padding`,sessionKey:`padding`,effectiveVar:`padding.effective`}},t_=Object.values(e_),n_=`${gc}menu`,r_=Jh,i_=`${gc}edit`,a_=`${gc}close`,o_=`${gc}toolbar`,s_=$g(gc),c_=`${gc}persist`,l_=`${gc}config`,u_=c_,d_={variable:n_,key:n_,member:r_},f_={variable:l_,key:l_,member:r_},p_=`${gc}tools`,m_={variable:p_,key:p_,member:r_},h_=`${gc}doctor`,g_=`${h_}.run`,__=e=>`${h_}.fix.${e}`,v_=e=>`${h_}.${e}`,y_=`${gc}help.persist`,b_=`${gc}pickers`,x_=[`{{ themePreview }}`],S_=[{name:`preset`,...e_.preset,glyph:`▦`,domain:`presets`,beneath:[`{{ layoutPreview }}`]}],C_=[{name:`theme`,...e_.theme,glyph:`🎨`,domain:`themes`,beneath:x_},{name:`look`,...e_.look,glyph:`◐`,domain:`looks`,beneath:x_},{name:`style`,...e_.style,glyph:`✦`,domain:`styles`,beneath:[]},{name:`charset`,...e_.charset,glyph:`🔣`,domain:`charsets`,beneath:[]},{name:`colorCompatibility`,...e_.colorCompatibility,glyph:`🌈`,domain:`colorCompatibilities`,beneath:[]}],w_={name:`wrap`,...e_.autoWrap},T_={name:`padding`,...e_.padding},E_=`${gc}${w_.name}`,D_=`${gc}${T_.name}`,O_=[...S_,...C_];new Set([...O_,w_,T_].flatMap(e=>[e.sessionKey,e.configKey]));const k_=e=>`${gc}${e}`,A_=e=>`${gc}apply.${e}`,j_=e=>`${gc}reset.${e}`,M_=e=>`${gc}carousel.${e}`,N_=(e,t)=>`${M_(e)}.${t}`,P_=kh(b_),F_=e=>({variable:P_,key:P_,member:Dh(A_(e.name))});function I_(e){return rs(k_(e.name),F_(e),{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:M_(e.name)},...e.beneath.map((t,n)=>({kind:`segment`,name:N_(e.name,n)}))]},`drop`)}function L_(e){return e===n_}function R_(e){let t={kind:`segment`,name:n_};if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[R_(n),...r]}:{kind:`container`,direction:`vertical`,children:[t,e]}}return e.kind===`container`&&e.when===void 0?{...e,children:[t,...e.children]}:{kind:`container`,direction:`horizontal`,children:[t,e]}}function z_(e){return B_(e)>0?e:R_(e)}function B_(e){let t=0;for(let n of no(e))n.kind===`segment`&&L_(n.name)&&(t+=1);return t}function V_(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&L_(e.name)||e.opens!==void 0&&V_(e.opens.body,!0):e.children.some(e=>V_(e,n))}function H_(e,t){return e.kind===`segment`?L_(e.name)?rs(e.name,d_,{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:o_},{kind:`segment`,name:c_},t,...S_.map(I_),rs(l_,f_,{kind:`container`,direction:`horizontal`,children:[...C_.map(I_),{kind:`segment`,name:E_},{kind:`segment`,name:D_}]},`drop`),rs(p_,m_,{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:h_},...qg.map(e=>({kind:`segment`,name:v_(e.name)}))]},`drop`),{kind:`segment`,name:i_}]},`inline`):e:U_(e,t)}function U_(e,t){return{...e,children:e.children.map(e=>H_(e,t))}}function W_(e){let t={variables:{[n_]:ss(n_,Qo)},actions:{[n_]:cs(n_,r_),[l_]:cs(l_,r_),[p_]:cs(p_,r_),[g_]:{doctor:`run`},[a_]:{set:d_.key,to:Qo},[i_]:{do:[qh,a_]},...s_.actions,[c_]:{set:u_,cycle:[ta,ea]}},segments:{[n_]:{template:os(n_,e,`❌`)},[o_]:{template:s_.template},[c_]:{template:`{{ action "${c_}" "☐ persist?" "☑ persist?" }}`},[l_]:{template:os(l_,`⚙ config ▸`,`⚙ config ▾`)},[p_]:{template:os(p_,`🧰 tools ▸`,`🧰 tools ▾`)},[h_]:{template:`{{ action "${g_}" "🩺 doctor" }}`},[E_]:{template:`{{ action "${A_(`wrap`)}" "wrap: on" "wrap: off" }} {{ action "${j_(`wrap`)}" "↺" }}`},[D_]:{template:`{{ action "${A_(`padding`)}.down" "◀" }} padding {{ .${T_.effectiveVar} }} {{ action "${A_(`padding`)}.up" "▶" }} {{ action "${j_(`padding`)}" "↺" }}`},[i_]:{template:`{{ action "${i_}" "✎ edit" "✎ done" }}`}}};return t.variables[u_]={kind:`state`,key:u_,default:ta},t.variables[l_]=ss(l_,Qo),t.variables[p_]=ss(p_,Qo),K_(t),G_(t),{artifacts:t,help:gg(y_,bg,[d_],t)}}function G_(e){for(let t of qg){let n=Xg(t.name),r=__(t.name);for(let t of Object.values(n))e.variables[t]={kind:`state`,key:t,default:``};e.actions[r]={doctor:`fix`,check:t.name},e.segments[v_(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${ea}" }} {{ action "${r}" "[fix]" }}{{ end }}{{ end }}`}}}function K_(e){for(let t of O_){let n=A_(t.name);e.actions[n]={set:t.sessionKey,persist:t.configKey,persistWhen:u_,from:t.domain},e.actions[j_(t.name)]={reset:t.configKey},q_(t,e)}e.actions[A_(w_.name)]={set:w_.sessionKey,persist:w_.configKey,persistWhen:u_,cycle:[...na]},e.actions[j_(w_.name)]={reset:w_.configKey};for(let t of[-1,1])e.actions[`${A_(T_.name)}.${t<0?`down`:`up`}`]={set:T_.sessionKey,persist:T_.configKey,persistWhen:u_,...ra,by:t};e.actions[j_(T_.name)]={reset:T_.configKey}}function q_(e,t){let n=A_(e.name),r=F_(e),i=Ah(r.key,r.member);t.variables[r.key]=ss(r.key,Qo),t.actions[i]=cs(r.key,r.member),t.segments[k_(e.name)]={template:`${e.glyph} {{ .${e.effectiveVar} }} ${os(i,`▸`,`▾`)} {{ action "${j_(e.name)}" "↺" }}`},t.segments[M_(e.name)]={template:`{{ carousel "${n}" }}`},e.beneath.forEach((n,r)=>{t.segments[N_(e.name,r)]={template:n}})}function J_(e){e.variables[Kh]=ss(Kh,Qo),e.actions[qh]=cs(Kh,Jh)}const Y_=`session.id`;function X_(e){return Object.prototype.hasOwnProperty.call(e.variables,Y_)}function Z_(e){if(!X_(e))return e;let{artifacts:t,help:n}=W_(e.globals.menuGlyph??`🍫`);J_(t);let r={...e.presets};for(let t of ag(e.presets)){let{node:i}=cg(e,t);r[t]={...sg(e.presets,t),root:H_(z_(i),n)}}return{...e,variables:{...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:r}}const Q_=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`doctor`,`do`],$_=`persistWhen`;function ev(e){return $_ in e}function tv(e){return ev(e)?`to`in e?[{set:e.set,to:e.to},{persist:e.persist,to:e.to}]:`from`in e?[{set:e.set,from:e.from},{persist:e.persist,from:e.from}]:`cycle`in e?[{set:e.set,cycle:e.cycle},{persist:e.persist,cycle:e.cycle}]:[{set:e.set,min:e.min,max:e.max,by:e.by},{persist:e.persist,min:e.min,max:e.max,by:e.by}]:[e]}function nv(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function rv(e){return`set`in e}function iv(e){return`persist`in e}function av(e){return`reset`in e}function ov(e){return`undo`in e}function sv(e){return`redo`in e}function cv(e){return`doctor`in e}function lv(e,t){if(t===void 0)return{};if(!_o(t))return J(e,`actions`,`actions must be an object, got ${vo(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=uv(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function J(e,t,n){e.issues.push({path:t,message:n,line:W(e.source,t.split(`.`))})}function uv(e,t,n){if(!_o(n))return J(e,t,`${t} must be an action object, got ${vo(n)}`),null;if(`persistWhen`in n)return Uv(e,t,n,`dual`,Bv);let r=Q_.filter(e=>e in n);return r.length===1?dv[r[0]](e,t,n):(J(e,t,`action must declare exactly one of: ${Q_.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const dv={set:(e,t,n)=>Uv(e,t,n,`set`,Rv),persist:(e,t,n)=>Uv(e,t,n,`persist`,zv),copy:fv(`copy`),open:fv(`open`),reset:pv,undo:mv(`undo`),redo:mv(`redo`),doctor:hv,do:gv};function fv(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&J(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);let i=fo(t,n,r,e);return i===null?null:{[e]:i}}}function pv(e,t,n){for(let r of Object.keys(n))r!==`reset`&&J(e,`${t}.${r}`,`Unknown key "${r}" on a reset action. Expected only: reset`);let r=_v(e,t,`reset`,n,`reset key must be non-empty (the config globals field to clear)`,e=>`reset key "${e}" contains "/" — keys must be slash-free`);return r===null?null:{reset:r}}function mv(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&J(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);return r[e]===!0?{[e]:!0}:(J(t,`${n}.${e}`,`${e} must be the literal true (it takes no key — it steps the history of the session's config file), got ${G(r[e])}`),null)}}function hv(e,t,n){let r=n.doctor,i=r===`run`?[`doctor`]:[`doctor`,`check`];for(let r of Object.keys(n))i.includes(r)||J(e,`${t}.${r}`,`Unknown key "${r}" on a doctor action. Expected only: ${i.join(`, `)}`);if(r!==`run`&&r!==`fix`)return J(e,`${t}.doctor`,`doctor must be "run" or "fix", got ${G(r)}`),null;if(r===`run`)return{doctor:`run`};let a=n.check;return typeof a!=`string`||Yg(a)===void 0?(J(e,`${t}.check`,`doctor fix must name a check (have: ${qg.map(e=>e.name).join(`, `)}), got ${G(a)}`),null):{doctor:`fix`,check:a}}function gv(e,t,n){for(let r of Object.keys(n))r!==`do`&&J(e,`${t}.${r}`,`Unknown key "${r}" on a do action. Expected only: do`);let r=n.do;return!Array.isArray(r)||r.length<2||r.some(e=>typeof e!=`string`||e===``)?(J(e,`${t}.do`,`do must list at least two action names (the first is the click's face, the rest ride along in the same click), got ${G(r)}`),null):{do:r}}function _v(e,t,n,r,i,a){let o=fo(e,t,r,n);if(o===null)return null;let s=`${t}.${n}`;return o===``?(J(e,s,i),null):o.includes(`/`)?(J(e,s,a(o)),null):o}const vv={set:[[`set`,`the SessionState key to write`]],persist:[[`persist`,`the config globals field to write`]],dual:[[`set`,`the SessionState key written while persistWhen is off`],[`persist`,`the config globals field written while persistWhen is on`],[$_,`the SessionState key whose boolean value chooses the destination`]]};function yv(e,t,n,r){let i={},a=vv[r],o=!0;for(let[r,s]of a){if(!(r in n)){J(e,t,`${r} is required here (${s}) — a dual-destination action declares ${a.map(([e])=>e).join(`, `)} together, plus one value source`),o=!1;continue}let c=_v(e,t,r,n,`${r} key must be non-empty (${s})`,e=>`${r} key "${e}" contains "/" — keys must be slash-free`);if(c===null){o=!1;continue}i[r]=c}return o?i:null}function bv(e){return e===`set`?`set-state`:e===`persist`?`set-config`:`set-state/set-config`}const xv={to:Wv(`set`)},Sv={to:Wv(`persist`)},Cv={from:Gv(`set`)},wv={from:Gv(`persist`)},Tv={min:Xv(),max:Xv(),by:Xv()},Ev={int:qv()},Dv={cycle:Kv(`set`)},Ov={to:Wv(`dual`)},kv={from:Gv(`dual`)},Av={cycle:Kv(`dual`)},jv={cycle:Kv(`persist`)},Mv={removeSegment:Jv(`removeSegment`)},Nv={insertSegment:Jv(`insertSegment`),anchor:Jv(`anchor`),relation:Yv()},Pv={insertSegmentFrom:Gv(`persist`),anchor:Jv(`anchor`),relation:Yv()},Fv={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},Iv={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function Lv(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=vv[e].map(([e])=>e),s=(e,n,r)=>bo(e,t,n,r),c=Fo(t);return{detect:a,allowed:[...o,...i],label:i.join(`/`),json:{type:`object`,properties:{...Object.fromEntries(o.map(e=>[e,{type:`string`}])),...c.properties},required:[...o,...c.required??[]],additionalProperties:!1},parse:n.length?Oo(s,...n):s}}const Rv=[Lv(`set`,xv),Lv(`set`,Cv),Lv(`set`,Tv,[Fv,Iv]),Lv(`set`,Ev),Lv(`set`,Dv)],zv=[Lv(`persist`,Sv),Lv(`persist`,wv),Lv(`persist`,Tv,[Fv,Iv]),Lv(`persist`,jv),Lv(`persist`,Mv),Lv(`persist`,Nv,[],[`insertSegment`]),Lv(`persist`,Pv,[],[`insertSegmentFrom`])],Bv=[Lv(`dual`,Ov),Lv(`dual`,kv),Lv(`dual`,Tv,[Fv,Iv]),Lv(`dual`,Av)];function Vv(e){let t=[`"to" (a literal value)`,`"from" (an option domain — a registered domain name like "themes"/"styles"/"looks", or an inline array of literal values)`,`"min"/"max"/"by" (a bounded step)`];return e===`set`&&t.push(`"int" (an unbounded integer cursor)`),t.push(`"cycle" (an enumerated domain stepped in order)`),e===`persist`&&t.push(`"removeSegment" (remove a named segment from the layout)`,`"insertSegment"/"anchor"/"relation" (insert a named segment before/after an existing one)`,`"insertSegmentFrom"/"anchor"/"relation" (insert a segment PICKED from an option domain before/after an existing one)`),t}function Hv(e){let t=Vv(e),n=t[t.length-1];return`a ${e} action declares exactly one value source: ${t.length===1?n:`${t.slice(0,-1).join(`, `)}, or ${n}`}`}function Uv(e,t,n,r,i){let a=yv(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return J(e,t,`${Hv(r)}${o.length>1?` — found: ${o.map(e=>e.label).join(`, `)}`:``}`),null;let s=o[0];for(let i of Object.keys(n))s.allowed.includes(i)||J(e,`${t}.${i}`,`Unknown key "${i}" on this ${r} action. Expected one of: ${s.allowed.join(`, `)}`);let c=s.parse(e,t,n);return a===null||c===null?null:{...a,...c}}function Wv(e){let t=bv(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>_v(n,r,i,a,`${e} value must be non-empty — an empty value cannot be delivered on the ${t} wire`,t=>`${e} value "${t}" contains "/" — ${e} values must be slash-free`)??void 0}}function Gv(e){let t=bv(e);return{required:!0,json:{anyOf:[{type:`string`,minLength:1},{type:`array`,items:{type:`string`,minLength:1},minItems:1,uniqueItems:!0}]},parse:(n,r,i,a)=>{let o=a[i],s=`${r}.${i}`;if(typeof o==`string`){if(o===``){J(n,s,`${i} must be a non-empty domain name`);return}return o}if(Array.isArray(o)&&o.every(e=>typeof e==`string`)){let r=o;if(r.length===0){J(n,s,`${i} must name a domain (a non-empty string) or declare an inline domain (a non-empty array of values)`);return}if(r.some(e=>e===``)){J(n,s,`${i} array members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}let a=r.filter(e=>e.includes(`/`));if(a.length>0){J(n,s,`${i} array member(s) ${a.map(e=>`"${e}"`).join(`, `)} contain "/" — ${e} values must be slash-free`);return}if(new Set(r).size!==r.length){J(n,s,`${i} array members must be unique — a duplicated value would render the same picker option twice`);return}return r}J(n,s,`${i} must be a domain name (a string) or an inline domain (an array of strings), got ${G(o)}`)}}}function Kv(e){let t=bv(e);return{required:!0,json:{type:`array`,items:{type:`string`,minLength:1},minItems:2,uniqueItems:!0},parse:(n,r,i,a)=>{let o=a[i],s=`${r}.${i}`;if(!Array.isArray(o)||o.some(e=>typeof e!=`string`)){J(n,s,`cycle must be an array of strings (the enumerated values a click steps through), got ${vo(o)}`);return}let c=o;if(c.length<2){J(n,s,`cycle needs at least two members (one member has no successor — use a literal "to")`);return}let l=c.some(e=>e===``),u=c.filter(e=>e.includes(`/`));if(l){J(n,s,`cycle members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}if(u.length>0){J(n,s,`cycle member(s) ${u.map(e=>`"${e}"`).join(`, `)} contain "/" — ${e} values must be slash-free`);return}if(new Set(c).size!==c.length){J(n,s,`cycle members must be unique — the successor of a duplicated member is ambiguous`);return}return c}}}function qv(){return{required:!0,json:{const:!0},parse:(e,t,n,r)=>{if(r[n]!==!0){J(e,`${t}.${n}`,`int must be the literal true (declares the key an unbounded integer cursor — a paged picker's page key), got ${G(r[n])}`);return}return!0}}}function Jv(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=fo(t,n,i,r);if(a===null)return;let o=`${n}.${r}`;if(a===``){J(t,o,`${e} must be non-empty (a segment name)`);return}if(a.includes(`/`)||a.includes(`:`)){J(t,o,`${e} "${a}" contains "/" or ":" — segment names in a layout op must be free of both (the click wire's own delimiter and layout-ops.ts's op-token delimiter)`);return}return a}}}function Yv(){return{required:!0,json:{enum:[`before`,`after`]},parse:(e,t,n,r)=>{let i=r[n];if(i!==`before`&&i!==`after`){J(e,`${t}.${n}`,`relation must be "before" or "after", got ${G(i)}`);return}return i}}}function Xv(){return{required:!0,json:{type:`integer`},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`number`||!Number.isInteger(i)){J(e,`${t}.${n}`,`${n} must be an integer, got ${G(i)}`);return}return i}}}const Zv={noun:`look key`,fields:{hueShift:jo(),chromaScale:jo({min:0}),lightnessScale:jo(),lightnessShift:jo()}};function Qv(e,t){if(!_o(t))return e.issues.push({path:`looks`,message:`looks must be an object mapping look names to adaptation objects, got ${vo(t)}`,line:W(e.source,[`looks`])}),{};let n={};for(let[r,i]of Object.entries(t)){if(r===``||r.includes(`/`)){e.issues.push({path:`looks.${r}`,message:`look name ${JSON.stringify(r)} must be non-empty and slash-free — a look picker writes the name on the set-state wire, which rejects empty values and splits on "/"`,line:W(e.source,[`looks`,r])});continue}let t=yo(e,Zv,`looks.${r}`,i);t!==null&&(n[r]={...On,...t})}return n}const $v={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:Pl(e,`${t}.${n}`,r[n])},globals:{required:!1,json:Cs(),parse:(e,t,n,r)=>r[n]===void 0?void 0:Ss(e,`${t}.${n}`,r[n])}}};function ey(e,t){if(!_o(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${vo(t)}`,line:W(e.source,[`presets`])}),{};let n={};for(let[r,i]of Object.entries(t)){if(r===``||r.includes(`/`)||/[\n\r]/.test(r)){e.issues.push({path:`presets.${r}`,message:`preset name ${JSON.stringify(r)} must be non-empty, slash-free, and newline-free — a preset picker writes the name on the set-state wire (which rejects empty values and splits on "/"), and edit mode splices it into a synthesized template string`,line:W(e.source,[`presets`,r])});continue}let t=yo(e,$v,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function ty(e,t){if(t===void 0)return{};if(!_o(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${vo(t)}`,line:W(e.source,[`helpers`])}),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){if(typeof i!=`string`){e.issues.push({path:`helpers.${r}`,message:`helpers.${r} must be a string template body, got ${G(i)}`,line:W(e.source,[`helpers`,r])});continue}n[r]=i}return n}const ny=new Map,ry=new Map;function iy(e){let t=ay(e);if(t===null)throw Error(`Palette "${e}" (resolved "${ki(e)}") did not resolve in the theme registry — allowed names and the registry are inconsistent`);return t}function ay(e){let t=ki(e),n=ny.get(t);if(n!==void 0)return n;let r=ir(t);return r===null?null:(ny.set(t,r),r)}function oy(e,t){let n=`${e.name} ${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,r=ry.get(n);if(r!==void 0)return r;let i=fr(e,t);return ry.set(n,i),i}function sy(e){let t=ay(e);return t===null?null:{kind:`decided`,name:e,value:t}}function cy(e,t){let n=sy(e);return n===null?(t(`globals.palette rendered "${Ai}": "${e}" names no installed theme`),uy()):n}function ly(e,t,n){return Ii(e,t,n,uy(),sy)}function uy(){return sy(Ai)}function dy(e){return Li(ly(void 0,null,e),()=>Ai,uy).value}const fy=new Map;function py(e,t,n){fy.set(e,{permanent:!0,resolve:t,paletteOf:n})}py(`themes`,()=>Mi(),e=>iy(e)),py(`styles`,()=>Hi),py(`charsets`,()=>Gi),py(`colorCompatibilities`,()=>Yi);function my(e){return new Map([[`looks`,{members:Object.keys(e.looks),paletteOf:(t,n)=>oy(n,e.looks[t])}],[`presets`,{members:ag(e.presets)}]])}function hy(e){return[...new Set([...fy.keys(),...e.keys()])]}function gy(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=fy.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(`unknown option domain "${e}" (have: ${hy(t).join(`, `)})`)}const _y=/{{([\s\S]*?)}}/g,vy=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g,yy=/(?<![A-Za-z0-9_)])\.([A-Za-z_][\w]*(?:\.[A-Za-z_][\w]*)*)/g;function by(e){let t=new Set,n;for(_y.lastIndex=0;(n=_y.exec(e))!==null;){let e=n[1].replace(vy,``),r;for(yy.lastIndex=0;(r=yy.exec(e))!==null;)t.add(r[1])}return t}const xy=/\baction\s+$/;function Sy(e){let t=new Set;_y.lastIndex=0;let n;for(;(n=_y.exec(e))!==null;){let e=n[1],r=0,i;for(vy.lastIndex=0;(i=vy.exec(e))!==null;)xy.test(e.slice(r,i.index))&&t.add(i[0].slice(1,-1)),r=i.index+i[0].length}return t}const Cy=/\b(picker|menu|carousel)\s+$/;function wy(e){let t=new Set;_y.lastIndex=0;let n;for(;(n=_y.exec(e))!==null;){let e=n[1],r=0,i=0,a;for(vy.lastIndex=0;(a=vy.exec(e))!==null;){let n=Cy.exec(e.slice(r,a.index));n!==null&&(i=n[1]===`picker`?2:1),i>0&&(t.add(a[0].slice(1,-1)),i--),r=a.index+a[0].length}}return t}function Ty(e,t){if(t.names.has(e))return!0;let n=`${e}.`;for(let e of t.names)if(e.startsWith(n))return!0;for(let n of t.documents)if(e.startsWith(`${n}.`))return!0;return!1}const Ey={gitTaculous:`gitaculous`};function Dy(e,t){let n=new Map;for(let e of Object.keys(t)){let t=fc(e),r=n.get(t);r?r.push(e):n.set(t,[e])}for(let[t,r]of n)r.length<2||e.issues.push({path:`presets`,message:`preset names ${r.map(e=>JSON.stringify(e)).join(` and `)} both collapse to the same synthesis identifier "${t}" — edit mode's synthesized reset affordance would silently steal one preset's action for the other. Rename one.`,line:W(e.source,[`presets`])})}function Oy(e,t){t.globals.look!==void 0&&!Fi(t.globals.look)&&!Object.prototype.hasOwnProperty.call(t.looks,t.globals.look)&&e.issues.push({path:`globals.look`,message:`globals.look "${t.globals.look}" does not match any declared look (have: ${Object.keys(t.looks).join(`, `)})`,line:W(e.source,[`globals`,`look`])}),t.globals.preset!==void 0&&!Object.prototype.hasOwnProperty.call(t.presets,t.globals.preset)&&e.issues.push({path:`globals.preset`,message:`globals.preset "${t.globals.preset}" does not match any declared preset (have: ${Object.keys(t.presets).join(`, `)})`,line:W(e.source,[`globals`,`preset`])}),Dy(e,t.presets);let n=my(t);for(let[r,i]of Object.entries(t.actions))!(`set`in i)||!(`from`in i)||typeof i.from!=`string`||hy(n).includes(i.from)||e.issues.push({path:`actions.${r}.from`,message:`actions.${r} from: references unknown option domain "${i.from}" (have: ${hy(n).join(`, `)})`,line:W(e.source,[`actions`,r,`from`])});for(let[n,r]of Object.entries(t.actions)){if(!ev(r))continue;let i=r[$_];Ny(t,i)||e.issues.push({path:`actions.${n}.${$_}`,message:`actions.${n} ${$_}: "${i}" is not a declared state key — a dual action's selector must name a { kind: "state", key: "${i}" } variable, or the destination can never change`,line:W(e.source,[`actions`,n,$_])})}for(let[n,r]of Object.entries(t.actions))`do`in r&&r.do.forEach((i,a)=>{let o=Object.prototype.hasOwnProperty.call(t.actions,i)?t.actions[i]:void 0,s=o===void 0?`references unknown action "${i}"`:`do`in o?`"${i}" is itself a do action — list its members here instead`:r.do.indexOf(i)===a?a>0&&nv(o)?`"${i}" takes its value from the template (from/int/insertSegmentFrom), so it can only be the first member — only the first is bound the region's display`:void 0:`"${i}" is listed twice — each member fires once per click`;s!==void 0&&e.issues.push({path:`actions.${n}.do`,message:`actions.${n} do: ${s}`,line:W(e.source,[`actions`,n,`do`])})});for(let[n,r]of Object.entries(t.actions)){let i=`persist`in r?r.persist:`reset`in r?r.reset:null;if(i===null)continue;let a=`persist`in r?`persist`:`reset`,o=pg(i);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is not a config globals field (have: ${Ds().join(`, `)}), a "segments.<name>.palette" target, or a "presets.<name>.root" target`,line:W(e.source,[`actions`,n,a])});continue}let s=ky.filter(e=>e in r);if(o.scope!==`preset-root`&&s.length>0){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is not a "presets.<name>.root" target — ${s.map(e=>`"${e}"`).join(`/`)} is a tree op and applies only to one`,line:W(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){Ay(e,t,n,a,i,o.preset,r);continue}if(o.scope===`segment-palette`){if(!Object.prototype.hasOwnProperty.call(t.segments,o.segment)){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" names segment "${o.segment}" which is not declared (have segments: ${Object.keys(t.segments).join(`, `)})`,line:W(e.source,[`actions`,n,a])});continue}`min`in r&&e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is a segment palette target and cannot use a bounded stepper (min/max/by) — use "to", "from", or "cycle" instead`,line:W(e.source,[`actions`,n,a])})}}let r=Fy(t),i=X_(t),a=Object.entries(t.segments).filter(([,e])=>Uh(e.template)).map(([e])=>e),o=(t,n,r)=>{B_(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${n_}" ${B_(t)} times — it may appear at most once per layout (it is one disclosure, and one state key holds one open state). Remove all but the placement you want; removing every placement puts the menu at its default position.`,line:r}),V_(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${n_}" under a \`when\` or inside a disclosure body — the menu is visible under every condition, so its placement may not be gated. Move it to an ungated position, or remove it to put the menu at its default position.`,line:r}),s(t)&&e.issues.push({path:n,message:`${n} sets "distribution" on a container inside a bar cell — everything inside a cell wears that cell's hue and tone, so it would place nothing. Set it on the row whose children are the cells (the horizontal container) or on the root, which places the rows.`,line:r});let i=new Map;for(let e of no(t))e.kind===`segment`&&i.set(e.name,(i.get(e.name)??0)+1);for(let t of a)(i.get(t)??0)>1&&e.issues.push({path:n,message:`segment "${t}" hosts a {{ menu }} and is placed in the layout more than once — a menu's open-state is keyed by segment name, so the copies would share one state (clicking one would toggle both). Give each placement its own named segment.`,line:r})};function s(e,t=!1){return e.kind===`segment`?!1:t&&e.distribution!==void 0||e.children.some(n=>s(n,t||eo[e.direction]===`cell`))}let c=(n,a,o)=>{for(let s of no(n))if(s.when!==void 0&&zy(e,`${a}.when`,s.when,r,{line:o}),s.kind===`segment`){if(L_(s.name)){i||e.issues.push({path:a,message:`${a} places the global settings menu anchor "${n_}", but this config declares no "${Y_}" variable — the menu is a click surface and every click composes a URL from "${Y_}", so it is not synthesized for a config without it. Declare a "${Y_}" variable (any config merged onto the bundled default inherits one) or remove the anchor placement.`,line:o});continue}if(!Object.prototype.hasOwnProperty.call(t.segments,s.name)){let t=Ey[s.name],n=t===void 0?``:` (the built-in segment "${s.name}" was renamed to "${t}" — update this reference)`;e.issues.push({path:a,message:`${a} entry "${s.name}" does not match any declared segment${n}`,line:o})}}},l=By(e.source);c(Ko(t.root),l,W(e.source,[l]));for(let[n,r]of Object.entries(t.presets)){if(r.root===void 0)continue;let t=`presets.${n}.root`,i=W(e.source,[`presets`,n,`root`]);c(qo(r.root),t,i)}let u=new Map([[`root`,Ko(t.root)]]);for(let e of ag(t.presets)){let{node:n,path:r}=cg(t,e);u.set(r,n)}for(let[t,n]of u)o(n,t,W(e.source,t.split(`.`)));for(let[n,i]of Object.entries(t.variables))Ly(e,`variables.${n}`,i,r);for(let[n,i]of Object.entries(t.segments)){if(i.vars)for(let[t,a]of Object.entries(i.vars))Ly(e,`segments.${n}.vars.${t}`,a,r,n);for(let a of[`template`,`bg`,`fg`,`when`]){let o=i[a];if(typeof o==`string`){zy(e,`segments.${n}.${a}`,o,r,{segCtx:n});for(let r of Sy(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}"`,line:W(e.source,[`segments`,n,a])});for(let r of wy(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}" (in a picker, menu or carousel)`,line:W(e.source,[`segments`,n,a])})}}}for(let[n,i]of Object.entries(t.variables))Ry(e,`variables.${n}`,i,r);for(let[n,i]of Object.entries(t.segments))if(i.vars)for(let[t,a]of Object.entries(i.vars))Ry(e,`segments.${n}.vars.${t}`,a,r,n);(My(t)||Py(t))&&!Object.prototype.hasOwnProperty.call(t.variables,`session.id`)&&e.issues.push({path:`variables.session.id`,message:`state reads and action set-writes require a global "session.id" variable (segment-local declarations do not satisfy this — declareState/set-state both read the global box; conventionally { kind: "input", path: "session_id" })`,line:W(e.source,[`variables`])})}const ky=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function Ay(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=W(e.source,[`actions`,n,r]);if(!ag(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${ag(t.presets).join(`, `)})`,line:c});return}if(r===`reset`)return;let l=`removeSegment`in o,u=`insertSegment`in o,d=`insertSegmentFrom`in o;if(!l&&!u&&!d){e.issues.push({path:s,message:`actions.${n}: "${i}" is a "presets.<name>.root" target and can only be paired with "removeSegment", "insertSegment", or "insertSegmentFrom" (not "to"/"from"/"cycle"/bounded — those have no meaning as a tree op)`,line:c});return}let f=e=>!Object.prototype.hasOwnProperty.call(t.segments,e);l&&`removeSegment`in o&&f(o.removeSegment)&&e.issues.push({path:s,message:`actions.${n}: removeSegment "${o.removeSegment}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c}),u&&`insertSegment`in o&&(f(o.insertSegment)&&e.issues.push({path:s,message:`actions.${n}: insertSegment "${o.insertSegment}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c}),f(o.anchor)&&e.issues.push({path:s,message:`actions.${n}: anchor "${o.anchor}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c})),d&&`insertSegmentFrom`in o&&f(o.anchor)&&e.issues.push({path:s,message:`actions.${n}: anchor "${o.anchor}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c})}function jy(e){return[...Object.values(e.variables),...Object.values(e.segments).flatMap(e=>Object.values(e.vars??{}))].filter(e=>e.kind===`state`)}function My(e){return jy(e).length>0}function Ny(e,t){return jy(e).some(e=>e.kind===`state`&&e.key===t)}function Py(e){return Object.values(e.actions).some(e=>rv(e)||iv(e)||av(e)||ov(e)||sv(e)||cv(e))}function Fy(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),Iy(r)&&n.add(e)};for(let[t,n]of Object.entries(e.variables))r(t,n);for(let[t,n]of Object.entries(e.segments))for(let[e,i]of Object.entries(n.vars??{}))r(`${t}.${e}`,i);return{names:t,documents:n}}function Iy(e){return(e.kind===`shell`||e.kind===`file`)&&io(e.parse)===`json`}function Ly(e,t,n,r,i){n.kind===`template`&&zy(e,`${t}.template`,n.template,r,{segCtx:i}),oo(n)&&n.cache&&`key`in n.cache&&zy(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function Ry(e,t,n,r,i){if(oo(n)&&n.cache&&`depends_on`in n.cache)for(let a=0;a<n.cache.depends_on.length;a++){let o=n.cache.depends_on[a];if(r.names.has(o))continue;let s=i===void 0?void 0:`${i}.${o}`,c=s!==void 0&&r.names.has(s)?` (segment-local vars are namespaced — write "${s}")`:``;e.issues.push({path:`${t}.cache.depends_on[${a}]`,message:`cache.depends_on references unknown variable "${o}"${c}`,line:W(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function zy(e,t,n,r,i){for(let a of by(n)){if(Ty(a,r))continue;let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,o=n!==void 0&&Ty(n,r)?` (segment-local vars are namespaced — write ".${n}")`:``;e.issues.push({path:t,message:`Template references unknown variable ".${a}"${o}`,line:i?.line??W(e.source,t.split(`.`))})}}function By(e){try{let t=Xe.default.parse(e);if(_o(t)&&`root`in t)return`root`}catch{}return`layout`}function Vy(e,t){let{graph:n,nodeInfo:r}=Hy(t),i=new Map,a=[];for(let e of n.keys())i.set(e,0);for(let e of n.keys())if(i.get(e)===0&&o(e))return;function o(t){i.set(t,1),a.push(t);for(let s of n.get(t)??[]){let t=i.get(s);if(t===1){let t=a.indexOf(s),n=[...a.slice(t),s],i=n[0],o=r.get(i);return e.issues.push({path:o?.declarationPath??`variables.${i}`,message:`Dependency cycle: ${n.join(` → `)}`,line:W(e.source,o?.linePathParts??[`variables`,i])}),!0}if(t===0&&o(s))return!0}return i.set(t,2),a.pop(),!1}}function Hy(e){let t=new Set(Object.keys(e.variables)),n=new Map;for(let t of Object.keys(e.variables))n.set(t,{declarationPath:`variables.${t}`,linePathParts:[`variables`,t]});for(let[r,i]of Object.entries(e.segments))if(i.vars)for(let e of Object.keys(i.vars)){let i=`${r}.${e}`;t.add(i),n.set(i,{declarationPath:`segments.${r}.vars.${e}`,linePathParts:[`segments`,r,`vars`,e]})}let r=new Map;for(let e of t)r.set(e,new Set);let i=(e,n)=>{for(let i of by(n)){if(t.has(i)){r.get(e).add(i);continue}let n=i.split(`.`)[0];n!==i&&t.has(n)&&r.get(e).add(n)}},a=(e,n)=>{if(n.kind===`template`&&i(e,n.template),oo(n)&&(n.cache&&`key`in n.cache&&i(e,n.cache.key),n.cache&&`depends_on`in n.cache))for(let i of n.cache.depends_on)t.has(i)&&r.get(e).add(i)};for(let[t,n]of Object.entries(e.variables))a(t,n);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))a(`${t}.${e}`,r);return{graph:r,nodeInfo:n}}const Uy=[`json5`,`json`];function Wy(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function Gy(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?f.homedir()+e.slice(1):e}function Ky(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?Uy.map(t=>c.join(e,`.cc-candybar.${t}`)):[],...Uy.map(e=>c.join(r,`.cc-candybar.${e}`)),...Uy.map(e=>`${qy()}.${e}`)])]}function qy(){let e=process.env.XDG_CONFIG_HOME??c.join(f.homedir(),`.config`);return c.join(e,`cc-candybar`,`config`)}function Jy(e,t,n){let r=[];for(let i of Ky(e,t,n)){let e=Wy(i);if(e===`present`)return{kind:`file`,path:i,unchecked:r};e!==`absent`&&r.push(e)}if(n===void 0)return{kind:`default`,unchecked:r};let[i]=r;return i===void 0?{kind:`missing`,path:n}:{kind:`unreadable`,...i}}function Yy(e,t,n){let r=Jy(e,t,n);return r.kind===`default`?`${qy()}.${Uy[0]}`:r.path}function Xy(e){return Zy(e).join(`
|
|
120
|
-
`)||null}function
|
|
119
|
+
`,Eg=`${cl}live`,Dg=[`☐ live`,`☑ live`],Og={variable:Eg,key:Eg,member:`open`},kg=`and ${Qs($h)} (not ${Qs(Og)})`,Ag=`{{ ${kg} }}`;function jg(e,t){return`{{ if ${kg} }}${e}{{ else }}${t}{{ end }}`}const Mg=`preset.customized`,Ng=`{{ and ${Qs($h)} .${Mg} }}`,Pg=dl;function Fg(e){return`${cl}addable.${e}`}function Ig(e){let t=Object.keys(e.segments).filter(e=>!Pg(e)),n=new Map;for(let r of lg(e.presets)){let{node:i}=fg(e,r),a=og(i);n.set(Fg(r),{members:t.filter(e=>!a.has(e))})}return n}function Lg(e,t,n){return n.segments[e]={template:t,when:eg},{kind:`segment`,name:e}}function Rg(e,t,n,r){let i=`${cl}${e}.remove.${al(n)}`;return r.actions[i]={persist:t,removeSegment:n},`{{ action "${i}" "-" }}`}const zg=`${cl}label:`;function Bg(e){return e.startsWith(zg)?e.slice(zg.length):e.startsWith(`edit.`)?void 0:e}function Vg(e,t){let n=`${zg}${e}`;return t.segments[n]={template:`{{ "${Ys(e)}" }}`,when:Ag},{kind:`segment`,name:n}}function Hg(e,t,n,r,i,a,o){let s=`${cl}${e}.insert.${n}`,c=`${cl}${e}.insertSeg.${n}`;o.actions[s]={persist:t,insertSegmentFrom:r,anchor:i,relation:a};let l=jh(s),u=Mh(c,s,void 0),d=Fh(u),f=Ph(u,l);return o.variables[u]=ec(u,Gs),o.variables[d]={kind:`state`,key:d,default:`0`},o.actions[f]=tc(u,l),o.actions[d]={set:d,int:!0},{host:c,template:`{{ menu "${s}" "+" "✕" }}`}}function Ug(e,t,n,r,i,a){let o=[],s=e.children.findIndex(e=>e.kind===`segment`&&!Pg(e.name)),c=e=>Ug(e,t,n,r,i,a);for(let[l,u]of e.children.entries()){if(u.kind===`container`){o.push(c(u));continue}let d=Yo(u,c);if(Pg(u.name)){o.push(d);continue}let f=e=>Hg(t,n,String(a.n++),r,u.name,e,i),p=l===s?[f(`before`)]:[],m=f(`after`),h={kind:`container`,direction:`horizontal`,children:[...p.map(e=>Lg(e.host,e.template,i)),Vg(u.name,i),{...d,when:jg(`false`,u.when??`true`)},Lg(m.host,`${Rg(t,n,u.name,i)} ${m.template}`,i)]};o.push(e.direction===`vertical`?{kind:`container`,direction:`horizontal`,children:[h]}:h)}return{...e,children:o,...e.when!==void 0&&{when:jg(`true`,e.when)}}}function Wg(e,t,n,r,i,a){let o=`${cl}${n}.resetLayout`,s=`${cl}${n}.customized`;i.actions[o]={reset:r},i.ensured[Mg]={kind:`input`,path:Mg,type:`boolean`,default:!1};let c=Ys(t);return i.segments[s]={template:`{{ action "${o}" "↺ ${c} customized" }}`,when:Ng},{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:s},Gg(e,a)]}}function Gg(e,t){if(e.kind===`segment`)return{kind:`container`,direction:`horizontal`,children:[e,t]};let n=e.children.at(-1);return e.direction===`vertical`&&n!==void 0&&(n.kind===`segment`||n.when===void 0)?{...e,children:[...e.children.slice(0,-1),Gg(n,t)]}:{...e,children:[...e.children,t]}}function Kg(e,t,n,r){let{node:i}=fg(e,t),a=gg(t),o=Fg(t),s=al(t);return Wg(Ug(i,s,a,o,n,{n:0}),t,s,a,n,r)}function qg(e){if(!(`edit.toggle`in e.actions))return e;let t={variables:{},ensured:{},actions:{},segments:{}},n=bg(`${cl}help`,Cg,[$h],t);t.variables[Eg]=ec(Eg,Gs),t.actions[Eg]=tc(Eg,Og.member),t.segments[Eg]={template:$s(Eg,...Dg),when:eg};let r={kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:Eg},n]},i={...e.presets};for(let n of lg(e.presets)){let a=Kg(e,n,t,r);i[n]={...dg(e.presets,n),root:a}}return{...e,variables:{...t.ensured,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:i}}const Jg={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function Yg(e){let t=e[Jg.socket]??``,n=e[Jg.pane]??``;if(t===``||n===``)return null;let r=e[Jg.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}const Xg=Jg.truecolor,Zg=[{name:`tmuxTruecolor`,label:`tmux truecolor`,probe:({tmux:e,claudeSettingsEnv:t})=>{switch(e.kind){case`unreported`:return{ok:!1,reason:"the client reported no tmux facts — re-run `cc-candybar install` to stage a current client"};case`outside`:return{ok:!0};case`inside`:{if(e.termfeatures.kind===`failed`)return{ok:!1,reason:`tmux could not be asked: ${e.termfeatures.reason}`};if(!e.termfeatures.value.includes(`RGB`)||e.hint.truecolor!==null)return{ok:!0};let n=t[Xg];return typeof n==`string`&&n!==``?{ok:!1,reason:`${Xg} is set in ~/.claude/settings.json — restart Claude Code to apply`}:{ok:!1,reason:`Claude Code renders the bar in 256 colours inside tmux`,fix:{kind:`claude-settings-env`,name:Xg,value:`1`}}}}}}];function Qg(e){return Zg.map(t=>({check:t,verdict:t.probe(e)}))}function $g(e){return Zg.find(t=>t.name===e)}function e_(e){let t=`settings.doctor.${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`}}function t_(e){return e.flatMap(({check:e,verdict:t})=>{let n=e_(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:Ja}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:t.reason},{key:n.fixable,value:t.fix===void 0?Ja:qa}]})}const n_={copySession:{copy:`{{ .session.id }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`}};function r_(e){let t=t=>`${e}${t}`;return{template:`{{ action "${t(`copySession`)}" "⎘ id" }} {{ action "${t(`openProject`)}" "↗ proj" }} {{ action "${t(`openTranscript`)}" "↗ log" }}{{ if ne .git.repoUrl "" }} {{ link .git.repoUrl "↗ repo" }}{{ end }}`,actions:Object.fromEntries(Object.entries(n_).map(([t,n])=>[`${e}${t}`,n]))}}const i_={theme:{configKey:`palette`,sessionKey:`theme`,effectiveVar:`theme.effective`},preset:{configKey:`preset`,sessionKey:`preset`,effectiveVar:`preset.effective`},look:{configKey:`look`,sessionKey:`look`,effectiveVar:`look.effective`},style:{configKey:`style`,sessionKey:`style`,effectiveVar:`style.effective`},progression:{configKey:`progression`,sessionKey:`progression`,effectiveVar:`progression.effective`},charset:{configKey:`charset`,sessionKey:`charset`,effectiveVar:`charset.effective`},colorCompatibility:{configKey:`colorCompatibility`,sessionKey:`colorCompatibility`,effectiveVar:`colorCompatibility.effective`},autoWrap:{configKey:`autoWrap`,sessionKey:`autoWrap`,effectiveVar:`autoWrap.effective`},padding:{configKey:`padding`,sessionKey:`padding`,effectiveVar:`padding.effective`}},a_=Object.values(i_),o_=`${ll}menu`,s_=Qh,c_=`${ll}edit`,l_=`${ll}close`,u_=`${ll}toolbar`,d_=r_(ll),f_=`${ll}persist`,p_=`${ll}config`,m_=f_,h_={variable:o_,key:o_,member:s_},g_={variable:p_,key:p_,member:s_},__=`${ll}tools`,v_={variable:__,key:__,member:s_},y_=`${ll}doctor`,b_=`${y_}.run`,x_=e=>`${y_}.fix.${e}`,S_=e=>`${y_}.${e}`,C_=`${ll}help.persist`,w_=`${ll}pickers`,T_=[`{{ themePreview }}`],E_=[{name:`preset`,...i_.preset,glyph:`▦`,domain:`presets`,beneath:[`{{ layoutPreview }}`]}],D_=[{name:`theme`,...i_.theme,glyph:`🎨`,domain:`themes`,beneath:T_},{name:`look`,...i_.look,glyph:`◐`,domain:`looks`,beneath:T_},{name:`style`,...i_.style,glyph:`✦`,domain:`styles`,beneath:[]},{name:`progression`,...i_.progression,glyph:`🎼`,domain:`progressions`,beneath:[`{{ layoutPreview }}`]},{name:`charset`,...i_.charset,glyph:`🔣`,domain:`charsets`,beneath:[]},{name:`colorCompatibility`,...i_.colorCompatibility,glyph:`🌈`,domain:`colorCompatibilities`,beneath:[]}],O_={name:`wrap`,...i_.autoWrap},k_={name:`padding`,...i_.padding},A_=`${ll}${O_.name}`,j_=`${ll}${k_.name}`,M_=[...E_,...D_];new Set([...M_,O_,k_].flatMap(e=>[e.sessionKey,e.configKey]));const N_=e=>`${ll}${e}`,P_=e=>`${ll}apply.${e}`,F_=e=>`${ll}reset.${e}`,I_=e=>`${ll}carousel.${e}`,L_=(e,t)=>`${I_(e)}.${t}`,R_=Nh(w_),z_=e=>({variable:R_,key:R_,member:jh(P_(e.name))});function B_(e){return Xs(N_(e.name),z_(e),{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:I_(e.name)},...e.beneath.map((t,n)=>({kind:`segment`,name:L_(e.name,n)}))]},`drop`)}function V_(e){return e===o_}function H_(e){let t={kind:`segment`,name:o_};if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[H_(n),...r]}:{kind:`container`,direction:`vertical`,children:[t,e]}}return e.kind===`container`&&e.when===void 0?{...e,children:[t,...e.children]}:{kind:`container`,direction:`horizontal`,children:[t,e]}}function U_(e){return W_(e)>0?e:H_(e)}function W_(e){let t=0;for(let n of Xo(e))n.kind===`segment`&&V_(n.name)&&(t+=1);return t}function G_(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&V_(e.name)||e.opens!==void 0&&G_(e.opens.body,!0):e.children.some(e=>G_(e,n))}function K_(e,t){return e.kind===`segment`?V_(e.name)?Xs(e.name,h_,{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:u_},{kind:`segment`,name:f_},t,...E_.map(B_),Xs(p_,g_,{kind:`container`,direction:`horizontal`,children:[...D_.map(B_),{kind:`segment`,name:A_},{kind:`segment`,name:j_}]},`drop`),Xs(__,v_,{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:y_},...Zg.map(e=>({kind:`segment`,name:S_(e.name)}))]},`drop`),{kind:`segment`,name:c_}]},`inline`):e:q_(e,t)}function q_(e,t){return{...e,children:e.children.map(e=>K_(e,t))}}function J_(e){let t={variables:{[o_]:ec(o_,Gs)},actions:{[o_]:tc(o_,s_),[p_]:tc(p_,s_),[__]:tc(__,s_),[b_]:{doctor:`run`},[l_]:{set:h_.key,to:Gs},[c_]:{do:[Zh,l_]},...d_.actions,[f_]:{set:m_,cycle:[Ja,qa]}},segments:{[o_]:{template:$s(o_,e,`❌`)},[u_]:{template:d_.template},[f_]:{template:`{{ action "${f_}" "☐ persist?" "☑ persist?" }}`},[p_]:{template:$s(p_,`⚙ config ▸`,`⚙ config ▾`)},[__]:{template:$s(__,`🧰 tools ▸`,`🧰 tools ▾`)},[y_]:{template:`{{ action "${b_}" "🩺 doctor" }}`},[A_]:{template:`{{ action "${P_(`wrap`)}" "wrap: on" "wrap: off" }} {{ action "${F_(`wrap`)}" "↺" }}`},[j_]:{template:`{{ action "${P_(`padding`)}.down" "◀" }} padding {{ .${k_.effectiveVar} }} {{ action "${P_(`padding`)}.up" "▶" }} {{ action "${F_(`padding`)}" "↺" }}`},[c_]:{template:`{{ action "${c_}" "✎ edit" "✎ done" }}`}}};return t.variables[m_]={kind:`state`,key:m_,default:Ja},t.variables[p_]=ec(p_,Gs),t.variables[__]=ec(__,Gs),X_(t),Y_(t),{artifacts:t,help:bg(C_,wg,[h_],t)}}function Y_(e){for(let t of Zg){let n=e_(t.name),r=x_(t.name);for(let t of Object.values(n))e.variables[t]={kind:`state`,key:t,default:``};e.actions[r]={doctor:`fix`,check:t.name},e.segments[S_(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${qa}" }} {{ action "${r}" "[fix]" }}{{ end }}{{ end }}`}}}function X_(e){for(let t of M_){let n=P_(t.name);e.actions[n]={set:t.sessionKey,persist:t.configKey,persistWhen:m_,from:t.domain},e.actions[F_(t.name)]={reset:t.configKey},Z_(t,e)}e.actions[P_(O_.name)]={set:O_.sessionKey,persist:O_.configKey,persistWhen:m_,cycle:[...Ya]},e.actions[F_(O_.name)]={reset:O_.configKey};for(let t of[-1,1])e.actions[`${P_(k_.name)}.${t<0?`down`:`up`}`]={set:k_.sessionKey,persist:k_.configKey,persistWhen:m_,...Xa,by:t};e.actions[F_(k_.name)]={reset:k_.configKey}}function Z_(e,t){let n=P_(e.name),r=z_(e),i=Ph(r.key,r.member);t.variables[r.key]=ec(r.key,Gs),t.actions[i]=tc(r.key,r.member),t.segments[N_(e.name)]={template:`${e.glyph} {{ .${e.effectiveVar} }} ${$s(i,`▸`,`▾`)} {{ action "${F_(e.name)}" "↺" }}`},t.segments[I_(e.name)]={template:`{{ carousel "${n}" }}`},e.beneath.forEach((n,r)=>{t.segments[L_(e.name,r)]={template:n}})}function Q_(e){e.variables[Xh]=ec(Xh,Gs),e.actions[Zh]=tc(Xh,Qh)}const $_=`session.id`;function ev(e){return Object.prototype.hasOwnProperty.call(e.variables,$_)}function tv(e){if(!ev(e))return e;let{artifacts:t,help:n}=J_(e.globals.menuGlyph??`🍫`);Q_(t);let r={...e.presets};for(let t of lg(e.presets)){let{node:i}=fg(e,t);r[t]={...dg(e.presets,t),root:K_(U_(i),n)}}return{...e,variables:{...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:r}}const nv=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`doctor`,`do`],rv=`persistWhen`;function iv(e){return rv in e}function av(e){return iv(e)?`to`in e?[{set:e.set,to:e.to},{persist:e.persist,to:e.to}]:`from`in e?[{set:e.set,from:e.from},{persist:e.persist,from:e.from}]:`cycle`in e?[{set:e.set,cycle:e.cycle},{persist:e.persist,cycle:e.cycle}]:[{set:e.set,min:e.min,max:e.max,by:e.by},{persist:e.persist,min:e.min,max:e.max,by:e.by}]:[e]}function ov(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function sv(e){return`set`in e}function cv(e){return`persist`in e}function lv(e){return`reset`in e}function uv(e){return`undo`in e}function dv(e){return`redo`in e}function fv(e){return`doctor`in e}function pv(e,t){if(t===void 0)return{};if(!us(t))return J(e,`actions`,`actions must be an object, got ${ds(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=mv(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function J(e,t,n){e.issues.push({path:t,message:n,line:W(e.source,t.split(`.`))})}function mv(e,t,n){if(!us(n))return J(e,t,`${t} must be an action object, got ${ds(n)}`),null;if(`persistWhen`in n)return qv(e,t,n,`dual`,Wv);let r=nv.filter(e=>e in n);return r.length===1?hv[r[0]](e,t,n):(J(e,t,`action must declare exactly one of: ${nv.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const hv={set:(e,t,n)=>qv(e,t,n,`set`,Hv),persist:(e,t,n)=>qv(e,t,n,`persist`,Uv),copy:gv(`copy`),open:gv(`open`),reset:_v,undo:vv(`undo`),redo:vv(`redo`),doctor:yv,do:bv};function gv(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&J(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);let i=as(t,n,r,e);return i===null?null:{[e]:i}}}function _v(e,t,n){for(let r of Object.keys(n))r!==`reset`&&J(e,`${t}.${r}`,`Unknown key "${r}" on a reset action. Expected only: reset`);let r=xv(e,t,`reset`,n,`reset key must be non-empty (the config globals field to clear)`,e=>`reset key "${e}" contains "/" — keys must be slash-free`);return r===null?null:{reset:r}}function vv(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&J(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);return r[e]===!0?{[e]:!0}:(J(t,`${n}.${e}`,`${e} must be the literal true (it takes no key — it steps the history of the session's config file), got ${G(r[e])}`),null)}}function yv(e,t,n){let r=n.doctor,i=r===`run`?[`doctor`]:[`doctor`,`check`];for(let r of Object.keys(n))i.includes(r)||J(e,`${t}.${r}`,`Unknown key "${r}" on a doctor action. Expected only: ${i.join(`, `)}`);if(r!==`run`&&r!==`fix`)return J(e,`${t}.doctor`,`doctor must be "run" or "fix", got ${G(r)}`),null;if(r===`run`)return{doctor:`run`};let a=n.check;return typeof a!=`string`||$g(a)===void 0?(J(e,`${t}.check`,`doctor fix must name a check (have: ${Zg.map(e=>e.name).join(`, `)}), got ${G(a)}`),null):{doctor:`fix`,check:a}}function bv(e,t,n){for(let r of Object.keys(n))r!==`do`&&J(e,`${t}.${r}`,`Unknown key "${r}" on a do action. Expected only: do`);let r=n.do;return!Array.isArray(r)||r.length<2||r.some(e=>typeof e!=`string`||e===``)?(J(e,`${t}.do`,`do must list at least two action names (the first is the click's face, the rest ride along in the same click), got ${G(r)}`),null):{do:r}}function xv(e,t,n,r,i,a){let o=as(e,t,r,n);if(o===null)return null;let s=`${t}.${n}`;return o===``?(J(e,s,i),null):o.includes(`/`)?(J(e,s,a(o)),null):o}const Sv={set:[[`set`,`the SessionState key to write`]],persist:[[`persist`,`the config globals field to write`]],dual:[[`set`,`the SessionState key written while persistWhen is off`],[`persist`,`the config globals field written while persistWhen is on`],[rv,`the SessionState key whose boolean value chooses the destination`]]};function Cv(e,t,n,r){let i={},a=Sv[r],o=!0;for(let[r,s]of a){if(!(r in n)){J(e,t,`${r} is required here (${s}) — a dual-destination action declares ${a.map(([e])=>e).join(`, `)} together, plus one value source`),o=!1;continue}let c=xv(e,t,r,n,`${r} key must be non-empty (${s})`,e=>`${r} key "${e}" contains "/" — keys must be slash-free`);if(c===null){o=!1;continue}i[r]=c}return o?i:null}function wv(e){return e===`set`?`set-state`:e===`persist`?`set-config`:`set-state/set-config`}const Tv={to:Jv(`set`)},Ev={to:Jv(`persist`)},Dv={from:Yv(`set`)},Ov={from:Yv(`persist`)},kv={min:ey(),max:ey(),by:ey()},Av={int:Zv()},jv={cycle:Xv(`set`)},Mv={to:Jv(`dual`)},Nv={from:Yv(`dual`)},Pv={cycle:Xv(`dual`)},Fv={cycle:Xv(`persist`)},Iv={removeSegment:Qv(`removeSegment`)},Lv={insertSegment:Qv(`insertSegment`),anchor:Qv(`anchor`),relation:$v()},Rv={insertSegmentFrom:Yv(`persist`),anchor:Qv(`anchor`),relation:$v()},zv={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},Bv={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function Vv(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=Sv[e].map(([e])=>e),s=(e,n,r)=>ps(e,t,n,r),c=Os(t);return{detect:a,allowed:[...o,...i],label:i.join(`/`),json:{type:`object`,properties:{...Object.fromEntries(o.map(e=>[e,{type:`string`}])),...c.properties},required:[...o,...c.required??[]],additionalProperties:!1},parse:n.length?xs(s,...n):s}}const Hv=[Vv(`set`,Tv),Vv(`set`,Dv),Vv(`set`,kv,[zv,Bv]),Vv(`set`,Av),Vv(`set`,jv)],Uv=[Vv(`persist`,Ev),Vv(`persist`,Ov),Vv(`persist`,kv,[zv,Bv]),Vv(`persist`,Fv),Vv(`persist`,Iv),Vv(`persist`,Lv,[],[`insertSegment`]),Vv(`persist`,Rv,[],[`insertSegmentFrom`])],Wv=[Vv(`dual`,Mv),Vv(`dual`,Nv),Vv(`dual`,kv,[zv,Bv]),Vv(`dual`,Pv)];function Gv(e){let t=[`"to" (a literal value)`,`"from" (an option domain — a registered domain name like "themes"/"styles"/"looks", or an inline array of literal values)`,`"min"/"max"/"by" (a bounded step)`];return e===`set`&&t.push(`"int" (an unbounded integer cursor)`),t.push(`"cycle" (an enumerated domain stepped in order)`),e===`persist`&&t.push(`"removeSegment" (remove a named segment from the layout)`,`"insertSegment"/"anchor"/"relation" (insert a named segment before/after an existing one)`,`"insertSegmentFrom"/"anchor"/"relation" (insert a segment PICKED from an option domain before/after an existing one)`),t}function Kv(e){let t=Gv(e),n=t[t.length-1];return`a ${e} action declares exactly one value source: ${t.length===1?n:`${t.slice(0,-1).join(`, `)}, or ${n}`}`}function qv(e,t,n,r,i){let a=Cv(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return J(e,t,`${Kv(r)}${o.length>1?` — found: ${o.map(e=>e.label).join(`, `)}`:``}`),null;let s=o[0];for(let i of Object.keys(n))s.allowed.includes(i)||J(e,`${t}.${i}`,`Unknown key "${i}" on this ${r} action. Expected one of: ${s.allowed.join(`, `)}`);let c=s.parse(e,t,n);return a===null||c===null?null:{...a,...c}}function Jv(e){let t=wv(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>xv(n,r,i,a,`${e} value must be non-empty — an empty value cannot be delivered on the ${t} wire`,t=>`${e} value "${t}" contains "/" — ${e} values must be slash-free`)??void 0}}function Yv(e){let t=wv(e);return{required:!0,json:{anyOf:[{type:`string`,minLength:1},{type:`array`,items:{type:`string`,minLength:1},minItems:1,uniqueItems:!0}]},parse:(n,r,i,a)=>{let o=a[i],s=`${r}.${i}`;if(typeof o==`string`){if(o===``){J(n,s,`${i} must be a non-empty domain name`);return}return o}if(Array.isArray(o)&&o.every(e=>typeof e==`string`)){let r=o;if(r.length===0){J(n,s,`${i} must name a domain (a non-empty string) or declare an inline domain (a non-empty array of values)`);return}if(r.some(e=>e===``)){J(n,s,`${i} array members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}let a=r.filter(e=>e.includes(`/`));if(a.length>0){J(n,s,`${i} array member(s) ${a.map(e=>`"${e}"`).join(`, `)} contain "/" — ${e} values must be slash-free`);return}if(new Set(r).size!==r.length){J(n,s,`${i} array members must be unique — a duplicated value would render the same picker option twice`);return}return r}J(n,s,`${i} must be a domain name (a string) or an inline domain (an array of strings), got ${G(o)}`)}}}function Xv(e){let t=wv(e);return{required:!0,json:{type:`array`,items:{type:`string`,minLength:1},minItems:2,uniqueItems:!0},parse:(n,r,i,a)=>{let o=a[i],s=`${r}.${i}`;if(!Array.isArray(o)||o.some(e=>typeof e!=`string`)){J(n,s,`cycle must be an array of strings (the enumerated values a click steps through), got ${ds(o)}`);return}let c=o;if(c.length<2){J(n,s,`cycle needs at least two members (one member has no successor — use a literal "to")`);return}let l=c.some(e=>e===``),u=c.filter(e=>e.includes(`/`));if(l){J(n,s,`cycle members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}if(u.length>0){J(n,s,`cycle member(s) ${u.map(e=>`"${e}"`).join(`, `)} contain "/" — ${e} values must be slash-free`);return}if(new Set(c).size!==c.length){J(n,s,`cycle members must be unique — the successor of a duplicated member is ambiguous`);return}return c}}}function Zv(){return{required:!0,json:{const:!0},parse:(e,t,n,r)=>{if(r[n]!==!0){J(e,`${t}.${n}`,`int must be the literal true (declares the key an unbounded integer cursor — a paged picker's page key), got ${G(r[n])}`);return}return!0}}}function Qv(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=as(t,n,i,r);if(a===null)return;let o=`${n}.${r}`;if(a===``){J(t,o,`${e} must be non-empty (a segment name)`);return}if(a.includes(`/`)||a.includes(`:`)){J(t,o,`${e} "${a}" contains "/" or ":" — segment names in a layout op must be free of both (the click wire's own delimiter and layout-ops.ts's op-token delimiter)`);return}return a}}}function $v(){return{required:!0,json:{enum:[`before`,`after`]},parse:(e,t,n,r)=>{let i=r[n];if(i!==`before`&&i!==`after`){J(e,`${t}.${n}`,`relation must be "before" or "after", got ${G(i)}`);return}return i}}}function ey(){return{required:!0,json:{type:`integer`},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`number`||!Number.isInteger(i)){J(e,`${t}.${n}`,`${n} must be an integer, got ${G(i)}`);return}return i}}}const ty={noun:`look key`,fields:{hueShift:ws(),chromaScale:ws({min:0}),lightnessScale:ws(),lightnessShift:ws()}};function ny(e,t){if(!us(t))return e.issues.push({path:`looks`,message:`looks must be an object mapping look names to adaptation objects, got ${ds(t)}`,line:W(e.source,[`looks`])}),{};let n={};for(let[r,i]of Object.entries(t)){if(r===``||r.includes(`/`)){e.issues.push({path:`looks.${r}`,message:`look name ${JSON.stringify(r)} must be non-empty and slash-free — a look picker writes the name on the set-state wire, which rejects empty values and splits on "/"`,line:W(e.source,[`looks`,r])});continue}let t=fs(e,ty,`looks.${r}`,i);t!==null&&(n[r]={...On,...t})}return n}const ry={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:Rl(e,`${t}.${n}`,r[n])},globals:{required:!1,json:gc(),parse:(e,t,n,r)=>r[n]===void 0?void 0:hc(e,`${t}.${n}`,r[n])}}};function iy(e,t){if(!us(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${ds(t)}`,line:W(e.source,[`presets`])}),{};let n={};for(let[r,i]of Object.entries(t)){if(r===``||r.includes(`/`)||/[\n\r]/.test(r)){e.issues.push({path:`presets.${r}`,message:`preset name ${JSON.stringify(r)} must be non-empty, slash-free, and newline-free — a preset picker writes the name on the set-state wire (which rejects empty values and splits on "/"), and edit mode splices it into a synthesized template string`,line:W(e.source,[`presets`,r])});continue}let t=fs(e,ry,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function ay(e,t){if(t===void 0)return{};if(!us(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${ds(t)}`,line:W(e.source,[`helpers`])}),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){if(typeof i!=`string`){e.issues.push({path:`helpers.${r}`,message:`helpers.${r} must be a string template body, got ${G(i)}`,line:W(e.source,[`helpers`,r])});continue}n[r]=i}return n}const oy=new Map,sy=new Map;function cy(e){let t=ly(e);if(t===null)throw Error(`Palette "${e}" (resolved "${va(e)}") did not resolve in the theme registry — allowed names and the registry are inconsistent`);return t}function ly(e){let t=va(e),n=oy.get(t);if(n!==void 0)return n;let r=ir(t);return r===null?null:(oy.set(t,r),r)}function uy(e,t){let n=`${e.name} ${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,r=sy.get(n);if(r!==void 0)return r;let i=fr(e,t);return sy.set(n,i),i}function dy(e){let t=ly(e);return t===null?null:{kind:`decided`,name:e,value:t}}function fy(e,t){let n=dy(e);return n===null?(t(`globals.palette rendered "${ya}": "${e}" names no installed theme`),my()):n}function py(e,t,n){return Ea(e,t,n,my(),dy)}function my(){return dy(ya)}function hy(e){return Da(py(void 0,null,e),()=>ya,my).value}const gy=new Map;function _y(e,t,n){gy.set(e,{permanent:!0,resolve:t,paletteOf:n})}_y(`themes`,()=>Sa(),e=>cy(e)),_y(`styles`,()=>Ma),_y(`progressions`,()=>Wa),_y(`charsets`,()=>Fa),_y(`colorCompatibilities`,()=>za);function vy(e){return new Map([[`looks`,{members:Object.keys(e.looks),paletteOf:(t,n)=>uy(n,e.looks[t])}],[`presets`,{members:lg(e.presets)}]])}function yy(e){return[...new Set([...gy.keys(),...e.keys()])]}function by(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=gy.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(`unknown option domain "${e}" (have: ${yy(t).join(`, `)})`)}const xy=/{{([\s\S]*?)}}/g,Sy=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g,Cy=/(?<![A-Za-z0-9_)])\.([A-Za-z_][\w]*(?:\.[A-Za-z_][\w]*)*)/g;function wy(e){let t=new Set,n;for(xy.lastIndex=0;(n=xy.exec(e))!==null;){let e=n[1].replace(Sy,``),r;for(Cy.lastIndex=0;(r=Cy.exec(e))!==null;)t.add(r[1])}return t}const Ty=/\baction\s+$/;function Ey(e){let t=new Set;xy.lastIndex=0;let n;for(;(n=xy.exec(e))!==null;){let e=n[1],r=0,i;for(Sy.lastIndex=0;(i=Sy.exec(e))!==null;)Ty.test(e.slice(r,i.index))&&t.add(i[0].slice(1,-1)),r=i.index+i[0].length}return t}const Dy=/\b(picker|menu|carousel)\s+$/;function Oy(e){let t=new Set;xy.lastIndex=0;let n;for(;(n=xy.exec(e))!==null;){let e=n[1],r=0,i=0,a;for(Sy.lastIndex=0;(a=Sy.exec(e))!==null;){let n=Dy.exec(e.slice(r,a.index));n!==null&&(i=n[1]===`picker`?2:1),i>0&&(t.add(a[0].slice(1,-1)),i--),r=a.index+a[0].length}}return t}function ky(e,t){if(t.names.has(e))return!0;let n=`${e}.`;for(let e of t.names)if(e.startsWith(n))return!0;for(let n of t.documents)if(e.startsWith(`${n}.`))return!0;return!1}const Ay={gitTaculous:`gitaculous`};function jy(e,t){let n=new Map;for(let e of Object.keys(t)){let t=al(e),r=n.get(t);r?r.push(e):n.set(t,[e])}for(let[t,r]of n)r.length<2||e.issues.push({path:`presets`,message:`preset names ${r.map(e=>JSON.stringify(e)).join(` and `)} both collapse to the same synthesis identifier "${t}" — edit mode's synthesized reset affordance would silently steal one preset's action for the other. Rename one.`,line:W(e.source,[`presets`])})}function My(e,t){t.globals.look!==void 0&&!Ta(t.globals.look)&&!Object.prototype.hasOwnProperty.call(t.looks,t.globals.look)&&e.issues.push({path:`globals.look`,message:`globals.look "${t.globals.look}" does not match any declared look (have: ${Object.keys(t.looks).join(`, `)})`,line:W(e.source,[`globals`,`look`])}),t.globals.preset!==void 0&&!Object.prototype.hasOwnProperty.call(t.presets,t.globals.preset)&&e.issues.push({path:`globals.preset`,message:`globals.preset "${t.globals.preset}" does not match any declared preset (have: ${Object.keys(t.presets).join(`, `)})`,line:W(e.source,[`globals`,`preset`])}),jy(e,t.presets);let n=vy(t);for(let[r,i]of Object.entries(t.actions))!(`set`in i)||!(`from`in i)||typeof i.from!=`string`||yy(n).includes(i.from)||e.issues.push({path:`actions.${r}.from`,message:`actions.${r} from: references unknown option domain "${i.from}" (have: ${yy(n).join(`, `)})`,line:W(e.source,[`actions`,r,`from`])});for(let[n,r]of Object.entries(t.actions)){if(!iv(r))continue;let i=r[rv];Ly(t,i)||e.issues.push({path:`actions.${n}.${rv}`,message:`actions.${n} ${rv}: "${i}" is not a declared state key — a dual action's selector must name a { kind: "state", key: "${i}" } variable, or the destination can never change`,line:W(e.source,[`actions`,n,rv])})}for(let[n,r]of Object.entries(t.actions))`do`in r&&r.do.forEach((i,a)=>{let o=Object.prototype.hasOwnProperty.call(t.actions,i)?t.actions[i]:void 0,s=o===void 0?`references unknown action "${i}"`:`do`in o?`"${i}" is itself a do action — list its members here instead`:r.do.indexOf(i)===a?a>0&&ov(o)?`"${i}" takes its value from the template (from/int/insertSegmentFrom), so it can only be the first member — only the first is bound the region's display`:void 0:`"${i}" is listed twice — each member fires once per click`;s!==void 0&&e.issues.push({path:`actions.${n}.do`,message:`actions.${n} do: ${s}`,line:W(e.source,[`actions`,n,`do`])})});for(let[n,r]of Object.entries(t.actions)){let i=`persist`in r?r.persist:`reset`in r?r.reset:null;if(i===null)continue;let a=`persist`in r?`persist`:`reset`,o=_g(i);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is not a config globals field (have: ${bc().join(`, `)}), a "segments.<name>.palette" target, or a "presets.<name>.root" target`,line:W(e.source,[`actions`,n,a])});continue}let s=Ny.filter(e=>e in r);if(o.scope!==`preset-root`&&s.length>0){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is not a "presets.<name>.root" target — ${s.map(e=>`"${e}"`).join(`/`)} is a tree op and applies only to one`,line:W(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){Py(e,t,n,a,i,o.preset,r);continue}if(o.scope===`segment-palette`){if(!Object.prototype.hasOwnProperty.call(t.segments,o.segment)){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" names segment "${o.segment}" which is not declared (have segments: ${Object.keys(t.segments).join(`, `)})`,line:W(e.source,[`actions`,n,a])});continue}`min`in r&&e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is a segment palette target and cannot use a bounded stepper (min/max/by) — use "to", "from", or "cycle" instead`,line:W(e.source,[`actions`,n,a])})}}let r=zy(t),i=ev(t),a=Object.entries(t.segments).filter(([,e])=>qh(e.template)).map(([e])=>e),o=(t,n,r)=>{W_(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${o_}" ${W_(t)} times — it may appear at most once per layout (it is one disclosure, and one state key holds one open state). Remove all but the placement you want; removing every placement puts the menu at its default position.`,line:r}),G_(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${o_}" under a \`when\` or inside a disclosure body — the menu is visible under every condition, so its placement may not be gated. Move it to an ungated position, or remove it to put the menu at its default position.`,line:r}),s(t)&&e.issues.push({path:n,message:`${n} sets "distribution" on a container inside a bar cell — everything inside a cell wears that cell's hue and tone, so it would place nothing. Set it on the row whose children are the cells (the horizontal container) or on the root, which places the rows.`,line:r});let i=new Map;for(let e of Xo(t))e.kind===`segment`&&i.set(e.name,(i.get(e.name)??0)+1);for(let t of a)(i.get(t)??0)>1&&e.issues.push({path:n,message:`segment "${t}" hosts a {{ menu }} and is placed in the layout more than once — a menu's open-state is keyed by segment name, so the copies would share one state (clicking one would toggle both). Give each placement its own named segment.`,line:r})};function s(e,t=!1){return e.kind===`segment`?!1:t&&e.distribution!==void 0||e.children.some(n=>s(n,t||Jo[e.direction]===`cell`))}let c=(n,a,o)=>{for(let s of Xo(n))if(s.when!==void 0&&Uy(e,`${a}.when`,s.when,r,{line:o}),s.kind===`segment`){if(V_(s.name)){i||e.issues.push({path:a,message:`${a} places the global settings menu anchor "${o_}", but this config declares no "${$_}" variable — the menu is a click surface and every click composes a URL from "${$_}", so it is not synthesized for a config without it. Declare a "${$_}" variable (any config merged onto the bundled default inherits one) or remove the anchor placement.`,line:o});continue}if(!Object.prototype.hasOwnProperty.call(t.segments,s.name)){let t=Ay[s.name],n=t===void 0?``:` (the built-in segment "${s.name}" was renamed to "${t}" — update this reference)`;e.issues.push({path:a,message:`${a} entry "${s.name}" does not match any declared segment${n}`,line:o})}}},l=Wy(e.source);c(zs(t.root),l,W(e.source,[l]));for(let[n,r]of Object.entries(t.presets)){if(r.root===void 0)continue;let t=`presets.${n}.root`,i=W(e.source,[`presets`,n,`root`]);c(Bs(r.root),t,i)}let u=new Map([[`root`,zs(t.root)]]);for(let e of lg(t.presets)){let{node:n,path:r}=fg(t,e);u.set(r,n)}for(let[t,n]of u)o(n,t,W(e.source,t.split(`.`)));for(let[n,i]of Object.entries(t.variables))Vy(e,`variables.${n}`,i,r);for(let[n,i]of Object.entries(t.segments)){if(i.vars)for(let[t,a]of Object.entries(i.vars))Vy(e,`segments.${n}.vars.${t}`,a,r,n);for(let a of[`template`,`bg`,`fg`,`when`]){let o=i[a];if(typeof o==`string`){Uy(e,`segments.${n}.${a}`,o,r,{segCtx:n});for(let r of Ey(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}"`,line:W(e.source,[`segments`,n,a])});for(let r of Oy(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}" (in a picker, menu or carousel)`,line:W(e.source,[`segments`,n,a])})}}}for(let[n,i]of Object.entries(t.variables))Hy(e,`variables.${n}`,i,r);for(let[n,i]of Object.entries(t.segments))if(i.vars)for(let[t,a]of Object.entries(i.vars))Hy(e,`segments.${n}.vars.${t}`,a,r,n);(Iy(t)||Ry(t))&&!Object.prototype.hasOwnProperty.call(t.variables,`session.id`)&&e.issues.push({path:`variables.session.id`,message:`state reads and action set-writes require a global "session.id" variable (segment-local declarations do not satisfy this — declareState/set-state both read the global box; conventionally { kind: "input", path: "session_id" })`,line:W(e.source,[`variables`])})}const Ny=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function Py(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=W(e.source,[`actions`,n,r]);if(!lg(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${lg(t.presets).join(`, `)})`,line:c});return}if(r===`reset`)return;let l=`removeSegment`in o,u=`insertSegment`in o,d=`insertSegmentFrom`in o;if(!l&&!u&&!d){e.issues.push({path:s,message:`actions.${n}: "${i}" is a "presets.<name>.root" target and can only be paired with "removeSegment", "insertSegment", or "insertSegmentFrom" (not "to"/"from"/"cycle"/bounded — those have no meaning as a tree op)`,line:c});return}let f=e=>!Object.prototype.hasOwnProperty.call(t.segments,e);l&&`removeSegment`in o&&f(o.removeSegment)&&e.issues.push({path:s,message:`actions.${n}: removeSegment "${o.removeSegment}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c}),u&&`insertSegment`in o&&(f(o.insertSegment)&&e.issues.push({path:s,message:`actions.${n}: insertSegment "${o.insertSegment}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c}),f(o.anchor)&&e.issues.push({path:s,message:`actions.${n}: anchor "${o.anchor}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c})),d&&`insertSegmentFrom`in o&&f(o.anchor)&&e.issues.push({path:s,message:`actions.${n}: anchor "${o.anchor}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})`,line:c})}function Fy(e){return[...Object.values(e.variables),...Object.values(e.segments).flatMap(e=>Object.values(e.vars??{}))].filter(e=>e.kind===`state`)}function Iy(e){return Fy(e).length>0}function Ly(e,t){return Fy(e).some(e=>e.kind===`state`&&e.key===t)}function Ry(e){return Object.values(e.actions).some(e=>sv(e)||cv(e)||lv(e)||uv(e)||dv(e)||fv(e))}function zy(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),By(r)&&n.add(e)};for(let[t,n]of Object.entries(e.variables))r(t,n);for(let[t,n]of Object.entries(e.segments))for(let[e,i]of Object.entries(n.vars??{}))r(`${t}.${e}`,i);return{names:t,documents:n}}function By(e){return(e.kind===`shell`||e.kind===`file`)&&Qo(e.parse)===`json`}function Vy(e,t,n,r,i){n.kind===`template`&&Uy(e,`${t}.template`,n.template,r,{segCtx:i}),es(n)&&n.cache&&`key`in n.cache&&Uy(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function Hy(e,t,n,r,i){if(es(n)&&n.cache&&`depends_on`in n.cache)for(let a=0;a<n.cache.depends_on.length;a++){let o=n.cache.depends_on[a];if(r.names.has(o))continue;let s=i===void 0?void 0:`${i}.${o}`,c=s!==void 0&&r.names.has(s)?` (segment-local vars are namespaced — write "${s}")`:``;e.issues.push({path:`${t}.cache.depends_on[${a}]`,message:`cache.depends_on references unknown variable "${o}"${c}`,line:W(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function Uy(e,t,n,r,i){for(let a of wy(n)){if(ky(a,r))continue;let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,o=n!==void 0&&ky(n,r)?` (segment-local vars are namespaced — write ".${n}")`:``;e.issues.push({path:t,message:`Template references unknown variable ".${a}"${o}`,line:i?.line??W(e.source,t.split(`.`))})}}function Wy(e){try{let t=Xe.default.parse(e);if(us(t)&&`root`in t)return`root`}catch{}return`layout`}function Gy(e,t){let{graph:n,nodeInfo:r}=Ky(t),i=new Map,a=[];for(let e of n.keys())i.set(e,0);for(let e of n.keys())if(i.get(e)===0&&o(e))return;function o(t){i.set(t,1),a.push(t);for(let s of n.get(t)??[]){let t=i.get(s);if(t===1){let t=a.indexOf(s),n=[...a.slice(t),s],i=n[0],o=r.get(i);return e.issues.push({path:o?.declarationPath??`variables.${i}`,message:`Dependency cycle: ${n.join(` → `)}`,line:W(e.source,o?.linePathParts??[`variables`,i])}),!0}if(t===0&&o(s))return!0}return i.set(t,2),a.pop(),!1}}function Ky(e){let t=new Set(Object.keys(e.variables)),n=new Map;for(let t of Object.keys(e.variables))n.set(t,{declarationPath:`variables.${t}`,linePathParts:[`variables`,t]});for(let[r,i]of Object.entries(e.segments))if(i.vars)for(let e of Object.keys(i.vars)){let i=`${r}.${e}`;t.add(i),n.set(i,{declarationPath:`segments.${r}.vars.${e}`,linePathParts:[`segments`,r,`vars`,e]})}let r=new Map;for(let e of t)r.set(e,new Set);let i=(e,n)=>{for(let i of wy(n)){if(t.has(i)){r.get(e).add(i);continue}let n=i.split(`.`)[0];n!==i&&t.has(n)&&r.get(e).add(n)}},a=(e,n)=>{if(n.kind===`template`&&i(e,n.template),es(n)&&(n.cache&&`key`in n.cache&&i(e,n.cache.key),n.cache&&`depends_on`in n.cache))for(let i of n.cache.depends_on)t.has(i)&&r.get(e).add(i)};for(let[t,n]of Object.entries(e.variables))a(t,n);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))a(`${t}.${e}`,r);return{graph:r,nodeInfo:n}}const qy=[`json5`,`json`];function Jy(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function Yy(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?f.homedir()+e.slice(1):e}function Xy(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?qy.map(t=>c.join(e,`.cc-candybar.${t}`)):[],...qy.map(e=>c.join(r,`.cc-candybar.${e}`)),...qy.map(e=>`${Zy()}.${e}`)])]}function Zy(){let e=process.env.XDG_CONFIG_HOME??c.join(f.homedir(),`.config`);return c.join(e,`cc-candybar`,`config`)}function Qy(e,t,n){let r=[];for(let i of Xy(e,t,n)){let e=Jy(i);if(e===`present`)return{kind:`file`,path:i,unchecked:r};e!==`absent`&&r.push(e)}if(n===void 0)return{kind:`default`,unchecked:r};let[i]=r;return i===void 0?{kind:`missing`,path:n}:{kind:`unreadable`,...i}}function $y(e,t,n){let r=Qy(e,t,n);return r.kind===`default`?`${Zy()}.${qy[0]}`:r.path}function eb(e){return tb(e).join(`
|
|
120
|
+
`)||null}function tb(e){switch(e.kind){case`file`:case`default`:return e.unchecked.map(e=>`Config location could not be checked: ${e.path} — ${e.error}`);case`missing`:return[`Config file not found: ${e.path} — rendering the bundled default until it appears`];case`unreadable`:return[`Config file could not be read: ${e.path} — ${e.error} — rendering the bundled default until it can be`]}}function nb(e,t){let n=Xy(e,t).filter(e=>Jy(e)===`present`),r=new Map;for(let e of n){let t=c.dirname(e),n=c.basename(e).replace(/\.(json5|json)$/,``),i=c.join(t,n);r.has(i)||r.set(i,[]),r.get(i).push(e)}let i=[...r.values()].filter(e=>e.length>1);return i.length===0?null:`config-extension collision: ${i.map(e=>{let[t,...n]=e;return`${t} shadows ${n.join(`, `)}`}).join(`; `)} — remove the duplicate`}function rb(e,t,n){let r=e===null?ib:ab(e,t,n);return{...r,config:Us(r.raw,t)}}const ib={raw:{},source:``,warnings:[]};function ab(e,t,n){let i=r.readFileSync(e,`utf-8`);return{source:i,...cb(e,i,n,ml(t))}}function ob(e,t=`<config>`,n=``,r=new Set(Sa())){let i=[],a={source:n,issues:i,allowedPalettes:r,groups:[]};if(My(a,e),Gy(a,e),i.length>0)throw new Ho(t,i);return qg(tv(e))}function sb(e,t,n=new Set(Sa()),r=lb){return cb(e,t,n,r).raw}function cb(e,t,n,r){let i=ub(e,t),a=Go(e,t),o=a===null?[]:[a],s=[],c={source:t,issues:s,allowedPalettes:n??new Set(Sa()),groups:[]};if(!us(i))throw new Ho(e,[{path:``,message:`Config root must be an object, got ${ds(i)}`}],o);let l=db(c,i,r);if(s.length>0)throw new Ho(e,s,o);return{raw:l,warnings:o}}const lb=new Set;function ub(e,t){try{return Xe.default.parse(t)}catch(t){let n=t;throw new Ho(e,[{path:``,message:`JSON5 syntax error: ${n.message}`,line:n.lineNumber,col:n.columnNumber}])}}function db(e,t,n){for(let n of Object.keys(t))fb.has(n)||e.issues.push({path:n,message:`Unknown top-level key "${n}". Expected one of: ${[...fb].join(`, `)}`,line:W(e.source,[n])});let r={};return t.globals!==void 0&&(r.globals=mc(e,`globals`,t.globals)),t.variables!==void 0&&(r.variables=Pc(e,`variables`,t.variables)),t.segments!==void 0&&(r.segments=hl(e,t.segments,n)),t.layout!==void 0&&e.issues.push({path:`layout`,message:`"layout" is no longer supported — use "root" with the A-grammar instead.
|
|
121
121
|
Replace: layout: [["seg1", "seg2"], ["seg3"]]
|
|
122
122
|
With: root: { v: [{ h: ["seg1", "seg2"] }, "seg3"] }
|
|
123
|
-
Single-row example: root: { h: ["seg1", "seg2"] }`,line:W(e.source,[`layout`])}),t.root!==void 0&&(r.root=
|
|
124
|
-
`)}function
|
|
125
|
-
`).map(e=>e.trim()).find(e=>e.length>0);return t===void 0?``:` (${t})`}const
|
|
126
|
-
`)}catch(e){t.stderr.write(`cc-candybar: daemon spawn failed: ${e.message}\n`)}}function
|
|
127
|
-
`)}function
|
|
128
|
-
`)}]}function
|
|
129
|
-
`),process.exit(1));let t;try{t=
|
|
130
|
-
`),process.exit(1)}function
|
|
123
|
+
Single-row example: root: { h: ["seg1", "seg2"] }`,line:W(e.source,[`layout`])}),t.root!==void 0&&(r.root=Rl(e,`root`,t.root)),t.actions!==void 0&&(r.actions=pv(e,t.actions)),t.looks!==void 0&&(r.looks=ny(e,t.looks)),t.presets!==void 0&&(r.presets=iy(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=_c(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=ay(e,t.helpers)),Kl(e,r),Yh(e,r),rg(e,r),pl(e,r,ll,`the global settings menu`),r}const fb=new Set([`globals`,`variables`,`segments`,`layout`,`root`,`actions`,`looks`,`presets`,`editGlobals`,`helpers`]);function pb(e){let t=_b(e.termCols),n=_b(e.termRows),r=vb(e.ssh),i=hb(e.tmux),a=mb(e.configEnv);return{...t!==void 0&&{termCols:t},...n!==void 0&&{termRows:n},...r!==void 0&&{ssh:r},...i!==void 0&&{tmux:i},...a!==void 0&&{configEnv:a}}}function mb(e){return typeof e==`string`&&e!==``?Yy(e):void 0}function hb(e){if(e===null)return null;if(typeof e!=`object`)return;let{socket:t,pane:n,truecolor:r}=e;if(!(typeof t!=`string`||t===``)&&!(typeof n!=`string`||n===``)&&!(r!==null&&(typeof r!=`string`||r===``)))return{socket:t,pane:n,truecolor:r}}const gb=1e4;function _b(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>gb?gb:t}function vb(e){return typeof e==`boolean`?e:void 0}var yb=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function bb(e){let t=Buffer.from(JSON.stringify(e),`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function xb(e,t){let n=Buffer.alloc(0);return function(r){for(n=Buffer.concat([n,r]);n.length>=4;){let r=n.readUInt32BE(0);if(r>16777216){t(new yb(`frame too large: ${r}`));return}if(n.length<4+r)return;let i=n.subarray(4,4+r);n=n.subarray(4+r);try{e(JSON.parse(i.toString(`utf8`)))}catch(e){let n=new yb(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function Sb(e,t,n){return new Promise((r,i)=>{let a=!1,o=t=>{if(!a){a=!0,clearTimeout(s),e.removeAllListeners();try{t()}catch{}}},s=setTimeout(()=>{o(()=>{e.destroy(),i(Error(`TIMEOUT`))})},n),c=xb(e=>o(()=>r(e)),e=>o(()=>i(e)));e.on(`data`,c),e.on(`error`,e=>o(()=>i(e))),e.on(`close`,()=>o(()=>i(Error(`socket closed before response`)))),e.write(bb(t))})}async function Cb(e,t,n){let r=null;try{r=await Ob(Ne(),t.connectMs);let i=await Sb(r,{v:3,...e},t.budgetMs);return Eb(e.kind,i,n)}catch(e){return Db(e)}finally{r&&r.destroy()}}function wb(e,t){return typeof e==`string`?e:t}function Tb(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function Eb(e,t,n){let r=t;if(r.ok===!0){let r=n(t);return r===void 0?{kind:`permanent`,cause:`malformed_response`,message:`ok response without payload for "${e}" request`}:{kind:`ok`,value:r}}let i=wb(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:Tb(r.daemonV)};case`TIMEOUT`:return{kind:`transient`,cause:`timeout`,message:i};case`BAD_REQUEST`:return{kind:`permanent`,cause:`bad_request`,message:i};case`RENDER_FAILED`:return{kind:`permanent`,cause:`render_failed`,message:i};default:return{kind:`permanent`,cause:`malformed_response`,message:`unknown error code: ${String(r.code)}`}}}function Db(e){if(e instanceof yb||e instanceof SyntaxError)return{kind:`permanent`,cause:`malformed_response`,message:e instanceof Error?e.message:String(e)};let t=e instanceof Error?e.message:String(e);return t===`CONNECT_TIMEOUT`||t===`TIMEOUT`?{kind:`transient`,cause:`timeout`,message:t}:t.includes(`ECONNREFUSED`)||t.includes(`ENOENT`)||t.includes(`ENOTSOCK`)?{kind:`transient`,cause:`unreachable`,message:t}:{kind:`transient`,cause:`io_error`,message:t}}function Ob(e,t){return new Promise((n,r)=>{let i=g.createConnection({path:e}),a=setTimeout(()=>{i.destroy(),r(Error(`CONNECT_TIMEOUT`))},t);i.once(`connect`,()=>{clearTimeout(a),n(i)}),i.once(`error`,e=>{clearTimeout(a),r(e)})})}function kb(e){if(e.kind===`transient`)return`daemon unavailable (${e.cause}: ${e.message})\nHint: daemon may not be running. Run \`cc-candybar\` once to spawn it.`;switch(e.cause){case`version_mismatch`:{let t=e.daemonV===0?`unknown`:`v${e.daemonV}`;return`daemon protocol mismatch (client v${e.clientV} ≠ daemon ${t})`}case`bad_request`:case`render_failed`:case`malformed_response`:return`daemon error (${e.cause}): ${e.message}`}}const Ab={connectMs:50,budgetMs:150},jb={connectMs:50,budgetMs:200};function Mb(e){let t=e.output;return typeof t==`string`?t:void 0}function Nb(e,t,n,r){return Cb({kind:`render`,hookData:e,args:t,cwd:n,...r},Ab,Mb)}function Pb(e,t){return Cb({kind:`click`,verb:e,value:t},jb,Mb)}let Fb=null;function Ib(e){if(Fb!==null)return Fb;r.mkdirSync(c.dirname(e),{recursive:!0});try{Fb=r.statSync(e).size}catch{Fb=0}return Fb}function Lb(e){for(let t=2;t>=1;t--){let n=`${e}.${t}`,i=`${e}.${t+1}`;try{r.renameSync(n,i)}catch{}}try{r.renameSync(e,`${e}.1`)}catch{}Fb=0}function Y(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=Ge(),t=Ib(e);r.appendFileSync(e,n),Fb=t+Buffer.byteLength(n,`utf8`),Fb>=5242880&&Lb(e)}catch(e){Fb=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}function Rb(e){let t=[];for(let n of e){let e=n.read();if(e.kind===`text`)return`# memory report from: ${n.name}\n${e.text}`;t.push(`# ${n.name}: unavailable — ${e.reason}`)}return[`# memory report: no probe answered`,...t.length>0?t:[`# no probe is known for this platform`]].join(`
|
|
124
|
+
`)}function zb(e,t){return e===`darwin`?[Bb(`footprint`,[`-p`,String(t)]),Bb(`vmmap`,[`--summary`,String(t)])]:e===`linux`?[Vb(`/proc/self/smaps_rollup`),Vb(`/proc/self/status`)]:[]}function Bb(e,t){return{name:`${e} ${t.join(` `)}`,read:()=>{let n=Ee({bin:e,args:[...t],timeoutMs:5e3,category:`limits.memory-report`});return n.ok?n.stdout.trim().length>0?{kind:`text`,text:n.stdout}:{kind:`unavailable`,reason:`exited 0 but printed nothing`}:{kind:`unavailable`,reason:`${n.reason}${n.error===void 0?``:`: ${n.error}`}${Hb(n.stderr)}`}}}}function Vb(e){return{name:e,read:()=>{try{let t=r.readFileSync(e,`utf8`);return t.trim().length>0?{kind:`text`,text:t}:{kind:`unavailable`,reason:`empty file`}}catch(e){return{kind:`unavailable`,reason:e.message}}}}}function Hb(e){let t=e.split(`
|
|
125
|
+
`).map(e=>e.trim()).find(e=>e.length>0);return t===void 0?``:` (${t})`}const Ub=`CC_CANDYBAR_RSS_LIMIT_MB`;function Wb(e){let t=e[Ub];if(t===void 0)return 512;let n=/^\d+$/.test(t)?Number(t):NaN;if(!Number.isSafeInteger(n)||n<=0)throw Error(`${Ub} must be a positive integer (MB), got ${JSON.stringify(t)}`);return n}function Gb(e){return Wb(e)*2}const Kb=1024*1024;function qb(e){return Wb(e)*Kb}const Jb={memoryReport:{prefix:`memory-`,suffix:`.txt`},heapSnapshot:{prefix:`heap-`,suffix:`.heapsnapshot`}};function Yb(e,t,n){let{prefix:r,suffix:i}=Jb[t];return c.join(e,`${r}${n}${i}`)}function Xb(e){for(let t of Object.keys(Jb)){let{prefix:n,suffix:r}=Jb[t];if(e.startsWith(n)&&e.endsWith(r))return t}return null}function Zb(e){let t=e.rssLimitBytes??512*Kb,n=e.snapshotsKeep??3,r=!1;function i(){if(r)return!0;let{rss:i,heapTotal:a}=e.memoryBytes();if(i<=t)return!1;r=!0,e.log(`warn`,`RSS ${i} > limit ${t} (v8 heap ${a}); recording memory then shutting down`);let o=`${new Date(e.now()).toISOString().replace(/[:.]/g,`-`)}-${e.pid}`;return Qb(e.log,`memory report`,()=>{let t=Yb(e.snapshotDir,`memoryReport`,o);e.writeMemoryReport(t,e.captureMemoryReport()),e.log(`info`,`memory report written: ${t}`)}),Qb(e.log,`heap snapshot`,()=>{let t=Yb(e.snapshotDir,`heapSnapshot`,o);e.log(`info`,`heap snapshot written: ${e.writeHeapSnapshot(t)}`)}),Qb(e.log,`artifact rotation`,()=>{ex(e.listArtifacts(),n,e.removeFile)}),e.shutdown(0),!0}function a(){let{rss:n,heapTotal:r}=e.memoryBytes();return n>t*.75?`rss ${n} approaching limit ${t} (v8 heap ${r})`:null}function o(e=6e4){let t=setInterval(()=>{i()},e);return t.unref(),{disarm:()=>clearInterval(t)}}return{checkRss:i,describeNextRestart:a,arm:o}}function Qb(e,t,n){try{n()}catch(n){e(`warn`,`${t} failed: ${n.message}`)}}function $b(e){let t=e.slice(e.lastIndexOf(`/`)+1),n=Xb(t);if(n===null)return t;let{prefix:r,suffix:i}=Jb[n];return t.slice(r.length,t.length-i.length)}function ex(e,t,n){let r=new Map;for(let t of e){let e=$b(t),n=r.get(e);n===void 0?r.set(e,[t]):n.push(t)}let i=[...r.keys()].sort((e,t)=>t.localeCompare(e));for(let e of i.slice(t))for(let t of r.get(e)??[])try{n(t)}catch{}}function tx(e,t,n={}){let i=Me();return{now:()=>Date.now(),pid:process.pid,snapshotDir:i,log:Y,memoryBytes:()=>{let e=process.memoryUsage();return{rss:e.rss,heapTotal:e.heapTotal}},captureMemoryReport:()=>Rb(zb(process.platform,process.pid)),writeMemoryReport:(e,t)=>r.writeFileSync(e,t,{mode:384}),writeHeapSnapshot:e=>_.writeHeapSnapshot(e),listArtifacts:()=>{try{return r.readdirSync(i).filter(e=>Xb(e)!==null).map(e=>c.join(i,e))}catch{return[]}},removeFile:e=>r.unlinkSync(e),shutdown:t,startedAtMs:e,...n}}function nx(e={}){if(vx()!==null)return;let n=e.spawn??yx,r=hx();if(r.kind===`contended`){let e=ix();e!==null&&e>2e3&&(t.stderr.write(`cc-candybar: spawn-lock held ${e}ms (likely crashed holder) — spawning unlocked\n`),rx(n));return}if(r.kind===`error`){t.stderr.write(`cc-candybar: spawn-lock unavailable (${r.reason}) — spawning unlocked\n`),rx(n);return}try{rx(n)}finally{_x()}}function rx(e){dx()&&ax(e)}function ix(){try{let e=r.statSync(Ve());return Date.now()-e.mtimeMs}catch{return null}}function ax(e){try{e()||t.stderr.write(`cc-candybar: daemon spawn returned false (unable to resolve script path?)
|
|
126
|
+
`)}catch(e){t.stderr.write(`cc-candybar: daemon spawn failed: ${e.message}\n`)}}function ox(e,t){return e===null?{kind:`allow`}:e<-1e4?{kind:`allow-future-garbage`,futureMs:-e}:e<t?{kind:`deny`}:{kind:`allow`}}function sx(e){return Math.min(3e3*2**Math.min(Math.max(e,0),5),6e4)}function cx(e){try{let t=r.readFileSync(e,`utf8`).trim(),n=Number(t);return!Number.isInteger(n)||n<0?0:Math.min(n,5)}catch{return 0}}function lx(e,n){try{r.mkdirSync(c.dirname(e),{recursive:!0}),r.writeFileSync(e,String(n),{mode:384})}catch(e){t.stderr.write(`cc-candybar: could not record spawn.backoff: ${e.message}\n`)}}function ux(){try{r.unlinkSync(Ue())}catch(e){e.code!==`ENOENT`&&t.stderr.write(`cc-candybar: could not reset spawn.backoff: ${e.message}\n`)}}function dx(){let e=He(),n=Ue(),r=cx(n),i=ox(fx(e),sx(r));return i.kind===`deny`?!1:(i.kind===`allow-future-garbage`&&t.stderr.write(`cc-candybar: spawn.cooldown mtime is ${i.futureMs}ms in the future — ignoring and spawning\n`),px(e),lx(n,Math.min(r+1,5)),!0)}function fx(e){try{return Date.now()-r.statSync(e).mtimeMs}catch{return null}}function px(e){try{r.mkdirSync(c.dirname(e),{recursive:!0}),r.writeFileSync(e,`${t.pid} ${Date.now()}\n`,{mode:384})}catch(e){t.stderr.write(`cc-candybar: could not record spawn.cooldown: ${e.message}\n`)}}let mx=null;function hx(){let e=Ve();for(let n=0;n<2;n++){try{let n=r.openSync(e,`wx`,384);try{r.writeSync(n,JSON.stringify({pid:t.pid,ts:Date.now()}))}catch{}return mx={fd:n,path:e},{kind:`held`}}catch(t){let n=t.code;if(n!==`EEXIST`)return{kind:`error`,reason:`openSync(${e}): ${n??t.message}`}}if(!gx(e))return{kind:`contended`};try{r.unlinkSync(e)}catch(e){if(e.code!==`ENOENT`)return{kind:`error`,reason:`unlink stale spawn.lock: ${e.message}`}}}return{kind:`contended`}}function gx(e){try{let t=r.statSync(e);return Date.now()-t.mtimeMs>1e4}catch{return!0}}function _x(){if(!mx)return;let{fd:e,path:t}=mx;mx=null;try{r.closeSync(e)}catch{}try{r.unlinkSync(t)}catch{}}function vx(){try{return r.mkdirSync(Me(),{recursive:!0}),null}catch(e){return`mkdir ${Me()}: ${e.message}`}}function yx(){let e=t.execPath,n=t.argv[1];return n?De({bin:e,args:[`--max-old-space-size=${Gb(t.env)}`,n,`daemon`],category:`daemon-spawn`}).ok:!1}const bx=`cc-candybar`,xx=`dispatch`,Sx=`set-state`,Cx=`step-state`,wx=`copy`,Tx=`open-vscode`,Ex=`toolbar-toggle`,Dx=`show-config-error`,Ox=`show-config-warning`,kx=`set-config`,Ax=`step-config`,jx=`reset-config`,Mx=`apply-layout-op`,Nx=`undo`,Px=`redo`,Fx=`apply-update`,Ix=`doctor-run`,Lx=`doctor-fix`;function Rx(e){return e.map(encodeURIComponent).join(`/`)}function zx(e){return e.length===0?[]:e.split(`/`).map(decodeURIComponent)}function Bx(e){return`${bx}://${xx}/${e.map(e=>`e=${encodeURIComponent(`${e.verb}/${Rx(e.args)}`)}`).join(`&`)}`}function Vx(e){return new y(e).getAll(`e`).map(Wx)}function Hx(e){return e.reduce((e,t)=>{let n=e.at(-1),r=n&&Ux(n,t);return r?[...e.slice(0,-1),r]:[...e,t]},[])}function Ux(e,t){if(e.verb!==`set-state`||t.verb!==`set-state`)return;let[n,r]=[Wx(e.value),Wx(t.value)];return n.verb===r.verb?{verb:Sx,value:`${n.verb}/${n.value}/${r.value}`}:void 0}function Wx(e){let t=e.indexOf(`/`);return t===-1?{verb:e,value:``}:{verb:e.slice(0,t),value:e.slice(t+1)}}const Gx=`1.81.0`;function Kx(){return c.join(f.homedir(),`.claude`,`settings.json`)}function X(e){return{kind:`ok`,value:e}}const Z={kind:`absent`};function Q(e){return{kind:`failed`,reason:e}}function qx(e,t){return e?.kind===`ok`?e.value:t}const Jx=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function Yx(e){let t=Jx.exec(e);return t?{kind:`ok`,value:[Number(t[1]),Number(t[2]),Number(t[3])]}:{kind:`failed`,reason:`"${e}" is not a release version (expected MAJOR.MINOR.PATCH)`}}function Xx(e){return e.join(`.`)}function Zx([e,t,n],[r,i,a]){return e-r||t-i||n-a}const Qx=`@promptctl/cc-candybar`;async function $x(e,t,n){let r=`${n}/-/package/${encodeURIComponent(e)}/dist-tags`;try{let e=await t(r,{signal:AbortSignal.timeout(5e3)});if(!e.ok)return Q(`registry responded ${e.status} for ${r}`);let n=await e.json();return typeof n.latest==`string`?Yx(n.latest):Z}catch(e){return Q(e instanceof Error?e.message:String(e))}}function eS(e,t){let n=Yx(e);if(n.kind===`failed`)return{kind:`unchecked`,installed:e,reason:n.reason};switch(t.kind){case`failed`:return{kind:`unchecked`,installed:e,reason:t.reason};case`absent`:return{kind:`unchecked`,installed:e,reason:"the registry lists no `latest` dist-tag"};case`ok`:{let e=Zx(n.value,t.value);return e<0?{kind:`stale`,installed:n.value,latest:t.value}:e>0?{kind:`ahead`,installed:n.value,latest:t.value}:{kind:`current`,installed:n.value}}}}function tS(e,t){switch(t.kind){case`current`:return{stream:`stdout`,text:`✓ cc-candybar ${Xx(t.installed)} is the latest release.\n`};case`ahead`:return{stream:`stdout`,text:`cc-candybar ${Xx(t.installed)} is newer than the registry's latest release (${Xx(t.latest)}): an unpublished build.\n`};case`stale`:{let n=Xx(t.latest);return{stream:`stderr`,text:`⚠ cc-candybar ${Xx(t.installed)} was staged, but the latest release is ${n}.\n pnpm's release-age gate (minimumReleaseAge) and its dlx cache can both\n resolve \`@latest\` to an older release without saying so.\n To install ${n} now, name it explicitly:\n pnpm dlx ${e}@${n} install\n`}}case`unchecked`:return{stream:`stderr`,text:`⚠ Could not check for a cc-candybar release newer than ${t.installed} (${t.reason}); the registry check was skipped.\n`}}}const nS=`CCCandybarURLHandler`,rS=[],iS={"darwin-arm64":`@promptctl/cc-candybar-darwin-arm64`,"darwin-x64":`@promptctl/cc-candybar-darwin-x64`,"linux-x64":`@promptctl/cc-candybar-linux-x64`,"linux-arm64":`@promptctl/cc-candybar-linux-arm64`};function aS(e){return/^[A-Za-z0-9_./=,:-]+$/.test(e)?e:`'${e.replace(/'/g,`'\\''`)}'`}function oS(e,t){return[e,...t].map(aS).join(` `)}function sS(){return c.join(f.homedir(),`Applications`,`${nS}.app`)}function cS(){if(process.platform!==`darwin`)throw Error(`URL handler installation requires macOS (found platform: ${process.platform}).`)}function lS(){if(process.platform===`darwin`)return c.join(f.homedir(),`Library`,`Application Support`,`CCCandybar`);let e=process.env.XDG_DATA_HOME??c.join(f.homedir(),`.local`,`share`);return c.join(e,`cc-candybar`)}function uS(){return c.join(lS(),`bin`,`cc-candybar`)}function dS(){return c.join(lS(),`dist`,`index.mjs`)}function fS(e,t){return[`on open location L`,`\tdo shell script "'${e.replace(/"/g,`\\"`)}' '${t.replace(/"/g,`\\"`)}' url-handle " & quoted form of L`,`end open location`].join(`
|
|
127
|
+
`)}function pS(e){if(!e)throw Error(`install: process.argv[1] not set`);return e.endsWith(`.mjs`)||e.endsWith(`.js`)?e:c.resolve(c.dirname(e),`..`,`dist`,`index.mjs`)}function mS(t){let n=iS[`${process.platform}-${process.arch}`];if(n){let r=e(t);try{return{kind:`native`,sourcePath:r.resolve(`${n}/bin/cc-candybar`)}}catch{}}return{kind:`node-shim`,sourcePath:c.resolve(c.dirname(t),`..`,`bin`,`cc-candybar`)}}function hS(e,t){c.resolve(e)!==c.resolve(t)&&r.copyFileSync(e,t)}function gS(e){let t=r.openSync(e,`r`);try{let n=Buffer.alloc(2),i=r.readSync(t,n,0,2,0);if(i<2)throw Error(`install: staged render entry at ${e} is truncated (${i} byte(s)). Re-run: pnpm dlx ${Qx}@latest install`);return n.toString(`latin1`)===`#!`?`node-shim`:`native`}finally{r.closeSync(t)}}function _S(){let e=pS(process.argv[1]);if(!r.existsSync(e))throw Error(`install: bundled dist not found at ${e}. Reinstall the package.`);let t=mS(e);if(!r.existsSync(t.sourcePath))throw Error(`install: render entry not found at ${t.sourcePath}. Reinstall the package.`);r.mkdirSync(c.dirname(dS()),{recursive:!0}),r.mkdirSync(c.dirname(uS()),{recursive:!0}),hS(e,dS()),hS(t.sourcePath,uS()),r.chmodSync(uS(),493),r.rmSync(c.join(lS(),`url-handler.mjs`),{force:!0});let n=gS(uS());return process.stdout.write(`Staged cc-candybar v${Gx} runtime at ${lS()}\n`+(n===`native`?` render entry: native binary (${process.platform}-${process.arch})\n`:` render entry: node shim (no native binary for ${process.platform}-${process.arch}; renders are correct but pay node startup)\n`)),{binPath:uS(),distPath:dS(),entryKind:n}}function vS(){return[{key:`CFBundleIdentifier`,xml:`<string>com.cccandybar.url-handler</string>`},{key:`CFBundleURLTypes`,xml:[`<array>`,` <dict>`,` <key>CFBundleURLName</key>`,` <string>Claude Powerline Click Action</string>`,` <key>CFBundleURLSchemes</key>`,` <array>`,` <string>${bx}</string>`,` </array>`,` </dict>`,`</array>`].join(`
|
|
128
|
+
`)}]}function yS(e){let t=sS();r.mkdirSync(c.dirname(t),{recursive:!0}),r.existsSync(t)&&r.rmSync(t,{recursive:!0,force:!0}),process.stdout.write(`Building ${t}\n`);let n=Ee({bin:`/usr/bin/osacompile`,args:[`-o`,t,`-e`,fS(process.execPath,e)],category:`install.osacompile`});if(!n.ok)throw process.stderr.write(n.stderr),Error(`osacompile failed (${n.reason})`);let i=c.join(t,`Contents`,`Info.plist`);for(let{key:e}of vS())Ee({bin:`/usr/bin/plutil`,args:[`-remove`,e,i],category:`install.plutil`});for(let{key:e,xml:t}of vS()){let n=Ee({bin:`/usr/bin/plutil`,args:[`-insert`,e,`-xml`,t,i],category:`install.plutil`});if(!n.ok)throw process.stderr.write(n.stderr),Error(`plutil -insert ${e} failed (${n.reason})`)}process.stdout.write(`Registering ${bx}:// with Launch Services\n`);let a=Ee({bin:`/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister`,args:[`-f`,t],category:`install.lsregister`});if(!a.ok)throw process.stderr.write(a.stderr),Error(`lsregister failed (${a.reason})`);process.stdout.write(`✓ ${nS}.app installed and registered.\n`),process.stdout.write(` Test: open '${bx}://hello-world' && pbpaste\n`)}function bS(){cS(),yS(_S().distPath)}function xS(e,t=bx){let n=`${t}://`;if(!e.startsWith(n))throw Error(`expected ${n} scheme, got: ${e}`);let r=e.slice(n.length),i=r.indexOf(`/`);return i===-1?{verb:wx,value:r}:{verb:decodeURIComponent(r.slice(0,i)),value:r.slice(i+1)}}async function SS(e){e||(process.stderr.write(`url-handle: missing URL argument.
|
|
129
|
+
`),process.exit(1));let t;try{t=xS(e)}catch(e){process.stderr.write(`url-handle: ${e instanceof Error?e.message:String(e)}\n`),process.exit(1)}let n=await Pb(t.verb,t.value);n.kind===`ok`&&process.exit(0),n.kind===`transient`&&(nx(),process.stderr.write(`url-handle: daemon unavailable (${n.cause}: ${n.message})\n`),process.exit(1)),process.stderr.write(CS(n)+`
|
|
130
|
+
`),process.exit(1)}function CS(e){switch(e.cause){case`version_mismatch`:return`url-handle: daemon rejected click (version mismatch: client v${e.clientV} ≠ daemon v${e.daemonV})`;case`bad_request`:return`url-handle: daemon rejected click (bad request: ${e.message})`;case`render_failed`:return`url-handle: daemon rejected click (handler failed: ${e.message})`;case`malformed_response`:return`url-handle: daemon rejected click (malformed response: ${e.message})`}}function wS(){return`✓ install complete.
|
|
131
131
|
Restart Claude Code to pick up the new statusline.
|
|
132
|
-
Tip: every bar carries a settings menu — click it (${
|
|
133
|
-
`),
|
|
134
|
-
`))throw Error(`renderStripCells: rich-js strip output did not end its last line`);return i.slice(0,-1)}function
|
|
135
|
-
`)}function
|
|
136
|
-
`);return e?`${l}\n${e}`:l}function
|
|
137
|
-
`))}function yC(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new B({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new H(e,{style:t,end:``,noWrap:!0}),l=n>0?[c(`${n} more rows · `,s),a.kind===`file`?c(`open full text`,s.withLink(x(a.path).href)):c(`full text unavailable: ${qS(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(qS(o),s.withLink(x(o).href))],d=[c(`↳ `,s),...l,...u.slice(0,-1)],f=d.reduce((e,t)=>e+t.cellLength,0),p=u.slice(-1).map(e=>e.truncate(Math.max(1,r.width-f),{mode:`middle`})),m=H.fromFragments([...d,...p]).truncate(r.width);return m.noWrap=!0,sC([m],r)}const bC=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function xC(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function SC(e,t){return r.readdirSync(t).filter(bC).sort().flatMap(n=>{let i=c.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?SC(e,i):[[c.relative(e,i).split(c.sep).join(`/`),xC(i,a)]]})}function CC(e){let t=C.createHash(`sha256`);for(let[n,r]of SC(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const wC=e=>e.slice(0,7);function TC(e){return c.dirname(c.dirname(e))}function EC(){return{version:Vx,digest:`9bbd82d28106ae24b4cd17125b753a88483b295c174efd79afb1a75007111e71`}}function DC(e){let t=JSON.parse(r.readFileSync(c.join(e,`package.json`),`utf8`)),n=typeof t==`object`&&t?t.version:void 0;if(typeof n!=`string`)throw Error(`${c.join(e,`package.json`)} has no version string`);return n}function OC(e,t){try{let n=TC(b(e)),i=c.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=CC(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:DC(n),digest:o},running:a}}catch(e){return{kind:`unchecked`,reason:e.message}}}var $=class extends Error{constructor(e){super(e),this.name=`BadVerbArgs`}};const kC=/^-?\d+$/;function AC(e,t,n){return e===void 0?t:Math.max(t,Math.min(n,e))}function jC(e,t,n=`set-state`){let r=e.filter(e=>e.includes(`/`));if(r.length>0)throw Error(`makeAllowListValidator(${t}): values contain "/" — the ${n} wire shape splits values on "/" so slash-bearing options cannot be addressed. Offending values: ${r.join(`, `)}`);if(e.includes(``))throw Error(`makeAllowListValidator(${t}): empty string is not a writable option — the validator rejects empty input before the allow-list check, so an "" in the allowed list could be rendered but never delivered. Remove "" from the allowed list.`);let i=new Set(e),a=[...e];return e=>e?i.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown ${t} "${e}" (have: ${a.join(`, `)})`}:{ok:!1,reason:`${t} value is required`}}function MC(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!kC.test(t))return{ok:!1,reason:`${e} must be an integer, got "${t}"`};let n=t[0]===`-`,r=(n?t.slice(1):t).replace(/^0+/,``);return r===``?{ok:!0,value:`0`}:{ok:!0,value:n?`-${r}`:r}}}function NC(e,t,n){return r=>r?kC.test(r)?{ok:!0,value:String(Math.max(e,Math.min(t,parseInt(r,10))))}:{ok:!1,reason:`${n} must be an integer, got "${r}"`}:{ok:!1,reason:`${n} value is required`}}function PC(e,t,n=`state`){let r=t.filter(e=>e.kind===`range`),i=t.some(e=>e.kind===`int`),a=t.flatMap(e=>e.kind===`allow-list`?e.allowed:[]);if(r.length===0&&!i)return{kind:`allow-list`,allowed:[...new Set(a)]};let o=a.filter(e=>!kC.test(e));if(o.length>0)throw Error(`${n} action table: key "${e}" is an integer spec (a paged cursor or a bounded value) but a click writes non-integer value(s) to it (${o.join(`, `)}). A ${n} key has one key shape — point that click at a distinct key, or write an integer.`);if(i&&r.length>0)throw Error(`${n} action table: key "${e}" is declared as both a paged cursor (int) and a bounded value (range) — a ${n} key has one key shape. Use distinct keys.`);if(r.length>0){let t=Math.min(...r.map(e=>e.min)),i=Math.max(...r.map(e=>e.max)),o=a.filter(e=>{let n=parseInt(e,10);return n<t||n>i});if(o.length>0)throw Error(`${n} action table: key "${e}" is a bounded range [${t},${i}] but a click writes out-of-range value(s) to it (${o.join(`, `)}). The range gate would clamp them, storing a different value than the click renders — write an in-range integer, or point that click at a distinct key.`);return{kind:`range`,min:t,max:i,seed:AC(r[0].seed,t,i)}}return{kind:`int`}}function FC(e){return e===`config`?`set-config`:`set-state`}function IC(e,t,n){return t.kind===`int`?MC(`menu page "${e}"`):t.kind===`range`?NC(t.min,t.max,`${n} stepper "${e}"`):jC(t.allowed,`${n} "${e}"`,FC(n))}function LC(e,t,n){return IC(e,PC(e,t,n),n)}function RC(e,t=`state`){let n=new Map;for(let{key:t,spec:r}of e){let e=n.get(t);e?e.push(r):n.set(t,[r])}return[...n].map(([e,n])=>({key:e,spec:PC(e,n,t)}))}function zC(e,t=`state`){let n=new Map(Object.entries(e).map(([e,t])=>[e,{validator:t,permanent:!0}]));function r(){let e=[];for(let[t,r]of n)r.permanent&&e.push(t);return e}return{register(e,i){if(!e)throw Error(`register: key is required`);if(e.includes(`/`))throw Error(`register: key "${e}" contains "/" — the wire shape splits on "/" so a slash-bearing key cannot be addressed. Use a slash-free key.`);let a=n.get(e);if(a){if(a.permanent)throw Error(`register: key "${e}" is a built-in ${t} key and cannot be re-claimed (built-in keys: ${[...r()].join(`, `)})`);if(a.kind!==i.kind)throw Error(`register: key "${e}" is already a ${a.kind} ${t} key; cannot also register it as ${i.kind}. A ${t} key has one key shape — a menu page index (int) and a button allow-list cannot share a key.`);a.specs.push(i),a.validator=LC(e,a.specs,t)}else{let r=[i];n.set(e,{permanent:!1,kind:i.kind,validator:LC(e,r,t),specs:r})}let o=!0;return()=>{if(!o)return;o=!1;let r=n.get(e);if(!r||r.permanent)return;let a=r.specs.indexOf(i);a>=0&&r.specs.splice(a,1),r.specs.length===0?n.delete(e):r.validator=LC(e,r.specs,t)}},validate(e,r){let i=n.get(e);return i?i.validator(r):{ok:!1,reason:`unknown ${t} key "${e}" (have: ${[...n.keys()].join(`, `)})`}},listKeys(){return[...n.keys()]},listBaselineKeys(){return r()},rangeParamsFor(e){let r=n.get(e);if(!r||r.permanent||r.kind!==`range`)return null;let i=PC(e,r.specs,t);if(i.kind!==`range`)throw Error(`rangeParamsFor: key "${e}" holds range specs but the merge produced a ${i.kind} spec — the entry-kind invariant is broken.`);return{min:i.min,max:i.max,seed:i.seed}}}}const BC=zC({},`config`);function VC(){return BC.listKeys()}function HC(e,t){return BC.validate(e,t)}function UC(e){return BC.rangeParamsFor(e)}function WC(e,t,n){return`persist`in e?`to`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[e.to]}}]:`from`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:gy(e.from,n).members}}]:`cycle`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:e.cycle}}]:`removeSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[eg({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[eg({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:gy(e.insertSegmentFrom,n).members.map(t=>eg({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max,seed:AC(t.get(e.persist),e.min,e.max)}}]:[]}function GC(e){return ks(e.globals)}function KC(e){let t=new Set;for(let n of JC(e)){let e=`persist`in n?n.persist:`reset`in n?n.reset:null;if(e===null)continue;let r=pg(e);r?.scope===`preset-root`&&t.add(r.preset)}return[...t].map(e=>({key:fg(e),spec:{kind:`allow-list`,allowed:[]}}))}function qC(e){let t=GC(e),n=new Map([...my(e),...Mg(e)]);return[...KC(e),...JC(e).flatMap(e=>WC(e,t,n))]}function JC(e){return Object.values(e.actions).flatMap(tv)}function YC(e){return RC(qC(e),`config`)}function XC(e,t){return BC.register(e,t)}const ZC=Mi(),QC=new Set(ZC),$C=new Set(Hi),ew=e=>e?QC.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${ZC.join(`, `)})`}:{ok:!1,reason:`theme name is required`},tw=e=>e?$C.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown style "${e}" (have: ${Hi.join(`, `)})`}:{ok:!1,reason:`style name is required`},nw=new Set([`1`,`true`]),rw=new Set([`0`,`false`]),iw=zC({style:tw,theme:ew,"toolbar-expanded":e=>nw.has(e)?{ok:!0,value:`1`}:rw.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}});function aw(){return iw.listKeys()}function ow(e,t){return iw.register(e,t)}function sw(e,t){return iw.validate(e,t)}function cw(e){return iw.rangeParamsFor(e)}function lw(e,t,n){return`set`in e?`to`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:[e.to]}}]:`from`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:gy(e.from,n).members}}]:`int`in e?[{key:e.set,spec:{kind:`int`}}]:`cycle`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:e.cycle}}]:[{key:e.set,spec:{kind:`range`,min:e.min,max:e.max,seed:AC(t.get(e.set),e.min,e.max)}}]:[]}function uw(e){let t=new Set(iw.listBaselineKeys());return e.filter(e=>e.spec.kind!==`allow-list`||!t.has(e.key))}function dw(e){let t=new Map,n=/^-?\d+$/;for(let r of Object.values(e.variables)){if(r.kind!==`state`)continue;let e=r.default;e!==void 0&&n.test(e)&&t.set(r.key,parseInt(e,10))}for(let[n,r]of ks(e.globals))t.set(n,r);return t}function fw(e){let t=dw(e),n=my(e);return uw(Object.values(e.actions).flatMap(tv).flatMap(e=>lw(e,t,n)))}function pw(e){return RC(fw(e))}const mw=`update.dismissed`,hw=`updateNotice`;function gw(e){return e.kind===`source`?e.newer.digest:Kx(e.newer)}const _w=e=>`${e.version} [${wC(e.digest)}]`;function vw(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:_w(e.newer),running:_w(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:Kx(e.newer),running:Kx(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${Jx}@${Kx(e.newer)}`,`install`]}}}}const yw={kind:`idle`},bw={kind:`running`};function xw(e,t,n){if(e===null)return[];let r=gw(e);if(!n.enabled||n.dismissed===r)return[];let i=vw(e),a=`${i.headline}: ${i.newer}. You're on ${i.running}.`,o=t.kind===`failed`&&t.identity===r?[`${i.act} failed: ${t.reason}`]:[],s=[a,...o].join(`
|
|
138
|
-
`),c=
|
|
139
|
-
`,1)[0]??``}function
|
|
140
|
-
`)){let e=n.match(/^remote\.(.+)\.url\s+(\S.*)$/);if(!e)continue;let r=t.get(e[1])??[];r.push(e[2].trim()),t.set(e[1],r)}return[...t].map(([e,t])=>({name:e,urls:t}))}function
|
|
141
|
-
`)){if(!l)continue;if(l.startsWith(`# `)){let e=l.slice(2);if(e.startsWith(`branch.oid `)){let t=e.slice(11).trim();n=t===`(initial)`?Z:X(t)}else if(e.startsWith(`branch.head `)){let n=e.slice(12).trim();t=n===`(detached)`?`detached`:n}else if(e.startsWith(`branch.upstream `))r=X(e.slice(16).trim());else if(e.startsWith(`branch.ab `)){let t=e.slice(10).trim().match(/^\+(\d+)\s+-(\d+)$/);t&&(i=X({ahead:parseInt(t[1],10),behind:parseInt(t[2],10)}))}continue}let e=l[0];if(e===`1`||e===`2`){let e=l.slice(2,4);e[0]!==`.`&&a++,e[1]!==`.`&&o++}else e===`u`?c++:e===`?`&&s++}let l=`clean`;return c>0?l=`conflicts`:(a||o||s)&&(l=`dirty`),{branch:t,status:l,aheadBehind:i,oid:n,upstream:r,workingTree:{staged:a,unstaged:o,untracked:s,conflicts:c}}}function
|
|
142
|
-
`).length:0)}async getRemotesAsync(e){let t=Xw(c.join(this.resolveCommonGitDir(e),`config`));if(t===null)return this.readRemotes(e);let{key:n,stamp:r}=t,i=this.remotesByConfig.get(n);if(i!==void 0&&i.stamp===r)return this.remotesByConfig.delete(n),this.remotesByConfig.set(n,i),i.remotes;let a=this.readRemotes(e);for(this.remotesByConfig.set(n,{stamp:r,remotes:a}),a.then(e=>{let t=this.remotesByConfig.get(n);e.kind!==`ok`&&t?.remotes===a&&this.remotesByConfig.delete(n)},()=>{this.remotesByConfig.get(n)?.remotes===a&&this.remotesByConfig.delete(n)});this.remotesByConfig.size>256;){let e=this.remotesByConfig.keys().next().value;if(e===void 0)break;this.remotesByConfig.delete(e)}return a}remotesByConfig=new Map;async readRemotes(e){let t=kw(`git config --get-regexp remote url`,await this.execGitAsync([`config`,`--local`,`--get-regexp`,`^remote\\..*\\.url$`],{cwd:e,timeout:2e3}),1);return t.kind===`failed`?t:X(t.kind===`ok`?Lw(t.value):[])}repoNameFrom(e,t){let n=Bw(e);return(n===null?null:Hw(n))??c.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=Vw(t.value);return n===null?Z:X(n)}async execForgeAsync(e,t,n){return Te({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=Iw(t);return n===`github`?Gw(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,Jw):n===`gitlab`?Gw(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,Yw):Z}isWorktree(e){try{let t=c.join(e,`.git`);return!!(r.existsSync(t)&&r.statSync(t).isFile())}catch{return!1}}async getCoreAsync(e){D(`[GIT-EXEC] Running git status --porcelain=v2 in ${e}`);let t=kw(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?X(qw(t.value)):t}};const Qw=(e,t)=>D(t);var $w=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??Qw}acquire(e,t,n){if(this.closed)return{release:()=>{}};let r=this.slots.get(e);if(r)return r.refcount++,r.onInvalidate=n,r.lastTouched=Date.now(),this.slots.delete(e),this.slots.set(e,r),this.makeHandle(e);let i={key:e,watchers:[],refcount:1,debounceTimer:null,onInvalidate:n,targets:t,lastTouched:Date.now()};return this.openWatchers(i),this.slots.set(e,i),this.counters&&this.counters.watchersOpened++,this.evictIfNeeded(),this.makeHandle(e)}makeHandle(e){let t=!1;return{release:()=>{if(t)return;t=!0;let n=this.slots.get(e);n&&(n.refcount=Math.max(0,n.refcount-1),n.refcount===0&&(this.closeSlot(n),this.slots.delete(e)))}}}openWatchers(e){let t=()=>{e.debounceTimer||(e.debounceTimer=setTimeout(()=>{e.debounceTimer=null;try{e.onInvalidate()}catch(e){this.logger(`warn`,`watcher invalidate threw: ${e.message}`)}},50),e.debounceTimer.unref())};for(let n of e.targets.files)try{let i=r.watch(n,{persistent:!1},t);i.on(`error`,e=>{this.logger(`warn`,`watcher error ${n}: ${e.message}`)}),e.watchers.push(i)}catch(e){this.logger(`warn`,`watch failed ${n}: ${e.message}`)}for(let n of e.targets.dirs)try{let i=n.filenames?new Set(n.filenames):null,a=r.watch(n.path,{persistent:!1},(e,n)=>{i&&(!n||!i.has(n))||t()});a.on(`error`,e=>{this.logger(`warn`,`watcher error ${n.path}: ${e.message}`)}),e.watchers.push(a)}catch(e){this.logger(`warn`,`watch failed ${n.path}: ${e.message}`)}}closeSlot(e){e.debounceTimer&&=(clearTimeout(e.debounceTimer),null);for(let t of e.watchers)try{t.close()}catch{}e.watchers=[],this.counters&&this.counters.watchersClosed++}evictIfNeeded(){for(;this.slots.size>this.maxWatchers;){let e=this.slots.keys().next().value;if(e===void 0)break;let t=this.slots.get(e);this.closeSlot(t),this.slots.delete(e),this.counters&&this.counters.watchersEvicted++;try{t.onInvalidate()}catch{}this.logger(`info`,`watcher LRU evict ${e}`)}}size(){return this.slots.size}closeAll(){this.closed=!0;for(let e of this.slots.values())this.closeSlot(e);this.slots.clear()}},eT=class{running=new Set;again=new Set;run(e,t){return this.again.add(e),this.running.has(e)?{kind:`queued`}:(this.running.add(e),{kind:`started`,done:this.loop(e,t)})}async loop(e,t){try{do this.again.delete(e),await t();while(this.again.has(e))}finally{this.running.delete(e),this.again.delete(e)}}clear(){this.running.clear(),this.again.clear()}get size(){return this.running.size}};const tT=(e,t)=>D(t),nT={showSha:!0,showStashCount:!0};function rT(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function iT(e){let t=t=>{try{return r.statSync(c.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function aT(e,t){return e.head!==t.head||e.index!==t.index}function oT(e){let t=[],n=c.join(e,`refs/heads`);try{r.statSync(n).isDirectory()&&t.push({path:n})}catch{}return{files:[c.join(e,`HEAD`),c.join(e,`index`)],dirs:t}}var sT=class extends Zw{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new eT;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new Zw,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??tT,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new $w({logger:this.logger}),this.ownsWatchers=!0);let t=e.sanityIntervalMs??3e5;t>0&&(this.sanityTimer=setInterval(()=>this.runSanityCheck(),t),this.sanityTimer.unref())}getWatcherRegistry(){return this.watchers}getStats(){return{size:this.entries.size,hits:this.hits,misses:this.misses,invalidations:this.invalidations,watchers:this.watchers.size()}}resolveEffectiveGitDir(e,t){let n=`${e}|${t??``}`,r=Date.now(),i=this.resolutions.get(n);if(i&&r-i.computedAt<this.ttlMs)return this.resolutions.delete(n),this.resolutions.set(n,i),i.dir;let a=this.inner.resolveEffectiveGitDir(e,t);return this.resolutions.set(n,{dir:a,computedAt:r}),a.catch(()=>{this.resolutions.get(n)?.dir===a&&this.resolutions.delete(n)}),this.evictResolutionsIfNeeded(),a}evictResolutionsIfNeeded(){for(;this.resolutions.size>this.maxEntries;){let e=this.resolutions.keys().next().value;if(e===void 0)break;this.resolutions.delete(e)}}async getGitInfo(e,t={},n){let r=await this.resolveEffectiveGitDir(e,n);return r.kind===`ok`?this.getGitInfoForRoot(r.value,t):r}getGitInfoForRoot(e,t){let n=`${e}|${rT(t)}`,r=Date.now(),i=this.entries.get(n);if(i&&r-i.computedAt<this.ttlMs)return this.entries.delete(n),this.entries.set(n,i),this.hits++,Promise.resolve(X(i.info));let a=this.fetchInFlight.get(n);if(a)return a;let o=this.doFetch(e,n,t,r).finally(()=>{this.fetchInFlight.delete(n)});return this.fetchInFlight.set(n,o),o}async doFetch(e,t,n,r){this.misses++;let i=this.inner.resolveGitDir(e),a=iT(i),o=await this.inner.getGitInfo(e,n);if(o.kind!==`ok`)return o;let s=o.value;n.showPullRequest&&(s.pullRequest=await this.getPullRequestCached(e,s.branch)),this.dropEntry(t);let c=this.watchers.acquire(`git:${e}`,oT(i),()=>this.invalidateRepo(e));return this.entries.set(t,{info:s,computedAt:r,mtime:a,watcher:c,repoRoot:e}),this.evictIfNeeded(),o}async getPullRequestCached(e,t){let n=await this.inner.getRepoRemoteUrl(e);if(n.kind===`failed`)return n;if(n.kind===`absent`)return Z;let r=n.value,i=`${e}|${t}|${r}`,a=Date.now(),o=this.prCache.get(i);if(o){let e=o.pr.kind===`failed`?45e3:3e5;if(a-o.computedAt<e)return this.prCache.delete(i),this.prCache.set(i,o),o.pr}let s=this.prFetchInFlight.get(i);if(s)return s;let c=this.inner.resolvePullRequest(e,r).then(e=>(this.prCache.set(i,{pr:e,computedAt:Date.now()}),this.evictPrIfNeeded(),e)).finally(()=>{this.prFetchInFlight.delete(i)});return this.prFetchInFlight.set(i,c),c}evictPrIfNeeded(){for(;this.prCache.size>this.maxEntries;){let e=this.prCache.keys().next().value;if(e===void 0)break;this.prCache.delete(e)}}deliverable(e,t){return e.kind===`failed`?(this.logger(`warn`,`git fetch failed (${t}): ${e.reason}`),null):e.kind===`ok`?e.value:null}subscribe(e,t){let n=!1,r=null;return{firstDelivery:(async()=>{let i=await this.resolveEffectiveGitDir(e);if(n)return;if(i.kind!==`ok`){i.kind===`failed`&&this.logger(`warn`,`git resolve failed (subscribe ${e}): ${i.reason}`),this.safeInvoke(t,null);return}let a=i.value,o=this.subscribersByRepo.get(a);if(!o){let t=this.inner.resolveGitDir(a),n=this.watchers.acquire(`git:${a}`,oT(t),()=>this.invalidateRepo(a));o={workingDir:e,repoRoot:a,callbacks:new Set,watcher:n},this.subscribersByRepo.set(a,o)}o.callbacks.add(t),r={repoRoot:a,entry:o};let s=await this.getGitInfoForRoot(a,{...nT});n||this.safeInvoke(t,this.deliverable(s,a))})(),unsubscribe:()=>{if(n=!0,!r)return;let{repoRoot:e,entry:i}=r;i.callbacks.delete(t),i.callbacks.size===0&&(i.watcher.release(),this.subscribersByRepo.delete(e))}}}invalidateRepo(e){let t=0;for(let[n,r]of this.entries)r.repoRoot===e&&(r.watcher.release(),this.entries.delete(n),t++);t>0&&(this.invalidations+=t,this.logger(`info`,`gitCache invalidate ${e} dropped=${t}`)),this.refreshSubscribers(e)}refreshSubscribers(e){let t=this.subscribersByRepo.get(e);!t||t.callbacks.size===0||this.refreshes.run(e,()=>this.refreshOnce(e))}async refreshOnce(e){let t=this.subscribersByRepo.get(e);if(!t||t.callbacks.size===0)return;let n=await this.getGitInfoForRoot(e,{...nT}),r=this.deliverable(n,e),i=this.subscribersByRepo.get(e);if(!(!i||i.callbacks.size===0))for(let e of[...i.callbacks])i.callbacks.has(e)&&this.safeInvoke(e,r)}safeInvoke(e,t){try{e(t)}catch(e){this.logger(`warn`,`git subscriber threw: ${e.message??String(e)}`)}}dropEntry(e){let t=this.entries.get(e);t&&(t.watcher.release(),this.entries.delete(e))}evictIfNeeded(){for(;this.entries.size>this.maxEntries;){let e=this.entries.keys().next().value;if(e===void 0)break;this.dropEntry(e),this.logger(`info`,`gitCache evict ${e}`)}}runSanityCheck(){let e=new Map;for(let t of this.entries.values()){let n=e.get(t.repoRoot);n||(n=iT(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),aT(t.mtime,n)&&this.invalidateRepo(t.repoRoot)}}runSanityCheckNow(){this.runSanityCheck()}close(){this.sanityTimer&&=(clearInterval(this.sanityTimer),null);for(let e of this.entries.values())e.watcher.release();this.entries.clear();for(let e of this.subscribersByRepo.values())e.callbacks.clear(),e.watcher.release();this.subscribersByRepo.clear(),this.refreshes.clear(),this.fetchInFlight.clear(),this.prCache.clear(),this.prFetchInFlight.clear(),this.resolutions.clear(),this.ownsWatchers&&this.watchers.closeAll()}},cT=class{static CACHE_DIR=O();static USAGE_CACHE_DIR=c.join(this.CACHE_DIR,`usage`);static LOCKS_DIR=c.join(this.CACHE_DIR,`locks`);static isLocked(e){let t=c.join(this.LOCKS_DIR,e);if(!r.existsSync(t))return!1;try{let n=r.readFileSync(t,`utf-8`),i=parseInt(n.trim(),10);if(isNaN(i))return D(`Invalid PID in lock file ${e}, removing stale lock`),r.unlinkSync(t),!1;try{return process.kill(i,0),!0}catch(n){return n.code===`ESRCH`?(D(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(D(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return D(`Error reading lock file ${e}:`,t),!0}}static async acquireLock(e,t=5e3){await this.ensureCacheDirectories();let n=c.join(this.LOCKS_DIR,e),i=Date.now(),a=String(process.pid);for(;Date.now()-i<t;)try{return await r.promises.writeFile(n,a,{flag:`wx`}),D(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await w(50);else throw e}return D(`Failed to acquire lock for ${e} within ${t}ms`),!1}static async releaseLock(e){let t=c.join(this.LOCKS_DIR,e);try{await r.promises.unlink(t),D(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&D(`Error releasing lock for ${e}:`,t)}}static async ensureCacheDirectories(){try{await Promise.all([r.promises.mkdir(this.CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.USAGE_CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.LOCKS_DIR,{recursive:!0})])}catch(e){D(`Failed to create cache directories:`,e)}}static createProjectHash(e){return ee(`md5`).update(e).digest(`hex`).substring(0,8)}static async getUsageCache(e,t){await this.ensureCacheDirectories();let n=c.join(this.USAGE_CACHE_DIR,`${e}.json`),i=`${e}.usage.lock`;for(let a=0;a<3;a++){if(this.isLocked(i)){D(`Cache for ${e} is locked, waiting...`),await w(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(D(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(D(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return D(`No shared ${e} usage cache found`),null;D(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await w(75)}}return D(`Failed to read ${e} cache after 3 attempts.`),null}static deserializeDates(e){return Array.isArray(e)?e.map(e=>({...e,timestamp:new Date(e.timestamp)})):e}static async setUsageCache(e,t,n){let i=`${e}.usage.lock`;if(!await this.acquireLock(i)){D(`Could not acquire lock to set usage cache for ${e}`);return}try{await this.ensureCacheDirectories();let i=c.join(this.USAGE_CACHE_DIR,`${e}.json`),a=JSON.stringify({data:t,timestamp:n||Date.now()});await r.promises.writeFile(i,a,`utf-8`),D(`[CACHE-SET] ${e} disk cache stored`)}catch(t){D(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const lT={"claude-haiku-4-5-20251001":{name:`Claude Haiku 4.5`,input:1,output:5,cache_write_5m:1.25,cache_write_1h:2,cache_read:.1},"claude-haiku-4-5":{name:`Claude Haiku 4.5`,input:1,output:5,cache_write_5m:1.25,cache_write_1h:2,cache_read:.1},"claude-opus-4-20250514":{name:`Claude Opus 4`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-opus-4-1":{name:`Claude Opus 4.1`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-opus-4-1-20250805":{name:`Claude Opus 4.1`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-sonnet-4-20250514":{name:`Claude Sonnet 4`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-4-opus-20250514":{name:`Claude 4 Opus`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-4-sonnet-20250514":{name:`Claude 4 Sonnet`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-sonnet-4-5":{name:`Claude Sonnet 4.5`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-sonnet-4-5-20250929":{name:`Claude Sonnet 4.5`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-opus-4-5":{name:`Claude Opus 4.5`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-opus-4-5-20251101":{name:`Claude Opus 4.5`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-opus-4-6":{name:`Claude Opus 4.6`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-opus-4-6-20260205":{name:`Claude Opus 4.6`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-sonnet-4-6":{name:`Claude Sonnet 4.6`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3}};var uT=class{static executionCache=null;static modelPricingCache=new Map;static GITHUB_PRICING_URL=`https://raw.githubusercontent.com/promptctl/cc-candybar/main/pricing.json`;static async loadDiskCache(){let e=Date.now()-1440*60*1e3;return await cT.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await cT.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new v(this.GITHUB_PRICING_URL),n=te({hostname:t.hostname,path:t.pathname,headers:{"User-Agent":`cc-candybar`,"Cache-Control":`no-cache`},timeout:5e3},t=>{if(t.statusCode!==200){D(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){D(`Response too large`),n.destroy(),e(null);return}r+=t}),t.on(`end`,()=>{try{let t=JSON.parse(r),n=t._meta,i={};for(let[e,n]of Object.entries(t))e!==`_meta`&&(i[e]=n);this.validatePricingData(i)?(D(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),D(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(D(`Invalid pricing data structure`),e(null))}catch(t){D(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{D(`Response error:`,t),e(null)})});n.on(`error`,t=>{D(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{D(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return D(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return D(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),D(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(D(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(lT).length} models`),this.executionCache=lT,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(lT).length} models`),lT)}static validatePricingData(e){if(!e||typeof e!=`object`)return!1;for(let[,t]of Object.entries(e)){if(!t||typeof t!=`object`)return!1;let e=t;if(typeof e.input!=`number`||typeof e.output!=`number`||typeof e.cache_read!=`number`)return!1}return!0}static async getModelPricing(e){if(this.modelPricingCache.has(e))return D(`[CACHE-HIT] Model pricing cache: ${e}`),this.modelPricingCache.get(e);let t=await this.getCurrentPricing(),n;return n=t[e]?t[e]:this.fuzzyMatchModel(e,t),this.modelPricingCache.set(e,n),D(`[CACHE-SET] Model pricing cache: ${e}`),n}static fuzzyMatchModel(e,t){let n=e.toLowerCase();for(let[e,r]of Object.entries(t))if(e.toLowerCase()===n)return r;for(let{pattern:e,fallback:r}of[{pattern:[`opus-4-6`,`claude-opus-4-6`],fallback:`claude-opus-4-6-20260205`},{pattern:[`opus-4-5`,`claude-opus-4-5`],fallback:`claude-opus-4-5-20251101`},{pattern:[`opus-4-1`,`claude-opus-4-1`],fallback:`claude-opus-4-1-20250805`},{pattern:[`opus-4`,`claude-opus-4`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet-4-6`,`sonnet-4.6`,`claude-sonnet-4-6`],fallback:`claude-sonnet-4-6`},{pattern:[`sonnet-4.5`,`4-5-sonnet`,`sonnet-4-5`],fallback:`claude-sonnet-4-5-20250929`},{pattern:[`sonnet-4`,`claude-sonnet-4`],fallback:`claude-sonnet-4-20250514`},{pattern:[`haiku-4.5`,`4-5-haiku`,`haiku-4-5`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`haiku`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`opus`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet`],fallback:`claude-sonnet-4-5-20250929`}])if(e.some(e=>n.includes(e))&&t[r])return t[r];return t[`claude-sonnet-4-5-20250929`]||{name:`${e} (Unknown Model)`,input:3,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3,output:15}}static async calculateCostForEntry(e){let t=e.message?.usage;if(!t)return 0;let n=this.extractModelId(e),r=await this.getModelPricing(n),i=t.input_tokens||0,a=t.output_tokens||0,o=t.cache_creation_input_tokens||0,s=t.cache_read_input_tokens||0,c=i/1e6*r.input,l=a/1e6*r.output,u=s/1e6*r.cache_read,d=o/1e6*r.cache_write_5m;return c+l+d+u}static extractModelId(e){if(e.model&&typeof e.model==`string`)return e.model;let t=e.message;if(t?.model){let e=t.model;if(typeof e==`string`)return e;let n=e;return(typeof n?.id==`string`?n.id:null)||`claude-sonnet-4-5-20250929`}return e.model_id&&typeof e.model_id==`string`?e.model_id:`claude-sonnet-4-5-20250929`}};function dT(e){if(!e)return 0;try{return o(e).mtimeMs}catch{return 0}}const fT=new class{slots;head=null;tail=null;constructor(e){this.slots=e}async run(e){await this.acquire();try{return await e()}finally{this.release()}}async acquire(){if(this.slots>0){this.slots--;return}await new Promise(e=>{let t={wake:e,next:null};this.tail?this.tail.next=t:this.head=t,this.tail=t})}release(){let e=this.head;if(!e){this.slots++;return}this.head=e.next,this.head||(this.tail=null),e.wake()}}(8);function pT(e){return((...t)=>fT.run(()=>e(...t)))}const mT=pT(ie),hT=pT(re),gT=pT(T);async function _T(e,t){return fT.run(async()=>{let n=null;try{n=await ne(e,`r`);let{size:r,mtimeMs:i,ino:a}=await n.stat(),o=t!==void 0&&(a!==t.ino||r<t.offset),s=o||t===void 0?0:t.offset;if(s>=r)return X({buf:Buffer.alloc(0),start:s,size:r,mtimeMs:i,ino:a,reset:o});let c=Buffer.alloc(r-s),l=0;for(;l<c.length;){let{bytesRead:e}=await n.read(c,l,c.length-l,s+l);if(e===0)break;l+=e}return X({buf:l===c.length?c:c.subarray(0,l),start:s,size:r,mtimeMs:i,ino:a,reset:o})}catch(t){return t.code===`ENOENT`?Z:Q(`readAppended ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}async function vT(e,t){return fT.run(async()=>{let n=null;try{n=await ne(e,`r`);let{size:r}=await n.stat(),i=Math.max(0,r-t),a=Buffer.alloc(r-i),o=0;for(;o<a.length;){let{bytesRead:e}=await n.read(a,o,a.length-o,i+o);if(e===0)break;o+=e}return X({buf:o===a.length?a:a.subarray(0,o),fromStart:i===0})}catch(t){return t.code===`ENOENT`?Z:Q(`readTail ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}const yT=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function bT(e){if(typeof e==`string`)return yT.exec(e)?.[1]}function xT(e){let t=e?.todos;if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let{content:t,activeForm:r,status:i}=e,a=i===`in_progress`,o=a&&typeof r==`string`?r:t;typeof o==`string`&&n.push({text:o,active:a,done:i===`completed`})}return n}function ST(e){let t=e.message?.content,n=e.type===`user`,r=[],i=[],a,o;if(typeof t==`string`)o=t;else if(Array.isArray(t))for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;switch(t.type){case`tool_use`:{let{id:e,name:n}=t;if(typeof e!=`string`||typeof n!=`string`)break;r.push({id:e,name:n}),n===`TodoWrite`&&(a=xT(t.input)??a);break}case`tool_result`:{let e=t.tool_use_id;typeof e==`string`&&i.push(e);break}case`text`:o??=t.text;break;default:break}}let s=n?bT(o):void 0;if(!(r.length===0&&i.length===0&&a===void 0&&s===void 0))return{...r.length>0&&{started:r},...i.length>0&&{finished:i},...a!==void 0&&{todos:a},...s!==void 0&&{command:s}}}function CT(){let e=[],t=process.env.CLAUDE_CONFIG_DIR;if(t&&t.split(`,`).forEach(t=>{let n=t.trim();a(n)&&e.push(n)}),e.length===0){let t=p(),n=d(t,`.config`,`claude`),r=d(t,`.claude`);a(n)&&e.push(n),a(r)&&e.push(r)}return e}async function wT(e){let t=[];for(let n of e){let e=d(n,`projects`);if(a(e))try{let n=await mT(e,{withFileTypes:!0});for(let r of n)if(r.isDirectory()){let n=d(e,r.name);t.push(n)}}catch(t){D(`Failed to read projects directory ${e}:`,t)}}return t}async function TT(e,t,n){let r=[],i=d(t,e,`subagents`);try{let t=(await mT(i)).filter(e=>e.startsWith(`agent-`)&&e.endsWith(`.jsonl`));for(let a of t){let t=d(i,a);if(n?.has(t)){r.push(t);continue}try{let n=(await hT(t,`utf-8`)).split(`
|
|
143
|
-
`)[0];n&&JSON.parse(n).sessionId===e&&r.push(t)}catch{D(`Failed to check agent file ${t}`)}}}catch(e){D(`Failed to read subagents directory ${i}:`,e)}return r}function
|
|
144
|
-
`))if(n.trim())try{let e=
|
|
145
|
-
`),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!GT.test(t))continue;let r=KT(t);if(r!=null)return r}return null}function XT(e,t,n){let r=og(t(`preset`),e.globals.preset,e.presets),i=lg(e,r),a=t(`edit.mode`)===`open`?e.editGlobals:{};return{preset:r,presetCustomized:n(r),theme:ly(a.palette,t(`theme`),i.palette),look:Vi(a.look,t(`look`),i.look,e.looks),style:Wi(a.style,t(`style`),i.style),separator:a.default_separator??i.default_separator,autoWrap:oa(a.autoWrap,t(`autoWrap`),i.autoWrap),padding:sa(a.padding,t(`padding`),i.padding),charset:Ji(a.charset,t(`charset`),i.charset),updateNotice:a.updateNotice??i.updateNotice??!0,colorCompatibility:Qi(a.colorCompatibility,t(`colorCompatibility`),i.colorCompatibility)}}function ZT(e){return{preset:{effective:e.preset,customized:e.presetCustomized},style:{effective:e.style},charset:{effective:e.charset},colorCompatibility:{effective:e.colorCompatibility},autoWrap:{effective:e.autoWrap},padding:{effective:e.padding}}}const QT=10*1e3;function $T(e,t,n,r){let i=n-(t*1e3-r);if(i<3e5||e<=0)return;let a=e/i,o=(100-e)/a;return Math.max(0,Math.round(o/6e4))}function eE(e,t){if(!(t<60))return e*3600/t}function tE(e,t,n,r){let i=r-t;if(i<50||i>QT)return;let a=n-e;if(!(a<=0))return a*1e3/i}function nE(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=tE(t.input,t.atMs,n.input,n.atMs),i=tE(t.output,t.atMs,n.output,n.atMs),a=tE(t.total,t.atMs,n.total,n.atMs);if(!(r===void 0&&i===void 0&&a===void 0))return{...r!==void 0&&{input:r},...i!==void 0&&{output:i},...a!==void 0&&{total:a}}}function rE(e){let{samples:t}=e,n=[];for(let e=1;e<t.length;e++){let r=t[e-1],i=t[e],a=i.atMs-r.atMs;if(a<50||a>QT)continue;let o=tE(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function iE(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function aE(e){let t=[],n=(e,n)=>{try{let e=n();return e===``?void 0:e}catch(n){t.push(`host.${e}: ${String(n)}`);return}},r=n(`name`,()=>iE(f.hostname())),i=n(`user`,()=>f.userInfo().username);return{host:{...r!==void 0&&{name:r},...i!==void 0&&{user:i},...e.ssh!==void 0&&{ssh:e.ssh}},failures:t}}function oE(e,t){let n=new Map;for(let[t,r]of Object.entries(e.variables))n.set(t,r);for(let[t,r]of Object.entries(e.segments))if(r.vars)for(let[e,i]of Object.entries(r.vars))n.set(`${t}.${e}`,i);let r=[],i=new Set;for(let n of no(cg(e,t).node)){if(n.when)for(let e of by(n.when))r.push(e);if(n.kind!==`segment`)continue;let t=e.segments[n.name];if(t){for(let e of[t.template,t.when,t.bg,t.fg])if(e)for(let t of by(e))r.push(t)}}let a=new Set;for(;r.length>0;){let e=r.pop();for(let t of cE(n,e)){if(i.has(t))continue;i.add(t);let e=n.get(t);if(e){if(e.kind===`input`)a.add(e.path);else if(e.kind===`template`)for(let t of by(e.template))r.push(t)}}}return a}function sE(e){let t=new Map;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=oE(e,n);return t.set(n,i),i}}function cE(e,t){let n=t;for(;n.length>0;){if(e.has(n))return[n];let t=n.lastIndexOf(`.`);if(t<0)break;n=n.slice(0,t)}let r=`${t}.`,i=[];for(let t of e.keys())t.startsWith(r)&&i.push(t);return i}function lE(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function uE(e){let t=t=>e.has(t),n=t(`git.staged`)||t(`git.unstaged`)||t(`git.untracked`)||t(`git.conflicts`);return{...t(`git.sha`)&&{showSha:!0},...n&&{showWorkingTree:!0},...t(`git.stash`)&&{showStashCount:!0},...t(`git.upstream`)&&{showUpstream:!0},...t(`git.repoName`)&&{showRepoName:!0},...t(`git.repoUrl`)&&{showRepoUrl:!0},...t(`git.operation`)&&{showOperation:!0},...t(`git.timeSinceCommit`)&&{showTimeSinceCommit:!0},...(t(`git.prNumber`)||t(`git.prState`)||t(`git.prUrl`)||t(`git.prError`))&&{showPullRequest:!0}}}async function dE(e,t,n,r,i,a){let o=e=>lE(r,e),s=(t.clock??(()=>new Date))().getTime(),c=(e,t,n)=>t?n().catch(t=>Q(`${e}: ${String(t)}`)):Promise.resolve(Z),[l,u,d,f,p,m,h,g,_]=await Promise.all([c(`git`,o(`git`),()=>t.gitProvider.getGitInfo(n??e.workspace?.current_dir,uE(r),e.workspace?.project_dir)),c(`session`,o(`session.cost`)||o(`session.tokens`)||o(`burn`),()=>t.usageStore.getUsageInfo(e.session_id,e)),c(`today`,o(`today`),()=>t.usageStore.getTodayInfo(e)),c(`context`,o(`context`),()=>t.contextProvider.getContextInfo(e)),c(`metrics`,o(`metrics`)||o(`burn`),()=>t.metricsProvider.getMetricsInfo(e.session_id,e)),c(`activity`,o(`activity`),()=>t.activityProvider.getActivityInfo(e.session_id,e)),c(`tmux`,o(`tmux`),()=>t.tmuxService.getSessionId()),c(`cache`,o(`cache`),()=>qT(e.transcript_path)),c(`speed`,o(`speed`),()=>t.usageStore.observeSpeed(e.session_id,e.transcript_path,s))]),v=[],y=e=>{if(e.kind===`failed`){v.push(e.reason);return}return e.kind===`ok`?e.value:void 0},b=gE(l);v.push(...b.failures);let x=aE(a);v.push(...x.failures);let S=y(u),C=y(d),ee=y(f),te=y(p),w=y(m),ne=y(h),re=y(g);for(let e of v)t.log(`warn`,`provider fetch failed: ${e}`);let ie=e.rate_limits?.five_hour,T=e.rate_limits?.seven_day,E=ie?$T(ie.used_percentage,ie.resets_at,18e6,s):void 0,ae=T?$T(T.used_percentage,T.resets_at,6048e5,s):void 0,oe=S?.session.cost,se=te?.sessionDuration,ce=o(`burn`)&&oe!=null&&se!=null?eE(oe,se):void 0,le=y(_),ue=le===void 0?void 0:nE(le),de=le===void 0?void 0:rE(le),fe=ue!==void 0||de!==void 0?{...ue,...de!==void 0&&{history:de}}:void 0,pe=hE(process.env.HOME??process.env.USERPROFILE),me=e.workspace?{...e.workspace,current_dir:hE(e.workspace.current_dir)??``,project_dir:hE(e.workspace.project_dir)??``}:e.workspace,he=S===void 0?void 0:mE({cost:S.session.cost,tokens:S.session.tokens}),D=C===void 0?void 0:{cost:C.cost,tokens:C.tokens},ge=te===void 0?void 0:mE({lastResponseTime:te.lastResponseTime,responseTime:te.responseTime,sessionDuration:te.sessionDuration,messageCount:te.messageCount,linesAdded:te.linesAdded,linesRemoved:te.linesRemoved}),_e=w===void 0?void 0:fE(w);return{...e,...me!==void 0&&{workspace:me},...pe!==void 0&&{home:pe},...b.git!==void 0&&{git:b.git},...ne!==void 0&&{tmux:{session:ne}},host:x.host,...ZT(i),...he!==void 0&&{session:he},...D!==void 0&&{today:D},...ce!==void 0&&{burn:{costPerHour:ce}},...fe!==void 0&&{speed:fe},...o(`block`)&&ie!==void 0&&{block:{nativeUtilization:ie.used_percentage,resetsAt:ie.resets_at,...E!==void 0&&{etaMinutes:E}}},...T!==void 0&&{weekly:{percentage:T.used_percentage,resetsAt:T.resets_at,...ae!==void 0&&{etaMinutes:ae}}},...re!==void 0&&{cache:{expiresAt:re}},...ee!==void 0&&{context:{totalTokens:ee.totalTokens,contextLeft:ee.contextLeftPercentage}},...ge!==void 0&&{metrics:ge},..._e!==void 0&&{activity:_e}}}function fE(e){let t=e.todos.findIndex(e=>e.active),n=e.todos.length===0?void 0:{total:e.todos.length,completed:e.todos.filter(e=>e.done).length,...t>=0&&{position:t+1,active:e.todos[t].text}},r=pE(e.running),i=pE(e.done),a=r===void 0&&i===void 0?void 0:{...r!==void 0&&{running:r},...i!==void 0&&{done:i}};if(!(e.command===null&&n===void 0&&a===void 0))return{...e.command!==null&&{command:e.command},...n!==void 0&&{todo:n},...a!==void 0&&{tool:a}}}function pE(e){return e.length===0?void 0:e.map(e=>`${e.name}:${e.count}`).join(`,`)}function mE(e){let t={},n=!1;for(let r of Object.keys(e)){let i=e[r];i!=null&&(t[r]=i,n=!0)}return n?t:void 0}function hE(e){return e===void 0||e.length===0||c.sep!==`\\`?e:e.replace(/\\/g,`/`)}function gE(e){if(e.kind===`absent`)return{failures:[]};if(e.kind===`failed`)return{failures:[e.reason]};let t=e.value,n=[],r=(e,t)=>{if(!(t===void 0||t.kind===`absent`)){if(t.kind===`failed`){n.push(`git.${e}: ${t.reason}`);return}return t.value}},i=r(`aheadBehind`,t.aheadBehind),a=r(`sha`,t.sha),o=r(`operation`,t.operation),s=r(`timeSinceCommit`,t.timeSinceCommit),c=r(`stash`,t.stashCount),l=r(`upstream`,t.upstream),u=r(`repoName`,t.repoName),d=r(`repoUrl`,t.repoUrl),f=t.pullRequest,p={};return f?.kind===`ok`?(p.prNumber=f.value.number,p.prState=f.value.state,p.prUrl=f.value.url):f?.kind===`failed`&&(n.push(`git.pr: ${f.reason}`),p.prError=f.reason),{git:{branch:t.branch,status:t.status,...i!==void 0&&{ahead:i.ahead,behind:i.behind},...t.workingTree!==void 0&&{staged:t.workingTree.staged,unstaged:t.workingTree.unstaged,untracked:t.workingTree.untracked,conflicts:t.workingTree.conflicts},...a!==void 0&&{sha:a},...o!==void 0&&{operation:o},...s!==void 0&&{timeSinceCommit:s},...c!==void 0&&{stash:c},...l!==void 0&&{upstream:l},...u!==void 0&&{repoName:u},...d!==void 0&&{repoUrl:d},...p},failures:n}}const _E=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,vE=`{{ \$dir := .current_dir }}{{ if and (ne .home "") (or (eq .home .current_dir) (hasPrefix (printf "%s/" .home) .current_dir)) }}{{ \$dir = printf "~%s" (trimPrefix .home .current_dir) }}{{ else }}{{ if or (eq .project_dir .current_dir) (hasPrefix (printf "%s/" .project_dir) .current_dir) }}{{ $dir = ternary (${_E}) (basename .project_dir) (ne (${_E}) "") }}{{ end }}{{ end }}{{ abbreviatePath \$dir }}`,yE={branch:`primary`,staged:`success`,unstaged:`warning`,untracked:`accent`,conflicts:`error`,dirty:`warning`,clean:`success`,ahead:`success`,behind:`warning`,stash:`accent`},bE=(e,t)=>`{{ fg (readableOn (color "${e}") (bgOf) ${$c}) ${t} }}`,xE=(e,t)=>bE(yE[e],t),SE=`{{ readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3 }}`,CE=`{{ if or (gt .git.staged 0) (gt .git.unstaged 0) (gt .git.untracked 0) (gt .git.conflicts 0) }} ({{ \$first := true }}{{ if gt .git.staged 0 }}${xE(`staged`,`(printf "+%v" .git.staged)`)}{{ $first = false }}{{ end }}{{ if gt .git.unstaged 0 }}{{ if not $first }} {{ end }}${xE(`unstaged`,`(printf "~%v" .git.unstaged)`)}{{ $first = false }}{{ end }}{{ if gt .git.untracked 0 }}{{ if not $first }} {{ end }}${xE(`untracked`,`(printf "?%v" .git.untracked)`)}{{ $first = false }}{{ end }}{{ if gt .git.conflicts 0 }}{{ if not $first }} {{ end }}${xE(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ $first = false }}{{ end }}){{ end }}`,wE=`{{ if eq .git.status "conflicts" }}${xE(`conflicts`,`"⚠"`)}{{ else }}{{ if eq .git.status "dirty" }}${xE(`dirty`,`"●"`)}{{ else }}${xE(`clean`,`"✓"`)}{{ end }}{{ end }}`,TE=`{{ if ne .git.repoName "" }}{{ .git.repoName }} {{ end }}⎇ ${xE(`branch`,`.git.branch`)}{{ if .git.sha }} ♯ {{ .git.sha }}{{ end }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${xE(`ahead`,`(printf "↑%v" .git.ahead)`)}{{ end }}{{ if gt .git.behind 0 }}${xE(`behind`,`(printf "↓%v" .git.behind)`)}{{ end }}{{ end }}`+CE+`{{ if .git.upstream }} →{{ .git.upstream }}{{ end }}{{ if gt .git.stash 0 }} ${xE(`stash`,`(printf "⧇ %v" .git.stash)`)}{{ end }} `+wE,EE={globals:{palette:`tokyo-night`},variables:{current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},transcript_path:{kind:`input`,path:`transcript_path`,default:``},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},"session.id":{kind:`input`,path:`session_id`,default:``},version:{kind:`input`,path:`version`,default:``},"theme.effective":{kind:`input`,path:`theme.effective`,default:``},"look.effective":{kind:`input`,path:`look.effective`,default:``},"preset.effective":{kind:`input`,path:`preset.effective`,default:``},"preset.customized":{kind:`input`,path:`preset.customized`,type:`boolean`,default:!1},"style.effective":{kind:`input`,path:`style.effective`,default:``},"charset.effective":{kind:`input`,path:`charset.effective`,default:``},"colorCompatibility.effective":{kind:`input`,path:`colorCompatibility.effective`,default:``},"autoWrap.effective":{kind:`input`,path:`autoWrap.effective`,type:`boolean`,default:!0},"padding.effective":{kind:`input`,path:`padding.effective`,type:`number`,default:1},"term.cols":{kind:`input`,path:`term.cols`,type:`number`,default:80},home:{kind:`input`,path:`home`,default:``},"tmux.session":{kind:`input`,path:`tmux.session`,default:``},"host.name":{kind:`input`,path:`host.name`,default:``},"host.user":{kind:`input`,path:`host.user`,default:``},"host.ssh":{kind:`input`,path:`host.ssh`,type:`boolean`,default:!1},"git.repoName":{kind:`input`,path:`git.repoName`,default:``},"git.repoUrl":{kind:`input`,path:`git.repoUrl`,default:``},"git.branch":{kind:`input`,path:`git.branch`,default:``},"git.sha":{kind:`input`,path:`git.sha`,default:``},"git.ahead":{kind:`input`,path:`git.ahead`,type:`number`,default:0},"git.behind":{kind:`input`,path:`git.behind`,type:`number`,default:0},"git.staged":{kind:`input`,path:`git.staged`,type:`number`,default:0},"git.unstaged":{kind:`input`,path:`git.unstaged`,type:`number`,default:0},"git.untracked":{kind:`input`,path:`git.untracked`,type:`number`,default:0},"git.conflicts":{kind:`input`,path:`git.conflicts`,type:`number`,default:0},"git.upstream":{kind:`input`,path:`git.upstream`,default:``},"git.stash":{kind:`input`,path:`git.stash`,type:`number`,default:0},"git.status":{kind:`input`,path:`git.status`,default:`clean`},"git.operation":{kind:`input`,path:`git.operation`,default:``},"git.timeSinceCommit":{kind:`input`,path:`git.timeSinceCommit`,type:`number`,default:0},"git.prNumber":{kind:`input`,path:`git.prNumber`,type:`number`,default:0},"git.prState":{kind:`input`,path:`git.prState`,default:``},"git.prUrl":{kind:`input`,path:`git.prUrl`,default:``},"git.prError":{kind:`input`,path:`git.prError`,default:``},"cache.expiresAt":{kind:`input`,path:`cache.expiresAt`,type:`number`,default:0},"session.cost":{kind:`input`,path:`session.cost`,type:`number`,default:0},"session.tokens":{kind:`input`,path:`session.tokens`,type:`number`,default:0},"session.budget.amount":{kind:`literal`,value:0},"session.budget.warningThreshold":{kind:`literal`,value:80},"today.cost":{kind:`input`,path:`today.cost`,type:`number`,default:0},"today.tokens":{kind:`input`,path:`today.tokens`,type:`number`,default:0},"today.budget.amount":{kind:`literal`,value:50},"today.budget.warningThreshold":{kind:`literal`,value:80},"block.nativeUtilization":{kind:`input`,path:`block.nativeUtilization`,type:`number`,default:0},"block.resetsAt":{kind:`input`,path:`block.resetsAt`,type:`number`,default:0},"block.budget.warningThreshold":{kind:`literal`,value:80},"block.budget.heatThreshold":{kind:`literal`,value:50},"weekly.percentage":{kind:`input`,path:`weekly.percentage`,type:`number`,default:0},"weekly.resetsAt":{kind:`input`,path:`weekly.resetsAt`,type:`number`,default:0},"weekly.budget.warningThreshold":{kind:`literal`,value:80},"weekly.budget.heatThreshold":{kind:`literal`,value:50},"burn.costPerHour":{kind:`input`,path:`burn.costPerHour`,type:`number`,default:-1},"block.etaMinutes":{kind:`input`,path:`block.etaMinutes`,type:`number`,default:-1},"weekly.etaMinutes":{kind:`input`,path:`weekly.etaMinutes`,type:`number`,default:-1},"burn.eta.warnMinutes":{kind:`literal`,value:60},"burn.eta.errorMinutes":{kind:`literal`,value:30},"speed.input":{kind:`input`,path:`speed.input`,type:`number`,default:-1},"speed.output":{kind:`input`,path:`speed.output`,type:`number`,default:-1},"speed.total":{kind:`input`,path:`speed.total`,type:`number`,default:-1},"speed.history":{kind:`input`,path:`speed.history`,type:`string`,default:``},"context.totalTokens":{kind:`input`,path:`context.totalTokens`,type:`number`,default:0},"context.contextLeft":{kind:`input`,path:`context.contextLeft`,type:`number`,default:100},"metrics.lastResponseTime":{kind:`input`,path:`metrics.lastResponseTime`,type:`number`,default:0},"metrics.responseTime":{kind:`input`,path:`metrics.responseTime`,type:`number`,default:0},"metrics.sessionDuration":{kind:`input`,path:`metrics.sessionDuration`,type:`number`,default:0},"metrics.messageCount":{kind:`input`,path:`metrics.messageCount`,type:`number`,default:0},"metrics.linesAdded":{kind:`input`,path:`metrics.linesAdded`,type:`number`,default:0},"metrics.linesRemoved":{kind:`input`,path:`metrics.linesRemoved`,type:`number`,default:0},"activity.command":{kind:`input`,path:`activity.command`,type:`string`,default:``},"activity.todo.total":{kind:`input`,path:`activity.todo.total`,type:`number`,default:0},"activity.todo.completed":{kind:`input`,path:`activity.todo.completed`,type:`number`,default:0},"activity.todo.position":{kind:`input`,path:`activity.todo.position`,type:`number`,default:0},"activity.todo.active":{kind:`input`,path:`activity.todo.active`,type:`string`,default:``},"activity.tool.running":{kind:`input`,path:`activity.tool.running`,type:`string`,default:``},"activity.tool.done":{kind:`input`,path:`activity.tool.done`,type:`string`,default:``}},segments:{directory:{description:"The current directory, shortened fish-style — `~` under home, project-relative inside the project.",template:vE},model:{description:`The active model's display name.`,template:`✱ {{ formatModelName .model.display_name }}`,when:`{{ ne .model.display_name "" }}`},sessionId:{description:`The session id, truncated to 8 characters.`,template:`⌗{{ trunc 8 .session.id }}`,when:`{{ ne .session.id "" }}`},version:{description:`The Claude Code version reported in the hook payload.`,template:`◈ v{{ .version }}`,when:`{{ ne .version "" }}`},tmux:{description:`The tmux session name; hidden when not inside tmux.`,template:`tmux:{{ .tmux.session | default "none" }}`,when:`{{ ne .tmux.session "" }}`},host:{description:`user@host on a warning background, shown only over SSH.`,template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,when:`{{ .host.ssh }}`},git:{description:`Branch, sha, ahead/behind, staged/unstaged/untracked/conflict counts, upstream, stash count, and a clean/dirty/conflict glyph.`,template:TE,fg:SE,when:`{{ ne .git.branch "" }}`},gitaculous:{description:`The same git state in asyncgit's compact spelling: repo, in-progress operation, sha, S/U/? flags, branch, upstream ±, stash count, and time since the last commit.`,template:`(git){{ if ne .git.repoName "" }} {{ .git.repoName }}{{ end }}{{ if ne .git.operation "" }} [{{ .git.operation }}]{{ end }}{{ if ne .git.sha "" }} {{ .git.sha }}{{ end }}{{ if or (gt .git.staged 0) (gt .git.unstaged 0) (gt .git.untracked 0) (gt .git.conflicts 0) }} {{ if gt .git.staged 0 }}${xE(`staged`,`"S"`)}{{ end }}{{ if gt .git.unstaged 0 }}${xE(`unstaged`,`"U"`)}{{ end }}{{ if gt .git.untracked 0 }}${xE(`untracked`,`"?"`)}{{ end }}{{ if gt .git.conflicts 0 }}${xE(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ end }}{{ end }} ⎇ ${xE(`branch`,`.git.branch`)}{{ if ne .git.upstream "" }} [{{ .git.upstream }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${xE(`ahead`,`(printf "+%v" .git.ahead)`)}{{ end }}{{ if and (gt .git.ahead 0) (gt .git.behind 0) }}/{{ end }}{{ if gt .git.behind 0 }}${xE(`behind`,`(printf "-%v" .git.behind)`)}{{ end }}{{ end }}]{{ end }}{{ if gt .git.stash 0 }} ${xE(`stash`,`(printf "(%v stashed)" .git.stash)`)}{{ end }}{{ if gt .git.timeSinceCommit 0 }} ◷ {{ template "formatTimeSince" .git.timeSinceCommit }}{{ end }}`,fg:SE,when:`{{ ne .git.branch "" }}`},gitPr:{description:"The pull request open for this branch, as a link; `⚠ PR` when the forge lookup failed.",template:`{{ if ne .git.prUrl "" }}{{ link .git.prUrl (printf "⇆ #%v" .git.prNumber) }}{{ else }}⚠ PR{{ end }}`,when:`{{ or (ne .git.prUrl "") (ne .git.prError "") }}`},toolbar:{description:`Quick actions: copy the session id, and open the project, transcript or repo.`,template:$g(``).template},themeSwitcher:{description:"`◀ <theme> ▶`: the theme the bar is wearing; ◀ and ▶ switch this session to the previous or next theme, wrapping at the ends.",template:`{{ carousel "stepTheme" 0 }}`},session:{description:`This session's cost and token total, with a budget warning once a budget is configured.`,template:`§ {{ template "formatCost" .session.cost }} ({{ template "formatTokens" .session.tokens }}){{ template "budgetStatus" (dict "cost" .session.cost "budget" .session.budget.amount "warn" .session.budget.warningThreshold) }}`},today:{description:`Today's cost and tokens across every session, with a budget warning once a budget is configured.`,template:`☉ {{ template "formatCost" .today.cost }} ({{ template "formatTokens" .today.tokens }}){{ template "budgetStatus" (dict "cost" .today.cost "budget" .today.budget.amount "warn" .today.budget.warningThreshold) }}`},block:{description:`The 5-hour rate-limit block: percent used and time to reset, heating to warning then error.`,template:`◱ {{ round .block.nativeUtilization }}% ({{ template "formatResetCountdown" .block.resetsAt }})`,bg:`{{ ramp (round .block.nativeUtilization) "step" 0 (tint) .block.budget.heatThreshold "warning" .block.budget.warningThreshold "error" }}`,when:`{{ gt .block.resetsAt 0 }}`},weekly:{description:`The weekly rate-limit quota: percent used and time to reset, heating to warning then error.`,template:`◑ {{ round .weekly.percentage }}% ({{ template "formatResetCountdown" .weekly.resetsAt }})`,bg:`{{ ramp (round .weekly.percentage) "step" 0 (tint) .weekly.budget.heatThreshold "warning" .weekly.budget.warningThreshold "error" }}`,when:`{{ gt .weekly.resetsAt 0 }}`},burnrate:{description:`Spend per hour, with the projected time to the 5-hour and weekly limits.`,template:`⚡ {{ template "formatRate" .burn.costPerHour }} · {{ template "formatEta" .block.etaMinutes }} to 5h · {{ template "formatEta" .weekly.etaMinutes }} to wk`,bg:`{{ ramp .block.etaMinutes "step" -1 (tint) 0 "error" .burn.eta.errorMinutes "warning" .burn.eta.warnMinutes (tint) }}`,when:`{{ or (gt .block.resetsAt 0) (gt .weekly.resetsAt 0) }}`},speed:{description:`Token throughput for the latest exchange: output, input, and total.`,template:`⇅ out {{ template "formatSpeed" .speed.output }} · in {{ template "formatSpeed" .speed.input }} · tot {{ template "formatSpeed" .speed.total }}`,when:`{{ gt .session.tokens 0 }}`},tokenSparkline:{description:`A sparkline of recent token throughput.`,template:`⚡ {{ sparkline .speed.history 24 }}`,when:`{{ ne .speed.history "" }}`},cacheTimer:{description:"Minutes until the prompt cache expires, or `cold` once it has.",template:`◴ {{ if le (minutesUntilReset .cache.expiresAt) 0 }}cold{{ else }}{{ minutesUntilReset .cache.expiresAt }}m{{ end }}`,fg:`{{ readableOn (color (cascade (minutesUntilReset .cache.expiresAt) "0:error" "9:warning" "21:foreground")) (bgOf) ${$c} }}`,when:`{{ gt .cache.expiresAt 0 }}`},context:{description:`Context used, in tokens and percent remaining, heating as it fills.`,template:`◔ {{ formatInteger .context.totalTokens }} ({{ .context.contextLeft }}%)`,bg:`{{ ramp .context.contextLeft "step" 0 "error" 21 "warning" 41 (tint) }}`,when:`{{ gt .context.totalTokens 0 }}`},metrics:{description:`Response times, session duration, message count, and lines added/removed.`,template:`{{ if .metrics.lastResponseTime }} Δ {{ template "formatResponseTime" .metrics.lastResponseTime }}{{ end }}{{ if .metrics.responseTime }} ⧖ {{ template "formatResponseTime" .metrics.responseTime }}{{ end }}{{ if .metrics.sessionDuration }} ⧗ {{ template "formatDuration" .metrics.sessionDuration }}{{ end }}{{ if .metrics.messageCount }} ◆ {{ .metrics.messageCount }}{{ end }}{{ if .metrics.linesAdded }} + {{ .metrics.linesAdded }}{{ end }}{{ if .metrics.linesRemoved }} - {{ .metrics.linesRemoved }}{{ end }} `,when:`{{ or (gt .metrics.lastResponseTime 0.0) (gt .metrics.responseTime 0.0) (gt .metrics.sessionDuration 0.0) (gt .metrics.messageCount 0) (gt .metrics.linesAdded 0) (gt .metrics.linesRemoved 0) }}`},activity:{description:`What Claude is doing: the slash command that opened the turn, the in-progress todo, and the tools in flight.`,template:`{{ if .activity.command }} ⌘ {{ .activity.command }}{{ end }}{{ if .activity.todo.total }}{{ if .activity.todo.active }} ☐ {{ .activity.todo.position }}/{{ .activity.todo.total }} {{ abbrev 32 .activity.todo.active }}{{ else }} ☑ {{ .activity.todo.completed }}/{{ .activity.todo.total }}{{ end }}{{ end }}{{ if .activity.tool.running }} ⟳ {{ template "formatToolTally" .activity.tool.running }}{{ end }}{{ if .activity.tool.done }} ✓ {{ template "formatToolTally" .activity.tool.done }}{{ end }} `,when:`{{ or (ne .activity.command "") (gt .activity.todo.total 0) (ne .activity.tool.running "") (ne .activity.tool.done "") }}`}},root:{rows:{identity:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`}]},status:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`activity`}]}}},actions:{...$g(``).actions,copyDir:{copy:`{{ .current_dir }}`},stepTheme:{set:`theme`,from:`themes`}},looks:{none:{hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:0},vivid:{hueShift:0,chromaScale:1.35,lightnessScale:1,lightnessShift:0},muted:{hueShift:0,chromaScale:.55,lightnessScale:1,lightnessShift:0},dim:{hueShift:0,chromaScale:1,lightnessScale:.85,lightnessShift:0},bright:{hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:.08},inverted:{hueShift:0,chromaScale:1,lightnessScale:-1,lightnessShift:1}},presets:{default:{},compact:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`git`},{kind:`segment`,name:`context`}]},globals:{padding:0}},verbose:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}}},editGlobals:{style:`plain`,default_separator:` | `},helpers:{formatCost:'{{ if lt . 0.01 }}<$0.01{{ else }}${{ printf "%.2f" . }}{{ end }}',formatTokenCount:`{{ if ge . 1000000 }}{{ printf "%.1f" (divf . 1000000) }}M{{ else if ge . 1000 }}{{ printf "%.1f" (divf . 1000) }}K{{ else }}{{ . }}{{ end }}`,formatTokens:`{{ template "formatTokenCount" . }} tokens`,formatToolTally:`{{ $names := splitList "," . }}{{ range $i, $pair := $names }}{{ if lt $i 2 }}{{ if $i }} {{ end }}{{ $kv := splitList ":" $pair }}{{ index $kv 0 }}{{ if ne (index $kv 1) "1" }}×{{ index $kv 1 }}{{ end }}{{ end }}{{ end }}{{ if gt (len $names) 2 }} +{{ sub (len $names) 2 }}{{ end }}`,formatRate:`{{ if lt . 0 }}—/hr{{ else }}{{ template "formatCost" . }}/hr{{ end }}`,formatEta:`{{ if lt . 0 }}—{{ else }}{{ template "formatLongTimeRemaining" . }}{{ end }}`,formatSpeed:`{{ if lt . 0 }}—{{ else }}{{ template "formatTokenCount" (round .) }}/s{{ end }}`,formatTokenBreakdown:`{{ $first := true }}{{ if gt .input 0 }}{{ template "formatTokenCount" .input }} in{{ $first = false }}{{ end }}{{ if gt .output 0 }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" .output }} out{{ $first = false }}{{ end }}{{ if or (gt .cacheCreation 0) (gt .cacheRead 0) }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" (add .cacheCreation .cacheRead) }} cached{{ $first = false }}{{ end }}{{ if $first }}0 tokens{{ end }}`,budgetStatus:`{{ if or (le .budget 0) (lt .cost 0) }}{{ else }}{{ $pct := minf 100 (mulf (divf .cost .budget) 100) }}{{ $p := printf "%.0f%%" $pct }}{{ if ge $pct .warn }} !{{ $p }}{{ else }}{{ if ge $pct 50 }} +{{ $p }}{{ else }} {{ $p }}{{ end }}{{ end }}{{ end }}`,formatTimeSince:`{{ if lt . 60 }}{{ . }}s{{ else if lt . 3600 }}{{ div . 60 }}m{{ else if lt . 86400 }}{{ div . 3600 }}h{{ else if lt . 604800 }}{{ div . 86400 }}d{{ else }}{{ div . 604800 }}w{{ end }}`,formatDuration:`{{ if lt . 60 }}{{ printf "%.0f" . }}s{{ else if lt . 3600 }}{{ printf "%.0f" (divf . 60) }}m{{ else if lt . 86400 }}{{ printf "%.1f" (divf . 3600) }}h{{ else }}{{ printf "%.1f" (divf . 86400) }}d{{ end }}`,formatResponseTime:`{{ if lt . 60 }}{{ printf "%.1f" . }}s{{ else }}{{ printf "%.1f" (divf . 60) }}m{{ end }}`,formatLongTimeRemaining:`{{ if ge . 1440 }}{{ $d := div . 1440 }}{{ $h := div (mod . 1440) 60 }}{{ if gt $h 0 }}{{ $d }}d {{ $h }}h{{ else }}{{ $d }}d{{ end }}{{ else if ge . 60 }}{{ $h := div . 60 }}{{ $m := mod . 60 }}{{ if gt $m 0 }}{{ $h }}h {{ $m }}m{{ else }}{{ $h }}h{{ end }}{{ else }}{{ . }}m{{ end }}`,formatResetCountdown:`{{ template "formatLongTimeRemaining" (add 1 (minutesUntilReset .)) }}`}},DE=new Set([EE.globals.palette,...Object.values(EE.segments).map(e=>e.palette)].filter(e=>e!==void 0)),OE=Xo(rb(`<default>`,JSON.stringify(EE),DE),EE);var kE=pe((e=>{function t(e){var t=[...arguments].slice(1);throw Error(typeof e==`number`?`[MobX] minified error nr: `+e+(t.length?` `+t.map(String).join(`,`):``)+`. Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts`:`[MobX] `+e)}function n(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:nn}function r(){P||t(`Proxy not available`)}function i(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}function a(e){return typeof e==`function`}function o(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function s(e){return typeof e==`object`&&!!e}function c(e){if(!s(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===ln}function l(e){var t=e?.constructor;return!!t&&(t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`)}function u(e,t,n){an(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function d(e,t,n){an(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function f(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return s(e)&&!0===e[n]}}function p(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function m(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function h(e){return e===null?null:typeof e==`object`?``+e:e}function g(e,t){return on.hasOwnProperty.call(e,t)}function _(e,t){return!!(e&t)}function v(e,t,n){return n?e|=t:e&=~t,e}function y(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n){if(ne())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&re(i,n.prototype),i}function x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,ie(r.key),r)}}function S(e,t,n){return t&&x(e.prototype,t),n&&x(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function C(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if(typeof e==`string`)return y(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
146
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(){return(ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function
|
|
147
|
-
'`+s.i+`' can only be used on properties with a function value.`)}function me(e,t,n,r,i){var a,o,s;i===void 0&&(i=z.safeDescriptors);var c=r.value;return(a=t.u)!=null&&a.bound&&(c=c.bind(e.v??e.h)),{value:Ne(t.u?.name??n.toString(),c,(o=t.u?.autoAction)!=null&&o,(s=t.u)!=null&&s.bound?e.v??e.h:void 0),configurable:!i||e.p,enumerable:!1,writable:!i}}function he(e,t){return{i:e,u:t,o:D,s:ge,t:_e}}function D(e,t,n,r){var i;return r===e.h?this.s(e,t,n,!1)===null?0:2:(i=this.u)!=null&&i.bound&&(!g(e.h,t)||!vt(e.h[t]))&&this.s(e,t,n,!1)===null?0:vt(n.value)?1:(an(r,t,ve(e,0,0,n,!1,!1)),2)}function ge(e,t,n,r){var i=ve(e,0,0,n,this.u?.bound);return e.l(t,i,r)}function _e(e,t){var n,r=t.name,i=t.addInitializer;return vt(e)||(e=rr(e)),(n=this.u)!=null&&n.bound&&i((function(){var e=this[r].bind(this);e.isMobXFlow=!0,this[r]=e})),e}function ve(e,t,n,r,i,a){a===void 0&&(a=z.safeDescriptors);var o=r.value;return vt(o)||(o=rr(o)),i&&((o=o.bind(e.v??e.h)).isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function ye(e,t){return{i:e,u:t,o:be,s:xe,t:Se}}function be(e,t,n){return this.s(e,t,n,!1)===null?0:1}function xe(e,t,n,r){return e.m(t,ee({},this.u,{get:n.get,set:n.set}),r)}function Se(e,t){var n=this,r=t.name;return(0,t.addInitializer)((function(){var t=Ht(this)[F],i=ee({},n.u,{get:e,context:this});i.name||=`ObservableObject.`+r.toString(),t.j.set(r,new In(i))})),function(){return this[F].O(r)}}function Ce(e,t){return{i:e,u:t,o:we,s:Te,t:Ee}}function we(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Te(e,t,n,r){return e.g(t,n.value,this.u?.enhancer??ce,r)}function Ee(e,t){function n(e,t){var n=Ht(e)[F],i=new Pn(t,r.u?.enhancer??ce,`ObservableObject.`+a.toString(),!1);n.j.set(a,i),o.add(e)}var r=this,i=t.kind,a=t.name,o=new WeakSet;if(i==`accessor`)return{get:function(){return o.has(this)||n(this,e.get.call(this)),this[F].O(a)},set:function(e){return o.has(this)||n(this,e),this[F].S(a,e)},init:function(e){return o.has(this)||n(this,e),e}}}function De(e){return{i:`true`,u:e,o:Oe,s:ke,t:Ae}}function Oe(e,t,n,r){var i,a,o;if(n.get)return kn.o(e,t,n,r);if(n.set){var s=ct(n.set)?n.set:Ne(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!z.safeDescriptors||e.p,set:s})===null?0:2:(an(r,t,{configurable:!0,set:s}),2)}if(r!==e.h&&typeof n.value==`function`)return l(n.value)?((o=this.u)!=null&&o.autoBind?rr.bound:rr).o(e,t,n,r):((a=this.u)!=null&&a.autoBind?Zn.bound:Zn).o(e,t,n,r);var c=!1===this.u?.deep?En.ref:En;return typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),c.o(e,t,n,r)}function ke(e,t,n,r){var i;return n.get?kn.s(e,t,n,r):n.set?e.l(t,{configurable:!z.safeDescriptors||e.p,set:Ne(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),(!1===this.u?.deep?En.ref:En).s(e,t,n,r))}function Ae(){t(`'`+this.i+`' cannot be used as a decorator`)}function je(e){return e||bn}function O(e){return!0===e.deep?ce:!1===e.deep?le:(t=e.defaultDecorator)&&(n=(r=t.u)?.enhancer)!=null?n:ce;var t,n,r}function Me(e,t,n){return oe(t)?xn.t(e,t):o(t)?void ae(e,t,xn):xt(e)?e:c(e)?En.object(e,t,n):Array.isArray(e)?En.array(e,t):p(e)?En.map(e,t):m(e)?En.set(e,t):typeof e==`object`&&e?e:En.box(e,t)}function Ne(e,t,n,r){function i(){return Pe(0,n,t,r||this,arguments)}return n===void 0&&(n=!1),i.isMobxAction=!0,i.toString=function(){return t.toString()},Mn&&(Nn.value=e,an(i,`name`,Nn)),i}function Pe(e,t,n,r,i){var a=Fe(0,t);try{return n.apply(r,i)}catch(e){throw a._=e,e}finally{Ie(a)}}function Fe(e,t){var n=z.trackingDerivation,r=!t||!n;$e();var i=z.allowStateChanges;r&&(Ge(),i=Re(!0));var a={A:r,k:n,M:i,V:qe(!0),R:!1,N:0,T:jn++,C:An};return An=a.T,a}function Ie(e){An!==e.T&&t(30),An=e.C,e._!==void 0&&(z.suppressReactionErrors=!0),ze(e.M),Je(e.V),et(),e.A&&Ke(e.k),z.suppressReactionErrors=!1}function Le(e,t){var n=Re(e);try{return t()}finally{ze(n)}}function Re(e){var t=z.allowStateChanges;return z.allowStateChanges=e,t}function ze(e){z.allowStateChanges=e}function Be(e){return e instanceof Rn}function Ve(e){switch(e.I){case L.L:return!1;case L.P:case L.K:return!0;case L.B:for(var t=qe(!0),n=Ge(),r=e.D,i=r.length,a=0;a<i;a++){var o=r[a];if(R(o)){if(z.disableErrorBoundaries)o.get();else try{o.get()}catch{return Ke(n),Je(t),!0}if(e.I===L.K)return Ke(n),Je(t),!0}}return Ye(e),Ke(n),Je(t),!1}}function He(e,t,n){var r=qe(!0);Ye(e),e.W=Array(e.q===0?100:e.D.length),e.G=0,e.q=++z.runId;var i,a=z.trackingDerivation;if(z.trackingDerivation=e,z.inBatch++,!0===z.disableErrorBoundaries)i=t.call(n);else try{i=t.call(n)}catch(e){i=new Rn(e)}return z.inBatch--,z.trackingDerivation=a,function(e){for(var t=e.D,n=e.D=e.W,r=L.L,i=0,a=e.G,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.I>r&&(r=s.I)}for(n.length=i,e.W=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&Ze(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Xe(l,e))}r!==L.L&&(e.I=r,e.H())}(e),Je(r),i}function Ue(e){var t=e.D;e.D=[];for(var n=t.length;n--;)Ze(t[n],e);e.I=L.P}function We(e){var t=Ge();try{return e()}finally{Ke(t)}}function Ge(){var e=z.trackingDerivation;return z.trackingDerivation=null,e}function Ke(e){z.trackingDerivation=e}function qe(e){var t=z.allowStateReads;return z.allowStateReads=e,t}function Je(e){z.allowStateReads=e}function Ye(e){if(e.I!==L.L){e.I=L.L;for(var t=e.D,n=t.length;n--;)t[n].U=L.L}}function Xe(e,t){e.F.add(t),e.U>t.I&&(e.U=t.I)}function Ze(e,t){e.F.delete(t),e.F.size===0&&Qe(e)}function Qe(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,z.pendingUnobservations.push(e))}function $e(){z.inBatch++}function et(){if(--z.inBatch==0){rt();for(var e=z.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.F.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof In&&n.X())}z.pendingUnobservations=[]}}function tt(e){var t=z.trackingDerivation;return t===null?(e.F.size===0&&z.inBatch>0&&Qe(e),!1):(t.q!==e.$&&(e.$=t.q,t.W[t.G++]=e,!e.isBeingObserved&&z.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function nt(e){e.U!==L.K&&(e.U=L.K,e.F.forEach((function(e){e.I===L.L&&e.H(),e.I=L.K})))}function rt(){z.inBatch>0||z.isRunningReactions||Wn(it)}function it(){z.isRunningReactions=!0;for(var e=z.pendingReactions,t=0;e.length>0;){++t==100&&(console.error(`[mobx] cycle in reaction: `+e[0]),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].J()}z.isRunningReactions=!1}function at(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}}function ot(e){return function(t,n){return a(t)?Ne(t.name||`<unnamed action>`,t,e):a(n)?Ne(t,n,e):oe(n)?(e?Jn:Kn).t(t,n):o(n)?ae(t,n,e?Jn:Kn):o(t)?E(ue(e?`autoAction`:`action`,{name:t,autoAction:e})):void 0}}function st(e){return Pe(0,!1,e,this,void 0)}function ct(e){return a(e)&&!0===e.isMobxAction}function lt(e,t){function n(){e(i)}var r;t===void 0&&(t=cn);var i,a=t?.name??`Autorun`;if(t.scheduler||t.delay){var o=ut(t),s=!1;i=new Un(a,(function(){s||(s=!0,o((function(){s=!1,i.isDisposed||i.track(n)})))}),t.onError,t.requiresObservable)}else i=new Un(a,(function(){this.track(n)}),t.onError,t.requiresObservable);return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||i.Y(),i.Z(t?.signal)}function ut(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:Qn}function dt(e,t,n){return pt(`onBO`,e,t,n)}function ft(e,t,n){return pt(`onBUO`,e,t,n)}function pt(e,t,n,r){var i=typeof r==`function`?Yt(t,n):Yt(t),o=a(r)?r:n,s=e+`L`;return i[s]?i[s].add(o):i[s]=new Set([o]),function(){var e=i[s];e&&(e.delete(o),e.size===0&&delete i[s])}}function mt(e,t,n,r){var i=pn(t);return Qt((function(){var t=Ht(e,r)[F];fn(i).forEach((function(e){t.s(e,i[e],!n||!(e in n)||n[e])}))})),e}function ht(e){var t,n={name:e.tt};return e.D&&e.D.length>0&&(n.dependencies=(t=e.D,Array.from(new Set(t))).map(ht)),n}function gt(e){var t={name:e.tt};return function(e){return e.F&&e.F.size>0}(e)&&(t.observers=Array.from(function(e){return e.F}(e)).map(gt)),t}function _t(e){a(e.cancel)&&e.cancel()}function vt(e){return!0===e?.isMobXFlow}function yt(e,t){return t===void 0?R(e):!1===Wt(e)||!e[F].j.has(t)?!1:R(Yt(e,t))}function bt(e,t){return!!e&&(t===void 0?Wt(e)||!!e[F]||gn(e)||Gn(e)||R(e):!!Wt(e)&&e[F].j.has(t))}function xt(e){return bt(e)}function St(e){return Wt(e)?e[F].nt():gr(e)||yr(e)?Array.from(e.keys()):zt(e)?e.map((function(e,t){return t})):void t(5)}function Ct(e,n){return Wt(e)?e[F].it(n):gr(e)||yr(e)?e.has(n):zt(e)?n>=0&&n<e.length:void t(10)}function wt(e){if(Wt(e))return e[F].rt();t(38)}function Tt(e,t,n){return e.set(t,n),n}function Et(e,t){t===void 0&&(t=void 0),$e();try{return e.apply(t)}finally{et()}}function Dt(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout((function(){if(!o[F].isDisposed){if(o(),!n.onError)throw i;n.onError(i)}}),n.timeout)}n.name=`When`;var a=Ne(`When-effect`,t),o=lt((function(t){Le(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())}),n);return o}function Ot(e,t){var n,r,i;if(t!=null&&(n=t.signal)!=null&&n.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var a=new Promise((function(n,a){var o,s=Dt(e,n,ee({},t,{onError:a}));r=function(){s(),a(Error(`WHEN_CANCELLED`))},i=function(){s(),a(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,i)})).finally((function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,i)}));return a.cancel=r,a}function kt(e){return e[F]}function At(e){return e.et!==void 0&&e.et.length>0}function jt(e,t){var n=e.et||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Mt(e,n){var r=Ge();try{for(var i=[].concat(e.et||[]),a=0,o=i.length;a<o&&((n=i[a](n))&&!n.type&&t(14),n);a++);return n}finally{Ke(r)}}function Nt(e){return e.ut!==void 0&&e.ut.length>0}function Pt(e,t){var n=e.ut||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Ft(e,t){var n=Ge(),r=e.ut;if(r){for(var i=0,a=(r=r.slice()).length;i<a;i++)r[i](t);Ke(n)}}function It(e,t,n,i){return n===void 0&&(n=`ObservableArray`),i===void 0&&(i=!1),r(),Qt((function(){var r=new cr(n,t,i,!1);d(r.j,F,r);var a=new Proxy(r.j,sr);return r.v=a,e&&e.length&&r.ot(0,0,e),a}))}function k(e,t){typeof Array.prototype[e]==`function`&&(lr[e]=t(e))}function Lt(e){return function(){var t=this[F];t.st.reportObserved();var n=t.ft(t.j);return n[e].apply(n,arguments)}}function A(e){return function(t,n){var r=this,i=this[F];return i.st.reportObserved(),i.ft(i.j)[e]((function(e,i){return t.call(n,e,i,r)}))}}function Rt(e){return function(){var t=this,n=this[F];n.st.reportObserved();var r=n.ft(n.j),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}function zt(e){return s(e)&&fr(e[F])}function Bt(e){return e[Symbol.toStringTag]=`MapIterator`,en(e)}function Vt(e){return e[Symbol.toStringTag]=`SetIterator`,en(e)}function Ht(e,t){if(g(e,F))return e;var n=t?.name??`ObservableObject`;return u(e,F,new xr(e,new Map,String(n),function(e){return e?e.defaultDecorator??De(e):void 0}(t))),e}function Ut(e){return br[e]||(br[e]={get:function(){return this[F].O(e)},set:function(t){return this[F].S(e,t)}})}function Wt(e){return!!s(e)&&B(e[F])}function Gt(e,t,n){var r;(r=e.h[mn])==null||delete r[n]}function Kt(e){return{enumerable:!1,configurable:!0,get:function(){return this[F].ct(e)},set:function(t){this[F].ht(e,t)}}}function j(e){an(Er.prototype,``+e,Kt(e))}function qt(e){if(e>wr){for(var t=wr;t<e+100;t++)j(t);wr=e}}function Jt(e,t,n){return new Er(e,t,n)}function Yt(e,n){if(typeof e==`object`&&e){if(zt(e))return n!==void 0&&t(23),e[F].st;if(yr(e))return e.st;if(gr(e)){if(n===void 0)return e.lt;var r=e.vt.get(n)||e.dt.get(n);return r||t(25,n,Zt(e)),r}if(Wt(e)){if(!n)return t(26);var i=e[F].j.get(n);return i||t(27,n,Zt(e)),i}if(gn(e)||R(e)||Gn(e))return e}else if(a(e)&&Gn(e[F]))return e[F];t(28)}function Xt(e,n){return e||t(29),n===void 0?gn(e)||R(e)||Gn(e)||gr(e)||yr(e)?e:e[F]?e[F]:void t(24,e):Xt(Yt(e,n))}function Zt(e,t){var n;if(t!==void 0)n=Yt(e,t);else{if(ct(e))return e.name;n=Wt(e)||gr(e)||yr(e)?Xt(e):Yt(e)}return n.tt}function Qt(e){var t=Ge(),n=Re(!0);$e();try{return e()}finally{et(),ze(n),Ke(t)}}function $t(e,t,n){return n===void 0&&(n=-1),function e(t,n,r,i,o){if(t===n)return t!==0||1/t==1/n;if(t==null||n==null)return!1;if(t!=t)return n!=n;var s=typeof t;if(s!==`function`&&s!==`object`&&typeof n!=`object`)return!1;var c=Dr.call(t);if(c!==Dr.call(n))return!1;switch(c){case`[object RegExp]`:case`[object String]`:return``+t==``+n;case`[object Number]`:return+t==+t?+t==0?1/t==1/n:+t==+n:+n!=+n;case`[object Date]`:case`[object Boolean]`:return+t==+n;case`[object Symbol]`:return typeof Symbol<`u`&&Symbol.valueOf.call(t)===Symbol.valueOf.call(n);case`[object Map]`:case`[object Set]`:r>=0&&r++}t=M(t),n=M(n);var l=c===`[object Array]`;if(!l){if(typeof t!=`object`||typeof n!=`object`)return!1;var u=t.constructor,d=n.constructor;if(u!==d&&!(a(u)&&u instanceof u&&a(d)&&d instanceof d)&&`constructor`in t&&`constructor`in n)return!1}if(r===0)return!1;r<0&&(r=-1),o||=[];for(var f=(i||=[]).length;f--;)if(i[f]===t)return o[f]===n;if(i.push(t),o.push(n),l){if((f=t.length)!==n.length)return!1;for(;f--;)if(!e(t[f],n[f],r-1,i,o))return!1}else{var p=Object.keys(t),m=p.length;if(Object.keys(n).length!==m)return!1;for(var h=0;h<m;h++){var _=p[h];if(!g(n,_)||!e(t[_],n[_],r-1,i,o))return!1}}return i.pop(),o.pop(),!0}(e,t,n)}function M(e){return zt(e)?e.slice():p(e)||gr(e)||m(e)||yr(e)?Array.from(e.entries()):e}function en(e){return e[Symbol.iterator]=tn,Object.assign(Object.create(Or),e)}function tn(){return this}Object.defineProperty(e,`__esModule`,{value:!0});var nn={},N=Object.assign,rn=Object.getOwnPropertyDescriptor,an=Object.defineProperty,on=Object.prototype,sn=[];Object.freeze(sn);var cn={};Object.freeze(cn);var P=typeof Proxy<`u`,ln=Object.toString(),un=function(){},dn=Object.getOwnPropertySymbols!==void 0,fn=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:dn?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,pn=Object.getOwnPropertyDescriptors||function(e){var t={};return fn(e).forEach((function(n){t[n]=rn(e,n)})),t},mn=Symbol(`mobx-stored-annotations`),F=Symbol(`mobx administration`),hn=function(){function e(e){e===void 0&&(e=`Atom`),this.tt=void 0,this.bt=0,this.F=new Set,this.$=0,this.U=L.P,this.onBOL=void 0,this.onBUOL=void 0,this.tt=e}var t=e.prototype;return t.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},t.reportObserved=function(){return tt(this)},t.reportChanged=function(){$e(),nt(this),et()},t.toString=function(){return this.tt},S(e,[{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();hn.pt=1,hn.yt=2,hn.wt=4;var gn=f(`Atom`,hn),_n={identity:function(e,t){return e===t},structural:function(e,t){return $t(e,t)},default:function(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!=e&&t!=t},shallow:function(e,t){return $t(e,t,1)}},vn=E({i:`override`,o:function(){return 0},s:function(){t(`'`+this.i+`' can only be used with 'makeObservable'`)},t:function(){console.warn(`'`+this.i+`' cannot be used with decorators - this is a no-op`)}}),yn=De(),bn={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(bn);var xn=Ce(`observable`),Sn=Ce(`observable.ref`,{enhancer:le}),I=Ce(`observable.shallow`,{enhancer:function(e,t,n){return e==null||Wt(e)||zt(e)||gr(e)||yr(e)?e:Array.isArray(e)?En.array(e,{name:n,deep:!1}):c(e)?En.object(e,void 0,{name:n,deep:!1}):p(e)?En.map(e,{name:n,deep:!1}):m(e)?En.set(e,{name:n,deep:!1}):void 0}}),Cn=Ce(`observable.struct`,{enhancer:function(e,t){return $t(e,t)?t:e}}),wn=E(xn);N(Me,wn);var Tn,En=N(Me,{box:function(e,t){var n=je(t);return new Pn(e,O(n),n.name,!0,n.equals)},array:function(e,t){var n=je(t);return(!1===z.useProxies||!1===n.proxy?Jt:It)(e,O(n),n.name)},map:function(e,t){var n=je(t);return new hr(e,O(n),n.name)},set:function(e,t){var n=je(t);return new vr(e,O(n),n.name)},object:function(e,t,n){return Qt((function(){return mt(!1===z.useProxies||!1===n?.proxy?Ht({},n):function(e,t){var n;return r(),(n=(e=Ht(e,t))[F]).v??(n.v=new Proxy(e,ir))}({},n),e,t)}))},ref:E(Sn),shallow:E(I),deep:wn,struct:E(Cn)}),Dn=ye(`computed`),On=ye(`computed.struct`,{equals:_n.structural}),kn=function(e,t){if(oe(t))return Dn.t(e,t);if(o(t))return ae(e,t,Dn);if(c(e))return E(ye(`computed`,e));var n=c(t)?t:{};return n.get=e,n.name||=e.name||``,new In(n)};Object.assign(kn,Dn),kn.struct=E(On);var An=0,jn=1,Mn=(Tn=rn((function(){}),`name`)?.configurable)!=null&&Tn,Nn={value:`action`,configurable:!0,writable:!1,enumerable:!1},Pn=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue`),a===void 0&&(a=_n.default),(o=e.call(this,r)||this).enhancer=void 0,o.tt=void 0,o.equals=void 0,o.jt=!1,o.et=void 0,o.ut=void 0,o.Ot=void 0,o.dehancer=void 0,o.enhancer=n,o.tt=r,o.equals=a,o.Ot=n(t,void 0,r),o}w(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){(e=this.xt(e))!==z.UNCHANGED&&this.gt(e)},n.xt=function(e){if(At(this)){var t=Mt(this,{object:this,type:or,newValue:e});if(!t)return z.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.Ot,this.tt),this.equals(this.Ot,e)?z.UNCHANGED:e},n.gt=function(e){var t=this.Ot;this.Ot=e,this.reportChanged(),Nt(this)&&Ft(this,{type:or,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.Ot)},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.tt,object:this,type:or,newValue:this.Ot,oldValue:void 0}),Pt(this,e)},n.raw=function(){return this.Ot},n.toJSON=function(){return this.get()},n.toString=function(){return this.tt+`[`+this.Ot+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(hn),Fn=f(`ObservableValue`,Pn),In=function(){function e(e){this.I=L.P,this.D=[],this.W=null,this.F=new Set,this.q=0,this.$=0,this.U=L.L,this.G=0,this.Ot=new Rn(null),this.tt=void 0,this.At=void 0,this.bt=0,this.derivation=void 0,this.kt=void 0,this.Mt=Ln.NONE,this.Et=void 0,this.Vt=void 0,this.Rt=void 0,this.Nt=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||t(31),this.derivation=e.get,this.tt=e.name||`ComputedValue`,e.set&&(this.kt=Ne(`ComputedValue-setter`,e.set)),this.Vt=e.equals||(e.compareStructural||e.struct?_n.structural:_n.default),this.Et=e.context,this.Rt=e.requiresReaction,this.Nt=!!e.keepAlive}var n=e.prototype;return n.H=function(){(function(e){e.U===L.L&&(e.U=L.B,e.F.forEach((function(e){e.I===L.L&&(e.I=L.B,e.H())})))})(this)},n.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},n.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},n.get=function(){if(this.isComputing&&t(32,this.tt,this.derivation),z.inBatch!==0||this.F.size!==0||this.Nt){if(tt(this),Ve(this)){var e=z.trackingContext;this.Nt&&!e&&(z.trackingContext=this),this.trackAndCompute()&&function(e){e.U!==L.K&&(e.U=L.K,e.F.forEach((function(t){t.I===L.B?t.I=L.K:t.I===L.L&&(e.U=L.L)})))}(this),z.trackingContext=e}}else Ve(this)&&(this.Tt(),$e(),this.Ot=this.Ct(!1),et());var n=this.Ot;if(Be(n))throw n.cause;return n},n.set=function(e){if(this.kt){this.isRunningSetter&&t(33,this.tt),this.isRunningSetter=!0;try{this.kt.call(this.Et,e)}finally{this.isRunningSetter=!1}}else t(34,this.tt)},n.trackAndCompute=function(){var e=this.Ot,t=this.I===L.P,n=this.Ct(!0),r=t||Be(e)||Be(n)||!this.Vt(e,n);return r&&(this.Ot=n),r},n.Ct=function(e){this.isComputing=!0;var t,n=Re(!1);if(e)t=He(this,this.derivation,this.Et);else if(!0===z.disableErrorBoundaries)t=this.derivation.call(this.Et);else try{t=this.derivation.call(this.Et)}catch(e){t=new Rn(e)}return ze(n),this.isComputing=!1,t},n.X=function(){this.Nt||(Ue(this),this.Ot=void 0)},n._t=function(e,t){var n=this,r=!0,i=void 0;return lt((function(){var a=n.get();if(!r||t){var o=Ge();e({observableKind:`computed`,debugObjectName:n.tt,type:or,object:n,newValue:a,oldValue:i}),Ke(o)}r=!1,i=a}))},n.Tt=function(){},n.toString=function(){return this.tt+`[`+this.derivation.toString()+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},S(e,[{key:`isComputing`,get:function(){return _(this.bt,e.It)},set:function(t){this.bt=v(this.bt,e.It,t)}},{key:`isRunningSetter`,get:function(){return _(this.bt,e.Lt)},set:function(t){this.bt=v(this.bt,e.Lt,t)}},{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();In.It=1,In.Lt=2,In.pt=4,In.yt=8,In.wt=16;var L,Ln,R=f(`ComputedValue`,In);(function(e){e[e.P=-1]=`NOT_TRACKING_`,e[e.L=0]=`UP_TO_DATE_`,e[e.B=1]=`POSSIBLY_STALE_`,e[e.K=2]=`STALE_`})(L||={}),function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`}(Ln||={});var Rn=function(e){this.cause=void 0,this.cause=e},zn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],Bn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},Vn=!0,Hn=!1,z=function(){var e=n();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Vn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new Bn().version&&(Vn=!1),Vn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Bn):(setTimeout((function(){Hn||t(35)}),1),new Bn)}(),Un=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction`),this.tt=void 0,this.Pt=void 0,this.Kt=void 0,this.Bt=void 0,this.D=[],this.W=[],this.I=L.P,this.q=0,this.G=0,this.bt=0,this.Mt=Ln.NONE,this.tt=e,this.Pt=t,this.Kt=n,this.Bt=r}var t=e.prototype;return t.H=function(){this.Y()},t.Y=function(){this.isScheduled||(this.isScheduled=!0,z.pendingReactions.push(this),rt())},t.J=function(){if(!this.isDisposed){$e(),this.isScheduled=!1;var e=z.trackingContext;if(z.trackingContext=this,Ve(this)){this.isTrackPending=!0;try{this.Pt()}catch(e){this.Dt(e)}}z.trackingContext=e,et()}},t.track=function(e){if(!this.isDisposed){$e(),this.isRunning=!0;var t=z.trackingContext;z.trackingContext=this;var n=He(this,e,void 0);z.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Ue(this),Be(n)&&this.Dt(n.cause),et()}},t.Dt=function(e){var t=this;if(this.Kt)this.Kt(e,this);else{if(z.disableErrorBoundaries)throw e;z.suppressReactionErrors||console.error(`[mobx] uncaught error in '`+this+`'`,e),z.globalReactionErrorHandlers.forEach((function(n){return n(e,t)}))}},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||($e(),Ue(this),et()))},t.Z=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[F]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.tt+`]`},t.trace=function(){},S(e,[{key:`isDisposed`,get:function(){return _(this.bt,e.Wt)},set:function(t){this.bt=v(this.bt,e.Wt,t)}},{key:`isScheduled`,get:function(){return _(this.bt,e.qt)},set:function(t){this.bt=v(this.bt,e.qt,t)}},{key:`isTrackPending`,get:function(){return _(this.bt,e.Gt)},set:function(t){this.bt=v(this.bt,e.Gt,t)}},{key:`isRunning`,get:function(){return _(this.bt,e.Ht)},set:function(t){this.bt=v(this.bt,e.Ht,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();Un.Wt=1,Un.qt=2,Un.Gt=4,Un.Ht=8,Un.wt=16;var Wn=function(e){return e()},Gn=f(`Reaction`,Un),Kn=ue(`action`),qn=ue(`action.bound`,{bound:!0}),Jn=ue(`autoAction`,{autoAction:!0}),Yn=ue(`autoAction.bound`,{autoAction:!0,bound:!0}),Xn=ot(!1);Object.assign(Xn,Kn);var Zn=ot(!0);Object.assign(Zn,Jn),Xn.bound=E(qn),Zn.bound=E(Yn);var Qn=function(e){return e()},$n=0,er=function(e){function t(){var n;return n=e.call(this,`FLOW_CANCELLED`)||this,Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}return w(t,e),t.prototype.toString=function(){return`Error: `+this.message},t}(T(Error)),tr=he(`flow`),nr=he(`flow.bound`,{bound:!0}),rr=Object.assign((function(e,t){if(oe(t))return tr.t(e,t);if(o(t))return ae(e,t,tr);var n=e,r=n.name||`<unnamed flow>`,i=function(){var e,t=this,i=arguments,o=++$n,s=Xn(r+` - runid: `+o+` - init`,n).apply(t,i),c=void 0,l=new Promise((function(t,n){function i(e){var t;c=void 0;try{t=Xn(r+` - runid: `+o+` - yield `+ d++,s.next).call(s,e)}catch(e){return n(e)}u(t)}function l(e){var t;c=void 0;try{t=Xn(r+` - runid: `+o+` - yield `+ d++,s.throw).call(s,e)}catch(e){return n(e)}u(t)}function u(e){if(!a(e?.then))return e.done?t(e.value):(c=Promise.resolve(e.value)).then(i,l);e.then(u,n)}var d=0;e=n,i(void 0)}));return l.cancel=Xn(r+` - runid: `+o+` - cancel`,(function(){try{c&&_t(c);var t=s.return(void 0),n=Promise.resolve(t.value);n.then(un,un),_t(n),e(new er)}catch(t){e(t)}})),l};return i.isMobXFlow=!0,i}),tr);rr.bound=E(nr);var ir={has:function(e,t){return kt(e).it(t)},get:function(e,t){return kt(e).ct(t)},set:function(e,t,n){var r;return!!o(t)&&((r=kt(e).ht(t,n,!0))==null||r)},deleteProperty:function(e,t){var n;return!!o(t)&&((n=kt(e).Ut(t,!0))==null||n)},defineProperty:function(e,t,n){var r;return(r=kt(e).l(t,n))==null||r},ownKeys:function(e){return kt(e).rt()},preventExtensions:function(){t(13)}},ar=Symbol(`mobx-keys`),or=`update`,sr={get:function(e,t){var n=e[F];return t===F?n:t===`length`?n.Ft():typeof t!=`string`||isNaN(t)?g(lr,t)?lr[t]:e[t]:n.ct(parseInt(t))},set:function(e,t,n){var r=e[F];return t===`length`&&r.Xt(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.ht(parseInt(t),n),!0},preventExtensions:function(){t(15)}},cr=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray`),this.zt=void 0,this.$t=void 0,this.st=void 0,this.j=[],this.et=void 0,this.ut=void 0,this.Jt=void 0,this.dehancer=void 0,this.v=void 0,this.Yt=0,this.zt=n,this.$t=r,this.st=new hn(e),this.Jt=function(e,n){return t(e,n,`ObservableArray[..]`)}}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.ft=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:0,added:this.j.slice(),addedCount:this.j.length,removed:[],removedCount:0}),Pt(this,e)},n.Ft=function(){return this.st.reportObserved(),this.j.length},n.Xt=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&t(`Out of range: `+e);var n=this.j.length;if(e!==n)if(e>n){for(var r=Array(e-n),i=0;i<e-n;i++)r[i]=void 0;this.ot(n,0,r)}else this.ot(e,n-e)},n.Zt=function(e,n){e!==this.Yt&&t(16),this.Yt+=n,this.$t&&n>0&&qt(e+n+1)},n.ot=function(e,t,n){var r=this,i=this.j.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=sn),At(this)){var a=Mt(this,{object:this.v,type:`splice`,index:e,removedCount:t,added:n});if(!a)return sn;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map((function(e){return r.Jt(e,void 0)})),this.$t){var o=n.length-t;this.Zt(i,o)}var s=this.tn(e,t,n);return t===0&&n.length===0||this.nn(e,n,s),this.ft(s)},n.tn=function(e,t,n){var r;if(n.length<1e4)return(r=this.j).splice.apply(r,[e,t].concat(n));var i=this.j.slice(e,e+t),a=this.j.slice(e+t);this.j.length+=n.length-t;for(var o=0;o<n.length;o++)this.j[e+o]=n[o];for(var s=0;s<a.length;s++)this.j[e+n.length+s]=a[s];return i},n.in=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,type:or,debugObjectName:this.st.tt,index:e,newValue:t,oldValue:n}:null;this.st.reportChanged(),i&&Ft(this,a)},n.nn=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.st.reportChanged(),i&&Ft(this,a)},n.ct=function(e){if(!(this.$t&&e>=this.j.length))return this.st.reportObserved(),this.Qt(this.j[e]);console.warn(`[mobx] Out of bounds read: `+e)},n.ht=function(e,n){var r=this.j;if(this.$t&&e>r.length&&t(17,e,r.length),e<r.length){var i=r[e];if(At(this)){var a=Mt(this,{type:or,object:this.v,index:e,newValue:n});if(!a)return;n=a.newValue}(n=this.Jt(n,i))!==i&&(r[e]=n,this.in(e,n,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=n,this.ot(r.length,0,o)}},e}(),lr={clear:function(){return this.splice(0)},replace:function(e){var t=this[F];return t.ot(0,t.j.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[F];switch(arguments.length){case 0:return[];case 1:return r.ot(e);case 2:return r.ot(e,t)}return r.ot(e,t,n)},spliceWithArray:function(e,t,n){return this[F].ot(e,t,n)},push:function(){for(var e=this[F],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(e.j.length,0,n),e.j.length},pop:function(){return this.splice(Math.max(this[F].j.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){for(var e=this[F],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(0,0,n),e.j.length},reverse:function(){return z.trackingDerivation&&t(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){z.trackingDerivation&&t(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[F],n=t.ft(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};k(`at`,Lt),k(`concat`,Lt),k(`flat`,Lt),k(`includes`,Lt),k(`indexOf`,Lt),k(`join`,Lt),k(`lastIndexOf`,Lt),k(`slice`,Lt),k(`toString`,Lt),k(`toLocaleString`,Lt),k(`toSorted`,Lt),k(`toSpliced`,Lt),k(`with`,Lt),k(`every`,A),k(`filter`,A),k(`find`,A),k(`findIndex`,A),k(`findLast`,A),k(`findLastIndex`,A),k(`flatMap`,A),k(`forEach`,A),k(`map`,A),k(`some`,A),k(`toReversed`,A),k(`reduce`,Rt),k(`reduceRight`,Rt);var ur,dr,fr=f(`ObservableArrayAdministration`,cr),pr={},mr=`add`,hr=function(){function e(e,n,r){var i=this;n===void 0&&(n=ce),r===void 0&&(r=`ObservableMap`),this.Jt=void 0,this.tt=void 0,this[F]=pr,this.vt=void 0,this.dt=void 0,this.lt=void 0,this.et=void 0,this.ut=void 0,this.dehancer=void 0,this.Jt=n,this.tt=r,a(Map)||t(18),Qt((function(){i.lt=se(`ObservableMap.keys()`),i.vt=new Map,i.dt=new Map,e&&i.merge(e)}))}var n=e.prototype;return n.it=function(e){return this.vt.has(e)},n.has=function(e){var t=this;if(!z.trackingDerivation)return this.it(e);var n=this.dt.get(e);if(!n){var r=n=new Pn(this.it(e),le,`ObservableMap.key?`,!1);this.dt.set(e,r),ft(r,(function(){return t.dt.delete(e)}))}return n.get()},n.set=function(e,t){var n=this.it(e);if(At(this)){var r=Mt(this,{type:n?or:mr,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.rn(e,t):this.en(e,t),this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,name:e}))return!1;if(this.it(e)){var n=Nt(this),r=n?{observableKind:`map`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:this.vt.get(e).Ot,name:e}:null;return Et((function(){var n;t.lt.reportChanged(),(n=t.dt.get(e))==null||n.gt(!1),t.vt.get(e).gt(void 0),t.vt.delete(e)})),n&&Ft(this,r),!0}return!1},n.rn=function(e,t){var n=this.vt.get(e);if((t=n.xt(t))!==z.UNCHANGED){var r=Nt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:or,object:this,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),r&&Ft(this,i)}},n.en=function(e,t){var n=this;Et((function(){var r,i=new Pn(t,n.Jt,`ObservableMap.key`,!1);n.vt.set(e,i),t=i.Ot,(r=n.dt.get(e))==null||r.gt(!0),n.lt.reportChanged()}));var r=Nt(this);r&&Ft(this,r?{observableKind:`map`,debugObjectName:this.tt,type:mr,object:this,name:e,newValue:t}:null)},n.get=function(e){return this.has(e)?this.Qt(this.vt.get(e).get()):this.Qt(void 0)},n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.keys=function(){return this.lt.reportObserved(),this.vt.keys()},n.values=function(){var e=this,t=this.keys();return Bt({next:function(){var n=t.next(),r=n.done;return{done:r,value:r?void 0:e.get(n.value)}}})},n.entries=function(){var e=this,t=this.keys();return Bt({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},n[Symbol.iterator]=function(){return this.entries()},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i[1],i[0],this)}},n.merge=function(e){var n=this;return gr(e)&&(e=new Map(e)),Et((function(){var r,i;c(e)?function(e){var t=Object.keys(e);if(!dn)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter((function(t){return on.propertyIsEnumerable.call(e,t)}))):t}(e).forEach((function(t){return n.set(t,e[t])})):Array.isArray(e)?e.forEach((function(e){return n.set(e[0],e[1])})):p(e)?(r=Object.getPrototypeOf(e),i=Object.getPrototypeOf(r),Object.getPrototypeOf(i)!==null&&t(19,e),e.forEach((function(e,t){return n.set(t,e)}))):e!=null&&t(20,e)})),this},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.keys());!(t=n()).done;)e.delete(t.value)}))}))},n.replace=function(e){var n=this;return Et((function(){for(var r,i=function(e){if(p(e)||gr(e))return e;if(Array.isArray(e))return new Map(e);if(c(e)){var n=new Map;for(var r in e)n.set(r,e[r]);return n}return t(21,e)}(e),a=new Map,o=!1,s=C(n.vt.keys());!(r=s()).done;){var l=r.value;if(!i.has(l))if(n.delete(l))o=!0;else{var u=n.vt.get(l);a.set(l,u)}}for(var d,f=C(i.entries());!(d=f()).done;){var m=d.value,h=m[0],g=m[1],_=n.vt.has(h);if(n.set(h,g),n.vt.has(h)){var v=n.vt.get(h);a.set(h,v),_||(o=!0)}}if(!o)if(n.vt.size!==a.size)n.lt.reportChanged();else for(var y=n.vt.keys(),b=a.keys(),x=y.next(),S=b.next();!x.done;){if(x.value!==S.value){n.lt.reportChanged();break}x=y.next(),S=b.next()}n.vt=a})),this},n.toString=function(){return`[object ObservableMap]`},n.toJSON=function(){return Array.from(this)},n._t=function(e){return Pt(this,e)},n.St=function(e){return jt(this,e)},S(e,[{key:`size`,get:function(){return this.lt.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),gr=f(`ObservableMap`,hr),_r={},vr=function(){function e(e,n,r){var i=this;n===void 0&&(n=ce),r===void 0&&(r=`ObservableSet`),this.tt=void 0,this[F]=_r,this.vt=new Set,this.st=void 0,this.ut=void 0,this.et=void 0,this.dehancer=void 0,this.Jt=void 0,this.tt=r,a(Set)||t(22),this.Jt=function(e,t){return n(e,t,r)},Qt((function(){i.st=se(i.tt),e&&i.replace(e)}))}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.vt.values());!(t=n()).done;)e.delete(t.value)}))}))},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i,i,this)}},n.add=function(e){var t=this;if(At(this)){var n=Mt(this,{type:mr,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){Et((function(){t.vt.add(t.Jt(e,void 0)),t.st.reportChanged()}));var r=Nt(this);r&&Ft(this,r?{observableKind:`set`,debugObjectName:this.tt,type:mr,object:this,newValue:e}:null)}return this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Nt(this),r=n?{observableKind:`set`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:e}:null;return Et((function(){t.st.reportChanged(),t.vt.delete(e)})),n&&Ft(this,r),!0}return!1},n.has=function(e){return this.st.reportObserved(),this.vt.has(this.Qt(e))},n.entries=function(){var e=this.values();return Vt({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},n.keys=function(){return this.values()},n.values=function(){this.st.reportObserved();var e=this,t=this.vt.values();return Vt({next:function(){var n=t.next(),r=n.done;return r?{value:void 0,done:r}:{value:e.Qt(n.value),done:r}}})},n.intersection=function(e){return m(e)&&!yr(e)?e.intersection(this):new Set(this).intersection(e)},n.union=function(e){return m(e)&&!yr(e)?e.union(this):new Set(this).union(e)},n.difference=function(e){return new Set(this).difference(e)},n.symmetricDifference=function(e){return m(e)&&!yr(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},n.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},n.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},n.isDisjointFrom=function(e){return m(e)&&!yr(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},n.replace=function(e){var n=this;return yr(e)&&(e=new Set(e)),Et((function(){Array.isArray(e)||m(e)?(n.clear(),e.forEach((function(e){return n.add(e)}))):e!=null&&t(`Cannot initialize set from `+e)})),this},n._t=function(e){return Pt(this,e)},n.St=function(e){return jt(this,e)},n.toJSON=function(){return Array.from(this)},n.toString=function(){return`[object ObservableSet]`},n[Symbol.iterator]=function(){return this.values()},S(e,[{key:`size`,get:function(){return this.st.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),yr=f(`ObservableSet`,vr),br=Object.create(null),xr=function(){function e(e,t,n,r){t===void 0&&(t=new Map),r===void 0&&(r=yn),this.h=void 0,this.j=void 0,this.tt=void 0,this.un=void 0,this.lt=void 0,this.ut=void 0,this.et=void 0,this.v=void 0,this.p=void 0,this.on=void 0,this.sn=void 0,this.h=e,this.j=t,this.tt=n,this.un=r,this.lt=new hn(`ObservableObject.keys`),this.p=c(this.h)}var n=e.prototype;return n.O=function(e){return this.j.get(e).get()},n.S=function(e,t){var n=this.j.get(e);if(n instanceof In)return n.set(t),!0;if(At(this)){var r=Mt(this,{type:or,object:this.v||this.h,name:e,newValue:t});if(!r)return null;t=r.newValue}if((t=n.xt(t))!==z.UNCHANGED){var i=Nt(this),a=i?{type:or,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),i&&Ft(this,a)}return!0},n.ct=function(e){return z.trackingDerivation&&!g(this.h,e)&&this.it(e),this.h[e]},n.ht=function(e,t,n){return n===void 0&&(n=!1),g(this.h,e)?this.j.has(e)?this.S(e,t):n?Reflect.set(this.h,e,t):(this.h[e]=t,!0):this.s(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.un,n)},n.it=function(e){if(!z.trackingDerivation)return e in this.h;this.sn||=new Map;var t=this.sn.get(e);return t||(t=new Pn(e in this.h,le,`ObservableObject.key?`,!1),this.sn.set(e,t)),t.get()},n.o=function(e,n){if(!0===n&&(n=this.un),!1!==n){if(!(e in this.h)){var r;if((r=this.h[mn])!=null&&r[e])return;t(1,n.i,this.tt+`.`+e.toString())}for(var i=this.h;i&&i!==on;){var a=rn(i,e);if(a){var o=n.o(this,e,a,i);if(o===0)return;if(o===1)break}i=Object.getPrototypeOf(i)}Gt(this,0,e)}},n.s=function(e,t,n,r){if(r===void 0&&(r=!1),!0===n&&(n=this.un),!1===n)return this.l(e,t,r);var i=n.s(this,e,t,r);return i&&Gt(this,0,e),i},n.l=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)){var i=Mt(this,{object:this.v||this.h,name:e,type:mr,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=ee({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.h,e,t))return!1}else an(this.h,e,t);this.fn(e,t.value)}finally{et()}return!0},n.g=function(e,t,n,r){r===void 0&&(r=!1);try{$e();var i=this.Ut(e);if(!i)return i;if(At(this)){var a=Mt(this,{object:this.v||this.h,name:e,type:mr,newValue:t});if(!a)return null;t=a.newValue}var o=Ut(e),s={configurable:!z.safeDescriptors||this.p,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.h,e,s))return!1}else an(this.h,e,s);var c=new Pn(t,n,`ObservableObject.key`,!1);this.j.set(e,c),this.fn(e,c.Ot)}finally{et()}return!0},n.m=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:mr,newValue:void 0}))return null;t.name||=`ObservableObject.key`,t.context=this.v||this.h;var i=Ut(e),a={configurable:!z.safeDescriptors||this.p,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.h,e,a))return!1}else an(this.h,e,a);this.j.set(e,new In(t)),this.fn(e,void 0)}finally{et()}return!0},n.Ut=function(e,t){if(t===void 0&&(t=!1),!g(this.h,e))return!0;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:`remove`}))return null;try{var n;$e();var r=Nt(this),i=this.j.get(e),a=void 0;if(!i&&r&&(a=rn(this.h,e)?.value),t){if(!Reflect.deleteProperty(this.h,e))return!1}else delete this.h[e];i&&(this.j.delete(e),i instanceof Pn&&(a=i.Ot),nt(i)),this.lt.reportChanged(),(n=this.sn)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&Ft(this,{type:`remove`,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{et()}return!0},n._t=function(e){return Pt(this,e)},n.St=function(e){return jt(this,e)},n.fn=function(e,t){var n,r=Nt(this);r&&r&&Ft(this,r?{type:mr,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,name:e,newValue:t}:null),(n=this.sn)==null||(n=n.get(e))==null||n.set(!0),this.lt.reportChanged()},n.rt=function(){return this.lt.reportObserved(),fn(this.h)},n.nt=function(){return this.lt.reportObserved(),Object.keys(this.h)},e}(),B=f(`ObservableObjectAdministration`,xr),Sr=Kt(0),Cr=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,!1===e}(),wr=0,Tr=function(){};ur=Tr,dr=Array.prototype,Object.setPrototypeOf?Object.setPrototypeOf(ur.prototype,dr):ur.prototype.__proto__===void 0?ur.prototype=dr:ur.prototype.__proto__=dr;var Er=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray`),i===void 0&&(i=!1),a=e.call(this)||this,Qt((function(){var e=new cr(r,n,i,!0);e.v=a,d(a,F,e),t&&t.length&&a.spliceWithArray(0,0,t),Cr&&Object.defineProperty(a,`0`,Sr)})),a}w(t,e);var n=t.prototype;return n.concat=function(){this[F].st.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map((function(e){return zt(e)?e.slice():e})))},n[Symbol.iterator]=function(){var e=this,t=0;return en({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},S(t,[{key:`length`,get:function(){return this[F].Ft()},set:function(e){this[F].Xt(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(Tr);Object.entries(lr).forEach((function(e){var t=e[0];t!==`concat`&&u(Er.prototype,t,e[1])})),qt(1e3);var Dr=on.toString,Or=n().Iterator?.prototype||{};[`Symbol`,`Map`,`Set`].forEach((function(e){n()[e]===void 0&&t(`MobX requires global '`+e+`' to be available or polyfilled`)})),typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:at,extras:{getDebugName:Zt},$mobx:F}),e.$mobx=F,e.FlowCancellationError=er,e.ObservableMap=hr,e.ObservableSet=vr,e.Reaction=Un,e._allowStateChanges=Le,e._allowStateChangesInsideComputed=st,e._allowStateReadsEnd=Je,e._allowStateReadsStart=qe,e._autoAction=Zn,e._endAction=Ie,e._getAdministration=Xt,e._getGlobalState=function(){return z},e._interceptReads=function(e,t,n){var r;return gr(e)||zt(e)||Fn(e)?r=Xt(e):Wt(e)&&(r=Xt(e,t)),r.dehancer=typeof t==`function`?t:n,function(){r.dehancer=void 0}},e._isComputingDerivation=function(){return z.trackingDerivation!==null},e._resetGlobalState=function(){var e=new Bn;for(var t in e)zn.indexOf(t)===-1&&(z[t]=e[t]);z.allowStateChanges=!z.enforceActions},e._startAction=Fe,e.action=Xn,e.autorun=lt,e.comparer=_n,e.computed=kn,e.configure=function(e){!0===e.isolateGlobalState&&function(){if((z.pendingReactions.length||z.inBatch||z.isRunningReactions)&&t(36),Hn=!0,Vn){var e=n();--e.__mobxInstanceCount==0&&(e.__mobxGlobals=void 0),z=new Bn}}();var r,i,a=e.useProxies,o=e.enforceActions;if(a!==void 0&&(z.useProxies=a===`always`||a!==`never`&&typeof Proxy<`u`),a===`ifavailable`&&(z.verifyProxies=!0),o!==void 0){var s=o===`always`?`always`:o===`observed`;z.enforceActions=s,z.allowStateChanges=!0!==s&&s!==`always`}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach((function(t){t in e&&(z[t]=!!e[t])})),z.allowStateReads=!z.observableRequiresReaction,e.reactionScheduler&&(r=e.reactionScheduler,i=Wn,Wn=function(e){return r((function(){return i(e)}))})},e.createAtom=se,e.defineProperty=function(e,n,r){if(Wt(e))return e[F].l(n,r);t(39)},e.entries=function(e){return Wt(e)?St(e).map((function(t){return[t,e[t]]})):gr(e)?St(e).map((function(t){return[t,e.get(t)]})):yr(e)?Array.from(e.entries()):zt(e)?e.map((function(e,t){return[t,e]})):void t(7)},e.extendObservable=mt,e.flow=rr,e.flowResult=function(e){return e},e.get=function(e,n){if(Ct(e,n))return Wt(e)?e[F].ct(n):gr(e)?e.get(n):zt(e)?e[n]:void t(11)},e.getAtom=Yt,e.getDebugName=Zt,e.getDependencyTree=function(e,t){return ht(Yt(e,t))},e.getObserverTree=function(e,t){return gt(Yt(e,t))},e.has=Ct,e.intercept=function(e,t,n){return a(n)?function(e,t,n){return Xt(e,t).St(n)}(e,t,n):function(e,t){return Xt(e).St(t)}(e,t)},e.isAction=ct,e.isBoxedObservable=Fn,e.isComputed=function(e){return yt(e)},e.isComputedProp=function(e,t){return yt(e,t)},e.isFlow=vt,e.isFlowCancellationError=function(e){return e instanceof er},e.isObservable=xt,e.isObservableArray=zt,e.isObservableMap=gr,e.isObservableObject=Wt,e.isObservableProp=function(e,t){return bt(e,t)},e.isObservableSet=yr,e.keys=St,e.makeAutoObservable=function(e,t,n){return c(e)?mt(e,e,t,n):(Qt((function(){var r=Ht(e,n)[F];if(!e[ar]){var i=Object.getPrototypeOf(e),a=new Set([].concat(fn(e),fn(i)));a.delete(`constructor`),a.delete(F),u(i,ar,a)}e[ar].forEach((function(e){return r.o(e,!t||!(e in t)||t[e])}))})),e)},e.makeObservable=function(e,t,n){return Qt((function(){var r=Ht(e,n)[F];t??=function(e){return g(e,mn)||u(e,mn,ee({},e[mn])),e[mn]}(e),fn(t).forEach((function(e){return r.o(e,t[e])}))})),e},e.observable=En,e.observe=function(e,t,n,r){return a(n)?function(e,t,n,r){return Xt(e,t)._t(n,r)}(e,t,n,r):function(e,t,n){return Xt(e)._t(t,n)}(e,t,n)},e.onBecomeObserved=dt,e.onBecomeUnobserved=ft,e.onReactionError=function(e){return z.globalReactionErrorHandlers.push(e),function(){var t=z.globalReactionErrorHandlers.indexOf(e);t>=0&&z.globalReactionErrorHandlers.splice(t,1)}},e.override=vn,e.ownKeys=wt,e.reaction=function(e,t,n){function r(){if(p=!1,!h.isDisposed){var t=!1,r=s;h.track((function(){var n=Le(!1,(function(){return e(h)}));t=f||!m(s,n),s=n})),(f&&n.fireImmediately||!f&&t)&&l(s,r,h),f=!1}}var i;n===void 0&&(n=cn);var a,o,s,c=n.name??`Reaction`,l=Xn(c,n.onError?(a=n.onError,o=t,function(){try{return o.apply(this,arguments)}catch(e){a.call(this,e)}}):t),u=!n.scheduler&&!n.delay,d=ut(n),f=!0,p=!1,m=n.compareStructural?_n.structural:n.equals||_n.default,h=new Un(c,(function(){f||u?r():p||(p=!0,d(r))}),n.onError,n.requiresObservable);return(i=n)!=null&&(i=i.signal)!=null&&i.aborted||h.Y(),h.Z(n?.signal)},e.remove=function(e,n){Wt(e)?e[F].Ut(n):gr(e)||yr(e)?e.delete(n):zt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=st,e.set=function e(n,r,i){if(arguments.length!==2||yr(n))Wt(n)?n[F].ht(r,i):gr(n)?n.set(r,i):yr(n)?n.add(r):zt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(`Invalid index: '`+r+`'`),$e(),r>=n.length&&(n.length=r+1),n[r]=i,et()):t(8);else{$e();var a=r;try{for(var o in a)e(n,o,a[o])}finally{et()}}},e.spy=at,e.toJS=function(e){return function e(t,n){if(typeof t!=`object`||!t||t instanceof Date||!xt(t))return t;if(Fn(t)||R(t))return e(t.get(),n);if(n.has(t))return n.get(t);if(zt(t)){var r=Tt(n,t,Array(t.length));return t.forEach((function(t,i){r[i]=e(t,n)})),r}if(yr(t)){var i=Tt(n,t,new Set);return t.forEach((function(t){i.add(e(t,n))})),i}if(gr(t)){var a=Tt(n,t,new Map);return t.forEach((function(t,r){a.set(r,e(t,n))})),a}var o=Tt(n,t,{});return wt(t).forEach((function(r){on.propertyIsEnumerable.call(t,r)&&(o[r]=e(t[r],n))})),o}(e,new Map)},e.trace=function(){},e.transaction=Et,e.untracked=We,e.values=function(e){return Wt(e)?St(e).map((function(t){return e[t]})):gr(e)?St(e).map((function(t){return e.get(t)})):yr(e)?Array.from(e.values()):zt(e)?e.slice():void t(6)},e.when=function(e,t,n){return arguments.length===1||t&&typeof t==`object`?Ot(e,t):Dt(e,t,n||{})}})),AE=pe((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t={0:`Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,1:function(e,t){return`Cannot apply '`+e+`' to '`+t.toString()+`': Field not found.`},5:`'keys()' can only be used on observable objects, arrays, sets and maps`,6:`'values()' can only be used on observable objects, arrays, sets and maps`,7:`'entries()' can only be used on observable objects, arrays and maps`,8:`'set()' can only be used on observable objects, arrays and maps`,9:`'remove()' can only be used on observable objects, arrays and maps`,10:`'has()' can only be used on observable objects, arrays and maps`,11:`'get()' can only be used on observable objects, arrays and maps`,12:`Invalid annotation`,13:`Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,14:`Intercept handlers should return nothing or a change object`,15:`Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,16:`Modification exception: the internal structure of an observable array was changed.`,17:function(e,t){return`[mobx.array] Index out of bounds, `+e+` is larger than `+t},18:`mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js`,19:function(e){return`Cannot initialize from classes that inherit from Map: `+e.constructor.name},20:function(e){return`Cannot initialize map from `+e},21:function(e){return`Cannot convert to map from '`+e+`'`},22:`mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js`,23:`It is not possible to get index atoms from arrays`,24:function(e){return`Cannot obtain administration from `+e},25:function(e,t){return`the entry '`+e+`' does not exist in the observable map '`+t+`'`},26:`please specify a property`,27:function(e,t){return`no observable property '`+e.toString()+`' found on the observable object '`+t+`'`},28:function(e){return`Cannot obtain atom from `+e},29:`Expecting some object`,30:`invalid action stack. did you forget to finish an action?`,31:`missing option for computed: get`,32:function(e,t){return`Cycle detected in computation `+e+`: `+t},33:function(e){return`The setter of computed value '`+e+`' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?`},34:function(e){return`[ComputedValue '`+e+`'] It is not possible to assign a new value to a computed value.`},35:"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`",36:`isolateGlobalState should be called before MobX is running any reactions`,37:function(e){return"[mobx] `observableArray."+e+"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice()."+e+"()` instead"},38:`'ownKeys()' can only be used on observable objects`,39:`'defineProperty()' can only be used on observable objects`};function n(e){var n=[...arguments].slice(1),r=typeof e==`string`?e:t[e];throw typeof r==`function`&&(r=r.apply(null,n)),Error(`[MobX] `+r)}var r={};function i(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:r}var a=Object.assign,o=Object.getOwnPropertyDescriptor,s=Object.defineProperty,c=Object.prototype,l=[];Object.freeze(l);var u={};Object.freeze(u);var d=typeof Proxy<`u`,f=Object.toString();function p(){d||n("`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`")}function m(e){I.verifyProxies&&n(`MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to `+e)}function h(){return++I.mobxGuid}function g(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}var _=function(){};function v(e){return typeof e==`function`}function y(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function b(e){return typeof e==`object`&&!!e}function x(e){if(!b(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===f}function S(e){var t=e?.constructor;return t?t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`:!1}function C(e,t,n){s(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function ee(e,t,n){s(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function te(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return b(e)&&e[n]===!0}}function w(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function ne(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function re(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}var ie=Object.getOwnPropertySymbols!==void 0;function T(e){var t=Object.keys(e);if(!ie)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter(function(t){return c.propertyIsEnumerable.call(e,t)})):t}var E=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:ie?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function ae(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function oe(e){return e===null?null:typeof e==`object`?``+e:e}function se(e,t){return c.hasOwnProperty.call(e,t)}var ce=Object.getOwnPropertyDescriptors||function(e){var t={};return E(e).forEach(function(n){t[n]=o(e,n)}),t};function le(e,t){return!!(e&t)}function ue(e,t,n){return n?e|=t:e&=~t,e}function de(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function fe(e,t,n){if(ye())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&be(i,n.prototype),i}function pe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,Se(r.key),r)}}function me(e,t,n){return t&&pe(e.prototype,t),n&&pe(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function he(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=Ce(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
132
|
+
Tip: every bar carries a settings menu — click it (${Ks} by\n default) for quick actions, preset switching, edit mode, and clickable\n theme/look/style/wrap/padding controls.\n`}async function TS(e){let t=e.includes(`--force`),n=e.filter(e=>e!==`--force`),r=n.length>0?n:[...rS],i=_S();process.platform===`darwin`?yS(i.distPath):process.stdout.write(`Skipping URL handler (cmd-click verbs are macOS-only).
|
|
133
|
+
`),ES(i.binPath,r,t),process.stdout.write(wS());let a=tS(Qx,eS(Gx,await $x(Qx,fetch,`https://registry.npmjs.org`)));process[a.stream].write(a.text)}function ES(e,t,n,i){let a=i??Kx();r.mkdirSync(c.dirname(a),{recursive:!0});let o={};if(r.existsSync(a))try{o=JSON.parse(r.readFileSync(a,`utf-8`))}catch(e){throw Error(`Could not parse ${a}: ${e instanceof Error?e.message:String(e)}`)}let s=o.statusLine?.command,l=[e,aS(e)],u=typeof s==`string`&&(s.startsWith(`pnpm dlx @promptctl/cc-candybar@`)||l.some(e=>s===e||s.startsWith(`${e} `)));if(s&&!u&&!n){process.stderr.write(`Skipping settings.json update: existing statusLine.command appears customized.\n Current: ${s}\n To overwrite, re-run with --force.\n`);return}o.statusLine={type:`command`,command:oS(e,t)},ke(a,JSON.stringify(o,null,2)),process.stdout.write(`Updated ${a}\n`)}function DS(e,t){return e.kind===`owned`?t(e.pid,e.startTime)?{kind:`attach-and-exit`,reason:`live owner pid=${e.pid} holds the socket`}:{kind:`reclaim`,reason:`owner pid=${e.pid} is gone or recycled`}:e.kind===`absent`?{kind:`reclaim`,reason:`no lease — stale socket, no live owner`}:{kind:`reclaim`,reason:`unreadable lease (${e.detail}) — cannot prove a live owner`}}function OS(e){let t;try{t=r.readFileSync(e,`utf8`)}catch(e){return e.code===`ENOENT`?{kind:`absent`}:{kind:`unreadable`,detail:`read failed: ${e.message}`}}let n;try{n=JSON.parse(t)}catch(e){return{kind:`unreadable`,detail:`bad JSON: ${e.message}`}}let i=n,a=i?.pid;if(typeof a!=`number`||!Number.isInteger(a)||a<=0)return{kind:`unreadable`,detail:`no valid pid (got ${JSON.stringify(a)})`};let o=i?.startTime;return o!=null&&typeof o!=`string`?{kind:`unreadable`,detail:`invalid startTime (got ${JSON.stringify(o)})`}:{kind:`owned`,pid:a,startTime:o??null}}function kS(e,n){let i=`${e}.${t.pid}.tmp`;try{return r.writeFileSync(i,JSON.stringify(n),{mode:384}),r.renameSync(i,e),null}catch(e){let t=e.message;try{r.unlinkSync(i)}catch(e){if(e.code!==`ENOENT`)return`${t}; also failed to remove temp ${i}: ${e.message}`}return t}}function AS(e,t){let n=OS(e);if(n.kind===`owned`&&n.pid===t)try{r.unlinkSync(e)}catch{}}function jS(e){try{let t=r.statSync(e);return{kind:`present`,identity:{dev:t.dev,ino:t.ino}}}catch(e){return e.code===`ENOENT`?{kind:`absent`}:{kind:`unreadable`,detail:e.message}}}function MS(e,t,n,r){let i=NS(e,t);return i===null?r.kind===`owned`?r.pid===n?{kind:`owned`}:{kind:`displaced`,reason:`lease reassigned (names pid=${r.pid}, we are pid=${n}) — a reclaimer overwrote it`}:{kind:`displaced`,reason:`lease not held (${r.kind}) — no longer the socket owner`}:{kind:`displaced`,reason:i}}function NS(e,t){return t.kind===`present`?t.identity.dev===e.dev&&t.identity.ino===e.ino?null:`socket replaced (bound dev=${e.dev} ino=${e.ino}, now dev=${t.identity.dev} ino=${t.identity.ino})`:t.kind===`absent`?`socket path gone (ENOENT) — unlinked by a reclaimer`:`socket path unreadable (${t.detail}) — cannot prove ownership`}function PS(e){let t=!1;function n(){let n=MS(e.bound,e.readIdentity(),e.myPid,e.readLease());return n.kind===`displaced`&&!t&&(t=!0,e.log(`warn`,`ownership self-check: ${n.reason}; shutting down`),e.shutdown(0)),n}function r(t=e.intervalMs??5e3){let r=setInterval(()=>{n().kind===`displaced`&&clearInterval(r)},t);return r.unref(),{disarm:()=>clearInterval(r)}}return{check:n,arm:r}}function FS(e,t=Ee){let n=t({bin:`ps`,args:[`-o`,`lstart=`,`-p`,String(e)],category:`process-fingerprint`,timeoutMs:2e3,env:{...process.env,LC_ALL:`C`,TZ:`UTC`}});if(n.ok){let e=n.stdout.trim();return e.length>0?{kind:`start`,token:e}:{kind:`unavailable`,detail:`ps produced no start-time`}}return{kind:`unavailable`,detail:n.reason===`spawn-error`?n.error??`ps spawn failed`:`ps ${n.reason} (exit ${n.exitCode})`}}function IS(e,t,n){if(t===null)return n.pidAlive(e);let r=n.readStartTime(e);switch(r.kind){case`start`:return r.token===t;case`unavailable`:return n.pidAlive(e)}}function LS(e,t=FS){let n=t(e);return n.kind===`start`?n.token:null}const RS=`CC_CANDYBAR_PARENT_PID`;function zS(e){let t=e[RS];if(t===void 0)return{kind:`outlives-nobody`};let n=Number.parseInt(t,10);if(!Number.isInteger(n)||n<=0)throw Error(`${RS} must be a positive integer pid, got ${JSON.stringify(t)}`);return{kind:`anchored`,pid:n}}function BS(e){if(e.anchor.kind===`outlives-nobody`)return{disarm:()=>{}};let{pid:t}=e.anchor,n=setInterval(()=>{e.isAlive(t)||e.onOrphaned(`spawner pid ${t} gone`)},e.intervalMs??250);return n.unref(),{disarm:()=>clearInterval(n)}}function VS(e){try{return t.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function HS(){let e=Number(process.env.CC_CANDYBAR_DAEMON_CEILING??``);return Number.isInteger(e)&&e>0?e:16}function US(e,t,n){return e?t>=n?{allow:!1,reason:`${t} live isolated daemons registered >= ceiling ${n}`}:{allow:!0,reason:`${t} live isolated daemons registered < ceiling ${n}`}:{allow:!0,reason:`canonical production socket — exempt (bind() already caps it to one)`}}function WS(e){try{return r.readdirSync(e).filter(e=>e.endsWith(`.json`)).map(t=>c.join(e,t))}catch{return[]}}function GS(e){let t;try{t=r.readFileSync(e,`utf8`)}catch{return null}try{let e=JSON.parse(t),n=e?.pid;return typeof n!=`number`||!Number.isInteger(n)||n<=0?null:{pid:n,startTime:typeof e?.startTime==`string`?e.startTime:null}}catch{return null}}function KS(e,t,n){let r=0;for(let i of e)t(i.identity.pid,i.identity.startTime)?r++:n(i.path);return r}function qS(e){if(!e.isolated)return{decision:US(!1,0,e.ceiling),registryPath:null};e.ensureDirSafe(e.registryDir);let t=[];for(let n of e.listFiles(e.registryDir)){let r=e.readEntry(n);r!==null&&r.pid!==e.pid&&t.push({path:n,identity:r})}let n=US(!0,KS(t,e.isSameLiveProcess,e.removeFile),e.ceiling);if(!n.allow)return{decision:n,registryPath:null};let r=c.join(e.registryDir,`pid-${e.pid}.json`);return e.writeEntry(r,{pid:e.pid,startTime:e.startTime}),{decision:n,registryPath:r}}function JS(e,t,n,r){let i=n(e);if(i!==null&&i.pid===t)try{r(e)}catch{}}function YS(e,t={}){return{isolated:!!process.env.CC_CANDYBAR_SOCKET,registryDir:Be(),ceiling:HS(),pid:process.pid,startTime:e,isSameLiveProcess:(e,t)=>IS(e,t,{readStartTime:FS,pidAlive:VS}),listFiles:WS,readEntry:GS,removeFile:e=>{try{r.unlinkSync(e)}catch{}},writeEntry:(e,t)=>{let n=`${e}.${t.pid}.tmp`;try{r.writeFileSync(n,JSON.stringify(t),{mode:384}),r.renameSync(n,e)}catch(e){try{r.unlinkSync(n)}catch(e){e.code}throw e}},ensureDirSafe:process.env.CC_CANDYBAR_DAEMON_REGISTRY_DIR?Pe:e=>{Pe(c.dirname(e)),Pe(e)},...t}}function XS(e){return e<32||e===127||e>=128&&e<=159}function ZS(e){let t=``;for(let n of e)t+=XS(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function QS(e,t){let n=ZS(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const $S=`\x1B[38;2;255;255;255m`,eC=`\x1B[48;2;200;40;40m`;function tC(e){let t=/;2;(\d+);(\d+);(\d+)m$/.exec(e);if(t===null)throw Error(`diagnostic-style: not a 24-bit SGR: ${e}`);return`#`+t.slice(1,4).map(e=>Number(e).toString(16).padStart(2,`0`)).join(``)}const nC={fg:tC($S),bg:tC(eC)},rC={fg:tC(`\x1B[38;2;0;0;0m`),bg:tC(`\x1B[48;2;220;160;40m`)},iC={unicode:hi,ascii:{glyph:`>`,divider:`|`,lead:`<`,tail:`>`}},aC={unicode:{},ascii:{left:`(`,right:`)`}};function oC(e,t,n){switch(e){case`capsule`:return new _i(aC[t]);case`plain`:return new vi(n===void 0?{}:{separator:n});case`powerline`:return new gi(iC[t]);default:return e}}const sC=new Map;function cC(e){let t=JSON.stringify([e.style,e.charset,e.separator??null]),n=sC.get(t);if(n!==void 0)return n;let r=oC(e.style,e.charset,e.separator),i=e=>new H(`x`,{end:``,noWrap:!0,style:new B({bgcolor:e})}),a=e=>new H(xi(new oi(e,r),{colorSystem:null}).replace(/\n$/,``)).cellLength,o=a([i(`#101010`)]),s={chrome:o-1,seam:a([i(`#101010`),i(`#202020`)])-o-1};return sC.set(t,s),s}function lC(e){return cC(e).chrome}function uC(e){return cC(e).seam}function dC(e,t){if(e.length===0)return``;let n=oC(t.style,t.charset,t.separator),r=t.colorCompatibility,i=t.wrap&&Number.isFinite(t.width)?xi(new Di([...e],{joiner:n}),{width:t.width,colorSystem:r}):xi(new oi([...e],n),{colorSystem:r});if(!i.endsWith(`
|
|
134
|
+
`))throw Error(`renderStripCells: rich-js strip output did not end its last line`);return i.slice(0,-1)}function fC(e){return Math.min(20,e??20)}const pC={heading:`ERROR`,glyph:`⚠`,colors:nC},mC={heading:`WARNING`,glyph:`⚠`,colors:rC},hC={heading:`UPDATE`,glyph:`⬆`,colors:rC};function gC(e,t){return{text:ZS(e),link:t}}function _C(e,t,n){let[r,...i]=[vC(e,pC,Dx),t,vC(n,mC,Ox)].flat();return r===void 0?null:{channels:[r,...i]}}function vC(e,t,n){let r=Bx([{verb:n,args:[e]}]),[i,...a]=e.split(/\r\n|\r|\n/).map(e=>gC(e,r)).filter(e=>e.text!==``).map(e=>[e]);return i===void 0?[]:[{severity:t,message:e,lines:[i,...a]}]}function yC(e){return e.channels.map(e=>`${e.severity.heading}\n${e.message}\n`).join(`
|
|
135
|
+
`)}function bC(e,t,n,r){if(t===null)return e;let i=xC(r),a=t.channels.flatMap(e=>SC(e,i)),o=n.failedConfigFile!==null||a.length>r.rowCap,s=a.slice(0,r.rowCap-Number(o)),c=o?[CC(t,n,a.length-s.length,i)]:[],l=[...s,...c].join(`
|
|
136
|
+
`);return e?`${l}\n${e}`:l}function xC(e){return{style:`plain`,separator:``,width:e.width,wrap:!0,padding:0,charset:`unicode`,colorCompatibility:e.colorCompatibility}}function SC(e,t){let n=new B({bgcolor:e.severity.colors.bg,color:e.severity.colors.fg}),r=Lt(Math.max(2,t.width-1)),i=(e,t)=>new H(`${e} `,{style:t,end:``,noWrap:!0});return e.lines.flatMap((a,o)=>dC([i(o===0?e.severity.glyph:` `,n.withLink(a[0].link)),...a.flatMap(e=>{let t=n.withLink(e.link);return e.text.split(` `).flatMap(e=>Bt(e,r)).map(e=>i(e,t))})],t).split(`
|
|
137
|
+
`))}function CC(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new B({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new H(e,{style:t,end:``,noWrap:!0}),l=n>0?[c(`${n} more rows · `,s),a.kind===`file`?c(`open full text`,s.withLink(x(a.path).href)):c(`full text unavailable: ${ZS(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(ZS(o),s.withLink(x(o).href))],d=[c(`↳ `,s),...l,...u.slice(0,-1)],f=d.reduce((e,t)=>e+t.cellLength,0),p=u.slice(-1).map(e=>e.truncate(Math.max(1,r.width-f),{mode:`middle`})),m=H.fromFragments([...d,...p]).truncate(r.width);return m.noWrap=!0,dC([m],r)}const wC=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function TC(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function EC(e,t){return r.readdirSync(t).filter(wC).sort().flatMap(n=>{let i=c.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?EC(e,i):[[c.relative(e,i).split(c.sep).join(`/`),TC(i,a)]]})}function DC(e){let t=C.createHash(`sha256`);for(let[n,r]of EC(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const OC=e=>e.slice(0,7);function kC(e){return c.dirname(c.dirname(e))}function AC(){return{version:Gx,digest:`4587e78d573c562e49aa9352b8bf4f89b6995c512af6826092737534cd5dc736`}}function jC(e){let t=JSON.parse(r.readFileSync(c.join(e,`package.json`),`utf8`)),n=typeof t==`object`&&t?t.version:void 0;if(typeof n!=`string`)throw Error(`${c.join(e,`package.json`)} has no version string`);return n}function MC(e,t){try{let n=kC(b(e)),i=c.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=DC(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:jC(n),digest:o},running:a}}catch(e){return{kind:`unchecked`,reason:e.message}}}var $=class extends Error{constructor(e){super(e),this.name=`BadVerbArgs`}};const NC=/^-?\d+$/;function PC(e,t,n){return e===void 0?t:Math.max(t,Math.min(n,e))}function FC(e,t,n=`set-state`){let r=e.filter(e=>e.includes(`/`));if(r.length>0)throw Error(`makeAllowListValidator(${t}): values contain "/" — the ${n} wire shape splits values on "/" so slash-bearing options cannot be addressed. Offending values: ${r.join(`, `)}`);if(e.includes(``))throw Error(`makeAllowListValidator(${t}): empty string is not a writable option — the validator rejects empty input before the allow-list check, so an "" in the allowed list could be rendered but never delivered. Remove "" from the allowed list.`);let i=new Set(e),a=[...e];return e=>e?i.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown ${t} "${e}" (have: ${a.join(`, `)})`}:{ok:!1,reason:`${t} value is required`}}function IC(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!NC.test(t))return{ok:!1,reason:`${e} must be an integer, got "${t}"`};let n=t[0]===`-`,r=(n?t.slice(1):t).replace(/^0+/,``);return r===``?{ok:!0,value:`0`}:{ok:!0,value:n?`-${r}`:r}}}function LC(e,t,n){return r=>r?NC.test(r)?{ok:!0,value:String(Math.max(e,Math.min(t,parseInt(r,10))))}:{ok:!1,reason:`${n} must be an integer, got "${r}"`}:{ok:!1,reason:`${n} value is required`}}function RC(e,t,n=`state`){let r=t.filter(e=>e.kind===`range`),i=t.some(e=>e.kind===`int`),a=t.flatMap(e=>e.kind===`allow-list`?e.allowed:[]);if(r.length===0&&!i)return{kind:`allow-list`,allowed:[...new Set(a)]};let o=a.filter(e=>!NC.test(e));if(o.length>0)throw Error(`${n} action table: key "${e}" is an integer spec (a paged cursor or a bounded value) but a click writes non-integer value(s) to it (${o.join(`, `)}). A ${n} key has one key shape — point that click at a distinct key, or write an integer.`);if(i&&r.length>0)throw Error(`${n} action table: key "${e}" is declared as both a paged cursor (int) and a bounded value (range) — a ${n} key has one key shape. Use distinct keys.`);if(r.length>0){let t=Math.min(...r.map(e=>e.min)),i=Math.max(...r.map(e=>e.max)),o=a.filter(e=>{let n=parseInt(e,10);return n<t||n>i});if(o.length>0)throw Error(`${n} action table: key "${e}" is a bounded range [${t},${i}] but a click writes out-of-range value(s) to it (${o.join(`, `)}). The range gate would clamp them, storing a different value than the click renders — write an in-range integer, or point that click at a distinct key.`);return{kind:`range`,min:t,max:i,seed:PC(r[0].seed,t,i)}}return{kind:`int`}}function zC(e){return e===`config`?`set-config`:`set-state`}function BC(e,t,n){return t.kind===`int`?IC(`menu page "${e}"`):t.kind===`range`?LC(t.min,t.max,`${n} stepper "${e}"`):FC(t.allowed,`${n} "${e}"`,zC(n))}function VC(e,t,n){return BC(e,RC(e,t,n),n)}function HC(e,t=`state`){let n=new Map;for(let{key:t,spec:r}of e){let e=n.get(t);e?e.push(r):n.set(t,[r])}return[...n].map(([e,n])=>({key:e,spec:RC(e,n,t)}))}function UC(e,t=`state`){let n=new Map(Object.entries(e).map(([e,t])=>[e,{validator:t,permanent:!0}]));function r(){let e=[];for(let[t,r]of n)r.permanent&&e.push(t);return e}return{register(e,i){if(!e)throw Error(`register: key is required`);if(e.includes(`/`))throw Error(`register: key "${e}" contains "/" — the wire shape splits on "/" so a slash-bearing key cannot be addressed. Use a slash-free key.`);let a=n.get(e);if(a){if(a.permanent)throw Error(`register: key "${e}" is a built-in ${t} key and cannot be re-claimed (built-in keys: ${[...r()].join(`, `)})`);if(a.kind!==i.kind)throw Error(`register: key "${e}" is already a ${a.kind} ${t} key; cannot also register it as ${i.kind}. A ${t} key has one key shape — a menu page index (int) and a button allow-list cannot share a key.`);a.specs.push(i),a.validator=VC(e,a.specs,t)}else{let r=[i];n.set(e,{permanent:!1,kind:i.kind,validator:VC(e,r,t),specs:r})}let o=!0;return()=>{if(!o)return;o=!1;let r=n.get(e);if(!r||r.permanent)return;let a=r.specs.indexOf(i);a>=0&&r.specs.splice(a,1),r.specs.length===0?n.delete(e):r.validator=VC(e,r.specs,t)}},validate(e,r){let i=n.get(e);return i?i.validator(r):{ok:!1,reason:`unknown ${t} key "${e}" (have: ${[...n.keys()].join(`, `)})`}},listKeys(){return[...n.keys()]},listBaselineKeys(){return r()},rangeParamsFor(e){let r=n.get(e);if(!r||r.permanent||r.kind!==`range`)return null;let i=RC(e,r.specs,t);if(i.kind!==`range`)throw Error(`rangeParamsFor: key "${e}" holds range specs but the merge produced a ${i.kind} spec — the entry-kind invariant is broken.`);return{min:i.min,max:i.max,seed:i.seed}}}}const WC=UC({},`config`);function GC(){return WC.listKeys()}function KC(e,t){return WC.validate(e,t)}function qC(e){return WC.rangeParamsFor(e)}function JC(e,t,n){return`persist`in e?`to`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[e.to]}}]:`from`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:by(e.from,n).members}}]:`cycle`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:e.cycle}}]:`removeSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[ig({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[ig({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:by(e.insertSegmentFrom,n).members.map(t=>ig({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max,seed:PC(t.get(e.persist),e.min,e.max)}}]:[]}function YC(e){return Sc(e.globals)}function XC(e){let t=new Set;for(let n of QC(e)){let e=`persist`in n?n.persist:`reset`in n?n.reset:null;if(e===null)continue;let r=_g(e);r?.scope===`preset-root`&&t.add(r.preset)}return[...t].map(e=>({key:gg(e),spec:{kind:`allow-list`,allowed:[]}}))}function ZC(e){let t=YC(e),n=new Map([...vy(e),...Ig(e)]);return[...XC(e),...QC(e).flatMap(e=>JC(e,t,n))]}function QC(e){return Object.values(e.actions).flatMap(av)}function $C(e){return HC(ZC(e),`config`)}function ew(e,t){return WC.register(e,t)}const tw=Sa(),nw=new Set(tw),rw=new Set(Ma),iw=e=>e?nw.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${tw.join(`, `)})`}:{ok:!1,reason:`theme name is required`},aw=e=>e?rw.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown style "${e}" (have: ${Ma.join(`, `)})`}:{ok:!1,reason:`style name is required`},ow=new Set([`1`,`true`]),sw=new Set([`0`,`false`]),cw=UC({style:aw,theme:iw,"toolbar-expanded":e=>ow.has(e)?{ok:!0,value:`1`}:sw.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}});function lw(){return cw.listKeys()}function uw(e,t){return cw.register(e,t)}function dw(e,t){return cw.validate(e,t)}function fw(e){return cw.rangeParamsFor(e)}function pw(e,t,n){return`set`in e?`to`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:[e.to]}}]:`from`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:by(e.from,n).members}}]:`int`in e?[{key:e.set,spec:{kind:`int`}}]:`cycle`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:e.cycle}}]:[{key:e.set,spec:{kind:`range`,min:e.min,max:e.max,seed:PC(t.get(e.set),e.min,e.max)}}]:[]}function mw(e){let t=new Set(cw.listBaselineKeys());return e.filter(e=>e.spec.kind!==`allow-list`||!t.has(e.key))}function hw(e){let t=new Map,n=/^-?\d+$/;for(let r of Object.values(e.variables)){if(r.kind!==`state`)continue;let e=r.default;e!==void 0&&n.test(e)&&t.set(r.key,parseInt(e,10))}for(let[n,r]of Sc(e.globals))t.set(n,r);return t}function gw(e){let t=hw(e),n=vy(e);return mw(Object.values(e.actions).flatMap(av).flatMap(e=>pw(e,t,n)))}function _w(e){return HC(gw(e))}const vw=`update.dismissed`,yw=`updateNotice`;function bw(e){return e.kind===`source`?e.newer.digest:Xx(e.newer)}const xw=e=>`${e.version} [${OC(e.digest)}]`;function Sw(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:xw(e.newer),running:xw(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:Xx(e.newer),running:Xx(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${Qx}@${Xx(e.newer)}`,`install`]}}}}const Cw={kind:`idle`},ww={kind:`running`};function Tw(e,t,n){if(e===null)return[];let r=bw(e);if(!n.enabled||n.dismissed===r)return[];let i=Sw(e),a=`${i.headline}: ${i.newer}. You're on ${i.running}.`,o=t.kind===`failed`&&t.identity===r?[`${i.act} failed: ${t.reason}`]:[],s=[a,...o].join(`
|
|
138
|
+
`),c=Bx([{verb:Ox,args:[s]}]),l=t.kind===`running`?gC(`[${i.busy}]`,c):gC(`[${i.act}]`,Bx([{verb:Fx,args:[n.sessionId]}]));return[{severity:hC,message:s,lines:[[gC(a,c),l,gC(`[dismiss]`,Bx([{verb:Sx,args:[n.sessionId,vw,r]}])),gC(`[disable]`,Bx([{verb:kx,args:[n.sessionId,yw,`false`]}]))],...o.map(e=>[gC(e,c)])]}]}function Ew(e,t){return e.kind===`stale`?{kind:`source`,root:e.root,newer:e.source,running:e.running}:e.kind===`not-source-checkout`&&t!==null&&t.kind===`stale`?{kind:`release`,newer:t.latest,running:t.installed}:null}function Dw(e){switch(e.kind){case`current`:return[`info`,`build: current ${xw(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${xw(e.source)}, running ${xw(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function Ow(e){switch(e.kind){case`current`:return[`info`,`release: current ${Xx(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${Xx(e.latest)}, running ${Xx(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${Xx(e.installed)}, latest ${Xx(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function kw(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const Aw=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function jw(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=Aw(e.stderr)??e.error??Aw(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function Mw(e){let{entryUrl:t,intervalMs:n,releaseIntervalMs:r,registryUrl:i,fetchImpl:a,onApplied:o,log:s}=e,c={kind:`unchecked`,reason:`not sampled yet`},l=null,u=Cw,d=null,f=kw(s),p=kw(s),m=()=>Ew(c,l);function h(){let e=m(),t=e===null?null:bw(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:uw(vw,{kind:`allow-list`,allowed:[t]})})}function g(){c=MC(t,AC),f(Dw(c)),h()}async function _(){l=eS(Gx,await $x(Qx,a,i)),p(Ow(l)),h()}return{arm(){ew(yw,{kind:`allow-list`,allowed:[`false`]}),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>Tw(m(),u,e),act(){let e=m();if(e===null)throw new $(`apply-update: nothing newer is known to apply`);let t=Sw(e);if(u.kind===`running`)throw new $(`apply-update: already ${t.busy}`);u=ww,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),Te({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=Cw,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=jw(n);u={kind:`failed`,identity:bw(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}function Nw(e,t,n){return t.ok?X(t.stdout):t.reason===`non-zero`&&n===`absent`||t.reason===`non-zero`&&n===t.exitCode?Z:Q(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??Pw(t.stderr)].filter(Boolean).join(`, `)}`)}function Pw(e){return e.trim().split(`
|
|
139
|
+
`,1)[0]??``}function Fw(e,t){if(e.kind!==`ok`)return e;let n=t(e.value);return n===null?Z:X(n)}function Iw(e){if(e.kind!==`ok`)return e;let t=e.value.trim();return t?X(t):Z}const Lw=/^[A-Za-z]:[\\/]/;function Rw(e){let t=e.trim();if(Lw.test(t))return null;let n=t.match(/^(?:[^@/]+@)?(\[[^\]]+\]):(.*)$/)??t.match(/^(?:[^@/:]+@)?([^/:]+):(?!\/\/)(.*)$/),r=n?`ssh://${n[1]}/${n[2].replace(/^\/+/,``)}`:t,i;try{i=new URL(r)}catch{return null}return{scheme:i.protocol.replace(/:$/,``),host:i.hostname.toLowerCase(),port:i.port,path:i.pathname.replace(/^\/+/,``).replace(/\/+$/,``)}}function zw(e){return Rw(e)?.host||null}function Bw(e){let t=zw(e);return t?t===`github.com`||t.endsWith(`.github.com`)?`github`:/(^|\.)gitlab\./.test(t)?`gitlab`:null:null}function Vw(e){let t=new Map;for(let n of e.split(`
|
|
140
|
+
`)){let e=n.match(/^remote\.(.+)\.url\s+(\S.*)$/);if(!e)continue;let r=t.get(e[1])??[];r.push(e[2].trim()),t.set(e[1],r)}return[...t].map(([e,t])=>({name:e,urls:t}))}function Hw(e){return e.urls.find(e=>qw(e)!==null)??e.urls[0]??null}function Uw(e){return e.find(e=>e.name===`origin`)??e[0]??null}function Ww(e){let t=Uw(e);return t?Hw(t):null}function Gw(e){let t=Uw(e);return t?t.urls.find(e=>Bw(e)!==null)??Hw(t):null}function Kw(e){let t=(Rw(e)?.path??e.replace(/[\\/]+$/,``)).split(`/`);return(t[t.length-1]??``).replace(/\.git$/,``)||null}function qw(e){let t=Rw(e);if(!t)return null;let n=t.scheme===`https`?{scheme:`https`,port:t.port}:t.scheme===`http`?{scheme:`http`,port:t.port}:t.scheme===`ssh`||t.scheme===`git`?{scheme:`https`,port:``}:null;if(!n||!t.host)return null;let r=t.path.replace(/\.git$/,``);if(!r)return null;let i=n.port?`${t.host}:${n.port}`:t.host;return`${n.scheme}://${i}/${r}`}function Jw(e){let t=Ww(e);return t===null?null:qw(t)}function Yw(e,t,n,r){return t.ok?r(t.stdout):t.reason===`spawn-error`&&/ENOENT/i.test(t.error??``)||t.reason===`non-zero`&&n.test(t.stderr)?Z:Q(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??Pw(t.stderr)].filter(Boolean).join(`, `)}`)}function Xw(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Zw(e){let t=`detached`,n=Z,r=Z,i=Z,a=0,o=0,s=0,c=0;for(let l of e.split(`
|
|
141
|
+
`)){if(!l)continue;if(l.startsWith(`# `)){let e=l.slice(2);if(e.startsWith(`branch.oid `)){let t=e.slice(11).trim();n=t===`(initial)`?Z:X(t)}else if(e.startsWith(`branch.head `)){let n=e.slice(12).trim();t=n===`(detached)`?`detached`:n}else if(e.startsWith(`branch.upstream `))r=X(e.slice(16).trim());else if(e.startsWith(`branch.ab `)){let t=e.slice(10).trim().match(/^\+(\d+)\s+-(\d+)$/);t&&(i=X({ahead:parseInt(t[1],10),behind:parseInt(t[2],10)}))}continue}let e=l[0];if(e===`1`||e===`2`){let e=l.slice(2,4);e[0]!==`.`&&a++,e[1]!==`.`&&o++}else e===`u`?c++:e===`?`&&s++}let l=`clean`;return c>0?l=`conflicts`:(a||o||s)&&(l=`dirty`),{branch:t,status:l,aheadBehind:i,oid:n,upstream:r,workingTree:{staged:a,unstaged:o,untracked:s,conflicts:c}}}function Qw(e){let t;try{t=JSON.parse(e)}catch(e){return Q(`gh pr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!Xw(t))return Q(`gh pr view: JSON is not an object`);let{number:n,state:r,url:i}=t;return typeof n!=`number`||typeof r!=`string`||typeof i!=`string`?Q(`gh pr view: missing number/state/url`):r.toUpperCase()===`OPEN`?X({number:n,state:r,url:i}):Z}function $w(e){let t;try{t=JSON.parse(e)}catch(e){return Q(`glab mr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!Xw(t))return Q(`glab mr view: JSON is not an object`);let n=t.iid,r=t.state,i=t.web_url;return typeof n!=`number`||typeof r!=`string`||typeof i!=`string`?Q(`glab mr view: missing iid/state/web_url`):r.toLowerCase()===`opened`?X({number:n,state:r,url:i}):Z}function eT(e){try{let t=r.statSync(e);return{key:`${t.dev}:${t.ino}`,stamp:`${t.mtimeMs}:${t.size}`}}catch{return null}}var tT=class{isGitRepo(e){try{return r.existsSync(c.join(e,`.git`))}catch{return!1}}async execGitAsync(e,t){return Te({bin:`git`,args:[...e],cwd:t.cwd,env:{...process.env,GIT_OPTIONAL_LOCKS:`0`},timeoutMs:t.timeout,category:`git`})}async resolveEffectiveGitDir(e,t){return this.isWorktree(e)?X(e):t&&this.isGitRepo(t)?X(t):this.isGitRepo(e)?X(e):this.findGitRoot(e)}async findGitRoot(e){let t=c.resolve(e);for(;;){if(this.isGitRepo(t))return X(t);let e=c.dirname(t);if(e===t)return Z;t=e}}async getGitInfo(e,t={},n){try{return await this.computeGitInfo(e,t,n)}catch(e){return Q(`git: ${e instanceof Error?e.message:String(e)}`)}}async computeGitInfo(e,t={},n){let r,i=this.isWorktree(e);if(i)r=e;else if(n&&this.isGitRepo(n))r=n;else if(this.isGitRepo(e))r=e;else{let t=await this.findGitRoot(e);if(t.kind!==`ok`)return t;r=t.value}let a=await this.getCoreAsync(r);if(a.kind!==`ok`)return a;let o={branch:a.value.branch,status:a.value.status,aheadBehind:a.value.aheadBehind};t.showWorkingTree&&(o.workingTree=a.value.workingTree),t.showSha&&(o.sha=Fw(a.value.oid,e=>e.slice(0,7))),t.showUpstream&&(o.upstream=a.value.upstream),t.showTag&&(o.tag=await this.getNearestTagAsync(r)),t.showTimeSinceCommit&&(o.timeSinceCommit=await this.timeSinceCommit(r,a.value.oid)),t.showStashCount&&(o.stashCount=this.getStashCount(r));let s=t.showRepoName||t.showRepoUrl?await this.getRemotesAsync(r):void 0;return s!==void 0&&t.showRepoName&&(o.repoName=Fw(s,e=>this.repoNameFrom(e,r)),o.isWorktree=i),s!==void 0&&t.showRepoUrl&&(o.repoUrl=Fw(s,Jw)),t.showOperation&&(o.operation=this.getOngoingOperation(r)),X(o)}resolveGitDir(e){let t=c.join(e,`.git`);try{if(r.existsSync(t)&&r.statSync(t).isFile()){let n=r.readFileSync(t,`utf-8`).match(/^gitdir:\s*(.+)$/m);if(n?.[1])return c.resolve(e,n[1].trim())}}catch{}return t}getOngoingOperation(e){try{let t=this.resolveGitDir(e);return r.existsSync(c.join(t,`MERGE_HEAD`))?X(`MERGE`):r.existsSync(c.join(t,`CHERRY_PICK_HEAD`))?X(`CHERRY-PICK`):r.existsSync(c.join(t,`REVERT_HEAD`))?X(`REVERT`):r.existsSync(c.join(t,`BISECT_LOG`))?X(`BISECT`):r.existsSync(c.join(t,`rebase-merge`))||r.existsSync(c.join(t,`rebase-apply`))?X(`REBASE`):Z}catch(e){return Q(`git operation probe: ${e instanceof Error?e.message:String(e)}`)}}async getNearestTagAsync(e){return Iw(Nw(`git describe --tags`,await this.execGitAsync([`describe`,`--tags`,`--abbrev=0`],{cwd:e,timeout:2e3}),`absent`))}async timeSinceCommit(e,t){return t.kind===`ok`?Fw(await this.commitTimestampMs(e,t.value),e=>Math.floor((Date.now()-e)/1e3)):t}commitTimes=new Map;async commitTimestampMs(e,t){let n=this.commitTimes.get(t);if(n!==void 0)return this.commitTimes.delete(t),this.commitTimes.set(t,n),n;let r=this.readCommitTimestampMs(e,t);for(this.commitTimes.set(t,r),r.then(e=>{e.kind!==`ok`&&this.commitTimes.get(t)===r&&this.commitTimes.delete(t)},()=>{this.commitTimes.get(t)===r&&this.commitTimes.delete(t)});this.commitTimes.size>256;){let e=this.commitTimes.keys().next().value;if(e===void 0)break;this.commitTimes.delete(e)}return r}async readCommitTimestampMs(e,t){let n=Iw(Nw(`git log -1`,await this.execGitAsync([`log`,`-1`,`--format=%ct`,t,`--`],{cwd:e,timeout:2e3}),`absent`));if(n.kind!==`ok`)return n;let r=parseInt(n.value,10)*1e3;return Number.isNaN(r)?Q(`git log -1: unparseable timestamp "${n.value}"`):X(r)}resolveCommonGitDir(e){let t=this.resolveGitDir(e);try{let e=r.readFileSync(c.join(t,`commondir`),`utf-8`).trim();if(e)return c.resolve(t,e)}catch{}return t}getStashCount(e){let t=c.join(this.resolveCommonGitDir(e),`logs`,`refs`,`stash`),n;try{n=r.readFileSync(t,`utf-8`)}catch(e){return e.code===`ENOENT`?X(0):Q(`git stash reflog ${t}: ${e instanceof Error?e.message:String(e)}`)}let i=n.trim();return X(i?i.split(`
|
|
142
|
+
`).length:0)}async getRemotesAsync(e){let t=eT(c.join(this.resolveCommonGitDir(e),`config`));if(t===null)return this.readRemotes(e);let{key:n,stamp:r}=t,i=this.remotesByConfig.get(n);if(i!==void 0&&i.stamp===r)return this.remotesByConfig.delete(n),this.remotesByConfig.set(n,i),i.remotes;let a=this.readRemotes(e);for(this.remotesByConfig.set(n,{stamp:r,remotes:a}),a.then(e=>{let t=this.remotesByConfig.get(n);e.kind!==`ok`&&t?.remotes===a&&this.remotesByConfig.delete(n)},()=>{this.remotesByConfig.get(n)?.remotes===a&&this.remotesByConfig.delete(n)});this.remotesByConfig.size>256;){let e=this.remotesByConfig.keys().next().value;if(e===void 0)break;this.remotesByConfig.delete(e)}return a}remotesByConfig=new Map;async readRemotes(e){let t=Nw(`git config --get-regexp remote url`,await this.execGitAsync([`config`,`--local`,`--get-regexp`,`^remote\\..*\\.url$`],{cwd:e,timeout:2e3}),1);return t.kind===`failed`?t:X(t.kind===`ok`?Vw(t.value):[])}repoNameFrom(e,t){let n=Ww(e);return(n===null?null:Kw(n))??c.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=Gw(t.value);return n===null?Z:X(n)}async execForgeAsync(e,t,n){return Te({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=Bw(t);return n===`github`?Yw(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,Qw):n===`gitlab`?Yw(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,$w):Z}isWorktree(e){try{let t=c.join(e,`.git`);return!!(r.existsSync(t)&&r.statSync(t).isFile())}catch{return!1}}async getCoreAsync(e){D(`[GIT-EXEC] Running git status --porcelain=v2 in ${e}`);let t=Nw(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?X(Zw(t.value)):t}};const nT=(e,t)=>D(t);var rT=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??nT}acquire(e,t,n){if(this.closed)return{release:()=>{}};let r=this.slots.get(e);if(r)return r.refcount++,r.onInvalidate=n,r.lastTouched=Date.now(),this.slots.delete(e),this.slots.set(e,r),this.makeHandle(e);let i={key:e,watchers:[],refcount:1,debounceTimer:null,onInvalidate:n,targets:t,lastTouched:Date.now()};return this.openWatchers(i),this.slots.set(e,i),this.counters&&this.counters.watchersOpened++,this.evictIfNeeded(),this.makeHandle(e)}makeHandle(e){let t=!1;return{release:()=>{if(t)return;t=!0;let n=this.slots.get(e);n&&(n.refcount=Math.max(0,n.refcount-1),n.refcount===0&&(this.closeSlot(n),this.slots.delete(e)))}}}openWatchers(e){let t=()=>{e.debounceTimer||(e.debounceTimer=setTimeout(()=>{e.debounceTimer=null;try{e.onInvalidate()}catch(e){this.logger(`warn`,`watcher invalidate threw: ${e.message}`)}},50),e.debounceTimer.unref())};for(let n of e.targets.files)try{let i=r.watch(n,{persistent:!1},t);i.on(`error`,e=>{this.logger(`warn`,`watcher error ${n}: ${e.message}`)}),e.watchers.push(i)}catch(e){this.logger(`warn`,`watch failed ${n}: ${e.message}`)}for(let n of e.targets.dirs)try{let i=n.filenames?new Set(n.filenames):null,a=r.watch(n.path,{persistent:!1},(e,n)=>{i&&(!n||!i.has(n))||t()});a.on(`error`,e=>{this.logger(`warn`,`watcher error ${n.path}: ${e.message}`)}),e.watchers.push(a)}catch(e){this.logger(`warn`,`watch failed ${n.path}: ${e.message}`)}}closeSlot(e){e.debounceTimer&&=(clearTimeout(e.debounceTimer),null);for(let t of e.watchers)try{t.close()}catch{}e.watchers=[],this.counters&&this.counters.watchersClosed++}evictIfNeeded(){for(;this.slots.size>this.maxWatchers;){let e=this.slots.keys().next().value;if(e===void 0)break;let t=this.slots.get(e);this.closeSlot(t),this.slots.delete(e),this.counters&&this.counters.watchersEvicted++;try{t.onInvalidate()}catch{}this.logger(`info`,`watcher LRU evict ${e}`)}}size(){return this.slots.size}closeAll(){this.closed=!0;for(let e of this.slots.values())this.closeSlot(e);this.slots.clear()}},iT=class{running=new Set;again=new Set;run(e,t){return this.again.add(e),this.running.has(e)?{kind:`queued`}:(this.running.add(e),{kind:`started`,done:this.loop(e,t)})}async loop(e,t){try{do this.again.delete(e),await t();while(this.again.has(e))}finally{this.running.delete(e),this.again.delete(e)}}clear(){this.running.clear(),this.again.clear()}get size(){return this.running.size}};const aT=(e,t)=>D(t),oT={showSha:!0,showStashCount:!0};function sT(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function cT(e){let t=t=>{try{return r.statSync(c.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function lT(e,t){return e.head!==t.head||e.index!==t.index}function uT(e){let t=[],n=c.join(e,`refs/heads`);try{r.statSync(n).isDirectory()&&t.push({path:n})}catch{}return{files:[c.join(e,`HEAD`),c.join(e,`index`)],dirs:t}}var dT=class extends tT{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new iT;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new tT,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??aT,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new rT({logger:this.logger}),this.ownsWatchers=!0);let t=e.sanityIntervalMs??3e5;t>0&&(this.sanityTimer=setInterval(()=>this.runSanityCheck(),t),this.sanityTimer.unref())}getWatcherRegistry(){return this.watchers}getStats(){return{size:this.entries.size,hits:this.hits,misses:this.misses,invalidations:this.invalidations,watchers:this.watchers.size()}}resolveEffectiveGitDir(e,t){let n=`${e}|${t??``}`,r=Date.now(),i=this.resolutions.get(n);if(i&&r-i.computedAt<this.ttlMs)return this.resolutions.delete(n),this.resolutions.set(n,i),i.dir;let a=this.inner.resolveEffectiveGitDir(e,t);return this.resolutions.set(n,{dir:a,computedAt:r}),a.catch(()=>{this.resolutions.get(n)?.dir===a&&this.resolutions.delete(n)}),this.evictResolutionsIfNeeded(),a}evictResolutionsIfNeeded(){for(;this.resolutions.size>this.maxEntries;){let e=this.resolutions.keys().next().value;if(e===void 0)break;this.resolutions.delete(e)}}async getGitInfo(e,t={},n){let r=await this.resolveEffectiveGitDir(e,n);return r.kind===`ok`?this.getGitInfoForRoot(r.value,t):r}getGitInfoForRoot(e,t){let n=`${e}|${sT(t)}`,r=Date.now(),i=this.entries.get(n);if(i&&r-i.computedAt<this.ttlMs)return this.entries.delete(n),this.entries.set(n,i),this.hits++,Promise.resolve(X(i.info));let a=this.fetchInFlight.get(n);if(a)return a;let o=this.doFetch(e,n,t,r).finally(()=>{this.fetchInFlight.delete(n)});return this.fetchInFlight.set(n,o),o}async doFetch(e,t,n,r){this.misses++;let i=this.inner.resolveGitDir(e),a=cT(i),o=await this.inner.getGitInfo(e,n);if(o.kind!==`ok`)return o;let s=o.value;n.showPullRequest&&(s.pullRequest=await this.getPullRequestCached(e,s.branch)),this.dropEntry(t);let c=this.watchers.acquire(`git:${e}`,uT(i),()=>this.invalidateRepo(e));return this.entries.set(t,{info:s,computedAt:r,mtime:a,watcher:c,repoRoot:e}),this.evictIfNeeded(),o}async getPullRequestCached(e,t){let n=await this.inner.getRepoRemoteUrl(e);if(n.kind===`failed`)return n;if(n.kind===`absent`)return Z;let r=n.value,i=`${e}|${t}|${r}`,a=Date.now(),o=this.prCache.get(i);if(o){let e=o.pr.kind===`failed`?45e3:3e5;if(a-o.computedAt<e)return this.prCache.delete(i),this.prCache.set(i,o),o.pr}let s=this.prFetchInFlight.get(i);if(s)return s;let c=this.inner.resolvePullRequest(e,r).then(e=>(this.prCache.set(i,{pr:e,computedAt:Date.now()}),this.evictPrIfNeeded(),e)).finally(()=>{this.prFetchInFlight.delete(i)});return this.prFetchInFlight.set(i,c),c}evictPrIfNeeded(){for(;this.prCache.size>this.maxEntries;){let e=this.prCache.keys().next().value;if(e===void 0)break;this.prCache.delete(e)}}deliverable(e,t){return e.kind===`failed`?(this.logger(`warn`,`git fetch failed (${t}): ${e.reason}`),null):e.kind===`ok`?e.value:null}subscribe(e,t){let n=!1,r=null;return{firstDelivery:(async()=>{let i=await this.resolveEffectiveGitDir(e);if(n)return;if(i.kind!==`ok`){i.kind===`failed`&&this.logger(`warn`,`git resolve failed (subscribe ${e}): ${i.reason}`),this.safeInvoke(t,null);return}let a=i.value,o=this.subscribersByRepo.get(a);if(!o){let t=this.inner.resolveGitDir(a),n=this.watchers.acquire(`git:${a}`,uT(t),()=>this.invalidateRepo(a));o={workingDir:e,repoRoot:a,callbacks:new Set,watcher:n},this.subscribersByRepo.set(a,o)}o.callbacks.add(t),r={repoRoot:a,entry:o};let s=await this.getGitInfoForRoot(a,{...oT});n||this.safeInvoke(t,this.deliverable(s,a))})(),unsubscribe:()=>{if(n=!0,!r)return;let{repoRoot:e,entry:i}=r;i.callbacks.delete(t),i.callbacks.size===0&&(i.watcher.release(),this.subscribersByRepo.delete(e))}}}invalidateRepo(e){let t=0;for(let[n,r]of this.entries)r.repoRoot===e&&(r.watcher.release(),this.entries.delete(n),t++);t>0&&(this.invalidations+=t,this.logger(`info`,`gitCache invalidate ${e} dropped=${t}`)),this.refreshSubscribers(e)}refreshSubscribers(e){let t=this.subscribersByRepo.get(e);!t||t.callbacks.size===0||this.refreshes.run(e,()=>this.refreshOnce(e))}async refreshOnce(e){let t=this.subscribersByRepo.get(e);if(!t||t.callbacks.size===0)return;let n=await this.getGitInfoForRoot(e,{...oT}),r=this.deliverable(n,e),i=this.subscribersByRepo.get(e);if(!(!i||i.callbacks.size===0))for(let e of[...i.callbacks])i.callbacks.has(e)&&this.safeInvoke(e,r)}safeInvoke(e,t){try{e(t)}catch(e){this.logger(`warn`,`git subscriber threw: ${e.message??String(e)}`)}}dropEntry(e){let t=this.entries.get(e);t&&(t.watcher.release(),this.entries.delete(e))}evictIfNeeded(){for(;this.entries.size>this.maxEntries;){let e=this.entries.keys().next().value;if(e===void 0)break;this.dropEntry(e),this.logger(`info`,`gitCache evict ${e}`)}}runSanityCheck(){let e=new Map;for(let t of this.entries.values()){let n=e.get(t.repoRoot);n||(n=cT(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),lT(t.mtime,n)&&this.invalidateRepo(t.repoRoot)}}runSanityCheckNow(){this.runSanityCheck()}close(){this.sanityTimer&&=(clearInterval(this.sanityTimer),null);for(let e of this.entries.values())e.watcher.release();this.entries.clear();for(let e of this.subscribersByRepo.values())e.callbacks.clear(),e.watcher.release();this.subscribersByRepo.clear(),this.refreshes.clear(),this.fetchInFlight.clear(),this.prCache.clear(),this.prFetchInFlight.clear(),this.resolutions.clear(),this.ownsWatchers&&this.watchers.closeAll()}},fT=class{static CACHE_DIR=O();static USAGE_CACHE_DIR=c.join(this.CACHE_DIR,`usage`);static LOCKS_DIR=c.join(this.CACHE_DIR,`locks`);static isLocked(e){let t=c.join(this.LOCKS_DIR,e);if(!r.existsSync(t))return!1;try{let n=r.readFileSync(t,`utf-8`),i=parseInt(n.trim(),10);if(isNaN(i))return D(`Invalid PID in lock file ${e}, removing stale lock`),r.unlinkSync(t),!1;try{return process.kill(i,0),!0}catch(n){return n.code===`ESRCH`?(D(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(D(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return D(`Error reading lock file ${e}:`,t),!0}}static async acquireLock(e,t=5e3){await this.ensureCacheDirectories();let n=c.join(this.LOCKS_DIR,e),i=Date.now(),a=String(process.pid);for(;Date.now()-i<t;)try{return await r.promises.writeFile(n,a,{flag:`wx`}),D(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await te(50);else throw e}return D(`Failed to acquire lock for ${e} within ${t}ms`),!1}static async releaseLock(e){let t=c.join(this.LOCKS_DIR,e);try{await r.promises.unlink(t),D(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&D(`Error releasing lock for ${e}:`,t)}}static async ensureCacheDirectories(){try{await Promise.all([r.promises.mkdir(this.CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.USAGE_CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.LOCKS_DIR,{recursive:!0})])}catch(e){D(`Failed to create cache directories:`,e)}}static createProjectHash(e){return ee(`md5`).update(e).digest(`hex`).substring(0,8)}static async getUsageCache(e,t){await this.ensureCacheDirectories();let n=c.join(this.USAGE_CACHE_DIR,`${e}.json`),i=`${e}.usage.lock`;for(let a=0;a<3;a++){if(this.isLocked(i)){D(`Cache for ${e} is locked, waiting...`),await te(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(D(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(D(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return D(`No shared ${e} usage cache found`),null;D(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await te(75)}}return D(`Failed to read ${e} cache after 3 attempts.`),null}static deserializeDates(e){return Array.isArray(e)?e.map(e=>({...e,timestamp:new Date(e.timestamp)})):e}static async setUsageCache(e,t,n){let i=`${e}.usage.lock`;if(!await this.acquireLock(i)){D(`Could not acquire lock to set usage cache for ${e}`);return}try{await this.ensureCacheDirectories();let i=c.join(this.USAGE_CACHE_DIR,`${e}.json`),a=JSON.stringify({data:t,timestamp:n||Date.now()});await r.promises.writeFile(i,a,`utf-8`),D(`[CACHE-SET] ${e} disk cache stored`)}catch(t){D(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const pT={"claude-haiku-4-5-20251001":{name:`Claude Haiku 4.5`,input:1,output:5,cache_write_5m:1.25,cache_write_1h:2,cache_read:.1},"claude-haiku-4-5":{name:`Claude Haiku 4.5`,input:1,output:5,cache_write_5m:1.25,cache_write_1h:2,cache_read:.1},"claude-opus-4-20250514":{name:`Claude Opus 4`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-opus-4-1":{name:`Claude Opus 4.1`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-opus-4-1-20250805":{name:`Claude Opus 4.1`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-sonnet-4-20250514":{name:`Claude Sonnet 4`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-4-opus-20250514":{name:`Claude 4 Opus`,input:15,output:75,cache_write_5m:18.75,cache_write_1h:30,cache_read:1.5},"claude-4-sonnet-20250514":{name:`Claude 4 Sonnet`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-sonnet-4-5":{name:`Claude Sonnet 4.5`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-sonnet-4-5-20250929":{name:`Claude Sonnet 4.5`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3},"claude-opus-4-5":{name:`Claude Opus 4.5`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-opus-4-5-20251101":{name:`Claude Opus 4.5`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-opus-4-6":{name:`Claude Opus 4.6`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-opus-4-6-20260205":{name:`Claude Opus 4.6`,input:5,output:25,cache_write_5m:6.25,cache_write_1h:10,cache_read:.5},"claude-sonnet-4-6":{name:`Claude Sonnet 4.6`,input:3,output:15,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3}};var mT=class{static executionCache=null;static modelPricingCache=new Map;static GITHUB_PRICING_URL=`https://raw.githubusercontent.com/promptctl/cc-candybar/main/pricing.json`;static async loadDiskCache(){let e=Date.now()-1440*60*1e3;return await fT.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await fT.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new v(this.GITHUB_PRICING_URL),n=w({hostname:t.hostname,path:t.pathname,headers:{"User-Agent":`cc-candybar`,"Cache-Control":`no-cache`},timeout:5e3},t=>{if(t.statusCode!==200){D(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){D(`Response too large`),n.destroy(),e(null);return}r+=t}),t.on(`end`,()=>{try{let t=JSON.parse(r),n=t._meta,i={};for(let[e,n]of Object.entries(t))e!==`_meta`&&(i[e]=n);this.validatePricingData(i)?(D(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),D(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(D(`Invalid pricing data structure`),e(null))}catch(t){D(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{D(`Response error:`,t),e(null)})});n.on(`error`,t=>{D(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{D(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return D(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return D(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),D(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(D(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(pT).length} models`),this.executionCache=pT,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(pT).length} models`),pT)}static validatePricingData(e){if(!e||typeof e!=`object`)return!1;for(let[,t]of Object.entries(e)){if(!t||typeof t!=`object`)return!1;let e=t;if(typeof e.input!=`number`||typeof e.output!=`number`||typeof e.cache_read!=`number`)return!1}return!0}static async getModelPricing(e){if(this.modelPricingCache.has(e))return D(`[CACHE-HIT] Model pricing cache: ${e}`),this.modelPricingCache.get(e);let t=await this.getCurrentPricing(),n;return n=t[e]?t[e]:this.fuzzyMatchModel(e,t),this.modelPricingCache.set(e,n),D(`[CACHE-SET] Model pricing cache: ${e}`),n}static fuzzyMatchModel(e,t){let n=e.toLowerCase();for(let[e,r]of Object.entries(t))if(e.toLowerCase()===n)return r;for(let{pattern:e,fallback:r}of[{pattern:[`opus-4-6`,`claude-opus-4-6`],fallback:`claude-opus-4-6-20260205`},{pattern:[`opus-4-5`,`claude-opus-4-5`],fallback:`claude-opus-4-5-20251101`},{pattern:[`opus-4-1`,`claude-opus-4-1`],fallback:`claude-opus-4-1-20250805`},{pattern:[`opus-4`,`claude-opus-4`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet-4-6`,`sonnet-4.6`,`claude-sonnet-4-6`],fallback:`claude-sonnet-4-6`},{pattern:[`sonnet-4.5`,`4-5-sonnet`,`sonnet-4-5`],fallback:`claude-sonnet-4-5-20250929`},{pattern:[`sonnet-4`,`claude-sonnet-4`],fallback:`claude-sonnet-4-20250514`},{pattern:[`haiku-4.5`,`4-5-haiku`,`haiku-4-5`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`haiku`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`opus`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet`],fallback:`claude-sonnet-4-5-20250929`}])if(e.some(e=>n.includes(e))&&t[r])return t[r];return t[`claude-sonnet-4-5-20250929`]||{name:`${e} (Unknown Model)`,input:3,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3,output:15}}static async calculateCostForEntry(e){let t=e.message?.usage;if(!t)return 0;let n=this.extractModelId(e),r=await this.getModelPricing(n),i=t.input_tokens||0,a=t.output_tokens||0,o=t.cache_creation_input_tokens||0,s=t.cache_read_input_tokens||0,c=i/1e6*r.input,l=a/1e6*r.output,u=s/1e6*r.cache_read,d=o/1e6*r.cache_write_5m;return c+l+d+u}static extractModelId(e){if(e.model&&typeof e.model==`string`)return e.model;let t=e.message;if(t?.model){let e=t.model;if(typeof e==`string`)return e;let n=e;return(typeof n?.id==`string`?n.id:null)||`claude-sonnet-4-5-20250929`}return e.model_id&&typeof e.model_id==`string`?e.model_id:`claude-sonnet-4-5-20250929`}};function hT(e){if(!e)return 0;try{return o(e).mtimeMs}catch{return 0}}const gT=new class{slots;head=null;tail=null;constructor(e){this.slots=e}async run(e){await this.acquire();try{return await e()}finally{this.release()}}async acquire(){if(this.slots>0){this.slots--;return}await new Promise(e=>{let t={wake:e,next:null};this.tail?this.tail.next=t:this.head=t,this.tail=t})}release(){let e=this.head;if(!e){this.slots++;return}this.head=e.next,this.head||(this.tail=null),e.wake()}}(8);function _T(e){return((...t)=>gT.run(()=>e(...t)))}const vT=_T(ie),yT=_T(re),bT=_T(T);async function xT(e,t){return gT.run(async()=>{let n=null;try{n=await ne(e,`r`);let{size:r,mtimeMs:i,ino:a}=await n.stat(),o=t!==void 0&&(a!==t.ino||r<t.offset),s=o||t===void 0?0:t.offset;if(s>=r)return X({buf:Buffer.alloc(0),start:s,size:r,mtimeMs:i,ino:a,reset:o});let c=Buffer.alloc(r-s),l=0;for(;l<c.length;){let{bytesRead:e}=await n.read(c,l,c.length-l,s+l);if(e===0)break;l+=e}return X({buf:l===c.length?c:c.subarray(0,l),start:s,size:r,mtimeMs:i,ino:a,reset:o})}catch(t){return t.code===`ENOENT`?Z:Q(`readAppended ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}async function ST(e,t){return gT.run(async()=>{let n=null;try{n=await ne(e,`r`);let{size:r}=await n.stat(),i=Math.max(0,r-t),a=Buffer.alloc(r-i),o=0;for(;o<a.length;){let{bytesRead:e}=await n.read(a,o,a.length-o,i+o);if(e===0)break;o+=e}return X({buf:o===a.length?a:a.subarray(0,o),fromStart:i===0})}catch(t){return t.code===`ENOENT`?Z:Q(`readTail ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}const CT=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function wT(e){if(typeof e==`string`)return CT.exec(e)?.[1]}function TT(e){let t=e?.todos;if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let{content:t,activeForm:r,status:i}=e,a=i===`in_progress`,o=a&&typeof r==`string`?r:t;typeof o==`string`&&n.push({text:o,active:a,done:i===`completed`})}return n}function ET(e){let t=e.message?.content,n=e.type===`user`,r=[],i=[],a,o;if(typeof t==`string`)o=t;else if(Array.isArray(t))for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;switch(t.type){case`tool_use`:{let{id:e,name:n}=t;if(typeof e!=`string`||typeof n!=`string`)break;r.push({id:e,name:n}),n===`TodoWrite`&&(a=TT(t.input)??a);break}case`tool_result`:{let e=t.tool_use_id;typeof e==`string`&&i.push(e);break}case`text`:o??=t.text;break;default:break}}let s=n?wT(o):void 0;if(!(r.length===0&&i.length===0&&a===void 0&&s===void 0))return{...r.length>0&&{started:r},...i.length>0&&{finished:i},...a!==void 0&&{todos:a},...s!==void 0&&{command:s}}}function DT(){let e=[],t=process.env.CLAUDE_CONFIG_DIR;if(t&&t.split(`,`).forEach(t=>{let n=t.trim();a(n)&&e.push(n)}),e.length===0){let t=p(),n=d(t,`.config`,`claude`),r=d(t,`.claude`);a(n)&&e.push(n),a(r)&&e.push(r)}return e}async function OT(e){let t=[];for(let n of e){let e=d(n,`projects`);if(a(e))try{let n=await vT(e,{withFileTypes:!0});for(let r of n)if(r.isDirectory()){let n=d(e,r.name);t.push(n)}}catch(t){D(`Failed to read projects directory ${e}:`,t)}}return t}async function kT(e,t,n){let r=[],i=d(t,e,`subagents`);try{let t=(await vT(i)).filter(e=>e.startsWith(`agent-`)&&e.endsWith(`.jsonl`));for(let a of t){let t=d(i,a);if(n?.has(t)){r.push(t);continue}try{let n=(await yT(t,`utf-8`)).split(`
|
|
143
|
+
`)[0];n&&JSON.parse(n).sessionId===e&&r.push(t)}catch{D(`Failed to check agent file ${t}`)}}}catch(e){D(`Failed to read subagents directory ${i}:`,e)}return r}function AT(e){let t=e.type||e.message?.role||e.message?.type,n=e.type===`user`&&e.message?.firstContentType===`tool_result`;return t===`user`&&!n}const jT=new Map;async function MT(e){try{let t=await bT(e),n=t.size,r=jT.get(e);if(r&&r.mtime===t.mtimeMs&&r.size===n)return D(`[parse-cache] hit ${e}`),jT.delete(e),jT.set(e,r),r.entries;let i;return n>1048576?(D(`Using streaming parser for large file ${e} (${Math.round(n/1024)}KB)`),i=await LT(e)):i=await FT(e),D(`Parsed ${i.length} entries from ${e}`),n>5242880?i:(jT.delete(e),jT.size>=16&&jT.delete(jT.keys().next().value),jT.set(e,{mtime:t.mtimeMs,size:n,entries:i}),i)}catch(t){if(t.code===`ENOENT`)return D(`Transcript not present yet: ${e}`),[];throw t}}function NT(e){if(!e.timestamp)return null;let t=e.message,n=t?.usage,r=t?.content,i=Array.isArray(r)&&typeof r[0]==`object`&&r[0]?r[0]:void 0;return{timestamp:new Date(e.timestamp),type:typeof e.type==`string`?e.type:void 0,message:t?{id:typeof t.id==`string`?t.id:void 0,model:typeof t.model==`string`?t.model:void 0,usage:n,role:typeof t.role==`string`?t.role:void 0,type:typeof t.type==`string`?t.type:void 0,firstContentType:typeof i?.type==`string`?i.type:void 0}:void 0,costUSD:typeof e.costUSD==`number`?e.costUSD:void 0,isSidechain:e.isSidechain===!0,activity:ET(e),raw:{model:typeof e.model==`string`?e.model:void 0,message:t?{id:typeof t.id==`string`?t.id:void 0,model:typeof t.model==`string`?t.model:void 0,usage:n}:void 0,requestId:typeof e.requestId==`string`?e.requestId:void 0}}}function PT(e){let t=[];for(let n of e.split(`
|
|
144
|
+
`))if(n.trim())try{let e=NT(JSON.parse(n));e&&t.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`);continue}return t}async function FT(e){return PT(await yT(e,`utf-8`))}async function IT(e,t){let n=await xT(e,t===void 0?void 0:{offset:t.offset,ino:t.ino});if(n.kind!==`ok`)return n;let{buf:r,start:i,mtimeMs:a,ino:o,reset:s}=n.value,c=r.lastIndexOf(10);return X(c<0?{entries:[],cursor:{offset:i,mtimeMs:a,ino:o},reset:s}:{entries:PT(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,mtimeMs:a,ino:o},reset:s})}async function LT(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=E({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=NT(JSON.parse(t));e&&r.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`)}}),o.on(`close`,()=>{t(r)}),o.on(`error`,t=>{D(`Streaming parser error for ${e}:`,t),n(t)}),a.on(`error`,t=>{D(`File stream error for ${e}:`,t),n(t)})})}var RT=class{inflight=new Map;run(e,t){return this.inflight.get(e)??this.start(e,t)}start(e,t){let n=t();this.inflight.set(e,n);let r=()=>{this.inflight.get(e)===n&&this.inflight.delete(e)};return n.then(r,r),n}get size(){return this.inflight.size}};function zT(e,t){let n=e?e.input+e.cacheCreation+e.cacheRead:0,r=e?e.output:0;return{input:n,output:r,total:n+r,atMs:t}}const BT={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},VT={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function HT(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function UT(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function WT(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function GT(e,t,n,r){let i=HT(new Date(UT())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:WT(),l=new Map;if(a)for(let[e,t]of a.days)e>=i&&l.set(e,{...t});for(let e of n){let t=e.message?.usage;if(!t)continue;o++;let n=e.costUSD??await mT.calculateCostForEntry(e.raw);s+=n,c.input+=t.input_tokens||0,c.output+=t.output_tokens||0,c.cacheCreation+=t.cache_creation_input_tokens||0,c.cacheRead+=t.cache_read_input_tokens||0;let r=HT(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...BT};a.cost+=n,a.input+=t.input_tokens||0,a.output+=t.output_tokens||0,a.cacheCreation+=t.cache_creation_input_tokens||0,a.cacheRead+=t.cache_read_input_tokens||0,l.set(r,a)}return{cursor:r,entries:o,cost:s,breakdown:c,days:l}}function KT(e){let t=0,n=0,r=WT(),i=new Map;for(let a of e.values()){t+=a.entries,n+=a.cost,r.input+=a.breakdown.input,r.output+=a.breakdown.output,r.cacheCreation+=a.breakdown.cacheCreation,r.cacheRead+=a.breakdown.cacheRead;for(let[e,t]of a.days){let n=i.get(e)??{...BT};n.cost+=t.cost,n.input+=t.input,n.output+=t.output,n.cacheCreation+=t.cacheCreation,n.cacheRead+=t.cacheRead,i.set(e,n)}}if(t===0)return{sessionInfo:VT,days:i};let a=r.input+r.output+r.cacheCreation+r.cacheRead;return{sessionInfo:{cost:n,calculatedCost:n,officialCost:null,tokens:a,tokenBreakdown:r},days:i}}async function qT(e,t,n){let r=0,i=async()=>{for(;r<e.length;){let t=e[r++];await n(t)}},a=Math.min(t,e.length);await Promise.all(Array.from({length:a},i))}var JT=class{entries=new Map;flight=new RT;seeded=new Map;speedRings=new Map;speedFlight=new RT;maxEntries;staleAgeMs;hits=0;misses=0;sweeps=0;seeds=0;sweepTimer=null;constructor(e={}){this.maxEntries=e.maxEntries??256,this.staleAgeMs=e.staleAgeMs??864e5;let t=e.sweepIntervalMs??3e5;t>0&&(this.sweepTimer=setInterval(()=>this.sweepStale(),t),this.sweepTimer.unref())}getStats(){return{size:this.entries.size,hits:this.hits,misses:this.misses,sweeps:this.sweeps,seeds:this.seeds}}async getUsageInfo(e,t){let n=await this.ingest(e,t?.transcript_path);if(n.kind===`failed`)return n;let r=n.kind===`ok`?n.value.sessionInfo:VT,i=t?.cost?.total_cost_usd??null;return X({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e){let t=HT(new Date);try{await this.ensureSeeded(t)}catch(e){return Q(`usage seed: ${e instanceof Error?e.message:String(e)}`)}let n=await this.ingest(e?.session_id??``,e?.transcript_path);if(n.kind===`failed`)return n;let r={...BT},i=!1;for(let e of this.entries.values()){i||=e.days.has(t);let n=e.days.get(t)??BT;r.cost+=n.cost,r.input+=n.input,r.output+=n.output,r.cacheCreation+=n.cacheCreation,r.cacheRead+=n.cacheRead}return i?X({cost:r.cost,tokens:r.input+r.output+r.cacheCreation+r.cacheRead,tokenBreakdown:{input:r.input,output:r.output,cacheCreation:r.cacheCreation,cacheRead:r.cacheRead},date:t}):Z}async observeSpeed(e,t,n){let r=hT(t);return this.speedFlight.run(`${e}:${r}`,async()=>{let i=await this.ingest(e,t,r);if(i.kind===`failed`)return i;let a=zT(i.kind===`ok`?i.value.sessionInfo.tokenBreakdown:null,n),o=this.speedRings.get(e)??[],s;for(let e of o)e.atMs<a.atMs&&(s===void 0||e.atMs>s.atMs)&&(s=e);return o.push(a),o.sort((e,t)=>e.atMs-t.atMs),o.length>64&&o.shift(),this.speedRings.set(e,o),X({...s!==void 0&&{prev:s},cur:a,samples:[...o]})})}async ingest(e,t,n){if(!e)return Z;let r=n??hT(t),i=this.entries.get(e);if(i&&r!==0&&i.transcriptMtime===r)return i.lastSeenAt=Date.now(),this.entries.delete(e),this.entries.set(e,i),this.hits++,X(i);if(!t)return i?X(i):Z;this.misses++;let a;try{a=await this.flight.run(`${e}:${r}`,()=>this.refold(e,t,this.entries.get(e)))}catch(t){return Q(`usage refold (${e}): ${t instanceof Error?t.message:String(t)}`)}if(a.kind!==`ok`)return a;let o={files:a.value.files,sessionInfo:a.value.sessionInfo,days:a.value.days,transcriptMtime:a.value.mainMtime,transcriptPath:t,lastSeenAt:Date.now()};return this.entries.delete(e),this.entries.set(e,o),this.evictIfNeeded(),X(o)}async refold(e,t,n){let r=await kT(e,u(t),n===void 0?void 0:new Set(n.files.keys())),i=new Map,a=0;for(let e of[t,...r]){let r=n?.files.get(e),o=await IT(e,r?.cursor);if(o.kind===`failed`)return o;if(o.kind===`absent`){r&&i.set(e,r);continue}let{entries:s,cursor:c,reset:l}=o.value;i.set(e,await GT(r,l,s,c)),e===t&&(a=c.mtimeMs)}return X({files:i,...KT(i),mainMtime:a})}ensureSeeded(e){let t=this.seeded.get(e);if(t)return t;this.seeded.clear();let n=this.seed(e);return this.seeded.set(e,n),n.catch(()=>{this.seeded.get(e)===n&&this.seeded.delete(e)}),n}async seed(e){let t=UT(),n=await OT(DT()),r=[];for(let e of n){let n;try{n=await vT(e)}catch{continue}for(let i of n){if(!i.endsWith(`.jsonl`))continue;let n=d(e,i),a;try{a=(await bT(n)).mtimeMs}catch{continue}a<t||r.push({sessionId:i.slice(0,-6),path:n,mtime:a})}}await qT(r,8,async e=>{let t=await this.ingest(e.sessionId,e.path,e.mtime);t.kind===`failed`&&Y(`warn`,`usageStore seed: ${t.reason}`)}),this.seeds++,Y(`info`,`usageStore seed sessions=${r.length}`)}sweepStale(){let e=Date.now(),t=0;for(let[n,r]of this.entries)e-r.lastSeenAt>this.staleAgeMs&&(this.entries.delete(n),this.speedRings.delete(n),t++);return t>0&&(this.sweeps++,Y(`info`,`usageStore sweep dropped=${t}`)),t}evictIfNeeded(){for(;this.entries.size>this.maxEntries;){let e=this.entries.keys().next().value;if(e===void 0)break;this.entries.delete(e),this.speedRings.delete(e),Y(`info`,`usageStore evict ${e}`)}}close(){this.sweepTimer&&=(clearInterval(this.sweepTimer),null),this.entries.clear(),this.seeded.clear(),this.speedRings.clear()}};const YT=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function XT(e){let t;try{t=JSON.parse(e)}catch{return null}let n=t.message?.usage;if(!((n?.cache_read_input_tokens??0)>0||(n?.cache_creation_input_tokens??0)>0))return null;let r=t.timestamp==null?NaN:Date.parse(t.timestamp);return Number.isNaN(r)?null:r}async function ZT(e){let t=await QT(e);return t.kind===`ok`?X(Math.floor((t.value+36e5)/1e3)):t}async function QT(e){for(let t of[65536,1048576]){let n=await ST(e,t);if(n.kind!==`ok`)return n;let r=$T(n.value.buf,n.value.fromStart);if(r!=null)return X(r);if(n.value.fromStart)return Z}return Z}function $T(e,t){let n=e.toString(`utf8`).split(`
|
|
145
|
+
`),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!YT.test(t))continue;let r=XT(t);if(r!=null)return r}return null}function eE(e,t,n){let r=ug(t(`preset`),e.globals.preset,e.presets),i=pg(e,r),a=t(`edit.mode`)===`open`?e.editGlobals:{};return{preset:r,presetCustomized:n(r),theme:py(a.palette,t(`theme`),i.palette),look:ja(a.look,t(`look`),i.look,e.looks),style:Pa(a.style,t(`style`),i.style),progression:Ka(a.progression,t(`progression`),i.progression),separator:a.default_separator??i.default_separator,autoWrap:$a(a.autoWrap,t(`autoWrap`),i.autoWrap),padding:eo(a.padding,t(`padding`),i.padding),charset:Ra(a.charset,t(`charset`),i.charset),updateNotice:a.updateNotice??i.updateNotice??!0,colorCompatibility:Ha(a.colorCompatibility,t(`colorCompatibility`),i.colorCompatibility)}}function tE(e){return{preset:{effective:e.preset,customized:e.presetCustomized},style:{effective:e.style},progression:{effective:e.progression},charset:{effective:e.charset},colorCompatibility:{effective:e.colorCompatibility},autoWrap:{effective:e.autoWrap},padding:{effective:e.padding}}}const nE=10*1e3;function rE(e,t,n,r){let i=n-(t*1e3-r);if(i<3e5||e<=0)return;let a=e/i,o=(100-e)/a;return Math.max(0,Math.round(o/6e4))}function iE(e,t){if(!(t<60))return e*3600/t}function aE(e,t,n,r){let i=r-t;if(i<50||i>nE)return;let a=n-e;if(!(a<=0))return a*1e3/i}function oE(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=aE(t.input,t.atMs,n.input,n.atMs),i=aE(t.output,t.atMs,n.output,n.atMs),a=aE(t.total,t.atMs,n.total,n.atMs);if(!(r===void 0&&i===void 0&&a===void 0))return{...r!==void 0&&{input:r},...i!==void 0&&{output:i},...a!==void 0&&{total:a}}}function sE(e){let{samples:t}=e,n=[];for(let e=1;e<t.length;e++){let r=t[e-1],i=t[e],a=i.atMs-r.atMs;if(a<50||a>nE)continue;let o=aE(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function cE(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function lE(e){let t=[],n=(e,n)=>{try{let e=n();return e===``?void 0:e}catch(n){t.push(`host.${e}: ${String(n)}`);return}},r=n(`name`,()=>cE(f.hostname())),i=n(`user`,()=>f.userInfo().username);return{host:{...r!==void 0&&{name:r},...i!==void 0&&{user:i},...e.ssh!==void 0&&{ssh:e.ssh}},failures:t}}function uE(e,t){let n=new Map;for(let[t,r]of Object.entries(e.variables))n.set(t,r);for(let[t,r]of Object.entries(e.segments))if(r.vars)for(let[e,i]of Object.entries(r.vars))n.set(`${t}.${e}`,i);let r=[],i=new Set;for(let n of Xo(fg(e,t).node)){if(n.when)for(let e of wy(n.when))r.push(e);if(n.kind!==`segment`)continue;let t=e.segments[n.name];if(t){for(let e of[t.template,t.when,t.bg,t.fg])if(e)for(let t of wy(e))r.push(t)}}let a=new Set;for(;r.length>0;){let e=r.pop();for(let t of fE(n,e)){if(i.has(t))continue;i.add(t);let e=n.get(t);if(e){if(e.kind===`input`)a.add(e.path);else if(e.kind===`template`)for(let t of wy(e.template))r.push(t)}}}return a}function dE(e){let t=new Map;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=uE(e,n);return t.set(n,i),i}}function fE(e,t){let n=t;for(;n.length>0;){if(e.has(n))return[n];let t=n.lastIndexOf(`.`);if(t<0)break;n=n.slice(0,t)}let r=`${t}.`,i=[];for(let t of e.keys())t.startsWith(r)&&i.push(t);return i}function pE(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function mE(e){let t=t=>e.has(t),n=t(`git.staged`)||t(`git.unstaged`)||t(`git.untracked`)||t(`git.conflicts`);return{...t(`git.sha`)&&{showSha:!0},...n&&{showWorkingTree:!0},...t(`git.stash`)&&{showStashCount:!0},...t(`git.upstream`)&&{showUpstream:!0},...t(`git.repoName`)&&{showRepoName:!0},...t(`git.repoUrl`)&&{showRepoUrl:!0},...t(`git.operation`)&&{showOperation:!0},...t(`git.timeSinceCommit`)&&{showTimeSinceCommit:!0},...(t(`git.prNumber`)||t(`git.prState`)||t(`git.prUrl`)||t(`git.prError`))&&{showPullRequest:!0}}}async function hE(e,t,n,r,i,a){let o=e=>pE(r,e),s=(t.clock??(()=>new Date))().getTime(),c=(e,t,n)=>t?n().catch(t=>Q(`${e}: ${String(t)}`)):Promise.resolve(Z),[l,u,d,f,p,m,h,g,_]=await Promise.all([c(`git`,o(`git`),()=>t.gitProvider.getGitInfo(n??e.workspace?.current_dir,mE(r),e.workspace?.project_dir)),c(`session`,o(`session.cost`)||o(`session.tokens`)||o(`burn`),()=>t.usageStore.getUsageInfo(e.session_id,e)),c(`today`,o(`today`),()=>t.usageStore.getTodayInfo(e)),c(`context`,o(`context`),()=>t.contextProvider.getContextInfo(e)),c(`metrics`,o(`metrics`)||o(`burn`),()=>t.metricsProvider.getMetricsInfo(e.session_id,e)),c(`activity`,o(`activity`),()=>t.activityProvider.getActivityInfo(e.session_id,e)),c(`tmux`,o(`tmux`),()=>t.tmuxService.getSessionId()),c(`cache`,o(`cache`),()=>ZT(e.transcript_path)),c(`speed`,o(`speed`),()=>t.usageStore.observeSpeed(e.session_id,e.transcript_path,s))]),v=[],y=e=>{if(e.kind===`failed`){v.push(e.reason);return}return e.kind===`ok`?e.value:void 0},b=bE(l);v.push(...b.failures);let x=lE(a);v.push(...x.failures);let S=y(u),C=y(d),ee=y(f),w=y(p),te=y(m),ne=y(h),re=y(g);for(let e of v)t.log(`warn`,`provider fetch failed: ${e}`);let ie=e.rate_limits?.five_hour,T=e.rate_limits?.seven_day,E=ie?rE(ie.used_percentage,ie.resets_at,18e6,s):void 0,ae=T?rE(T.used_percentage,T.resets_at,6048e5,s):void 0,oe=S?.session.cost,se=w?.sessionDuration,ce=o(`burn`)&&oe!=null&&se!=null?iE(oe,se):void 0,le=y(_),ue=le===void 0?void 0:oE(le),de=le===void 0?void 0:sE(le),fe=ue!==void 0||de!==void 0?{...ue,...de!==void 0&&{history:de}}:void 0,pe=yE(process.env.HOME??process.env.USERPROFILE),me=e.workspace?{...e.workspace,current_dir:yE(e.workspace.current_dir)??``,project_dir:yE(e.workspace.project_dir)??``}:e.workspace,he=S===void 0?void 0:vE({cost:S.session.cost,tokens:S.session.tokens}),D=C===void 0?void 0:{cost:C.cost,tokens:C.tokens},ge=w===void 0?void 0:vE({lastResponseTime:w.lastResponseTime,responseTime:w.responseTime,sessionDuration:w.sessionDuration,messageCount:w.messageCount,linesAdded:w.linesAdded,linesRemoved:w.linesRemoved}),_e=te===void 0?void 0:gE(te);return{...e,...me!==void 0&&{workspace:me},...pe!==void 0&&{home:pe},...b.git!==void 0&&{git:b.git},...ne!==void 0&&{tmux:{session:ne}},host:x.host,...tE(i),...he!==void 0&&{session:he},...D!==void 0&&{today:D},...ce!==void 0&&{burn:{costPerHour:ce}},...fe!==void 0&&{speed:fe},...o(`block`)&&ie!==void 0&&{block:{nativeUtilization:ie.used_percentage,resetsAt:ie.resets_at,...E!==void 0&&{etaMinutes:E}}},...T!==void 0&&{weekly:{percentage:T.used_percentage,resetsAt:T.resets_at,...ae!==void 0&&{etaMinutes:ae}}},...re!==void 0&&{cache:{expiresAt:re}},...ee!==void 0&&{context:{totalTokens:ee.totalTokens,contextLeft:ee.contextLeftPercentage}},...ge!==void 0&&{metrics:ge},..._e!==void 0&&{activity:_e}}}function gE(e){let t=e.todos.findIndex(e=>e.active),n=e.todos.length===0?void 0:{total:e.todos.length,completed:e.todos.filter(e=>e.done).length,...t>=0&&{position:t+1,active:e.todos[t].text}},r=_E(e.running),i=_E(e.done),a=r===void 0&&i===void 0?void 0:{...r!==void 0&&{running:r},...i!==void 0&&{done:i}};if(!(e.command===null&&n===void 0&&a===void 0))return{...e.command!==null&&{command:e.command},...n!==void 0&&{todo:n},...a!==void 0&&{tool:a}}}function _E(e){return e.length===0?void 0:e.map(e=>`${e.name}:${e.count}`).join(`,`)}function vE(e){let t={},n=!1;for(let r of Object.keys(e)){let i=e[r];i!=null&&(t[r]=i,n=!0)}return n?t:void 0}function yE(e){return e===void 0||e.length===0||c.sep!==`\\`?e:e.replace(/\\/g,`/`)}function bE(e){if(e.kind===`absent`)return{failures:[]};if(e.kind===`failed`)return{failures:[e.reason]};let t=e.value,n=[],r=(e,t)=>{if(!(t===void 0||t.kind===`absent`)){if(t.kind===`failed`){n.push(`git.${e}: ${t.reason}`);return}return t.value}},i=r(`aheadBehind`,t.aheadBehind),a=r(`sha`,t.sha),o=r(`operation`,t.operation),s=r(`timeSinceCommit`,t.timeSinceCommit),c=r(`stash`,t.stashCount),l=r(`upstream`,t.upstream),u=r(`repoName`,t.repoName),d=r(`repoUrl`,t.repoUrl),f=t.pullRequest,p={};return f?.kind===`ok`?(p.prNumber=f.value.number,p.prState=f.value.state,p.prUrl=f.value.url):f?.kind===`failed`&&(n.push(`git.pr: ${f.reason}`),p.prError=f.reason),{git:{branch:t.branch,status:t.status,...i!==void 0&&{ahead:i.ahead,behind:i.behind},...t.workingTree!==void 0&&{staged:t.workingTree.staged,unstaged:t.workingTree.unstaged,untracked:t.workingTree.untracked,conflicts:t.workingTree.conflicts},...a!==void 0&&{sha:a},...o!==void 0&&{operation:o},...s!==void 0&&{timeSinceCommit:s},...c!==void 0&&{stash:c},...l!==void 0&&{upstream:l},...u!==void 0&&{repoName:u},...d!==void 0&&{repoUrl:d},...p},failures:n}}const xE=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,SE=`{{ \$dir := .current_dir }}{{ if and (ne .home "") (or (eq .home .current_dir) (hasPrefix (printf "%s/" .home) .current_dir)) }}{{ \$dir = printf "~%s" (trimPrefix .home .current_dir) }}{{ else }}{{ if or (eq .project_dir .current_dir) (hasPrefix (printf "%s/" .project_dir) .current_dir) }}{{ $dir = ternary (${xE}) (basename .project_dir) (ne (${xE}) "") }}{{ end }}{{ end }}{{ abbreviatePath \$dir }}`,CE={branch:`primary`,staged:`success`,unstaged:`warning`,untracked:`accent`,conflicts:`error`,dirty:`warning`,clean:`success`,ahead:`success`,behind:`warning`,stash:`accent`},wE=(e,t)=>`{{ fg (readableOn (color "${e}") (bgOf) ${Qi}) ${t} }}`,TE=(e,t)=>wE(CE[e],t),EE=`{{ readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3 }}`,DE=`{{ if or (gt .git.staged 0) (gt .git.unstaged 0) (gt .git.untracked 0) (gt .git.conflicts 0) }} ({{ \$first := true }}{{ if gt .git.staged 0 }}${TE(`staged`,`(printf "+%v" .git.staged)`)}{{ $first = false }}{{ end }}{{ if gt .git.unstaged 0 }}{{ if not $first }} {{ end }}${TE(`unstaged`,`(printf "~%v" .git.unstaged)`)}{{ $first = false }}{{ end }}{{ if gt .git.untracked 0 }}{{ if not $first }} {{ end }}${TE(`untracked`,`(printf "?%v" .git.untracked)`)}{{ $first = false }}{{ end }}{{ if gt .git.conflicts 0 }}{{ if not $first }} {{ end }}${TE(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ $first = false }}{{ end }}){{ end }}`,OE=`{{ if eq .git.status "conflicts" }}${TE(`conflicts`,`"⚠"`)}{{ else }}{{ if eq .git.status "dirty" }}${TE(`dirty`,`"●"`)}{{ else }}${TE(`clean`,`"✓"`)}{{ end }}{{ end }}`,kE=`{{ if ne .git.repoName "" }}{{ .git.repoName }} {{ end }}⎇ ${TE(`branch`,`.git.branch`)}{{ if .git.sha }} ♯ {{ .git.sha }}{{ end }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${TE(`ahead`,`(printf "↑%v" .git.ahead)`)}{{ end }}{{ if gt .git.behind 0 }}${TE(`behind`,`(printf "↓%v" .git.behind)`)}{{ end }}{{ end }}`+DE+`{{ if .git.upstream }} →{{ .git.upstream }}{{ end }}{{ if gt .git.stash 0 }} ${TE(`stash`,`(printf "⧇ %v" .git.stash)`)}{{ end }} `+OE,AE={globals:{palette:`tokyo-night`},variables:{current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},transcript_path:{kind:`input`,path:`transcript_path`,default:``},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},"session.id":{kind:`input`,path:`session_id`,default:``},version:{kind:`input`,path:`version`,default:``},"theme.effective":{kind:`input`,path:`theme.effective`,default:``},"look.effective":{kind:`input`,path:`look.effective`,default:``},"preset.effective":{kind:`input`,path:`preset.effective`,default:``},"preset.customized":{kind:`input`,path:`preset.customized`,type:`boolean`,default:!1},"style.effective":{kind:`input`,path:`style.effective`,default:``},"progression.effective":{kind:`input`,path:`progression.effective`,default:``},"charset.effective":{kind:`input`,path:`charset.effective`,default:``},"colorCompatibility.effective":{kind:`input`,path:`colorCompatibility.effective`,default:``},"autoWrap.effective":{kind:`input`,path:`autoWrap.effective`,type:`boolean`,default:!0},"padding.effective":{kind:`input`,path:`padding.effective`,type:`number`,default:1},"term.cols":{kind:`input`,path:`term.cols`,type:`number`,default:80},home:{kind:`input`,path:`home`,default:``},"tmux.session":{kind:`input`,path:`tmux.session`,default:``},"host.name":{kind:`input`,path:`host.name`,default:``},"host.user":{kind:`input`,path:`host.user`,default:``},"host.ssh":{kind:`input`,path:`host.ssh`,type:`boolean`,default:!1},"git.repoName":{kind:`input`,path:`git.repoName`,default:``},"git.repoUrl":{kind:`input`,path:`git.repoUrl`,default:``},"git.branch":{kind:`input`,path:`git.branch`,default:``},"git.sha":{kind:`input`,path:`git.sha`,default:``},"git.ahead":{kind:`input`,path:`git.ahead`,type:`number`,default:0},"git.behind":{kind:`input`,path:`git.behind`,type:`number`,default:0},"git.staged":{kind:`input`,path:`git.staged`,type:`number`,default:0},"git.unstaged":{kind:`input`,path:`git.unstaged`,type:`number`,default:0},"git.untracked":{kind:`input`,path:`git.untracked`,type:`number`,default:0},"git.conflicts":{kind:`input`,path:`git.conflicts`,type:`number`,default:0},"git.upstream":{kind:`input`,path:`git.upstream`,default:``},"git.stash":{kind:`input`,path:`git.stash`,type:`number`,default:0},"git.status":{kind:`input`,path:`git.status`,default:`clean`},"git.operation":{kind:`input`,path:`git.operation`,default:``},"git.timeSinceCommit":{kind:`input`,path:`git.timeSinceCommit`,type:`number`,default:0},"git.prNumber":{kind:`input`,path:`git.prNumber`,type:`number`,default:0},"git.prState":{kind:`input`,path:`git.prState`,default:``},"git.prUrl":{kind:`input`,path:`git.prUrl`,default:``},"git.prError":{kind:`input`,path:`git.prError`,default:``},"cache.expiresAt":{kind:`input`,path:`cache.expiresAt`,type:`number`,default:0},"session.cost":{kind:`input`,path:`session.cost`,type:`number`,default:0},"session.tokens":{kind:`input`,path:`session.tokens`,type:`number`,default:0},"session.budget.amount":{kind:`literal`,value:0},"session.budget.warningThreshold":{kind:`literal`,value:80},"today.cost":{kind:`input`,path:`today.cost`,type:`number`,default:0},"today.tokens":{kind:`input`,path:`today.tokens`,type:`number`,default:0},"today.budget.amount":{kind:`literal`,value:50},"today.budget.warningThreshold":{kind:`literal`,value:80},"block.nativeUtilization":{kind:`input`,path:`block.nativeUtilization`,type:`number`,default:0},"block.resetsAt":{kind:`input`,path:`block.resetsAt`,type:`number`,default:0},"block.budget.warningThreshold":{kind:`literal`,value:80},"block.budget.heatThreshold":{kind:`literal`,value:50},"weekly.percentage":{kind:`input`,path:`weekly.percentage`,type:`number`,default:0},"weekly.resetsAt":{kind:`input`,path:`weekly.resetsAt`,type:`number`,default:0},"weekly.budget.warningThreshold":{kind:`literal`,value:80},"weekly.budget.heatThreshold":{kind:`literal`,value:50},"burn.costPerHour":{kind:`input`,path:`burn.costPerHour`,type:`number`,default:-1},"block.etaMinutes":{kind:`input`,path:`block.etaMinutes`,type:`number`,default:-1},"weekly.etaMinutes":{kind:`input`,path:`weekly.etaMinutes`,type:`number`,default:-1},"burn.eta.warnMinutes":{kind:`literal`,value:60},"burn.eta.errorMinutes":{kind:`literal`,value:30},"speed.input":{kind:`input`,path:`speed.input`,type:`number`,default:-1},"speed.output":{kind:`input`,path:`speed.output`,type:`number`,default:-1},"speed.total":{kind:`input`,path:`speed.total`,type:`number`,default:-1},"speed.history":{kind:`input`,path:`speed.history`,type:`string`,default:``},"context.totalTokens":{kind:`input`,path:`context.totalTokens`,type:`number`,default:0},"context.contextLeft":{kind:`input`,path:`context.contextLeft`,type:`number`,default:100},"metrics.lastResponseTime":{kind:`input`,path:`metrics.lastResponseTime`,type:`number`,default:0},"metrics.responseTime":{kind:`input`,path:`metrics.responseTime`,type:`number`,default:0},"metrics.sessionDuration":{kind:`input`,path:`metrics.sessionDuration`,type:`number`,default:0},"metrics.messageCount":{kind:`input`,path:`metrics.messageCount`,type:`number`,default:0},"metrics.linesAdded":{kind:`input`,path:`metrics.linesAdded`,type:`number`,default:0},"metrics.linesRemoved":{kind:`input`,path:`metrics.linesRemoved`,type:`number`,default:0},"activity.command":{kind:`input`,path:`activity.command`,type:`string`,default:``},"activity.todo.total":{kind:`input`,path:`activity.todo.total`,type:`number`,default:0},"activity.todo.completed":{kind:`input`,path:`activity.todo.completed`,type:`number`,default:0},"activity.todo.position":{kind:`input`,path:`activity.todo.position`,type:`number`,default:0},"activity.todo.active":{kind:`input`,path:`activity.todo.active`,type:`string`,default:``},"activity.tool.running":{kind:`input`,path:`activity.tool.running`,type:`string`,default:``},"activity.tool.done":{kind:`input`,path:`activity.tool.done`,type:`string`,default:``}},segments:{directory:{description:"The current directory, shortened fish-style — `~` under home, project-relative inside the project.",template:SE},model:{description:`The active model's display name.`,template:`✱ {{ formatModelName .model.display_name }}`,when:`{{ ne .model.display_name "" }}`},sessionId:{description:`The session id, truncated to 8 characters.`,template:`⌗{{ trunc 8 .session.id }}`,when:`{{ ne .session.id "" }}`},version:{description:`The Claude Code version reported in the hook payload.`,template:`◈ v{{ .version }}`,when:`{{ ne .version "" }}`},tmux:{description:`The tmux session name; hidden when not inside tmux.`,template:`tmux:{{ .tmux.session | default "none" }}`,when:`{{ ne .tmux.session "" }}`},host:{description:`user@host on a warning background, shown only over SSH.`,template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,when:`{{ .host.ssh }}`},git:{description:`Branch, sha, ahead/behind, staged/unstaged/untracked/conflict counts, upstream, stash count, and a clean/dirty/conflict glyph.`,template:kE,fg:EE,when:`{{ ne .git.branch "" }}`},gitaculous:{description:`The same git state in asyncgit's compact spelling: repo, in-progress operation, sha, S/U/? flags, branch, upstream ±, stash count, and time since the last commit.`,template:`(git){{ if ne .git.repoName "" }} {{ .git.repoName }}{{ end }}{{ if ne .git.operation "" }} [{{ .git.operation }}]{{ end }}{{ if ne .git.sha "" }} {{ .git.sha }}{{ end }}{{ if or (gt .git.staged 0) (gt .git.unstaged 0) (gt .git.untracked 0) (gt .git.conflicts 0) }} {{ if gt .git.staged 0 }}${TE(`staged`,`"S"`)}{{ end }}{{ if gt .git.unstaged 0 }}${TE(`unstaged`,`"U"`)}{{ end }}{{ if gt .git.untracked 0 }}${TE(`untracked`,`"?"`)}{{ end }}{{ if gt .git.conflicts 0 }}${TE(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ end }}{{ end }} ⎇ ${TE(`branch`,`.git.branch`)}{{ if ne .git.upstream "" }} [{{ .git.upstream }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${TE(`ahead`,`(printf "+%v" .git.ahead)`)}{{ end }}{{ if and (gt .git.ahead 0) (gt .git.behind 0) }}/{{ end }}{{ if gt .git.behind 0 }}${TE(`behind`,`(printf "-%v" .git.behind)`)}{{ end }}{{ end }}]{{ end }}{{ if gt .git.stash 0 }} ${TE(`stash`,`(printf "(%v stashed)" .git.stash)`)}{{ end }}{{ if gt .git.timeSinceCommit 0 }} ◷ {{ template "formatTimeSince" .git.timeSinceCommit }}{{ end }}`,fg:EE,when:`{{ ne .git.branch "" }}`},gitPr:{description:"The pull request open for this branch, as a link; `⚠ PR` when the forge lookup failed.",template:`{{ if ne .git.prUrl "" }}{{ link .git.prUrl (printf "⇆ #%v" .git.prNumber) }}{{ else }}⚠ PR{{ end }}`,when:`{{ or (ne .git.prUrl "") (ne .git.prError "") }}`},toolbar:{description:`Quick actions: copy the session id, and open the project, transcript or repo.`,template:r_(``).template},themeSwitcher:{description:"`◀ <theme> ▶`: the theme the bar is wearing; ◀ and ▶ switch this session to the previous or next theme, wrapping at the ends.",template:`{{ carousel "stepTheme" 0 }}`},session:{description:`This session's cost and token total, with a budget warning once a budget is configured.`,template:`§ {{ template "formatCost" .session.cost }} ({{ template "formatTokens" .session.tokens }}){{ template "budgetStatus" (dict "cost" .session.cost "budget" .session.budget.amount "warn" .session.budget.warningThreshold) }}`},today:{description:`Today's cost and tokens across every session, with a budget warning once a budget is configured.`,template:`☉ {{ template "formatCost" .today.cost }} ({{ template "formatTokens" .today.tokens }}){{ template "budgetStatus" (dict "cost" .today.cost "budget" .today.budget.amount "warn" .today.budget.warningThreshold) }}`},block:{description:`The 5-hour rate-limit block: percent used and time to reset, heating to warning then error.`,template:`◱ {{ round .block.nativeUtilization }}% ({{ template "formatResetCountdown" .block.resetsAt }})`,bg:`{{ ramp (round .block.nativeUtilization) "step" 0 (tint) .block.budget.heatThreshold "warning" .block.budget.warningThreshold "error" }}`,when:`{{ gt .block.resetsAt 0 }}`},weekly:{description:`The weekly rate-limit quota: percent used and time to reset, heating to warning then error.`,template:`◑ {{ round .weekly.percentage }}% ({{ template "formatResetCountdown" .weekly.resetsAt }})`,bg:`{{ ramp (round .weekly.percentage) "step" 0 (tint) .weekly.budget.heatThreshold "warning" .weekly.budget.warningThreshold "error" }}`,when:`{{ gt .weekly.resetsAt 0 }}`},burnrate:{description:`Spend per hour, with the projected time to the 5-hour and weekly limits.`,template:`⚡ {{ template "formatRate" .burn.costPerHour }} · {{ template "formatEta" .block.etaMinutes }} to 5h · {{ template "formatEta" .weekly.etaMinutes }} to wk`,bg:`{{ ramp .block.etaMinutes "step" -1 (tint) 0 "error" .burn.eta.errorMinutes "warning" .burn.eta.warnMinutes (tint) }}`,when:`{{ or (gt .block.resetsAt 0) (gt .weekly.resetsAt 0) }}`},speed:{description:`Token throughput for the latest exchange: output, input, and total.`,template:`⇅ out {{ template "formatSpeed" .speed.output }} · in {{ template "formatSpeed" .speed.input }} · tot {{ template "formatSpeed" .speed.total }}`,when:`{{ gt .session.tokens 0 }}`},tokenSparkline:{description:`A sparkline of recent token throughput.`,template:`⚡ {{ sparkline .speed.history 24 }}`,when:`{{ ne .speed.history "" }}`},cacheTimer:{description:"Minutes until the prompt cache expires, or `cold` once it has.",template:`◴ {{ if le (minutesUntilReset .cache.expiresAt) 0 }}cold{{ else }}{{ minutesUntilReset .cache.expiresAt }}m{{ end }}`,fg:`{{ readableOn (color (cascade (minutesUntilReset .cache.expiresAt) "0:error" "9:warning" "21:foreground")) (bgOf) ${Qi} }}`,when:`{{ gt .cache.expiresAt 0 }}`},context:{description:`Context used, in tokens and percent remaining, heating as it fills.`,template:`◔ {{ formatInteger .context.totalTokens }} ({{ .context.contextLeft }}%)`,bg:`{{ ramp .context.contextLeft "step" 0 "error" 21 "warning" 41 (tint) }}`,when:`{{ gt .context.totalTokens 0 }}`},metrics:{description:`Response times, session duration, message count, and lines added/removed.`,template:`{{ if .metrics.lastResponseTime }} Δ {{ template "formatResponseTime" .metrics.lastResponseTime }}{{ end }}{{ if .metrics.responseTime }} ⧖ {{ template "formatResponseTime" .metrics.responseTime }}{{ end }}{{ if .metrics.sessionDuration }} ⧗ {{ template "formatDuration" .metrics.sessionDuration }}{{ end }}{{ if .metrics.messageCount }} ◆ {{ .metrics.messageCount }}{{ end }}{{ if .metrics.linesAdded }} + {{ .metrics.linesAdded }}{{ end }}{{ if .metrics.linesRemoved }} - {{ .metrics.linesRemoved }}{{ end }} `,when:`{{ or (gt .metrics.lastResponseTime 0.0) (gt .metrics.responseTime 0.0) (gt .metrics.sessionDuration 0.0) (gt .metrics.messageCount 0) (gt .metrics.linesAdded 0) (gt .metrics.linesRemoved 0) }}`},activity:{description:`What Claude is doing: the slash command that opened the turn, the in-progress todo, and the tools in flight.`,template:`{{ if .activity.command }} ⌘ {{ .activity.command }}{{ end }}{{ if .activity.todo.total }}{{ if .activity.todo.active }} ☐ {{ .activity.todo.position }}/{{ .activity.todo.total }} {{ abbrev 32 .activity.todo.active }}{{ else }} ☑ {{ .activity.todo.completed }}/{{ .activity.todo.total }}{{ end }}{{ end }}{{ if .activity.tool.running }} ⟳ {{ template "formatToolTally" .activity.tool.running }}{{ end }}{{ if .activity.tool.done }} ✓ {{ template "formatToolTally" .activity.tool.done }}{{ end }} `,when:`{{ or (ne .activity.command "") (gt .activity.todo.total 0) (ne .activity.tool.running "") (ne .activity.tool.done "") }}`}},root:{rows:{identity:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`}]},status:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`activity`}]}}},actions:{...r_(``).actions,copyDir:{copy:`{{ .current_dir }}`},stepTheme:{set:`theme`,from:`themes`}},looks:{none:{hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:0},vivid:{hueShift:0,chromaScale:1.35,lightnessScale:1,lightnessShift:0},muted:{hueShift:0,chromaScale:.55,lightnessScale:1,lightnessShift:0},dim:{hueShift:0,chromaScale:1,lightnessScale:.85,lightnessShift:0},bright:{hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:.08},inverted:{hueShift:0,chromaScale:1,lightnessScale:-1,lightnessShift:1}},presets:{default:{},compact:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`git`},{kind:`segment`,name:`context`}]},globals:{padding:0}},verbose:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}}},editGlobals:{style:`plain`,default_separator:` | `},helpers:{formatCost:'{{ if lt . 0.01 }}<$0.01{{ else }}${{ printf "%.2f" . }}{{ end }}',formatTokenCount:`{{ if ge . 1000000 }}{{ printf "%.1f" (divf . 1000000) }}M{{ else if ge . 1000 }}{{ printf "%.1f" (divf . 1000) }}K{{ else }}{{ . }}{{ end }}`,formatTokens:`{{ template "formatTokenCount" . }} tokens`,formatToolTally:`{{ $names := splitList "," . }}{{ range $i, $pair := $names }}{{ if lt $i 2 }}{{ if $i }} {{ end }}{{ $kv := splitList ":" $pair }}{{ index $kv 0 }}{{ if ne (index $kv 1) "1" }}×{{ index $kv 1 }}{{ end }}{{ end }}{{ end }}{{ if gt (len $names) 2 }} +{{ sub (len $names) 2 }}{{ end }}`,formatRate:`{{ if lt . 0 }}—/hr{{ else }}{{ template "formatCost" . }}/hr{{ end }}`,formatEta:`{{ if lt . 0 }}—{{ else }}{{ template "formatLongTimeRemaining" . }}{{ end }}`,formatSpeed:`{{ if lt . 0 }}—{{ else }}{{ template "formatTokenCount" (round .) }}/s{{ end }}`,formatTokenBreakdown:`{{ $first := true }}{{ if gt .input 0 }}{{ template "formatTokenCount" .input }} in{{ $first = false }}{{ end }}{{ if gt .output 0 }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" .output }} out{{ $first = false }}{{ end }}{{ if or (gt .cacheCreation 0) (gt .cacheRead 0) }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" (add .cacheCreation .cacheRead) }} cached{{ $first = false }}{{ end }}{{ if $first }}0 tokens{{ end }}`,budgetStatus:`{{ if or (le .budget 0) (lt .cost 0) }}{{ else }}{{ $pct := minf 100 (mulf (divf .cost .budget) 100) }}{{ $p := printf "%.0f%%" $pct }}{{ if ge $pct .warn }} !{{ $p }}{{ else }}{{ if ge $pct 50 }} +{{ $p }}{{ else }} {{ $p }}{{ end }}{{ end }}{{ end }}`,formatTimeSince:`{{ if lt . 60 }}{{ . }}s{{ else if lt . 3600 }}{{ div . 60 }}m{{ else if lt . 86400 }}{{ div . 3600 }}h{{ else if lt . 604800 }}{{ div . 86400 }}d{{ else }}{{ div . 604800 }}w{{ end }}`,formatDuration:`{{ if lt . 60 }}{{ printf "%.0f" . }}s{{ else if lt . 3600 }}{{ printf "%.0f" (divf . 60) }}m{{ else if lt . 86400 }}{{ printf "%.1f" (divf . 3600) }}h{{ else }}{{ printf "%.1f" (divf . 86400) }}d{{ end }}`,formatResponseTime:`{{ if lt . 60 }}{{ printf "%.1f" . }}s{{ else }}{{ printf "%.1f" (divf . 60) }}m{{ end }}`,formatLongTimeRemaining:`{{ if ge . 1440 }}{{ $d := div . 1440 }}{{ $h := div (mod . 1440) 60 }}{{ if gt $h 0 }}{{ $d }}d {{ $h }}h{{ else }}{{ $d }}d{{ end }}{{ else if ge . 60 }}{{ $h := div . 60 }}{{ $m := mod . 60 }}{{ if gt $m 0 }}{{ $h }}h {{ $m }}m{{ else }}{{ $h }}h{{ end }}{{ else }}{{ . }}m{{ end }}`,formatResetCountdown:`{{ template "formatLongTimeRemaining" (add 1 (minutesUntilReset .)) }}`}},jE=new Set([AE.globals.palette,...Object.values(AE.segments).map(e=>e.palette)].filter(e=>e!==void 0)),ME=Us(sb(`<default>`,JSON.stringify(AE),jE),AE);var NE=pe((e=>{function t(e){var t=[...arguments].slice(1);throw Error(typeof e==`number`?`[MobX] minified error nr: `+e+(t.length?` `+t.map(String).join(`,`):``)+`. Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts`:`[MobX] `+e)}function n(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:nn}function r(){P||t(`Proxy not available`)}function i(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}function a(e){return typeof e==`function`}function o(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function s(e){return typeof e==`object`&&!!e}function c(e){if(!s(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===ln}function l(e){var t=e?.constructor;return!!t&&(t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`)}function u(e,t,n){an(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function d(e,t,n){an(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function f(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return s(e)&&!0===e[n]}}function p(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function m(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function h(e){return e===null?null:typeof e==`object`?``+e:e}function g(e,t){return on.hasOwnProperty.call(e,t)}function _(e,t){return!!(e&t)}function v(e,t,n){return n?e|=t:e&=~t,e}function y(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n){if(ne())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&re(i,n.prototype),i}function x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,ie(r.key),r)}}function S(e,t,n){return t&&x(e.prototype,t),n&&x(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function C(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if(typeof e==`string`)return y(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
146
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(){return(ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function te(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,re(e,t)}function ne(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch{}return(ne=function(){return!!e})()}function re(e,t){return(re=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ie(e){var t=function(e){if(typeof e!=`object`||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var n=t.call(e,`string`);if(typeof n!=`object`)return n;throw TypeError(`@@toPrimitive must return a primitive value.`)}return String(e)}(e);return typeof t==`symbol`?t:t+``}function T(e){var t=typeof Map==`function`?new Map:void 0;return(T=function(e){function n(){return b(e,arguments,w(this).constructor)}if(e===null||!function(e){try{return Function.toString.call(e).indexOf(`[native code]`)!==-1}catch{return typeof e==`function`}}(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),re(n,e)})(e)}function E(e){return Object.assign((function(t,n){if(oe(n))return e.t(t,n);ae(t,n,e)}),e)}function ae(e,t,n){g(e,mn)||u(e,mn,ee({},e[mn])),function(e){return e.i===`override`}(n)||(e[mn][t]=n)}function oe(e){return typeof e==`object`&&typeof e.kind==`string`}function se(e,t,n){t===void 0&&(t=un),n===void 0&&(n=un);var r=new hn(e);return t!==un&&dt(r,t),n!==un&&ft(r,n),r}function ce(e,t,n){return xt(e)?e:Array.isArray(e)?En.array(e,{name:n}):c(e)?En.object(e,void 0,{name:n}):p(e)?En.map(e,{name:n}):m(e)?En.set(e,{name:n}):typeof e!=`function`||ct(e)||vt(e)?e:l(e)?rr(e):Zn(n,e)}function le(e){return e}function ue(e,t){return{i:e,u:t,o:de,s:fe,t:pe}}function de(e,t,n,r){var i;return(i=this.u)!=null&&i.bound?this.s(e,t,n,!1)===null?0:1:r===e.h?this.s(e,t,n,!1)===null?0:2:ct(n.value)?1:(an(r,t,me(e,this,t,n,!1)),2)}function fe(e,t,n,r){var i=me(e,this,t,n);return e.l(t,i,r)}function pe(e,n){var r,i=n.kind,a=n.name,o=n.addInitializer,s=this,c=function(e){var t;return Ne(s.u?.name??a.toString(),e,(t=s.u?.autoAction)!=null&&t)};return i==`field`?function(e){var t,n=e;return ct(n)||(n=c(n)),(t=s.u)!=null&&t.bound&&((n=n.bind(this)).isMobxAction=!0),n}:i==`method`?(ct(e)||(e=c(e)),(r=this.u)!=null&&r.bound&&o((function(){var e=this[a].bind(this);e.isMobxAction=!0,this[a]=e})),e):void t(`Cannot apply '`+s.i+`' to '`+String(a)+`' (kind: `+i+`):
|
|
147
|
+
'`+s.i+`' can only be used on properties with a function value.`)}function me(e,t,n,r,i){var a,o,s;i===void 0&&(i=z.safeDescriptors);var c=r.value;return(a=t.u)!=null&&a.bound&&(c=c.bind(e.v??e.h)),{value:Ne(t.u?.name??n.toString(),c,(o=t.u?.autoAction)!=null&&o,(s=t.u)!=null&&s.bound?e.v??e.h:void 0),configurable:!i||e.p,enumerable:!1,writable:!i}}function he(e,t){return{i:e,u:t,o:D,s:ge,t:_e}}function D(e,t,n,r){var i;return r===e.h?this.s(e,t,n,!1)===null?0:2:(i=this.u)!=null&&i.bound&&(!g(e.h,t)||!vt(e.h[t]))&&this.s(e,t,n,!1)===null?0:vt(n.value)?1:(an(r,t,ve(e,0,0,n,!1,!1)),2)}function ge(e,t,n,r){var i=ve(e,0,0,n,this.u?.bound);return e.l(t,i,r)}function _e(e,t){var n,r=t.name,i=t.addInitializer;return vt(e)||(e=rr(e)),(n=this.u)!=null&&n.bound&&i((function(){var e=this[r].bind(this);e.isMobXFlow=!0,this[r]=e})),e}function ve(e,t,n,r,i,a){a===void 0&&(a=z.safeDescriptors);var o=r.value;return vt(o)||(o=rr(o)),i&&((o=o.bind(e.v??e.h)).isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function ye(e,t){return{i:e,u:t,o:be,s:xe,t:Se}}function be(e,t,n){return this.s(e,t,n,!1)===null?0:1}function xe(e,t,n,r){return e.m(t,ee({},this.u,{get:n.get,set:n.set}),r)}function Se(e,t){var n=this,r=t.name;return(0,t.addInitializer)((function(){var t=Ht(this)[F],i=ee({},n.u,{get:e,context:this});i.name||=`ObservableObject.`+r.toString(),t.j.set(r,new In(i))})),function(){return this[F].O(r)}}function Ce(e,t){return{i:e,u:t,o:we,s:Te,t:Ee}}function we(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Te(e,t,n,r){return e.g(t,n.value,this.u?.enhancer??ce,r)}function Ee(e,t){function n(e,t){var n=Ht(e)[F],i=new Pn(t,r.u?.enhancer??ce,`ObservableObject.`+a.toString(),!1);n.j.set(a,i),o.add(e)}var r=this,i=t.kind,a=t.name,o=new WeakSet;if(i==`accessor`)return{get:function(){return o.has(this)||n(this,e.get.call(this)),this[F].O(a)},set:function(e){return o.has(this)||n(this,e),this[F].S(a,e)},init:function(e){return o.has(this)||n(this,e),e}}}function De(e){return{i:`true`,u:e,o:Oe,s:ke,t:Ae}}function Oe(e,t,n,r){var i,a,o;if(n.get)return kn.o(e,t,n,r);if(n.set){var s=ct(n.set)?n.set:Ne(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!z.safeDescriptors||e.p,set:s})===null?0:2:(an(r,t,{configurable:!0,set:s}),2)}if(r!==e.h&&typeof n.value==`function`)return l(n.value)?((o=this.u)!=null&&o.autoBind?rr.bound:rr).o(e,t,n,r):((a=this.u)!=null&&a.autoBind?Zn.bound:Zn).o(e,t,n,r);var c=!1===this.u?.deep?En.ref:En;return typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),c.o(e,t,n,r)}function ke(e,t,n,r){var i;return n.get?kn.s(e,t,n,r):n.set?e.l(t,{configurable:!z.safeDescriptors||e.p,set:Ne(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),(!1===this.u?.deep?En.ref:En).s(e,t,n,r))}function Ae(){t(`'`+this.i+`' cannot be used as a decorator`)}function je(e){return e||bn}function O(e){return!0===e.deep?ce:!1===e.deep?le:(t=e.defaultDecorator)&&(n=(r=t.u)?.enhancer)!=null?n:ce;var t,n,r}function Me(e,t,n){return oe(t)?xn.t(e,t):o(t)?void ae(e,t,xn):xt(e)?e:c(e)?En.object(e,t,n):Array.isArray(e)?En.array(e,t):p(e)?En.map(e,t):m(e)?En.set(e,t):typeof e==`object`&&e?e:En.box(e,t)}function Ne(e,t,n,r){function i(){return Pe(0,n,t,r||this,arguments)}return n===void 0&&(n=!1),i.isMobxAction=!0,i.toString=function(){return t.toString()},Mn&&(Nn.value=e,an(i,`name`,Nn)),i}function Pe(e,t,n,r,i){var a=Fe(0,t);try{return n.apply(r,i)}catch(e){throw a._=e,e}finally{Ie(a)}}function Fe(e,t){var n=z.trackingDerivation,r=!t||!n;$e();var i=z.allowStateChanges;r&&(Ge(),i=Re(!0));var a={A:r,k:n,M:i,V:qe(!0),R:!1,N:0,T:jn++,C:An};return An=a.T,a}function Ie(e){An!==e.T&&t(30),An=e.C,e._!==void 0&&(z.suppressReactionErrors=!0),ze(e.M),Je(e.V),et(),e.A&&Ke(e.k),z.suppressReactionErrors=!1}function Le(e,t){var n=Re(e);try{return t()}finally{ze(n)}}function Re(e){var t=z.allowStateChanges;return z.allowStateChanges=e,t}function ze(e){z.allowStateChanges=e}function Be(e){return e instanceof Rn}function Ve(e){switch(e.I){case L.L:return!1;case L.P:case L.K:return!0;case L.B:for(var t=qe(!0),n=Ge(),r=e.D,i=r.length,a=0;a<i;a++){var o=r[a];if(R(o)){if(z.disableErrorBoundaries)o.get();else try{o.get()}catch{return Ke(n),Je(t),!0}if(e.I===L.K)return Ke(n),Je(t),!0}}return Ye(e),Ke(n),Je(t),!1}}function He(e,t,n){var r=qe(!0);Ye(e),e.W=Array(e.q===0?100:e.D.length),e.G=0,e.q=++z.runId;var i,a=z.trackingDerivation;if(z.trackingDerivation=e,z.inBatch++,!0===z.disableErrorBoundaries)i=t.call(n);else try{i=t.call(n)}catch(e){i=new Rn(e)}return z.inBatch--,z.trackingDerivation=a,function(e){for(var t=e.D,n=e.D=e.W,r=L.L,i=0,a=e.G,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.I>r&&(r=s.I)}for(n.length=i,e.W=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&Ze(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Xe(l,e))}r!==L.L&&(e.I=r,e.H())}(e),Je(r),i}function Ue(e){var t=e.D;e.D=[];for(var n=t.length;n--;)Ze(t[n],e);e.I=L.P}function We(e){var t=Ge();try{return e()}finally{Ke(t)}}function Ge(){var e=z.trackingDerivation;return z.trackingDerivation=null,e}function Ke(e){z.trackingDerivation=e}function qe(e){var t=z.allowStateReads;return z.allowStateReads=e,t}function Je(e){z.allowStateReads=e}function Ye(e){if(e.I!==L.L){e.I=L.L;for(var t=e.D,n=t.length;n--;)t[n].U=L.L}}function Xe(e,t){e.F.add(t),e.U>t.I&&(e.U=t.I)}function Ze(e,t){e.F.delete(t),e.F.size===0&&Qe(e)}function Qe(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,z.pendingUnobservations.push(e))}function $e(){z.inBatch++}function et(){if(--z.inBatch==0){rt();for(var e=z.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.F.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof In&&n.X())}z.pendingUnobservations=[]}}function tt(e){var t=z.trackingDerivation;return t===null?(e.F.size===0&&z.inBatch>0&&Qe(e),!1):(t.q!==e.$&&(e.$=t.q,t.W[t.G++]=e,!e.isBeingObserved&&z.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function nt(e){e.U!==L.K&&(e.U=L.K,e.F.forEach((function(e){e.I===L.L&&e.H(),e.I=L.K})))}function rt(){z.inBatch>0||z.isRunningReactions||Wn(it)}function it(){z.isRunningReactions=!0;for(var e=z.pendingReactions,t=0;e.length>0;){++t==100&&(console.error(`[mobx] cycle in reaction: `+e[0]),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].J()}z.isRunningReactions=!1}function at(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}}function ot(e){return function(t,n){return a(t)?Ne(t.name||`<unnamed action>`,t,e):a(n)?Ne(t,n,e):oe(n)?(e?Jn:Kn).t(t,n):o(n)?ae(t,n,e?Jn:Kn):o(t)?E(ue(e?`autoAction`:`action`,{name:t,autoAction:e})):void 0}}function st(e){return Pe(0,!1,e,this,void 0)}function ct(e){return a(e)&&!0===e.isMobxAction}function lt(e,t){function n(){e(i)}var r;t===void 0&&(t=cn);var i,a=t?.name??`Autorun`;if(t.scheduler||t.delay){var o=ut(t),s=!1;i=new Un(a,(function(){s||(s=!0,o((function(){s=!1,i.isDisposed||i.track(n)})))}),t.onError,t.requiresObservable)}else i=new Un(a,(function(){this.track(n)}),t.onError,t.requiresObservable);return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||i.Y(),i.Z(t?.signal)}function ut(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:Qn}function dt(e,t,n){return pt(`onBO`,e,t,n)}function ft(e,t,n){return pt(`onBUO`,e,t,n)}function pt(e,t,n,r){var i=typeof r==`function`?Yt(t,n):Yt(t),o=a(r)?r:n,s=e+`L`;return i[s]?i[s].add(o):i[s]=new Set([o]),function(){var e=i[s];e&&(e.delete(o),e.size===0&&delete i[s])}}function mt(e,t,n,r){var i=pn(t);return Qt((function(){var t=Ht(e,r)[F];fn(i).forEach((function(e){t.s(e,i[e],!n||!(e in n)||n[e])}))})),e}function ht(e){var t,n={name:e.tt};return e.D&&e.D.length>0&&(n.dependencies=(t=e.D,Array.from(new Set(t))).map(ht)),n}function gt(e){var t={name:e.tt};return function(e){return e.F&&e.F.size>0}(e)&&(t.observers=Array.from(function(e){return e.F}(e)).map(gt)),t}function _t(e){a(e.cancel)&&e.cancel()}function vt(e){return!0===e?.isMobXFlow}function yt(e,t){return t===void 0?R(e):!1===Wt(e)||!e[F].j.has(t)?!1:R(Yt(e,t))}function bt(e,t){return!!e&&(t===void 0?Wt(e)||!!e[F]||gn(e)||Gn(e)||R(e):!!Wt(e)&&e[F].j.has(t))}function xt(e){return bt(e)}function St(e){return Wt(e)?e[F].nt():gr(e)||yr(e)?Array.from(e.keys()):zt(e)?e.map((function(e,t){return t})):void t(5)}function Ct(e,n){return Wt(e)?e[F].it(n):gr(e)||yr(e)?e.has(n):zt(e)?n>=0&&n<e.length:void t(10)}function wt(e){if(Wt(e))return e[F].rt();t(38)}function Tt(e,t,n){return e.set(t,n),n}function Et(e,t){t===void 0&&(t=void 0),$e();try{return e.apply(t)}finally{et()}}function Dt(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout((function(){if(!o[F].isDisposed){if(o(),!n.onError)throw i;n.onError(i)}}),n.timeout)}n.name=`When`;var a=Ne(`When-effect`,t),o=lt((function(t){Le(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())}),n);return o}function Ot(e,t){var n,r,i;if(t!=null&&(n=t.signal)!=null&&n.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var a=new Promise((function(n,a){var o,s=Dt(e,n,ee({},t,{onError:a}));r=function(){s(),a(Error(`WHEN_CANCELLED`))},i=function(){s(),a(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,i)})).finally((function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,i)}));return a.cancel=r,a}function kt(e){return e[F]}function At(e){return e.et!==void 0&&e.et.length>0}function jt(e,t){var n=e.et||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Mt(e,n){var r=Ge();try{for(var i=[].concat(e.et||[]),a=0,o=i.length;a<o&&((n=i[a](n))&&!n.type&&t(14),n);a++);return n}finally{Ke(r)}}function Nt(e){return e.ut!==void 0&&e.ut.length>0}function Pt(e,t){var n=e.ut||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Ft(e,t){var n=Ge(),r=e.ut;if(r){for(var i=0,a=(r=r.slice()).length;i<a;i++)r[i](t);Ke(n)}}function It(e,t,n,i){return n===void 0&&(n=`ObservableArray`),i===void 0&&(i=!1),r(),Qt((function(){var r=new cr(n,t,i,!1);d(r.j,F,r);var a=new Proxy(r.j,sr);return r.v=a,e&&e.length&&r.ot(0,0,e),a}))}function k(e,t){typeof Array.prototype[e]==`function`&&(lr[e]=t(e))}function Lt(e){return function(){var t=this[F];t.st.reportObserved();var n=t.ft(t.j);return n[e].apply(n,arguments)}}function A(e){return function(t,n){var r=this,i=this[F];return i.st.reportObserved(),i.ft(i.j)[e]((function(e,i){return t.call(n,e,i,r)}))}}function Rt(e){return function(){var t=this,n=this[F];n.st.reportObserved();var r=n.ft(n.j),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}function zt(e){return s(e)&&fr(e[F])}function Bt(e){return e[Symbol.toStringTag]=`MapIterator`,en(e)}function Vt(e){return e[Symbol.toStringTag]=`SetIterator`,en(e)}function Ht(e,t){if(g(e,F))return e;var n=t?.name??`ObservableObject`;return u(e,F,new xr(e,new Map,String(n),function(e){return e?e.defaultDecorator??De(e):void 0}(t))),e}function Ut(e){return br[e]||(br[e]={get:function(){return this[F].O(e)},set:function(t){return this[F].S(e,t)}})}function Wt(e){return!!s(e)&&B(e[F])}function Gt(e,t,n){var r;(r=e.h[mn])==null||delete r[n]}function Kt(e){return{enumerable:!1,configurable:!0,get:function(){return this[F].ct(e)},set:function(t){this[F].ht(e,t)}}}function j(e){an(Er.prototype,``+e,Kt(e))}function qt(e){if(e>wr){for(var t=wr;t<e+100;t++)j(t);wr=e}}function Jt(e,t,n){return new Er(e,t,n)}function Yt(e,n){if(typeof e==`object`&&e){if(zt(e))return n!==void 0&&t(23),e[F].st;if(yr(e))return e.st;if(gr(e)){if(n===void 0)return e.lt;var r=e.vt.get(n)||e.dt.get(n);return r||t(25,n,Zt(e)),r}if(Wt(e)){if(!n)return t(26);var i=e[F].j.get(n);return i||t(27,n,Zt(e)),i}if(gn(e)||R(e)||Gn(e))return e}else if(a(e)&&Gn(e[F]))return e[F];t(28)}function Xt(e,n){return e||t(29),n===void 0?gn(e)||R(e)||Gn(e)||gr(e)||yr(e)?e:e[F]?e[F]:void t(24,e):Xt(Yt(e,n))}function Zt(e,t){var n;if(t!==void 0)n=Yt(e,t);else{if(ct(e))return e.name;n=Wt(e)||gr(e)||yr(e)?Xt(e):Yt(e)}return n.tt}function Qt(e){var t=Ge(),n=Re(!0);$e();try{return e()}finally{et(),ze(n),Ke(t)}}function $t(e,t,n){return n===void 0&&(n=-1),function e(t,n,r,i,o){if(t===n)return t!==0||1/t==1/n;if(t==null||n==null)return!1;if(t!=t)return n!=n;var s=typeof t;if(s!==`function`&&s!==`object`&&typeof n!=`object`)return!1;var c=Dr.call(t);if(c!==Dr.call(n))return!1;switch(c){case`[object RegExp]`:case`[object String]`:return``+t==``+n;case`[object Number]`:return+t==+t?+t==0?1/t==1/n:+t==+n:+n!=+n;case`[object Date]`:case`[object Boolean]`:return+t==+n;case`[object Symbol]`:return typeof Symbol<`u`&&Symbol.valueOf.call(t)===Symbol.valueOf.call(n);case`[object Map]`:case`[object Set]`:r>=0&&r++}t=M(t),n=M(n);var l=c===`[object Array]`;if(!l){if(typeof t!=`object`||typeof n!=`object`)return!1;var u=t.constructor,d=n.constructor;if(u!==d&&!(a(u)&&u instanceof u&&a(d)&&d instanceof d)&&`constructor`in t&&`constructor`in n)return!1}if(r===0)return!1;r<0&&(r=-1),o||=[];for(var f=(i||=[]).length;f--;)if(i[f]===t)return o[f]===n;if(i.push(t),o.push(n),l){if((f=t.length)!==n.length)return!1;for(;f--;)if(!e(t[f],n[f],r-1,i,o))return!1}else{var p=Object.keys(t),m=p.length;if(Object.keys(n).length!==m)return!1;for(var h=0;h<m;h++){var _=p[h];if(!g(n,_)||!e(t[_],n[_],r-1,i,o))return!1}}return i.pop(),o.pop(),!0}(e,t,n)}function M(e){return zt(e)?e.slice():p(e)||gr(e)||m(e)||yr(e)?Array.from(e.entries()):e}function en(e){return e[Symbol.iterator]=tn,Object.assign(Object.create(Or),e)}function tn(){return this}Object.defineProperty(e,`__esModule`,{value:!0});var nn={},N=Object.assign,rn=Object.getOwnPropertyDescriptor,an=Object.defineProperty,on=Object.prototype,sn=[];Object.freeze(sn);var cn={};Object.freeze(cn);var P=typeof Proxy<`u`,ln=Object.toString(),un=function(){},dn=Object.getOwnPropertySymbols!==void 0,fn=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:dn?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,pn=Object.getOwnPropertyDescriptors||function(e){var t={};return fn(e).forEach((function(n){t[n]=rn(e,n)})),t},mn=Symbol(`mobx-stored-annotations`),F=Symbol(`mobx administration`),hn=function(){function e(e){e===void 0&&(e=`Atom`),this.tt=void 0,this.bt=0,this.F=new Set,this.$=0,this.U=L.P,this.onBOL=void 0,this.onBUOL=void 0,this.tt=e}var t=e.prototype;return t.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},t.reportObserved=function(){return tt(this)},t.reportChanged=function(){$e(),nt(this),et()},t.toString=function(){return this.tt},S(e,[{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();hn.pt=1,hn.yt=2,hn.wt=4;var gn=f(`Atom`,hn),_n={identity:function(e,t){return e===t},structural:function(e,t){return $t(e,t)},default:function(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!=e&&t!=t},shallow:function(e,t){return $t(e,t,1)}},vn=E({i:`override`,o:function(){return 0},s:function(){t(`'`+this.i+`' can only be used with 'makeObservable'`)},t:function(){console.warn(`'`+this.i+`' cannot be used with decorators - this is a no-op`)}}),yn=De(),bn={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(bn);var xn=Ce(`observable`),Sn=Ce(`observable.ref`,{enhancer:le}),I=Ce(`observable.shallow`,{enhancer:function(e,t,n){return e==null||Wt(e)||zt(e)||gr(e)||yr(e)?e:Array.isArray(e)?En.array(e,{name:n,deep:!1}):c(e)?En.object(e,void 0,{name:n,deep:!1}):p(e)?En.map(e,{name:n,deep:!1}):m(e)?En.set(e,{name:n,deep:!1}):void 0}}),Cn=Ce(`observable.struct`,{enhancer:function(e,t){return $t(e,t)?t:e}}),wn=E(xn);N(Me,wn);var Tn,En=N(Me,{box:function(e,t){var n=je(t);return new Pn(e,O(n),n.name,!0,n.equals)},array:function(e,t){var n=je(t);return(!1===z.useProxies||!1===n.proxy?Jt:It)(e,O(n),n.name)},map:function(e,t){var n=je(t);return new hr(e,O(n),n.name)},set:function(e,t){var n=je(t);return new vr(e,O(n),n.name)},object:function(e,t,n){return Qt((function(){return mt(!1===z.useProxies||!1===n?.proxy?Ht({},n):function(e,t){var n;return r(),(n=(e=Ht(e,t))[F]).v??(n.v=new Proxy(e,ir))}({},n),e,t)}))},ref:E(Sn),shallow:E(I),deep:wn,struct:E(Cn)}),Dn=ye(`computed`),On=ye(`computed.struct`,{equals:_n.structural}),kn=function(e,t){if(oe(t))return Dn.t(e,t);if(o(t))return ae(e,t,Dn);if(c(e))return E(ye(`computed`,e));var n=c(t)?t:{};return n.get=e,n.name||=e.name||``,new In(n)};Object.assign(kn,Dn),kn.struct=E(On);var An=0,jn=1,Mn=(Tn=rn((function(){}),`name`)?.configurable)!=null&&Tn,Nn={value:`action`,configurable:!0,writable:!1,enumerable:!1},Pn=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue`),a===void 0&&(a=_n.default),(o=e.call(this,r)||this).enhancer=void 0,o.tt=void 0,o.equals=void 0,o.jt=!1,o.et=void 0,o.ut=void 0,o.Ot=void 0,o.dehancer=void 0,o.enhancer=n,o.tt=r,o.equals=a,o.Ot=n(t,void 0,r),o}te(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){(e=this.xt(e))!==z.UNCHANGED&&this.gt(e)},n.xt=function(e){if(At(this)){var t=Mt(this,{object:this,type:or,newValue:e});if(!t)return z.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.Ot,this.tt),this.equals(this.Ot,e)?z.UNCHANGED:e},n.gt=function(e){var t=this.Ot;this.Ot=e,this.reportChanged(),Nt(this)&&Ft(this,{type:or,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.Ot)},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.tt,object:this,type:or,newValue:this.Ot,oldValue:void 0}),Pt(this,e)},n.raw=function(){return this.Ot},n.toJSON=function(){return this.get()},n.toString=function(){return this.tt+`[`+this.Ot+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(hn),Fn=f(`ObservableValue`,Pn),In=function(){function e(e){this.I=L.P,this.D=[],this.W=null,this.F=new Set,this.q=0,this.$=0,this.U=L.L,this.G=0,this.Ot=new Rn(null),this.tt=void 0,this.At=void 0,this.bt=0,this.derivation=void 0,this.kt=void 0,this.Mt=Ln.NONE,this.Et=void 0,this.Vt=void 0,this.Rt=void 0,this.Nt=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||t(31),this.derivation=e.get,this.tt=e.name||`ComputedValue`,e.set&&(this.kt=Ne(`ComputedValue-setter`,e.set)),this.Vt=e.equals||(e.compareStructural||e.struct?_n.structural:_n.default),this.Et=e.context,this.Rt=e.requiresReaction,this.Nt=!!e.keepAlive}var n=e.prototype;return n.H=function(){(function(e){e.U===L.L&&(e.U=L.B,e.F.forEach((function(e){e.I===L.L&&(e.I=L.B,e.H())})))})(this)},n.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},n.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},n.get=function(){if(this.isComputing&&t(32,this.tt,this.derivation),z.inBatch!==0||this.F.size!==0||this.Nt){if(tt(this),Ve(this)){var e=z.trackingContext;this.Nt&&!e&&(z.trackingContext=this),this.trackAndCompute()&&function(e){e.U!==L.K&&(e.U=L.K,e.F.forEach((function(t){t.I===L.B?t.I=L.K:t.I===L.L&&(e.U=L.L)})))}(this),z.trackingContext=e}}else Ve(this)&&(this.Tt(),$e(),this.Ot=this.Ct(!1),et());var n=this.Ot;if(Be(n))throw n.cause;return n},n.set=function(e){if(this.kt){this.isRunningSetter&&t(33,this.tt),this.isRunningSetter=!0;try{this.kt.call(this.Et,e)}finally{this.isRunningSetter=!1}}else t(34,this.tt)},n.trackAndCompute=function(){var e=this.Ot,t=this.I===L.P,n=this.Ct(!0),r=t||Be(e)||Be(n)||!this.Vt(e,n);return r&&(this.Ot=n),r},n.Ct=function(e){this.isComputing=!0;var t,n=Re(!1);if(e)t=He(this,this.derivation,this.Et);else if(!0===z.disableErrorBoundaries)t=this.derivation.call(this.Et);else try{t=this.derivation.call(this.Et)}catch(e){t=new Rn(e)}return ze(n),this.isComputing=!1,t},n.X=function(){this.Nt||(Ue(this),this.Ot=void 0)},n._t=function(e,t){var n=this,r=!0,i=void 0;return lt((function(){var a=n.get();if(!r||t){var o=Ge();e({observableKind:`computed`,debugObjectName:n.tt,type:or,object:n,newValue:a,oldValue:i}),Ke(o)}r=!1,i=a}))},n.Tt=function(){},n.toString=function(){return this.tt+`[`+this.derivation.toString()+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},S(e,[{key:`isComputing`,get:function(){return _(this.bt,e.It)},set:function(t){this.bt=v(this.bt,e.It,t)}},{key:`isRunningSetter`,get:function(){return _(this.bt,e.Lt)},set:function(t){this.bt=v(this.bt,e.Lt,t)}},{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();In.It=1,In.Lt=2,In.pt=4,In.yt=8,In.wt=16;var L,Ln,R=f(`ComputedValue`,In);(function(e){e[e.P=-1]=`NOT_TRACKING_`,e[e.L=0]=`UP_TO_DATE_`,e[e.B=1]=`POSSIBLY_STALE_`,e[e.K=2]=`STALE_`})(L||={}),function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`}(Ln||={});var Rn=function(e){this.cause=void 0,this.cause=e},zn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],Bn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},Vn=!0,Hn=!1,z=function(){var e=n();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Vn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new Bn().version&&(Vn=!1),Vn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Bn):(setTimeout((function(){Hn||t(35)}),1),new Bn)}(),Un=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction`),this.tt=void 0,this.Pt=void 0,this.Kt=void 0,this.Bt=void 0,this.D=[],this.W=[],this.I=L.P,this.q=0,this.G=0,this.bt=0,this.Mt=Ln.NONE,this.tt=e,this.Pt=t,this.Kt=n,this.Bt=r}var t=e.prototype;return t.H=function(){this.Y()},t.Y=function(){this.isScheduled||(this.isScheduled=!0,z.pendingReactions.push(this),rt())},t.J=function(){if(!this.isDisposed){$e(),this.isScheduled=!1;var e=z.trackingContext;if(z.trackingContext=this,Ve(this)){this.isTrackPending=!0;try{this.Pt()}catch(e){this.Dt(e)}}z.trackingContext=e,et()}},t.track=function(e){if(!this.isDisposed){$e(),this.isRunning=!0;var t=z.trackingContext;z.trackingContext=this;var n=He(this,e,void 0);z.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Ue(this),Be(n)&&this.Dt(n.cause),et()}},t.Dt=function(e){var t=this;if(this.Kt)this.Kt(e,this);else{if(z.disableErrorBoundaries)throw e;z.suppressReactionErrors||console.error(`[mobx] uncaught error in '`+this+`'`,e),z.globalReactionErrorHandlers.forEach((function(n){return n(e,t)}))}},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||($e(),Ue(this),et()))},t.Z=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[F]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.tt+`]`},t.trace=function(){},S(e,[{key:`isDisposed`,get:function(){return _(this.bt,e.Wt)},set:function(t){this.bt=v(this.bt,e.Wt,t)}},{key:`isScheduled`,get:function(){return _(this.bt,e.qt)},set:function(t){this.bt=v(this.bt,e.qt,t)}},{key:`isTrackPending`,get:function(){return _(this.bt,e.Gt)},set:function(t){this.bt=v(this.bt,e.Gt,t)}},{key:`isRunning`,get:function(){return _(this.bt,e.Ht)},set:function(t){this.bt=v(this.bt,e.Ht,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();Un.Wt=1,Un.qt=2,Un.Gt=4,Un.Ht=8,Un.wt=16;var Wn=function(e){return e()},Gn=f(`Reaction`,Un),Kn=ue(`action`),qn=ue(`action.bound`,{bound:!0}),Jn=ue(`autoAction`,{autoAction:!0}),Yn=ue(`autoAction.bound`,{autoAction:!0,bound:!0}),Xn=ot(!1);Object.assign(Xn,Kn);var Zn=ot(!0);Object.assign(Zn,Jn),Xn.bound=E(qn),Zn.bound=E(Yn);var Qn=function(e){return e()},$n=0,er=function(e){function t(){var n;return n=e.call(this,`FLOW_CANCELLED`)||this,Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}return te(t,e),t.prototype.toString=function(){return`Error: `+this.message},t}(T(Error)),tr=he(`flow`),nr=he(`flow.bound`,{bound:!0}),rr=Object.assign((function(e,t){if(oe(t))return tr.t(e,t);if(o(t))return ae(e,t,tr);var n=e,r=n.name||`<unnamed flow>`,i=function(){var e,t=this,i=arguments,o=++$n,s=Xn(r+` - runid: `+o+` - init`,n).apply(t,i),c=void 0,l=new Promise((function(t,n){function i(e){var t;c=void 0;try{t=Xn(r+` - runid: `+o+` - yield `+ d++,s.next).call(s,e)}catch(e){return n(e)}u(t)}function l(e){var t;c=void 0;try{t=Xn(r+` - runid: `+o+` - yield `+ d++,s.throw).call(s,e)}catch(e){return n(e)}u(t)}function u(e){if(!a(e?.then))return e.done?t(e.value):(c=Promise.resolve(e.value)).then(i,l);e.then(u,n)}var d=0;e=n,i(void 0)}));return l.cancel=Xn(r+` - runid: `+o+` - cancel`,(function(){try{c&&_t(c);var t=s.return(void 0),n=Promise.resolve(t.value);n.then(un,un),_t(n),e(new er)}catch(t){e(t)}})),l};return i.isMobXFlow=!0,i}),tr);rr.bound=E(nr);var ir={has:function(e,t){return kt(e).it(t)},get:function(e,t){return kt(e).ct(t)},set:function(e,t,n){var r;return!!o(t)&&((r=kt(e).ht(t,n,!0))==null||r)},deleteProperty:function(e,t){var n;return!!o(t)&&((n=kt(e).Ut(t,!0))==null||n)},defineProperty:function(e,t,n){var r;return(r=kt(e).l(t,n))==null||r},ownKeys:function(e){return kt(e).rt()},preventExtensions:function(){t(13)}},ar=Symbol(`mobx-keys`),or=`update`,sr={get:function(e,t){var n=e[F];return t===F?n:t===`length`?n.Ft():typeof t!=`string`||isNaN(t)?g(lr,t)?lr[t]:e[t]:n.ct(parseInt(t))},set:function(e,t,n){var r=e[F];return t===`length`&&r.Xt(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.ht(parseInt(t),n),!0},preventExtensions:function(){t(15)}},cr=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray`),this.zt=void 0,this.$t=void 0,this.st=void 0,this.j=[],this.et=void 0,this.ut=void 0,this.Jt=void 0,this.dehancer=void 0,this.v=void 0,this.Yt=0,this.zt=n,this.$t=r,this.st=new hn(e),this.Jt=function(e,n){return t(e,n,`ObservableArray[..]`)}}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.ft=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:0,added:this.j.slice(),addedCount:this.j.length,removed:[],removedCount:0}),Pt(this,e)},n.Ft=function(){return this.st.reportObserved(),this.j.length},n.Xt=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&t(`Out of range: `+e);var n=this.j.length;if(e!==n)if(e>n){for(var r=Array(e-n),i=0;i<e-n;i++)r[i]=void 0;this.ot(n,0,r)}else this.ot(e,n-e)},n.Zt=function(e,n){e!==this.Yt&&t(16),this.Yt+=n,this.$t&&n>0&&qt(e+n+1)},n.ot=function(e,t,n){var r=this,i=this.j.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=sn),At(this)){var a=Mt(this,{object:this.v,type:`splice`,index:e,removedCount:t,added:n});if(!a)return sn;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map((function(e){return r.Jt(e,void 0)})),this.$t){var o=n.length-t;this.Zt(i,o)}var s=this.tn(e,t,n);return t===0&&n.length===0||this.nn(e,n,s),this.ft(s)},n.tn=function(e,t,n){var r;if(n.length<1e4)return(r=this.j).splice.apply(r,[e,t].concat(n));var i=this.j.slice(e,e+t),a=this.j.slice(e+t);this.j.length+=n.length-t;for(var o=0;o<n.length;o++)this.j[e+o]=n[o];for(var s=0;s<a.length;s++)this.j[e+n.length+s]=a[s];return i},n.in=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,type:or,debugObjectName:this.st.tt,index:e,newValue:t,oldValue:n}:null;this.st.reportChanged(),i&&Ft(this,a)},n.nn=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.st.reportChanged(),i&&Ft(this,a)},n.ct=function(e){if(!(this.$t&&e>=this.j.length))return this.st.reportObserved(),this.Qt(this.j[e]);console.warn(`[mobx] Out of bounds read: `+e)},n.ht=function(e,n){var r=this.j;if(this.$t&&e>r.length&&t(17,e,r.length),e<r.length){var i=r[e];if(At(this)){var a=Mt(this,{type:or,object:this.v,index:e,newValue:n});if(!a)return;n=a.newValue}(n=this.Jt(n,i))!==i&&(r[e]=n,this.in(e,n,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=n,this.ot(r.length,0,o)}},e}(),lr={clear:function(){return this.splice(0)},replace:function(e){var t=this[F];return t.ot(0,t.j.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[F];switch(arguments.length){case 0:return[];case 1:return r.ot(e);case 2:return r.ot(e,t)}return r.ot(e,t,n)},spliceWithArray:function(e,t,n){return this[F].ot(e,t,n)},push:function(){for(var e=this[F],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(e.j.length,0,n),e.j.length},pop:function(){return this.splice(Math.max(this[F].j.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){for(var e=this[F],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(0,0,n),e.j.length},reverse:function(){return z.trackingDerivation&&t(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){z.trackingDerivation&&t(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[F],n=t.ft(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};k(`at`,Lt),k(`concat`,Lt),k(`flat`,Lt),k(`includes`,Lt),k(`indexOf`,Lt),k(`join`,Lt),k(`lastIndexOf`,Lt),k(`slice`,Lt),k(`toString`,Lt),k(`toLocaleString`,Lt),k(`toSorted`,Lt),k(`toSpliced`,Lt),k(`with`,Lt),k(`every`,A),k(`filter`,A),k(`find`,A),k(`findIndex`,A),k(`findLast`,A),k(`findLastIndex`,A),k(`flatMap`,A),k(`forEach`,A),k(`map`,A),k(`some`,A),k(`toReversed`,A),k(`reduce`,Rt),k(`reduceRight`,Rt);var ur,dr,fr=f(`ObservableArrayAdministration`,cr),pr={},mr=`add`,hr=function(){function e(e,n,r){var i=this;n===void 0&&(n=ce),r===void 0&&(r=`ObservableMap`),this.Jt=void 0,this.tt=void 0,this[F]=pr,this.vt=void 0,this.dt=void 0,this.lt=void 0,this.et=void 0,this.ut=void 0,this.dehancer=void 0,this.Jt=n,this.tt=r,a(Map)||t(18),Qt((function(){i.lt=se(`ObservableMap.keys()`),i.vt=new Map,i.dt=new Map,e&&i.merge(e)}))}var n=e.prototype;return n.it=function(e){return this.vt.has(e)},n.has=function(e){var t=this;if(!z.trackingDerivation)return this.it(e);var n=this.dt.get(e);if(!n){var r=n=new Pn(this.it(e),le,`ObservableMap.key?`,!1);this.dt.set(e,r),ft(r,(function(){return t.dt.delete(e)}))}return n.get()},n.set=function(e,t){var n=this.it(e);if(At(this)){var r=Mt(this,{type:n?or:mr,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.rn(e,t):this.en(e,t),this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,name:e}))return!1;if(this.it(e)){var n=Nt(this),r=n?{observableKind:`map`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:this.vt.get(e).Ot,name:e}:null;return Et((function(){var n;t.lt.reportChanged(),(n=t.dt.get(e))==null||n.gt(!1),t.vt.get(e).gt(void 0),t.vt.delete(e)})),n&&Ft(this,r),!0}return!1},n.rn=function(e,t){var n=this.vt.get(e);if((t=n.xt(t))!==z.UNCHANGED){var r=Nt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:or,object:this,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),r&&Ft(this,i)}},n.en=function(e,t){var n=this;Et((function(){var r,i=new Pn(t,n.Jt,`ObservableMap.key`,!1);n.vt.set(e,i),t=i.Ot,(r=n.dt.get(e))==null||r.gt(!0),n.lt.reportChanged()}));var r=Nt(this);r&&Ft(this,r?{observableKind:`map`,debugObjectName:this.tt,type:mr,object:this,name:e,newValue:t}:null)},n.get=function(e){return this.has(e)?this.Qt(this.vt.get(e).get()):this.Qt(void 0)},n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.keys=function(){return this.lt.reportObserved(),this.vt.keys()},n.values=function(){var e=this,t=this.keys();return Bt({next:function(){var n=t.next(),r=n.done;return{done:r,value:r?void 0:e.get(n.value)}}})},n.entries=function(){var e=this,t=this.keys();return Bt({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},n[Symbol.iterator]=function(){return this.entries()},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i[1],i[0],this)}},n.merge=function(e){var n=this;return gr(e)&&(e=new Map(e)),Et((function(){var r,i;c(e)?function(e){var t=Object.keys(e);if(!dn)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter((function(t){return on.propertyIsEnumerable.call(e,t)}))):t}(e).forEach((function(t){return n.set(t,e[t])})):Array.isArray(e)?e.forEach((function(e){return n.set(e[0],e[1])})):p(e)?(r=Object.getPrototypeOf(e),i=Object.getPrototypeOf(r),Object.getPrototypeOf(i)!==null&&t(19,e),e.forEach((function(e,t){return n.set(t,e)}))):e!=null&&t(20,e)})),this},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.keys());!(t=n()).done;)e.delete(t.value)}))}))},n.replace=function(e){var n=this;return Et((function(){for(var r,i=function(e){if(p(e)||gr(e))return e;if(Array.isArray(e))return new Map(e);if(c(e)){var n=new Map;for(var r in e)n.set(r,e[r]);return n}return t(21,e)}(e),a=new Map,o=!1,s=C(n.vt.keys());!(r=s()).done;){var l=r.value;if(!i.has(l))if(n.delete(l))o=!0;else{var u=n.vt.get(l);a.set(l,u)}}for(var d,f=C(i.entries());!(d=f()).done;){var m=d.value,h=m[0],g=m[1],_=n.vt.has(h);if(n.set(h,g),n.vt.has(h)){var v=n.vt.get(h);a.set(h,v),_||(o=!0)}}if(!o)if(n.vt.size!==a.size)n.lt.reportChanged();else for(var y=n.vt.keys(),b=a.keys(),x=y.next(),S=b.next();!x.done;){if(x.value!==S.value){n.lt.reportChanged();break}x=y.next(),S=b.next()}n.vt=a})),this},n.toString=function(){return`[object ObservableMap]`},n.toJSON=function(){return Array.from(this)},n._t=function(e){return Pt(this,e)},n.St=function(e){return jt(this,e)},S(e,[{key:`size`,get:function(){return this.lt.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),gr=f(`ObservableMap`,hr),_r={},vr=function(){function e(e,n,r){var i=this;n===void 0&&(n=ce),r===void 0&&(r=`ObservableSet`),this.tt=void 0,this[F]=_r,this.vt=new Set,this.st=void 0,this.ut=void 0,this.et=void 0,this.dehancer=void 0,this.Jt=void 0,this.tt=r,a(Set)||t(22),this.Jt=function(e,t){return n(e,t,r)},Qt((function(){i.st=se(i.tt),e&&i.replace(e)}))}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.vt.values());!(t=n()).done;)e.delete(t.value)}))}))},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i,i,this)}},n.add=function(e){var t=this;if(At(this)){var n=Mt(this,{type:mr,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){Et((function(){t.vt.add(t.Jt(e,void 0)),t.st.reportChanged()}));var r=Nt(this);r&&Ft(this,r?{observableKind:`set`,debugObjectName:this.tt,type:mr,object:this,newValue:e}:null)}return this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Nt(this),r=n?{observableKind:`set`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:e}:null;return Et((function(){t.st.reportChanged(),t.vt.delete(e)})),n&&Ft(this,r),!0}return!1},n.has=function(e){return this.st.reportObserved(),this.vt.has(this.Qt(e))},n.entries=function(){var e=this.values();return Vt({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},n.keys=function(){return this.values()},n.values=function(){this.st.reportObserved();var e=this,t=this.vt.values();return Vt({next:function(){var n=t.next(),r=n.done;return r?{value:void 0,done:r}:{value:e.Qt(n.value),done:r}}})},n.intersection=function(e){return m(e)&&!yr(e)?e.intersection(this):new Set(this).intersection(e)},n.union=function(e){return m(e)&&!yr(e)?e.union(this):new Set(this).union(e)},n.difference=function(e){return new Set(this).difference(e)},n.symmetricDifference=function(e){return m(e)&&!yr(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},n.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},n.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},n.isDisjointFrom=function(e){return m(e)&&!yr(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},n.replace=function(e){var n=this;return yr(e)&&(e=new Set(e)),Et((function(){Array.isArray(e)||m(e)?(n.clear(),e.forEach((function(e){return n.add(e)}))):e!=null&&t(`Cannot initialize set from `+e)})),this},n._t=function(e){return Pt(this,e)},n.St=function(e){return jt(this,e)},n.toJSON=function(){return Array.from(this)},n.toString=function(){return`[object ObservableSet]`},n[Symbol.iterator]=function(){return this.values()},S(e,[{key:`size`,get:function(){return this.st.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),yr=f(`ObservableSet`,vr),br=Object.create(null),xr=function(){function e(e,t,n,r){t===void 0&&(t=new Map),r===void 0&&(r=yn),this.h=void 0,this.j=void 0,this.tt=void 0,this.un=void 0,this.lt=void 0,this.ut=void 0,this.et=void 0,this.v=void 0,this.p=void 0,this.on=void 0,this.sn=void 0,this.h=e,this.j=t,this.tt=n,this.un=r,this.lt=new hn(`ObservableObject.keys`),this.p=c(this.h)}var n=e.prototype;return n.O=function(e){return this.j.get(e).get()},n.S=function(e,t){var n=this.j.get(e);if(n instanceof In)return n.set(t),!0;if(At(this)){var r=Mt(this,{type:or,object:this.v||this.h,name:e,newValue:t});if(!r)return null;t=r.newValue}if((t=n.xt(t))!==z.UNCHANGED){var i=Nt(this),a=i?{type:or,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),i&&Ft(this,a)}return!0},n.ct=function(e){return z.trackingDerivation&&!g(this.h,e)&&this.it(e),this.h[e]},n.ht=function(e,t,n){return n===void 0&&(n=!1),g(this.h,e)?this.j.has(e)?this.S(e,t):n?Reflect.set(this.h,e,t):(this.h[e]=t,!0):this.s(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.un,n)},n.it=function(e){if(!z.trackingDerivation)return e in this.h;this.sn||=new Map;var t=this.sn.get(e);return t||(t=new Pn(e in this.h,le,`ObservableObject.key?`,!1),this.sn.set(e,t)),t.get()},n.o=function(e,n){if(!0===n&&(n=this.un),!1!==n){if(!(e in this.h)){var r;if((r=this.h[mn])!=null&&r[e])return;t(1,n.i,this.tt+`.`+e.toString())}for(var i=this.h;i&&i!==on;){var a=rn(i,e);if(a){var o=n.o(this,e,a,i);if(o===0)return;if(o===1)break}i=Object.getPrototypeOf(i)}Gt(this,0,e)}},n.s=function(e,t,n,r){if(r===void 0&&(r=!1),!0===n&&(n=this.un),!1===n)return this.l(e,t,r);var i=n.s(this,e,t,r);return i&&Gt(this,0,e),i},n.l=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)){var i=Mt(this,{object:this.v||this.h,name:e,type:mr,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=ee({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.h,e,t))return!1}else an(this.h,e,t);this.fn(e,t.value)}finally{et()}return!0},n.g=function(e,t,n,r){r===void 0&&(r=!1);try{$e();var i=this.Ut(e);if(!i)return i;if(At(this)){var a=Mt(this,{object:this.v||this.h,name:e,type:mr,newValue:t});if(!a)return null;t=a.newValue}var o=Ut(e),s={configurable:!z.safeDescriptors||this.p,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.h,e,s))return!1}else an(this.h,e,s);var c=new Pn(t,n,`ObservableObject.key`,!1);this.j.set(e,c),this.fn(e,c.Ot)}finally{et()}return!0},n.m=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:mr,newValue:void 0}))return null;t.name||=`ObservableObject.key`,t.context=this.v||this.h;var i=Ut(e),a={configurable:!z.safeDescriptors||this.p,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.h,e,a))return!1}else an(this.h,e,a);this.j.set(e,new In(t)),this.fn(e,void 0)}finally{et()}return!0},n.Ut=function(e,t){if(t===void 0&&(t=!1),!g(this.h,e))return!0;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:`remove`}))return null;try{var n;$e();var r=Nt(this),i=this.j.get(e),a=void 0;if(!i&&r&&(a=rn(this.h,e)?.value),t){if(!Reflect.deleteProperty(this.h,e))return!1}else delete this.h[e];i&&(this.j.delete(e),i instanceof Pn&&(a=i.Ot),nt(i)),this.lt.reportChanged(),(n=this.sn)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&Ft(this,{type:`remove`,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{et()}return!0},n._t=function(e){return Pt(this,e)},n.St=function(e){return jt(this,e)},n.fn=function(e,t){var n,r=Nt(this);r&&r&&Ft(this,r?{type:mr,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,name:e,newValue:t}:null),(n=this.sn)==null||(n=n.get(e))==null||n.set(!0),this.lt.reportChanged()},n.rt=function(){return this.lt.reportObserved(),fn(this.h)},n.nt=function(){return this.lt.reportObserved(),Object.keys(this.h)},e}(),B=f(`ObservableObjectAdministration`,xr),Sr=Kt(0),Cr=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,!1===e}(),wr=0,Tr=function(){};ur=Tr,dr=Array.prototype,Object.setPrototypeOf?Object.setPrototypeOf(ur.prototype,dr):ur.prototype.__proto__===void 0?ur.prototype=dr:ur.prototype.__proto__=dr;var Er=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray`),i===void 0&&(i=!1),a=e.call(this)||this,Qt((function(){var e=new cr(r,n,i,!0);e.v=a,d(a,F,e),t&&t.length&&a.spliceWithArray(0,0,t),Cr&&Object.defineProperty(a,`0`,Sr)})),a}te(t,e);var n=t.prototype;return n.concat=function(){this[F].st.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map((function(e){return zt(e)?e.slice():e})))},n[Symbol.iterator]=function(){var e=this,t=0;return en({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},S(t,[{key:`length`,get:function(){return this[F].Ft()},set:function(e){this[F].Xt(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(Tr);Object.entries(lr).forEach((function(e){var t=e[0];t!==`concat`&&u(Er.prototype,t,e[1])})),qt(1e3);var Dr=on.toString,Or=n().Iterator?.prototype||{};[`Symbol`,`Map`,`Set`].forEach((function(e){n()[e]===void 0&&t(`MobX requires global '`+e+`' to be available or polyfilled`)})),typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:at,extras:{getDebugName:Zt},$mobx:F}),e.$mobx=F,e.FlowCancellationError=er,e.ObservableMap=hr,e.ObservableSet=vr,e.Reaction=Un,e._allowStateChanges=Le,e._allowStateChangesInsideComputed=st,e._allowStateReadsEnd=Je,e._allowStateReadsStart=qe,e._autoAction=Zn,e._endAction=Ie,e._getAdministration=Xt,e._getGlobalState=function(){return z},e._interceptReads=function(e,t,n){var r;return gr(e)||zt(e)||Fn(e)?r=Xt(e):Wt(e)&&(r=Xt(e,t)),r.dehancer=typeof t==`function`?t:n,function(){r.dehancer=void 0}},e._isComputingDerivation=function(){return z.trackingDerivation!==null},e._resetGlobalState=function(){var e=new Bn;for(var t in e)zn.indexOf(t)===-1&&(z[t]=e[t]);z.allowStateChanges=!z.enforceActions},e._startAction=Fe,e.action=Xn,e.autorun=lt,e.comparer=_n,e.computed=kn,e.configure=function(e){!0===e.isolateGlobalState&&function(){if((z.pendingReactions.length||z.inBatch||z.isRunningReactions)&&t(36),Hn=!0,Vn){var e=n();--e.__mobxInstanceCount==0&&(e.__mobxGlobals=void 0),z=new Bn}}();var r,i,a=e.useProxies,o=e.enforceActions;if(a!==void 0&&(z.useProxies=a===`always`||a!==`never`&&typeof Proxy<`u`),a===`ifavailable`&&(z.verifyProxies=!0),o!==void 0){var s=o===`always`?`always`:o===`observed`;z.enforceActions=s,z.allowStateChanges=!0!==s&&s!==`always`}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach((function(t){t in e&&(z[t]=!!e[t])})),z.allowStateReads=!z.observableRequiresReaction,e.reactionScheduler&&(r=e.reactionScheduler,i=Wn,Wn=function(e){return r((function(){return i(e)}))})},e.createAtom=se,e.defineProperty=function(e,n,r){if(Wt(e))return e[F].l(n,r);t(39)},e.entries=function(e){return Wt(e)?St(e).map((function(t){return[t,e[t]]})):gr(e)?St(e).map((function(t){return[t,e.get(t)]})):yr(e)?Array.from(e.entries()):zt(e)?e.map((function(e,t){return[t,e]})):void t(7)},e.extendObservable=mt,e.flow=rr,e.flowResult=function(e){return e},e.get=function(e,n){if(Ct(e,n))return Wt(e)?e[F].ct(n):gr(e)?e.get(n):zt(e)?e[n]:void t(11)},e.getAtom=Yt,e.getDebugName=Zt,e.getDependencyTree=function(e,t){return ht(Yt(e,t))},e.getObserverTree=function(e,t){return gt(Yt(e,t))},e.has=Ct,e.intercept=function(e,t,n){return a(n)?function(e,t,n){return Xt(e,t).St(n)}(e,t,n):function(e,t){return Xt(e).St(t)}(e,t)},e.isAction=ct,e.isBoxedObservable=Fn,e.isComputed=function(e){return yt(e)},e.isComputedProp=function(e,t){return yt(e,t)},e.isFlow=vt,e.isFlowCancellationError=function(e){return e instanceof er},e.isObservable=xt,e.isObservableArray=zt,e.isObservableMap=gr,e.isObservableObject=Wt,e.isObservableProp=function(e,t){return bt(e,t)},e.isObservableSet=yr,e.keys=St,e.makeAutoObservable=function(e,t,n){return c(e)?mt(e,e,t,n):(Qt((function(){var r=Ht(e,n)[F];if(!e[ar]){var i=Object.getPrototypeOf(e),a=new Set([].concat(fn(e),fn(i)));a.delete(`constructor`),a.delete(F),u(i,ar,a)}e[ar].forEach((function(e){return r.o(e,!t||!(e in t)||t[e])}))})),e)},e.makeObservable=function(e,t,n){return Qt((function(){var r=Ht(e,n)[F];t??=function(e){return g(e,mn)||u(e,mn,ee({},e[mn])),e[mn]}(e),fn(t).forEach((function(e){return r.o(e,t[e])}))})),e},e.observable=En,e.observe=function(e,t,n,r){return a(n)?function(e,t,n,r){return Xt(e,t)._t(n,r)}(e,t,n,r):function(e,t,n){return Xt(e)._t(t,n)}(e,t,n)},e.onBecomeObserved=dt,e.onBecomeUnobserved=ft,e.onReactionError=function(e){return z.globalReactionErrorHandlers.push(e),function(){var t=z.globalReactionErrorHandlers.indexOf(e);t>=0&&z.globalReactionErrorHandlers.splice(t,1)}},e.override=vn,e.ownKeys=wt,e.reaction=function(e,t,n){function r(){if(p=!1,!h.isDisposed){var t=!1,r=s;h.track((function(){var n=Le(!1,(function(){return e(h)}));t=f||!m(s,n),s=n})),(f&&n.fireImmediately||!f&&t)&&l(s,r,h),f=!1}}var i;n===void 0&&(n=cn);var a,o,s,c=n.name??`Reaction`,l=Xn(c,n.onError?(a=n.onError,o=t,function(){try{return o.apply(this,arguments)}catch(e){a.call(this,e)}}):t),u=!n.scheduler&&!n.delay,d=ut(n),f=!0,p=!1,m=n.compareStructural?_n.structural:n.equals||_n.default,h=new Un(c,(function(){f||u?r():p||(p=!0,d(r))}),n.onError,n.requiresObservable);return(i=n)!=null&&(i=i.signal)!=null&&i.aborted||h.Y(),h.Z(n?.signal)},e.remove=function(e,n){Wt(e)?e[F].Ut(n):gr(e)||yr(e)?e.delete(n):zt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=st,e.set=function e(n,r,i){if(arguments.length!==2||yr(n))Wt(n)?n[F].ht(r,i):gr(n)?n.set(r,i):yr(n)?n.add(r):zt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(`Invalid index: '`+r+`'`),$e(),r>=n.length&&(n.length=r+1),n[r]=i,et()):t(8);else{$e();var a=r;try{for(var o in a)e(n,o,a[o])}finally{et()}}},e.spy=at,e.toJS=function(e){return function e(t,n){if(typeof t!=`object`||!t||t instanceof Date||!xt(t))return t;if(Fn(t)||R(t))return e(t.get(),n);if(n.has(t))return n.get(t);if(zt(t)){var r=Tt(n,t,Array(t.length));return t.forEach((function(t,i){r[i]=e(t,n)})),r}if(yr(t)){var i=Tt(n,t,new Set);return t.forEach((function(t){i.add(e(t,n))})),i}if(gr(t)){var a=Tt(n,t,new Map);return t.forEach((function(t,r){a.set(r,e(t,n))})),a}var o=Tt(n,t,{});return wt(t).forEach((function(r){on.propertyIsEnumerable.call(t,r)&&(o[r]=e(t[r],n))})),o}(e,new Map)},e.trace=function(){},e.transaction=Et,e.untracked=We,e.values=function(e){return Wt(e)?St(e).map((function(t){return e[t]})):gr(e)?St(e).map((function(t){return e.get(t)})):yr(e)?Array.from(e.values()):zt(e)?e.slice():void t(6)},e.when=function(e,t,n){return arguments.length===1||t&&typeof t==`object`?Ot(e,t):Dt(e,t,n||{})}})),PE=pe((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t={0:`Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,1:function(e,t){return`Cannot apply '`+e+`' to '`+t.toString()+`': Field not found.`},5:`'keys()' can only be used on observable objects, arrays, sets and maps`,6:`'values()' can only be used on observable objects, arrays, sets and maps`,7:`'entries()' can only be used on observable objects, arrays and maps`,8:`'set()' can only be used on observable objects, arrays and maps`,9:`'remove()' can only be used on observable objects, arrays and maps`,10:`'has()' can only be used on observable objects, arrays and maps`,11:`'get()' can only be used on observable objects, arrays and maps`,12:`Invalid annotation`,13:`Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,14:`Intercept handlers should return nothing or a change object`,15:`Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,16:`Modification exception: the internal structure of an observable array was changed.`,17:function(e,t){return`[mobx.array] Index out of bounds, `+e+` is larger than `+t},18:`mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js`,19:function(e){return`Cannot initialize from classes that inherit from Map: `+e.constructor.name},20:function(e){return`Cannot initialize map from `+e},21:function(e){return`Cannot convert to map from '`+e+`'`},22:`mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js`,23:`It is not possible to get index atoms from arrays`,24:function(e){return`Cannot obtain administration from `+e},25:function(e,t){return`the entry '`+e+`' does not exist in the observable map '`+t+`'`},26:`please specify a property`,27:function(e,t){return`no observable property '`+e.toString()+`' found on the observable object '`+t+`'`},28:function(e){return`Cannot obtain atom from `+e},29:`Expecting some object`,30:`invalid action stack. did you forget to finish an action?`,31:`missing option for computed: get`,32:function(e,t){return`Cycle detected in computation `+e+`: `+t},33:function(e){return`The setter of computed value '`+e+`' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?`},34:function(e){return`[ComputedValue '`+e+`'] It is not possible to assign a new value to a computed value.`},35:"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`",36:`isolateGlobalState should be called before MobX is running any reactions`,37:function(e){return"[mobx] `observableArray."+e+"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice()."+e+"()` instead"},38:`'ownKeys()' can only be used on observable objects`,39:`'defineProperty()' can only be used on observable objects`};function n(e){var n=[...arguments].slice(1),r=typeof e==`string`?e:t[e];throw typeof r==`function`&&(r=r.apply(null,n)),Error(`[MobX] `+r)}var r={};function i(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:r}var a=Object.assign,o=Object.getOwnPropertyDescriptor,s=Object.defineProperty,c=Object.prototype,l=[];Object.freeze(l);var u={};Object.freeze(u);var d=typeof Proxy<`u`,f=Object.toString();function p(){d||n("`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`")}function m(e){I.verifyProxies&&n(`MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to `+e)}function h(){return++I.mobxGuid}function g(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}var _=function(){};function v(e){return typeof e==`function`}function y(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function b(e){return typeof e==`object`&&!!e}function x(e){if(!b(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===f}function S(e){var t=e?.constructor;return t?t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`:!1}function C(e,t,n){s(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function ee(e,t,n){s(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function w(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return b(e)&&e[n]===!0}}function te(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function ne(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function re(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}var ie=Object.getOwnPropertySymbols!==void 0;function T(e){var t=Object.keys(e);if(!ie)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter(function(t){return c.propertyIsEnumerable.call(e,t)})):t}var E=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:ie?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function ae(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function oe(e){return e===null?null:typeof e==`object`?``+e:e}function se(e,t){return c.hasOwnProperty.call(e,t)}var ce=Object.getOwnPropertyDescriptors||function(e){var t={};return E(e).forEach(function(n){t[n]=o(e,n)}),t};function le(e,t){return!!(e&t)}function ue(e,t,n){return n?e|=t:e&=~t,e}function de(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function fe(e,t,n){if(ye())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&be(i,n.prototype),i}function pe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,Se(r.key),r)}}function me(e,t,n){return t&&pe(e.prototype,t),n&&pe(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function he(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=Ce(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
148
148
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},D.apply(null,arguments)}function ge(e){return ge=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ge(e)}function _e(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,be(e,t)}function ve(e){try{return Function.toString.call(e).indexOf(`[native code]`)!==-1}catch{return typeof e==`function`}}function ye(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ye=function(){return!!e})()}function be(e,t){return be=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},be(e,t)}function xe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Se(e){var t=xe(e,`string`);return typeof t==`symbol`?t:t+``}function Ce(e,t){if(e){if(typeof e==`string`)return de(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?de(e,t):void 0}}function we(e){var t=typeof Map==`function`?new Map:void 0;return we=function(e){if(e===null||!ve(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return fe(e,arguments,ge(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),be(n,e)},we(e)}var Te=Symbol(`mobx-stored-annotations`);function Ee(e){function t(t,n){if(Ae(n))return e.decorate_20223_(t,n);De(t,n,e)}return Object.assign(t,e)}function De(e,t,r){se(e,Te)||C(e,Te,D({},e[Te])),Ke(r)&&!se(e[Te],t)&&n(`'`+(e.constructor.name+`.prototype.`+t.toString())+`' is decorated with 'override', but no such decorated member was found on prototype.`),Oe(e,r,t),Ke(r)||(e[Te][t]=r)}function Oe(e,t,r){if(!Ke(t)&&se(e[Te],r)){var i=e.constructor.name+`.prototype.`+r.toString(),a=e[Te][r].annotationType_,o=t.annotationType_;n(`Cannot apply '@`+o+`' to '`+i+`':`+(`
|
|
149
149
|
The field is already decorated with '@`+a+`'.`)+`
|
|
150
150
|
Re-decorating fields is not allowed.
|
|
151
|
-
Use '@override' decorator for methods overridden by subclass.`)}}function ke(e){return se(e,Te)||C(e,Te,D({},e[Te])),e[Te]}function Ae(e){return typeof e==`object`&&typeof e.kind==`string`}function je(e,t){t.includes(e.kind)||n(`The decorator applied to '`+String(e.name)+`' cannot be used on a `+e.kind+` element`)}var O=Symbol(`mobx administration`),Me=function(){function e(e){e===void 0&&(e=`Atom@`+h()),this.name_=void 0,this.flags_=0,this.observers_=new Set,this.lastAccessedBy_=0,this.lowestObserverState_=N.NOT_TRACKING_,this.onBOL=void 0,this.onBUOL=void 0,this.name_=e}var t=e.prototype;return t.onBO=function(){this.onBOL&&this.onBOL.forEach(function(e){return e()})},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach(function(e){return e()})},t.reportObserved=function(){return Nn(this)},t.reportChanged=function(){jn(),Pn(this),Mn()},t.toString=function(){return this.name_},me(e,[{key:`isBeingObserved`,get:function(){return le(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return le(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=ue(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();Me.isBeingObservedMask_=1,Me.isPendingUnobservationMask_=2,Me.diffValueMask_=4;var Ne=
|
|
151
|
+
Use '@override' decorator for methods overridden by subclass.`)}}function ke(e){return se(e,Te)||C(e,Te,D({},e[Te])),e[Te]}function Ae(e){return typeof e==`object`&&typeof e.kind==`string`}function je(e,t){t.includes(e.kind)||n(`The decorator applied to '`+String(e.name)+`' cannot be used on a `+e.kind+` element`)}var O=Symbol(`mobx administration`),Me=function(){function e(e){e===void 0&&(e=`Atom@`+h()),this.name_=void 0,this.flags_=0,this.observers_=new Set,this.lastAccessedBy_=0,this.lowestObserverState_=N.NOT_TRACKING_,this.onBOL=void 0,this.onBUOL=void 0,this.name_=e}var t=e.prototype;return t.onBO=function(){this.onBOL&&this.onBOL.forEach(function(e){return e()})},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach(function(e){return e()})},t.reportObserved=function(){return Nn(this)},t.reportChanged=function(){jn(),Pn(this),Mn()},t.toString=function(){return this.name_},me(e,[{key:`isBeingObserved`,get:function(){return le(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return le(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=ue(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();Me.isBeingObservedMask_=1,Me.isPendingUnobservationMask_=2,Me.diffValueMask_=4;var Ne=w(`Atom`,Me);function Pe(e,t,n){t===void 0&&(t=_),n===void 0&&(n=_);var r=new Me(e);return t!==_&&_r(r,t),n!==_&&vr(r,n),r}function Fe(e,t){return e===t}function Ie(e,t){return va(e,t)}function Le(e,t){return va(e,t,1)}function Re(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!==e&&t!==t}var ze={identity:Fe,structural:Ie,default:Re,shallow:Le};function Be(e,t,n){return Gr(e)?e:Array.isArray(e)?A.array(e,{name:n}):x(e)?A.object(e,void 0,{name:n}):te(e)?A.map(e,{name:n}):re(e)?A.set(e,{name:n}):typeof e==`function`&&!lr(e)&&!Ir(e)?S(e)?Pr(e):sr(n,e):e}function Ve(e,t,r){if(e==null||ea(e)||Ii(e)||Vi(e)||Ki(e))return e;if(Array.isArray(e))return A.array(e,{name:r,deep:!1});if(x(e))return A.object(e,void 0,{name:r,deep:!1});if(te(e))return A.map(e,{name:r,deep:!1});if(re(e))return A.set(e,{name:r,deep:!1});n(`The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets`)}function He(e){return e}function Ue(e,t){return Gr(e)&&n(`observable.struct should not be used with observable values`),va(e,t)?t:e}var We=`override`,Ge=Ee({annotationType_:We,make_:qe,extend_:Je,decorate_20223_:Ye});function Ke(e){return e.annotationType_===We}function qe(e,t){return e.isPlainObject_&&n(`Cannot apply '`+this.annotationType_+`' to '`+e.name_+`.`+t.toString()+`':`+(`
|
|
152
152
|
'`+this.annotationType_+`' cannot be used on plain objects.`)),se(e.appliedAnnotations_,t)||n(`'`+e.name_+`.`+t.toString()+`' is annotated with '`+this.annotationType_+`', but no such annotated member was found on prototype.`),0}function Je(e,t,r,i){n(`'`+this.annotationType_+`' can only be used with 'makeObservable'`)}function Ye(e,t){console.warn(`'`+this.annotationType_+`' cannot be used with decorators - this is a no-op`)}function Xe(e,t){return{annotationType_:e,options_:t,make_:Ze,extend_:Qe,decorate_20223_:$e}}function Ze(e,t,n,r){var i;return(i=this.options_)!=null&&i.bound?this.extend_(e,t,n,!1)===null?0:1:r===e.target_?this.extend_(e,t,n,!1)===null?0:2:lr(n.value)?1:(s(r,t,tt(e,this,t,n,!1)),2)}function Qe(e,t,n,r){var i=tt(e,this,t,n);return e.defineProperty_(t,i,r)}function $e(e,t){je(t,[`method`,`field`]);var r=t.kind,i=t.name,a=t.addInitializer,o=this,s=function(e){return j(o.options_?.name??i.toString(),e,o.options_?.autoAction??!1)};if(r==`field`)return function(e){var t,n=e;return lr(n)||(n=s(n)),(t=o.options_)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n};if(r==`method`){var c;return lr(e)||(e=s(e)),(c=this.options_)!=null&&c.bound&&a(function(){var e=this,t=e[i].bind(e);t.isMobxAction=!0,e[i]=t}),e}n(`Cannot apply '`+o.annotationType_+`' to '`+String(i)+`' (kind: `+r+`):`+(`
|
|
153
153
|
'`+o.annotationType_+`' can only be used on properties with a function value.`))}function et(e,t,r,i){var a=t.annotationType_,o=i.value;v(o)||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
154
154
|
'`+a+`' can only be used on properties with a function value.`))}function tt(e,t,n,r,i){var a,o;i===void 0&&(i=I.safeDescriptors),et(e,t,n,r);var s=r.value;return(a=t.options_)!=null&&a.bound&&(s=s.bind(e.proxy_??e.target_)),{value:j(t.options_?.name??n.toString(),s,t.options_?.autoAction??!1,(o=t.options_)!=null&&o.bound?e.proxy_??e.target_:void 0),configurable:i?e.isPlainObject_:!0,enumerable:!1,writable:!i}}function nt(e,t){return{annotationType_:e,options_:t,make_:rt,extend_:it,decorate_20223_:at}}function rt(e,t,n,r){var i;return r===e.target_?this.extend_(e,t,n,!1)===null?0:2:(i=this.options_)!=null&&i.bound&&(!se(e.target_,t)||!Ir(e.target_[t]))&&this.extend_(e,t,n,!1)===null?0:Ir(n.value)?1:(s(r,t,st(e,this,t,n,!1,!1)),2)}function it(e,t,n,r){var i=st(e,this,t,n,this.options_?.bound);return e.defineProperty_(t,i,r)}function at(e,t){var n;je(t,[`method`]);var r=t.name,i=t.addInitializer;return Ir(e)||(e=Pr(e)),(n=this.options_)!=null&&n.bound&&i(function(){var e=this,t=e[r].bind(e);t.isMobXFlow=!0,e[r]=t}),e}function ot(e,t,r,i){var a=t.annotationType_,o=i.value;v(o)||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
155
155
|
'`+a+`' can only be used on properties with a generator function value.`))}function st(e,t,n,r,i,a){a===void 0&&(a=I.safeDescriptors),ot(e,t,n,r);var o=r.value;return Ir(o)||(o=Pr(o)),i&&(o=o.bind(e.proxy_??e.target_),o.isMobXFlow=!0),{value:o,configurable:a?e.isPlainObject_:!0,enumerable:!1,writable:!a}}function ct(e,t){return{annotationType_:e,options_:t,make_:lt,extend_:ut,decorate_20223_:dt}}function lt(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function ut(e,t,n,r){return ft(e,this,t,n),e.defineComputedProperty_(t,D({},this.options_,{get:n.get,set:n.set}),r)}function dt(e,t){je(t,[`getter`]);var n=this,r=t.name,i=t.addInitializer;return i(function(){var t=Zi(this)[O],i=D({},n.options_,{get:e,context:this});i.name||=t.name_+`.`+r.toString(),t.values_.set(r,new tn(i))}),function(){return this[O].getObservablePropValue_(r)}}function ft(e,t,r,i){var a=t.annotationType_;i.get||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
156
156
|
'`+a+`' can only be used on getter(+setter) properties.`))}function pt(e,t){return{annotationType_:e,options_:t,make_:mt,extend_:ht,decorate_20223_:gt}}function mt(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function ht(e,t,n,r){return _t(e,this,t,n),e.defineObservableProperty_(t,n.value,this.options_?.enhancer??Be,r)}function gt(e,t){if(t.kind===`field`)throw n("Please use `@observable accessor "+String(t.name)+"` instead of `@observable "+String(t.name)+"`");je(t,[`accessor`]);var r=this,i=t.kind,a=t.name,o=new WeakSet;function s(e,t){var n=Zi(e)[O],i=new M(t,r.options_?.enhancer??Be,n.name_+`.`+a.toString(),!1);n.values_.set(a,i),o.add(e)}if(i==`accessor`)return{get:function(){return o.has(this)||s(this,e.get.call(this)),this[O].getObservablePropValue_(a)},set:function(e){return o.has(this)||s(this,e),this[O].setObservablePropValue_(a,e)},init:function(e){return o.has(this)||s(this,e),e}}}function _t(e,t,r,i){var a=t.annotationType_;`value`in i||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
157
|
-
'`+a+`' cannot be used on getter/setter properties`))}var vt=`true`,yt=bt();function bt(e){return{annotationType_:vt,options_:e,make_:xt,extend_:St,decorate_20223_:Ct}}function xt(e,t,n,r){var i;if(n.get)return Ht.make_(e,t,n,r);if(n.set){var a=lr(n.set)?n.set:j(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:I.safeDescriptors?e.isPlainObject_:!0,set:a})===null?0:2:(s(r,t,{configurable:!0,set:a}),2)}if(r!==e.target_&&typeof n.value==`function`){var o;if(S(n.value)){var c;return((c=this.options_)!=null&&c.autoBind?Pr.bound:Pr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?sr.bound:sr).make_(e,t,n,r)}var l=this.options_?.deep===!1?A.ref:A;return typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),l.make_(e,t,n,r)}function St(e,t,n,r){var i;return n.get?Ht.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:I.safeDescriptors?e.isPlainObject_:!0,set:j(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),(this.options_?.deep===!1?A.ref:A).extend_(e,t,n,r))}function Ct(e,t){n(`'`+this.annotationType_+`' cannot be used as a decorator`)}var wt=`observable`,Tt=`observable.ref`,Et=`observable.shallow`,Dt=`observable.struct`,Ot={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(Ot);function kt(e){return e||Ot}var At=pt(wt),jt=pt(Tt,{enhancer:He}),Mt=pt(Et,{enhancer:Ve}),Nt=pt(Dt,{enhancer:Ue}),Pt=Ee(At);function Ft(e){return e.deep===!0?Be:e.deep===!1?He:k(e.defaultDecorator)}function It(e){return e?e.defaultDecorator??bt(e):void 0}function k(e){return e?e.options_?.enhancer??Be:Be}function Lt(e,t,n){if(Ae(t))return At.decorate_20223_(e,t);if(y(t)){De(e,t,At);return}return Gr(e)?e:x(e)?A.object(e,t,n):Array.isArray(e)?A.array(e,t):w(e)?A.map(e,t):re(e)?A.set(e,t):typeof e==`object`&&e?e:A.box(e,t)}a(Lt,Pt);var A=a(Lt,{box:function(e,t){var n=kt(t);return new M(e,Ft(n),n.name,!0,n.equals)},array:function(e,t){var n=kt(t);return(I.useProxies===!1||n.proxy===!1?fa:Ai)(e,Ft(n),n.name)},map:function(e,t){var n=kt(t);return new Bi(e,Ft(n),n.name)},set:function(e,t){var n=kt(t);return new Gi(e,Ft(n),n.name)},object:function(e,t,n){return ga(function(){return Cr(I.useProxies===!1||n?.proxy===!1?Zi({},n):hi({},n),e,t)})},ref:Ee(jt),shallow:Ee(Mt),deep:Pt,struct:Ee(Nt)}),Rt=`computed`,zt=`computed.struct`,Bt=ct(Rt),Vt=ct(zt,{equals:ze.structural}),Ht=function(e,t){if(Ae(t))return Bt.decorate_20223_(e,t);if(y(t))return De(e,t,Bt);if(x(e))return Ee(ct(Rt,e));v(e)||n("First argument to `computed` should be an expression."),v(t)&&n("A setter as second argument is no longer supported, use `{ set: fn }` option instead");var r=x(t)?t:{};return r.get=e,r.name||=e.name||``,new tn(r)};Object.assign(Ht,Bt),Ht.struct=Ee(Vt);var Ut=0,Wt=1,Gt=o(function(){},`name`)?.configurable??!1,Kt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function j(e,t,r,i){r===void 0&&(r=!1),v(t)||n("`action` can only be invoked on functions"),(typeof e!=`string`||!e)&&n(`actions should have valid names, got: '`+e+`'`);function a(){return qt(e,r,t,i||this,arguments)}return a.isMobxAction=!0,a.toString=function(){return t.toString()},Gt&&(Kt.value=e,s(a,`name`,Kt)),a}function qt(e,t,n,r,i){var a=Jt(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Yt(a)}}function Jt(e,t,n,r){var i=Wn()&&!!e,a=0;i&&(a=Date.now(),Kn({type:Xn,name:e,object:n,arguments:r?Array.from(r):l}));var o=I.trackingDerivation,s=!t||!o;jn();var c=I.allowStateChanges;s&&(F(),c=Zt(!0));var u=gn(!0),d={runAsAction_:s,prevDerivation_:o,prevAllowStateChanges_:c,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:Wt++,parentActionId_:Ut};return Ut=d.actionId_,d}function Yt(e){Ut!==e.actionId_&&n(30),Ut=e.parentActionId_,e.error_!==void 0&&(I.suppressReactionErrors=!0),Qt(e.prevAllowStateChanges_),_n(e.prevAllowStateReads_),Mn(),e.runAsAction_&&hn(e.prevDerivation_),e.notifySpy_&&Jn({time:Date.now()-e.startTime_}),I.suppressReactionErrors=!1}function Xt(e,t){var n=Zt(e);try{return t()}finally{Qt(n)}}function Zt(e){var t=I.allowStateChanges;return I.allowStateChanges=e,t}function Qt(e){I.allowStateChanges=e}var $t=`create`,M=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue@`+h()),i===void 0&&(i=!0),a===void 0&&(a=ze.default),o=e.call(this,r)||this,o.enhancer=void 0,o.name_=void 0,o.equals=void 0,o.hasUnreportedChange_=!1,o.interceptors_=void 0,o.changeListeners_=void 0,o.value_=void 0,o.dehancer=void 0,o.enhancer=n,o.name_=r,o.equals=a,o.value_=n(t,void 0,r),i&&Wn()&&Gn({type:$t,object:o,observableKind:`value`,debugObjectName:o.name_,newValue:``+o.value_?.toString()}),o}_e(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){var t=this.value_;if(e=this.prepareNewValue_(e),e!==I.UNCHANGED){var n=Wn();n&&Kn({type:Ei,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Jn()}},n.prepareNewValue_=function(e){if(P(this),gi(this)){var t=vi(this,{object:this,type:Ei,newValue:e});if(!t)return I.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.value_,this.name_),this.equals(this.value_,e)?I.UNCHANGED:e},n.setNewValue_=function(e){var t=this.value_;this.value_=e,this.reportChanged(),yi(this)&&xi(this,{type:Ei,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.value_)},n.intercept_=function(e){return _i(this,e)},n.observe_=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.name_,object:this,type:Ei,newValue:this.value_,oldValue:void 0}),bi(this,e)},n.raw=function(){return this.value_},n.toJSON=function(){return this.get()},n.toString=function(){return this.name_+`[`+this.value_+`]`},n.valueOf=function(){return oe(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(Me),en=te(`ObservableValue`,M),tn=function(){function e(e){this.dependenciesState_=N.NOT_TRACKING_,this.observing_=[],this.newObserving_=null,this.observers_=new Set,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=N.UP_TO_DATE_,this.unboundDepsCount_=0,this.value_=new an(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,this.isTracing_=rn.NONE,this.scope_=void 0,this.equals_=void 0,this.requiresReaction_=void 0,this.keepAlive_=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||n(31),this.derivation=e.get,this.name_=e.name||`ComputedValue@`+h(),e.set&&(this.setter_=j(this.name_+`-setter`,e.set)),this.equals_=e.equals||(e.compareStructural||e.struct?ze.structural:ze.default),this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}var t=e.prototype;return t.onBecomeStale_=function(){In(this)},t.onBO=function(){this.onBOL&&this.onBOL.forEach(function(e){return e()})},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach(function(e){return e()})},t.get=function(){if(this.isComputing&&n(32,this.name_,this.derivation),I.inBatch===0&&this.observers_.size===0&&!this.keepAlive_)sn(this)&&(this.warnAboutUntrackedRead_(),jn(),this.value_=this.computeValue_(!1),Mn());else if(Nn(this),sn(this)){var e=I.trackingContext;this.keepAlive_&&!e&&(I.trackingContext=this),this.trackAndCompute()&&Fn(this),I.trackingContext=e}var t=this.value_;if(on(t))throw t.cause;return t},t.set=function(e){if(this.setter_){this.isRunningSetter&&n(33,this.name_),this.isRunningSetter=!0;try{this.setter_.call(this.scope_,e)}finally{this.isRunningSetter=!1}}else n(34,this.name_)},t.trackAndCompute=function(){var e=this.value_,t=this.dependenciesState_===N.NOT_TRACKING_,n=this.computeValue_(!0),r=t||on(e)||on(n)||!this.equals_(e,n);return r&&(this.value_=n,Wn()&&Gn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r},t.computeValue_=function(e){this.isComputing=!0;var t=Zt(!1),n;if(e)n=un(this,this.derivation,this.scope_);else if(I.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new an(e)}return Qt(t),this.isComputing=!1,n},t.suspend_=function(){this.keepAlive_||(pn(this),this.value_=void 0,this.isTracing_!==rn.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' was suspended and it will recompute on the next access.`))},t.observe_=function(e,t){var n=this,r=!0,i=void 0;return ur(function(){var a=n.get();if(!r||t){var o=F();e({observableKind:`computed`,debugObjectName:n.name_,type:Ei,object:n,newValue:a,oldValue:i}),hn(o)}r=!1,i=a})},t.warnAboutUntrackedRead_=function(){this.isTracing_!==rn.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`),(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:I.computedRequiresReaction)&&console.warn(`[mobx] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`)},t.toString=function(){return this.name_+`[`+this.derivation.toString()+`]`},t.valueOf=function(){return oe(this.get())},t[Symbol.toPrimitive]=function(){return this.valueOf()},me(e,[{key:`isComputing`,get:function(){return le(this.flags_,e.isComputingMask_)},set:function(t){this.flags_=ue(this.flags_,e.isComputingMask_,t)}},{key:`isRunningSetter`,get:function(){return le(this.flags_,e.isRunningSetterMask_)},set:function(t){this.flags_=ue(this.flags_,e.isRunningSetterMask_,t)}},{key:`isBeingObserved`,get:function(){return le(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return le(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=ue(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();tn.isComputingMask_=1,tn.isRunningSetterMask_=2,tn.isBeingObservedMask_=4,tn.isPendingUnobservationMask_=8,tn.diffValueMask_=16;var nn=te(`ComputedValue`,tn),N;(function(e){e[e.NOT_TRACKING_=-1]=`NOT_TRACKING_`,e[e.UP_TO_DATE_=0]=`UP_TO_DATE_`,e[e.POSSIBLY_STALE_=1]=`POSSIBLY_STALE_`,e[e.STALE_=2]=`STALE_`})(N||={});var rn;(function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`})(rn||={});var an=function(e){this.cause=void 0,this.cause=e};function on(e){return e instanceof an}function sn(e){switch(e.dependenciesState_){case N.UP_TO_DATE_:return!1;case N.NOT_TRACKING_:case N.STALE_:return!0;case N.POSSIBLY_STALE_:for(var t=gn(!0),n=F(),r=e.observing_,i=r.length,a=0;a<i;a++){var o=r[a];if(nn(o)){if(I.disableErrorBoundaries)o.get();else try{o.get()}catch{return hn(n),_n(t),!0}if(e.dependenciesState_===N.STALE_)return hn(n),_n(t),!0}}return vn(e),hn(n),_n(t),!1}}function cn(){return I.trackingDerivation!==null}function P(e){var t=e.observers_.size>0;!I.allowStateChanges&&(t||I.enforceActions===`always`)&&console.warn(`[MobX] `+(I.enforceActions?`Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: `:`Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: `)+e.name_)}function ln(e){!I.allowStateReads&&I.observableRequiresReaction&&console.warn(`[mobx] Observable '`+e.name_+`' being read outside a reactive context.`)}function un(e,t,n){var r=gn(!0);vn(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++I.runId;var i=I.trackingDerivation;I.trackingDerivation=e,I.inBatch++;var a;if(I.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new an(e)}return I.inBatch--,I.trackingDerivation=i,fn(e),dn(e),_n(r),a}function dn(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:I.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '`+e.name_+`' is created/updated without reading any observable value.`)}function fn(e){for(var t=e.observing_,n=e.observing_=e.newObserving_,r=N.UP_TO_DATE_,i=0,a=e.unboundDepsCount_,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.dependenciesState_>r&&(r=s.dependenciesState_)}for(n.length=i,e.newObserving_=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&kn(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,On(l,e))}r!==N.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}function pn(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)kn(t[n],e);e.dependenciesState_=N.NOT_TRACKING_}function mn(e){var t=F();try{return e()}finally{hn(t)}}function F(){var e=I.trackingDerivation;return I.trackingDerivation=null,e}function hn(e){I.trackingDerivation=e}function gn(e){var t=I.allowStateReads;return I.allowStateReads=e,t}function _n(e){I.allowStateReads=e}function vn(e){if(e.dependenciesState_!==N.UP_TO_DATE_){e.dependenciesState_=N.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=N.UP_TO_DATE_}}var yn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],bn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},xn=!0,Sn=!1,I=function(){var e=i();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(xn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new bn().version&&(xn=!1),xn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new bn):(setTimeout(function(){Sn||n(35)},1),new bn)}();function Cn(){if((I.pendingReactions.length||I.inBatch||I.isRunningReactions)&&n(36),Sn=!0,xn){var e=i();--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),I=new bn}}function wn(){return I}function Tn(){var e=new bn;for(var t in e)yn.indexOf(t)===-1&&(I[t]=e[t]);I.allowStateChanges=!I.enforceActions}function En(e){return e.observers_&&e.observers_.size>0}function Dn(e){return e.observers_}function On(e,t){e.observers_.add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function kn(e,t){e.observers_.delete(t),e.observers_.size===0&&An(e)}function An(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,I.pendingUnobservations.push(e))}function jn(){I.inBatch++}function Mn(){if(--I.inBatch===0){Vn();for(var e=I.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.observers_.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof tn&&n.suspend_())}I.pendingUnobservations=[]}}function Nn(e){ln(e);var t=I.trackingDerivation;return t===null?(e.observers_.size===0&&I.inBatch>0&&An(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&I.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function Pn(e){e.lowestObserverState_!==N.STALE_&&(e.lowestObserverState_=N.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===N.UP_TO_DATE_&&(t.isTracing_!==rn.NONE&&L(t,e),t.onBecomeStale_()),t.dependenciesState_=N.STALE_}))}function Fn(e){e.lowestObserverState_!==N.STALE_&&(e.lowestObserverState_=N.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===N.POSSIBLY_STALE_?(t.dependenciesState_=N.STALE_,t.isTracing_!==rn.NONE&&L(t,e)):t.dependenciesState_===N.UP_TO_DATE_&&(e.lowestObserverState_=N.UP_TO_DATE_)}))}function In(e){e.lowestObserverState_===N.UP_TO_DATE_&&(e.lowestObserverState_=N.POSSIBLY_STALE_,e.observers_.forEach(function(e){e.dependenciesState_===N.UP_TO_DATE_&&(e.dependenciesState_=N.POSSIBLY_STALE_,e.onBecomeStale_())}))}function L(e,t){if(console.log(`[mobx.trace] '`+e.name_+`' is invalidated due to a change in: '`+t.name_+`'`),e.isTracing_===rn.BREAK){var n=[];Ln(wr(e),n,1),Function(`debugger;
|
|
157
|
+
'`+a+`' cannot be used on getter/setter properties`))}var vt=`true`,yt=bt();function bt(e){return{annotationType_:vt,options_:e,make_:xt,extend_:St,decorate_20223_:Ct}}function xt(e,t,n,r){var i;if(n.get)return Ht.make_(e,t,n,r);if(n.set){var a=lr(n.set)?n.set:j(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:I.safeDescriptors?e.isPlainObject_:!0,set:a})===null?0:2:(s(r,t,{configurable:!0,set:a}),2)}if(r!==e.target_&&typeof n.value==`function`){var o;if(S(n.value)){var c;return((c=this.options_)!=null&&c.autoBind?Pr.bound:Pr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?sr.bound:sr).make_(e,t,n,r)}var l=this.options_?.deep===!1?A.ref:A;return typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),l.make_(e,t,n,r)}function St(e,t,n,r){var i;return n.get?Ht.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:I.safeDescriptors?e.isPlainObject_:!0,set:j(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),(this.options_?.deep===!1?A.ref:A).extend_(e,t,n,r))}function Ct(e,t){n(`'`+this.annotationType_+`' cannot be used as a decorator`)}var wt=`observable`,Tt=`observable.ref`,Et=`observable.shallow`,Dt=`observable.struct`,Ot={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(Ot);function kt(e){return e||Ot}var At=pt(wt),jt=pt(Tt,{enhancer:He}),Mt=pt(Et,{enhancer:Ve}),Nt=pt(Dt,{enhancer:Ue}),Pt=Ee(At);function Ft(e){return e.deep===!0?Be:e.deep===!1?He:k(e.defaultDecorator)}function It(e){return e?e.defaultDecorator??bt(e):void 0}function k(e){return e?e.options_?.enhancer??Be:Be}function Lt(e,t,n){if(Ae(t))return At.decorate_20223_(e,t);if(y(t)){De(e,t,At);return}return Gr(e)?e:x(e)?A.object(e,t,n):Array.isArray(e)?A.array(e,t):te(e)?A.map(e,t):re(e)?A.set(e,t):typeof e==`object`&&e?e:A.box(e,t)}a(Lt,Pt);var A=a(Lt,{box:function(e,t){var n=kt(t);return new M(e,Ft(n),n.name,!0,n.equals)},array:function(e,t){var n=kt(t);return(I.useProxies===!1||n.proxy===!1?fa:Ai)(e,Ft(n),n.name)},map:function(e,t){var n=kt(t);return new Bi(e,Ft(n),n.name)},set:function(e,t){var n=kt(t);return new Gi(e,Ft(n),n.name)},object:function(e,t,n){return ga(function(){return Cr(I.useProxies===!1||n?.proxy===!1?Zi({},n):hi({},n),e,t)})},ref:Ee(jt),shallow:Ee(Mt),deep:Pt,struct:Ee(Nt)}),Rt=`computed`,zt=`computed.struct`,Bt=ct(Rt),Vt=ct(zt,{equals:ze.structural}),Ht=function(e,t){if(Ae(t))return Bt.decorate_20223_(e,t);if(y(t))return De(e,t,Bt);if(x(e))return Ee(ct(Rt,e));v(e)||n("First argument to `computed` should be an expression."),v(t)&&n("A setter as second argument is no longer supported, use `{ set: fn }` option instead");var r=x(t)?t:{};return r.get=e,r.name||=e.name||``,new tn(r)};Object.assign(Ht,Bt),Ht.struct=Ee(Vt);var Ut=0,Wt=1,Gt=o(function(){},`name`)?.configurable??!1,Kt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function j(e,t,r,i){r===void 0&&(r=!1),v(t)||n("`action` can only be invoked on functions"),(typeof e!=`string`||!e)&&n(`actions should have valid names, got: '`+e+`'`);function a(){return qt(e,r,t,i||this,arguments)}return a.isMobxAction=!0,a.toString=function(){return t.toString()},Gt&&(Kt.value=e,s(a,`name`,Kt)),a}function qt(e,t,n,r,i){var a=Jt(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Yt(a)}}function Jt(e,t,n,r){var i=Wn()&&!!e,a=0;i&&(a=Date.now(),Kn({type:Xn,name:e,object:n,arguments:r?Array.from(r):l}));var o=I.trackingDerivation,s=!t||!o;jn();var c=I.allowStateChanges;s&&(F(),c=Zt(!0));var u=gn(!0),d={runAsAction_:s,prevDerivation_:o,prevAllowStateChanges_:c,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:Wt++,parentActionId_:Ut};return Ut=d.actionId_,d}function Yt(e){Ut!==e.actionId_&&n(30),Ut=e.parentActionId_,e.error_!==void 0&&(I.suppressReactionErrors=!0),Qt(e.prevAllowStateChanges_),_n(e.prevAllowStateReads_),Mn(),e.runAsAction_&&hn(e.prevDerivation_),e.notifySpy_&&Jn({time:Date.now()-e.startTime_}),I.suppressReactionErrors=!1}function Xt(e,t){var n=Zt(e);try{return t()}finally{Qt(n)}}function Zt(e){var t=I.allowStateChanges;return I.allowStateChanges=e,t}function Qt(e){I.allowStateChanges=e}var $t=`create`,M=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue@`+h()),i===void 0&&(i=!0),a===void 0&&(a=ze.default),o=e.call(this,r)||this,o.enhancer=void 0,o.name_=void 0,o.equals=void 0,o.hasUnreportedChange_=!1,o.interceptors_=void 0,o.changeListeners_=void 0,o.value_=void 0,o.dehancer=void 0,o.enhancer=n,o.name_=r,o.equals=a,o.value_=n(t,void 0,r),i&&Wn()&&Gn({type:$t,object:o,observableKind:`value`,debugObjectName:o.name_,newValue:``+o.value_?.toString()}),o}_e(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){var t=this.value_;if(e=this.prepareNewValue_(e),e!==I.UNCHANGED){var n=Wn();n&&Kn({type:Ei,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Jn()}},n.prepareNewValue_=function(e){if(P(this),gi(this)){var t=vi(this,{object:this,type:Ei,newValue:e});if(!t)return I.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.value_,this.name_),this.equals(this.value_,e)?I.UNCHANGED:e},n.setNewValue_=function(e){var t=this.value_;this.value_=e,this.reportChanged(),yi(this)&&xi(this,{type:Ei,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.value_)},n.intercept_=function(e){return _i(this,e)},n.observe_=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.name_,object:this,type:Ei,newValue:this.value_,oldValue:void 0}),bi(this,e)},n.raw=function(){return this.value_},n.toJSON=function(){return this.get()},n.toString=function(){return this.name_+`[`+this.value_+`]`},n.valueOf=function(){return oe(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(Me),en=w(`ObservableValue`,M),tn=function(){function e(e){this.dependenciesState_=N.NOT_TRACKING_,this.observing_=[],this.newObserving_=null,this.observers_=new Set,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=N.UP_TO_DATE_,this.unboundDepsCount_=0,this.value_=new an(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,this.isTracing_=rn.NONE,this.scope_=void 0,this.equals_=void 0,this.requiresReaction_=void 0,this.keepAlive_=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||n(31),this.derivation=e.get,this.name_=e.name||`ComputedValue@`+h(),e.set&&(this.setter_=j(this.name_+`-setter`,e.set)),this.equals_=e.equals||(e.compareStructural||e.struct?ze.structural:ze.default),this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}var t=e.prototype;return t.onBecomeStale_=function(){In(this)},t.onBO=function(){this.onBOL&&this.onBOL.forEach(function(e){return e()})},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach(function(e){return e()})},t.get=function(){if(this.isComputing&&n(32,this.name_,this.derivation),I.inBatch===0&&this.observers_.size===0&&!this.keepAlive_)sn(this)&&(this.warnAboutUntrackedRead_(),jn(),this.value_=this.computeValue_(!1),Mn());else if(Nn(this),sn(this)){var e=I.trackingContext;this.keepAlive_&&!e&&(I.trackingContext=this),this.trackAndCompute()&&Fn(this),I.trackingContext=e}var t=this.value_;if(on(t))throw t.cause;return t},t.set=function(e){if(this.setter_){this.isRunningSetter&&n(33,this.name_),this.isRunningSetter=!0;try{this.setter_.call(this.scope_,e)}finally{this.isRunningSetter=!1}}else n(34,this.name_)},t.trackAndCompute=function(){var e=this.value_,t=this.dependenciesState_===N.NOT_TRACKING_,n=this.computeValue_(!0),r=t||on(e)||on(n)||!this.equals_(e,n);return r&&(this.value_=n,Wn()&&Gn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r},t.computeValue_=function(e){this.isComputing=!0;var t=Zt(!1),n;if(e)n=un(this,this.derivation,this.scope_);else if(I.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new an(e)}return Qt(t),this.isComputing=!1,n},t.suspend_=function(){this.keepAlive_||(pn(this),this.value_=void 0,this.isTracing_!==rn.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' was suspended and it will recompute on the next access.`))},t.observe_=function(e,t){var n=this,r=!0,i=void 0;return ur(function(){var a=n.get();if(!r||t){var o=F();e({observableKind:`computed`,debugObjectName:n.name_,type:Ei,object:n,newValue:a,oldValue:i}),hn(o)}r=!1,i=a})},t.warnAboutUntrackedRead_=function(){this.isTracing_!==rn.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`),(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:I.computedRequiresReaction)&&console.warn(`[mobx] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`)},t.toString=function(){return this.name_+`[`+this.derivation.toString()+`]`},t.valueOf=function(){return oe(this.get())},t[Symbol.toPrimitive]=function(){return this.valueOf()},me(e,[{key:`isComputing`,get:function(){return le(this.flags_,e.isComputingMask_)},set:function(t){this.flags_=ue(this.flags_,e.isComputingMask_,t)}},{key:`isRunningSetter`,get:function(){return le(this.flags_,e.isRunningSetterMask_)},set:function(t){this.flags_=ue(this.flags_,e.isRunningSetterMask_,t)}},{key:`isBeingObserved`,get:function(){return le(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return le(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=ue(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();tn.isComputingMask_=1,tn.isRunningSetterMask_=2,tn.isBeingObservedMask_=4,tn.isPendingUnobservationMask_=8,tn.diffValueMask_=16;var nn=w(`ComputedValue`,tn),N;(function(e){e[e.NOT_TRACKING_=-1]=`NOT_TRACKING_`,e[e.UP_TO_DATE_=0]=`UP_TO_DATE_`,e[e.POSSIBLY_STALE_=1]=`POSSIBLY_STALE_`,e[e.STALE_=2]=`STALE_`})(N||={});var rn;(function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`})(rn||={});var an=function(e){this.cause=void 0,this.cause=e};function on(e){return e instanceof an}function sn(e){switch(e.dependenciesState_){case N.UP_TO_DATE_:return!1;case N.NOT_TRACKING_:case N.STALE_:return!0;case N.POSSIBLY_STALE_:for(var t=gn(!0),n=F(),r=e.observing_,i=r.length,a=0;a<i;a++){var o=r[a];if(nn(o)){if(I.disableErrorBoundaries)o.get();else try{o.get()}catch{return hn(n),_n(t),!0}if(e.dependenciesState_===N.STALE_)return hn(n),_n(t),!0}}return vn(e),hn(n),_n(t),!1}}function cn(){return I.trackingDerivation!==null}function P(e){var t=e.observers_.size>0;!I.allowStateChanges&&(t||I.enforceActions===`always`)&&console.warn(`[MobX] `+(I.enforceActions?`Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: `:`Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: `)+e.name_)}function ln(e){!I.allowStateReads&&I.observableRequiresReaction&&console.warn(`[mobx] Observable '`+e.name_+`' being read outside a reactive context.`)}function un(e,t,n){var r=gn(!0);vn(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++I.runId;var i=I.trackingDerivation;I.trackingDerivation=e,I.inBatch++;var a;if(I.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new an(e)}return I.inBatch--,I.trackingDerivation=i,fn(e),dn(e),_n(r),a}function dn(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:I.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '`+e.name_+`' is created/updated without reading any observable value.`)}function fn(e){for(var t=e.observing_,n=e.observing_=e.newObserving_,r=N.UP_TO_DATE_,i=0,a=e.unboundDepsCount_,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.dependenciesState_>r&&(r=s.dependenciesState_)}for(n.length=i,e.newObserving_=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&kn(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,On(l,e))}r!==N.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}function pn(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)kn(t[n],e);e.dependenciesState_=N.NOT_TRACKING_}function mn(e){var t=F();try{return e()}finally{hn(t)}}function F(){var e=I.trackingDerivation;return I.trackingDerivation=null,e}function hn(e){I.trackingDerivation=e}function gn(e){var t=I.allowStateReads;return I.allowStateReads=e,t}function _n(e){I.allowStateReads=e}function vn(e){if(e.dependenciesState_!==N.UP_TO_DATE_){e.dependenciesState_=N.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=N.UP_TO_DATE_}}var yn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],bn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},xn=!0,Sn=!1,I=function(){var e=i();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(xn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new bn().version&&(xn=!1),xn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new bn):(setTimeout(function(){Sn||n(35)},1),new bn)}();function Cn(){if((I.pendingReactions.length||I.inBatch||I.isRunningReactions)&&n(36),Sn=!0,xn){var e=i();--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),I=new bn}}function wn(){return I}function Tn(){var e=new bn;for(var t in e)yn.indexOf(t)===-1&&(I[t]=e[t]);I.allowStateChanges=!I.enforceActions}function En(e){return e.observers_&&e.observers_.size>0}function Dn(e){return e.observers_}function On(e,t){e.observers_.add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function kn(e,t){e.observers_.delete(t),e.observers_.size===0&&An(e)}function An(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,I.pendingUnobservations.push(e))}function jn(){I.inBatch++}function Mn(){if(--I.inBatch===0){Vn();for(var e=I.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.observers_.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof tn&&n.suspend_())}I.pendingUnobservations=[]}}function Nn(e){ln(e);var t=I.trackingDerivation;return t===null?(e.observers_.size===0&&I.inBatch>0&&An(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&I.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function Pn(e){e.lowestObserverState_!==N.STALE_&&(e.lowestObserverState_=N.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===N.UP_TO_DATE_&&(t.isTracing_!==rn.NONE&&L(t,e),t.onBecomeStale_()),t.dependenciesState_=N.STALE_}))}function Fn(e){e.lowestObserverState_!==N.STALE_&&(e.lowestObserverState_=N.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===N.POSSIBLY_STALE_?(t.dependenciesState_=N.STALE_,t.isTracing_!==rn.NONE&&L(t,e)):t.dependenciesState_===N.UP_TO_DATE_&&(e.lowestObserverState_=N.UP_TO_DATE_)}))}function In(e){e.lowestObserverState_===N.UP_TO_DATE_&&(e.lowestObserverState_=N.POSSIBLY_STALE_,e.observers_.forEach(function(e){e.dependenciesState_===N.UP_TO_DATE_&&(e.dependenciesState_=N.POSSIBLY_STALE_,e.onBecomeStale_())}))}function L(e,t){if(console.log(`[mobx.trace] '`+e.name_+`' is invalidated due to a change in: '`+t.name_+`'`),e.isTracing_===rn.BREAK){var n=[];Ln(wr(e),n,1),Function(`debugger;
|
|
158
158
|
/*
|
|
159
159
|
Tracing '`+e.name_+`'
|
|
160
160
|
|
|
@@ -169,38 +169,38 @@ The dependencies for this derivation are:
|
|
|
169
169
|
`+n.join(`
|
|
170
170
|
`)+`
|
|
171
171
|
*/
|
|
172
|
-
`)()}}function Ln(e,t,n){if(t.length>=1e3){t.push(`(and many more)`);return}t.push(``+` `.repeat(n-1)+e.name),e.dependencies&&e.dependencies.forEach(function(e){return Ln(e,t,n+1)})}var R=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction@`+h()),this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=N.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=rn.NONE,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}var t=e.prototype;return t.onBecomeStale_=function(){this.schedule_()},t.schedule_=function(){this.isScheduled||(this.isScheduled=!0,I.pendingReactions.push(this),Vn())},t.runReaction_=function(){if(!this.isDisposed){jn(),this.isScheduled=!1;var e=I.trackingContext;if(I.trackingContext=this,sn(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&Wn()&&Gn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}I.trackingContext=e,Mn()}},t.track=function(e){if(!this.isDisposed){jn();var t=Wn(),n;t&&(n=Date.now(),Kn({name:this.name_,type:`reaction`})),this.isRunning=!0;var r=I.trackingContext;I.trackingContext=this;var i=un(this,e,void 0);I.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&pn(this),on(i)&&this.reportExceptionInDerivation_(i.cause),t&&Jn({time:Date.now()-n}),Mn()}},t.reportExceptionInDerivation_=function(e){var t=this;if(this.errorHandler_){this.errorHandler_(e,this);return}if(I.disableErrorBoundaries)throw e;var n=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '`+this+`'`;I.suppressReactionErrors?console.warn(`[mobx] (error in reaction '`+this.name_+`' suppressed, fix error of causing action below)`):console.error(n,e),Wn()&&Gn({type:`error`,name:this.name_,message:n,error:``+e}),I.globalReactionErrorHandlers.forEach(function(n){return n(e,t)})},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||(jn(),pn(this),Mn()))},t.getDisposer_=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[O]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.name_+`]`},t.trace=function(e){e===void 0&&(e=!1),si(this,e)},me(e,[{key:`isDisposed`,get:function(){return le(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isDisposedMask_,t)}},{key:`isScheduled`,get:function(){return le(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=ue(this.flags_,e.isScheduledMask_,t)}},{key:`isTrackPending`,get:function(){return le(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=ue(this.flags_,e.isTrackPendingMask_,t)}},{key:`isRunning`,get:function(){return le(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=ue(this.flags_,e.isRunningMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();R.isDisposedMask_=1,R.isScheduledMask_=2,R.isTrackPendingMask_=4,R.isRunningMask_=8,R.diffValueMask_=16;function Rn(e){return I.globalReactionErrorHandlers.push(e),function(){var t=I.globalReactionErrorHandlers.indexOf(e);t>=0&&I.globalReactionErrorHandlers.splice(t,1)}}var zn=100,Bn=function(e){return e()};function Vn(){I.inBatch>0||I.isRunningReactions||Bn(Hn)}function Hn(){I.isRunningReactions=!0;for(var e=I.pendingReactions,t=0;e.length>0;){++t===zn&&(console.error(`Reaction doesn't converge to a stable state after `+zn+` iterations.`+(` Probably there is a cycle in the reactive function: `+e[0])),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].runReaction_()}I.isRunningReactions=!1}var z=te(`Reaction`,R);function Un(e){var t=Bn;Bn=function(n){return e(function(){return t(n)})}}function Wn(){return!!I.spyListeners.length}function Gn(e){if(I.spyListeners.length)for(var t=I.spyListeners,n=0,r=t.length;n<r;n++)t[n](e)}function Kn(e){Gn(D({},e,{spyReportStart:!0}))}var qn={type:`report-end`,spyReportEnd:!0};function Jn(e){Gn(e?D({},e,{type:`report-end`,spyReportEnd:!0}):qn)}function Yn(e){return I.spyListeners.push(e),g(function(){I.spyListeners=I.spyListeners.filter(function(t){return t!==e})})}var Xn=`action`,Zn=`action.bound`,Qn=`autoAction`,$n=`autoAction.bound`,er=`<unnamed action>`,tr=Xe(Xn),nr=Xe(Zn,{bound:!0}),rr=Xe(Qn,{autoAction:!0}),ir=Xe($n,{autoAction:!0,bound:!0});function ar(e){return function(t,r){if(v(t))return j(t.name||er,t,e);if(v(r))return j(t,r,e);if(Ae(r))return(e?rr:tr).decorate_20223_(t,r);if(y(r))return De(t,r,e?rr:tr);if(y(t))return Ee(Xe(e?Qn:Xn,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}var or=ar(!1);Object.assign(or,tr);var sr=ar(!0);Object.assign(sr,rr),or.bound=Ee(nr),sr.bound=Ee(ir);function cr(e){return qt(e.name||er,!1,e,this,void 0)}function lr(e){return v(e)&&e.isMobxAction===!0}function ur(e,t){var r;t===void 0&&(t=u),v(e)||n(`Autorun expects a function as first argument`),lr(e)&&n(`Autorun does not accept actions since actions are untrackable`);var i=t?.name??(e.name||`Autorun@`+h()),a=!t.scheduler&&!t.delay,o;if(a)o=new R(i,function(){this.track(l)},t.onError,t.requiresObservable);else{var s=fr(t),c=!1;o=new R(i,function(){c||(c=!0,s(function(){c=!1,o.isDisposed||o.track(l)}))},t.onError,t.requiresObservable)}function l(){e(o)}return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||o.schedule_(),o.getDisposer_(t?.signal)}var dr=function(e){return e()};function fr(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:dr}function pr(e,t,r){var i;r===void 0&&(r=u),(!v(e)||!v(t))&&n(`First and second argument to reaction should be functions`),x(r)||n(`Third argument of reactions should be an object`);var a=r.name??`Reaction@`+h(),o=or(a,r.onError?mr(r.onError,t):t),s=!r.scheduler&&!r.delay,c=fr(r),l=!0,d=!1,f,p=r.compareStructural?ze.structural:r.equals||ze.default,m=new R(a,function(){l||s?g():d||(d=!0,c(g))},r.onError,r.requiresObservable);function g(){if(d=!1,!m.isDisposed){var t=!1,n=f;m.track(function(){var n=Xt(!1,function(){return e(m)});t=l||!p(f,n),f=n}),(l&&r.fireImmediately||!l&&t)&&o(f,n,m),l=!1}}return(i=r)!=null&&(i=i.signal)!=null&&i.aborted||m.schedule_(),m.getDisposer_(r?.signal)}function mr(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}var hr=`onBO`,gr=`onBUO`;function _r(e,t,n){return yr(hr,e,t,n)}function vr(e,t,n){return yr(gr,e,t,n)}function yr(e,t,n,r){var i=typeof r==`function`?pa(t,n):pa(t),a=v(r)?r:n,o=e+`L`;return i[o]?i[o].add(a):i[o]=new Set([a]),function(){var e=i[o];e&&(e.delete(a),e.size===0&&delete i[o])}}var br=`never`,xr=`always`,B=`observed`;function Sr(e){e.isolateGlobalState===!0&&Cn();var t=e.useProxies,n=e.enforceActions;if(t!==void 0&&(I.useProxies=t===xr?!0:t===br?!1:typeof Proxy<`u`),t===`ifavailable`&&(I.verifyProxies=!0),n!==void 0){var r=n===xr?xr:n===B;I.enforceActions=r,I.allowStateChanges=!(r===!0||r===xr)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(function(t){t in e&&(I[t]=!!e[t])}),I.allowStateReads=!I.observableRequiresReaction,I.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&Un(e.reactionScheduler)}function Cr(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),Vi(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),x(t)||n(`'extendObservable' only accepts plain objects as second argument`),(Gr(t)||Gr(r))&&n(`Extending an object with another observable (object) is not supported`);var a=ce(t);return ga(function(){var t=Zi(e,i)[O];E(a).forEach(function(e){t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function wr(e,t){return Tr(pa(e,t))}function Tr(e){var t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=Or(e.observing_).map(Tr)),t}function Er(e,t){return Dr(pa(e,t))}function Dr(e){var t={name:e.name_};return En(e)&&(t.observers=Array.from(Dn(e)).map(Dr)),t}function Or(e){return Array.from(new Set(e))}var kr=0,Ar=function(e){function t(){var n=e.call(this,`FLOW_CANCELLED`)||this;return Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}_e(t,e);var n=t.prototype;return n.toString=function(){return`Error: `+this.message},t}(we(Error));function jr(e){return e instanceof Ar}var Mr=nt(`flow`),Nr=nt(`flow.bound`,{bound:!0}),Pr=Object.assign(function(e,t){if(Ae(t))return Mr.decorate_20223_(e,t);if(y(t))return De(e,t,Mr);arguments.length!==1&&n(`Flow expects single argument with generator function`);var r=e,i=r.name||`<unnamed flow>`,a=function(){var e=this,t=arguments,n=++kr,a=or(i+` - runid: `+n+` - init`,r).apply(e,t),o,s=void 0,c=new Promise(function(e,t){var r=0;o=t;function c(e){s=void 0;var o;try{o=or(i+` - runid: `+n+` - yield `+ r++,a.next).call(a,e)}catch(e){return t(e)}u(o)}function l(e){s=void 0;var o;try{o=or(i+` - runid: `+n+` - yield `+ r++,a.throw).call(a,e)}catch(e){return t(e)}u(o)}function u(n){if(v(n?.then)){n.then(u,t);return}return n.done?e(n.value):(s=Promise.resolve(n.value),s.then(c,l))}c(void 0)});return c.cancel=or(i+` - runid: `+n+` - cancel`,function(){try{s&&V(s);var e=a.return(void 0),t=Promise.resolve(e.value);t.then(_,_),V(t),o(new Ar)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},Mr);Pr.bound=Ee(Nr);function V(e){v(e.cancel)&&e.cancel()}function Fr(e){return e}function Ir(e){return e?.isMobXFlow===!0}function Lr(e,t,r){var i;if(Vi(e)||Ii(e)||en(e))i=ma(e);else if(ea(e)){if(!y(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=ma(e,t)}else return n(`Expected observable map, object or array as first array`);return i.dehancer===void 0?(i.dehancer=typeof t==`function`?t:r,function(){i.dehancer=void 0}):n(`An intercept reader was already established`)}function Rr(e,t,n){return v(n)?Br(e,t,n):zr(e,t)}function zr(e,t){return ma(e).intercept_(t)}function Br(e,t,n){return ma(e,t).intercept_(n)}function Vr(e,t){return t===void 0?nn(e):ea(e)===!1||!e[O].values_.has(t)?!1:nn(pa(e,t))}function Hr(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):Vr(e)}function Ur(e,t){return y(t)?Vr(e,t):n(`isComputed expected a property name as second argument`)}function Wr(e,t){return e?t===void 0?ea(e)||!!e[O]||Ne(e)||z(e)||nn(e):Vi(e)||Ii(e)?n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`):ea(e)?e[O].values_.has(t):!1:!1}function Gr(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),Wr(e)}function Kr(e,t){return y(t)?Wr(e,t):n(`expected a property name as second argument`)}function qr(e){if(ea(e))return e[O].keys_();if(Vi(e)||Ki(e))return Array.from(e.keys());if(Ii(e))return e.map(function(e,t){return t});n(5)}function Jr(e){if(ea(e))return qr(e).map(function(t){return e[t]});if(Vi(e))return qr(e).map(function(t){return e.get(t)});if(Ki(e))return Array.from(e.values());if(Ii(e))return e.slice();n(6)}function Yr(e){if(ea(e))return qr(e).map(function(t){return[t,e[t]]});if(Vi(e))return qr(e).map(function(t){return[t,e.get(t)]});if(Ki(e))return Array.from(e.entries());if(Ii(e))return e.map(function(e,t){return[t,e]});n(7)}function Xr(e,t,r){if(arguments.length===2&&!Ki(e)){jn();var i=t;try{for(var a in i)Xr(e,a,i[a])}finally{Mn()}return}ea(e)?e[O].set_(t,r):Vi(e)?e.set(t,r):Ki(e)?e.add(t):Ii(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(`Invalid index: '`+t+`'`),jn(),t>=e.length&&(e.length=t+1),e[t]=r,Mn()):n(8)}function Zr(e,t){ea(e)?e[O].delete_(t):Vi(e)||Ki(e)?e.delete(t):Ii(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function Qr(e,t){if(ea(e))return e[O].has_(t);if(Vi(e)||Ki(e))return e.has(t);if(Ii(e))return t>=0&&t<e.length;n(10)}function $r(e,t){if(Qr(e,t)){if(ea(e))return e[O].get_(t);if(Vi(e))return e.get(t);if(Ii(e))return e[t];n(11)}}function ei(e,t,r){if(ea(e))return e[O].defineProperty_(t,r);n(39)}function ti(e){if(ea(e))return e[O].ownKeys_();n(38)}function ni(e,t,n,r){return v(n)?ii(e,t,n,r):ri(e,t,n)}function ri(e,t,n){return ma(e).observe_(t,n)}function ii(e,t,n,r){return ma(e,t).observe_(n,r)}function ai(e,t,n){return e.set(t,n),n}function H(e,t){if(typeof e!=`object`||!e||e instanceof Date||!Gr(e))return e;if(en(e)||nn(e))return H(e.get(),t);if(t.has(e))return t.get(e);if(Ii(e)){var n=ai(t,e,Array(e.length));return e.forEach(function(e,r){n[r]=H(e,t)}),n}if(Ki(e)){var r=ai(t,e,new Set);return e.forEach(function(e){r.add(H(e,t))}),r}if(Vi(e)){var i=ai(t,e,new Map);return e.forEach(function(e,n){i.set(n,H(e,t))}),i}else{var a=ai(t,e,{});return ti(e).forEach(function(n){c.propertyIsEnumerable.call(e,n)&&(a[n]=H(e[n],t))}),a}}function oi(e,t){return t&&n(`toJS no longer supports options`),H(e,new Map)}function si(){var e=!1,t=[...arguments];typeof t[t.length-1]==`boolean`&&(e=t.pop());var r=ci(t);if(!r)return n(`'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly`);r.isTracing_===rn.NONE&&console.log(`[mobx.trace] '`+r.name_+`' tracing enabled`),r.isTracing_=e?rn.BREAK:rn.LOG}function ci(e){switch(e.length){case 0:return I.trackingDerivation;case 1:return pa(e[0]);case 2:return pa(e[0],e[1])}}function li(e,t){t===void 0&&(t=void 0),jn();try{return e.apply(t)}finally{Mn()}}function ui(e,t,n){return arguments.length===1||t&&typeof t==`object`?fi(e,t):di(e,t,n||{})}function di(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout(function(){if(!o[O].isDisposed)if(o(),n.onError)n.onError(i);else throw i},n.timeout)}n.name=n.name||`When@`+h();var a=j(n.name+`-effect`,t),o=ur(function(t){Xt(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())},n);return o}function fi(e,t){var r;if(t&&t.onError)return n(`the options 'onError' and 'promise' cannot be combined`);if(t!=null&&(r=t.signal)!=null&&r.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var i,a,o=new Promise(function(n,r){var o,s=di(e,n,D({},t,{onError:r}));i=function(){s(),r(Error(`WHEN_CANCELLED`))},a=function(){s(),r(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,a)}).finally(function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,a)});return o.cancel=i,o}function pi(e){return e[O]}var mi={has:function(e,t){return I.trackingDerivation&&m(`detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.`),pi(e).has_(t)},get:function(e,t){return pi(e).get_(t)},set:function(e,t,n){return y(t)?(pi(e).values_.has(t)||m(`add a new observable property through direct assignment. Use 'set' from 'mobx' instead.`),pi(e).set_(t,n,!0)??!0):!1},deleteProperty:function(e,t){return m(`delete properties from an observable object. Use 'remove' from 'mobx' instead.`),y(t)?pi(e).delete_(t,!0)??!0:!1},defineProperty:function(e,t,n){return m(`define property on an observable object. Use 'defineProperty' from 'mobx' instead.`),pi(e).defineProperty_(t,n)??!0},ownKeys:function(e){return I.trackingDerivation&&m(`iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.`),pi(e).ownKeys_()},preventExtensions:function(e){n(13)}};function hi(e,t){var n;return p(),e=Zi(e,t),(n=e[O]).proxy_??(n.proxy_=new Proxy(e,mi))}function gi(e){return e.interceptors_!==void 0&&e.interceptors_.length>0}function _i(e,t){var n=e.interceptors_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function vi(e,t){var r=F();try{for(var i=[].concat(e.interceptors_||[]),a=0,o=i.length;a<o&&(t=i[a](t),t&&!t.type&&n(14),t);a++);return t}finally{hn(r)}}function yi(e){return e.changeListeners_!==void 0&&e.changeListeners_.length>0}function bi(e,t){var n=e.changeListeners_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function xi(e,t){var n=F(),r=e.changeListeners_;if(r){r=r.slice();for(var i=0,a=r.length;i<a;i++)r[i](t);hn(n)}}function Si(e,t,r){return ga(function(){var i=Zi(e,r)[O];t&&e[Te]&&n(`makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.`),t??=ke(e),E(t).forEach(function(e){return i.make_(e,t[e])})}),e}var Ci=Symbol(`mobx-keys`);function wi(e,t,r){return!x(e)&&!x(Object.getPrototypeOf(e))&&n(`'makeAutoObservable' can only be used for classes that don't have a superclass`),ea(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),x(e)?Cr(e,e,t,r):(ga(function(){var n=Zi(e,r)[O];if(!e[Ci]){var i=Object.getPrototypeOf(e),a=new Set([].concat(E(e),E(i)));a.delete(`constructor`),a.delete(O),C(i,Ci,a)}e[Ci].forEach(function(e){return n.make_(e,t&&e in t?t[e]:!0)})}),e)}var Ti=`splice`,Ei=`update`,Di=1e4,Oi={get:function(e,t){var n=e[O];return t===O?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):se(ji,t)?ji[t]:e[t]},set:function(e,t,n){var r=e[O];return t===`length`&&r.setArrayLength_(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions:function(){n(15)}},ki=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray@`+h()),this.owned_=void 0,this.legacyMode_=void 0,this.atom_=void 0,this.values_=[],this.interceptors_=void 0,this.changeListeners_=void 0,this.enhancer_=void 0,this.dehancer=void 0,this.proxy_=void 0,this.lastKnownLength_=0,this.owned_=n,this.legacyMode_=r,this.atom_=new Me(e),this.enhancer_=function(n,r){return t(n,r,e+`[..]`)}}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.dehanceValues_=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},t.intercept_=function(e){return _i(this,e)},t.observe_=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:`splice`,index:0,added:this.values_.slice(),addedCount:this.values_.length,removed:[],removedCount:0}),bi(this,e)},t.getArrayLength_=function(){return this.atom_.reportObserved(),this.values_.length},t.setArrayLength_=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&n(`Out of range: `+e);var t=this.values_.length;if(e!==t)if(e>t){for(var r=Array(e-t),i=0;i<e-t;i++)r[i]=void 0;this.spliceWithArray_(t,0,r)}else this.spliceWithArray_(e,t-e)},t.updateArrayLength_=function(e,t){e!==this.lastKnownLength_&&n(16),this.lastKnownLength_+=t,this.legacyMode_&&t>0&&da(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;P(this.atom_);var i=this.values_.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=l),gi(this)){var a=vi(this,{object:this.proxy_,type:Ti,index:e,removedCount:t,added:n});if(!a)return l;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map(function(e){return r.enhancer_(e,void 0)}),this.legacyMode_||!0){var o=n.length-t;this.updateArrayLength_(i,o)}var s=this.spliceItemsIntoValues_(e,t,n);return(t!==0||n.length!==0)&&this.notifyArraySplice_(e,n,s),this.dehanceValues_(s)},t.spliceItemsIntoValues_=function(e,t,n){if(n.length<Di){var r;return(r=this.values_).splice.apply(r,[e,t].concat(n))}else{var i=this.values_.slice(e,e+t),a=this.values_.slice(e+t);this.values_.length+=n.length-t;for(var o=0;o<n.length;o++)this.values_[e+o]=n[o];for(var s=0;s<a.length;s++)this.values_[e+n.length+s]=a[s];return i}},t.notifyArrayChildUpdate_=function(e,t,n){var r=!this.owned_&&Wn(),i=yi(this),a=i||r?{observableKind:`array`,object:this.proxy_,type:Ei,debugObjectName:this.atom_.name_,index:e,newValue:t,oldValue:n}:null;r&&Kn(a),this.atom_.reportChanged(),i&&xi(this,a),r&&Jn()},t.notifyArraySplice_=function(e,t,n){var r=!this.owned_&&Wn(),i=yi(this),a=i||r?{observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:Ti,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;r&&Kn(a),this.atom_.reportChanged(),i&&xi(this,a),r&&Jn()},t.get_=function(e){if(this.legacyMode_&&e>=this.values_.length){console.warn(`[mobx.array] Attempt to read an array index (`+e+`) that is out of bounds (`+this.values_.length+`). Please check length first. Out of bound indices will not be tracked by MobX`);return}return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e])},t.set_=function(e,t){var r=this.values_;if(this.legacyMode_&&e>r.length&&n(17,e,r.length),e<r.length){P(this.atom_);var i=r[e];if(gi(this)){var a=vi(this,{type:Ei,object:this.proxy_,index:e,newValue:t});if(!a)return;t=a.newValue}t=this.enhancer_(t,i),t!==i&&(r[e]=t,this.notifyArrayChildUpdate_(e,t,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=t,this.spliceWithArray_(r.length,0,o)}},e}();function Ai(e,t,n,r){return n===void 0&&(n=`ObservableArray@`+h()),r===void 0&&(r=!1),p(),ga(function(){var i=new ki(n,t,r,!1);ee(i.values_,O,i);var a=new Proxy(i.values_,Oi);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var ji={clear:function(){return this.splice(0)},replace:function(e){var t=this[O];return t.spliceWithArray_(0,t.values_.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[O];switch(arguments.length){case 0:return[];case 1:return r.spliceWithArray_(e);case 2:return r.spliceWithArray_(e,t)}return r.spliceWithArray_(e,t,n)},spliceWithArray:function(e,t,n){return this[O].spliceWithArray_(e,t,n)},push:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(e.values_.length,0,t),e.values_.length},pop:function(){return this.splice(Math.max(this[O].values_.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(0,0,t),e.values_.length},reverse:function(){return I.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){I.trackingDerivation&&n(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[O],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};U(`at`,Mi),U(`concat`,Mi),U(`flat`,Mi),U(`includes`,Mi),U(`indexOf`,Mi),U(`join`,Mi),U(`lastIndexOf`,Mi),U(`slice`,Mi),U(`toString`,Mi),U(`toLocaleString`,Mi),U(`toSorted`,Mi),U(`toSpliced`,Mi),U(`with`,Mi),U(`every`,Ni),U(`filter`,Ni),U(`find`,Ni),U(`findIndex`,Ni),U(`findLast`,Ni),U(`findLastIndex`,Ni),U(`flatMap`,Ni),U(`forEach`,Ni),U(`map`,Ni),U(`some`,Ni),U(`toReversed`,Ni),U(`reduce`,Pi),U(`reduceRight`,Pi);function U(e,t){typeof Array.prototype[e]==`function`&&(ji[e]=t(e))}function Mi(e){return function(){var t=this[O];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function Ni(e){return function(t,n){var r=this,i=this[O];return i.atom_.reportObserved(),i.dehanceValues_(i.values_)[e](function(e,i){return t.call(n,e,i,r)})}}function Pi(e){return function(){var t=this,n=this[O];n.atom_.reportObserved();var r=n.dehanceValues_(n.values_),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}var Fi=te(`ObservableArrayAdministration`,ki);function Ii(e){return b(e)&&Fi(e[O])}var Li={},Ri=`add`,zi=`delete`,Bi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableMap@`+h()),this.enhancer_=void 0,this.name_=void 0,this[O]=Li,this.data_=void 0,this.hasMap_=void 0,this.keysAtom_=void 0,this.interceptors_=void 0,this.changeListeners_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=r,v(Map)||n(18),ga(function(){i.keysAtom_=Pe(i.name_+`.keys()`),i.data_=new Map,i.hasMap_=new Map,e&&i.merge(e)})}var t=e.prototype;return t.has_=function(e){return this.data_.has(e)},t.has=function(e){var t=this;if(!I.trackingDerivation)return this.has_(e);var n=this.hasMap_.get(e);if(!n){var r=n=new M(this.has_(e),He,this.name_+`.`+ae(e)+`?`,!1);this.hasMap_.set(e,r),vr(r,function(){return t.hasMap_.delete(e)})}return n.get()},t.set=function(e,t){var n=this.has_(e);if(gi(this)){var r=vi(this,{type:n?Ei:Ri,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this},t.delete=function(e){var t=this;if(P(this.keysAtom_),gi(this)&&!vi(this,{type:zi,object:this,name:e}))return!1;if(this.has_(e)){var n=Wn(),r=yi(this),i=r||n?{observableKind:`map`,debugObjectName:this.name_,type:zi,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return n&&Kn(i),li(function(){var n;t.keysAtom_.reportChanged(),(n=t.hasMap_.get(e))==null||n.setNewValue_(!1),t.data_.get(e).setNewValue_(void 0),t.data_.delete(e)}),r&&xi(this,i),n&&Jn(),!0}return!1},t.updateValue_=function(e,t){var n=this.data_.get(e);if(t=n.prepareNewValue_(t),t!==I.UNCHANGED){var r=Wn(),i=yi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Ei,object:this,oldValue:n.value_,name:e,newValue:t}:null;r&&Kn(a),n.setNewValue_(t),i&&xi(this,a),r&&Jn()}},t.addValue_=function(e,t){var n=this;P(this.keysAtom_),li(function(){var r,i=new M(t,n.enhancer_,n.name_+`.`+ae(e),!1);n.data_.set(e,i),t=i.value_,(r=n.hasMap_.get(e))==null||r.setNewValue_(!0),n.keysAtom_.reportChanged()});var r=Wn(),i=yi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Ri,object:this,name:e,newValue:t}:null;r&&Kn(a),i&&xi(this,a),r&&Jn()},t.get=function(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)},t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.keys=function(){return this.keysAtom_.reportObserved(),this.data_.keys()},t.values=function(){var e=this,t=this.keys();return Hi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:e.get(i)}}})},t.entries=function(){var e=this,t=this.keys();return Hi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},t[Symbol.iterator]=function(){return this.entries()},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value,a=i[0],o=i[1];e.call(t,o,a,this)}},t.merge=function(e){var t=this;return Vi(e)&&(e=new Map(e)),li(function(){x(e)?T(e).forEach(function(n){return t.set(n,e[n])}):Array.isArray(e)?e.forEach(function(e){var n=e[0],r=e[1];return t.set(n,r)}):w(e)?(ne(e)||n(19,e),e.forEach(function(e,n){return t.set(n,e)})):e!=null&&n(20,e)}),this},t.clear=function(){var e=this;li(function(){mn(function(){for(var t=he(e.keys()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.replace=function(e){var t=this;return li(function(){for(var n=Ui(e),r=new Map,i=!1,a=he(t.data_.keys()),o;!(o=a()).done;){var s=o.value;if(!n.has(s))if(t.delete(s))i=!0;else{var c=t.data_.get(s);r.set(s,c)}}for(var l=he(n.entries()),u;!(u=l()).done;){var d=u.value,f=d[0],p=d[1],m=t.data_.has(f);if(t.set(f,p),t.data_.has(f)){var h=t.data_.get(f);r.set(f,h),m||(i=!0)}}if(!i)if(t.data_.size!==r.size)t.keysAtom_.reportChanged();else for(var g=t.data_.keys(),_=r.keys(),v=g.next(),y=_.next();!v.done;){if(v.value!==y.value){t.keysAtom_.reportChanged();break}v=g.next(),y=_.next()}t.data_=r}),this},t.toString=function(){return`[object ObservableMap]`},t.toJSON=function(){return Array.from(this)},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with maps."),bi(this,e)},t.intercept_=function(e){return _i(this,e)},me(e,[{key:`size`,get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),Vi=te(`ObservableMap`,Bi);function Hi(e){return e[Symbol.toStringTag]=`MapIterator`,Sa(e)}function Ui(e){if(w(e)||Vi(e))return e;if(Array.isArray(e))return new Map(e);if(x(e)){var t=new Map;for(var r in e)t.set(r,e[r]);return t}else return n(21,e)}var Wi={},Gi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableSet@`+h()),this.name_=void 0,this[O]=Wi,this.data_=new Set,this.atom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.dehancer=void 0,this.enhancer_=void 0,this.name_=r,v(Set)||n(22),this.enhancer_=function(e,n){return t(e,n,r)},ga(function(){i.atom_=Pe(i.name_),e&&i.replace(e)})}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.clear=function(){var e=this;li(function(){mn(function(){for(var t=he(e.data_.values()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value;e.call(t,i,i,this)}},t.add=function(e){var t=this;if(P(this.atom_),gi(this)){var n=vi(this,{type:Ri,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){li(function(){t.data_.add(t.enhancer_(e,void 0)),t.atom_.reportChanged()});var r=Wn(),i=yi(this),a=i||r?{observableKind:`set`,debugObjectName:this.name_,type:Ri,object:this,newValue:e}:null;r&&Kn(a),i&&xi(this,a),r&&Jn()}return this},t.delete=function(e){var t=this;if(gi(this)&&!vi(this,{type:zi,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Wn(),r=yi(this),i=r||n?{observableKind:`set`,debugObjectName:this.name_,type:zi,object:this,oldValue:e}:null;return n&&Kn(i),li(function(){t.atom_.reportChanged(),t.data_.delete(e)}),r&&xi(this,i),n&&Jn(),!0}return!1},t.has=function(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))},t.entries=function(){var e=this.values();return qi({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},t.keys=function(){return this.values()},t.values=function(){this.atom_.reportObserved();var e=this,t=this.data_.values();return qi({next:function(){var n=t.next(),r=n.value,i=n.done;return i?{value:void 0,done:i}:{value:e.dehanceValue_(r),done:i}}})},t.intersection=function(e){return re(e)&&!Ki(e)?e.intersection(this):new Set(this).intersection(e)},t.union=function(e){return re(e)&&!Ki(e)?e.union(this):new Set(this).union(e)},t.difference=function(e){return new Set(this).difference(e)},t.symmetricDifference=function(e){return re(e)&&!Ki(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},t.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},t.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},t.isDisjointFrom=function(e){return re(e)&&!Ki(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},t.replace=function(e){var t=this;return Ki(e)&&(e=new Set(e)),li(function(){Array.isArray(e)||re(e)?(t.clear(),e.forEach(function(e){return t.add(e)})):e!=null&&n(`Cannot initialize set from `+e)}),this},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with sets."),bi(this,e)},t.intercept_=function(e){return _i(this,e)},t.toJSON=function(){return Array.from(this)},t.toString=function(){return`[object ObservableSet]`},t[Symbol.iterator]=function(){return this.values()},me(e,[{key:`size`,get:function(){return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),Ki=te(`ObservableSet`,Gi);function qi(e){return e[Symbol.toStringTag]=`SetIterator`,Sa(e)}var Ji=Object.create(null),Yi=`remove`,Xi=function(){function e(e,t,r,i){t===void 0&&(t=new Map),i===void 0&&(i=yt),this.target_=void 0,this.values_=void 0,this.name_=void 0,this.defaultAnnotation_=void 0,this.keysAtom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.proxy_=void 0,this.isPlainObject_=void 0,this.appliedAnnotations_=void 0,this.pendingKeys_=void 0,this.target_=e,this.values_=t,this.name_=r,this.defaultAnnotation_=i,this.keysAtom_=new Me(this.name_+`.keys`),this.isPlainObject_=x(this.target_),wa(this.defaultAnnotation_)||n(`defaultAnnotation must be valid annotation`),this.appliedAnnotations_={}}var t=e.prototype;return t.getObservablePropValue_=function(e){return this.values_.get(e).get()},t.setObservablePropValue_=function(e,t){var n=this.values_.get(e);if(n instanceof tn)return n.set(t),!0;if(gi(this)){var r=vi(this,{type:Ei,object:this.proxy_||this.target_,name:e,newValue:t});if(!r)return null;t=r.newValue}if(t=n.prepareNewValue_(t),t!==I.UNCHANGED){var i=yi(this),a=Wn(),o=i||a?{type:Ei,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:n.value_,name:e,newValue:t}:null;a&&Kn(o),n.setNewValue_(t),i&&xi(this,o),a&&Jn()}return!0},t.get_=function(e){return I.trackingDerivation&&!se(this.target_,e)&&this.has_(e),this.target_[e]},t.set_=function(e,t,n){return n===void 0&&(n=!1),se(this.target_,e)?this.values_.has(e)?this.setObservablePropValue_(e,t):n?Reflect.set(this.target_,e,t):(this.target_[e]=t,!0):this.extend_(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.defaultAnnotation_,n)},t.has_=function(e){if(!I.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;var t=this.pendingKeys_.get(e);return t||(t=new M(e in this.target_,He,this.name_+`.`+ae(e)+`?`,!1),this.pendingKeys_.set(e,t)),t.get()},t.make_=function(e,t){if(t===!0&&(t=this.defaultAnnotation_),t!==!1){if(na(this,t,e),!(e in this.target_)){var r;if((r=this.target_[Te])!=null&&r[e])return;n(1,t.annotationType_,this.name_+`.`+e.toString())}for(var i=this.target_;i&&i!==c;){var a=o(i,e);if(a){var s=t.make_(this,e,a,i);if(s===0)return;if(s===1)break}i=Object.getPrototypeOf(i)}ta(this,t,e)}},t.extend_=function(e,t,n,r){if(r===void 0&&(r=!1),n===!0&&(n=this.defaultAnnotation_),n===!1)return this.defineProperty_(e,t,r);na(this,n,e);var i=n.extend_(this,e,t,r);return i&&ta(this,n,e),i},t.defineProperty_=function(e,t,n){n===void 0&&(n=!1),P(this.keysAtom_);try{jn();var r=this.delete_(e);if(!r)return r;if(gi(this)){var i=vi(this,{object:this.proxy_||this.target_,name:e,type:Ri,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=D({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.target_,e,t))return!1}else s(this.target_,e,t);this.notifyPropertyAddition_(e,t.value)}finally{Mn()}return!0},t.defineObservableProperty_=function(e,t,n,r){r===void 0&&(r=!1),P(this.keysAtom_);try{jn();var i=this.delete_(e);if(!i)return i;if(gi(this)){var a=vi(this,{object:this.proxy_||this.target_,name:e,type:Ri,newValue:t});if(!a)return null;t=a.newValue}var o=$i(e),c={configurable:I.safeDescriptors?this.isPlainObject_:!0,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.target_,e,c))return!1}else s(this.target_,e,c);var l=new M(t,n,this.name_+`.`+e.toString(),!1);this.values_.set(e,l),this.notifyPropertyAddition_(e,l.value_)}finally{Mn()}return!0},t.defineComputedProperty_=function(e,t,n){n===void 0&&(n=!1),P(this.keysAtom_);try{jn();var r=this.delete_(e);if(!r)return r;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:Ri,newValue:void 0}))return null;t.name||=this.name_+`.`+e.toString(),t.context=this.proxy_||this.target_;var i=$i(e),a={configurable:I.safeDescriptors?this.isPlainObject_:!0,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.target_,e,a))return!1}else s(this.target_,e,a);this.values_.set(e,new tn(t)),this.notifyPropertyAddition_(e,void 0)}finally{Mn()}return!0},t.delete_=function(e,t){if(t===void 0&&(t=!1),P(this.keysAtom_),!se(this.target_,e))return!0;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:Yi}))return null;try{var n;jn();var r=yi(this),i=Wn(),a=this.values_.get(e),s=void 0;if(!a&&(r||i)&&(s=o(this.target_,e)?.value),t){if(!Reflect.deleteProperty(this.target_,e))return!1}else delete this.target_[e];if(delete this.appliedAnnotations_[e],a&&(this.values_.delete(e),a instanceof M&&(s=a.value_),Pn(a)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||i){var c={type:Yi,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};i&&Kn(c),r&&xi(this,c),i&&Jn()}}finally{Mn()}return!0},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support the fire immediately property for observable objects."),bi(this,e)},t.intercept_=function(e){return _i(this,e)},t.notifyPropertyAddition_=function(e,t){var n,r=yi(this),i=Wn();if(r||i){var a=r||i?{type:Ri,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&Kn(a),r&&xi(this,a),i&&Jn()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()},t.ownKeys_=function(){return this.keysAtom_.reportObserved(),E(this.target_)},t.keys_=function(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)},e}();function Zi(e,t){if(t&&ea(e)&&n(`Options can't be provided for already observable objects.`),se(e,O))return ma(e)instanceof Xi||n(`Cannot convert '`+ha(e)+`' into observable object:
|
|
172
|
+
`)()}}function Ln(e,t,n){if(t.length>=1e3){t.push(`(and many more)`);return}t.push(``+` `.repeat(n-1)+e.name),e.dependencies&&e.dependencies.forEach(function(e){return Ln(e,t,n+1)})}var R=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction@`+h()),this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=N.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=rn.NONE,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}var t=e.prototype;return t.onBecomeStale_=function(){this.schedule_()},t.schedule_=function(){this.isScheduled||(this.isScheduled=!0,I.pendingReactions.push(this),Vn())},t.runReaction_=function(){if(!this.isDisposed){jn(),this.isScheduled=!1;var e=I.trackingContext;if(I.trackingContext=this,sn(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&Wn()&&Gn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}I.trackingContext=e,Mn()}},t.track=function(e){if(!this.isDisposed){jn();var t=Wn(),n;t&&(n=Date.now(),Kn({name:this.name_,type:`reaction`})),this.isRunning=!0;var r=I.trackingContext;I.trackingContext=this;var i=un(this,e,void 0);I.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&pn(this),on(i)&&this.reportExceptionInDerivation_(i.cause),t&&Jn({time:Date.now()-n}),Mn()}},t.reportExceptionInDerivation_=function(e){var t=this;if(this.errorHandler_){this.errorHandler_(e,this);return}if(I.disableErrorBoundaries)throw e;var n=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '`+this+`'`;I.suppressReactionErrors?console.warn(`[mobx] (error in reaction '`+this.name_+`' suppressed, fix error of causing action below)`):console.error(n,e),Wn()&&Gn({type:`error`,name:this.name_,message:n,error:``+e}),I.globalReactionErrorHandlers.forEach(function(n){return n(e,t)})},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||(jn(),pn(this),Mn()))},t.getDisposer_=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[O]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.name_+`]`},t.trace=function(e){e===void 0&&(e=!1),si(this,e)},me(e,[{key:`isDisposed`,get:function(){return le(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isDisposedMask_,t)}},{key:`isScheduled`,get:function(){return le(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=ue(this.flags_,e.isScheduledMask_,t)}},{key:`isTrackPending`,get:function(){return le(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=ue(this.flags_,e.isTrackPendingMask_,t)}},{key:`isRunning`,get:function(){return le(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=ue(this.flags_,e.isRunningMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();R.isDisposedMask_=1,R.isScheduledMask_=2,R.isTrackPendingMask_=4,R.isRunningMask_=8,R.diffValueMask_=16;function Rn(e){return I.globalReactionErrorHandlers.push(e),function(){var t=I.globalReactionErrorHandlers.indexOf(e);t>=0&&I.globalReactionErrorHandlers.splice(t,1)}}var zn=100,Bn=function(e){return e()};function Vn(){I.inBatch>0||I.isRunningReactions||Bn(Hn)}function Hn(){I.isRunningReactions=!0;for(var e=I.pendingReactions,t=0;e.length>0;){++t===zn&&(console.error(`Reaction doesn't converge to a stable state after `+zn+` iterations.`+(` Probably there is a cycle in the reactive function: `+e[0])),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].runReaction_()}I.isRunningReactions=!1}var z=w(`Reaction`,R);function Un(e){var t=Bn;Bn=function(n){return e(function(){return t(n)})}}function Wn(){return!!I.spyListeners.length}function Gn(e){if(I.spyListeners.length)for(var t=I.spyListeners,n=0,r=t.length;n<r;n++)t[n](e)}function Kn(e){Gn(D({},e,{spyReportStart:!0}))}var qn={type:`report-end`,spyReportEnd:!0};function Jn(e){Gn(e?D({},e,{type:`report-end`,spyReportEnd:!0}):qn)}function Yn(e){return I.spyListeners.push(e),g(function(){I.spyListeners=I.spyListeners.filter(function(t){return t!==e})})}var Xn=`action`,Zn=`action.bound`,Qn=`autoAction`,$n=`autoAction.bound`,er=`<unnamed action>`,tr=Xe(Xn),nr=Xe(Zn,{bound:!0}),rr=Xe(Qn,{autoAction:!0}),ir=Xe($n,{autoAction:!0,bound:!0});function ar(e){return function(t,r){if(v(t))return j(t.name||er,t,e);if(v(r))return j(t,r,e);if(Ae(r))return(e?rr:tr).decorate_20223_(t,r);if(y(r))return De(t,r,e?rr:tr);if(y(t))return Ee(Xe(e?Qn:Xn,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}var or=ar(!1);Object.assign(or,tr);var sr=ar(!0);Object.assign(sr,rr),or.bound=Ee(nr),sr.bound=Ee(ir);function cr(e){return qt(e.name||er,!1,e,this,void 0)}function lr(e){return v(e)&&e.isMobxAction===!0}function ur(e,t){var r;t===void 0&&(t=u),v(e)||n(`Autorun expects a function as first argument`),lr(e)&&n(`Autorun does not accept actions since actions are untrackable`);var i=t?.name??(e.name||`Autorun@`+h()),a=!t.scheduler&&!t.delay,o;if(a)o=new R(i,function(){this.track(l)},t.onError,t.requiresObservable);else{var s=fr(t),c=!1;o=new R(i,function(){c||(c=!0,s(function(){c=!1,o.isDisposed||o.track(l)}))},t.onError,t.requiresObservable)}function l(){e(o)}return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||o.schedule_(),o.getDisposer_(t?.signal)}var dr=function(e){return e()};function fr(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:dr}function pr(e,t,r){var i;r===void 0&&(r=u),(!v(e)||!v(t))&&n(`First and second argument to reaction should be functions`),x(r)||n(`Third argument of reactions should be an object`);var a=r.name??`Reaction@`+h(),o=or(a,r.onError?mr(r.onError,t):t),s=!r.scheduler&&!r.delay,c=fr(r),l=!0,d=!1,f,p=r.compareStructural?ze.structural:r.equals||ze.default,m=new R(a,function(){l||s?g():d||(d=!0,c(g))},r.onError,r.requiresObservable);function g(){if(d=!1,!m.isDisposed){var t=!1,n=f;m.track(function(){var n=Xt(!1,function(){return e(m)});t=l||!p(f,n),f=n}),(l&&r.fireImmediately||!l&&t)&&o(f,n,m),l=!1}}return(i=r)!=null&&(i=i.signal)!=null&&i.aborted||m.schedule_(),m.getDisposer_(r?.signal)}function mr(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}var hr=`onBO`,gr=`onBUO`;function _r(e,t,n){return yr(hr,e,t,n)}function vr(e,t,n){return yr(gr,e,t,n)}function yr(e,t,n,r){var i=typeof r==`function`?pa(t,n):pa(t),a=v(r)?r:n,o=e+`L`;return i[o]?i[o].add(a):i[o]=new Set([a]),function(){var e=i[o];e&&(e.delete(a),e.size===0&&delete i[o])}}var br=`never`,xr=`always`,B=`observed`;function Sr(e){e.isolateGlobalState===!0&&Cn();var t=e.useProxies,n=e.enforceActions;if(t!==void 0&&(I.useProxies=t===xr?!0:t===br?!1:typeof Proxy<`u`),t===`ifavailable`&&(I.verifyProxies=!0),n!==void 0){var r=n===xr?xr:n===B;I.enforceActions=r,I.allowStateChanges=!(r===!0||r===xr)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(function(t){t in e&&(I[t]=!!e[t])}),I.allowStateReads=!I.observableRequiresReaction,I.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&Un(e.reactionScheduler)}function Cr(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),Vi(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),x(t)||n(`'extendObservable' only accepts plain objects as second argument`),(Gr(t)||Gr(r))&&n(`Extending an object with another observable (object) is not supported`);var a=ce(t);return ga(function(){var t=Zi(e,i)[O];E(a).forEach(function(e){t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function wr(e,t){return Tr(pa(e,t))}function Tr(e){var t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=Or(e.observing_).map(Tr)),t}function Er(e,t){return Dr(pa(e,t))}function Dr(e){var t={name:e.name_};return En(e)&&(t.observers=Array.from(Dn(e)).map(Dr)),t}function Or(e){return Array.from(new Set(e))}var kr=0,Ar=function(e){function t(){var n=e.call(this,`FLOW_CANCELLED`)||this;return Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}_e(t,e);var n=t.prototype;return n.toString=function(){return`Error: `+this.message},t}(we(Error));function jr(e){return e instanceof Ar}var Mr=nt(`flow`),Nr=nt(`flow.bound`,{bound:!0}),Pr=Object.assign(function(e,t){if(Ae(t))return Mr.decorate_20223_(e,t);if(y(t))return De(e,t,Mr);arguments.length!==1&&n(`Flow expects single argument with generator function`);var r=e,i=r.name||`<unnamed flow>`,a=function(){var e=this,t=arguments,n=++kr,a=or(i+` - runid: `+n+` - init`,r).apply(e,t),o,s=void 0,c=new Promise(function(e,t){var r=0;o=t;function c(e){s=void 0;var o;try{o=or(i+` - runid: `+n+` - yield `+ r++,a.next).call(a,e)}catch(e){return t(e)}u(o)}function l(e){s=void 0;var o;try{o=or(i+` - runid: `+n+` - yield `+ r++,a.throw).call(a,e)}catch(e){return t(e)}u(o)}function u(n){if(v(n?.then)){n.then(u,t);return}return n.done?e(n.value):(s=Promise.resolve(n.value),s.then(c,l))}c(void 0)});return c.cancel=or(i+` - runid: `+n+` - cancel`,function(){try{s&&V(s);var e=a.return(void 0),t=Promise.resolve(e.value);t.then(_,_),V(t),o(new Ar)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},Mr);Pr.bound=Ee(Nr);function V(e){v(e.cancel)&&e.cancel()}function Fr(e){return e}function Ir(e){return e?.isMobXFlow===!0}function Lr(e,t,r){var i;if(Vi(e)||Ii(e)||en(e))i=ma(e);else if(ea(e)){if(!y(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=ma(e,t)}else return n(`Expected observable map, object or array as first array`);return i.dehancer===void 0?(i.dehancer=typeof t==`function`?t:r,function(){i.dehancer=void 0}):n(`An intercept reader was already established`)}function Rr(e,t,n){return v(n)?Br(e,t,n):zr(e,t)}function zr(e,t){return ma(e).intercept_(t)}function Br(e,t,n){return ma(e,t).intercept_(n)}function Vr(e,t){return t===void 0?nn(e):ea(e)===!1||!e[O].values_.has(t)?!1:nn(pa(e,t))}function Hr(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):Vr(e)}function Ur(e,t){return y(t)?Vr(e,t):n(`isComputed expected a property name as second argument`)}function Wr(e,t){return e?t===void 0?ea(e)||!!e[O]||Ne(e)||z(e)||nn(e):Vi(e)||Ii(e)?n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`):ea(e)?e[O].values_.has(t):!1:!1}function Gr(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),Wr(e)}function Kr(e,t){return y(t)?Wr(e,t):n(`expected a property name as second argument`)}function qr(e){if(ea(e))return e[O].keys_();if(Vi(e)||Ki(e))return Array.from(e.keys());if(Ii(e))return e.map(function(e,t){return t});n(5)}function Jr(e){if(ea(e))return qr(e).map(function(t){return e[t]});if(Vi(e))return qr(e).map(function(t){return e.get(t)});if(Ki(e))return Array.from(e.values());if(Ii(e))return e.slice();n(6)}function Yr(e){if(ea(e))return qr(e).map(function(t){return[t,e[t]]});if(Vi(e))return qr(e).map(function(t){return[t,e.get(t)]});if(Ki(e))return Array.from(e.entries());if(Ii(e))return e.map(function(e,t){return[t,e]});n(7)}function Xr(e,t,r){if(arguments.length===2&&!Ki(e)){jn();var i=t;try{for(var a in i)Xr(e,a,i[a])}finally{Mn()}return}ea(e)?e[O].set_(t,r):Vi(e)?e.set(t,r):Ki(e)?e.add(t):Ii(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(`Invalid index: '`+t+`'`),jn(),t>=e.length&&(e.length=t+1),e[t]=r,Mn()):n(8)}function Zr(e,t){ea(e)?e[O].delete_(t):Vi(e)||Ki(e)?e.delete(t):Ii(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function Qr(e,t){if(ea(e))return e[O].has_(t);if(Vi(e)||Ki(e))return e.has(t);if(Ii(e))return t>=0&&t<e.length;n(10)}function $r(e,t){if(Qr(e,t)){if(ea(e))return e[O].get_(t);if(Vi(e))return e.get(t);if(Ii(e))return e[t];n(11)}}function ei(e,t,r){if(ea(e))return e[O].defineProperty_(t,r);n(39)}function ti(e){if(ea(e))return e[O].ownKeys_();n(38)}function ni(e,t,n,r){return v(n)?ii(e,t,n,r):ri(e,t,n)}function ri(e,t,n){return ma(e).observe_(t,n)}function ii(e,t,n,r){return ma(e,t).observe_(n,r)}function ai(e,t,n){return e.set(t,n),n}function H(e,t){if(typeof e!=`object`||!e||e instanceof Date||!Gr(e))return e;if(en(e)||nn(e))return H(e.get(),t);if(t.has(e))return t.get(e);if(Ii(e)){var n=ai(t,e,Array(e.length));return e.forEach(function(e,r){n[r]=H(e,t)}),n}if(Ki(e)){var r=ai(t,e,new Set);return e.forEach(function(e){r.add(H(e,t))}),r}if(Vi(e)){var i=ai(t,e,new Map);return e.forEach(function(e,n){i.set(n,H(e,t))}),i}else{var a=ai(t,e,{});return ti(e).forEach(function(n){c.propertyIsEnumerable.call(e,n)&&(a[n]=H(e[n],t))}),a}}function oi(e,t){return t&&n(`toJS no longer supports options`),H(e,new Map)}function si(){var e=!1,t=[...arguments];typeof t[t.length-1]==`boolean`&&(e=t.pop());var r=ci(t);if(!r)return n(`'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly`);r.isTracing_===rn.NONE&&console.log(`[mobx.trace] '`+r.name_+`' tracing enabled`),r.isTracing_=e?rn.BREAK:rn.LOG}function ci(e){switch(e.length){case 0:return I.trackingDerivation;case 1:return pa(e[0]);case 2:return pa(e[0],e[1])}}function li(e,t){t===void 0&&(t=void 0),jn();try{return e.apply(t)}finally{Mn()}}function ui(e,t,n){return arguments.length===1||t&&typeof t==`object`?fi(e,t):di(e,t,n||{})}function di(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout(function(){if(!o[O].isDisposed)if(o(),n.onError)n.onError(i);else throw i},n.timeout)}n.name=n.name||`When@`+h();var a=j(n.name+`-effect`,t),o=ur(function(t){Xt(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())},n);return o}function fi(e,t){var r;if(t&&t.onError)return n(`the options 'onError' and 'promise' cannot be combined`);if(t!=null&&(r=t.signal)!=null&&r.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var i,a,o=new Promise(function(n,r){var o,s=di(e,n,D({},t,{onError:r}));i=function(){s(),r(Error(`WHEN_CANCELLED`))},a=function(){s(),r(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,a)}).finally(function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,a)});return o.cancel=i,o}function pi(e){return e[O]}var mi={has:function(e,t){return I.trackingDerivation&&m(`detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.`),pi(e).has_(t)},get:function(e,t){return pi(e).get_(t)},set:function(e,t,n){return y(t)?(pi(e).values_.has(t)||m(`add a new observable property through direct assignment. Use 'set' from 'mobx' instead.`),pi(e).set_(t,n,!0)??!0):!1},deleteProperty:function(e,t){return m(`delete properties from an observable object. Use 'remove' from 'mobx' instead.`),y(t)?pi(e).delete_(t,!0)??!0:!1},defineProperty:function(e,t,n){return m(`define property on an observable object. Use 'defineProperty' from 'mobx' instead.`),pi(e).defineProperty_(t,n)??!0},ownKeys:function(e){return I.trackingDerivation&&m(`iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.`),pi(e).ownKeys_()},preventExtensions:function(e){n(13)}};function hi(e,t){var n;return p(),e=Zi(e,t),(n=e[O]).proxy_??(n.proxy_=new Proxy(e,mi))}function gi(e){return e.interceptors_!==void 0&&e.interceptors_.length>0}function _i(e,t){var n=e.interceptors_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function vi(e,t){var r=F();try{for(var i=[].concat(e.interceptors_||[]),a=0,o=i.length;a<o&&(t=i[a](t),t&&!t.type&&n(14),t);a++);return t}finally{hn(r)}}function yi(e){return e.changeListeners_!==void 0&&e.changeListeners_.length>0}function bi(e,t){var n=e.changeListeners_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function xi(e,t){var n=F(),r=e.changeListeners_;if(r){r=r.slice();for(var i=0,a=r.length;i<a;i++)r[i](t);hn(n)}}function Si(e,t,r){return ga(function(){var i=Zi(e,r)[O];t&&e[Te]&&n(`makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.`),t??=ke(e),E(t).forEach(function(e){return i.make_(e,t[e])})}),e}var Ci=Symbol(`mobx-keys`);function wi(e,t,r){return!x(e)&&!x(Object.getPrototypeOf(e))&&n(`'makeAutoObservable' can only be used for classes that don't have a superclass`),ea(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),x(e)?Cr(e,e,t,r):(ga(function(){var n=Zi(e,r)[O];if(!e[Ci]){var i=Object.getPrototypeOf(e),a=new Set([].concat(E(e),E(i)));a.delete(`constructor`),a.delete(O),C(i,Ci,a)}e[Ci].forEach(function(e){return n.make_(e,t&&e in t?t[e]:!0)})}),e)}var Ti=`splice`,Ei=`update`,Di=1e4,Oi={get:function(e,t){var n=e[O];return t===O?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):se(ji,t)?ji[t]:e[t]},set:function(e,t,n){var r=e[O];return t===`length`&&r.setArrayLength_(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions:function(){n(15)}},ki=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray@`+h()),this.owned_=void 0,this.legacyMode_=void 0,this.atom_=void 0,this.values_=[],this.interceptors_=void 0,this.changeListeners_=void 0,this.enhancer_=void 0,this.dehancer=void 0,this.proxy_=void 0,this.lastKnownLength_=0,this.owned_=n,this.legacyMode_=r,this.atom_=new Me(e),this.enhancer_=function(n,r){return t(n,r,e+`[..]`)}}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.dehanceValues_=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},t.intercept_=function(e){return _i(this,e)},t.observe_=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:`splice`,index:0,added:this.values_.slice(),addedCount:this.values_.length,removed:[],removedCount:0}),bi(this,e)},t.getArrayLength_=function(){return this.atom_.reportObserved(),this.values_.length},t.setArrayLength_=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&n(`Out of range: `+e);var t=this.values_.length;if(e!==t)if(e>t){for(var r=Array(e-t),i=0;i<e-t;i++)r[i]=void 0;this.spliceWithArray_(t,0,r)}else this.spliceWithArray_(e,t-e)},t.updateArrayLength_=function(e,t){e!==this.lastKnownLength_&&n(16),this.lastKnownLength_+=t,this.legacyMode_&&t>0&&da(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;P(this.atom_);var i=this.values_.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=l),gi(this)){var a=vi(this,{object:this.proxy_,type:Ti,index:e,removedCount:t,added:n});if(!a)return l;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map(function(e){return r.enhancer_(e,void 0)}),this.legacyMode_||!0){var o=n.length-t;this.updateArrayLength_(i,o)}var s=this.spliceItemsIntoValues_(e,t,n);return(t!==0||n.length!==0)&&this.notifyArraySplice_(e,n,s),this.dehanceValues_(s)},t.spliceItemsIntoValues_=function(e,t,n){if(n.length<Di){var r;return(r=this.values_).splice.apply(r,[e,t].concat(n))}else{var i=this.values_.slice(e,e+t),a=this.values_.slice(e+t);this.values_.length+=n.length-t;for(var o=0;o<n.length;o++)this.values_[e+o]=n[o];for(var s=0;s<a.length;s++)this.values_[e+n.length+s]=a[s];return i}},t.notifyArrayChildUpdate_=function(e,t,n){var r=!this.owned_&&Wn(),i=yi(this),a=i||r?{observableKind:`array`,object:this.proxy_,type:Ei,debugObjectName:this.atom_.name_,index:e,newValue:t,oldValue:n}:null;r&&Kn(a),this.atom_.reportChanged(),i&&xi(this,a),r&&Jn()},t.notifyArraySplice_=function(e,t,n){var r=!this.owned_&&Wn(),i=yi(this),a=i||r?{observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:Ti,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;r&&Kn(a),this.atom_.reportChanged(),i&&xi(this,a),r&&Jn()},t.get_=function(e){if(this.legacyMode_&&e>=this.values_.length){console.warn(`[mobx.array] Attempt to read an array index (`+e+`) that is out of bounds (`+this.values_.length+`). Please check length first. Out of bound indices will not be tracked by MobX`);return}return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e])},t.set_=function(e,t){var r=this.values_;if(this.legacyMode_&&e>r.length&&n(17,e,r.length),e<r.length){P(this.atom_);var i=r[e];if(gi(this)){var a=vi(this,{type:Ei,object:this.proxy_,index:e,newValue:t});if(!a)return;t=a.newValue}t=this.enhancer_(t,i),t!==i&&(r[e]=t,this.notifyArrayChildUpdate_(e,t,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=t,this.spliceWithArray_(r.length,0,o)}},e}();function Ai(e,t,n,r){return n===void 0&&(n=`ObservableArray@`+h()),r===void 0&&(r=!1),p(),ga(function(){var i=new ki(n,t,r,!1);ee(i.values_,O,i);var a=new Proxy(i.values_,Oi);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var ji={clear:function(){return this.splice(0)},replace:function(e){var t=this[O];return t.spliceWithArray_(0,t.values_.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[O];switch(arguments.length){case 0:return[];case 1:return r.spliceWithArray_(e);case 2:return r.spliceWithArray_(e,t)}return r.spliceWithArray_(e,t,n)},spliceWithArray:function(e,t,n){return this[O].spliceWithArray_(e,t,n)},push:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(e.values_.length,0,t),e.values_.length},pop:function(){return this.splice(Math.max(this[O].values_.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(0,0,t),e.values_.length},reverse:function(){return I.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){I.trackingDerivation&&n(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[O],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};U(`at`,Mi),U(`concat`,Mi),U(`flat`,Mi),U(`includes`,Mi),U(`indexOf`,Mi),U(`join`,Mi),U(`lastIndexOf`,Mi),U(`slice`,Mi),U(`toString`,Mi),U(`toLocaleString`,Mi),U(`toSorted`,Mi),U(`toSpliced`,Mi),U(`with`,Mi),U(`every`,Ni),U(`filter`,Ni),U(`find`,Ni),U(`findIndex`,Ni),U(`findLast`,Ni),U(`findLastIndex`,Ni),U(`flatMap`,Ni),U(`forEach`,Ni),U(`map`,Ni),U(`some`,Ni),U(`toReversed`,Ni),U(`reduce`,Pi),U(`reduceRight`,Pi);function U(e,t){typeof Array.prototype[e]==`function`&&(ji[e]=t(e))}function Mi(e){return function(){var t=this[O];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function Ni(e){return function(t,n){var r=this,i=this[O];return i.atom_.reportObserved(),i.dehanceValues_(i.values_)[e](function(e,i){return t.call(n,e,i,r)})}}function Pi(e){return function(){var t=this,n=this[O];n.atom_.reportObserved();var r=n.dehanceValues_(n.values_),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}var Fi=w(`ObservableArrayAdministration`,ki);function Ii(e){return b(e)&&Fi(e[O])}var Li={},Ri=`add`,zi=`delete`,Bi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableMap@`+h()),this.enhancer_=void 0,this.name_=void 0,this[O]=Li,this.data_=void 0,this.hasMap_=void 0,this.keysAtom_=void 0,this.interceptors_=void 0,this.changeListeners_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=r,v(Map)||n(18),ga(function(){i.keysAtom_=Pe(i.name_+`.keys()`),i.data_=new Map,i.hasMap_=new Map,e&&i.merge(e)})}var t=e.prototype;return t.has_=function(e){return this.data_.has(e)},t.has=function(e){var t=this;if(!I.trackingDerivation)return this.has_(e);var n=this.hasMap_.get(e);if(!n){var r=n=new M(this.has_(e),He,this.name_+`.`+ae(e)+`?`,!1);this.hasMap_.set(e,r),vr(r,function(){return t.hasMap_.delete(e)})}return n.get()},t.set=function(e,t){var n=this.has_(e);if(gi(this)){var r=vi(this,{type:n?Ei:Ri,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this},t.delete=function(e){var t=this;if(P(this.keysAtom_),gi(this)&&!vi(this,{type:zi,object:this,name:e}))return!1;if(this.has_(e)){var n=Wn(),r=yi(this),i=r||n?{observableKind:`map`,debugObjectName:this.name_,type:zi,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return n&&Kn(i),li(function(){var n;t.keysAtom_.reportChanged(),(n=t.hasMap_.get(e))==null||n.setNewValue_(!1),t.data_.get(e).setNewValue_(void 0),t.data_.delete(e)}),r&&xi(this,i),n&&Jn(),!0}return!1},t.updateValue_=function(e,t){var n=this.data_.get(e);if(t=n.prepareNewValue_(t),t!==I.UNCHANGED){var r=Wn(),i=yi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Ei,object:this,oldValue:n.value_,name:e,newValue:t}:null;r&&Kn(a),n.setNewValue_(t),i&&xi(this,a),r&&Jn()}},t.addValue_=function(e,t){var n=this;P(this.keysAtom_),li(function(){var r,i=new M(t,n.enhancer_,n.name_+`.`+ae(e),!1);n.data_.set(e,i),t=i.value_,(r=n.hasMap_.get(e))==null||r.setNewValue_(!0),n.keysAtom_.reportChanged()});var r=Wn(),i=yi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Ri,object:this,name:e,newValue:t}:null;r&&Kn(a),i&&xi(this,a),r&&Jn()},t.get=function(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)},t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.keys=function(){return this.keysAtom_.reportObserved(),this.data_.keys()},t.values=function(){var e=this,t=this.keys();return Hi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:e.get(i)}}})},t.entries=function(){var e=this,t=this.keys();return Hi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},t[Symbol.iterator]=function(){return this.entries()},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value,a=i[0],o=i[1];e.call(t,o,a,this)}},t.merge=function(e){var t=this;return Vi(e)&&(e=new Map(e)),li(function(){x(e)?T(e).forEach(function(n){return t.set(n,e[n])}):Array.isArray(e)?e.forEach(function(e){var n=e[0],r=e[1];return t.set(n,r)}):te(e)?(ne(e)||n(19,e),e.forEach(function(e,n){return t.set(n,e)})):e!=null&&n(20,e)}),this},t.clear=function(){var e=this;li(function(){mn(function(){for(var t=he(e.keys()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.replace=function(e){var t=this;return li(function(){for(var n=Ui(e),r=new Map,i=!1,a=he(t.data_.keys()),o;!(o=a()).done;){var s=o.value;if(!n.has(s))if(t.delete(s))i=!0;else{var c=t.data_.get(s);r.set(s,c)}}for(var l=he(n.entries()),u;!(u=l()).done;){var d=u.value,f=d[0],p=d[1],m=t.data_.has(f);if(t.set(f,p),t.data_.has(f)){var h=t.data_.get(f);r.set(f,h),m||(i=!0)}}if(!i)if(t.data_.size!==r.size)t.keysAtom_.reportChanged();else for(var g=t.data_.keys(),_=r.keys(),v=g.next(),y=_.next();!v.done;){if(v.value!==y.value){t.keysAtom_.reportChanged();break}v=g.next(),y=_.next()}t.data_=r}),this},t.toString=function(){return`[object ObservableMap]`},t.toJSON=function(){return Array.from(this)},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with maps."),bi(this,e)},t.intercept_=function(e){return _i(this,e)},me(e,[{key:`size`,get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),Vi=w(`ObservableMap`,Bi);function Hi(e){return e[Symbol.toStringTag]=`MapIterator`,Sa(e)}function Ui(e){if(te(e)||Vi(e))return e;if(Array.isArray(e))return new Map(e);if(x(e)){var t=new Map;for(var r in e)t.set(r,e[r]);return t}else return n(21,e)}var Wi={},Gi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableSet@`+h()),this.name_=void 0,this[O]=Wi,this.data_=new Set,this.atom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.dehancer=void 0,this.enhancer_=void 0,this.name_=r,v(Set)||n(22),this.enhancer_=function(e,n){return t(e,n,r)},ga(function(){i.atom_=Pe(i.name_),e&&i.replace(e)})}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.clear=function(){var e=this;li(function(){mn(function(){for(var t=he(e.data_.values()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value;e.call(t,i,i,this)}},t.add=function(e){var t=this;if(P(this.atom_),gi(this)){var n=vi(this,{type:Ri,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){li(function(){t.data_.add(t.enhancer_(e,void 0)),t.atom_.reportChanged()});var r=Wn(),i=yi(this),a=i||r?{observableKind:`set`,debugObjectName:this.name_,type:Ri,object:this,newValue:e}:null;r&&Kn(a),i&&xi(this,a),r&&Jn()}return this},t.delete=function(e){var t=this;if(gi(this)&&!vi(this,{type:zi,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Wn(),r=yi(this),i=r||n?{observableKind:`set`,debugObjectName:this.name_,type:zi,object:this,oldValue:e}:null;return n&&Kn(i),li(function(){t.atom_.reportChanged(),t.data_.delete(e)}),r&&xi(this,i),n&&Jn(),!0}return!1},t.has=function(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))},t.entries=function(){var e=this.values();return qi({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},t.keys=function(){return this.values()},t.values=function(){this.atom_.reportObserved();var e=this,t=this.data_.values();return qi({next:function(){var n=t.next(),r=n.value,i=n.done;return i?{value:void 0,done:i}:{value:e.dehanceValue_(r),done:i}}})},t.intersection=function(e){return re(e)&&!Ki(e)?e.intersection(this):new Set(this).intersection(e)},t.union=function(e){return re(e)&&!Ki(e)?e.union(this):new Set(this).union(e)},t.difference=function(e){return new Set(this).difference(e)},t.symmetricDifference=function(e){return re(e)&&!Ki(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},t.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},t.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},t.isDisjointFrom=function(e){return re(e)&&!Ki(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},t.replace=function(e){var t=this;return Ki(e)&&(e=new Set(e)),li(function(){Array.isArray(e)||re(e)?(t.clear(),e.forEach(function(e){return t.add(e)})):e!=null&&n(`Cannot initialize set from `+e)}),this},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with sets."),bi(this,e)},t.intercept_=function(e){return _i(this,e)},t.toJSON=function(){return Array.from(this)},t.toString=function(){return`[object ObservableSet]`},t[Symbol.iterator]=function(){return this.values()},me(e,[{key:`size`,get:function(){return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),Ki=w(`ObservableSet`,Gi);function qi(e){return e[Symbol.toStringTag]=`SetIterator`,Sa(e)}var Ji=Object.create(null),Yi=`remove`,Xi=function(){function e(e,t,r,i){t===void 0&&(t=new Map),i===void 0&&(i=yt),this.target_=void 0,this.values_=void 0,this.name_=void 0,this.defaultAnnotation_=void 0,this.keysAtom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.proxy_=void 0,this.isPlainObject_=void 0,this.appliedAnnotations_=void 0,this.pendingKeys_=void 0,this.target_=e,this.values_=t,this.name_=r,this.defaultAnnotation_=i,this.keysAtom_=new Me(this.name_+`.keys`),this.isPlainObject_=x(this.target_),wa(this.defaultAnnotation_)||n(`defaultAnnotation must be valid annotation`),this.appliedAnnotations_={}}var t=e.prototype;return t.getObservablePropValue_=function(e){return this.values_.get(e).get()},t.setObservablePropValue_=function(e,t){var n=this.values_.get(e);if(n instanceof tn)return n.set(t),!0;if(gi(this)){var r=vi(this,{type:Ei,object:this.proxy_||this.target_,name:e,newValue:t});if(!r)return null;t=r.newValue}if(t=n.prepareNewValue_(t),t!==I.UNCHANGED){var i=yi(this),a=Wn(),o=i||a?{type:Ei,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:n.value_,name:e,newValue:t}:null;a&&Kn(o),n.setNewValue_(t),i&&xi(this,o),a&&Jn()}return!0},t.get_=function(e){return I.trackingDerivation&&!se(this.target_,e)&&this.has_(e),this.target_[e]},t.set_=function(e,t,n){return n===void 0&&(n=!1),se(this.target_,e)?this.values_.has(e)?this.setObservablePropValue_(e,t):n?Reflect.set(this.target_,e,t):(this.target_[e]=t,!0):this.extend_(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.defaultAnnotation_,n)},t.has_=function(e){if(!I.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;var t=this.pendingKeys_.get(e);return t||(t=new M(e in this.target_,He,this.name_+`.`+ae(e)+`?`,!1),this.pendingKeys_.set(e,t)),t.get()},t.make_=function(e,t){if(t===!0&&(t=this.defaultAnnotation_),t!==!1){if(na(this,t,e),!(e in this.target_)){var r;if((r=this.target_[Te])!=null&&r[e])return;n(1,t.annotationType_,this.name_+`.`+e.toString())}for(var i=this.target_;i&&i!==c;){var a=o(i,e);if(a){var s=t.make_(this,e,a,i);if(s===0)return;if(s===1)break}i=Object.getPrototypeOf(i)}ta(this,t,e)}},t.extend_=function(e,t,n,r){if(r===void 0&&(r=!1),n===!0&&(n=this.defaultAnnotation_),n===!1)return this.defineProperty_(e,t,r);na(this,n,e);var i=n.extend_(this,e,t,r);return i&&ta(this,n,e),i},t.defineProperty_=function(e,t,n){n===void 0&&(n=!1),P(this.keysAtom_);try{jn();var r=this.delete_(e);if(!r)return r;if(gi(this)){var i=vi(this,{object:this.proxy_||this.target_,name:e,type:Ri,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=D({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.target_,e,t))return!1}else s(this.target_,e,t);this.notifyPropertyAddition_(e,t.value)}finally{Mn()}return!0},t.defineObservableProperty_=function(e,t,n,r){r===void 0&&(r=!1),P(this.keysAtom_);try{jn();var i=this.delete_(e);if(!i)return i;if(gi(this)){var a=vi(this,{object:this.proxy_||this.target_,name:e,type:Ri,newValue:t});if(!a)return null;t=a.newValue}var o=$i(e),c={configurable:I.safeDescriptors?this.isPlainObject_:!0,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.target_,e,c))return!1}else s(this.target_,e,c);var l=new M(t,n,this.name_+`.`+e.toString(),!1);this.values_.set(e,l),this.notifyPropertyAddition_(e,l.value_)}finally{Mn()}return!0},t.defineComputedProperty_=function(e,t,n){n===void 0&&(n=!1),P(this.keysAtom_);try{jn();var r=this.delete_(e);if(!r)return r;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:Ri,newValue:void 0}))return null;t.name||=this.name_+`.`+e.toString(),t.context=this.proxy_||this.target_;var i=$i(e),a={configurable:I.safeDescriptors?this.isPlainObject_:!0,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.target_,e,a))return!1}else s(this.target_,e,a);this.values_.set(e,new tn(t)),this.notifyPropertyAddition_(e,void 0)}finally{Mn()}return!0},t.delete_=function(e,t){if(t===void 0&&(t=!1),P(this.keysAtom_),!se(this.target_,e))return!0;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:Yi}))return null;try{var n;jn();var r=yi(this),i=Wn(),a=this.values_.get(e),s=void 0;if(!a&&(r||i)&&(s=o(this.target_,e)?.value),t){if(!Reflect.deleteProperty(this.target_,e))return!1}else delete this.target_[e];if(delete this.appliedAnnotations_[e],a&&(this.values_.delete(e),a instanceof M&&(s=a.value_),Pn(a)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||i){var c={type:Yi,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};i&&Kn(c),r&&xi(this,c),i&&Jn()}}finally{Mn()}return!0},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support the fire immediately property for observable objects."),bi(this,e)},t.intercept_=function(e){return _i(this,e)},t.notifyPropertyAddition_=function(e,t){var n,r=yi(this),i=Wn();if(r||i){var a=r||i?{type:Ri,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&Kn(a),r&&xi(this,a),i&&Jn()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()},t.ownKeys_=function(){return this.keysAtom_.reportObserved(),E(this.target_)},t.keys_=function(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)},e}();function Zi(e,t){if(t&&ea(e)&&n(`Options can't be provided for already observable objects.`),se(e,O))return ma(e)instanceof Xi||n(`Cannot convert '`+ha(e)+`' into observable object:
|
|
173
173
|
The target is already observable of different type.
|
|
174
|
-
Extending builtins is not supported.`),e;Object.isExtensible(e)||n(`Cannot make the designated object observable; it is not extensible`);var r=t?.name??(x(e)?`ObservableObject`:e.constructor.name)+`@`+h();return C(e,O,new Xi(e,new Map,String(r),It(t))),e}var Qi=
|
|
174
|
+
Extending builtins is not supported.`),e;Object.isExtensible(e)||n(`Cannot make the designated object observable; it is not extensible`);var r=t?.name??(x(e)?`ObservableObject`:e.constructor.name)+`@`+h();return C(e,O,new Xi(e,new Map,String(r),It(t))),e}var Qi=w(`ObservableObjectAdministration`,Xi);function $i(e){return Ji[e]||(Ji[e]={get:function(){return this[O].getObservablePropValue_(e)},set:function(t){return this[O].setObservablePropValue_(e,t)}})}function ea(e){return b(e)?Qi(e[O]):!1}function ta(e,t,n){var r;e.appliedAnnotations_[n]=t,(r=e.target_[Te])==null||delete r[n]}function na(e,t,r){if(wa(t)||n(`Cannot annotate '`+e.name_+`.`+r.toString()+`': Invalid annotation.`),!Ke(t)&&se(e.appliedAnnotations_,r)){var i=e.name_+`.`+r.toString(),a=e.appliedAnnotations_[r].annotationType_,o=t.annotationType_;n(`Cannot apply '`+o+`' to '`+i+`':`+(`
|
|
175
175
|
The field is already annotated with '`+a+`'.`)+`
|
|
176
176
|
Re-annotating fields is not allowed.
|
|
177
|
-
Use 'override' annotation for methods overridden by subclass.`)}}var ra=la(0),ia=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,e===!1}(),aa=0,oa=function(){};function sa(e,t){Object.setPrototypeOf?Object.setPrototypeOf(e.prototype,t):e.prototype.__proto__===void 0?e.prototype=t:e.prototype.__proto__=t}sa(oa,Array.prototype);var ca=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray@`+h()),i===void 0&&(i=!1),a=e.call(this)||this,ga(function(){var e=new ki(r,n,i,!0);e.proxy_=a,ee(a,O,e),t&&t.length&&a.spliceWithArray(0,0,t),ia&&Object.defineProperty(a,`0`,ra)}),a}_e(t,e);var n=t.prototype;return n.concat=function(){this[O].atom_.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map(function(e){return Ii(e)?e.slice():e}))},n[Symbol.iterator]=function(){var e=this,t=0;return Sa({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},me(t,[{key:`length`,get:function(){return this[O].getArrayLength_()},set:function(e){this[O].setArrayLength_(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(oa);Object.entries(ji).forEach(function(e){var t=e[0],n=e[1];t!==`concat`&&C(ca.prototype,t,n)});function la(e){return{enumerable:!1,configurable:!0,get:function(){return this[O].get_(e)},set:function(t){this[O].set_(e,t)}}}function ua(e){s(ca.prototype,``+e,la(e))}function da(e){if(e>aa){for(var t=aa;t<e+100;t++)ua(t);aa=e}}da(1e3);function fa(e,t,n){return new ca(e,t,n)}function pa(e,t){if(typeof e==`object`&&e){if(Ii(e))return t!==void 0&&n(23),e[O].atom_;if(Ki(e))return e.atom_;if(Vi(e)){if(t===void 0)return e.keysAtom_;var r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,ha(e)),r}if(ea(e)){if(!t)return n(26);var i=e[O].values_.get(t);return i||n(27,t,ha(e)),i}if(Ne(e)||nn(e)||z(e))return e}else if(v(e)&&z(e[O]))return e[O];n(28)}function ma(e,t){if(e||n(29),t!==void 0)return ma(pa(e,t));if(Ne(e)||nn(e)||z(e)||Vi(e)||Ki(e))return e;if(e[O])return e[O];n(24,e)}function ha(e,t){var n;if(t!==void 0)n=pa(e,t);else if(lr(e))return e.name;else n=ea(e)||Vi(e)||Ki(e)?ma(e):pa(e);return n.name_}function ga(e){var t=F(),n=Zt(!0);jn();try{return e()}finally{Mn(),Qt(n),hn(t)}}var _a=c.toString;function va(e,t,n){return n===void 0&&(n=-1),ya(e,t,n)}function ya(e,t,n,r,i){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return!1;if(e!==e)return t!==t;var a=typeof e;if(a!==`function`&&a!==`object`&&typeof t!=`object`)return!1;var o=_a.call(e);if(o!==_a.call(t))return!1;switch(o){case`[object RegExp]`:case`[object String]`:return``+e==``+t;case`[object Number]`:return+e==+e?+e==0?1/e==1/t:+e==+t:+t!=+t;case`[object Date]`:case`[object Boolean]`:return+e==+t;case`[object Symbol]`:return typeof Symbol<`u`&&Symbol.valueOf.call(e)===Symbol.valueOf.call(t);case`[object Map]`:case`[object Set]`:n>=0&&n++;break}e=ba(e),t=ba(t);var s=o===`[object Array]`;if(!s){if(typeof e!=`object`||typeof t!=`object`)return!1;var c=e.constructor,l=t.constructor;if(c!==l&&!(v(c)&&c instanceof c&&v(l)&&l instanceof l)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),r||=[],i||=[];for(var u=r.length;u--;)if(r[u]===e)return i[u]===t;if(r.push(e),i.push(t),s){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!ya(e[u],t[u],n-1,r,i))return!1}else{var d=Object.keys(e),f=d.length;if(Object.keys(t).length!==f)return!1;for(var p=0;p<f;p++){var m=d[p];if(!(se(t,m)&&ya(e[m],t[m],n-1,r,i)))return!1}}return r.pop(),i.pop(),!0}function ba(e){return Ii(e)?e.slice():w(e)||Vi(e)||re(e)||Ki(e)?Array.from(e.entries()):e}var xa=i().Iterator?.prototype||{};function Sa(e){return e[Symbol.iterator]=Ca,Object.assign(Object.create(xa),e)}function Ca(){return this}function wa(e){return e instanceof Object&&typeof e.annotationType_==`string`&&v(e.make_)&&v(e.extend_)}[`Symbol`,`Map`,`Set`].forEach(function(e){i()[e]===void 0&&n(`MobX requires global '`+e+`' to be available or polyfilled`)}),typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:Yn,extras:{getDebugName:ha},$mobx:O}),e.$mobx=O,e.FlowCancellationError=Ar,e.ObservableMap=Bi,e.ObservableSet=Gi,e.Reaction=R,e._allowStateChanges=Xt,e._allowStateChangesInsideComputed=cr,e._allowStateReadsEnd=_n,e._allowStateReadsStart=gn,e._autoAction=sr,e._endAction=Yt,e._getAdministration=ma,e._getGlobalState=wn,e._interceptReads=Lr,e._isComputingDerivation=cn,e._resetGlobalState=Tn,e._startAction=Jt,e.action=or,e.autorun=ur,e.comparer=ze,e.computed=Ht,e.configure=Sr,e.createAtom=Pe,e.defineProperty=ei,e.entries=Yr,e.extendObservable=Cr,e.flow=Pr,e.flowResult=Fr,e.get=$r,e.getAtom=pa,e.getDebugName=ha,e.getDependencyTree=wr,e.getObserverTree=Er,e.has=Qr,e.intercept=Rr,e.isAction=lr,e.isBoxedObservable=en,e.isComputed=Hr,e.isComputedProp=Ur,e.isFlow=Ir,e.isFlowCancellationError=jr,e.isObservable=Gr,e.isObservableArray=Ii,e.isObservableMap=Vi,e.isObservableObject=ea,e.isObservableProp=Kr,e.isObservableSet=Ki,e.keys=qr,e.makeAutoObservable=wi,e.makeObservable=Si,e.observable=A,e.observe=ni,e.onBecomeObserved=_r,e.onBecomeUnobserved=vr,e.onReactionError=Rn,e.override=Ge,e.ownKeys=ti,e.reaction=pr,e.remove=Zr,e.runInAction=cr,e.set=Xr,e.spy=Yn,e.toJS=oi,e.trace=si,e.transaction=li,e.untracked=mn,e.values=Jr,e.when=ui})),jE=pe(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=kE():t.exports=AE()}))();function ME(e){if(Array.isArray(e))return Object.freeze(e.map(ME));if(typeof e==`object`&&e){let t=Object.create(null),n=Object.entries(e).sort(([e],[t])=>e<t?-1:+(e>t));for(let[e,r]of n)t[e]=ME(r);return Object.freeze(t)}return e}function NE(e){let t=typeof e;if(t===`string`||t===`number`||t===`boolean`)return t;throw TypeError(`Variable values must be string|number|boolean (got ${t})`)}function PE(e){return typeof e==`string`?e:String(e)}function FE(e){if(typeof e==`number`)return e;if(typeof e==`boolean`)return+!!e;let t=e.trim();if(t===``)throw TypeError(`Cannot cast empty string to number`);let n=Number(t);if(!Number.isFinite(n))throw TypeError(`Cannot cast ${JSON.stringify(e)} to number`);return n}function IE(e){if(typeof e==`boolean`)return e;if(typeof e==`number`){if(e===0||e===1)return e===1;throw TypeError(`Cannot cast number ${e} to bool (only 0 and 1 are accepted)`)}if(e===`true`)return!0;if(e===`false`)return!1;throw TypeError(`Cannot cast ${JSON.stringify(e)} to bool (expected "true" or "false")`)}function LE(e,t){if(!(e instanceof H))throw TypeError(`template function expected a RichText fragment, got ${typeof e==`object`?Object.prototype.toString.call(e):typeof e}`);let n=e.copy();return n.style=RE(e.style).add(t),n}function RE(e){if(e instanceof B)return e;try{return B.parse(e)}catch(t){throw t instanceof br?TypeError(`template function cannot style a fragment whose base style "${e}" is not a style definition: a style name resolves only against the theme of a render`,{cause:t}):t}}function zE(e){return{fn:(t=>LE(t,e)),argTypes:[`liftable`],returnType:`T`}}function BE(e){return{fn:((t,n)=>LE(n,new B({[e]:P.parse(t)}))),argTypes:[`string`,`liftable`],returnType:`T`}}function VE(e,t){return new B({[e]:t})}function HE(){let e={};for(let t of _r)e[t]=zE(VE(t,!0)),e[`not_${t}`]=zE(VE(t,!1));for(let[t,n]of Object.entries(yr))e[t]=zE(VE(n,!0));return e}const UE={fn:((e,t)=>LE(t,B.parse(e))),argTypes:[`string`,`liftable`],returnType:`T`},WE={fn:((e,t)=>LE(t,new B({link:e}))),argTypes:[`string`,`liftable`],returnType:`T`};function GE(){return{fg:BE(`color`),bg:BE(`bgcolor`),...HE(),link:WE,style:UE}}function KE(e,t){if(!zn.test(e.trim()))throw TypeError(`${t} expected a color (#RRGGBB or #RRGGBBAA), got ${JSON.stringify(e)} — to use a palette name here, wrap it: ${t} (color ${JSON.stringify(e)}) …`);return Bn(e)}function qE(e,t){return{fn:t,argTypes:e,returnType:`string`}}function JE(e,t,n,r){let i=r===void 0||e>=r.min&&e<=r.max;if(!Number.isFinite(e)||!i){let i=r===void 0?`a finite number`:`within ${r.min}..${r.max} (${r.note})`;throw RangeError(`${t}'s ${n} must be ${i}, got ${e}`+(e===void 0?` — ${t} takes it as its last argument`:``))}return e}const YE=qE([`string`,`int`],((e,t)=>Kn(KE(e,`darken`),JE(t,`darken`,`levels`)).hex)),XE=qE([`string`,`int`],((e,t)=>Kn(KE(e,`lighten`),-JE(t,`lighten`,`levels`)).hex)),ZE={min:0,max:100,note:`0 = from, 100 = toward`},QE=qE([`string`,`string`,`float`],((e,t,n)=>hn(KE(e,`mix`),KE(t,`mix`),JE(n,`mix`,`percentage`,ZE)/100).hex)),$E={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},eD=qE([`string`],(e=>qn(KE(e,`contrastOn`)).hex)),tD=e=>qE([`string`,`string`,`float`],((t,n,r)=>Jn(KE(t,`readableOn`),KE(n,`readableOn`),JE(r,`readableOn`,`ratio`,$E),e()).hex)),nD={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function rD(){let e={};for(let[t,n]of Object.entries(nD)){let r=t;e[n]=qE([`string`,`float`],((e,t)=>{let i={...On,[r]:JE(t,n,`amount`)};return R.fromRgba(KE(e,n)).applyKey(i).toRgba().hex}))}return e}function iD(e=()=>M.TRUECOLOR){return{darken:YE,lighten:XE,mix:QE,contrastOn:eD,readableOn:tD(e),...rD()}}function aD(e,t){if(e.length===0)throw RangeError(`ramp needs at least one stop after the easing: ramp <value> <easing> <position> <color> …`);if(e.length%2!=0)throw RangeError(`ramp's last stop (position ${String(e[e.length-1])}) has no color — stops are <position> <color> pairs`);let n=[];for(let r=0;r<e.length;r+=2)n.push({at:e[r],color:Vn(t,e[r+1])});return n}function oD(e){return{color:{fn:(t=>Vn(e(),t).hex),argTypes:[`string`],returnType:`string`},ramp:{fn:((...t)=>{if(t.length<2)throw RangeError(`ramp needs a value and an easing before its stops (got ${t.length}): ramp <value> "linear"|"step" <position> <color> …`);let[n,r,...i]=t;return new gr(hr(r),aD(i,e())).at(n).hex}),argTypes:[`float`,`string`],argTypePattern:`alternating`,returnType:`string`}}}function sD(e){return{...GE(),...iD(e)}}new B({color:`red`,dim:!0});const cD=/^(?:(?:global|apac|au|eu|us|us-east-\d|us-west-\d|eu-west-\d|eu-central-\d)\.)?(?:anthropic\.|azure_ai\/|bedrock\/|vertex_ai\/)?claude-(?:(?<family>opus|sonnet|haiku)-(?<newMajor>\d+)(?:-(?<newMinor>\d))?|(?<oldMajor>\d+)(?:-(?<oldMinor>\d))?-(?<oldFamily>opus|sonnet|haiku))(?:[-@]\d{8})?(?:-v\d+:\d+)?(?:-latest)?$/i,lD=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function uD(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(cD);if(n?.groups){let{family:e,newMajor:t,newMinor:r,oldMajor:i,oldMinor:a,oldFamily:o}=n.groups,s=e||o,c=t||i,l=r||a;if(s&&c)return`${s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()} ${l?`${c}.${l}`:c}`}let r=t.match(lD);if(r?.groups){let e=r.groups.family,t=r.groups.major,n=r.groups.minor;return`${e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()} ${n?`${t}.${n}`:t}`}return t||e}function dD(e){let t=e.match(lD);if(!t?.groups)return e;let n=t.groups.family,r=t.groups.major,i=t.groups.minor;return`${n.charAt(0).toUpperCase()}${i?`${r}.${i}`:r}`}function fD(e){let t=e.split(`/`),n=t.length-1;return t.map((e,t)=>{if(t===n)return e;let r=e.match(/^\.*./);return r?r[0]:e}).join(`/`)}function pD(e){return e.toLocaleString()}function mD(e){if(e.length===0)throw Error(`a cascade needs at least one stop, e.g. "0:calm"`);let t=[];for(let[n,r]of e.entries()){let e=r.indexOf(`:`),i=e<0?NaN:Number(r.slice(0,e));if(!Number.isFinite(i))throw Error(`cascade stop ${n} ("${r}") must be "<position>:<result>", e.g. "80:hot" — the position must be a number`);let a=t[n-1];if(a!==void 0&&i<a.at)throw Error(`cascade stops must be in ascending position order; stop ${n} at ${i} follows stop ${n-1} at ${a.at}`);t.push({at:i,text:r.slice(e+1)})}return t}function hD(e,t){if(!Number.isFinite(e))throw Error(`a cascade needs a finite value, got ${e}`);let n=-1;for(;n+1<t.length&&t[n+1].at<=e;)n++;return(n<0?t[0]:t[n]).text}const gD=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],_D=gD.length;function vD(e,t){let n=t===void 0?e:t<=0?[]:e.slice(-t);if(n.length===0)return``;let r=n[0],i=n[0];for(let e of n)e<r&&(r=e),e>i&&(i=e);let a=i-r,o=``;for(let e of n){let t=a===0?0:Math.round((e-r)/a*(_D-1));o+=gD[t]}return o}function yD(e){let t=[];for(let n of e.split(`,`)){let e=n.trim();if(e===``)continue;let r=Number(e);if(!Number.isFinite(r))throw TypeError(`sparkline: non-numeric series element ${JSON.stringify(n)}`);t.push(r)}return t}const bD=Mi(),xD=[...Hi];function SD(){return{basename:{fn:e=>l(e),argTypes:[`string`]},dirname:{fn:e=>u(e),argTypes:[`string`]},abbreviatePath:{fn:e=>fD(e),argTypes:[`string`]},int:{fn:e=>FE(e),argTypes:[`value`]},string:{fn:e=>PE(e),argTypes:[`value`]},bool:{fn:e=>IE(e),argTypes:[`value`]},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`]},themes:{fn:()=>bD,argTypes:[]},styles:{fn:()=>xD,argTypes:[]},sparkline:{fn:(e,t)=>vD(yD(e),t),argTypes:[`string`,`int`]},cascade:{fn:(e,...t)=>hD(e,mD(t)),argTypes:[`float`,`string`]}}}function CD(e=()=>new Date){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`]},formatInteger:{fn:e=>pD(e),argTypes:[`int`]},round:{fn:e=>Math.round(e),argTypes:[`float`]},formatModelName:{fn:e=>uD(e),argTypes:[`string`]},shortenModelName:{fn:e=>dD(e),argTypes:[`string`]}}}function wD(e,t=()=>new Date,n){return Od({fromString:e=>new H(e),toString:e=>e.plain,isT:e=>e instanceof H,clock:t,missingKey:`error`,funcs:{...gp(),...Eh(),...nm(),...wm(),...cp(t),...Zd(),...Ap(),...sD(n),...SD(),...CD(t),...e??{}}})}function TD(e){return ED(e,new Set(e.names()),``)}function ED(e,t,n){return new Proxy(Object.create(null),{has(e,r){if(typeof r!=`string`)return!1;let i=n?`${n}.${r}`:r;if(t.has(i))return!0;let a=`${i}.`;for(let e of t)if(e.startsWith(a))return!0;return!1},get(r,i){if(typeof i!=`string`)return;let a=n?`${n}.${i}`:i;if(t.has(a))return e.getKind(a)===`document`?DD(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return ED(e,t,a)}})}function DD(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw Error(`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}const OD=/\r\n|\r|\n/g,kD=e=>X(e.replace(OD,` `).trim());function AD(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?Q(`regex no-match`):X(n.replace(OD,` `))}}const jD=e=>{try{return X(JSON.parse(e))}catch(e){return Q(`JSON parse failed: ${e.message}`)}};function MD(e,t){return t.kind!==`ttl`||t.durationMs>=500?t:(D(`declareShell "${e}": ttl ${t.durationMs}ms below floor 500ms; clamping`),{kind:`ttl`,durationMs:500})}function ND(e){let t=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/.exec(e);if(!t)throw RangeError(`Invalid duration: "${e}"`);let n=parseFloat(t[1]);switch(t[2]){case`ms`:return n;case`s`:return n*1e3;case`m`:return n*6e4;case`h`:return n*36e5;default:throw RangeError(`Unexpected duration unit: "${t[2]}"`)}}function PD(e,t){return{where:`output of "${e}"`,read:async()=>{let n=await Te({bin:`/bin/sh`,args:[`-c`,e],category:`user-shell`,signal:t});if(!n.ok&&n.reason===`aborted`)throw t.reason;return n.ok?X(n.stdout):Q(`shell "${e}" ${n.exitCode===null?[n.reason,n.error].filter(e=>e!==void 0).join(`: `):`exited with code ${n.exitCode}`}`)}}}function FD(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await re(e,{encoding:`utf8`,signal:n});return X(t===`first-line`?r.split(/\r?\n/)[0]??``:r)}catch{if(n.aborted)throw n.reason;return Q(`file unreadable: ${e}`)}}}}function ID(e,t,n){if(e.kind!==`ok`)return e;let r=t(e.value);return r.kind===`failed`?Q(`${r.reason} in ${n}`):r}const LD=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],RD=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],zD=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],BD=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function VD(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>LD[e.getMonth()]],[`Monday`,e=>zD[e.getDay()]],[`Jan`,e=>RD[e.getMonth()]],[`Mon`,e=>BD[e.getDay()]],[`15`,e=>String(e.getHours()).padStart(2,`0`)],[`06`,e=>String(e.getFullYear()%100).padStart(2,`0`)],[`01`,e=>String(e.getMonth()+1).padStart(2,`0`)],[`02`,e=>String(e.getDate()).padStart(2,`0`)],[`04`,e=>String(e.getMinutes()).padStart(2,`0`)],[`05`,e=>String(e.getSeconds()).padStart(2,`0`)],[`PM`,e=>e.getHours()<12?`AM`:`PM`],[`pm`,e=>e.getHours()<12?`am`:`pm`],[`1`,e=>String(e.getMonth()+1)],[`2`,e=>String(e.getDate())],[`3`,e=>String(e.getHours()%12||12)],[`4`,e=>String(e.getMinutes())],[`5`,e=>String(e.getSeconds())]],r=``,i=0;for(;i<e.length;){let a=!1;for(let[o,s]of n)if(e.startsWith(o,i)){r+=s(t),i+=o.length,a=!0;break}a||(r+=e[i],i++)}return r}const HD={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function UD(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=HD[t];try{return qD(r,e)}catch{return JD(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return Ux(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return Ux(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return Ux(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return Ux(e.stashCount,0)}}var WD=class{watchers=new Map;subscribe(e,t){let n=this.watchers.get(e);if(!n){let t=new Set,r;try{r=s(e,()=>{for(let e of t)e()})}catch{return()=>{}}n={watcher:r,callbacks:t},this.watchers.set(e,n)}return n.callbacks.add(t),()=>this.unsubscribe(e,t)}unsubscribe(e,t){let n=this.watchers.get(e);n&&(n.callbacks.delete(t),n.callbacks.size===0&&(n.watcher.close(),this.watchers.delete(e)))}dispose(){for(let{watcher:e}of this.watchers.values())e.close();this.watchers.clear()}size(){return this.watchers.size}},GD=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:oe(()=>{for(let e of t)e()},e),callbacks:t},this.buckets.set(e,n)}return n.callbacks.add(t),()=>this.unsubscribe(e,t)}unsubscribe(e,t){let n=this.buckets.get(e);n&&(n.callbacks.delete(t),n.callbacks.size===0&&(ae(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())ae(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function KD(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function qD(e,t){if(typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`)throw TypeError(`Expected string|number|boolean from payload, got ${typeof e}`);return t===`string`?PE(e):t===`number`?FE(e):IE(e)}function JD(e){return e===`number`?0:e===`boolean`?!1:``}var YD=class{inputMetas=new Map;lastErrors=new Map;watchMgr=new WD;ttlMgr=new GD;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new eT;abort=new AbortController;drawn=jE.observable.box(M.TRUECOLOR);drawnAt=()=>this.drawn.get();engine=wD(void 0,void 0,this.drawnAt);gitProvider;ownsGitProvider;sessionState;constructor(e,t=``,n,r){this.store=e,this.defaultEmptyValue=t,n?(this.gitProvider=n,this.ownsGitProvider=!1):(this.gitProvider=new sT({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,NE(t),t)}declareInput(e,t,n,r){let i=r===void 0?this.defaultFor(n):r;this.store.defineBox(e,n,i),this.inputMetas.set(e,{path:t,varDefault:r})}declareEnv(e,t,n){let r=process.env[t];if(r!==void 0){this.store.defineBox(e,`string`,r);return}let i=n===void 0?typeof this.defaultEmptyValue==`string`?this.defaultEmptyValue:``:n;this.store.defineBox(e,`string`,i),this.recordError(e,`env var "${t}" is not set`)}declareShell(e,t,n){this.declareSource(e,PD(t,this.abort.signal),MD(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,FD(t,n.readMode??`whole`,this.abort.signal),n.cache,n.parse)}declareSource(e,t,n,r){let i=this.publisherFor(e,r,t.where),a=()=>this.runSource(e,t,i);a(),this.registerCachePolicy(e,n,a)}publisherFor(e,t,n){switch(t.kind){case`text`:return this.scalarPublisher(e,kD,t.default,n);case`regex`:return this.scalarPublisher(e,AD(t.regex),t.default,n);case`json`:return this.documentPublisher(e,t.default,n)}}scalarPublisher(e,t,n,r){let i=this.stringInitial(n);return this.store.defineBox(e,`string`,i),n=>{let a=ID(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,Ux(a,i))}}documentPublisher(e,t,n){let r=t===void 0?Z:X(t);return this.store.defineDocument(e,r),i=>{let a=ID(i,jD,n);this.noteOutcome(e,a),this.store.setDocument(e,a.kind===`ok`||t===void 0?a:r)}}runSource(e,t,n){let r=this.reads.run(e,()=>t.read().then(n,e=>{if(e!==this.abort.signal.reason)throw e}));r.kind===`started`&&this.track(e,r.done)}track(e,t){let n=t.finally(()=>{this.inFlight.get(e)===n&&this.inFlight.delete(e)});this.inFlight.set(e,n)}async settled(e){let t=Date.now()+e;for(;this.inFlight.size>0;){let e=t-Date.now();if(e<=0)break;let n,r=await Promise.race([Promise.all(this.inFlight.values()).then(()=>`settled`),new Promise(t=>{n=setTimeout(()=>t(`deadline`),e)})]);if(clearTimeout(n),r===`deadline`)break}return[...this.inFlight.keys()]}declareTemplate(e,t,n={}){let r=this.engine.parse(t);this.store.defineComputed(e,`string`,t=>{let i=TD(this.store);try{let t=r.evaluate(i).map(e=>e.plain).join(``);return this.lastErrors.delete(e),t}catch(t){let r=t instanceof Error?t.message:String(t);if(this.recordError(e,r),n.varDefault===void 0)throw Error(`variable "${e}": ${r}`);return n.varDefault}});try{this.store.read(e)}catch{}}declareTime(e,t){let n=t.ttlMs??1e3;this.store.defineBox(e,`string`,(e=>{try{return VD(t.format,e)}catch{return this.stringInitial(t.varDefault)}})(new Date));let r=this.ttlMgr.subscribe(n,()=>{try{this.store.setBox(e,VD(t.format,new Date)),this.lastErrors.delete(e)}catch(n){this.applyFallback(e,`string`,t.varDefault,n instanceof Error?n.message:String(n))}});this.cleanups.push(r)}declareGit(e,t){let n=HD[t.field],r=t.varDefault===void 0?JD(n):qD(t.varDefault,n);this.store.defineBox(e,n,r);let i=this.gitSubscriptions.get(t.cwd);if(!i){let e=new Map,n=this.gitProvider.subscribe(t.cwd,t=>{this.store.runInAction(()=>{for(let[n,r]of e)for(let{name:e,varDefault:i}of r)this.store.setBox(e,UD(t,n,i,this.defaultEmptyValue))})});i={fieldSubs:e,firstDelivery:n.firstDelivery,unsubscribe:n.unsubscribe},this.gitSubscriptions.set(t.cwd,i)}let a=i.fieldSubs.get(t.field);a||(a=[],i.fieldSubs.set(t.field,a)),a.push({name:e,varDefault:t.varDefault}),this.track(e,i.firstDelivery)}declareState(e,t){if(!this.sessionState)throw Error(`declareState("${e}"): SourceRegistry was constructed without a SessionState — state-kind variables require a SessionState (the daemon provides one; tests must supply one)`);let n=this.sessionState,r=t.varDefault??this.stringInitial(void 0);this.store.defineComputed(e,`string`,e=>{let i=e(`session.id`);if(typeof i!=`string`||!i)return r;let a=n.get(i,t.key);return a===null?r:a})}applyInput(e){this.store.runInAction(()=>{for(let[t,n]of this.inputMetas){let r=KD(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,qD(r,i)),this.lastErrors.delete(t)}catch(e){this.applyFallback(t,i,n.varDefault,e instanceof Error?e.message:String(e))}else this.applyFallback(t,i,n.varDefault,`input path "${n.path}" not found in payload`)}})}drawAt(e){this.store.runInAction(()=>this.drawn.set(e))}getLastError(e){return this.lastErrors.get(e)}dispose(){this.abort.abort();for(let e of this.cleanups)e();this.cleanups.length=0;for(let e of this.gitSubscriptions.values())e.unsubscribe();this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close()}registerCachePolicy(e,t,n){switch(t.kind){case`never`:break;case`ttl`:{let e=this.ttlMgr.subscribe(t.durationMs,n);this.cleanups.push(e);break}case`watch_file`:{let e=this.watchMgr.subscribe(t.path,n);this.cleanups.push(e);break}case`key`:{let e=this.engine.parse(t.template),r=(0,jE.reaction)(()=>{let t=TD(this.store);try{return e.evaluate(t).map(e=>e.plain).join(``)}catch{return``}},n);this.cleanups.push(r);break}case`depends_on`:{let e=(0,jE.reaction)(()=>t.varNames.map(e=>this.store.changeKey(e)).join(`,`),n);this.cleanups.push(e);break}}}applyFallback(e,t,n,r){if(this.recordError(e,r),n!==void 0){this.store.setBox(e,n);return}try{this.store.setBox(e,qD(this.defaultEmptyValue,t))}catch{this.store.setBox(e,JD(t))}}defaultFor(e){try{return qD(this.defaultEmptyValue,e)}catch{return JD(e)}}stringInitial(e){return e===void 0?typeof this.defaultEmptyValue==`string`?this.defaultEmptyValue:``:e}recordError(e,t){this.lastErrors.set(e,{timestamp:Date.now(),message:t})}noteOutcome(e,t){t.kind===`ok`?this.lastErrors.delete(e):this.recordError(e,t.kind===`failed`?t.reason:`no value`)}};function XD(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}function ZD(e,t){let n=H.fromFragments(e);return n.end=``,n.noWrap=!0,t!==void 0&&!t.isNull&&(n.style=t),n}function QD(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:n.truncateMarker}):e.cellLength<t&&e.align(n.justify,t)}const $D=Symbol(`cc-candybar.fillDemand`);function eO(e,t){return e[$D]=t,e}function tO(e){return e[$D]}function nO(e,t){let{width:n,justify:r,truncate:i,truncateMarker:a=`…`,baseStyle:o,padding:s}=t;if(e.length===0)return[];let c=ZD(e,o).pad(s);if(n===`auto`)return[c];let l={justify:r,truncate:i,truncateMarker:a};return n===`fill`?[eO(c,l)]:(QD(c,n,l),[c])}const rO=RegExp(`\\x1b\\[[0-9;]*m|${Jr.source}`,`g`);function iO(e){return k(e.replace(rO,``))}function aO(e,t){let n=[];for(let t of e){let e=tO(t);e!==void 0&&n.push({cell:t,how:e})}if(n.length===0||!Number.isFinite(t.width))return e;let r=sC(e,t).split(`
|
|
178
|
-
`);if(r.length>1)return e;let i=Math.max(0,t.width-iO(r[0]??``)),a=Math.floor(i/n.length),o=i-a*n.length;return n.forEach(({cell:e,how:t},r)=>{let i=a+(r===n.length-1?o:0);QD(e,e.cellLength+i,t)}),e}function oO(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=sO(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e)if(lO(a.style).link){i();let e=sO([a],t);e.plain.length>0&&n.push(e)}else r.push(a);return i(),n}function sO(e,t){let n=t!==void 0&&!t.isNull?e.map(e=>cO(e,t)):e,r=H.fromFragments(n);return r.end=``,r.noWrap=!0,n.length===1?r.style=n[0].style:t!==void 0&&!t.isNull&&(r.style=t),r}function cO(e,t){let n=e.copy();return n.style=t.add(lO(e.style)),n}function lO(e){return e instanceof B?e:B.parse(e)}var uO=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function dO(e,t,n,r,i,a,o,s){let c={segName:t,palette:n,disclosure:r,tint:i,bg:void 0};e.current=c;let l=fO(a,s),u=l===void 0?i:pO(n,l,`bg`);c.bg=u;let d=fO(o,s),f=d===void 0?el(n,u,e.drawnAt()):pO(n,d,`fg`);return new B({bgcolor:P.fromRgba(u),color:P.fromRgba(f)})}function fO(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function pO(e,t,n){try{return Vn(e,t)}catch(e){throw e instanceof Rn?new uO(t,n,e.message):e}}const mO=new Map(t_.map(e=>[e.configKey,e.effectiveVar])),hO=new Map(t_.map(e=>[e.sessionKey,e.effectiveVar]));function gO(e,t,n,r){let i=new Map,a=Object.entries(t);for(let[t,o]of[...a.filter(([,e])=>!(`do`in e)),...a.filter(([,e])=>`do`in e)])i.set(t,_O(e,t,o,n,r,i));return i}function _O(e,t,n,r,i,a){if(ev(n)){let[o,s]=tv(n);return vO(r.get(n.persistWhen)??n.persistWhen,n.set,_O(e,t,o,r,i,a),_O(e,t,s,r,i,a))}if(`set`in n){let e=r.get(n.set)??n.set;if(`to`in n)return{kind:`set-literal`,key:n.set,value:n.to,stateVar:e};if(`from`in n){let t=gy(n.from,i);return{kind:`set-option`,key:n.set,stateVar:e,options:[...t.members],paletteOf:t.paletteOf}}return`int`in n?{kind:`set-int`,key:n.set,stateVar:e}:`cycle`in n?{kind:`set-cycle`,key:n.set,stateVar:e,members:n.cycle}:{kind:`set-bounded`,key:n.set,by:n.by}}if(`persist`in n){let e=mO.get(n.persist)??n.persist;if(`to`in n)return{kind:`persist-literal`,key:n.persist,value:n.to,stateVar:e};if(`from`in n){let t=gy(n.from,i);return{kind:`persist-option`,key:n.persist,stateVar:e,options:[...t.members],paletteOf:t.paletteOf}}if(`cycle`in n)return{kind:`persist-cycle`,key:n.persist,stateVar:e,members:n.cycle};if(`removeSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`remove`,target:n.removeSegment}};if(`insertSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`insert`,segment:n.insertSegment,anchor:n.anchor,relation:n.relation}};if(`insertSegmentFrom`in n){let e=gy(n.insertSegmentFrom,i);return{kind:`layout-op-option`,key:n.persist,anchor:n.anchor,relation:n.relation,options:[...e.members],paletteOf:e.paletteOf}}return{kind:`persist-bounded`,key:n.persist,by:n.by}}if(`copy`in n)return{kind:`copy`,text:bO(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:bO(e,n.open,t)};if(`reset`in n)return{kind:`reset`,key:n.reset};if(`doctor`in n)return n.doctor===`run`?{kind:`doctor-run`}:{kind:`doctor-fix`,check:n.check};if(`undo`in n)return{kind:`undo`};if(`redo`in n)return{kind:`redo`};let[o,...s]=n.do.map(e=>{let n=a.get(e);if(n===void 0)throw Error(`action "${t}" fires "${e}", which is not declared in this config`);return n});return{kind:`do`,head:o,rest:s}}function vO(e,t,n,r){return{kind:`dual`,selector:e,session:`stateVar`in n&&`stateVar`in r?{...n,stateVar:r.stateVar}:n,durable:r,sessionKey:t}}function yO(e,t){return e.kind===`do`?yO(e.head,t):e.kind===`dual`?ia(xO(t,e.selector))===!0?e.durable:e.session:e}function bO(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function xO(e,t){return e.has(t)?PE(e.read(t)):``}function SO(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function CO(e,t,n,r){let i=new H(e,{style:B.combine([r,new B({link:t,bold:n})])});return i.noWrap=!0,i.end=``,i}function wO(e,t){return Math.max(e.members.indexOf(xO(t,e.stateVar)),0)}function TO(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=xO(r,e.stateVar);return{effects:[{verb:vx,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=xO(r,e.stateVar);return{effects:[{verb:vx,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=xO(r,e.stateVar);return{effects:[{verb:vx,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(wO(e,r)+1)%e.members.length];return{effects:[{verb:vx,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:yx,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:bx,args:[SO(e.text,TD(r))]}],active:!1};case`open`:return{effects:[{verb:xx,args:[SO(e.target,TD(r))]}],active:!1};case`persist-literal`:{let t=xO(r,e.stateVar);return{effects:[{verb:Tx,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=xO(r,e.stateVar);return{effects:[{verb:Tx,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(wO(e,r)+1)%e.members.length];return{effects:[{verb:Tx,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Ex,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:Dx,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:kx,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Ax,args:[i]}],active:!1};case`doctor-run`:return{effects:[{verb:Mx,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Nx,args:[i,e.check]}],active:!1};case`layout-op`:return{effects:[{verb:Ox,args:[i,e.key,eg(e.op)]}],active:!1};case`dual`:{let a=yO(e,r),{effects:o,active:s}=TO(a,t,n,r,i);return a===e.durable?{effects:o.map(t=>({...t,args:[...t.args,e.sessionKey]})),active:s}:{effects:o,active:s}}case`do`:{let a=TO(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>TO(e,t,void 0,r,i).effects)],active:a.active}}case`layout-op-option`:{let r={op:`insert`,segment:n??t,anchor:e.anchor,relation:e.relation};return{effects:[{verb:Ox,args:[i,e.key,eg(r)]}],active:!1}}}}function EO(e,t,n,r){if(n.length===0)throw Error(`action "${e}" needs a display (the clickable text)`);if(t.kind===`set-cycle`||t.kind===`persist-cycle`)return{display:ts(`action "${e}"`,n,t.members.length,wO(t,r)),boundValue:void 0};if(n.length>2)throw Error(`action "${e}" takes a display and an optional bound value, got ${n.length} arguments (per-state displays are a cycle action's form)`);return{display:n[0],boundValue:n[1]}}function DO(e,t,n){let r=n.compiled.get(e);if(!r)throw Error(`action "${e}" is not declared in this config`);let i=n.store,{display:a,boundValue:o}=EO(e,yO(r,i),t,i),{effects:s,active:c}=TO(r,a,o,i,xO(i,`session.id`));return CO(a,Ix(s),c)}function OO(e){return{action:{fn:(t,...n)=>DO(t,n,e),argTypes:[`string`,`string`],returnType:`T`}}}function kO(e,t){return CO(`✕`,Ix([{verb:vx,args:[xO(e,`session.id`),t,Qo]}]),!1)}function AO(e,t,n){return new B({bgcolor:P.fromRgba(t),color:P.fromRgba(el(e,t,n))})}function jO(e,t,n){return AO(e.palette,pl(e.palette,e.disclosure,[t],n),n)}function MO(e,t,n,r,i){return r===void 0?n=>jO(e,{...n,distribution:t},i):(e,t)=>NO(r(t,n),i)}function NO(e,t){let n=Wc(e,`background`);return new B({bgcolor:P.fromRgba(n),color:P.fromRgba(Jn(Wc(e,`primary`),n,4.5,t))})}function PO(e){return{current:null,drawnAt:e}}function FO(e,t){let n=e.current;if(n===null)throw Error(`${t} is only available inside a segment's templates — there is no active segment here. Segment-scoped functions cannot be used in variable declarations or layout-node "when" predicates, which are evaluated outside any segment.`);return n}function IO(e){return new H(e).cellLength}function LO(e){return Math.max(1,FE(e.store.read(`term.cols`))-e.chromeCols-2*e.padding)}function RO(e){return Math.max(1,LO(e)-(IO(`✕`)+2*e.padding+e.seamCols))}function zO(e,t,n){if(!Number.isFinite(t))return e.length>0?[e.map((e,t)=>t)]:[];let r=Math.max(1,t-n),i=[],a=[],o=0;for(let t=0;t<e.length;t++){let n=e[t];a.length===0?(a=[t],o=n):o+1+n<=r?(a.push(t),o+=1+n):(i.push(a),a=[t],o=n)}return a.length>0&&i.push(a),i}function BO(e,t){let n=[];for(let t of e)n.length>0&&n.push(new H(` `)),n.push(t);let r=H.fromFragments(n);return r.noWrap=t,r.end=``,r}function VO(e,t,n,r){let i=e.compiled.get(t);if(!i||i.kind!==n)throw Error(`picker references action "${t}" which must be ${r}, got ${i?`a ${i.kind} action`:`no such action`}`);return i}function HO(e,t,n){let r=e.compiled.get(t),i=r&&yO(r,e.store);if(!i||i.kind!==`set-option`&&i.kind!==`persist-option`&&i.kind!==`layout-op-option`)throw Error(`${n} references action "${t}" which must be a set-option, persist-option, or layout-op-option action ({ set, from }, { persist, from }, or { persist, insertSegmentFrom, anchor, relation }), got ${i?`a ${i.kind} action`:`no such action`}`);return i}function UO(e,t,n,r,i,a,o){let s=HO(a,e,`picker`),c=a.compiled.get(e),l=a.store,u=xO(l,`session.id`),d=`stateVar`in s?xO(l,s.stateVar):void 0,f=s.options.map(IO),p=i?LO(a):1/0,m=IO(`✕`)+1,h=IO(`←`)+1+IO(`→`)+1,g=zO(f,p,m),_=g.length>1?zO(f,p,m+h):g,v=parseInt(xO(l,t.stateVar),10),y=Number.isInteger(v)?Math.max(0,Math.min(v,_.length-1)):0,b=_[y]??[],x=e=>Ix([{verb:vx,args:[u,t.key,String(e)]}]),S=n.flatMap(([e,t])=>[e,t]),C=Ix([{verb:vx,args:[u,...S]}]),ee=r?[{verb:vx,args:[u,...S]}]:[],te=e=>Ix([...TO(c,e,e,l,u).effects,...ee]),w=[CO(`✕`,C,!1)];y>0&&w.push(CO(`←`,x(y-1),!1));for(let e of b){let t=s.options[e];w.push(CO(t,te(t),t===d,o({index:e,count:s.options.length},t)))}return y<_.length-1&&w.push(CO(`→`,x(y+1),!1)),BO(w,i)}function WO(e,t){return{picker:{fn:(n,r,i,a)=>{let o=VO(e,r,`set-int`,`an int action ({ set, int: true })`);return UO(n,{key:o.key,stateVar:o.stateVar},[[o.key,`-1`]],i===!0,a===!0,e,MO(FO(t,`{{ picker }}`),Rc(void 0),e.basePalette,HO(e,n,`picker`).paletteOf,t.drawnAt()))},argTypes:[`string`,`string`,`bool`,`bool`],returnType:`T`}}}function GO(e,t,n,r,i){let a=Math.min(Math.floor((t-1)/2),i),o=n,s=0;for(;s<a;){let t=o+IO(e(-(s+1)))+1+IO(e(s+1))+1;if(t>r)break;o=t,s+=1}return s}function KO(e,t,n,r,i){if(!(`stateVar`in t))throw Error(`carousel references action "${e}", which inserts a segment and holds no current value to centre on — a carousel needs a { set, from } or { persist, from } action`);let a=n.store;if(!a.has(t.stateVar))throw Error(`carousel references action "${e}", whose key "${t.stateVar}" no variable reads back, so there is no current value to centre on — declare { kind: "state", key: "${t.stateVar}" } among the variables`);let o=n.compiled.get(e),s=xO(a,`session.id`),{options:c}=t,l=c.length,u=xO(a,t.stateVar),d=Math.max(c.indexOf(u),0),f=e=>((d+e)%l+l)%l,p=e=>c[f(e)],m=new Map,h=e=>{let t=m.get(e);if(t!==void 0)return t;let n=Ix(TO(o,p(e),p(e),a,s).effects);return m.set(e,n),n},g=e=>CO(p(e),h(e),p(e)===u,r({index:f(e),count:l},p(e))),_=GO(p,l,IO(`◀`)+1+IO(p(0))+1+IO(`▶`),RO(n),i),v=e=>Array.from({length:_},(t,n)=>g(e*(n+1)));return BO([...v(-1).reverse(),CO(`◀`,h(-1),!1),g(0),CO(`▶`,h(1),!1),...v(1)],!0)}function qO(e,t){return{carousel:{fn:(n,r,...i)=>{if(i.length>0)throw Error(`carousel "${n}": takes at most one neighbours count after the action name, got ${1+i.length}`);if(r!==void 0&&!(Number.isInteger(r)&&r>=0))throw Error(`carousel "${n}": neighbours must be a whole number ≥ 0 (0 shows only ◀ CURRENT ▶), got ${String(r)}`);let a=r??1/0,o=HO(e,n,`carousel`);return KO(n,o,e,MO(FO(t,`{{ carousel }}`),Rc(void 0),e.basePalette,o.paletteOf,t.drawnAt()),a)},argTypes:[`string`,`float`],returnType:`T`}}}const JO=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function YO(e,t){let n=ol(e,{hue:jc,depth:0},t);return[Nc.map((t,n)=>({text:JO[n%JO.length],colour:Gc(e,t)})),[{text:`▾ open`,colour:n.state},{text:`menu`,colour:n.plane}],[{text:`warn`,colour:Wc(e,`warning`)},{text:`error`,colour:Wc(e,`error`)}]]}function XO(e,t,n){let r=YO(e,t).flatMap((n,r)=>n.map(({text:n,colour:i},a)=>({gap:r>0&&a===0?` `:``,cell:new H(` ${n} `,{style:AO(e,i,t)})}))),i=[],a=0;for(let{gap:e,cell:t}of r){if(a+=e.length+t.cellLength,a>n)break;e!==``&&i.push(new H(e)),i.push(t)}let o=H.fromFragments(i);return o.noWrap=!0,o.end=``,o}function ZO(e,t){return{themePreview:{fn:()=>XO(e.palette,t.drawnAt(),RO(e)),argTypes:[],returnType:`T`}}}const QO=e=>e.slice(e.lastIndexOf(`.`)+1),$O=(e,t)=>{let n=new H(QO(e));return n.truncate(t,{marker:`…`}),n.plain};function ek(e,t){let n=e.map(e=>e.map(({name:e})=>IO(QO(e)))),r=e=>n.every(n=>n.reduce((t,n)=>t+Math.min(n,e)+2,0)<=t),i=Math.max(1,...n.flat());for(;i>1&&!r(i);)--i;return i}function tk(e,t,n){let r=ek(e,n),i=e.map(e=>{let i=[],a=0;for(let{name:o,address:s,palette:c}of e){let e=new H(` ${$O(o,r)} `,{style:AO(c,_l(c,{kind:`bar`,address:s},t).tint,t)});if(a+=e.cellLength,a>n)break;i.push(e)}return i}),a=H.fromFragments(i.flatMap((e,t)=>t===0?e:[new H(`
|
|
179
|
-
`),...e]));return
|
|
177
|
+
Use 'override' annotation for methods overridden by subclass.`)}}var ra=la(0),ia=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,e===!1}(),aa=0,oa=function(){};function sa(e,t){Object.setPrototypeOf?Object.setPrototypeOf(e.prototype,t):e.prototype.__proto__===void 0?e.prototype=t:e.prototype.__proto__=t}sa(oa,Array.prototype);var ca=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray@`+h()),i===void 0&&(i=!1),a=e.call(this)||this,ga(function(){var e=new ki(r,n,i,!0);e.proxy_=a,ee(a,O,e),t&&t.length&&a.spliceWithArray(0,0,t),ia&&Object.defineProperty(a,`0`,ra)}),a}_e(t,e);var n=t.prototype;return n.concat=function(){this[O].atom_.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map(function(e){return Ii(e)?e.slice():e}))},n[Symbol.iterator]=function(){var e=this,t=0;return Sa({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},me(t,[{key:`length`,get:function(){return this[O].getArrayLength_()},set:function(e){this[O].setArrayLength_(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(oa);Object.entries(ji).forEach(function(e){var t=e[0],n=e[1];t!==`concat`&&C(ca.prototype,t,n)});function la(e){return{enumerable:!1,configurable:!0,get:function(){return this[O].get_(e)},set:function(t){this[O].set_(e,t)}}}function ua(e){s(ca.prototype,``+e,la(e))}function da(e){if(e>aa){for(var t=aa;t<e+100;t++)ua(t);aa=e}}da(1e3);function fa(e,t,n){return new ca(e,t,n)}function pa(e,t){if(typeof e==`object`&&e){if(Ii(e))return t!==void 0&&n(23),e[O].atom_;if(Ki(e))return e.atom_;if(Vi(e)){if(t===void 0)return e.keysAtom_;var r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,ha(e)),r}if(ea(e)){if(!t)return n(26);var i=e[O].values_.get(t);return i||n(27,t,ha(e)),i}if(Ne(e)||nn(e)||z(e))return e}else if(v(e)&&z(e[O]))return e[O];n(28)}function ma(e,t){if(e||n(29),t!==void 0)return ma(pa(e,t));if(Ne(e)||nn(e)||z(e)||Vi(e)||Ki(e))return e;if(e[O])return e[O];n(24,e)}function ha(e,t){var n;if(t!==void 0)n=pa(e,t);else if(lr(e))return e.name;else n=ea(e)||Vi(e)||Ki(e)?ma(e):pa(e);return n.name_}function ga(e){var t=F(),n=Zt(!0);jn();try{return e()}finally{Mn(),Qt(n),hn(t)}}var _a=c.toString;function va(e,t,n){return n===void 0&&(n=-1),ya(e,t,n)}function ya(e,t,n,r,i){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return!1;if(e!==e)return t!==t;var a=typeof e;if(a!==`function`&&a!==`object`&&typeof t!=`object`)return!1;var o=_a.call(e);if(o!==_a.call(t))return!1;switch(o){case`[object RegExp]`:case`[object String]`:return``+e==``+t;case`[object Number]`:return+e==+e?+e==0?1/e==1/t:+e==+t:+t!=+t;case`[object Date]`:case`[object Boolean]`:return+e==+t;case`[object Symbol]`:return typeof Symbol<`u`&&Symbol.valueOf.call(e)===Symbol.valueOf.call(t);case`[object Map]`:case`[object Set]`:n>=0&&n++;break}e=ba(e),t=ba(t);var s=o===`[object Array]`;if(!s){if(typeof e!=`object`||typeof t!=`object`)return!1;var c=e.constructor,l=t.constructor;if(c!==l&&!(v(c)&&c instanceof c&&v(l)&&l instanceof l)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),r||=[],i||=[];for(var u=r.length;u--;)if(r[u]===e)return i[u]===t;if(r.push(e),i.push(t),s){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!ya(e[u],t[u],n-1,r,i))return!1}else{var d=Object.keys(e),f=d.length;if(Object.keys(t).length!==f)return!1;for(var p=0;p<f;p++){var m=d[p];if(!(se(t,m)&&ya(e[m],t[m],n-1,r,i)))return!1}}return r.pop(),i.pop(),!0}function ba(e){return Ii(e)?e.slice():te(e)||Vi(e)||re(e)||Ki(e)?Array.from(e.entries()):e}var xa=i().Iterator?.prototype||{};function Sa(e){return e[Symbol.iterator]=Ca,Object.assign(Object.create(xa),e)}function Ca(){return this}function wa(e){return e instanceof Object&&typeof e.annotationType_==`string`&&v(e.make_)&&v(e.extend_)}[`Symbol`,`Map`,`Set`].forEach(function(e){i()[e]===void 0&&n(`MobX requires global '`+e+`' to be available or polyfilled`)}),typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:Yn,extras:{getDebugName:ha},$mobx:O}),e.$mobx=O,e.FlowCancellationError=Ar,e.ObservableMap=Bi,e.ObservableSet=Gi,e.Reaction=R,e._allowStateChanges=Xt,e._allowStateChangesInsideComputed=cr,e._allowStateReadsEnd=_n,e._allowStateReadsStart=gn,e._autoAction=sr,e._endAction=Yt,e._getAdministration=ma,e._getGlobalState=wn,e._interceptReads=Lr,e._isComputingDerivation=cn,e._resetGlobalState=Tn,e._startAction=Jt,e.action=or,e.autorun=ur,e.comparer=ze,e.computed=Ht,e.configure=Sr,e.createAtom=Pe,e.defineProperty=ei,e.entries=Yr,e.extendObservable=Cr,e.flow=Pr,e.flowResult=Fr,e.get=$r,e.getAtom=pa,e.getDebugName=ha,e.getDependencyTree=wr,e.getObserverTree=Er,e.has=Qr,e.intercept=Rr,e.isAction=lr,e.isBoxedObservable=en,e.isComputed=Hr,e.isComputedProp=Ur,e.isFlow=Ir,e.isFlowCancellationError=jr,e.isObservable=Gr,e.isObservableArray=Ii,e.isObservableMap=Vi,e.isObservableObject=ea,e.isObservableProp=Kr,e.isObservableSet=Ki,e.keys=qr,e.makeAutoObservable=wi,e.makeObservable=Si,e.observable=A,e.observe=ni,e.onBecomeObserved=_r,e.onBecomeUnobserved=vr,e.onReactionError=Rn,e.override=Ge,e.ownKeys=ti,e.reaction=pr,e.remove=Zr,e.runInAction=cr,e.set=Xr,e.spy=Yn,e.toJS=oi,e.trace=si,e.transaction=li,e.untracked=mn,e.values=Jr,e.when=ui})),FE=pe(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=NE():t.exports=PE()}))();function IE(e){if(Array.isArray(e))return Object.freeze(e.map(IE));if(typeof e==`object`&&e){let t=Object.create(null),n=Object.entries(e).sort(([e],[t])=>e<t?-1:+(e>t));for(let[e,r]of n)t[e]=IE(r);return Object.freeze(t)}return e}function LE(e){let t=typeof e;if(t===`string`||t===`number`||t===`boolean`)return t;throw TypeError(`Variable values must be string|number|boolean (got ${t})`)}function RE(e){return typeof e==`string`?e:String(e)}function zE(e){if(typeof e==`number`)return e;if(typeof e==`boolean`)return+!!e;let t=e.trim();if(t===``)throw TypeError(`Cannot cast empty string to number`);let n=Number(t);if(!Number.isFinite(n))throw TypeError(`Cannot cast ${JSON.stringify(e)} to number`);return n}function BE(e){if(typeof e==`boolean`)return e;if(typeof e==`number`){if(e===0||e===1)return e===1;throw TypeError(`Cannot cast number ${e} to bool (only 0 and 1 are accepted)`)}if(e===`true`)return!0;if(e===`false`)return!1;throw TypeError(`Cannot cast ${JSON.stringify(e)} to bool (expected "true" or "false")`)}function VE(e,t){if(!(e instanceof H))throw TypeError(`template function expected a RichText fragment, got ${typeof e==`object`?Object.prototype.toString.call(e):typeof e}`);let n=e.copy();return n.style=HE(e.style).add(t),n}function HE(e){if(e instanceof B)return e;try{return B.parse(e)}catch(t){throw t instanceof br?TypeError(`template function cannot style a fragment whose base style "${e}" is not a style definition: a style name resolves only against the theme of a render`,{cause:t}):t}}function UE(e){return{fn:(t=>VE(t,e)),argTypes:[`liftable`],returnType:`T`}}function WE(e){return{fn:((t,n)=>VE(n,new B({[e]:P.parse(t)}))),argTypes:[`string`,`liftable`],returnType:`T`}}function GE(e,t){return new B({[e]:t})}function KE(){let e={};for(let t of _r)e[t]=UE(GE(t,!0)),e[`not_${t}`]=UE(GE(t,!1));for(let[t,n]of Object.entries(yr))e[t]=UE(GE(n,!0));return e}const qE={fn:((e,t)=>VE(t,B.parse(e))),argTypes:[`string`,`liftable`],returnType:`T`},JE={fn:((e,t)=>VE(t,new B({link:e}))),argTypes:[`string`,`liftable`],returnType:`T`};function YE(){return{fg:WE(`color`),bg:WE(`bgcolor`),...KE(),link:JE,style:qE}}function XE(e,t){if(!zn.test(e.trim()))throw TypeError(`${t} expected a color (#RRGGBB or #RRGGBBAA), got ${JSON.stringify(e)} — to use a palette name here, wrap it: ${t} (color ${JSON.stringify(e)}) …`);return Bn(e)}function ZE(e,t){return{fn:t,argTypes:e,returnType:`string`}}function QE(e,t,n,r){let i=r===void 0||e>=r.min&&e<=r.max;if(!Number.isFinite(e)||!i){let i=r===void 0?`a finite number`:`within ${r.min}..${r.max} (${r.note})`;throw RangeError(`${t}'s ${n} must be ${i}, got ${e}`+(e===void 0?` — ${t} takes it as its last argument`:``))}return e}const $E=ZE([`string`,`int`],((e,t)=>Kn(XE(e,`darken`),QE(t,`darken`,`levels`)).hex)),eD=ZE([`string`,`int`],((e,t)=>Kn(XE(e,`lighten`),-QE(t,`lighten`,`levels`)).hex)),tD={min:0,max:100,note:`0 = from, 100 = toward`},nD=ZE([`string`,`string`,`float`],((e,t,n)=>hn(XE(e,`mix`),XE(t,`mix`),QE(n,`mix`,`percentage`,tD)/100).hex)),rD={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},iD=ZE([`string`],(e=>qn(XE(e,`contrastOn`)).hex)),aD=e=>ZE([`string`,`string`,`float`],((t,n,r)=>Jn(XE(t,`readableOn`),XE(n,`readableOn`),QE(r,`readableOn`,`ratio`,rD),e()).hex)),oD={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function sD(){let e={};for(let[t,n]of Object.entries(oD)){let r=t;e[n]=ZE([`string`,`float`],((e,t)=>{let i={...On,[r]:QE(t,n,`amount`)};return R.fromRgba(XE(e,n)).applyKey(i).toRgba().hex}))}return e}function cD(e=()=>M.TRUECOLOR){return{darken:$E,lighten:eD,mix:nD,contrastOn:iD,readableOn:aD(e),...sD()}}function lD(e,t){if(e.length===0)throw RangeError(`ramp needs at least one stop after the easing: ramp <value> <easing> <position> <color> …`);if(e.length%2!=0)throw RangeError(`ramp's last stop (position ${String(e[e.length-1])}) has no color — stops are <position> <color> pairs`);let n=[];for(let r=0;r<e.length;r+=2)n.push({at:e[r],color:Vn(t,e[r+1])});return n}function uD(e){return{color:{fn:(t=>Vn(e(),t).hex),argTypes:[`string`],returnType:`string`},ramp:{fn:((...t)=>{if(t.length<2)throw RangeError(`ramp needs a value and an easing before its stops (got ${t.length}): ramp <value> "linear"|"step" <position> <color> …`);let[n,r,...i]=t;return new gr(hr(r),lD(i,e())).at(n).hex}),argTypes:[`float`,`string`],argTypePattern:`alternating`,returnType:`string`}}}function dD(e){return{...YE(),...cD(e)}}new B({color:`red`,dim:!0});const fD=/^(?:(?:global|apac|au|eu|us|us-east-\d|us-west-\d|eu-west-\d|eu-central-\d)\.)?(?:anthropic\.|azure_ai\/|bedrock\/|vertex_ai\/)?claude-(?:(?<family>opus|sonnet|haiku)-(?<newMajor>\d+)(?:-(?<newMinor>\d))?|(?<oldMajor>\d+)(?:-(?<oldMinor>\d))?-(?<oldFamily>opus|sonnet|haiku))(?:[-@]\d{8})?(?:-v\d+:\d+)?(?:-latest)?$/i,pD=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function mD(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(fD);if(n?.groups){let{family:e,newMajor:t,newMinor:r,oldMajor:i,oldMinor:a,oldFamily:o}=n.groups,s=e||o,c=t||i,l=r||a;if(s&&c)return`${s.charAt(0).toUpperCase()+s.slice(1).toLowerCase()} ${l?`${c}.${l}`:c}`}let r=t.match(pD);if(r?.groups){let e=r.groups.family,t=r.groups.major,n=r.groups.minor;return`${e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()} ${n?`${t}.${n}`:t}`}return t||e}function hD(e){let t=e.match(pD);if(!t?.groups)return e;let n=t.groups.family,r=t.groups.major,i=t.groups.minor;return`${n.charAt(0).toUpperCase()}${i?`${r}.${i}`:r}`}function gD(e){let t=e.split(`/`),n=t.length-1;return t.map((e,t)=>{if(t===n)return e;let r=e.match(/^\.*./);return r?r[0]:e}).join(`/`)}function _D(e){return e.toLocaleString()}function vD(e){if(e.length===0)throw Error(`a cascade needs at least one stop, e.g. "0:calm"`);let t=[];for(let[n,r]of e.entries()){let e=r.indexOf(`:`),i=e<0?NaN:Number(r.slice(0,e));if(!Number.isFinite(i))throw Error(`cascade stop ${n} ("${r}") must be "<position>:<result>", e.g. "80:hot" — the position must be a number`);let a=t[n-1];if(a!==void 0&&i<a.at)throw Error(`cascade stops must be in ascending position order; stop ${n} at ${i} follows stop ${n-1} at ${a.at}`);t.push({at:i,text:r.slice(e+1)})}return t}function yD(e,t){if(!Number.isFinite(e))throw Error(`a cascade needs a finite value, got ${e}`);let n=-1;for(;n+1<t.length&&t[n+1].at<=e;)n++;return(n<0?t[0]:t[n]).text}const bD=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],xD=bD.length;function SD(e,t){let n=t===void 0?e:t<=0?[]:e.slice(-t);if(n.length===0)return``;let r=n[0],i=n[0];for(let e of n)e<r&&(r=e),e>i&&(i=e);let a=i-r,o=``;for(let e of n){let t=a===0?0:Math.round((e-r)/a*(xD-1));o+=bD[t]}return o}function CD(e){let t=[];for(let n of e.split(`,`)){let e=n.trim();if(e===``)continue;let r=Number(e);if(!Number.isFinite(r))throw TypeError(`sparkline: non-numeric series element ${JSON.stringify(n)}`);t.push(r)}return t}const wD=Sa(),TD=[...Ma];function ED(){return{basename:{fn:e=>l(e),argTypes:[`string`]},dirname:{fn:e=>u(e),argTypes:[`string`]},abbreviatePath:{fn:e=>gD(e),argTypes:[`string`]},int:{fn:e=>zE(e),argTypes:[`value`]},string:{fn:e=>RE(e),argTypes:[`value`]},bool:{fn:e=>BE(e),argTypes:[`value`]},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`]},themes:{fn:()=>wD,argTypes:[]},styles:{fn:()=>TD,argTypes:[]},sparkline:{fn:(e,t)=>SD(CD(e),t),argTypes:[`string`,`int`]},cascade:{fn:(e,...t)=>yD(e,vD(t)),argTypes:[`float`,`string`]}}}function DD(e=()=>new Date){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`]},formatInteger:{fn:e=>_D(e),argTypes:[`int`]},round:{fn:e=>Math.round(e),argTypes:[`float`]},formatModelName:{fn:e=>mD(e),argTypes:[`string`]},shortenModelName:{fn:e=>hD(e),argTypes:[`string`]}}}function OD(e,t=()=>new Date,n){return Md({fromString:e=>new H(e),toString:e=>e.plain,isT:e=>e instanceof H,clock:t,missingKey:`error`,funcs:{...bp(),...Ah(),...om(),...Om(),...fp(t),...tf(),...Pp(),...dD(n),...ED(),...DD(t),...e??{}}})}function kD(e){return AD(e,new Set(e.names()),``)}function AD(e,t,n){return new Proxy(Object.create(null),{has(e,r){if(typeof r!=`string`)return!1;let i=n?`${n}.${r}`:r;if(t.has(i))return!0;let a=`${i}.`;for(let e of t)if(e.startsWith(a))return!0;return!1},get(r,i){if(typeof i!=`string`)return;let a=n?`${n}.${i}`:i;if(t.has(a))return e.getKind(a)===`document`?jD(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return AD(e,t,a)}})}function jD(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw Error(`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}const MD=/\r\n|\r|\n/g,ND=e=>X(e.replace(MD,` `).trim());function PD(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?Q(`regex no-match`):X(n.replace(MD,` `))}}const FD=e=>{try{return X(JSON.parse(e))}catch(e){return Q(`JSON parse failed: ${e.message}`)}};function ID(e,t){return t.kind!==`ttl`||t.durationMs>=500?t:(D(`declareShell "${e}": ttl ${t.durationMs}ms below floor 500ms; clamping`),{kind:`ttl`,durationMs:500})}function LD(e){let t=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/.exec(e);if(!t)throw RangeError(`Invalid duration: "${e}"`);let n=parseFloat(t[1]);switch(t[2]){case`ms`:return n;case`s`:return n*1e3;case`m`:return n*6e4;case`h`:return n*36e5;default:throw RangeError(`Unexpected duration unit: "${t[2]}"`)}}function RD(e,t){return{where:`output of "${e}"`,read:async()=>{let n=await Te({bin:`/bin/sh`,args:[`-c`,e],category:`user-shell`,signal:t});if(!n.ok&&n.reason===`aborted`)throw t.reason;return n.ok?X(n.stdout):Q(`shell "${e}" ${n.exitCode===null?[n.reason,n.error].filter(e=>e!==void 0).join(`: `):`exited with code ${n.exitCode}`}`)}}}function zD(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await re(e,{encoding:`utf8`,signal:n});return X(t===`first-line`?r.split(/\r?\n/)[0]??``:r)}catch{if(n.aborted)throw n.reason;return Q(`file unreadable: ${e}`)}}}}function BD(e,t,n){if(e.kind!==`ok`)return e;let r=t(e.value);return r.kind===`failed`?Q(`${r.reason} in ${n}`):r}const VD=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],HD=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],UD=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],WD=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function GD(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>VD[e.getMonth()]],[`Monday`,e=>UD[e.getDay()]],[`Jan`,e=>HD[e.getMonth()]],[`Mon`,e=>WD[e.getDay()]],[`15`,e=>String(e.getHours()).padStart(2,`0`)],[`06`,e=>String(e.getFullYear()%100).padStart(2,`0`)],[`01`,e=>String(e.getMonth()+1).padStart(2,`0`)],[`02`,e=>String(e.getDate()).padStart(2,`0`)],[`04`,e=>String(e.getMinutes()).padStart(2,`0`)],[`05`,e=>String(e.getSeconds()).padStart(2,`0`)],[`PM`,e=>e.getHours()<12?`AM`:`PM`],[`pm`,e=>e.getHours()<12?`am`:`pm`],[`1`,e=>String(e.getMonth()+1)],[`2`,e=>String(e.getDate())],[`3`,e=>String(e.getHours()%12||12)],[`4`,e=>String(e.getMinutes())],[`5`,e=>String(e.getSeconds())]],r=``,i=0;for(;i<e.length;){let a=!1;for(let[o,s]of n)if(e.startsWith(o,i)){r+=s(t),i+=o.length,a=!0;break}a||(r+=e[i],i++)}return r}const KD={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function qD(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=KD[t];try{return ZD(r,e)}catch{return QD(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return qx(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return qx(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return qx(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return qx(e.stashCount,0)}}var JD=class{watchers=new Map;subscribe(e,t){let n=this.watchers.get(e);if(!n){let t=new Set,r;try{r=s(e,()=>{for(let e of t)e()})}catch{return()=>{}}n={watcher:r,callbacks:t},this.watchers.set(e,n)}return n.callbacks.add(t),()=>this.unsubscribe(e,t)}unsubscribe(e,t){let n=this.watchers.get(e);n&&(n.callbacks.delete(t),n.callbacks.size===0&&(n.watcher.close(),this.watchers.delete(e)))}dispose(){for(let{watcher:e}of this.watchers.values())e.close();this.watchers.clear()}size(){return this.watchers.size}},YD=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:oe(()=>{for(let e of t)e()},e),callbacks:t},this.buckets.set(e,n)}return n.callbacks.add(t),()=>this.unsubscribe(e,t)}unsubscribe(e,t){let n=this.buckets.get(e);n&&(n.callbacks.delete(t),n.callbacks.size===0&&(ae(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())ae(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function XD(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function ZD(e,t){if(typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`)throw TypeError(`Expected string|number|boolean from payload, got ${typeof e}`);return t===`string`?RE(e):t===`number`?zE(e):BE(e)}function QD(e){return e===`number`?0:e===`boolean`?!1:``}var $D=class{inputMetas=new Map;lastErrors=new Map;watchMgr=new JD;ttlMgr=new YD;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new iT;abort=new AbortController;drawn=FE.observable.box(M.TRUECOLOR);drawnAt=()=>this.drawn.get();engine=OD(void 0,void 0,this.drawnAt);gitProvider;ownsGitProvider;sessionState;constructor(e,t=``,n,r){this.store=e,this.defaultEmptyValue=t,n?(this.gitProvider=n,this.ownsGitProvider=!1):(this.gitProvider=new dT({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,LE(t),t)}declareInput(e,t,n,r){let i=r===void 0?this.defaultFor(n):r;this.store.defineBox(e,n,i),this.inputMetas.set(e,{path:t,varDefault:r})}declareEnv(e,t,n){let r=process.env[t];if(r!==void 0){this.store.defineBox(e,`string`,r);return}let i=n===void 0?typeof this.defaultEmptyValue==`string`?this.defaultEmptyValue:``:n;this.store.defineBox(e,`string`,i),this.recordError(e,`env var "${t}" is not set`)}declareShell(e,t,n){this.declareSource(e,RD(t,this.abort.signal),ID(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,zD(t,n.readMode??`whole`,this.abort.signal),n.cache,n.parse)}declareSource(e,t,n,r){let i=this.publisherFor(e,r,t.where),a=()=>this.runSource(e,t,i);a(),this.registerCachePolicy(e,n,a)}publisherFor(e,t,n){switch(t.kind){case`text`:return this.scalarPublisher(e,ND,t.default,n);case`regex`:return this.scalarPublisher(e,PD(t.regex),t.default,n);case`json`:return this.documentPublisher(e,t.default,n)}}scalarPublisher(e,t,n,r){let i=this.stringInitial(n);return this.store.defineBox(e,`string`,i),n=>{let a=BD(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,qx(a,i))}}documentPublisher(e,t,n){let r=t===void 0?Z:X(t);return this.store.defineDocument(e,r),i=>{let a=BD(i,FD,n);this.noteOutcome(e,a),this.store.setDocument(e,a.kind===`ok`||t===void 0?a:r)}}runSource(e,t,n){let r=this.reads.run(e,()=>t.read().then(n,e=>{if(e!==this.abort.signal.reason)throw e}));r.kind===`started`&&this.track(e,r.done)}track(e,t){let n=t.finally(()=>{this.inFlight.get(e)===n&&this.inFlight.delete(e)});this.inFlight.set(e,n)}async settled(e){let t=Date.now()+e;for(;this.inFlight.size>0;){let e=t-Date.now();if(e<=0)break;let n,r=await Promise.race([Promise.all(this.inFlight.values()).then(()=>`settled`),new Promise(t=>{n=setTimeout(()=>t(`deadline`),e)})]);if(clearTimeout(n),r===`deadline`)break}return[...this.inFlight.keys()]}declareTemplate(e,t,n={}){let r=this.engine.parse(t);this.store.defineComputed(e,`string`,t=>{let i=kD(this.store);try{let t=r.evaluate(i).map(e=>e.plain).join(``);return this.lastErrors.delete(e),t}catch(t){let r=t instanceof Error?t.message:String(t);if(this.recordError(e,r),n.varDefault===void 0)throw Error(`variable "${e}": ${r}`);return n.varDefault}});try{this.store.read(e)}catch{}}declareTime(e,t){let n=t.ttlMs??1e3;this.store.defineBox(e,`string`,(e=>{try{return GD(t.format,e)}catch{return this.stringInitial(t.varDefault)}})(new Date));let r=this.ttlMgr.subscribe(n,()=>{try{this.store.setBox(e,GD(t.format,new Date)),this.lastErrors.delete(e)}catch(n){this.applyFallback(e,`string`,t.varDefault,n instanceof Error?n.message:String(n))}});this.cleanups.push(r)}declareGit(e,t){let n=KD[t.field],r=t.varDefault===void 0?QD(n):ZD(t.varDefault,n);this.store.defineBox(e,n,r);let i=this.gitSubscriptions.get(t.cwd);if(!i){let e=new Map,n=this.gitProvider.subscribe(t.cwd,t=>{this.store.runInAction(()=>{for(let[n,r]of e)for(let{name:e,varDefault:i}of r)this.store.setBox(e,qD(t,n,i,this.defaultEmptyValue))})});i={fieldSubs:e,firstDelivery:n.firstDelivery,unsubscribe:n.unsubscribe},this.gitSubscriptions.set(t.cwd,i)}let a=i.fieldSubs.get(t.field);a||(a=[],i.fieldSubs.set(t.field,a)),a.push({name:e,varDefault:t.varDefault}),this.track(e,i.firstDelivery)}declareState(e,t){if(!this.sessionState)throw Error(`declareState("${e}"): SourceRegistry was constructed without a SessionState — state-kind variables require a SessionState (the daemon provides one; tests must supply one)`);let n=this.sessionState,r=t.varDefault??this.stringInitial(void 0);this.store.defineComputed(e,`string`,e=>{let i=e(`session.id`);if(typeof i!=`string`||!i)return r;let a=n.get(i,t.key);return a===null?r:a})}applyInput(e){this.store.runInAction(()=>{for(let[t,n]of this.inputMetas){let r=XD(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,ZD(r,i)),this.lastErrors.delete(t)}catch(e){this.applyFallback(t,i,n.varDefault,e instanceof Error?e.message:String(e))}else this.applyFallback(t,i,n.varDefault,`input path "${n.path}" not found in payload`)}})}drawAt(e){this.store.runInAction(()=>this.drawn.set(e))}getLastError(e){return this.lastErrors.get(e)}dispose(){this.abort.abort();for(let e of this.cleanups)e();this.cleanups.length=0;for(let e of this.gitSubscriptions.values())e.unsubscribe();this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close()}registerCachePolicy(e,t,n){switch(t.kind){case`never`:break;case`ttl`:{let e=this.ttlMgr.subscribe(t.durationMs,n);this.cleanups.push(e);break}case`watch_file`:{let e=this.watchMgr.subscribe(t.path,n);this.cleanups.push(e);break}case`key`:{let e=this.engine.parse(t.template),r=(0,FE.reaction)(()=>{let t=kD(this.store);try{return e.evaluate(t).map(e=>e.plain).join(``)}catch{return``}},n);this.cleanups.push(r);break}case`depends_on`:{let e=(0,FE.reaction)(()=>t.varNames.map(e=>this.store.changeKey(e)).join(`,`),n);this.cleanups.push(e);break}}}applyFallback(e,t,n,r){if(this.recordError(e,r),n!==void 0){this.store.setBox(e,n);return}try{this.store.setBox(e,ZD(this.defaultEmptyValue,t))}catch{this.store.setBox(e,QD(t))}}defaultFor(e){try{return ZD(this.defaultEmptyValue,e)}catch{return QD(e)}}stringInitial(e){return e===void 0?typeof this.defaultEmptyValue==`string`?this.defaultEmptyValue:``:e}recordError(e,t){this.lastErrors.set(e,{timestamp:Date.now(),message:t})}noteOutcome(e,t){t.kind===`ok`?this.lastErrors.delete(e):this.recordError(e,t.kind===`failed`?t.reason:`no value`)}};function eO(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}function tO(e,t){let n=H.fromFragments(e);return n.end=``,n.noWrap=!0,t!==void 0&&!t.isNull&&(n.style=t),n}function nO(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:n.truncateMarker}):e.cellLength<t&&e.align(n.justify,t)}const rO=Symbol(`cc-candybar.fillDemand`);function iO(e,t){return e[rO]=t,e}function aO(e){return e[rO]}function oO(e,t){let{width:n,justify:r,truncate:i,truncateMarker:a=`…`,baseStyle:o,padding:s}=t;if(e.length===0)return[];let c=tO(e,o).pad(s);if(n===`auto`)return[c];let l={justify:r,truncate:i,truncateMarker:a};return n===`fill`?[iO(c,l)]:(nO(c,n,l),[c])}const sO=RegExp(`\\x1b\\[[0-9;]*m|${Jr.source}`,`g`);function cO(e){return k(e.replace(sO,``))}function lO(e,t){let n=[];for(let t of e){let e=aO(t);e!==void 0&&n.push({cell:t,how:e})}if(n.length===0||!Number.isFinite(t.width))return e;let r=dC(e,t).split(`
|
|
178
|
+
`);if(r.length>1)return e;let i=Math.max(0,t.width-cO(r[0]??``)),a=Math.floor(i/n.length),o=i-a*n.length;return n.forEach(({cell:e,how:t},r)=>{let i=a+(r===n.length-1?o:0);nO(e,e.cellLength+i,t)}),e}function uO(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=dO(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e)if(pO(a.style).link){i();let e=dO([a],t);e.plain.length>0&&n.push(e)}else r.push(a);return i(),n}function dO(e,t){let n=t!==void 0&&!t.isNull?e.map(e=>fO(e,t)):e,r=H.fromFragments(n);return r.end=``,r.noWrap=!0,n.length===1?r.style=n[0].style:t!==void 0&&!t.isNull&&(r.style=t),r}function fO(e,t){let n=e.copy();return n.style=t.add(pO(e.style)),n}function pO(e){return e instanceof B?e:B.parse(e)}var mO=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function hO(e,t,n,r,i,a,o,s){let c={segName:t,palette:n,disclosure:r,tint:i,bg:void 0};e.current=c;let l=gO(a,s),u=l===void 0?i:_O(n,l,`bg`);c.bg=u;let d=gO(o,s),f=d===void 0?$i(n,u,e.drawnAt()):_O(n,d,`fg`);return new B({bgcolor:P.fromRgba(u),color:P.fromRgba(f)})}function gO(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function _O(e,t,n){try{return Vn(e,t)}catch(e){throw e instanceof Rn?new mO(t,n,e.message):e}}const vO=new Map(a_.map(e=>[e.configKey,e.effectiveVar])),yO=new Map(a_.map(e=>[e.sessionKey,e.effectiveVar]));function bO(e,t,n,r){let i=new Map,a=Object.entries(t);for(let[t,o]of[...a.filter(([,e])=>!(`do`in e)),...a.filter(([,e])=>`do`in e)])i.set(t,xO(e,t,o,n,r,i));return i}function xO(e,t,n,r,i,a){if(iv(n)){let[o,s]=av(n);return SO(r.get(n.persistWhen)??n.persistWhen,n.set,xO(e,t,o,r,i,a),xO(e,t,s,r,i,a))}if(`set`in n){let e=r.get(n.set)??n.set;if(`to`in n)return{kind:`set-literal`,key:n.set,value:n.to,stateVar:e};if(`from`in n){let t=by(n.from,i);return{kind:`set-option`,key:n.set,stateVar:e,options:[...t.members],paletteOf:t.paletteOf}}return`int`in n?{kind:`set-int`,key:n.set,stateVar:e}:`cycle`in n?{kind:`set-cycle`,key:n.set,stateVar:e,members:n.cycle}:{kind:`set-bounded`,key:n.set,by:n.by}}if(`persist`in n){let e=vO.get(n.persist)??n.persist;if(`to`in n)return{kind:`persist-literal`,key:n.persist,value:n.to,stateVar:e};if(`from`in n){let t=by(n.from,i);return{kind:`persist-option`,key:n.persist,stateVar:e,options:[...t.members],paletteOf:t.paletteOf}}if(`cycle`in n)return{kind:`persist-cycle`,key:n.persist,stateVar:e,members:n.cycle};if(`removeSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`remove`,target:n.removeSegment}};if(`insertSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`insert`,segment:n.insertSegment,anchor:n.anchor,relation:n.relation}};if(`insertSegmentFrom`in n){let e=by(n.insertSegmentFrom,i);return{kind:`layout-op-option`,key:n.persist,anchor:n.anchor,relation:n.relation,options:[...e.members],paletteOf:e.paletteOf}}return{kind:`persist-bounded`,key:n.persist,by:n.by}}if(`copy`in n)return{kind:`copy`,text:wO(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:wO(e,n.open,t)};if(`reset`in n)return{kind:`reset`,key:n.reset};if(`doctor`in n)return n.doctor===`run`?{kind:`doctor-run`}:{kind:`doctor-fix`,check:n.check};if(`undo`in n)return{kind:`undo`};if(`redo`in n)return{kind:`redo`};let[o,...s]=n.do.map(e=>{let n=a.get(e);if(n===void 0)throw Error(`action "${t}" fires "${e}", which is not declared in this config`);return n});return{kind:`do`,head:o,rest:s}}function SO(e,t,n,r){return{kind:`dual`,selector:e,session:`stateVar`in n&&`stateVar`in r?{...n,stateVar:r.stateVar}:n,durable:r,sessionKey:t}}function CO(e,t){return e.kind===`do`?CO(e.head,t):e.kind===`dual`?Za(TO(t,e.selector))===!0?e.durable:e.session:e}function wO(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function TO(e,t){return e.has(t)?RE(e.read(t)):``}function EO(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function DO(e,t,n,r){let i=new H(e,{style:B.combine([r,new B({link:t,bold:n})])});return i.noWrap=!0,i.end=``,i}function OO(e,t){return Math.max(e.members.indexOf(TO(t,e.stateVar)),0)}function kO(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=TO(r,e.stateVar);return{effects:[{verb:Sx,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=TO(r,e.stateVar);return{effects:[{verb:Sx,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=TO(r,e.stateVar);return{effects:[{verb:Sx,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(OO(e,r)+1)%e.members.length];return{effects:[{verb:Sx,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:Cx,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:wx,args:[EO(e.text,kD(r))]}],active:!1};case`open`:return{effects:[{verb:Tx,args:[EO(e.target,kD(r))]}],active:!1};case`persist-literal`:{let t=TO(r,e.stateVar);return{effects:[{verb:kx,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=TO(r,e.stateVar);return{effects:[{verb:kx,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(OO(e,r)+1)%e.members.length];return{effects:[{verb:kx,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Ax,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:jx,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:Nx,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Px,args:[i]}],active:!1};case`doctor-run`:return{effects:[{verb:Ix,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Lx,args:[i,e.check]}],active:!1};case`layout-op`:return{effects:[{verb:Mx,args:[i,e.key,ig(e.op)]}],active:!1};case`dual`:{let a=CO(e,r),{effects:o,active:s}=kO(a,t,n,r,i);return a===e.durable?{effects:o.map(t=>({...t,args:[...t.args,e.sessionKey]})),active:s}:{effects:o,active:s}}case`do`:{let a=kO(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>kO(e,t,void 0,r,i).effects)],active:a.active}}case`layout-op-option`:{let r={op:`insert`,segment:n??t,anchor:e.anchor,relation:e.relation};return{effects:[{verb:Mx,args:[i,e.key,ig(r)]}],active:!1}}}}function AO(e,t,n,r){if(n.length===0)throw Error(`action "${e}" needs a display (the clickable text)`);if(t.kind===`set-cycle`||t.kind===`persist-cycle`)return{display:Js(`action "${e}"`,n,t.members.length,OO(t,r)),boundValue:void 0};if(n.length>2)throw Error(`action "${e}" takes a display and an optional bound value, got ${n.length} arguments (per-state displays are a cycle action's form)`);return{display:n[0],boundValue:n[1]}}function jO(e,t,n){let r=n.compiled.get(e);if(!r)throw Error(`action "${e}" is not declared in this config`);let i=n.store,{display:a,boundValue:o}=AO(e,CO(r,i),t,i),{effects:s,active:c}=kO(r,a,o,i,TO(i,`session.id`));return DO(a,Bx(s),c)}function MO(e){return{action:{fn:(t,...n)=>jO(t,n,e),argTypes:[`string`,`string`],returnType:`T`}}}function NO(e,t){return DO(`✕`,Bx([{verb:Sx,args:[TO(e,`session.id`),t,Gs]}]),!1)}function PO(e,t,n){return new B({bgcolor:P.fromRgba(t),color:P.fromRgba($i(e,t,n))})}function FO(e,t,n){return PO(e.palette,fa(e.palette,e.disclosure,[t],n),n)}function IO(e,t,n,r,i){return r===void 0?n=>FO(e,{...n,distribution:t},i):(e,t)=>LO(r(t,n),i)}function LO(e,t){let n=Ui(e,`background`);return new B({bgcolor:P.fromRgba(n),color:P.fromRgba(Jn(Ui(e,`primary`),n,4.5,t))})}function RO(e){return{current:null,drawnAt:e}}function zO(e,t){let n=e.current;if(n===null)throw Error(`${t} is only available inside a segment's templates — there is no active segment here. Segment-scoped functions cannot be used in variable declarations or layout-node "when" predicates, which are evaluated outside any segment.`);return n}function BO(e){return new H(e).cellLength}function VO(e){return Math.max(1,zE(e.store.read(`term.cols`))-e.chromeCols-2*e.padding)}function HO(e){return Math.max(1,VO(e)-(BO(`✕`)+2*e.padding+e.seamCols))}function UO(e,t,n){if(!Number.isFinite(t))return e.length>0?[e.map((e,t)=>t)]:[];let r=Math.max(1,t-n),i=[],a=[],o=0;for(let t=0;t<e.length;t++){let n=e[t];a.length===0?(a=[t],o=n):o+1+n<=r?(a.push(t),o+=1+n):(i.push(a),a=[t],o=n)}return a.length>0&&i.push(a),i}function WO(e,t){let n=[];for(let t of e)n.length>0&&n.push(new H(` `)),n.push(t);let r=H.fromFragments(n);return r.noWrap=t,r.end=``,r}function GO(e,t,n,r){let i=e.compiled.get(t);if(!i||i.kind!==n)throw Error(`picker references action "${t}" which must be ${r}, got ${i?`a ${i.kind} action`:`no such action`}`);return i}function KO(e,t,n){let r=e.compiled.get(t),i=r&&CO(r,e.store);if(!i||i.kind!==`set-option`&&i.kind!==`persist-option`&&i.kind!==`layout-op-option`)throw Error(`${n} references action "${t}" which must be a set-option, persist-option, or layout-op-option action ({ set, from }, { persist, from }, or { persist, insertSegmentFrom, anchor, relation }), got ${i?`a ${i.kind} action`:`no such action`}`);return i}function qO(e,t,n,r,i,a,o){let s=KO(a,e,`picker`),c=a.compiled.get(e),l=a.store,u=TO(l,`session.id`),d=`stateVar`in s?TO(l,s.stateVar):void 0,f=s.options.map(BO),p=i?VO(a):1/0,m=BO(`✕`)+1,h=BO(`←`)+1+BO(`→`)+1,g=UO(f,p,m),_=g.length>1?UO(f,p,m+h):g,v=parseInt(TO(l,t.stateVar),10),y=Number.isInteger(v)?Math.max(0,Math.min(v,_.length-1)):0,b=_[y]??[],x=e=>Bx([{verb:Sx,args:[u,t.key,String(e)]}]),S=n.flatMap(([e,t])=>[e,t]),C=Bx([{verb:Sx,args:[u,...S]}]),ee=r?[{verb:Sx,args:[u,...S]}]:[],w=e=>Bx([...kO(c,e,e,l,u).effects,...ee]),te=[DO(`✕`,C,!1)];y>0&&te.push(DO(`←`,x(y-1),!1));for(let e of b){let t=s.options[e];te.push(DO(t,w(t),t===d,o({index:e,count:s.options.length},t)))}return y<_.length-1&&te.push(DO(`→`,x(y+1),!1)),WO(te,i)}function JO(e,t){return{picker:{fn:(n,r,i,a)=>{let o=GO(e,r,`set-int`,`an int action ({ set, int: true })`);return qO(n,{key:o.key,stateVar:o.stateVar},[[o.key,`-1`]],i===!0,a===!0,e,IO(zO(t,`{{ picker }}`),Li(void 0),e.basePalette,KO(e,n,`picker`).paletteOf,t.drawnAt()))},argTypes:[`string`,`string`,`bool`,`bool`],returnType:`T`}}}function YO(e,t,n,r,i){let a=Math.min(Math.floor((t-1)/2),i),o=n,s=0;for(;s<a;){let t=o+BO(e(-(s+1)))+1+BO(e(s+1))+1;if(t>r)break;o=t,s+=1}return s}function XO(e,t,n,r,i){if(!(`stateVar`in t))throw Error(`carousel references action "${e}", which inserts a segment and holds no current value to centre on — a carousel needs a { set, from } or { persist, from } action`);let a=n.store;if(!a.has(t.stateVar))throw Error(`carousel references action "${e}", whose key "${t.stateVar}" no variable reads back, so there is no current value to centre on — declare { kind: "state", key: "${t.stateVar}" } among the variables`);let o=n.compiled.get(e),s=TO(a,`session.id`),{options:c}=t,l=c.length,u=TO(a,t.stateVar),d=Math.max(c.indexOf(u),0),f=e=>((d+e)%l+l)%l,p=e=>c[f(e)],m=new Map,h=e=>{let t=m.get(e);if(t!==void 0)return t;let n=Bx(kO(o,p(e),p(e),a,s).effects);return m.set(e,n),n},g=e=>DO(p(e),h(e),p(e)===u,r({index:f(e),count:l},p(e))),_=YO(p,l,BO(`◀`)+1+BO(p(0))+1+BO(`▶`),HO(n),i),v=e=>Array.from({length:_},(t,n)=>g(e*(n+1)));return WO([...v(-1).reverse(),DO(`◀`,h(-1),!1),g(0),DO(`▶`,h(1),!1),...v(1)],!0)}function ZO(e,t){return{carousel:{fn:(n,r,...i)=>{if(i.length>0)throw Error(`carousel "${n}": takes at most one neighbours count after the action name, got ${1+i.length}`);if(r!==void 0&&!(Number.isInteger(r)&&r>=0))throw Error(`carousel "${n}": neighbours must be a whole number ≥ 0 (0 shows only ◀ CURRENT ▶), got ${String(r)}`);let a=r??1/0,o=KO(e,n,`carousel`);return XO(n,o,e,IO(zO(t,`{{ carousel }}`),Li(void 0),e.basePalette,o.paletteOf,t.drawnAt()),a)},argTypes:[`string`,`float`],returnType:`T`}}}const QO=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function $O(e,t,n){let r=aa(e,{hue:Ai,depth:0},n);return[U(t).map((t,n)=>({text:QO[n%QO.length],colour:Wi(e,t)})),[{text:`▾ open`,colour:r.state},{text:`menu`,colour:r.plane}],[{text:`warn`,colour:Ui(e,`warning`)},{text:`error`,colour:Ui(e,`error`)}]]}function ek(e,t,n,r){let i=$O(e,t,n).flatMap((t,r)=>t.map(({text:t,colour:i},a)=>({gap:r>0&&a===0?` `:``,cell:new H(` ${t} `,{style:PO(e,i,n)})}))),a=[],o=0;for(let{gap:e,cell:t}of i){if(o+=e.length+t.cellLength,o>r)break;e!==``&&a.push(new H(e)),a.push(t)}let s=H.fromFragments(a);return s.noWrap=!0,s.end=``,s}function tk(e,t){return{themePreview:{fn:()=>ek(e.palette,e.progression,t.drawnAt(),HO(e)),argTypes:[],returnType:`T`}}}const nk=e=>e.slice(e.lastIndexOf(`.`)+1),rk=(e,t)=>{let n=new H(nk(e));return n.truncate(t,{marker:`…`}),n.plain};function ik(e,t){let n=e.map(e=>e.map(({name:e})=>BO(nk(e)))),r=e=>n.every(n=>n.reduce((t,n)=>t+Math.min(n,e)+2,0)<=t),i=Math.max(1,...n.flat());for(;i>1&&!r(i);)--i;return i}function ak(e,t,n,r){let i=ik(e,r),a=e.map(e=>{let a=[],o=0;for(let{name:s,address:c,palette:l}of e){let e=new H(` ${rk(s,i)} `,{style:PO(l,ga(l,{kind:`bar`,progression:t,address:c},n).tint,n)});if(o+=e.cellLength,o>r)break;a.push(e)}return a}),o=H.fromFragments(a.flatMap((e,t)=>t===0?e:[new H(`
|
|
179
|
+
`),...e]));return o.noWrap=!0,o.end=``,o}function ok(e,t){return{layoutPreview:{fn:()=>ak(e.layout(),e.progression,t.drawnAt(),HO(e)),argTypes:[],returnType:`T`}}}const sk=Symbol(`cc-candybar.menuDrop`);function ck(e){return e.flatMap(e=>e[sk]??[])}function lk(e,t,n,r){let i=r.activeSegment.current;if(i===null)throw Error(`{{ menu }} rendered with no active segment placement — the render walk must publish one before evaluating a segment template`);let a=r.action,o=Mh(i.segName,e,n.key),s=Fh(o),c=jh(e),l=TO(a.store,o)===c,u=TO(a.store,`session.id`),d=l?Gs:c,f=DO(Js(`{{ menu "${e}" }}`,t,2,+!!l),Bx([{verb:Sx,args:[u,o,d,s,`0`]}]),!1);return f[sk]=l?[qO(e,{key:s,stateVar:s},[[o,Gs],[s,`0`]],n.closeOnPick,n.paged,a,IO(i,n.distribution,a.basePalette,KO(a,e,`menu`).paletteOf,r.activeSegment.drawnAt()))]:[],f}const uk=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function dk(e,t){let n=t[t.length-1],r=uk(n)?n:void 0,i=r===void 0?t:t.slice(0,-1),a=i.findIndex(e=>typeof e!=`string`);if(a!==-1)throw Error(`{{ menu "${e}" }} display #${a+1} is not text (${JSON.stringify(i[a])}) — a menu binds its trigger text, then an optional trailing (dict …) of options`);return{displays:i,options:zh(r??{})}}function fk(e){return{menu:{fn:(t,...n)=>{let{displays:r,options:i}=dk(t,n);return lk(t,r,i,e)},argTypes:[`string`,`value`],returnType:`T`}}}function pk(e){let{value:t,max:n,width:r,filled:i,empty:a,colourAt:o}=e,s=mk(t,n,r),c=[];for(let e=0;e<r;e++){let t=e<s,l=t&&o!==void 0?o(e*n/r):void 0;c.push(new H(t?i:a,{style:l===void 0?void 0:new B({color:l})}))}let l=H.fromFragments(c);return l.end=``,l.noWrap=!0,l}function mk(e,t,n){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?0:Math.min(n,Math.max(0,Math.round(e/t*n)))}function hk(e){let t={fn:(()=>{let t=zO(e,`{{ bgOf }}`);if(t.bg===void 0)throw Error(`{{ bgOf }} is not available while segments.${t.segName}'s own "bg:" is being evaluated — the background is what that template computes. Reach for a palette color there instead, e.g. bg: '{{ darken (color "surface") 1 }}'.`);return t.bg.hex}),argTypes:[],returnType:`string`},n={fn:(()=>zO(e,`{{ tint }}`).tint.hex),argTypes:[],returnType:`string`},r=uD(()=>zO(e,`{{ color }} / {{ ramp }} / {{ gauge }}`).palette),i={fn:((e,t,n,i,a,o,...s)=>pk({value:e,max:t,width:n,filled:i,empty:a,colourAt:o===void 0||s.length===0?void 0:e=>String(r.ramp.fn(e,o,...gk(s)))})),argTypes:[`float`,`float`,`int`,`string`,`string`,`string`,`string`],returnType:`T`};return{...r,bgOf:t,tint:n,gauge:i}}function gk(e){return e.flatMap(e=>{let t=e.indexOf(`:`),n=t<0?NaN:Number(e.slice(0,t));if(!Number.isFinite(n))throw Error(`{{ gauge }} stop "${e}" must be "<position>:<colour>", e.g. "80:error" or "80:#ff0000"`);return[n,e.slice(t+1)]})}function _k(e){let t=[],n=[];for(let r of e){if(!r.contains(`
|
|
180
180
|
`)){n.push(r);continue}let e=r.split(`
|
|
181
|
-
`);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function
|
|
182
|
-
`)}var
|
|
183
|
-
`)||null}var Hk=class{entries=new Map;deps;maxEntries;observers;constructor(e,t={}){this.deps=e,this.maxEntries=t.maxEntries??256,this.observers=t.observers??{}}getOrCreate(e,t,n){let r=Lk(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=this.loadFromDisk(e,t,n),o={projectDir:e,cwd:t,configFile:n,configFilePath:null,lastError:a.error,lastWarning:a.warning,state:a.state??this.buildState(t,null,[]),watcher:null,watcherKey:null};if(this.entries.set(r,o),this.entries.size>this.maxEntries){let e=this.entries.entries().next().value;if(e!==void 0){let[t,n]=e;n.state.registry.dispose(),n.state.validatorDisposers.forEach(e=>e()),n.watcher?.release(),this.entries.delete(t)}}return this.refreshWatcher(o,a.resolvedPath),this.observers.onReload?.(o),o}reloadInto(e){let t=this.loadFromDisk(e.projectDir,e.cwd,e.configFile);e.lastWarning=t.warning,e.lastError=t.error,t.state!==null&&(e.state.registry.dispose(),e.state.validatorDisposers.forEach(e=>e()),e.state=t.state),this.refreshWatcher(e,t.resolvedPath),this.observers.onReload?.(e)}loadFromDisk(e,t,n){let r=Jy(e,t,n),i=r.kind===`file`?r.path:null,a=[Qy(e,t),Xy(r)],o;try{o=this.buildState(t,i,a)}catch(e){return e instanceof Ja&&a.push(...e.warnings),{resolvedPath:i,warning:Vk(a),state:null,error:e instanceof Ja||e instanceof Error?e.message:String(e)}}return{resolvedPath:i,warning:Vk(a),state:o,error:null}}buildState(e,t,n){let{config:r,raw:i,source:a,warnings:o}=$y(t,OE);n.push(...o);let s=nb(r,t??`<default>`,a),c=new Ik,l=new YD(c,s.globals.default_empty_value??``,this.deps.gitService,this.deps.sessionState),u,d=[];try{u=wk(s,l,{cwd:e}),n.push(...u.loadWarnings);for(let{key:e,spec:t}of pw(s))d.push(ow(e,t));for(let{key:e,spec:t}of YC(s))d.push(XC(e,t))}catch(e){for(let e of d)e();throw l.dispose(),e}return{config:s,store:c,registry:l,compiled:u,neededInputPaths:sE(s),lastRenderCellsBySegment:new Map,validatorDisposers:d,authoredRoots:Rk(r,i)}}refreshWatcher(e,t){e.configFilePath=t;let n=Bk(e,t),r=`config:${e.projectDir}:${e.cwd}:${e.configFile??``}:${JSON.stringify(n)}`;e.watcher!==null&&e.watcherKey===r||(e.watcher?.release(),e.watcherKey=r,e.watcher=this.deps.watchers.acquire(r,n,()=>this.onConfigChanged(e)))}onConfigChanged(e){Y(`info`,`config change detected for entry projectDir=${e.projectDir} cwd=${e.cwd}`),this.reloadInto(e)}get size(){return this.entries.size}firstState(){return this.entries.values().next().value?.state??null}};const Uk=16384;var Wk=class{startedAt=new Date;requestsTotal=0;requestsErrored=0;requestsTimedOut=0;inFlight=0;watchersOpened=0;watchersClosed=0;watchersEvicted=0;subprocessTotal=0;subprocessInFlight=0;subprocessCount=new Map;subprocessHistogram=new Map;subprocessHistogramRotator=new Map;rollingTimestamps=[];rollingHead=0;launchStats={onStart:e=>{this.subprocessTotal++,this.subprocessInFlight++,this.subprocessCount.set(e,(this.subprocessCount.get(e)??0)+1),this.recordRollingNow()},onEnd:(e,t)=>{this.subprocessInFlight=Math.max(0,this.subprocessInFlight-1),this.recordDuration(e,t)}};recordRollingNow(){let e=Date.now();if(this.rollingTimestamps.length<Uk){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%Uk}recordDuration(e,t){let n=this.subprocessHistogram.get(e);if(n||(n=[],this.subprocessHistogram.set(e,n)),n.length<16){n.push(t);return}let r=(this.subprocessHistogramRotator.get(e)??0)%16;n[r]=t,this.subprocessHistogramRotator.set(e,r+1)}snapshotSubprocesses(){let e=Date.now()-6e4,t=0;for(let n of this.rollingTimestamps)n>=e&&t++;let n={};for(let[e,t]of this.subprocessCount)t>0&&(n[e]=t);let r={},i={};for(let[e,t]of this.subprocessHistogram){if(t.length===0)continue;let n=[...t].sort((e,t)=>e-t),a=Math.floor(n.length*.5),o=Math.min(n.length-1,Math.floor(n.length*.99)),s=n[a],c=n[o];s!==void 0&&(r[e]=s),c!==void 0&&(i[e]=c)}return{total:this.subprocessTotal,inFlight:this.subprocessInFlight,lastMinute:t,byCategory:n,p50DurationMs:r,p99DurationMs:i}}snapshot(e){let t=process.memoryUsage();return{pid:process.pid,version:Vx,protocolVersion:3,startedAt:this.startedAt.toISOString(),uptimeSec:Math.floor((Date.now()-this.startedAt.getTime())/1e3),rssBytes:t.rss,heapUsedBytes:t.heapUsed,heapTotalBytes:t.heapTotal,externalBytes:t.external,arrayBuffersBytes:t.arrayBuffers,requests:{total:this.requestsTotal,errored:this.requestsErrored,timedOut:this.requestsTimedOut,inFlight:this.inFlight},gitCache:e.gitCache,usageCache:e.usageCache,renderCache:{size:e.renderCacheSize},watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null}}};const Gk={load:()=>({}),save:()=>{},flush:()=>{}};function Kk(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,new Map(Object.entries(r)));return t}var qk=class{sessions;storage;atom=(0,jE.createAtom)(`SessionState`);constructor(e=Gk,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=Kk(this.storage.load()),this.evictOldest(),this.persist()}get(e,t){this.atom.reportObserved();let n=this.sessions.get(e);return n?(this.touch(e,n),n.get(t)??null):null}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,jE.runInAction)(()=>{let n=this.sessions.get(e)??new Map;for(let{key:e,value:r}of t)n.set(e,r);this.touch(e,n),this.evictOldest(),this.persist(),this.atom.reportChanged()})}clear(e,t){(0,jE.runInAction)(()=>{let n=this.sessions.get(e);n&&(n.delete(t),n.size===0?this.sessions.delete(e):this.touch(e,n)),this.persist(),this.atom.reportChanged()})}prune(e){(0,jE.runInAction)(()=>{for(let t of this.sessions.keys())e.has(t)||this.sessions.delete(t);this.persist(),this.atom.reportChanged()})}touch(e,t){this.sessions.delete(e),this.sessions.set(e,t)}evictOldest(){let e=this.sessions.size-this.maxSessions;if(!(e<=0)){for(let t of this.sessions.keys())if(this.sessions.delete(t),--e===0)break}}flush(){this.storage.flush()}persist(){this.storage.save(this.serialize())}serialize(){let e=Object.create(null);for(let[t,n]of this.sessions)e[t]=Object.fromEntries(n);return e}};const Jk=(e,t)=>D(t);function Yk(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;for(let t of Object.values(e)){if(typeof t!=`object`||!t||Array.isArray(t))return!1;for(let e of Object.values(t))if(typeof e!=`string`)return!1}return!0}var Xk=class{timer=null;pending=null;constructor(e,t=500,n=Jk){this.filePath=e,this.debounceMs=t,this.logger=n}load(){let e;try{e=r.readFileSync(this.filePath,`utf8`)}catch(e){let t=e.code;return t!==`ENOENT`&&this.logger(`warn`,`session-state read failed (${t}); starting empty`),{}}try{let t=JSON.parse(e);return Yk(t)?t:(this.logger(`warn`,`session-state load: unexpected shape, starting empty`),{})}catch{return this.logger(`warn`,`session-state load: corrupt JSON, starting empty`),{}}}save(e){this.pending=e,!this.timer&&(this.timer=setTimeout(()=>this.flush(),this.debounceMs),this.timer.unref())}flush(){if(this.timer&&=(clearTimeout(this.timer),null),this.pending===null)return;let e=this.pending;try{r.mkdirSync(c.dirname(this.filePath),{recursive:!0});let t=`${this.filePath}.tmp`;r.writeFileSync(t,JSON.stringify(e),{mode:384}),r.chmodSync(t,384),r.renameSync(t,this.filePath),this.pending=null}catch(e){this.logger(`warn`,`session-state save failed: ${e.message}`)}}};const Zk={default_bg:`string`,default_fg:`string`,default_empty_value:`string`,default_separator:`string`,default_truncate_marker:`string`,palette:`string`,look:`string`,preset:`string`,style:`string`,autoWrap:`boolean`,padding:`number`,charset:`string`,updateNotice:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},Qk=new Set([`1`,`true`]),$k=new Set([`0`,`false`,``]);function eA(e,t){let n=TA(e),r=n.scope===`globals`?Zk[n.field]:`string`;if(r===`string`)return JSON.stringify(t);if(r===`number`){let n=Number(t);if(!Number.isFinite(n))throw Error(`persistValueText: "${e}" expects a number, got "${t}"`);return String(n)}if(Qk.has(t))return`true`;if($k.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function tA(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function nA(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(c.dirname(e),{recursive:!0}),ke(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function rA(e){return/^\s*$/.test(e)?null:ma(e)}function iA(e,t){return e!==null&&ga(e,t)!==void 0}function aA(e){if(e.kind===`segment`)return e.when===void 0?e.name:{seg:e.name,when:e.when};if(e.kind===`container`){let{kind:t,direction:n,children:r,...i}=e;return{[n===`horizontal`?`h`:`v`]:r.map(aA),...i}}return e}function oA(e){if(!Uo(e))return aA(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,aA(t)])),...n}}const sA=EE,cA=sA.segments,lA=sA.presets,uA=sA.root;function dA(e,t,n,r){if(!iA(e,t)&&n===void 0)throw new $(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function fA(e,t){let n=mg(t);return t.scope===`segment-palette`&&dA(e,[`segments`,t.segment],cA[t.segment],n.join(`.`)),n}function pA(e){return ma(Sa(e))}function mA(){return Object.entries(uA.rows).map(([e,t])=>{let n=aA(t);return{path:[`root`],fragment:pA({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function hA(e,t){let n=e===null?void 0:ga(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function gA(e,t){if(t===void 0)return null;let n=oA(t);return{path:e,fragment:pA(n),unit:{path:e,value:n}}}function _A(e,t){let n=[`presets`,t],r=[...n,`root`],i=lA[t];dA(e,n,i,r.join(`.`));let a=hA(e,r)??gA(r,i?.root);return a!==null&&Ha(a.fragment)?a:null}function vA(e,t){let n=Va(t.fragment);return n===null?new Map([[`#`,{path:t.path,unit:t.unit,node:t.fragment}]]):new Map([...e,...n.map(e=>[e.key,{path:[...t.path,`rows`,e.key],unit:t.unit,node:e.value}])])}function yA(e,t){return[...mA(),hA(e,[`root`]),_A(e,t)].filter(e=>e!==null).reduce(vA,new Map)}function bA(e,t,n){for(let{node:r,...i}of yA(e,t).values())if(Wa(r,n))return i;throw new $(`${xA(e,t).join(`.`)} holds no segment "${n}" — the bar you clicked is stale; it reloads on the next render`)}function xA(e,t){return _A(e,t)?.path??[`root`]}function SA(e,t){return t.scope===`preset-root`?xA(e,t.preset):mg(t)}function CA(e,{unit:t}){return t===null?e:Ia(e,t.path,Sa(t.value),ba)}function wA(e){let t=pg(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function TA(e){let t=wA(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function EA(e,t){let n=TA(t),r=rA(tA(e)??``),i=r===null?void 0:ga(r,mg(n));return i!==void 0&&`value`in i?i.value:void 0}function DA(e,t,n,r){let i=TA(n),a=tA(t);LA(e,t,{before:a,after:Ia(a??``,fA(rA(a??``),i),eA(n,r),ba)})}function OA(e,t,n){let r=wA(n),i=tA(t);if(i===null)return;let a=La(i,SA(rA(i),r));a!==i&&LA(e,t,{before:i,after:a})}function kA(e,t,n,r){let i=wA(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=tA(t),o=r.op===`remove`?r.target:r.anchor,s=bA(rA(a??``),i.preset,o),c=CA(a??``,s),l=r.op===`remove`?Ka(c,s.path,r.target):qa(c,s.path,r.segment,r.anchor,r.relation);if(l===null)throw new $(`${s.path.join(`.`)} in ${t} has no segment "${o}" — the bar you clicked is stale; it reloads on the next render`);LA(e,t,{before:a,after:l})}const AA={past:[],future:[]};function jA(e){if(typeof e!=`object`||!e)return!1;let t=e;return(t.before===null||typeof t.before==`string`)&&typeof t.after==`string`}function MA(e){if(typeof e!=`object`||!e)return!1;let t=e;return Array.isArray(t.past)&&t.past.every(jA)&&Array.isArray(t.future)&&t.future.every(jA)}function NA(e){let t;try{t=r.readFileSync(e.historyPath,`utf8`)}catch(t){let n=t.code;return n!==`ENOENT`&&e.logger(`warn`,`config-edit-history read failed (${n}); starting empty`),{}}try{let e=JSON.parse(t);if(typeof e==`object`&&e&&!Array.isArray(e)&&Object.values(e).every(MA))return e}catch{}return e.logger(`warn`,`config-edit-history load: unexpected shape, starting empty`),{}}function PA(e,t){try{r.mkdirSync(c.dirname(e.historyPath),{recursive:!0}),ke(e.historyPath,JSON.stringify(t),384)}catch(t){let n=`config-edit-history write failed: ${t.message}`;throw e.logger(`error`,n),Error(n)}}function FA(e,t){let n=[...e,t];return n.length>50?n.slice(-50):n}function IA(e,t,n,r,i){nA(t,n,e.logger);try{PA(e,r)}catch(e){throw Error(`${i} landed in ${t} but recording it failed — it is not undoable: ${e.message}`)}}function LA(e,t,n){let r=NA(e),{past:i}=r[t]??AA;IA(e,t,n.after,{...r,[t]:{past:FA(i,n),future:[]}},`edit`)}function RA(e,t){let n=NA(e),{past:r,future:i}=n[t]??AA,a=r[r.length-1];return a===void 0?null:(BA(t,a.after,`undo`),IA(e,t,a.before,{...n,[t]:{past:r.slice(0,-1),future:FA(i,a)}},`undo`),a)}function zA(e,t){let n=NA(e),{past:r,future:i}=n[t]??AA,a=i[i.length-1];return a===void 0?null:(BA(t,a.before,`redo`),IA(e,t,a.after,{...n,[t]:{past:FA(r,a),future:i.slice(0,-1)}},`redo`),a)}function BA(e,t,n){if(tA(e)!==t)throw new $(`${n}: ${e} has changed since that edit — refusing to overwrite it`)}function VA(e){let t=Ee({bin:`tmux`,args:[`-S`,e.socket,`display`,`-p`,`-t`,e.pane,`#{client_termfeatures}`],timeoutMs:2e3,category:`doctor.tmux`});return t.ok?{kind:`ok`,value:t.stdout.trim().split(`,`).filter(e=>e!==``)}:{kind:`failed`,reason:`tmux display -p failed (${t.error??[t.reason,t.stderr.trim()].filter(e=>e!==``).join(`: `)})`}}function HA(){return{probeTmux:VA,claudeSettingsPath:Hx()}}function UA(e){return r.existsSync(e.claudeSettingsPath)?r.readFileSync(e.claudeSettingsPath,`utf8`):``}function WA(e){if(/^\s*$/.test(e))return{};let t=xa.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`not a JSON object`);let n=t.env;if(n===void 0)return{};if(typeof n!=`object`||!n||Array.isArray(n))throw Error("`env` is not an object");return n}function GA(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,termfeatures:e.probeTmux(t)}}function KA(e){try{return WA(UA(e))}catch(t){throw Error(`cannot read ${e.claudeSettingsPath}: ${t instanceof Error?t.message:String(t)}`,{cause:t})}}function qA(e,t){return{tmux:GA(e,t),claudeSettingsEnv:KA(e)}}function JA(e,t,n){switch(t.kind){case`claude-settings-env`:{let i=Ia(UA(e),[`env`,t.name],JSON.stringify(t.value),xa);return r.mkdirSync(c.dirname(e.claudeSettingsPath),{recursive:!0}),ke(e.claudeSettingsPath,i),{...n,claudeSettingsEnv:KA(e)}}default:return t.kind}}function YA(e){if(!e)throw new $(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new $(`invalid session id "${e}"`);return e}function XA(e){return ZA(()=>decodeURIComponent(e))}function ZA(e){try{return e()}catch(e){throw e instanceof URIError?new $(`malformed wire encoding: ${e.message}`):e}}function QA(e,t){let n=Ee({bin:`/usr/bin/pbcopy`,stdinInput:e,category:`click.pbcopy`});if(!n.ok){if(n.reason===`rate-limited`){t.dlog(`warn`,`click.pbcopy rate-limited: ${n.error??``}`);return}throw Error(`pbcopy failed (${n.reason}, exit ${n.exitCode??`null`})`)}}const $A=(e,t)=>QA(XA(e),t),ej=(e,t)=>{let n=Ee({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,XA(e)],category:`click.open`});if(!n.ok){if(n.reason===`rate-limited`){t.dlog(`warn`,`click.open rate-limited: ${n.error??``}`);return}throw Error(`open -a "Visual Studio Code" failed (${n.reason}, exit ${n.exitCode??`null`})`)}},tj=(e,t)=>QA(XA(e),t),nj=(e,t)=>QA(XA(e),t),rj=(e,t)=>{let n=YA(XA(e));t.sessionState.get(n,`toolbar-expanded`)?t.sessionState.clear(n,`toolbar-expanded`):t.sessionState.set(n,`toolbar-expanded`,`1`)},ij=(e,t)=>{let[n=``,...r]=ZA(()=>Fx(e)),i=YA(n);if(r.length===0)throw new $(`set-state: <key>/<value> is required (have keys: ${aw().join(`, `)})`);if(r.length%2!=0)throw new $(`set-state: expected even-count <key>/<value> pairs, got ${r.length} segment(s) after session id (have keys: ${aw().join(`, `)})`);let a=[];for(let e=0;e<r.length;e+=2){let t=r[e],n=r[e+1];if(!t)throw new $(`set-state: empty key at pair ${e/2+1} (expected <sessionId>/<key>/<value>[/<key>/<value>...] segments)`);let i=sw(t,n);if(!i.ok)throw new $(`set-state: pair ${e/2+1}: ${i.reason}`);a.push({key:t,value:i.value})}t.sessionState.setBatch(i,a);let o=a.map(e=>`${e.key}=${e.value}`).join(` `);t.dlog(`info`,`set-state: ${o} (session=${i})`)},aj=/^-?\d+$/;function oj(e,t,n){return e>n?t:e<t?n:e}function sj(e,t){if(!e)return null;if(!aw().includes(e))throw new $(`${t}: unknown session key "${e}" to release (have: ${aw().join(`, `)})`);return e}function cj(e,t,n,r){e!==null&&(n.sessionState.clear(t,e),n.dlog(`info`,`${r}: released session key ${e} (session=${t})`))}const lj=(e,t)=>{let[n=``,r=``,i=``]=ZA(()=>Fx(e)),a=YA(n);if(!r)throw new $(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!aj.test(i))throw new $(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=cw(r);if(!s)throw new $(`step-state: key "${r}" is not a bounded (range) state key (have keys: ${aw().join(`, `)})`);let c=t.sessionState.get(a,r),l=c&&aj.test(c)?Math.max(s.min,Math.min(s.max,parseInt(c,10))):s.seed,u=oj(l+o,s.min,s.max),d=sw(r,String(u));if(!d.ok)throw new $(`step-state: ${d.reason}`);t.sessionState.set(a,r,d.value),t.dlog(`info`,`step-state: ${r} ${l}→${d.value} (by ${o}, session=${a})`)},uj=`render-origin`;function dj(e){return JSON.stringify(e)}function fj(e){let t;try{t=JSON.parse(e)}catch{throw new $(`render origin is not JSON: ${e}`)}if(typeof t!=`object`||!t)throw new $(`render origin is not an object: ${e}`);let{projectDir:n,cwd:r,configFile:i}=t;if(typeof n!=`string`||typeof r!=`string`||i!==null&&typeof i!=`string`)throw new $(`render origin has the wrong shape: ${e}`);return{projectDir:n,cwd:r,configFile:i}}function pj(e,t){let n=e.sessionState.get(t,uj);if(n===null)throw new $(`session ${t} has not rendered yet — no config file to write`);let r=fj(n);return Yy(r.projectDir,r.cwd,r.configFile??void 0)}function mj(e){return{historyPath:ze(),logger:e.dlog}}const hj=(e,t)=>{let[n=``,r=``,i=``,a=``]=ZA(()=>Fx(e)),o=YA(n);if(!r)throw new $(`set-config: <key>/<value> is required (have keys: ${VC().join(`, `)})`);let s=HC(r,i);if(!s.ok)throw new $(`set-config: ${s.reason}`);let c=sj(a,`set-config`),l=pj(t,o);DA(mj(t),l,r,s.value),t.dlog(`info`,`set-config: ${r}=${s.value} → ${l} (session=${o})`),cj(c,o,t,`set-config`)},gj=(e,t)=>{let[n=``,r=``,i=``,a=``]=ZA(()=>Fx(e)),o=YA(n);if(!r)throw new $(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!aj.test(i))throw new $(`step-config: delta must be an integer, got "${i}"`);let s=parseInt(i,10),c=sj(a,`step-config`),l=UC(r);if(!l)throw new $(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${VC().join(`, `)})`);let u=pj(t,o),d=EA(u,r),f=typeof d==`number`?Math.max(l.min,Math.min(l.max,d)):l.seed,p=oj(f+s,l.min,l.max),m=HC(r,String(p));if(!m.ok)throw new $(`step-config: ${m.reason}`);DA(mj(t),u,r,m.value),t.dlog(`info`,`step-config: ${r} ${f}→${m.value} (by ${s}) → ${u} (session=${o})`),cj(c,o,t,`step-config`)},_j=(e,t)=>{let[n=``,r=``]=ZA(()=>Fx(e)),i=YA(n);if(!r||!VC().includes(r))throw new $(`reset-config: unknown config key "${r}" (have: ${VC().join(`, `)})`);let a=pj(t,i);OA(mj(t),a,r),t.dlog(`info`,`reset-config: ${r} ← ${a} (session=${i})`)},vj=(e,t)=>{let[n=``,r=``,i=``]=ZA(()=>Fx(e)),a=YA(n);if(!r)throw new $(`apply-layout-op: <key>/<op> is required (have: ${VC().join(`, `)})`);let o=HC(r,i);if(!o.ok)throw new $(`apply-layout-op: ${o.reason}`);let s=tg(o.value);if(s===null)throw new $(`apply-layout-op: "${o.value}" is not a layout op token`);let c=pj(t,a);kA(mj(t),c,r,s),t.dlog(`info`,`apply-layout-op: ${r} ${o.value} → ${c} (session=${a})`)},yj=(e,t)=>{let[n=``]=ZA(()=>Fx(e)),r=YA(n),i=pj(t,r);if(RA(mj(t),i)===null)throw new $(`undo: history is empty, nothing to undo`);t.dlog(`info`,`undo: ${i} (session=${r})`)},bj=(e,t)=>{let[n=``]=ZA(()=>Fx(e)),r=YA(n),i=pj(t,r);if(zA(mj(t),i)===null)throw new $(`redo: nothing to redo`);t.dlog(`info`,`redo: ${i} (session=${r})`)},xj=(e,t)=>{YA(XA(e)),t.applyUpdate()},Sj=`client-hints`;function Cj(e,t){let n=e.sessionState.get(t,Sj);if(n===null)throw new $(`session ${t} has not rendered yet — no client facts to diagnose`);let r;try{r=JSON.parse(n)}catch{throw new $(`client hints record is not JSON: ${n}`)}if(typeof r!=`object`||!r)throw new $(`client hints record is not an object: ${n}`);return lb(r)}function wj(e,t,n){let r=Jg(n);e.sessionState.setBatch(t,Zg(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed`}`).join(` `)} (session=${t})`)}const Tj=(e,t)=>{let n=YA(XA(e));wj(t,n,qA(t.doctor,Cj(t,n).tmux))},Ej=(e,t)=>{let[n=``,r=``]=ZA(()=>Fx(e)),i=YA(n),a=Yg(r);if(a===void 0)throw new $(`doctor-fix: unknown check "${r}"`);let o=qA(t.doctor,Cj(t,i).tmux),s=a.probe(o);if(s.ok||s.fix===void 0)throw new $(`doctor-fix: ${a.label} — ${s.ok?`nothing to fix`:s.reason}`);let c=JA(t.doctor,s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.name}=${s.fix.value} (session=${i})`),wj(t,i,c)},Dj=`config-override`,Oj=new Map([[bx,$A],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new $(`load-config: expected <sessionId>/<path> (missing separator)`);let r=YA(ZA(()=>decodeURIComponent(e.slice(0,n)))),i=ZA(()=>decodeURIComponent(e.slice(n+1))).trim();if(i!==``){if(!i.startsWith(`/`))throw new $(`load-config: path must be absolute, got "${i}"`);if(!/\.(json5?|json)$/.test(i))throw new $(`load-config: path must end with .json5 or .json, got "${i}"`)}i===``?(t.sessionState.clear(r,Dj),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,Dj,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[xx,ej],[vx,ij],[yx,lj],[Tx,hj],[Ex,gj],[Dx,_j],[Ox,vj],[kx,yj],[Ax,bj],[Cx,tj],[wx,nj],[Sx,rj],[jx,xj],[Mx,Tj],[Nx,Ej]]),kj=new Set([vx,yx,Tx,Ex,Dx,Ox,kx,Ax,Sx,jx,Mx,Nx]),Aj=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Rx(Lx(e))){if(!i&&kj.has(a)){let e=Fx(o);e.length>0&&e[0]&&(i=e[0])}let e=Oj.get(a);if(!e){n.push(`unknown effect verb "${a}"`);continue}try{e(o,t)}catch(e){e instanceof $||(r=!0),n.push(`${a}: ${e instanceof Error?e.message:String(e)}`)}}if(n.length>0){i&&t.sessionState.set(i,`click.error`,n.join(`
|
|
184
|
-
`));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new $(e)}},jj=new Map([...Oj,[_x,Aj]]);Object.freeze([...jj.keys()]);const Mj=new Set([`hook_event_name`,`session_id`,`session_name`,`transcript_path`,`cwd`,`model`,`workspace`,`version`,`output_style`,`cost`,`context_window`,`exceeds_200k_tokens`,`effort`,`thinking`,`rate_limits`,`vim`,`agent`,`worktree`]),Nj=[[`session_id`,`string`],[`transcript_path`,`string`],[`cwd`,`string`],[`model`,`object`],[`model.id`,`string`],[`model.display_name`,`string`],[`workspace`,`object`],[`workspace.current_dir`,`string`],[`workspace.project_dir`,`string`]];function Pj(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of Nj){let i=Ij(n,e);if(i==null)t.missingRequired.push(e);else{let n=Fj(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let e of Object.keys(n))Mj.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function Fj(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function Ij(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n||Array.isArray(n))return;n=n[e]}return n}function Lj(e,t){switch(e){case`vars`:return{what:e,vars:Rj(t)};case`segments`:return{what:e,segments:Uj(t)};case`config`:return{what:e,config:Kj(t)}}}function Rj(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=Vj(r),a=t.names().sort(),o=[];for(let e of a){let r=t.getNode(e),a=n.getLastError(e);o.push({name:e,source:i.get(e)??null,...zj(r),lastError:a===void 0?null:{timestampMs:a.timestamp,message:a.message},ageMs:Bj(r.lastUpdatedMs())})}return o}function zj(e){if(e.kind!==`document`)try{return{type:e.type,value:e.read()}}catch(t){return{type:e.type,value:t instanceof Error?t.message:String(t)}}let t=e.read();switch(t.kind){case`ok`:return{type:`document`,value:JSON.stringify(t.value)};case`absent`:return{type:`document`,value:`(not yet scanned)`};case`failed`:return{type:`document`,value:t.reason}}}function Bj(e){return e===null?null:Math.max(0,Date.now()-e)}function Vj(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,Hj(r));for(let[n,r]of Object.entries(e.segments))if(r.vars)for(let[e,i]of Object.entries(r.vars))t.set(`${n}.${e}`,Hj(i));return t}function Hj(e){return e.kind}function Uj(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=Wj(n),o=[];for(let e of a){let t=n.segments[e];t&&o.push({name:e,description:t.description??null,template:t.template,referencedVars:Gj(t.template,i),lastRender:r.get(e)??null})}return o}function Wj(e){let t=[],n=new Set;for(let r of no(Ko(e.root)))r.kind===`segment`&&e.segments[r.name]&&!n.has(r.name)&&(t.push(r.name),n.add(r.name));for(let r of Object.keys(e.segments))n.has(r)||(t.push(r),n.add(r));return t}function Gj(e,t){let n=new Set;for(let r of by(e)){if(t.has(r)){n.add(r);continue}let e=r.split(`.`);for(;e.length>1;){e.pop();let r=e.join(`.`);if(t.has(r)){n.add(r);break}}}return Array.from(n).sort()}function Kj(e){return e===null?null:e.config}const qj=[`vars`,`segments`,`config`];function Jj(e){return typeof e==`string`&&qj.includes(e)}function Yj(e){return Math.max(1,e-2)}var Xj=class{thresholds={LOW:50,MEDIUM:80};getContextUsageThresholds(){return this.thresholds}ratioPercentages(e,t){let n=Math.min(100,Math.max(0,Math.round(e/t*100)));return{percentage:n,contextLeftPercentage:Math.max(0,100-n)}}calculateContextFromHookData(e){let t=e.context_window;if(!t?.current_usage)return D(`No current_usage in hook data, falling back to transcript parsing`),null;let n=t.current_usage,r=t.context_window_size,i=(n.input_tokens||0)+(n.cache_creation_input_tokens||0)+(n.cache_read_input_tokens||0);D(`Native current_usage: input=${n.input_tokens}, cache_create=${n.cache_creation_input_tokens}, cache_read=${n.cache_read_input_tokens}, total=${i} (limit: ${r})`);let a=this.ratioPercentages(i,r);return{totalTokens:i,maxTokens:r,percentage:t.used_percentage==null?a.percentage:Math.round(t.used_percentage),contextLeftPercentage:t.remaining_percentage==null?a.contextLeftPercentage:Math.round(t.remaining_percentage)}}async calculateContextTokensFromTranscript(e,t){try{D(`Calculating context tokens from transcript: ${e}`);let n=await OT(e);if(n.length===0)return D(`No entries in transcript`),Z;let r=null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t&&t.message?.usage?.input_tokens&&t.isSidechain!==!0){r=t,D(`Context segment: Found most recent entry at ${t.timestamp.toISOString()}, stopping search`);break}}if(r?.message?.usage){let e=r.message.usage,n=(e.input_tokens||0)+(e.cache_read_input_tokens||0)+(e.cache_creation_input_tokens||0);return D(`Most recent main chain context: ${n} tokens (limit: ${t})`),X({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return D(`No main chain entries with usage data found`),Z}catch(e){return Q(`context transcript: ${e instanceof Error?e.message:String(e)}`)}}async getContextInfo(e){let t=this.calculateContextFromHookData(e);if(t)return X(t);let n=e.context_window?.context_window_size??2e5;return this.calculateContextTokensFromTranscript(e.transcript_path,n)}},Zj=class{states=new Map;constructor(e,t,n=256){this.empty=e,this.step=t,this.maxSessions=n}async read(e,t){let n=this.states.get(e),r=dT(t);if(n&&r!==0&&n.cursor.mtimeMs===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await MT(t,n?.cursor);if(i.kind===`failed`)return i;if(i.kind===`absent`)return{kind:`ok`,value:n?.value??this.empty};let{entries:a,cursor:o,reset:s}=i.value,c=s||n===void 0?this.empty:n.value;for(let e of a)c=this.step(c,e);for(this.touch(e,{cursor:o,value:c});this.states.size>this.maxSessions;){let e=this.states.keys().next().value;if(e===void 0)break;this.states.delete(e)}return{kind:`ok`,value:c}}touch(e,t){this.states.delete(e),this.states.set(e,t)}};const Qj={messageCount:0,recent:[]};function $j(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +!!ET(t),recent:n.length>20?n.slice(-20):n}}function eM(e){let t=null,n=null;for(let r of e){let e=r.type||r.message?.role||r.message?.type;if(ET(r))t=r.timestamp;else if(e===`assistant`&&t){let e=(r.timestamp.getTime()-t.getTime())/1e3;e>.1&&e<300&&(n=e)}}return n}var tM=class{fold=new Zj(Qj,$j);async getMetricsInfo(e,t){if(D(`Getting metrics from hook data for session: ${e}`),!t.cost)return Z;let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?Q(`metrics (${e}): ${n.reason}`):X({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:eM(n.value.recent),sessionDuration:t.cost.total_duration_ms/1e3,messageCount:n.value.messageCount,linesAdded:t.cost.total_lines_added,linesRemoved:t.cost.total_lines_removed})}};const nM={command:null,todos:[],pending:[],done:[]};function rM(e,t){let n=e.findIndex(e=>e.name===t);return n<0?[...e,{name:t,count:1}]:e.map((e,t)=>t===n?{name:e.name,count:e.count+1}:e)}function iM(e,t){if(t.isSidechain)return e;let n=ET(t)?{...e,command:t.activity?.command??null,pending:[],done:[]}:e,r=t.activity;if(r===void 0)return n;let i=n.pending,a=n.done;r.started!==void 0&&(i=[...i,...r.started]);for(let e of r.finished??[]){let t=i.findIndex(t=>t.id===e);t<0||(a=rM(a,i[t].name),i=[...i.slice(0,t),...i.slice(t+1)])}return{...n,pending:i,done:a,todos:r.todos??n.todos}}function aM(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>rM(e,t.name),[]),done:e.done}}var oM=class{fold=new Zj(nM,iM);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?Q(`activity (${e}): ${n.reason}`):X(aM(n.value))}};const sM=new Map;function cM(e){if(!e)return``;let t=e.indexOf(`,`);return t<0?e:e.slice(0,t)}var lM=class{async getSessionId(){if(!process.env.TMUX_PANE)return Z;let e=cM(process.env.TMUX),t=sM.get(e);if(t!==void 0)return t;D(`Getting tmux session ID, TMUX_PANE: ${process.env.TMUX_PANE}`);let n=await Te({bin:`tmux`,args:[`display-message`,`-p`,`#S`],timeoutMs:1e3,category:`tmux`}),r=n.ok?n.stdout.trim()?X(n.stdout.trim()):Z:Q(`tmux display-message: ${n.reason}`);return sM.set(e,r),r}isInTmux(){return!!process.env.TMUX_PANE}},uM=class{written=new Map;constructor(e){this.dir=e}pathFor(e){return c.join(this.dir,`${encodeURIComponent(e)}.txt`)}sync(e,t){let n=this.pathFor(e);if(t===(this.written.get(e)??null))return null;try{return t===null?(r.rmSync(n,{force:!0}),this.written.delete(e)):(r.mkdirSync(this.dir,{recursive:!0,mode:448}),r.writeFileSync(n,t,{mode:384}),this.written.set(e,t)),null}catch(e){return`${n}: ${e.message}`}}reset(){this.written.clear();try{return r.rmSync(this.dir,{recursive:!0,force:!0}),null}catch(e){return`${this.dir}: ${e.message}`}}};const dM=new Wk;Ce(dM.launchStats);const fM=new $w({counters:dM,logger:Y}),pM=new sT({watchers:fM,logger:Y}),mM=new WT,hM=new qk,gM=new uM(We()),_M=new Xj,vM=new tM,yM=new oM,bM=new lM,xM=new Hk({gitService:pM,sessionState:hM,watchers:fM},{observers:{onReload:e=>Y(`info`,`config loaded projectDir=${e.projectDir} cwd=${e.cwd} file=${e.configFilePath??`<bundled default>`} error=${e.lastError===null?`none`:JSON.stringify(e.lastError)} warning=${e.lastWarning===null?`none`:JSON.stringify(e.lastWarning)}`)}}),SM=60*1e3;function CM(){let e=import.meta.url,n=[];e.startsWith(`file://`)&&n.push(b(e)),t.argv[1]&&n.push(t.argv[1]);let i=new Map;for(let e of n)try{i.set(e,r.statSync(e).mtimeMs)}catch{}let a=null,o=()=>{for(let[e,t]of i)try{if(r.statSync(e).mtimeMs!==t){Y(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),zM(0);return}}catch(e){Y(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,SM),a.unref())},checkNow:o}}const wM=CM(),TM=Ow({entryUrl:import.meta.url,intervalMs:SM,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>wM.checkNow(),log:Y});let EM=null,DM=null,OM=0;function kM(){t.on(`uncaughtException`,e=>{Y(`error`,`uncaughtException: ${e.stack||e.message}`),zM(1)}),t.on(`unhandledRejection`,e=>{Y(`error`,`unhandledRejection: ${String(e)}`),zM(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{Y(`info`,`received ${e}, shutting down`),zM(0)});try{OM=Ub(t.env)}catch(e){Y(`error`,`refusing to boot: ${e.message}`),zM(1);return}EM=NS(t.pid);let e=US(GS(EM));if(!e.decision.allow){Y(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),zM(1);return}DM=e.registryPath,r.mkdirSync(Me(),{recursive:!0}),Fe(Ne()),hM.useStorage(new Xk(Re(),500,Y)),IS({anchor:FS(t.env),isAlive:LS,onOrphaned:e=>{Y(`info`,`parent watchdog: ${e}; shutting down`),zM(0)}}),AM(g.createServer({allowHalfOpen:!1},e=>{BM(e)}),Ne(),!1)}function AM(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){Y(`error`,`server error: ${i.message}`),zM(1);return}if(r){Y(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}jM(e,n)}),e.listen(n,()=>MM(n))}function jM(e,n){let i=CS(wS(Ie(n)),(e,t)=>MS(e,t,{readStartTime:jS,pidAlive:LS}));if(i.kind===`attach-and-exit`){Y(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}Y(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){Y(`error`,`cannot unlink stale socket ${n}: ${e.message}`),zM(1);return}}AM(e,n,!0)}function MM(e){let n=DS(e);if(n.kind!==`present`){Y(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),zM(0);return}IM(e);try{r.chmodSync(e,384)}catch(e){Y(`warn`,`chmod socket failed: ${e.message}`)}Y(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(_.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(OM/1048576)}MB`),ox();let i=gM.reset();i!==null&&Y(`warn`,`diagnostic dump wipe failed: ${i}`),wM.arm(),TM.arm(),FM(),NM(e,n.identity)}function NM(e,n){AS({bound:n,myPid:t.pid,readIdentity:()=>DS(e),readLease:()=>wS(Ie(e)),shutdown:e=>zM(e),log:Y}).arm()}let PM=null;function FM(){PM=qb(Zb(dM.startedAt.getTime(),e=>zM(e),{rssLimitBytes:OM})),PM.arm()}function IM(e){let n=TS(Ie(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:EM});n!==null&&Y(`warn`,`lease write failed: ${n}`)}let LM=0,RM=!1;function zM(e){if(!RM){RM=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{pM.close()}catch(e){Y(`warn`,`gitService close failed: ${e.message}`)}try{mM.close()}catch(e){Y(`warn`,`usageStore close failed: ${e.message}`)}try{fM.closeAll()}catch(e){Y(`warn`,`watcherRegistry close failed: ${e.message}`)}try{hM.flush()}catch(e){Y(`warn`,`sessionState flush failed: ${e.message}`)}ES(Le(),t.pid),DM!==null&&WS(DM,t.pid,VS,e=>r.unlinkSync(e)),t.exit(e)}}function BM(e){LM++,dM.inFlight=LM;let t=!1,n=(n,r)=>{if(t){r!==null&&Y(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>zM(r);try{e.end(gb(n),i)}catch(e){Y(`warn`,`response write failed: ${e.message}`),i?.()}},r=setTimeout(()=>{dM.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),i=_b(e=>{HM(e).then(e=>n(e.resp,e.exitAfterFlush)).catch(e=>{Y(`error`,`handler threw: ${e?.stack||e}`),n({ok:!1,error:String(e?.message||e),code:`RENDER_FAILED`,daemonV:3},null)})},e=>{Y(`warn`,`frame parse failed: ${e.message}`),n({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)});e.on(`data`,i),e.on(`error`,e=>{Y(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(r),LM=Math.max(0,LM-1),dM.inFlight=LM})}const VM=e=>({resp:e,exitAfterFlush:null});async function HM(e){if(!e||typeof e!=`object`||typeof e.v!=`number`)return VM({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?Y(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):Y(`info`,`version mismatch: client=${e.v} < daemon=3; client is stale — staying up`),{resp:{ok:!1,error:`protocol v${e.v} not supported (daemon at v3)`,code:`VERSION_MISMATCH`,daemonV:3},exitAfterFlush:e.v>3?0:null};if(e.kind===`shutdown`)return{resp:{ok:!0,output:``},exitAfterFlush:0};if(e.kind===`stats`)return VM({ok:!0,stats:dM.snapshot({gitCache:pM.getStats(),usageCache:mM.getStats(),renderCacheSize:xM.size,watchersActive:fM.size(),nextRestartReason:PM?.describeNextRestart()??null})});if(e.kind===`render`){dM.requestsTotal++;let t=Date.now();try{let{report:n}=Pj(e.hookData);for(let e of n.unknownTopLevelFields)Y(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let r=[];for(let e of n.missingRequired)r.push(`missing required field '${e}'`);for(let{path:e,expected:t,got:i}of n.typeMismatches)r.push(`field '${e}' expected ${t}, got ${i}`);if(e.cwd===``&&r.push(`request 'cwd' is empty`),r.length>0)return dM.requestsErrored++,Y(`warn`,`BAD_REQUEST: ${r.join(`; `)}`),VM({ok:!1,error:`malformed hookData: ${r.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3});let i=e.hookData.workspace.project_dir,{configFile:a,unknownFlagsError:o}=UM(e.args),s=e.hookData.session_id,c=lb(e),l=JSON.stringify(c);hM.get(s,`client-hints`)!==l&&hM.set(s,Sj,l);let u=hM.get(s,`config-override`)??a??c.configEnv,d=xM.getOrCreate(i,e.cwd,u),f=dj({projectDir:i,cwd:e.cwd,configFile:u??null});hM.get(s,`render-origin`)!==f&&hM.set(s,uj,f);let p=c.termCols,m=Yj(p??120),h=cC(c.termRows),g={...GM,width:m},{authoredRoots:_}=d.state,v=XT(d.state.config,t=>hM.get(e.hookData.session_id,t),e=>_.has(e)),y=await dE(e.hookData,YM,e.cwd,d.state.neededInputPaths(v.preset),v,c),b=[];g.style=v.style,g.separator=v.separator,g.wrap=v.autoWrap,g.padding=v.padding,g.charset=v.charset,g.colorCompatibility=v.colorCompatibility;let x=Ok(d.state.config,d.state.compiled,d.state.store,d.state.registry,y,g,{perSegmentSink:d.state.lastRenderCellsBySegment,onRenderWarning:e=>b.push(e)},{theme:v.theme,look:v.look,preset:v.preset}),S=hM.get(e.hookData.session_id,`click.error`);S&&hM.clear(e.hookData.session_id,`click.error`);let C=[o,d.lastError,S].filter(Boolean).join(`
|
|
185
|
-
`),ee=
|
|
186
|
-
`)),ne=
|
|
187
|
-
`})}catch(e){throw
|
|
188
|
-
`);return}t.stdout.write(
|
|
181
|
+
`);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function vk(e,t){switch(e){case`vertical`:return bk(t.flatMap(e=>e));case`horizontal`:{let e=t.find(e=>e[0]?.span===`row`);return e===void 0?t.reduce((e,t)=>Math.max(e,t.length),0)===0?[]:[{cells:t.flatMap(e=>e[0]?.cells??[]),band:`own`,span:`shared`},...t.flatMap(e=>e.slice(1))]:bk(e)}}}function yk(e,t){let n=(e,r)=>t(e)?e.kind===`segment`?[{cells:[{name:e.name,address:r}],band:`own`,span:`shared`}]:vk(e.direction,e.children.map((t,i)=>n(t,[...r,xk(e,i)]))):[];return n(e,[]).map(e=>[...e.cells])}function bk(e){return e.map(e=>e.span===`row`?{...e,span:`shared`}:e)}function xk(e,t){return{index:t,count:e.children.length,distribution:e.distribution,axis:Jo[e.direction]}}const Sk={container:{compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:Li(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,`${t.path}.children[${n}]`))}},render(e,t){return vk(e.direction,e.children.map((n,r)=>t.renderChild(n,t.visible,xk(e,r))))}},segment:{compile(e,t){return{kind:`segment`,when:t.when,name:e.name,...e.opens!==void 0&&{opens:{open:t.parse(Zs(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,`${t.path}.opens.body`),key:e.opens.ref.key,placement:e.opens.placement}}}},render(e,t){let n=t.lookupSegment(e.name);if(!n)throw Error(`Layout segment "${e.name}" has no matching segment`);let{seg:r,compiled:i}=n;if(!t.visible)return[];try{if(!eO(i.when,t.scope))return[];let n=i.palette??t.palette,a=t.enterSegment(e.name,n,t.region,i.bg,i.fg),o=i.template.evaluate(t.scope),s=t.exitSegment(o),c=e.opens!==void 0&&eO(e.opens.open,t.scope),l=s.length>0||c?a.trigger:a.closed,u={width:r.width??`auto`,justify:r.justify??`left`,truncate:r.truncate??`right`,baseStyle:l,padding:t.padding},d=e.opens===void 0?[]:t.renderBody(e.opens.body,c,a.disclosure),f=d.slice(0,+(e.opens?.placement===`inline`)),p=d.slice(f.length),m=e.opens!==void 0&&p.some(e=>e.band===`own`)?oO(uO([t.closeDisclosure(e.opens.key)],a.trigger),{...u,width:`auto`,baseStyle:a.trigger}):[],h=e=>e.band===`own`?m:[],g=p.map(e=>({cells:[...h(e),...e.cells],band:`deeper`,span:`shared`})),_=_k(uO(o,l)).map(e=>({cells:oO(e,u),band:`own`,span:`shared`})),v=s.map(e=>({cells:oO(uO([e],a.band),{...u,baseStyle:a.band}),band:`deeper`,span:`shared`})),y=[..._,...v];return t.perSegmentSink!==void 0&&t.perSegmentSink.set(e.name,[...y.flatMap(e=>e.cells),...p.flatMap(h)]),[...y.map((e,t)=>t===0&&f.length>0?{cells:[...e.cells,...f.flatMap(e=>e.cells)],band:`own`,span:`row`}:e),...g]}catch(n){let r=n.message??String(n);t.onSegmentError?.(e.name,r);let i=r.replace(/\s*\n\s*/g,` `);return[{cells:[new H(`⚠ ${e.name}: ${i}`,{end:``,noWrap:!0})],band:`own`,span:`shared`}]}}}};function Ck(e){return Sk[e]}function wk(e){if(`ttl`in e)return{kind:`ttl`,durationMs:LD(e.ttl)};if(`watch_file`in e)return{kind:`watch_file`,path:e.watch_file};if(`depends_on`in e)return{kind:`depends_on`,varNames:e.depends_on};if(`key`in e)return{kind:`key`,template:e.key};if(`never`in e)return{kind:`never`};throw Error(`Unknown CacheDecl discriminator — loader invariant violated: ${JSON.stringify(e)}`)}function Tk(e,t){switch(Qo(e)){case`json`:return{kind:`json`,default:t};case`regex`:return{kind:`regex`,regex:new RegExp(e.regex),default:t};case`text`:return{kind:`text`,default:t}}}function Ek(e,t,n,r){switch(n.kind){case`literal`:e.declareLiteral(t,n.value);break;case`input`:e.declareInput(t,n.path,n.type??`string`,n.default);break;case`env`:e.declareEnv(t,n.name,n.default);break;case`file`:e.declareFile(t,n.path,{readMode:n.readMode,cache:wk(n.cache),parse:Tk(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cache:wk(n.cache),parse:Tk(n.parse,n.default)});break;case`template`:e.declareTemplate(t,n.template,{varDefault:n.default});break;case`time`:e.declareTime(t,{format:n.layout,ttlMs:n.cache?LD(n.cache.ttl):void 0,varDefault:n.default});break;case`git`:e.declareGit(t,{field:n.field,cwd:r,varDefault:n.default});break;case`state`:e.declareState(t,{key:n.key,...n.default!==void 0&&{varDefault:n.default}});break}}function Dk(e,t){let n=yu.EMPTY;for(let[r,i]of Object.entries(t))try{n=e.parse(`{{ define "${r}" }}${i}{{ end }}`,n).defines()}catch(e){throw Error(`Template parse error in helpers.${r}: ${e.message}`,{cause:e})}return n}const Ok=e=>Ka(void 0,null,e.globals.progression);function kk(e,t,n){let r=n?.cwd??process.cwd(),i=hy(e.globals.palette),a={store:t.variableStore,compiled:new Map,chromeCols:lC({style:`powerline`,charset:Ia}),basePalette:i,palette:i,progression:ki[Ok(e)],padding:1,seamCols:uC({style:`powerline`,charset:Ia}),layout:()=>[]},o=RO(t.drawnAt),s={action:a,activeSegment:o},c=Object.keys(e.looks),l=lg(e.presets),u=new Map([...vy(e),...Ig(e)]),d=OD({...MO(a),...JO(a,o),...ZO(a,o),...tk(a,o),...ok(a,o),...fk(s),...hk(o),looks:{fn:()=>c,argTypes:[]},presets:{fn:()=>l,argTypes:[]}},n?.clock,t.drawnAt),f=Dk(d,e.helpers),p=e=>d.parse(e,f),m=new Map,h=e=>{let t=m.get(e);if(t!==void 0)return t;let n=p(e);return m.set(e,n),n},g=new Map;for(let[t,n]of yO)n in e.variables&&g.set(t,n);for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&!g.has(n.key)&&g.set(n.key,t);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))r.kind===`state`&&!g.has(r.key)&&g.set(r.key,`${t}.${e}`);a.compiled=bO(p,e.actions,g,u);let _=[];for(let[n,i]of Object.entries(e.variables))try{Ek(t,n,i,r)}catch(e){_.push(`Variable "${n}": ${e.message??String(e)}`)}for(let[n,i]of Object.entries(e.segments))if(i.vars)for(let[e,a]of Object.entries(i.vars))try{Ek(t,`${n}.${e}`,a,r)}catch(t){_.push(`Variable "${n}.${e}": ${t.message??String(t)}`)}let v=Object.create(null);for(let[t,n]of Object.entries(e.segments)){let e=(e,n,r=p)=>{try{return r(e)}catch(e){throw Error(`Template parse error in segments.${t}.${n}: ${e.message}`,{cause:e})}};v[t]={when:n.when===void 0?void 0:e(n.when,`when`,h),template:e(n.template,`template`),bg:n.bg===void 0?void 0:e(n.bg,`bg`),fg:n.fg===void 0?void 0:e(n.fg,`fg`),palette:n.palette===void 0?void 0:cy(n.palette)}}let y=(e,t,n,r=p)=>{try{return r(e)}catch(e){throw Error(`Template parse error in ${t}.${n}: ${e.message}`,{cause:e})}},b=(e,t)=>{let n={path:t,when:e.when===void 0?void 0:y(e.when,t,`when`,h),parse:(e,n)=>y(e,t,n),compileChild:b};return Ck(e.kind).compile(e,n)},x=new Map;for(let t of l){let{node:n,path:r}=fg(e,t);x.set(t,b(n,r))}let S=new Map;for(let t of wa){let n=e.globals[t];Ta(n)&&S.set(t,Ak(p,t,n))}return{segments:v,roots:x,activeSegment:o,menuRuntime:s,globalExpressions:S,loadWarnings:_}}function Ak(e,t,n){try{return e(n)}catch(e){throw Error(`globals.${t} is not a valid template: ${e instanceof Error?e.message:String(e)}`)}}function jk(e,t,n){let r=e.globalExpressions.get(t);if(r===void 0)throw Error(`globals.${t} is an expression but no compiled template exists — registerDslConfig and the resolution disagree about isExpression`);return r.evaluate(n).map(e=>e.plain).join(``)}function Mk(e,t){return e.kind===`decided`?e.name:t}function Nk(e,t,n,r,i,a,o,s){let{perSegmentSink:c,onSegmentError:l,onRenderWarning:u}=o??{};r.drawAt(Ua(a.colorCompatibility));let{preset:d=sg}=s??{},f=ki[s?.progression??Ok(e)];t.menuRuntime.action.progression=f;let p=s?.look??Aa(`none`,e.looks),m=s?.theme??py(void 0,null,e.globals.palette),h=(e,t)=>({...i,term:{cols:a.width},theme:{effective:e},look:{effective:t}});r.applyInput(h(Mk(m,ya),Mk(p,Oa))),t.menuRuntime.action.chromeCols=lC(a),t.menuRuntime.action.padding=a.padding,t.menuRuntime.action.seamCols=uC(a);let g=kD(n),_=Da(m,()=>jk(t,`palette`,g),e=>fy(e,e=>u?.(e))),v=Da(p,()=>jk(t,`look`,g),t=>Aa(t,e.looks));(_!==m||v!==p)&&r.applyInput(h(_.name,v.name));let y=_.value;t.menuRuntime.action.basePalette=y;let b=uy(y,v.value);t.menuRuntime.action.palette=b,c?.clear();let x=n=>{let r=e.segments[n],i=t.segments[n];return r!==void 0&&i!==void 0?{seg:r,compiled:i}:void 0},S=(e,n,i,a,o)=>{let s=r.drawnAt(),{tint:c,disclosure:l}=ga(n,i,s);return{closed:hO(t.activeSegment,e,n,l,c,a,o,g),get trigger(){return PO(n,aa(n,l,s).state,s)},get band(){return PO(n,aa(n,l,s).plane,s)},disclosure:l}},C=e=>(t.activeSegment.current=null,ck(e)),ee=(e,t,r)=>{let i=t&&eO(e.when,g),o={scope:g,palette:b,visible:i,padding:a.padding,region:r,perSegmentSink:c,onSegmentError:l,enterSegment:S,exitSegment:C,lookupSegment:x,renderChild:(e,t,n)=>ee(e,t,ma(r,n)),renderBody:(e,t,n)=>ee(e,i&&t,ha(n)),closeDisclosure:e=>NO(n,e)};return Ck(e.kind).render(e,o)},w=t.roots.get(d);if(w===void 0)throw Error(`Preset "${d}" has no compiled layout — registerDslConfig compiles one per declared preset and effectivePresetName collapses unknown names to "${sg}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);let te=e=>{if(!eO(e.when,g))return!1;if(e.kind===`container`)return!0;if(Bg(e.name)===void 0)return!1;try{return eO(t.segments[e.name].when,g)}catch{return!0}};return t.menuRuntime.action.layout=()=>yk(w,te).map(e=>e.flatMap(e=>{let n=Bg(e.name);return n===void 0?[]:[{...e,name:n,palette:t.segments[n].palette??b}]})),ee(w,!0,pa(f)).map(e=>dC(lO(e.cells,a),a)).join(`
|
|
182
|
+
`)}var Pk=class{kind=`box`;cell;lastChangedAt;constructor(e,t,n){this.name=e,this.type=t,Bk(e,t,n,`initial value`),this.cell=FE.observable.box(n,{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){Bk(this.name,this.type,e,`set value`),!Object.is(this.cell.get(),e)&&(this.cell.set(e),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}},Fk=class{kind=`computed`;cell;constructor(e,t,n){this.name=e,this.type=t,this.cell=(0,FE.computed)(()=>{let e=n();return Bk(this.name,this.type,e,`computed result`),e},{keepAlive:!0})}read(){return this.cell.get()}lastUpdatedMs(){return null}},Ik=class{kind=`document`;cell;lastChangedAt;constructor(e,t){this.name=e,this.cell=FE.observable.box(zk(t),{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){let t=zk(e);Rk(this.cell.get(),t)||(this.cell.set(t),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}};function Lk(e){return JSON.stringify(e)}function Rk(e,t){return Lk(e)===Lk(t)}function zk(e){return e.kind===`ok`?{kind:`ok`,value:IE(e.value)}:e}function Bk(e,t,n,r){let i=LE(n);if(i!==t)throw TypeError(`Variable "${e}": ${r} type ${i} does not match declared type ${t}`)}var Vk=class{nodes=new Map;defineBox(e,t,n){this.assertNotDefined(e),this.nodes.set(e,new Pk(e,t,n))}defineDocument(e,t){this.assertNotDefined(e),this.nodes.set(e,new Ik(e,t))}defineComputed(e,t,n){this.assertNotDefined(e);let r=e=>this.read(e);this.nodes.set(e,new Fk(e,t,()=>n(r)))}read(e){return this.requireVar(e).read()}readDocument(e){let t=this.requireNode(e);if(t.kind!==`document`)throw TypeError(`Variable "${e}" is a ${t.kind}, not a document`);return t.read()}setDocument(e,t){let n=this.requireNode(e);if(n.kind!==`document`)throw TypeError(`Variable "${e}" is a ${n.kind}, not a document (use defineDocument to create one)`);(0,FE.runInAction)(()=>n.set(t))}setBox(e,t){let n=this.requireNode(e);if(n.kind!==`box`)throw TypeError(`Variable "${e}" is a ${n.kind}, not a box (use defineBox to create a settable variable)`);(0,FE.runInAction)(()=>n.set(t))}runInAction(e){(0,FE.runInAction)(e)}has(e){return this.nodes.has(e)}getType(e){return this.requireVar(e).type}getKind(e){return this.requireNode(e).kind}changeKey(e){let t=this.requireNode(e);if(t.kind===`document`)return Lk(t.read());try{return String(t.read())}catch(e){return`failed:${e instanceof Error?e.message:String(e)}`}}getNode(e){let t=this.requireNode(e);return t.kind===`document`?{name:t.name,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}:{name:t.name,type:t.type,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}}names(){return[...this.nodes.keys()]}requireNode(e){let t=this.nodes.get(e);if(!t)throw ReferenceError(`Unknown variable "${e}"`);return t}requireVar(e){let t=this.requireNode(e);if(t.kind===`document`)throw TypeError(`Variable "${e}" is a document; read its fields by path (.${e}.<field>)`);return t}assertNotDefined(e){if(this.nodes.has(e))throw Error(`Variable "${e}" is already declared`)}};function Hk(e,t,n){return e+`\0`+t+`\0`+(n??``)}function Uk(e,t){return new Set(lg(e.presets).filter(n=>fg(e,n).path===`root`?t.root!==void 0:t.presets?.[n]?.root!==void 0))}function Wk(e){let t=c.basename(e),n=c.dirname(e);for(;!r.existsSync(n);)t=c.basename(n),n=c.dirname(n);return{dir:n,name:t}}function Gk(e,t){let n=new Map;for(let t of Xy(e.projectDir,e.cwd,e.configFile)){let{dir:e,name:r}=Wk(t);n.has(e)||n.set(e,new Set),n.get(e).add(r)}return{files:t===null?[]:[t],dirs:[...n.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({path:e,filenames:[...t].sort()}))}}function Kk(e){return e.filter(Boolean).join(`
|
|
183
|
+
`)||null}var qk=class{entries=new Map;deps;maxEntries;observers;constructor(e,t={}){this.deps=e,this.maxEntries=t.maxEntries??256,this.observers=t.observers??{}}getOrCreate(e,t,n){let r=Hk(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=this.loadFromDisk(e,t,n),o={projectDir:e,cwd:t,configFile:n,configFilePath:null,lastError:a.error,lastWarning:a.warning,state:a.state??this.buildState(t,null,[]),watcher:null,watcherKey:null};if(this.entries.set(r,o),this.entries.size>this.maxEntries){let e=this.entries.entries().next().value;if(e!==void 0){let[t,n]=e;n.state.registry.dispose(),n.state.validatorDisposers.forEach(e=>e()),n.watcher?.release(),this.entries.delete(t)}}return this.refreshWatcher(o,a.resolvedPath),this.observers.onReload?.(o),o}reloadInto(e){let t=this.loadFromDisk(e.projectDir,e.cwd,e.configFile);e.lastWarning=t.warning,e.lastError=t.error,t.state!==null&&(e.state.registry.dispose(),e.state.validatorDisposers.forEach(e=>e()),e.state=t.state),this.refreshWatcher(e,t.resolvedPath),this.observers.onReload?.(e)}loadFromDisk(e,t,n){let r=Qy(e,t,n),i=r.kind===`file`?r.path:null,a=[nb(e,t),eb(r)],o;try{o=this.buildState(t,i,a)}catch(e){return e instanceof Ho&&a.push(...e.warnings),{resolvedPath:i,warning:Kk(a),state:null,error:e instanceof Ho||e instanceof Error?e.message:String(e)}}return{resolvedPath:i,warning:Kk(a),state:o,error:null}}buildState(e,t,n){let{config:r,raw:i,source:a,warnings:o}=rb(t,ME);n.push(...o);let s=ob(r,t??`<default>`,a),c=new Vk,l=new $D(c,s.globals.default_empty_value??``,this.deps.gitService,this.deps.sessionState),u,d=[];try{u=kk(s,l,{cwd:e}),n.push(...u.loadWarnings);for(let{key:e,spec:t}of _w(s))d.push(uw(e,t));for(let{key:e,spec:t}of $C(s))d.push(ew(e,t))}catch(e){for(let e of d)e();throw l.dispose(),e}return{config:s,store:c,registry:l,compiled:u,neededInputPaths:dE(s),lastRenderCellsBySegment:new Map,validatorDisposers:d,authoredRoots:Uk(r,i)}}refreshWatcher(e,t){e.configFilePath=t;let n=Gk(e,t),r=`config:${e.projectDir}:${e.cwd}:${e.configFile??``}:${JSON.stringify(n)}`;e.watcher!==null&&e.watcherKey===r||(e.watcher?.release(),e.watcherKey=r,e.watcher=this.deps.watchers.acquire(r,n,()=>this.onConfigChanged(e)))}onConfigChanged(e){Y(`info`,`config change detected for entry projectDir=${e.projectDir} cwd=${e.cwd}`),this.reloadInto(e)}get size(){return this.entries.size}firstState(){return this.entries.values().next().value?.state??null}};const Jk=16384;var Yk=class{startedAt=new Date;requestsTotal=0;requestsErrored=0;requestsTimedOut=0;inFlight=0;watchersOpened=0;watchersClosed=0;watchersEvicted=0;subprocessTotal=0;subprocessInFlight=0;subprocessCount=new Map;subprocessHistogram=new Map;subprocessHistogramRotator=new Map;rollingTimestamps=[];rollingHead=0;launchStats={onStart:e=>{this.subprocessTotal++,this.subprocessInFlight++,this.subprocessCount.set(e,(this.subprocessCount.get(e)??0)+1),this.recordRollingNow()},onEnd:(e,t)=>{this.subprocessInFlight=Math.max(0,this.subprocessInFlight-1),this.recordDuration(e,t)}};recordRollingNow(){let e=Date.now();if(this.rollingTimestamps.length<Jk){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%Jk}recordDuration(e,t){let n=this.subprocessHistogram.get(e);if(n||(n=[],this.subprocessHistogram.set(e,n)),n.length<16){n.push(t);return}let r=(this.subprocessHistogramRotator.get(e)??0)%16;n[r]=t,this.subprocessHistogramRotator.set(e,r+1)}snapshotSubprocesses(){let e=Date.now()-6e4,t=0;for(let n of this.rollingTimestamps)n>=e&&t++;let n={};for(let[e,t]of this.subprocessCount)t>0&&(n[e]=t);let r={},i={};for(let[e,t]of this.subprocessHistogram){if(t.length===0)continue;let n=[...t].sort((e,t)=>e-t),a=Math.floor(n.length*.5),o=Math.min(n.length-1,Math.floor(n.length*.99)),s=n[a],c=n[o];s!==void 0&&(r[e]=s),c!==void 0&&(i[e]=c)}return{total:this.subprocessTotal,inFlight:this.subprocessInFlight,lastMinute:t,byCategory:n,p50DurationMs:r,p99DurationMs:i}}snapshot(e){let t=process.memoryUsage();return{pid:process.pid,version:Gx,protocolVersion:3,startedAt:this.startedAt.toISOString(),uptimeSec:Math.floor((Date.now()-this.startedAt.getTime())/1e3),rssBytes:t.rss,heapUsedBytes:t.heapUsed,heapTotalBytes:t.heapTotal,externalBytes:t.external,arrayBuffersBytes:t.arrayBuffers,requests:{total:this.requestsTotal,errored:this.requestsErrored,timedOut:this.requestsTimedOut,inFlight:this.inFlight},gitCache:e.gitCache,usageCache:e.usageCache,renderCache:{size:e.renderCacheSize},watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null}}};const Xk={load:()=>({}),save:()=>{},flush:()=>{}};function Zk(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,new Map(Object.entries(r)));return t}var Qk=class{sessions;storage;atom=(0,FE.createAtom)(`SessionState`);constructor(e=Xk,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=Zk(this.storage.load()),this.evictOldest(),this.persist()}get(e,t){this.atom.reportObserved();let n=this.sessions.get(e);return n?(this.touch(e,n),n.get(t)??null):null}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,FE.runInAction)(()=>{let n=this.sessions.get(e)??new Map;for(let{key:e,value:r}of t)n.set(e,r);this.touch(e,n),this.evictOldest(),this.persist(),this.atom.reportChanged()})}clear(e,t){(0,FE.runInAction)(()=>{let n=this.sessions.get(e);n&&(n.delete(t),n.size===0?this.sessions.delete(e):this.touch(e,n)),this.persist(),this.atom.reportChanged()})}prune(e){(0,FE.runInAction)(()=>{for(let t of this.sessions.keys())e.has(t)||this.sessions.delete(t);this.persist(),this.atom.reportChanged()})}touch(e,t){this.sessions.delete(e),this.sessions.set(e,t)}evictOldest(){let e=this.sessions.size-this.maxSessions;if(!(e<=0)){for(let t of this.sessions.keys())if(this.sessions.delete(t),--e===0)break}}flush(){this.storage.flush()}persist(){this.storage.save(this.serialize())}serialize(){let e=Object.create(null);for(let[t,n]of this.sessions)e[t]=Object.fromEntries(n);return e}};const $k=(e,t)=>D(t);function eA(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;for(let t of Object.values(e)){if(typeof t!=`object`||!t||Array.isArray(t))return!1;for(let e of Object.values(t))if(typeof e!=`string`)return!1}return!0}var tA=class{timer=null;pending=null;constructor(e,t=500,n=$k){this.filePath=e,this.debounceMs=t,this.logger=n}load(){let e;try{e=r.readFileSync(this.filePath,`utf8`)}catch(e){let t=e.code;return t!==`ENOENT`&&this.logger(`warn`,`session-state read failed (${t}); starting empty`),{}}try{let t=JSON.parse(e);return eA(t)?t:(this.logger(`warn`,`session-state load: unexpected shape, starting empty`),{})}catch{return this.logger(`warn`,`session-state load: corrupt JSON, starting empty`),{}}}save(e){this.pending=e,!this.timer&&(this.timer=setTimeout(()=>this.flush(),this.debounceMs),this.timer.unref())}flush(){if(this.timer&&=(clearTimeout(this.timer),null),this.pending===null)return;let e=this.pending;try{r.mkdirSync(c.dirname(this.filePath),{recursive:!0});let t=`${this.filePath}.tmp`;r.writeFileSync(t,JSON.stringify(e),{mode:384}),r.chmodSync(t,384),r.renameSync(t,this.filePath),this.pending=null}catch(e){this.logger(`warn`,`session-state save failed: ${e.message}`)}}};const nA={default_bg:`string`,default_fg:`string`,default_empty_value:`string`,default_separator:`string`,default_truncate_marker:`string`,palette:`string`,look:`string`,preset:`string`,style:`string`,progression:`string`,autoWrap:`boolean`,padding:`number`,charset:`string`,updateNotice:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},rA=new Set([`1`,`true`]),iA=new Set([`0`,`false`,``]);function aA(e,t){let n=AA(e),r=n.scope===`globals`?nA[n.field]:`string`;if(r===`string`)return JSON.stringify(t);if(r===`number`){let n=Number(t);if(!Number.isFinite(n))throw Error(`persistValueText: "${e}" expects a number, got "${t}"`);return String(n)}if(rA.has(t))return`true`;if(iA.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function oA(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function sA(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(c.dirname(e),{recursive:!0}),ke(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function cA(e){return/^\s*$/.test(e)?null:so(e)}function lA(e,t){return e!==null&&lo(e,t)!==void 0}function uA(e){if(e.kind===`segment`)return e.when===void 0?e.name:{seg:e.name,when:e.when};if(e.kind===`container`){let{kind:t,direction:n,children:r,...i}=e;return{[n===`horizontal`?`h`:`v`]:r.map(uA),...i}}return e}function dA(e){if(!Is(e))return uA(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,uA(t)])),...n}}const fA=AE,pA=fA.segments,mA=fA.presets,hA=fA.root;function gA(e,t,n,r){if(!lA(e,t)&&n===void 0)throw new $(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function _A(e,t){let n=vg(t);return t.scope===`segment-palette`&&gA(e,[`segments`,t.segment],pA[t.segment],n.join(`.`)),n}function vA(e){return so(go(e))}function yA(){return Object.entries(hA.rows).map(([e,t])=>{let n=uA(t);return{path:[`root`],fragment:vA({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function bA(e,t){let n=e===null?void 0:lo(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function xA(e,t){if(t===void 0)return null;let n=dA(t);return{path:e,fragment:vA(n),unit:{path:e,value:n}}}function SA(e,t){let n=[`presets`,t],r=[...n,`root`],i=mA[t];gA(e,n,i,r.join(`.`));let a=bA(e,r)??xA(r,i?.root);return a!==null&&Io(a.fragment)?a:null}function CA(e,t){let n=Fo(t.fragment);return n===null?new Map([[`#`,{path:t.path,unit:t.unit,node:t.fragment}]]):new Map([...e,...n.map(e=>[e.key,{path:[...t.path,`rows`,e.key],unit:t.unit,node:e.value}])])}function wA(e,t){return[...yA(),bA(e,[`root`]),SA(e,t)].filter(e=>e!==null).reduce(CA,new Map)}function TA(e,t,n){for(let{node:r,...i}of wA(e,t).values())if(Ro(r,n))return i;throw new $(`${EA(e,t).join(`.`)} holds no segment "${n}" — the bar you clicked is stale; it reloads on the next render`)}function EA(e,t){return SA(e,t)?.path??[`root`]}function DA(e,t){return t.scope===`preset-root`?EA(e,t.preset):vg(t)}function OA(e,{unit:t}){return t===null?e:Ao(e,t.path,go(t.value),mo)}function kA(e){let t=_g(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function AA(e){let t=kA(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function jA(e,t){let n=AA(t),r=cA(oA(e)??``),i=r===null?void 0:lo(r,vg(n));return i!==void 0&&`value`in i?i.value:void 0}function MA(e,t,n,r){let i=AA(n),a=oA(t);HA(e,t,{before:a,after:Ao(a??``,_A(cA(a??``),i),aA(n,r),mo)})}function NA(e,t,n){let r=kA(n),i=oA(t);if(i===null)return;let a=jo(i,DA(cA(i),r));a!==i&&HA(e,t,{before:i,after:a})}function PA(e,t,n,r){let i=kA(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=oA(t),o=r.op===`remove`?r.target:r.anchor,s=TA(cA(a??``),i.preset,o),c=OA(a??``,s),l=r.op===`remove`?Bo(c,s.path,r.target):Vo(c,s.path,r.segment,r.anchor,r.relation);if(l===null)throw new $(`${s.path.join(`.`)} in ${t} has no segment "${o}" — the bar you clicked is stale; it reloads on the next render`);HA(e,t,{before:a,after:l})}const FA={past:[],future:[]};function IA(e){if(typeof e!=`object`||!e)return!1;let t=e;return(t.before===null||typeof t.before==`string`)&&typeof t.after==`string`}function LA(e){if(typeof e!=`object`||!e)return!1;let t=e;return Array.isArray(t.past)&&t.past.every(IA)&&Array.isArray(t.future)&&t.future.every(IA)}function RA(e){let t;try{t=r.readFileSync(e.historyPath,`utf8`)}catch(t){let n=t.code;return n!==`ENOENT`&&e.logger(`warn`,`config-edit-history read failed (${n}); starting empty`),{}}try{let e=JSON.parse(t);if(typeof e==`object`&&e&&!Array.isArray(e)&&Object.values(e).every(LA))return e}catch{}return e.logger(`warn`,`config-edit-history load: unexpected shape, starting empty`),{}}function zA(e,t){try{r.mkdirSync(c.dirname(e.historyPath),{recursive:!0}),ke(e.historyPath,JSON.stringify(t),384)}catch(t){let n=`config-edit-history write failed: ${t.message}`;throw e.logger(`error`,n),Error(n)}}function BA(e,t){let n=[...e,t];return n.length>50?n.slice(-50):n}function VA(e,t,n,r,i){sA(t,n,e.logger);try{zA(e,r)}catch(e){throw Error(`${i} landed in ${t} but recording it failed — it is not undoable: ${e.message}`)}}function HA(e,t,n){let r=RA(e),{past:i}=r[t]??FA;VA(e,t,n.after,{...r,[t]:{past:BA(i,n),future:[]}},`edit`)}function UA(e,t){let n=RA(e),{past:r,future:i}=n[t]??FA,a=r[r.length-1];return a===void 0?null:(GA(t,a.after,`undo`),VA(e,t,a.before,{...n,[t]:{past:r.slice(0,-1),future:BA(i,a)}},`undo`),a)}function WA(e,t){let n=RA(e),{past:r,future:i}=n[t]??FA,a=i[i.length-1];return a===void 0?null:(GA(t,a.before,`redo`),VA(e,t,a.after,{...n,[t]:{past:BA(r,a),future:i.slice(0,-1)}},`redo`),a)}function GA(e,t,n){if(oA(e)!==t)throw new $(`${n}: ${e} has changed since that edit — refusing to overwrite it`)}function KA(e){let t=Ee({bin:`tmux`,args:[`-S`,e.socket,`display`,`-p`,`-t`,e.pane,`#{client_termfeatures}`],timeoutMs:2e3,category:`doctor.tmux`});return t.ok?{kind:`ok`,value:t.stdout.trim().split(`,`).filter(e=>e!==``)}:{kind:`failed`,reason:`tmux display -p failed (${t.error??[t.reason,t.stderr.trim()].filter(e=>e!==``).join(`: `)})`}}function qA(){return{probeTmux:KA,claudeSettingsPath:Kx()}}function JA(e){return r.existsSync(e.claudeSettingsPath)?r.readFileSync(e.claudeSettingsPath,`utf8`):``}function YA(e){if(/^\s*$/.test(e))return{};let t=ho.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`not a JSON object`);let n=t.env;if(n===void 0)return{};if(typeof n!=`object`||!n||Array.isArray(n))throw Error("`env` is not an object");return n}function XA(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,termfeatures:e.probeTmux(t)}}function ZA(e){try{return YA(JA(e))}catch(t){throw Error(`cannot read ${e.claudeSettingsPath}: ${t instanceof Error?t.message:String(t)}`,{cause:t})}}function QA(e,t){return{tmux:XA(e,t),claudeSettingsEnv:ZA(e)}}function $A(e,t,n){switch(t.kind){case`claude-settings-env`:{let i=Ao(JA(e),[`env`,t.name],JSON.stringify(t.value),ho);return r.mkdirSync(c.dirname(e.claudeSettingsPath),{recursive:!0}),ke(e.claudeSettingsPath,i),{...n,claudeSettingsEnv:ZA(e)}}default:return t.kind}}function ej(e){if(!e)throw new $(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new $(`invalid session id "${e}"`);return e}function tj(e){return nj(()=>decodeURIComponent(e))}function nj(e){try{return e()}catch(e){throw e instanceof URIError?new $(`malformed wire encoding: ${e.message}`):e}}function rj(e,t){let n=Ee({bin:`/usr/bin/pbcopy`,stdinInput:e,category:`click.pbcopy`});if(!n.ok){if(n.reason===`rate-limited`){t.dlog(`warn`,`click.pbcopy rate-limited: ${n.error??``}`);return}throw Error(`pbcopy failed (${n.reason}, exit ${n.exitCode??`null`})`)}}const ij=(e,t)=>rj(tj(e),t),aj=(e,t)=>{let n=Ee({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,tj(e)],category:`click.open`});if(!n.ok){if(n.reason===`rate-limited`){t.dlog(`warn`,`click.open rate-limited: ${n.error??``}`);return}throw Error(`open -a "Visual Studio Code" failed (${n.reason}, exit ${n.exitCode??`null`})`)}},oj=(e,t)=>rj(tj(e),t),sj=(e,t)=>rj(tj(e),t),cj=(e,t)=>{let n=ej(tj(e));t.sessionState.get(n,`toolbar-expanded`)?t.sessionState.clear(n,`toolbar-expanded`):t.sessionState.set(n,`toolbar-expanded`,`1`)},lj=(e,t)=>{let[n=``,...r]=nj(()=>zx(e)),i=ej(n);if(r.length===0)throw new $(`set-state: <key>/<value> is required (have keys: ${lw().join(`, `)})`);if(r.length%2!=0)throw new $(`set-state: expected even-count <key>/<value> pairs, got ${r.length} segment(s) after session id (have keys: ${lw().join(`, `)})`);let a=[];for(let e=0;e<r.length;e+=2){let t=r[e],n=r[e+1];if(!t)throw new $(`set-state: empty key at pair ${e/2+1} (expected <sessionId>/<key>/<value>[/<key>/<value>...] segments)`);let i=dw(t,n);if(!i.ok)throw new $(`set-state: pair ${e/2+1}: ${i.reason}`);a.push({key:t,value:i.value})}t.sessionState.setBatch(i,a);let o=a.map(e=>`${e.key}=${e.value}`).join(` `);t.dlog(`info`,`set-state: ${o} (session=${i})`)},uj=/^-?\d+$/;function dj(e,t,n){return e>n?t:e<t?n:e}function fj(e,t){if(!e)return null;if(!lw().includes(e))throw new $(`${t}: unknown session key "${e}" to release (have: ${lw().join(`, `)})`);return e}function pj(e,t,n,r){e!==null&&(n.sessionState.clear(t,e),n.dlog(`info`,`${r}: released session key ${e} (session=${t})`))}const mj=(e,t)=>{let[n=``,r=``,i=``]=nj(()=>zx(e)),a=ej(n);if(!r)throw new $(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!uj.test(i))throw new $(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=fw(r);if(!s)throw new $(`step-state: key "${r}" is not a bounded (range) state key (have keys: ${lw().join(`, `)})`);let c=t.sessionState.get(a,r),l=c&&uj.test(c)?Math.max(s.min,Math.min(s.max,parseInt(c,10))):s.seed,u=dj(l+o,s.min,s.max),d=dw(r,String(u));if(!d.ok)throw new $(`step-state: ${d.reason}`);t.sessionState.set(a,r,d.value),t.dlog(`info`,`step-state: ${r} ${l}→${d.value} (by ${o}, session=${a})`)},hj=`render-origin`;function gj(e){return JSON.stringify(e)}function _j(e){let t;try{t=JSON.parse(e)}catch{throw new $(`render origin is not JSON: ${e}`)}if(typeof t!=`object`||!t)throw new $(`render origin is not an object: ${e}`);let{projectDir:n,cwd:r,configFile:i}=t;if(typeof n!=`string`||typeof r!=`string`||i!==null&&typeof i!=`string`)throw new $(`render origin has the wrong shape: ${e}`);return{projectDir:n,cwd:r,configFile:i}}function vj(e,t){let n=e.sessionState.get(t,hj);if(n===null)throw new $(`session ${t} has not rendered yet — no config file to write`);let r=_j(n);return $y(r.projectDir,r.cwd,r.configFile??void 0)}function yj(e){return{historyPath:ze(),logger:e.dlog}}const bj=(e,t)=>{let[n=``,r=``,i=``,a=``]=nj(()=>zx(e)),o=ej(n);if(!r)throw new $(`set-config: <key>/<value> is required (have keys: ${GC().join(`, `)})`);let s=KC(r,i);if(!s.ok)throw new $(`set-config: ${s.reason}`);let c=fj(a,`set-config`),l=vj(t,o);MA(yj(t),l,r,s.value),t.dlog(`info`,`set-config: ${r}=${s.value} → ${l} (session=${o})`),pj(c,o,t,`set-config`)},xj=(e,t)=>{let[n=``,r=``,i=``,a=``]=nj(()=>zx(e)),o=ej(n);if(!r)throw new $(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!uj.test(i))throw new $(`step-config: delta must be an integer, got "${i}"`);let s=parseInt(i,10),c=fj(a,`step-config`),l=qC(r);if(!l)throw new $(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${GC().join(`, `)})`);let u=vj(t,o),d=jA(u,r),f=typeof d==`number`?Math.max(l.min,Math.min(l.max,d)):l.seed,p=dj(f+s,l.min,l.max),m=KC(r,String(p));if(!m.ok)throw new $(`step-config: ${m.reason}`);MA(yj(t),u,r,m.value),t.dlog(`info`,`step-config: ${r} ${f}→${m.value} (by ${s}) → ${u} (session=${o})`),pj(c,o,t,`step-config`)},Sj=(e,t)=>{let[n=``,r=``]=nj(()=>zx(e)),i=ej(n);if(!r||!GC().includes(r))throw new $(`reset-config: unknown config key "${r}" (have: ${GC().join(`, `)})`);let a=vj(t,i);NA(yj(t),a,r),t.dlog(`info`,`reset-config: ${r} ← ${a} (session=${i})`)},Cj=(e,t)=>{let[n=``,r=``,i=``]=nj(()=>zx(e)),a=ej(n);if(!r)throw new $(`apply-layout-op: <key>/<op> is required (have: ${GC().join(`, `)})`);let o=KC(r,i);if(!o.ok)throw new $(`apply-layout-op: ${o.reason}`);let s=ag(o.value);if(s===null)throw new $(`apply-layout-op: "${o.value}" is not a layout op token`);let c=vj(t,a);PA(yj(t),c,r,s),t.dlog(`info`,`apply-layout-op: ${r} ${o.value} → ${c} (session=${a})`)},wj=(e,t)=>{let[n=``]=nj(()=>zx(e)),r=ej(n),i=vj(t,r);if(UA(yj(t),i)===null)throw new $(`undo: history is empty, nothing to undo`);t.dlog(`info`,`undo: ${i} (session=${r})`)},Tj=(e,t)=>{let[n=``]=nj(()=>zx(e)),r=ej(n),i=vj(t,r);if(WA(yj(t),i)===null)throw new $(`redo: nothing to redo`);t.dlog(`info`,`redo: ${i} (session=${r})`)},Ej=(e,t)=>{ej(tj(e)),t.applyUpdate()},Dj=`client-hints`;function Oj(e,t){let n=e.sessionState.get(t,Dj);if(n===null)throw new $(`session ${t} has not rendered yet — no client facts to diagnose`);let r;try{r=JSON.parse(n)}catch{throw new $(`client hints record is not JSON: ${n}`)}if(typeof r!=`object`||!r)throw new $(`client hints record is not an object: ${n}`);return pb(r)}function kj(e,t,n){let r=Qg(n);e.sessionState.setBatch(t,t_(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed`}`).join(` `)} (session=${t})`)}const Aj=(e,t)=>{let n=ej(tj(e));kj(t,n,QA(t.doctor,Oj(t,n).tmux))},jj=(e,t)=>{let[n=``,r=``]=nj(()=>zx(e)),i=ej(n),a=$g(r);if(a===void 0)throw new $(`doctor-fix: unknown check "${r}"`);let o=QA(t.doctor,Oj(t,i).tmux),s=a.probe(o);if(s.ok||s.fix===void 0)throw new $(`doctor-fix: ${a.label} — ${s.ok?`nothing to fix`:s.reason}`);let c=$A(t.doctor,s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.name}=${s.fix.value} (session=${i})`),kj(t,i,c)},Mj=`config-override`,Nj=new Map([[wx,ij],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new $(`load-config: expected <sessionId>/<path> (missing separator)`);let r=ej(nj(()=>decodeURIComponent(e.slice(0,n)))),i=nj(()=>decodeURIComponent(e.slice(n+1))).trim();if(i!==``){if(!i.startsWith(`/`))throw new $(`load-config: path must be absolute, got "${i}"`);if(!/\.(json5?|json)$/.test(i))throw new $(`load-config: path must end with .json5 or .json, got "${i}"`)}i===``?(t.sessionState.clear(r,Mj),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,Mj,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[Tx,aj],[Sx,lj],[Cx,mj],[kx,bj],[Ax,xj],[jx,Sj],[Mx,Cj],[Nx,wj],[Px,Tj],[Dx,oj],[Ox,sj],[Ex,cj],[Fx,Ej],[Ix,Aj],[Lx,jj]]),Pj=new Set([Sx,Cx,kx,Ax,jx,Mx,Nx,Px,Ex,Fx,Ix,Lx]),Fj=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Hx(Vx(e))){if(!i&&Pj.has(a)){let e=zx(o);e.length>0&&e[0]&&(i=e[0])}let e=Nj.get(a);if(!e){n.push(`unknown effect verb "${a}"`);continue}try{e(o,t)}catch(e){e instanceof $||(r=!0),n.push(`${a}: ${e instanceof Error?e.message:String(e)}`)}}if(n.length>0){i&&t.sessionState.set(i,`click.error`,n.join(`
|
|
184
|
+
`));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new $(e)}},Ij=new Map([...Nj,[xx,Fj]]);Object.freeze([...Ij.keys()]);const Lj=new Set([`hook_event_name`,`session_id`,`session_name`,`transcript_path`,`cwd`,`model`,`workspace`,`version`,`output_style`,`cost`,`context_window`,`exceeds_200k_tokens`,`effort`,`thinking`,`rate_limits`,`vim`,`agent`,`worktree`]),Rj=[[`session_id`,`string`],[`transcript_path`,`string`],[`cwd`,`string`],[`model`,`object`],[`model.id`,`string`],[`model.display_name`,`string`],[`workspace`,`object`],[`workspace.current_dir`,`string`],[`workspace.project_dir`,`string`]];function zj(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of Rj){let i=Vj(n,e);if(i==null)t.missingRequired.push(e);else{let n=Bj(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let e of Object.keys(n))Lj.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function Bj(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function Vj(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n||Array.isArray(n))return;n=n[e]}return n}function Hj(e,t){switch(e){case`vars`:return{what:e,vars:Uj(t)};case`segments`:return{what:e,segments:Jj(t)};case`config`:return{what:e,config:Zj(t)}}}function Uj(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=Kj(r),a=t.names().sort(),o=[];for(let e of a){let r=t.getNode(e),a=n.getLastError(e);o.push({name:e,source:i.get(e)??null,...Wj(r),lastError:a===void 0?null:{timestampMs:a.timestamp,message:a.message},ageMs:Gj(r.lastUpdatedMs())})}return o}function Wj(e){if(e.kind!==`document`)try{return{type:e.type,value:e.read()}}catch(t){return{type:e.type,value:t instanceof Error?t.message:String(t)}}let t=e.read();switch(t.kind){case`ok`:return{type:`document`,value:JSON.stringify(t.value)};case`absent`:return{type:`document`,value:`(not yet scanned)`};case`failed`:return{type:`document`,value:t.reason}}}function Gj(e){return e===null?null:Math.max(0,Date.now()-e)}function Kj(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,qj(r));for(let[n,r]of Object.entries(e.segments))if(r.vars)for(let[e,i]of Object.entries(r.vars))t.set(`${n}.${e}`,qj(i));return t}function qj(e){return e.kind}function Jj(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=Yj(n),o=[];for(let e of a){let t=n.segments[e];t&&o.push({name:e,description:t.description??null,template:t.template,referencedVars:Xj(t.template,i),lastRender:r.get(e)??null})}return o}function Yj(e){let t=[],n=new Set;for(let r of Xo(zs(e.root)))r.kind===`segment`&&e.segments[r.name]&&!n.has(r.name)&&(t.push(r.name),n.add(r.name));for(let r of Object.keys(e.segments))n.has(r)||(t.push(r),n.add(r));return t}function Xj(e,t){let n=new Set;for(let r of wy(e)){if(t.has(r)){n.add(r);continue}let e=r.split(`.`);for(;e.length>1;){e.pop();let r=e.join(`.`);if(t.has(r)){n.add(r);break}}}return Array.from(n).sort()}function Zj(e){return e===null?null:e.config}const Qj=[`vars`,`segments`,`config`];function $j(e){return typeof e==`string`&&Qj.includes(e)}function eM(e){return Math.max(1,e-2)}var tM=class{thresholds={LOW:50,MEDIUM:80};getContextUsageThresholds(){return this.thresholds}ratioPercentages(e,t){let n=Math.min(100,Math.max(0,Math.round(e/t*100)));return{percentage:n,contextLeftPercentage:Math.max(0,100-n)}}calculateContextFromHookData(e){let t=e.context_window;if(!t?.current_usage)return D(`No current_usage in hook data, falling back to transcript parsing`),null;let n=t.current_usage,r=t.context_window_size,i=(n.input_tokens||0)+(n.cache_creation_input_tokens||0)+(n.cache_read_input_tokens||0);D(`Native current_usage: input=${n.input_tokens}, cache_create=${n.cache_creation_input_tokens}, cache_read=${n.cache_read_input_tokens}, total=${i} (limit: ${r})`);let a=this.ratioPercentages(i,r);return{totalTokens:i,maxTokens:r,percentage:t.used_percentage==null?a.percentage:Math.round(t.used_percentage),contextLeftPercentage:t.remaining_percentage==null?a.contextLeftPercentage:Math.round(t.remaining_percentage)}}async calculateContextTokensFromTranscript(e,t){try{D(`Calculating context tokens from transcript: ${e}`);let n=await MT(e);if(n.length===0)return D(`No entries in transcript`),Z;let r=null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t&&t.message?.usage?.input_tokens&&t.isSidechain!==!0){r=t,D(`Context segment: Found most recent entry at ${t.timestamp.toISOString()}, stopping search`);break}}if(r?.message?.usage){let e=r.message.usage,n=(e.input_tokens||0)+(e.cache_read_input_tokens||0)+(e.cache_creation_input_tokens||0);return D(`Most recent main chain context: ${n} tokens (limit: ${t})`),X({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return D(`No main chain entries with usage data found`),Z}catch(e){return Q(`context transcript: ${e instanceof Error?e.message:String(e)}`)}}async getContextInfo(e){let t=this.calculateContextFromHookData(e);if(t)return X(t);let n=e.context_window?.context_window_size??2e5;return this.calculateContextTokensFromTranscript(e.transcript_path,n)}},nM=class{states=new Map;constructor(e,t,n=256){this.empty=e,this.step=t,this.maxSessions=n}async read(e,t){let n=this.states.get(e),r=hT(t);if(n&&r!==0&&n.cursor.mtimeMs===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await IT(t,n?.cursor);if(i.kind===`failed`)return i;if(i.kind===`absent`)return{kind:`ok`,value:n?.value??this.empty};let{entries:a,cursor:o,reset:s}=i.value,c=s||n===void 0?this.empty:n.value;for(let e of a)c=this.step(c,e);for(this.touch(e,{cursor:o,value:c});this.states.size>this.maxSessions;){let e=this.states.keys().next().value;if(e===void 0)break;this.states.delete(e)}return{kind:`ok`,value:c}}touch(e,t){this.states.delete(e),this.states.set(e,t)}};const rM={messageCount:0,recent:[]};function iM(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +!!AT(t),recent:n.length>20?n.slice(-20):n}}function aM(e){let t=null,n=null;for(let r of e){let e=r.type||r.message?.role||r.message?.type;if(AT(r))t=r.timestamp;else if(e===`assistant`&&t){let e=(r.timestamp.getTime()-t.getTime())/1e3;e>.1&&e<300&&(n=e)}}return n}var oM=class{fold=new nM(rM,iM);async getMetricsInfo(e,t){if(D(`Getting metrics from hook data for session: ${e}`),!t.cost)return Z;let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?Q(`metrics (${e}): ${n.reason}`):X({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:aM(n.value.recent),sessionDuration:t.cost.total_duration_ms/1e3,messageCount:n.value.messageCount,linesAdded:t.cost.total_lines_added,linesRemoved:t.cost.total_lines_removed})}};const sM={command:null,todos:[],pending:[],done:[]};function cM(e,t){let n=e.findIndex(e=>e.name===t);return n<0?[...e,{name:t,count:1}]:e.map((e,t)=>t===n?{name:e.name,count:e.count+1}:e)}function lM(e,t){if(t.isSidechain)return e;let n=AT(t)?{...e,command:t.activity?.command??null,pending:[],done:[]}:e,r=t.activity;if(r===void 0)return n;let i=n.pending,a=n.done;r.started!==void 0&&(i=[...i,...r.started]);for(let e of r.finished??[]){let t=i.findIndex(t=>t.id===e);t<0||(a=cM(a,i[t].name),i=[...i.slice(0,t),...i.slice(t+1)])}return{...n,pending:i,done:a,todos:r.todos??n.todos}}function uM(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>cM(e,t.name),[]),done:e.done}}var dM=class{fold=new nM(sM,lM);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?Q(`activity (${e}): ${n.reason}`):X(uM(n.value))}};const fM=new Map;function pM(e){if(!e)return``;let t=e.indexOf(`,`);return t<0?e:e.slice(0,t)}var mM=class{async getSessionId(){if(!process.env.TMUX_PANE)return Z;let e=pM(process.env.TMUX),t=fM.get(e);if(t!==void 0)return t;D(`Getting tmux session ID, TMUX_PANE: ${process.env.TMUX_PANE}`);let n=await Te({bin:`tmux`,args:[`display-message`,`-p`,`#S`],timeoutMs:1e3,category:`tmux`}),r=n.ok?n.stdout.trim()?X(n.stdout.trim()):Z:Q(`tmux display-message: ${n.reason}`);return fM.set(e,r),r}isInTmux(){return!!process.env.TMUX_PANE}},hM=class{written=new Map;constructor(e){this.dir=e}pathFor(e){return c.join(this.dir,`${encodeURIComponent(e)}.txt`)}sync(e,t){let n=this.pathFor(e);if(t===(this.written.get(e)??null))return null;try{return t===null?(r.rmSync(n,{force:!0}),this.written.delete(e)):(r.mkdirSync(this.dir,{recursive:!0,mode:448}),r.writeFileSync(n,t,{mode:384}),this.written.set(e,t)),null}catch(e){return`${n}: ${e.message}`}}reset(){this.written.clear();try{return r.rmSync(this.dir,{recursive:!0,force:!0}),null}catch(e){return`${this.dir}: ${e.message}`}}};const gM=new Yk;Ce(gM.launchStats);const _M=new rT({counters:gM,logger:Y}),vM=new dT({watchers:_M,logger:Y}),yM=new JT,bM=new Qk,xM=new hM(We()),SM=new tM,CM=new oM,wM=new dM,TM=new mM,EM=new qk({gitService:vM,sessionState:bM,watchers:_M},{observers:{onReload:e=>Y(`info`,`config loaded projectDir=${e.projectDir} cwd=${e.cwd} file=${e.configFilePath??`<bundled default>`} error=${e.lastError===null?`none`:JSON.stringify(e.lastError)} warning=${e.lastWarning===null?`none`:JSON.stringify(e.lastWarning)}`)}}),DM=60*1e3;function OM(){let e=import.meta.url,n=[];e.startsWith(`file://`)&&n.push(b(e)),t.argv[1]&&n.push(t.argv[1]);let i=new Map;for(let e of n)try{i.set(e,r.statSync(e).mtimeMs)}catch{}let a=null,o=()=>{for(let[e,t]of i)try{if(r.statSync(e).mtimeMs!==t){Y(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),WM(0);return}}catch(e){Y(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,DM),a.unref())},checkNow:o}}const kM=OM(),AM=Mw({entryUrl:import.meta.url,intervalMs:DM,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>kM.checkNow(),log:Y});let jM=null,MM=null,NM=0;function PM(){t.on(`uncaughtException`,e=>{Y(`error`,`uncaughtException: ${e.stack||e.message}`),WM(1)}),t.on(`unhandledRejection`,e=>{Y(`error`,`unhandledRejection: ${String(e)}`),WM(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{Y(`info`,`received ${e}, shutting down`),WM(0)});try{NM=qb(t.env)}catch(e){Y(`error`,`refusing to boot: ${e.message}`),WM(1);return}jM=LS(t.pid);let e=qS(YS(jM));if(!e.decision.allow){Y(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),WM(1);return}MM=e.registryPath,r.mkdirSync(Me(),{recursive:!0}),Fe(Ne()),bM.useStorage(new tA(Re(),500,Y)),BS({anchor:zS(t.env),isAlive:VS,onOrphaned:e=>{Y(`info`,`parent watchdog: ${e}; shutting down`),WM(0)}}),FM(g.createServer({allowHalfOpen:!1},e=>{GM(e)}),Ne(),!1)}function FM(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){Y(`error`,`server error: ${i.message}`),WM(1);return}if(r){Y(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}IM(e,n)}),e.listen(n,()=>LM(n))}function IM(e,n){let i=DS(OS(Ie(n)),(e,t)=>IS(e,t,{readStartTime:FS,pidAlive:VS}));if(i.kind===`attach-and-exit`){Y(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}Y(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){Y(`error`,`cannot unlink stale socket ${n}: ${e.message}`),WM(1);return}}FM(e,n,!0)}function LM(e){let n=jS(e);if(n.kind!==`present`){Y(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),WM(0);return}VM(e);try{r.chmodSync(e,384)}catch(e){Y(`warn`,`chmod socket failed: ${e.message}`)}Y(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(_.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(NM/1048576)}MB`),ux();let i=xM.reset();i!==null&&Y(`warn`,`diagnostic dump wipe failed: ${i}`),kM.arm(),AM.arm(),BM(),RM(e,n.identity)}function RM(e,n){PS({bound:n,myPid:t.pid,readIdentity:()=>jS(e),readLease:()=>OS(Ie(e)),shutdown:e=>WM(e),log:Y}).arm()}let zM=null;function BM(){zM=Zb(tx(gM.startedAt.getTime(),e=>WM(e),{rssLimitBytes:NM})),zM.arm()}function VM(e){let n=kS(Ie(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:jM});n!==null&&Y(`warn`,`lease write failed: ${n}`)}let HM=0,UM=!1;function WM(e){if(!UM){UM=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{vM.close()}catch(e){Y(`warn`,`gitService close failed: ${e.message}`)}try{yM.close()}catch(e){Y(`warn`,`usageStore close failed: ${e.message}`)}try{_M.closeAll()}catch(e){Y(`warn`,`watcherRegistry close failed: ${e.message}`)}try{bM.flush()}catch(e){Y(`warn`,`sessionState flush failed: ${e.message}`)}AS(Le(),t.pid),MM!==null&&JS(MM,t.pid,GS,e=>r.unlinkSync(e)),t.exit(e)}}function GM(e){HM++,gM.inFlight=HM;let t=!1,n=(n,r)=>{if(t){r!==null&&Y(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>WM(r);try{e.end(bb(n),i)}catch(e){Y(`warn`,`response write failed: ${e.message}`),i?.()}},r=setTimeout(()=>{gM.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),i=xb(e=>{qM(e).then(e=>n(e.resp,e.exitAfterFlush)).catch(e=>{Y(`error`,`handler threw: ${e?.stack||e}`),n({ok:!1,error:String(e?.message||e),code:`RENDER_FAILED`,daemonV:3},null)})},e=>{Y(`warn`,`frame parse failed: ${e.message}`),n({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)});e.on(`data`,i),e.on(`error`,e=>{Y(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(r),HM=Math.max(0,HM-1),gM.inFlight=HM})}const KM=e=>({resp:e,exitAfterFlush:null});async function qM(e){if(!e||typeof e!=`object`||typeof e.v!=`number`)return KM({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?Y(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):Y(`info`,`version mismatch: client=${e.v} < daemon=3; client is stale — staying up`),{resp:{ok:!1,error:`protocol v${e.v} not supported (daemon at v3)`,code:`VERSION_MISMATCH`,daemonV:3},exitAfterFlush:e.v>3?0:null};if(e.kind===`shutdown`)return{resp:{ok:!0,output:``},exitAfterFlush:0};if(e.kind===`stats`)return KM({ok:!0,stats:gM.snapshot({gitCache:vM.getStats(),usageCache:yM.getStats(),renderCacheSize:EM.size,watchersActive:_M.size(),nextRestartReason:zM?.describeNextRestart()??null})});if(e.kind===`render`){gM.requestsTotal++;let t=Date.now();try{let{report:n}=zj(e.hookData);for(let e of n.unknownTopLevelFields)Y(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let r=[];for(let e of n.missingRequired)r.push(`missing required field '${e}'`);for(let{path:e,expected:t,got:i}of n.typeMismatches)r.push(`field '${e}' expected ${t}, got ${i}`);if(e.cwd===``&&r.push(`request 'cwd' is empty`),r.length>0)return gM.requestsErrored++,Y(`warn`,`BAD_REQUEST: ${r.join(`; `)}`),KM({ok:!1,error:`malformed hookData: ${r.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3});let i=e.hookData.workspace.project_dir,{configFile:a,unknownFlagsError:o}=JM(e.args),s=e.hookData.session_id,c=pb(e),l=JSON.stringify(c);bM.get(s,`client-hints`)!==l&&bM.set(s,Dj,l);let u=bM.get(s,`config-override`)??a??c.configEnv,d=EM.getOrCreate(i,e.cwd,u),f=gj({projectDir:i,cwd:e.cwd,configFile:u??null});bM.get(s,`render-origin`)!==f&&bM.set(s,hj,f);let p=c.termCols,m=eM(p??120),h=fC(c.termRows),g={...XM,width:m},{authoredRoots:_}=d.state,v=eE(d.state.config,t=>bM.get(e.hookData.session_id,t),e=>_.has(e)),y=await hE(e.hookData,eN,e.cwd,d.state.neededInputPaths(v.preset),v,c),b=[];g.style=v.style,g.separator=v.separator,g.wrap=v.autoWrap,g.padding=v.padding,g.charset=v.charset,g.colorCompatibility=v.colorCompatibility;let x=Nk(d.state.config,d.state.compiled,d.state.store,d.state.registry,y,g,{perSegmentSink:d.state.lastRenderCellsBySegment,onRenderWarning:e=>b.push(e)},{theme:v.theme,look:v.look,preset:v.preset,progression:v.progression}),S=bM.get(e.hookData.session_id,`click.error`);S&&bM.clear(e.hookData.session_id,`click.error`);let C=[o,d.lastError,S].filter(Boolean).join(`
|
|
185
|
+
`),ee=AM.notice({sessionId:s,dismissed:bM.get(s,vw),enabled:v.updateNotice}),w=d.lastError===null?null:d.configFilePath,te=_C(C,ee,[d.lastWarning??``,...b].filter(Boolean).join(`
|
|
186
|
+
`)),ne=xM.sync(s,te===null?null:yC(te));ne!==null&&Y(`warn`,`diagnostic dump failed: ${ne}`);let re=bC(x,te,{fullText:ne===null?{kind:`file`,path:xM.pathFor(s)}:{kind:`unavailable`,reason:ne},failedConfigFile:w},{width:m,rowCap:h,colorCompatibility:v.colorCompatibility}),ie=Date.now()-t,T=vM.getStats(),E=yM.getStats();return Y(`info`,`render sid=${e.hookData.session_id??`?`} took=${ie}ms termCols=${p??`?`} termRows=${c.termRows??`?`} width=${m} git=${T.size}/${T.hits}h/${T.misses}m usage=${E.size}/${E.hits}h/${E.misses}m err=${C?`Y`:`N`} upd=${ee.length} warn=${d.lastWarning?`Y`:`N`}`),KM({ok:!0,output:re+`
|
|
187
|
+
`})}catch(e){throw gM.requestsErrored++,e}}if(e.kind===`click`)return KM(await tN(e.verb,e.value));if(e.kind===`debug`){if(!$j(e.what))return KM({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${Qj.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=EM.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?$M(t.lastRenderCellsBySegment,t.config.globals.charset??`unicode`,t.config.globals.colorCompatibility??`truecolor`):QM};return KM({ok:!0,debug:Hj(e.what,n)})}return KM({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function JM(e){let{values:t,tokens:n}=S({args:e.slice(1),options:{config:{type:`string`}},strict:!1,tokens:!0,allowPositionals:!0}),r=[...new Set((n??[]).filter(e=>e.kind===`option`&&e.name!==`config`).map(e=>`--${e.name}`))];return{configFile:mb(t.config),unknownFlagsError:r.length>0?`Unknown flags: ${r.join(`, `)}`:null}}const YM={sessionState:bM,dlog:Y,applyUpdate:()=>AM.act(),doctor:qA()},XM={style:`powerline`,colorCompatibility:Ba,wrap:!0,padding:1,charset:Ia},ZM={...XM,width:1/0},QM=new Map;function $M(e,t,n){let r=new Map;for(let[i,a]of e)r.set(i,dC(a,{...ZM,charset:t,colorCompatibility:n}));return r}const eN={gitProvider:vM,usageStore:yM,contextProvider:SM,metricsProvider:CM,activityProvider:wM,tmuxService:TM,log:Y,clock:()=>new Date};function tN(e,t){let n=Ij.get(e);if(!n)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return n(t,YM),{ok:!0,output:``}}catch(e){let t=e instanceof $?`BAD_REQUEST`:`RENDER_FAILED`;return{ok:!1,error:String(e instanceof Error?e.message:e),code:t,daemonV:3}}}const nN={connectMs:200,budgetMs:500};async function rN(e){let n=e.includes(`--json`),r=await iN();if(r.kind!==`ok`&&(t.stderr.write(`daemon-stats: ${kb(r)}\n`),t.exit(1)),n){t.stdout.write(JSON.stringify(r.value,null,2)+`
|
|
188
|
+
`);return}t.stdout.write(cN(r.value))}function iN(){return Cb({kind:`stats`},nN,e=>`stats`in e?e.stats:void 0)}function aN(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/1024/1024).toFixed(1)}MB`}function oN(e,t){let n=e+t;return n===0?`n/a`:`${(e/n*100).toFixed(1)}%`}function sN(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m${e%60}s`:`${Math.floor(e/3600)}h${Math.floor(e%3600/60)}m`}function cN(e){let t=[];t.push(`cc-candybar daemon stats`),t.push(``),t.push(`process`),t.push(` pid ${e.pid}`),t.push(` version ${e.version}`),t.push(` protocol ${e.protocolVersion}`),t.push(` startedAt ${e.startedAt}`),t.push(` uptime ${sN(e.uptimeSec)}`),t.push(` rss ${aN(e.rssBytes)}`),t.push(` heapUsed ${aN(e.heapUsedBytes)}`),t.push(` heapTotal ${aN(e.heapTotalBytes)}`),t.push(` external ${aN(e.externalBytes)}`),t.push(` arrayBuffers ${aN(e.arrayBuffersBytes)}`),t.push(``),t.push(`requests`),t.push(` total ${e.requests.total}`),t.push(` errored ${e.requests.errored}`),t.push(` timedOut ${e.requests.timedOut}`),t.push(` inFlight ${e.requests.inFlight}`),t.push(``),t.push(`gitCache`),t.push(` size ${e.gitCache.size}`),t.push(` hit rate ${oN(e.gitCache.hits,e.gitCache.misses)} (${e.gitCache.hits} / ${e.gitCache.hits+e.gitCache.misses})`),t.push(` invalidations ${e.gitCache.invalidations}`),t.push(``),t.push(`usageCache`),t.push(` size ${e.usageCache.size}`),t.push(` hit rate ${oN(e.usageCache.hits,e.usageCache.misses)} (${e.usageCache.hits} / ${e.usageCache.hits+e.usageCache.misses})`),t.push(` sweeps ${e.usageCache.sweeps}`),t.push(``),t.push(`renderCache`),t.push(` size ${e.renderCache.size}`),t.push(`watchers`),t.push(` active ${e.watchers.active}`),t.push(` opened ${e.watchers.opened}`),t.push(` closed ${e.watchers.closed}`),t.push(` evicted ${e.watchers.evicted}`),t.push(``),t.push(`subprocesses`),t.push(` total ${e.subprocesses.total}`),t.push(` inFlight ${e.subprocesses.inFlight}`),t.push(` lastMinute ${e.subprocesses.lastMinute}`);let n=Object.entries(e.subprocesses.byCategory),r=n.reduce((e,[t])=>Math.max(e,t.length),13);for(let[i,a]of n){let n=e.subprocesses.p50DurationMs[i],o=e.subprocesses.p99DurationMs[i],s=n!==void 0&&o!==void 0?` (p50 ${n}ms · p99 ${o}ms)`:``;t.push(` ${i.padEnd(r)} ${a}${s}`)}return e.nextRestartReason&&(t.push(``),t.push(`nextRestart ${e.nextRestartReason}`)),t.join(`
|
|
189
189
|
`)+`
|
|
190
|
-
`}const
|
|
191
|
-
`);return}t.stdout.write(
|
|
192
|
-
`;let t=[`variables (${e.length})`,``],n=e.reduce((e,t)=>Math.max(e,t.name.length),4),r=e.reduce((e,t)=>Math.max(e,(t.source??`—`).length),6),i=e.reduce((e,t)=>Math.max(e,t.type.length),4);for(let a of e){let e=a.ageMs===null?``:` ${
|
|
190
|
+
`}const lN={connectMs:200,budgetMs:500};async function uN(e,n){let r=n.includes(`--json`),i=await dN(e);if(i.kind!==`ok`&&(t.stderr.write(`${e}: ${kb(i)}\n`),t.exit(1)),r){t.stdout.write(JSON.stringify(i.value,null,2)+`
|
|
191
|
+
`);return}t.stdout.write(fN(i.value))}function dN(e){return Cb({kind:`debug`,what:e},lN,e=>`debug`in e?e.debug:void 0)}function fN(e){switch(e.what){case`vars`:return pN(e.vars);case`segments`:return mN(e.segments);case`config`:return hN(e.config);default:return e}}function pN(e){if(e.length===0)return`no variables (DSL not active)
|
|
192
|
+
`;let t=[`variables (${e.length})`,``],n=e.reduce((e,t)=>Math.max(e,t.name.length),4),r=e.reduce((e,t)=>Math.max(e,(t.source??`—`).length),6),i=e.reduce((e,t)=>Math.max(e,t.type.length),4);for(let a of e){let e=a.ageMs===null?``:` ${_N(a.ageMs)}`,o=a.lastError?` ✗ ${a.lastError.message}`:``;t.push(` ${a.name.padEnd(n)} ${(a.source??`—`).padEnd(r)} ${a.type.padEnd(i)} ${gN(a.value)}${e}${o}`)}return t.join(`
|
|
193
193
|
`)+`
|
|
194
|
-
`}function
|
|
194
|
+
`}function mN(e){if(e.length===0)return`no segments (DSL not active)
|
|
195
195
|
`;let t=[`segments (${e.length})`,``];for(let n of e)t.push(` ${n.name}`),n.description!==null&&t.push(` shows ${n.description}`),t.push(` template ${n.template}`),n.referencedVars.length>0&&t.push(` vars ${n.referencedVars.join(`, `)}`),n.lastRender!==null&&t.push(` last ${n.lastRender}`);return t.join(`
|
|
196
196
|
`)+`
|
|
197
|
-
`}function
|
|
197
|
+
`}function hN(e){return e===null?`config: DSL not active
|
|
198
198
|
`:JSON.stringify(e,null,2)+`
|
|
199
|
-
`}function
|
|
200
|
-
`));return n.rendered}finally{r.registry.dispose()}}function
|
|
201
|
-
`,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:
|
|
199
|
+
`}function gN(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function _N(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function vN(){let e=bN();return e===null?null:r.readFileSync(e,`utf-8`)}function yN(){let e;try{e=vN()}catch(e){t.stderr.write(`schema: cannot read bundled schema: ${e instanceof Error?e.message:String(e)}\n`),t.exit(2)}e===null&&(t.stderr.write("schema: bundled schema not found (expected schema/cc-candybar.schema.json). Run `pnpm gen:schema` from a source checkout.\n"),t.exit(2)),t.stdout.write(e),t.exit(0)}function bN(){let e=c.join(`schema`,`cc-candybar.schema.json`),n=t.argv[1];if(n===void 0)return null;let i=c.dirname(c.resolve(n));for(;;){let t=c.join(i,e);if(r.existsSync(t))return t;let n=c.dirname(i);if(n===i)return null;i=n}}function xN(e){let t=e.CC_CANDYBAR_CONFIG??``;return t===``?void 0:t}const SN=5e3;function CN(e){let t=`/home/tester`,n=Math.floor(Date.now()/1e3);return{hook_event_name:`Status`,session_id:`test0a1b-2c3d-4e5f-6a7b-8c9d0e1f2a3b`,version:`1.15.0`,home:t,cwd:`${t}/code/cc-candybar/src`,transcript_path:`${t}/.claude/projects/x/test.jsonl`,model:{id:`claude-opus-4-8`,display_name:`Opus 4.8`},workspace:{current_dir:`${t}/code/cc-candybar/src`,project_dir:`${t}/code/cc-candybar`},git:{repoName:`cc-candybar`,repoUrl:`https://github.com/promptctl/cc-candybar`,branch:`main`,sha:`abc1234`,ahead:2,behind:1,staged:3,unstaged:2,untracked:1,conflicts:0,upstream:`origin/main`,stash:1,status:`dirty`,operation:`rebase`,timeSinceCommit:780},session:{cost:.39,tokens:241400},today:{cost:12.5,tokens:34e5},context:{totalTokens:48487,contextLeft:24},metrics:{lastResponseTime:8.2,responseTime:4.2,sessionDuration:930,messageCount:8,linesAdded:512,linesRemoved:88},block:{nativeUtilization:63,resetsAt:n+2*3600},weekly:{percentage:21,resetsAt:n+5*86400},cache:{expiresAt:n+900},tmux:{session:`work`},host:{name:`tester-box`,user:`tester`,ssh:!0},...tE(e)}}function wN(e,t){let n=Qy(e,e),r=eb(n);return r!==null&&t.push(r),n.kind===`file`?n.path:null}async function TN(e,n=t.cwd()){let i=[],a=e===void 0?wN(n,i):c.resolve(Yy(e));if(e!==void 0&&a!==null){let e;try{e=r.statSync(a,{throwIfNoEntry:!1})}catch(e){return{kind:`unreadable`,path:a,message:e instanceof Error?e.message:String(e)}}if(e!==void 0&&!e.isFile())return{kind:`unreadable`,path:a,message:`not a file`}}let o=nb(n,n);o!==null&&i.push(o);try{return{kind:`clean`,configPath:a,warnings:i,rendered:await ON(a,n,i)}}catch(e){let t=e;return a!==null&&typeof t==`object`&&t&&typeof t.code==`string`&&t.path===a&&typeof t.message==`string`?{kind:`unreadable`,path:a,message:t.message}:(e instanceof Ho&&i.push(...e.warnings),{kind:`fatal`,configPath:a,message:e instanceof Ho||e instanceof Error?e.message:String(e),warnings:i})}}async function EN(e,t,n){let{config:r,source:i,warnings:a}=rb(e,ME);n.push(...a);let o=ob(r,e??`<default>`,i),s=new Vk,c=new $D(s,o.globals.default_empty_value??``,void 0,new Qk);try{let e=kk(o,c,{cwd:t});n.push(...e.loadWarnings);let r=await c.settled(SN);return r.length>0&&n.push(`source${r.length===1?``:`s`} still running after ${SN} ms, rendered with fallback values: ${r.join(`, `)}`),{config:o,compiled:e,store:s,registry:c}}catch(e){throw c.dispose(),e}}function DN({config:e,compiled:t,store:n,registry:r},i,a){let o=new Map;return{rendered:Nk(e,t,n,r,CN(i),{style:i.style,separator:i.separator,width:a,colorCompatibility:i.colorCompatibility,wrap:i.autoWrap,padding:i.padding,charset:i.charset},{onSegmentError:(e,t)=>o.set(`segment "${e}"`,t),onRenderWarning:e=>o.set(`globals.palette`,e)},{theme:i.theme,look:i.look,preset:i.preset,progression:i.progression}),failures:o}}async function ON(e,t,n){let r=await EN(e,t,n),{config:i}=r;try{_w(i);let e=eE(i,()=>null,()=>!1),t=e=>DN(r,e,200),n=t(e),a=t({...e,presetCustomized:!0}),o=[...[...n.failures].map(([e,t])=>`${e}: ${t}`),...[...a.failures].filter(([e])=>!n.failures.has(e)).map(([e,t])=>`${e}: ${t} (under .preset.customized = true)`)];if(o.length>0)throw Error(`config renders with ${o.length} render error${o.length===1?``:`s`} (the daemon would show them on the bar):\n`+o.map(e=>` ${e}`).join(`
|
|
200
|
+
`));return n.rendered}finally{r.registry.dispose()}}function kN(e){return e.map(e=>`warning: ${e}\n`).join(``)}function AN(e,t=!1){switch(e.kind){case`clean`:return{stdout:`✓ ${e.configPath??`bundled default (no config file found)`}: config OK${e.warnings.length>0?` (${e.warnings.length} warning${e.warnings.length===1?``:`s`})`:``}\n`+(t?`${e.rendered}\n`:``),stderr:kN(e.warnings),code:0};case`fatal`:return{stdout:``,stderr:kN(e.warnings)+`✗ ${e.configPath??`<default>`}\n${e.message}\n`,code:1};case`unreadable`:return{stdout:``,stderr:`check: cannot read ${e.path}: ${e.message}\n`,code:2}}}const jN=`--render`,MN=`Usage: cc-candybar check [${jN}] [config-file]\n`;function NN(e){let t=e.filter(e=>e.startsWith(`--`)),n=e.filter(e=>!e.startsWith(`--`)),r=t.filter(e=>e!==jN);return r.length>0?{kind:`usage`,message:`check: unknown option ${r.join(` `)}\n${MN}`}:n.length>1||n[0]===``?{kind:`usage`,message:`check: expected at most one non-empty path\n${MN}`}:{kind:`run`,target:n[0],render:t.includes(jN)}}async function PN(e){let n=NN(e),r=n.kind===`usage`?{stdout:``,stderr:n.message,code:2}:AN(await TN(n.target??xN(t.env)),n.render);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const FN=`${eC}${$S}`;function IN(e){return`${FN}⚠ cc-candybar: ${LN(e)}[0m\n`}function LN(e){switch(e.cause){case`version_mismatch`:{let t=e.daemonV===0?`unknown`:`v${e.daemonV}`;return`protocol mismatch (client v${e.clientV} ≠ daemon ${t})`}case`bad_request`:return`daemon rejected request: ${QS(e.message,60)}`;case`render_failed`:return`render failed: ${QS(e.message,60)}`;case`malformed_response`:return`malformed daemon response: ${QS(e.message,60)}`}}function RN(e){switch(e.kind){case`ok`:return{output:e.value,kick:!1,debug:null};case`transient`:return{output:`
|
|
201
|
+
`,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:IN(e),kick:!1,debug:`daemon refused request (permanent: ${e.cause}) — not kicking`}}}function zN(e,t){if(e!==void 0&&/^\+?\d+$/.test(e)){let t=Number(e);if(t>0&&t<=4294967295)return t}if(t&&t>0)return t}const BN=` (fix: click the settings menu (${Ks} by default) › 🧰 tools ▸ 🩺 doctor, then [fix] on the bar)`;function VN({check:e,verdict:t}){return t.ok?`✓ ${e.label}\n`:`✗ ${e.label} — ${t.reason}${t.fix===void 0?``:BN}\n`}function HN(e,t){let n;try{n=QA(e,Yg(t))}catch(e){return{stdout:``,stderr:`doctor: ${e instanceof Error?e.message:String(e)}\n`,code:2}}let r=Qg(n);return{stdout:r.map(VN).join(``),stderr:``,code:+!r.every(e=>e.verdict.ok)}}function UN(e){e.length>0&&(t.stderr.write(`doctor: takes no arguments
|
|
202
202
|
Usage: cc-candybar doctor
|
|
203
|
-
`),t.exit(2));let n=
|
|
203
|
+
`),t.exit(2));let n=HN(qA(),t.env);t.stdout.write(n.stdout),t.stderr.write(n.stderr),t.exit(n.code)}function WN(){return zN(t.env.COLUMNS,t.stderr.columns)}function GN(){return zN(t.env.LINES,t.stderr.rows)}const KN=[`SSH_CONNECTION`,`SSH_CLIENT`,`SSH_TTY`],qN=e=>e.some(e=>t.argv.includes(e));function JN(){return KN.some(e=>(t.env[e]??``)!==``)}function YN(){console.log(Tg)}async function XN(){try{qN(Sg.help)&&(YN(),t.exit(0)),qN(Sg.version)&&(console.log(`cc-candybar ${Gx}`),t.exit(0));let e=t.argv[2];if(e===`install`&&(await TS(t.argv.slice(3)),t.exit(0)),e===`install-url-handler`&&(bS(),t.exit(0)),e===`url-handle`){await SS(t.argv[3]);return}if(e===`daemon`){PM();return}if(e===`daemon-stats`&&(await rN(t.argv.slice(3)),t.exit(0)),e===`check`||e===`lint`){await PN(t.argv.slice(3));return}if(e===`schema`){yN();return}if(e===`doctor`){UN(t.argv.slice(3));return}$j(e)&&(await uN(e,t.argv.slice(3)),t.exit(0)),t.stdin.isTTY===!0&&(console.error(`Error: This tool requires input from Claude Code
|
|
204
204
|
|
|
205
205
|
cc-candybar is designed to be used as a Claude Code statusLine command.
|
|
206
206
|
It reads hook data from stdin and outputs formatted statusline.
|
|
@@ -216,4 +216,4 @@ Add to ~/.claude/settings.json:
|
|
|
216
216
|
Run with --help for more options.
|
|
217
217
|
|
|
218
218
|
To test output manually:
|
|
219
|
-
echo '{"session_id":"test-session","workspace":{"project_dir":"/path/to/project"},"model":{"id":"claude-sonnet-4-5","display_name":"Claude"}}' | cc-candybar --style=powerline`),t.exit(1)),D(`Working directory: ${t.cwd()}`),D(`Process args:`,t.argv);let r=await n(t.stdin);D(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),
|
|
219
|
+
echo '{"session_id":"test-session","workspace":{"project_dir":"/path/to/project"},"model":{"id":"claude-sonnet-4-5","display_name":"Claude"}}' | cc-candybar --style=powerline`),t.exit(1)),D(`Working directory: ${t.cwd()}`),D(`Process args:`,t.argv);let r=await n(t.stdin);D(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),YN(),t.exit(1));let i=RN(await Nb(r,t.argv,t.cwd(),{termCols:WN(),termRows:GN(),ssh:JN(),tmux:Yg(t.env),configEnv:xN(t.env)}));i.debug!==null&&D(i.debug),i.kick&&nx(),t.stdout.write(i.output),t.exit(0)}catch(e){let n=e instanceof Error?e.message:String(e);console.error(`Error generating statusline:`,n),t.exit(1)}}XN();export{};
|