@promptctl/cc-candybar 1.59.0 → 1.60.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 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 ee,{createHash as te}from"node:crypto";import{get as ne}from"node:https";import{setTimeout as re}from"node:timers/promises";import{open as ie,readFile as C,readdir as ae,stat as w}from"node:fs/promises";import{createInterface as T}from"node:readline";import{clearInterval as oe,setInterval as se}from"node:timers";var ce=Object.create,le=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,de=Object.getOwnPropertyNames,fe=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty,me=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),he=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=de(t),a=0,o=i.length,s;a<o;a++)s=i[a],!pe.call(e,s)&&s!==n&&le(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ue(t,s))||r.enumerable});return e},ge=(e,t,n)=>(n=e==null?{}:ce(fe(e)),he(t||!e||!e.__esModule?le(n,`default`,{value:e,enumerable:!0}):n,e));function E(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}const _e={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3},ve=new Map;function ye(e){let t=_e[e];if(t===void 0)return{allowed:!0};let n=ve.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 be(e){ve.set(e,Date.now())}function xe(e){return e.env??process.env}function Se(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 Ce=null;function we(e){Ce=e}function Te(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Ee(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=ye(e.category);if(!t.allowed)return Se(e.category,t.minIntervalMs,t.sinceLastMs);be(e.category);let n=Date.now();return Ce?.onStart(e.category),new Promise(t=>{let r;try{r=m(e.bin,e.args??[],{cwd:e.cwd,env:xe(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){Ce?.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),Ce?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{Te(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 De(e){let t=ye(e.category);if(!t.allowed)return Se(e.category,t.minIntervalMs,t.sinceLastMs);be(e.category);let n=Date.now();Ce?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=h(e.bin,e.args??[],{cwd:e.cwd,env:xe(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});Ce?.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 Ce?.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 Oe(e){let t=ye(e.category);if(!t.allowed)return Se(e.category,t.minIntervalMs,t.sinceLastMs);be(e.category);let n=Date.now();Ce?.onStart(e.category);let r=ke(e);return Ce?.onEnd(e.category,Date.now()-n),r}function ke(e){let t;try{t=m(e.bin,e.args??[],{cwd:e.cwd,env:xe(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 Ae(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 je(e){let t=process.env[e];return t&&t.length>0?t:void 0}function Me(){let e=je(`XDG_STATE_HOME`)??c.join(f.homedir(),`.local`,`state`);return c.join(e,`cc-candybar`)}function D(){let e=je(`XDG_CACHE_HOME`)??c.join(f.homedir(),`.cache`);return c.join(e,`cc-candybar`)}function Ne(){return Me()}function Pe(){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 Fe(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 Ie(e){Fe(c.dirname(e));for(let t of[e,Le(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function Le(e){return`${e}.lease`}function Re(){return Le(Pe())}function ze(){return c.join(Me(),`session-state.json`)}function Be(){return c.join(Me(),`config-edit-history.json`)}function Ve(){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 He(){return c.join(Me(),`spawn.lock`)}function Ue(){return c.join(Me(),`spawn.cooldown`)}function We(){return c.join(Me(),`spawn.backoff`)}function Ge(){return c.join(Me(),`diagnostics`)}function Ke(){return c.join(Me(),`daemon.log`)}var qe=me(((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]/})),Je=me(((e,t)=>{let n=qe();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)}}})),Ye=me(((e,t)=>{let n=Je(),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(),ie[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 te}from"node:https";import{setTimeout as ne}from"node:timers/promises";import{open as re,readFile as ie,readdir as ae,stat as w}from"node:fs/promises";import{createInterface as T}from"node:readline";import{clearInterval as oe,setInterval as se}from"node:timers";var ce=Object.create,le=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,de=Object.getOwnPropertyNames,fe=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty,me=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),he=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=de(t),a=0,o=i.length,s;a<o;a++)s=i[a],!pe.call(e,s)&&s!==n&&le(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ue(t,s))||r.enumerable});return e},ge=(e,t,n)=>(n=e==null?{}:ce(fe(e)),he(t||!e||!e.__esModule?le(n,`default`,{value:e,enumerable:!0}):n,e));function E(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}const _e={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3},ve=new Map;function ye(e){let t=_e[e];if(t===void 0)return{allowed:!0};let n=ve.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 be(e){ve.set(e,Date.now())}function xe(e){return e.env??process.env}function Se(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 Ce=null;function we(e){Ce=e}function Te(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Ee(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=ye(e.category);if(!t.allowed)return Se(e.category,t.minIntervalMs,t.sinceLastMs);be(e.category);let n=Date.now();return Ce?.onStart(e.category),new Promise(t=>{let r;try{r=m(e.bin,e.args??[],{cwd:e.cwd,env:xe(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){Ce?.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),Ce?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{Te(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 De(e){let t=ye(e.category);if(!t.allowed)return Se(e.category,t.minIntervalMs,t.sinceLastMs);be(e.category);let n=Date.now();Ce?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=h(e.bin,e.args??[],{cwd:e.cwd,env:xe(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});Ce?.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 Ce?.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 Oe(e){let t=ye(e.category);if(!t.allowed)return Se(e.category,t.minIntervalMs,t.sinceLastMs);be(e.category);let n=Date.now();Ce?.onStart(e.category);let r=ke(e);return Ce?.onEnd(e.category,Date.now()-n),r}function ke(e){let t;try{t=m(e.bin,e.args??[],{cwd:e.cwd,env:xe(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 Ae(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 je(e){let t=process.env[e];return t&&t.length>0?t:void 0}function Me(){let e=je(`XDG_STATE_HOME`)??c.join(f.homedir(),`.local`,`state`);return c.join(e,`cc-candybar`)}function D(){let e=je(`XDG_CACHE_HOME`)??c.join(f.homedir(),`.cache`);return c.join(e,`cc-candybar`)}function Ne(){return Me()}function Pe(){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 Fe(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 Ie(e){Fe(c.dirname(e));for(let t of[e,Le(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function Le(e){return`${e}.lease`}function Re(){return Le(Pe())}function ze(){return c.join(Me(),`session-state.json`)}function Be(){return c.join(Me(),`config-edit-history.json`)}function Ve(){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 He(){return c.join(Me(),`spawn.lock`)}function Ue(){return c.join(Me(),`spawn.cooldown`)}function We(){return c.join(Me(),`spawn.backoff`)}function Ge(){return c.join(Me(),`diagnostics`)}function Ke(){return c.join(Me(),`daemon.log`)}var qe=me(((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]/})),Je=me(((e,t)=>{let n=qe();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)}}})),Ye=me(((e,t)=>{let n=Je(),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(),re[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 w(b())},multiLineComment(){switch(_){case`*`:b(),p=`multiLineCommentAsterisk`;return;case void 0:throw w(b())}b()},multiLineCommentAsterisk(){switch(_){case`*`:b();return;case`/`:b(),p=`default`;return;case void 0:throw w(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(),ee(`ull`),S(`null`,null);case`t`:return b(),ee(`rue`),S(`boolean`,!0);case`f`:return b(),ee(`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(),ee(`nfinity`),S(`numeric`,1/0);case`N`:return b(),ee(`aN`),S(`numeric`,NaN);case`"`:case`'`:h=b()===`"`,m=``,p=`string`;return}throw w(b())},identifierNameStartEscape(){if(_!==`u`)throw w(b());b();let e=re();switch(e){case`$`:case`_`:break;default:if(!n.isIdStartChar(e))throw oe();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 w(b());b();let e=re();switch(e){case`$`:case`_`:case`‌`:case`‍`:break;default:if(!n.isIdContinueChar(e))throw oe();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(),ee(`nfinity`),S(`numeric`,g*(1/0));case`N`:return b(),ee(`aN`),S(`numeric`,NaN)}throw w(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 w(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 w(b())},decimalExponentSign(){if(n.isDigit(_)){m+=b(),p=`decimalExponentInteger`;return}throw w(b())},decimalExponentInteger(){if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},hexadecimal(){if(n.isHexDigit(_)){m+=b(),p=`hexadecimalInteger`;return}throw w(b())},hexadecimalInteger(){if(n.isHexDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},string(){switch(_){case`\\`:b(),m+=te();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
- `:case`\r`:throw w(b());case`\u2028`:case`\u2029`:se(_);break;case void 0:throw w(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 w(b())},afterPropertyName(){if(_===`:`)return S(`punctuator`,b());throw w(b())},beforePropertyValue(){p=`value`},afterPropertyValue(){switch(_){case`,`:case`}`:return S(`punctuator`,b())}throw w(b())},beforeArrayValue(){if(_===`]`)return S(`punctuator`,b());p=`value`},afterArrayValue(){switch(_){case`,`:case`]`:return S(`punctuator`,b())}throw w(b())},end(){throw w(b())}};function S(e,t){return{type:e,value:t,line:s,column:c}}function ee(e){for(let t of e){if(y()!==t)throw w(b());b()}}function te(){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 w(b());return`\0`;case`x`:return b(),ne();case`u`:return b(),re();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 w(b())},identifierNameStartEscape(){if(_!==`u`)throw w(b());b();let e=ne();switch(e){case`$`:case`_`:break;default:if(!n.isIdStartChar(e))throw oe();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 w(b());b();let e=ne();switch(e){case`$`:case`_`:case`‌`:case`‍`:break;default:if(!n.isIdContinueChar(e))throw oe();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 w(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 w(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 w(b())},decimalExponentSign(){if(n.isDigit(_)){m+=b(),p=`decimalExponentInteger`;return}throw w(b())},decimalExponentInteger(){if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},hexadecimal(){if(n.isHexDigit(_)){m+=b(),p=`hexadecimalInteger`;return}throw w(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
+ `:case`\r`:throw w(b());case`\u2028`:case`\u2029`:se(_);break;case void 0:throw w(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 w(b())},afterPropertyName(){if(_===`:`)return S(`punctuator`,b());throw w(b())},beforePropertyValue(){p=`value`},afterPropertyValue(){switch(_){case`,`:case`}`:return S(`punctuator`,b())}throw w(b())},beforeArrayValue(){if(_===`]`)return S(`punctuator`,b());p=`value`},afterArrayValue(){switch(_){case`,`:case`]`:return S(`punctuator`,b())}throw w(b())},end(){throw w(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 w(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 w(b());return`\0`;case`x`:return b(),te();case`u`:return b(),ne();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 w(b());case void 0:throw w(b())}return b()}function ne(){let e=``,t=y();if(!n.isHexDigit(t)||(e+=b(),t=y(),!n.isHexDigit(t)))throw w(b());return e+=b(),String.fromCodePoint(parseInt(e,16))}function re(){let e=``,t=4;for(;t-- >0;){let t=y();if(!n.isHexDigit(t))throw w(b());e+=b()}return String.fromCodePoint(parseInt(e,16))}let ie={start(){if(l.type===`eof`)throw T();C()},beforePropertyName(){switch(l.type){case`identifier`:case`string`:u=l.value,i=`afterPropertyName`;return;case`punctuator`:ae();return;case`eof`:throw T()}},afterPropertyName(){if(l.type===`eof`)throw T();i=`beforePropertyValue`},beforePropertyValue(){if(l.type===`eof`)throw T();C()},beforeArrayValue(){if(l.type===`eof`)throw T();if(l.type===`punctuator`&&l.value===`]`){ae();return}C()},afterPropertyValue(){if(l.type===`eof`)throw T();switch(l.value){case`,`:i=`beforePropertyName`;return;case`}`:ae()}},afterArrayValue(){if(l.type===`eof`)throw T();switch(l.value){case`,`:i=`beforeArrayValue`;return;case`]`:ae()}},end(){}};function C(){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 ae(){a.pop();let e=a[a.length-1];i=e==null?`end`:Array.isArray(e)?`afterArrayValue`:`afterPropertyValue`}function w(e){return le(e===void 0?`JSON5: invalid end of input at ${s}:${c}`:`JSON5: invalid character '${ce(e)}' at ${s}:${c}`)}function T(){return le(`JSON5: invalid end of input at ${s}:${c}`)}function oe(){return c-=5,le(`JSON5: invalid identifier character at ${s}:${c}`)}function se(e){console.warn(`JSON5: '${ce(e)}' in strings is not valid ECMAScript; consider escaping`)}function ce(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 le(e){let t=SyntaxError(e);return t.lineNumber=s,t.columnNumber=c,t}})),Xe=me(((e,t)=>{let n=Je();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=`,
9
+ `&&b(),``;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:throw w(b());case void 0:throw w(b())}return b()}function te(){let e=``,t=y();if(!n.isHexDigit(t)||(e+=b(),t=y(),!n.isHexDigit(t)))throw w(b());return e+=b(),String.fromCodePoint(parseInt(e,16))}function ne(){let e=``,t=4;for(;t-- >0;){let t=y();if(!n.isHexDigit(t))throw w(b());e+=b()}return String.fromCodePoint(parseInt(e,16))}let re={start(){if(l.type===`eof`)throw T();ie()},beforePropertyName(){switch(l.type){case`identifier`:case`string`:u=l.value,i=`afterPropertyName`;return;case`punctuator`:ae();return;case`eof`:throw T()}},afterPropertyName(){if(l.type===`eof`)throw T();i=`beforePropertyValue`},beforePropertyValue(){if(l.type===`eof`)throw T();ie()},beforeArrayValue(){if(l.type===`eof`)throw T();if(l.type===`punctuator`&&l.value===`]`){ae();return}ie()},afterPropertyValue(){if(l.type===`eof`)throw T();switch(l.value){case`,`:i=`beforePropertyName`;return;case`}`:ae()}},afterArrayValue(){if(l.type===`eof`)throw T();switch(l.value){case`,`:i=`beforeArrayValue`;return;case`]`:ae()}},end(){}};function ie(){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 ae(){a.pop();let e=a[a.length-1];i=e==null?`end`:Array.isArray(e)?`afterArrayValue`:`afterPropertyValue`}function w(e){return le(e===void 0?`JSON5: invalid end of input at ${s}:${c}`:`JSON5: invalid character '${ce(e)}' at ${s}:${c}`)}function T(){return le(`JSON5: invalid end of input at ${s}:${c}`)}function oe(){return c-=5,le(`JSON5: invalid identifier character at ${s}:${c}`)}function se(e){console.warn(`JSON5: '${ce(e)}' in strings is not valid ECMAScript; consider escaping`)}function ce(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 le(e){let t=SyntaxError(e);return t.lineNumber=s,t.columnNumber=c,t}})),Xe=me(((e,t)=>{let n=Je();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=`,
@@ -23,28 +23,28 @@ import{createRequire as e}from"node:module";import t from"node:process";import{j
23
23
  `);for(let e=0;e<r.length;e+=1){let t=r[e],n=H.getLineLength(t),l=e<r.length-1||c;s||n<=i?(yield*this._justifyLine(t,i,o),l&&(yield H.line())):yield*this._overflowLine(t,n,i,a,l)}this._end&&this._end!==`
24
24
  `&&(yield new H(this._end))}measure(e){let t=this._expandTabs(this._text).split(`
25
25
  `),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=zt(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){if(e.length===0)return[];let t=new Set([0,e.length]);for(let n of this._spans){let r=Math.max(0,Math.min(n.start,e.length)),i=Math.max(0,Math.min(n.end,e.length));t.add(r),t.add(i)}let n=[...t].sort((e,t)=>e-t),r=[];for(let t=0;t<n.length-1;t++){let i=n[t],a=n[t+1],o=e.slice(i,a);if(o.length===0)continue;let s=this._style;for(let e of this._spans)if(e.start<=i&&e.end>=a){let t=kr(e.style);s=s.add(t)}r.push(new H(o,s.isNull?void 0:s))}return r}*_justifyLine(e,t,n){let r=t-H.getLineLength(e);switch(n){case`center`:{let t=Math.floor(r/2);t>0&&(yield new H(` `.repeat(t))),yield*e;let n=r-t;n>0&&(yield new H(` `.repeat(n)));break}case`right`:r>0&&(yield new H(` `.repeat(r))),yield*e;break;case`full`:yield*e;break;default:yield*e;break}}*_overflowLine(e,t,n,r,i){switch(r){case`fold`:{let r=n===0?[H.adjustLineLength(e,0,void 0,!1)]:H.divide(e,Dr(t,n));for(let e=0;e<r.length;e+=1)yield*r[e],(e<r.length-1||i)&&(yield H.line());break}case`crop`:yield*H.adjustLineLength(e,n,void 0,!1),i&&(yield H.line());break;case`ellipsis`:yield*H.adjustLineLength(e,Math.max(0,n-1),void 0,!1),n>0&&(yield new H(`…`)),i&&(yield H.line());break}}},Mr=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)}}}};const Nr={*render(e){}};var Pr=class{_text;_style;constructor(e,t){this._text=e,this._style=t}*render(e){yield new H(this._text,this._style)}};function Fr(e){return new V({color:e.bgcolor})}function Ir(e){return e!==void 0&&!e.isDefault?e:void 0}var Lr=class{_glyph;constructor(e){this._glyph=e?.glyph??``}join(e,t){let n=Ir(e?.edgeStyle(`right`).bgcolor);if(n===void 0)return Nr;let r=Ir(t?.edgeStyle(`left`).bgcolor);return new Pr(this._glyph,new V({color:n,bgcolor:r}))}},Rr=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 H(this._left,Fr(t.edgeStyle(`left`)));return}if(t===null){yield new H(this._right,Fr(e.edgeStyle(`right`)));return}yield new H(this._right,Fr(e.edgeStyle(`right`))),this._separator.length>0&&(yield new H(this._separator)),yield new H(this._left,Fr(t.edgeStyle(`left`)))}}join(e,t){let n=this._emit.bind(this);return{*render(r){yield*n(e,t,r)}}}},zr=class{_separator;_style;constructor(e){this._separator=e?.separator??` | `,this._style=e?.style??V.parse(`dim`)}join(e,t){return e===null||t===null?Nr:new Pr(this._separator,this._style)}};function Br(e,t){if(e.isControl||e.text.length===0)return;let n=e.style;return!n||n.isNull||t===null?{text:e.text,sgrCodes:``,link:void 0}:{text:e.text,sgrCodes:n.toSgrCodes(t),link:n.link}}function Vr(e,t){let n=[];for(let r of e){let e=Br(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(`\x1b]8;;${cr(e)}\x1b\\`);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 Hr(e,t){let n=t?.width??80,r=t?.colorSystem,i={};t?.env!==void 0&&(i.env=t.env),t?.isTTY!==void 0&&(i.isTTY=t.isTTY);let a=t?.noColor?null:r===void 0?M.TRUECOLOR:typeof r==`string`?Qt(r,i):r,o={maxWidth:n,isTerminal:!1,encoding:`utf-8`,asciiOnly:!1};return Vr(e.render(o),a)}var Ur=class extends Error{constructor(e){super(e),this.name=`MarkupError`}};const Wr=`[A-Za-z][A-Za-z0-9_-]*`,Gr=RegExp(`^${Wr}$`);var Kr=class{_handlers=new Map;register(e,t){if(!Gr.test(e))throw new Ur(`Cannot register markup tag "${e}": a tag name must be a letter followed by letters, digits, "_" or "-", so markup could never address this name.`);if(qr(e))throw new Ur(`Cannot register markup tag "${e}": name is reserved by a built-in style.`);this._handlers.set(e,t)}unregister(e){this._handlers.delete(e)}has(e){return this._handlers.has(e)}get(e){return this._handlers.get(e)}};function qr(e){try{return V.parse(e),!0}catch(e){if(e instanceof pr)return!1;throw e}}new Kr,RegExp(`^(${Wr})(?=$|[ \\t])`);var Jr=class{call(e){let t=new jr(e);return this.highlight(t),t}},Yr=class extends Jr{highlight(e){}},Xr=class extends Jr{static highlights=[];static baseStyle=``;highlight(e){let t=this.constructor,n=t.baseStyle,r=n.endsWith(`.`);for(let i of t.highlights){let t=i instanceof RegExp?new RegExp(i.source,i.flags.includes(`g`)?i.flags:i.flags+`g`):new RegExp(i,`g`),a;for(;(a=t.exec(e.plain))!==null;){if(a[0].length===0){t.lastIndex++;continue}if(a.groups){let t=0;for(let[i,o]of Object.entries(a.groups))if(o!==void 0){let s=a[0].indexOf(o,t);if(s>=0){let c=a.index+s,l=r?`${n}${i}`:n||i;e.stylize(l,c,c+o.length),t=s+o.length}}}}}}},Zr=class extends Xr{static baseStyle=`repr.`;static highlights=[/(?<url>https?:\/\/[^\s<>"']+)/g,/(?<uuid>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/gi,/(?<str>'[^']*'|"[^"]*")/g,/(?<bool>\btrue\b|\bfalse\b)/g,/(?<none>\bnull\b|\bundefined\b|\bNone\b)/g,/(?<number>(?<!\w)-?(?:0x[0-9a-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)(?!\w))/gi]},Qr=class extends Xr{static baseStyle=`json.`;static highlights=[/(?<key>"[^"]*")\s*:/g,/:\s*(?<str>"[^"]*")/g,/(?<bool>\btrue\b|\bfalse\b)/g,/(?<null>\bnull\b)/g,/(?<number>-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/g,/(?<brace>[{}[\]])/g]};new Zr,Object.freeze({env:Object.freeze({})}),new Yr,new Qr;function $r(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const ei={segments:[],width:0},ti={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function ni(e,t){return ti[e](t)}function ri(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 ii=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=>$r(t,e)),o=n=>i?$r(i.join(null,t[n]),e):ei,s=n=>i?$r(i.join(t[n],null),e):ei,c=(n,r)=>i?$r(i.join(t[n],t[r]),e):ei,l=[],u=null,d=r>0?{segments:[new H(` `.repeat(r))],width:r}:ei;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=ni(p,i),o=ri(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new H(` `.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 H(` `.repeat(e)))}yield*t.blocks[e].segments}yield H.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=$r(t[i],e).width,o=this.joiner?$r(this.joiner.join(null,t[i]),e).width:0,s=this.joiner?$r(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+=$r(this.joiner.join(t[i-1],t[i]),e).width))}return this.joiner&&(r+=$r(this.joiner.join(null,t[0]),e).width,r+=$r(this.joiner.join(t[t.length-1],null),e).width),{minimum:n,maximum:r}}};V.parse(`bold magenta`),V.parse(`italic bright_magenta`),V.parse(`green`),V.parse(`cyan`),V.parse(`dim italic`);const ai={dark:`textual-dark`,light:`textual-light`};function oi(e){return ai[e]??e}function si(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function ci(e,t,n){return si(e,t,n,`textual-dark`,e=>e)}function li(){return Object.keys(ai)}function ui(){return[...Gn(),...li()]}function di(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return si(e===void 0?null:a(e),t,a(n??r),r,a)}function fi(e,t,n,r){return di(e,t,n,`none`,r)}function pi(e,t){let n=e[t];if(n===void 0)throw Error(`Look "${t}" is not declared in this config — effectiveLookName collapses unknown names to "none", and every merged config carries "none"; a miss here is merge/policy drift`);return n}const mi=[`powerline`,`capsule`,`plain`];function hi(e){return mi.includes(e)}function gi(e,t,n){return si(e,t,n,`powerline`,e=>hi(e)?e:null)}const _i=[`unicode`,`ascii`],vi=[`truecolor`,`256`,`ansi`,`none`],yi=`true`,bi=`false`,xi=[yi,bi],Si={min:0,max:16};function Ci(e){return e===`true`?!0:e===`false`?!1:null}function wi(e){if(!/^\d+$/.test(e))return null;let t=Number(e);return t>=Si.min&&t<=Si.max?t:null}function Ti(e,t,n){return si(e,t,n,!0,Ci)}function Ei(e,t,n){return si(e,t,n,1,wi)}var Di=class extends Error{file;issues;constructor(e,t){super(Ai(e,t)),this.name=`ConfigError`,this.file=e,this.issues=t}};function U(e,t){let n=0,r;for(let i of t){if(i===``||/^\d+$/.test(i))continue;let t=Oi(e,n,i);if(t===-1)return r===void 0?void 0:ki(e,r);n=t,r=t}return r===void 0?void 0:ki(e,r)}function Oi(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 ki(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function Ai(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(`
26
- `)}const W=[`vertical`,`horizontal`];function ji(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*Mi(e){yield e;for(let t of Ni(e))yield*Mi(t)}function Ni(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}function Pi(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const Fi=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function Ii(e){return e.kind!==`literal`&&e.kind!==`input`&&e.kind!==`env`&&e.kind!==`state`}const Li=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],Ri=[`file`,`shell`,`git`],zi=[`left`,`center`,`right`],Bi=[`right`,`left`,`middle`];function Vi(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 ${qi(i)}`,line:U(e.source,[...t.split(`.`),r])}),null)}function Hi(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 ${qi(i)}`,line:U(e.source,[...t.split(`.`),`default`])});return}return i}}function Ui(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 ${qi(i)}`,line:U(e.source,[...t.split(`.`),r])});return}return i}}function Wi(e,t,n){let r=Ui(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:U(e.source,[...t.split(`.`),`palette`])});return}return r}}function Gi(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:U(e.source,[...t.split(`.`),r])});return}return a}}function Ki(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function qi(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 Ji(e,t,n,r){return Ki(r)?(Xi(e,n,r,t.noun,new Set(Object.keys(t.fields))),Yi(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${qi(r)}`,line:U(e.source,n.split(`.`))}),null)}function Yi(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}function Xi(e,t,n,r,i){for(let a of Object.keys(n))i.has(a)||e.issues.push({path:`${t}.${a}`,message:`Unknown ${r} "${a}". Expected one of: ${[...i].join(`, `)}`,line:U(e.source,[...t.split(`.`),a])})}function Zi(e,t,n){return e.issues.push({path:t,message:n,line:U(e.source,t.split(`.`))}),null}function Qi(e,t,n,r){if(!Ki(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${qi(r)}`,line:U(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:U(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:U(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:U(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function $i(e,t,n,r){if(!Ki(r))return e.issues.push({path:n,message:`${n} must be an object, got ${qi(r)}`,line:U(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 ${qi(i)}`,line:U(e.source,n.split(`.`))}),null;let a=t.arms;return i in a?a[i].parse(e,n,r):(e.issues.push({path:`${n}.${t.tag}`,message:`Unknown ${t.noun} "${i}". Expected one of: ${Object.keys(a).join(`, `)}`,line:U(e.source,[...n.split(`.`),t.tag])}),null)}function ea(e){return(...t)=>e()(...t)}function ta(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:U(n.source,o.split(`.`))}),null}return a}}function K(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>Ui(e,t,r,n)}}function na(){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 ${qi(i)}`,line:U(e.source,[n])});return}return i}}}}function ra(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:U(e.source,[i])});return}return o}}}}function ia(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:U(e.source,[r])});return}return a}}}}function aa(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>Wi(e,t,r)}}function oa(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>Vi(e,t,r,n)??void 0}}function sa(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>Gi(t,n,i,r,e)}}function ca(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 la(e){return ca(e.fields)}function ua(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function da(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function fa(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const pa=/^[A-Za-z_][A-Za-z0-9_]*$/;function ma(e){return`#${e+1}`}const ha={rows:{}};function ga(e){return`rows`in e}function _a(e){return Object.fromEntries(e.map((e,t)=>[ma(t),e]))}function va(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:_a(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:_a([n])}}function ya(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function ba(e){return ga(e)?ya(e):e}function xa(e,t){return ga(e)?{...t,...e,rows:{...t.rows,...e.rows}}:va(e)}function Sa(e){if(!ga(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}function Ca(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:{...t.segments,...e.segments??{}},root:xa(e.root??ha,t.root),actions:{...t.actions,...e.actions??{}},looks:{...t.looks,...e.looks??{}},presets:{...t.presets,...e.presets??{}},editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}const wa={required:!1,json:{enum:[...vi]},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: ${vi.join(`, `)}`,line:U(e.source,[...t.split(`.`),n])});return}return Gi(e,t,r,n,vi)}},Ta={default_bg:K(),default_fg:K(),default_empty_value:K(),default_separator:K(),default_truncate_marker:K(),palette:aa(),look:K(),preset:K(),style:sa(mi),autoWrap:na(),padding:ra(Si),charset:sa(_i),updateNotice:na(),colorCompatibility:wa},Ea={noun:`globals key`,fields:Ta};function Da(e){return{required:!1,json:{not:{},description:`not allowed here — ${e} cannot select a preset`},parse:(t,n,r,i)=>{i[r]!==void 0&&t.issues.push({path:`${n}.${r}`,message:`${n}.${r}: ${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.`,line:U(t.source,[...n.split(`.`),r])})}}}const Oa={noun:`preset globals key`,fields:{...Ta,preset:Da(`a preset`)}},ka={noun:`editGlobals key`,fields:{...Ta,preset:Da(`the editGlobals fragment`)}};function Aa(e,t,n){return n===void 0?{}:Ji(e,Ea,t,n)??{}}function ja(e,t,n){return Ji(e,Oa,t,n)??{}}function Ma(){return la(Oa)}function Na(e,t,n){return Ji(e,ka,t,n)??{}}const Pa=new Set(Object.keys(Ea.fields));function Fa(e){return Pa.has(e)}function Ia(){return[...Pa]}const La={padding:1};function Ra(e){let t=new Map;for(let[n,r]of Object.entries(La)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}function za(e,t,n,r){return n.cache===void 0?(Ri.includes(r)&&e.issues.push({path:`${t}.cache`,message:`${r} variables must declare a cache policy (one of: ${Fi.join(`, `)})`,line:U(e.source,t.split(`.`))}),null):Wa(e,`${t}.cache`,n.cache)}function Ba(e,t,n){if(n.cache!==void 0)return Wa(e,`${t}.cache`,n.cache)??void 0}function Va(e){return{required:!0,json:qa(),parse:(t,n,r,i)=>za(t,n,i,e)??void 0}}function Ha(){return{required:!1,json:qa(),parse:(e,t,n,r)=>Ba(e,t,r)}}const Ua={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&Ya(n)?{ttl:n}:Zi(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}:Zi(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}:Zi(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}:Zi(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}:Zi(e,t,`cache.never must be the literal boolean true, got ${G(n)}`)}}};function Wa(e,t,n){return Qi(e,Ua,t,n)}const Ga={noun:`time-variable cache`,arms:{ttl:Ua.arms.ttl}};function Ka(){return{required:!1,json:fa(Ga),parse:(e,t,n,r)=>r.cache===void 0?void 0:Qi(e,Ga,`${t}.cache`,r.cache)??void 0}}function qa(){return fa(Ua)}const Ja=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function Ya(e){return Ja.test(e)}function Xa(e,t,n){if(n===void 0)return{};if(!Ki(n))return e.issues.push({path:t,message:`${t} must be an object, got ${qi(n)}`,line:U(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=$i(e,vo,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function Za(){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 ${qi(i)}`,line:U(e.source,t.split(`.`))});return}return i}}}function Qa(){return{required:!0,json:{enum:[...Li]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!Li.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${Li.join(`, `)}, got ${JSON.stringify(i)}`,line:U(e.source,[...t.split(`.`),`field`])});return}return i}}}function $a(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return Hi(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const eo={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:Zi(e,t,`parse.text must be the literal boolean true, got ${G(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?to(e,t,n):Zi(e,t,`parse.regex must be a pattern string, got ${G(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:Zi(e,t,`parse.json must be the literal boolean true, got ${G(n)}`)}}};function to(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return Zi(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:Zi(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function no(){return{required:!1,json:fa(eo),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:U(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:Qi(e,eo,`${t}.parse`,r.parse)??void 0)}}function ro(){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)=>Ki(r.parse)&&`json`in r.parse?io(e,t,r.default):Ui(e,t,r,`default`)}}function io(e,t,n){if(n!==void 0)return ao(n)?n:Zi(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${G(n)}`)??void 0}function ao(e){return e!==null&&oo(e)}function oo(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(oo);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(oo)}default:return!1}}const so={value:Za(),default:K()},co={path:oa(),type:sa([`string`,`number`,`boolean`]),default:$a()},lo={name:oa(),default:K()},uo={path:oa(),readMode:sa([`whole`,`first-line`]),parse:no(),cache:Va(`file`),default:ro()},fo={command:oa(),parse:no(),cache:Va(`shell`),default:ro()},po={template:oa(),cache:Ha(),default:K()},mo={layout:oa(),cache:Ka(),default:K()},ho={field:Qa(),cache:Va(`git`),default:K()},go={key:oa(),default:K()};function _o(e,t){return{json:ua(ca(t),`kind`,e),parse:(n,r,i)=>{let a=Yi(n,t,r,i);return a===null?null:{kind:e,...a}}}}const vo={tag:`kind`,noun:`source kind`,arms:{literal:_o(`literal`,so),input:_o(`input`,co),env:_o(`env`,lo),file:_o(`file`,uo),shell:_o(`shell`,fo),template:_o(`template`,po),time:_o(`time`,mo),git:_o(`git`,ho),state:_o(`state`,go)}};function yo(){return da(vo)}function bo(){return{type:`object`,additionalProperties:yo()}}function xo(e,t){if(t===void 0)return{};if(!Ki(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${qi(t)}`,line:U(e.source,[`segments`])}),{};let n={};for(let[r,i]of Object.entries(t)){let t=Ji(e,wo,`segments.${r}`,i);t!==null&&(n[r]=t)}return n}function So(){return{required:!1,json:{anyOf:[{const:`auto`},{type:`integer`,minimum:1}]},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(i===`auto`)return`auto`;if(typeof i==`number`&&Number.isInteger(i)&&i>0)return i;e.issues.push({path:`${t}.${n}`,message:`width must be "auto" or a positive integer, got ${G(i)}`,line:U(e.source,[...t.split(`.`),n])})}}}}function Co(){return{required:!1,json:bo(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return Xa(e,`${t}.${n}`,i)}}}const wo={noun:`segment key`,fields:{template:oa(),width:So(),justify:sa(zi),truncate:sa(Bi),bg:K(),fg:K(),when:K(),palette:aa(),vars:Co()}},To=[`primary`,`secondary`,`accent`],Eo=[`surface`,`panel`,`surface-lighten-1`],Do=[.16,.3],Oo=Do.reduce((e,t)=>t>e?t:e),ko=Do.flatMap(e=>To.flatMap(t=>Eo.map(n=>({base:n,hue:t,amount:e})))),Ao=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},jo=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],Mo=e=>typeof e==`string`&&jo.includes(e),No={"van-der-corput":Ao,"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},Po=e=>No[e??`van-der-corput`],Fo=.37;function Io(e,t){let n=0,r=1;for(let{index:i,count:a,distribution:o}of e)n+=o(i,a)*r*t,r*=Fo;let i=Math.round(n)%t;return i<0?i+t:i}function Lo(e){let t=0,n=1;for(let{index:r,count:i,distribution:a}of e)t+=a(r,i)*n,n*=Fo;return t%1}function Ro(e,t){let n=e[Io(t,e.length)];if(n===void 0)throw Error(`vocabularySelect: empty vocabulary`);return n}const zo=e=>Ro(ko,e);function Bo(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 Vo(e,{base:t,hue:n,amount:r}){return cn(Bo(e,t),Bo(e,n),r)}const Ho=2.2;function Uo(e,t){let n=ko.filter(e=>e.hue===t&&e.amount===Oo).map(t=>Vo(e,t)),r=cn(Bo(e,`surface`),Bo(e,t),.92),i=Bo(e,`foreground`),a=Array.from({length:13},(e,t)=>cn(r,i,t/12)).find(e=>n.every(t=>Rn(e,t)>=Ho));if(a===void 0)throw Error(`palette "${e.name}": "${t}" cannot clear the ${Ho} state floor even at foreground`);return a}function Wo(e,t){return[`background`,`foreground`].map(t=>Bo(e,t)).reduce((e,n)=>Rn(t,n)>Rn(t,e)?n:e)}const Go={base:.42,perDepth:.14,cap:.75},Ko={floor:.12,span:.8};function qo(e,t){return To[(To.indexOf(e)+t)%To.length]}function Jo(e,t){let n=`${t.hue}|${t.depth}`,r=Yo.get(e);r===void 0&&(r=new Map,Yo.set(e,r));let i=r.get(n);if(i!==void 0)return i;let a=Uo(e,qo(t.hue,t.depth)),o=Math.min(Go.cap,Go.base+Go.perDepth*t.depth),s={state:a,plane:cn(a,Bo(e,`background`),o)};return r.set(n,s),s}const Yo=new WeakMap;function Xo(e,t,n){let{state:r,plane:i}=Jo(e,t);return cn(i,r,Ko.floor+Ko.span*Lo(n))}const Zo={kind:`bar`,address:[]},Qo=(e,t)=>({...e,address:[...e.address,t]}),$o=e=>({kind:`band`,band:e,address:[]}),es=()=>void 0;function ts(e,t){switch(t.kind){case`bar`:{let n=zo(t.address);return{tint:Vo(e,n),text:es,disclosure:{hue:n.hue,depth:0}}}case`band`:return{tint:Xo(e,t.band,t.address),text:t=>Wo(e,t),disclosure:{hue:t.band.hue,depth:t.band.depth+1}}}}const ns=`closed`;function rs(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 is(e,t,n,r){let i=rs(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function as(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function os(e,t,n,r){return{kind:`segment`,name:e,opens:{ref:t,body:n},...r!==void 0&&{when:r}}}function ss(e,...t){return`{{ and ${[e,...t].map(cs).join(` `)} }}`}function cs(e){return`(eq .${e.variable} "${as(e.member)}")`}function ls(e,t,n){return`{{ action "${e}" "${as(t)}" "${as(n)}" }}`}function us(e,t){return{kind:`state`,key:e,default:t}}function ds(e,t){return{set:e,cycle:[ns,t]}}function fs(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:U(e.source,[`root`])})}const ps=`#/definitions/LayoutNode`,ms={kind:`container`,direction:`vertical`,children:[]};function hs(e){return{required:!0,json:{const:e},parse:()=>e}}function gs(){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:U(e.source,[`root`])}),``)}}}function _s(){return{required:!0,json:{enum:[...W]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&W.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${W.join(`, `)} (got ${JSON.stringify(i)})`,line:U(e.source,[`root`])}),`vertical`)}}}function vs(e){return{required:!0,json:{type:`array`,items:{$ref:ps}},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 ${qi(a)}`,line:U(t.source,[`root`])}),[])}}}const ys={noun:`layout-node key`,fields:{kind:hs(`segment`),name:gs(),when:K()}},bs=()=>sa(jo),xs={noun:`layout-node key`,fields:{kind:hs(`container`),direction:_s(),children:vs(ea(()=>Es)),when:K(),distribution:bs()}};function Ss(){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:U(e.source,[`root`])}),``)}}}const Cs={noun:`layout-node key`,fields:{seg:Ss(),when:K()}},ws={noun:`layout-node key`,fields:{h:vs(ea(()=>Es)),when:K(),distribution:bs()}},Ts={noun:`layout-node key`,fields:{v:vs(ea(()=>Es)),when:K(),distribution:bs()}},Es=(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:U(e.source,[`root`])}),ms):{kind:`segment`,name:n};if(!Ki(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 ${qi(n)}`,line:U(e.source,[`root`])}),ms;if(n.kind===`container`)return Ji(e,xs,t,n)??ms;if(n.kind===`segment`)return Ji(e,ys,t,n)??ms;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
26
+ `)}const W=[`vertical`,`horizontal`];function ji(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*Mi(e){yield e;for(let t of Ni(e))yield*Mi(t)}function Ni(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}function Pi(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const Fi=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function Ii(e){return e.kind!==`literal`&&e.kind!==`input`&&e.kind!==`env`&&e.kind!==`state`}const Li=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],Ri=[`file`,`shell`,`git`],zi=[`left`,`center`,`right`],Bi=[`right`,`left`,`middle`];function Vi(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 ${qi(i)}`,line:U(e.source,[...t.split(`.`),r])}),null)}function Hi(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 ${qi(i)}`,line:U(e.source,[...t.split(`.`),`default`])});return}return i}}function Ui(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 ${qi(i)}`,line:U(e.source,[...t.split(`.`),r])});return}return i}}function Wi(e,t,n){let r=Ui(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:U(e.source,[...t.split(`.`),`palette`])});return}return r}}function Gi(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:U(e.source,[...t.split(`.`),r])});return}return a}}function Ki(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function qi(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 Ji(e,t,n,r){return Ki(r)?(Xi(e,n,r,t.noun,new Set(Object.keys(t.fields))),Yi(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${qi(r)}`,line:U(e.source,n.split(`.`))}),null)}function Yi(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}function Xi(e,t,n,r,i){for(let a of Object.keys(n))i.has(a)||e.issues.push({path:`${t}.${a}`,message:`Unknown ${r} "${a}". Expected one of: ${[...i].join(`, `)}`,line:U(e.source,[...t.split(`.`),a])})}function Zi(e,t,n){return e.issues.push({path:t,message:n,line:U(e.source,t.split(`.`))}),null}function Qi(e,t,n,r){if(!Ki(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${qi(r)}`,line:U(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:U(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:U(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:U(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function $i(e,t,n,r){if(!Ki(r))return e.issues.push({path:n,message:`${n} must be an object, got ${qi(r)}`,line:U(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 ${qi(i)}`,line:U(e.source,n.split(`.`))}),null;let a=t.arms;return i in a?a[i].parse(e,n,r):(e.issues.push({path:`${n}.${t.tag}`,message:`Unknown ${t.noun} "${i}". Expected one of: ${Object.keys(a).join(`, `)}`,line:U(e.source,[...n.split(`.`),t.tag])}),null)}function ea(e){return(...t)=>e()(...t)}function ta(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:U(n.source,o.split(`.`))}),null}return a}}function K(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>Ui(e,t,r,n)}}function na(){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 ${qi(i)}`,line:U(e.source,[n])});return}return i}}}}function ra(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:U(e.source,[i])});return}return o}}}}function ia(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:U(e.source,[r])});return}return a}}}}function aa(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>Wi(e,t,r)}}function oa(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>Vi(e,t,r,n)??void 0}}function sa(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>Gi(t,n,i,r,e)}}function ca(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 la(e){return ca(e.fields)}function ua(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function da(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function fa(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const pa=/^[A-Za-z_][A-Za-z0-9_]*$/;function ma(e){return`#${e+1}`}const ha={rows:{}};function ga(e){return`rows`in e}function _a(e){return Object.fromEntries(e.map((e,t)=>[ma(t),e]))}function va(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:_a(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:_a([n])}}function ya(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function ba(e){return ga(e)?ya(e):e}function xa(e,t){return ga(e)?{...t,...e,rows:{...t.rows,...e.rows}}:va(e)}function Sa(e){if(!ga(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}function Ca(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:wa(t.segments,e.segments??{}),root:xa(e.root??ha,t.root),actions:{...t.actions,...e.actions??{}},looks:{...t.looks,...e.looks??{}},presets:wa(t.presets,e.presets??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function wa(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}const Ta={required:!1,json:{enum:[...vi]},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: ${vi.join(`, `)}`,line:U(e.source,[...t.split(`.`),n])});return}return Gi(e,t,r,n,vi)}},Ea={default_bg:K(),default_fg:K(),default_empty_value:K(),default_separator:K(),default_truncate_marker:K(),palette:aa(),look:K(),preset:K(),style:sa(mi),autoWrap:na(),padding:ra(Si),charset:sa(_i),updateNotice:na(),colorCompatibility:Ta},Da={noun:`globals key`,fields:Ea};function Oa(e){return{required:!1,json:{not:{},description:`not allowed here — ${e} cannot select a preset`},parse:(t,n,r,i)=>{i[r]!==void 0&&t.issues.push({path:`${n}.${r}`,message:`${n}.${r}: ${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.`,line:U(t.source,[...n.split(`.`),r])})}}}const ka={noun:`preset globals key`,fields:{...Ea,preset:Oa(`a preset`)}},Aa={noun:`editGlobals key`,fields:{...Ea,preset:Oa(`the editGlobals fragment`)}};function ja(e,t,n){return n===void 0?{}:Ji(e,Da,t,n)??{}}function Ma(e,t,n){return Ji(e,ka,t,n)??{}}function Na(){return la(ka)}function Pa(e,t,n){return Ji(e,Aa,t,n)??{}}const Fa=new Set(Object.keys(Da.fields));function Ia(e){return Fa.has(e)}function La(){return[...Fa]}const Ra={padding:1};function za(e){let t=new Map;for(let[n,r]of Object.entries(Ra)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}function Ba(e,t,n,r){return n.cache===void 0?(Ri.includes(r)&&e.issues.push({path:`${t}.cache`,message:`${r} variables must declare a cache policy (one of: ${Fi.join(`, `)})`,line:U(e.source,t.split(`.`))}),null):Ga(e,`${t}.cache`,n.cache)}function Va(e,t,n){if(n.cache!==void 0)return Ga(e,`${t}.cache`,n.cache)??void 0}function Ha(e){return{required:!0,json:Ja(),parse:(t,n,r,i)=>Ba(t,n,i,e)??void 0}}function Ua(){return{required:!1,json:Ja(),parse:(e,t,n,r)=>Va(e,t,r)}}const Wa={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&Xa(n)?{ttl:n}:Zi(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}:Zi(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}:Zi(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}:Zi(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}:Zi(e,t,`cache.never must be the literal boolean true, got ${G(n)}`)}}};function Ga(e,t,n){return Qi(e,Wa,t,n)}const Ka={noun:`time-variable cache`,arms:{ttl:Wa.arms.ttl}};function qa(){return{required:!1,json:fa(Ka),parse:(e,t,n,r)=>r.cache===void 0?void 0:Qi(e,Ka,`${t}.cache`,r.cache)??void 0}}function Ja(){return fa(Wa)}const Ya=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function Xa(e){return Ya.test(e)}function Za(e,t,n){if(n===void 0)return{};if(!Ki(n))return e.issues.push({path:t,message:`${t} must be an object, got ${qi(n)}`,line:U(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=$i(e,yo,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function Qa(){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 ${qi(i)}`,line:U(e.source,t.split(`.`))});return}return i}}}function $a(){return{required:!0,json:{enum:[...Li]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!Li.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${Li.join(`, `)}, got ${JSON.stringify(i)}`,line:U(e.source,[...t.split(`.`),`field`])});return}return i}}}function eo(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return Hi(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const to={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:Zi(e,t,`parse.text must be the literal boolean true, got ${G(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?no(e,t,n):Zi(e,t,`parse.regex must be a pattern string, got ${G(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:Zi(e,t,`parse.json must be the literal boolean true, got ${G(n)}`)}}};function no(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return Zi(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:Zi(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function ro(){return{required:!1,json:fa(to),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:U(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:Qi(e,to,`${t}.parse`,r.parse)??void 0)}}function io(){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)=>Ki(r.parse)&&`json`in r.parse?ao(e,t,r.default):Ui(e,t,r,`default`)}}function ao(e,t,n){if(n!==void 0)return oo(n)?n:Zi(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${G(n)}`)??void 0}function oo(e){return e!==null&&so(e)}function so(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(so);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(so)}default:return!1}}const co={value:Qa(),default:K()},lo={path:oa(),type:sa([`string`,`number`,`boolean`]),default:eo()},uo={name:oa(),default:K()},fo={path:oa(),readMode:sa([`whole`,`first-line`]),parse:ro(),cache:Ha(`file`),default:io()},po={command:oa(),parse:ro(),cache:Ha(`shell`),default:io()},mo={template:oa(),cache:Ua(),default:K()},ho={layout:oa(),cache:qa(),default:K()},go={field:$a(),cache:Ha(`git`),default:K()},_o={key:oa(),default:K()};function vo(e,t){return{json:ua(ca(t),`kind`,e),parse:(n,r,i)=>{let a=Yi(n,t,r,i);return a===null?null:{kind:e,...a}}}}const yo={tag:`kind`,noun:`source kind`,arms:{literal:vo(`literal`,co),input:vo(`input`,lo),env:vo(`env`,uo),file:vo(`file`,fo),shell:vo(`shell`,po),template:vo(`template`,mo),time:vo(`time`,ho),git:vo(`git`,go),state:vo(`state`,_o)}};function bo(){return da(yo)}function xo(){return{type:`object`,additionalProperties:bo()}}const So=`groups.`,Co=`menus.`,wo=`edit.`,To=`settings.`,Eo=[So,Co,wo,To];function Do(e){return Eo.some(t=>e.startsWith(t))}function Oo(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:U(e.source,[`root`])})}function ko(e){return new Set(Object.keys(e.segments).filter(e=>!Do(e)))}function Ao(e,t,n){if(t===void 0)return{};if(!Ki(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${qi(t)}`,line:U(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=Ji(e,n.has(i)?Io:Fo,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function jo(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?Zi(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:Vi(e,t,r,n)??void 0}}function Mo(){return{required:!1,json:{anyOf:[{const:`auto`},{type:`integer`,minimum:1}]},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(i===`auto`)return`auto`;if(typeof i==`number`&&Number.isInteger(i)&&i>0)return i;e.issues.push({path:`${t}.${n}`,message:`width must be "auto" or a positive integer, got ${G(i)}`,line:U(e.source,[...t.split(`.`),n])})}}}}function No(){return{required:!1,json:xo(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return Za(e,`${t}.${n}`,i)}}}const Po={template:jo(),width:Mo(),justify:sa(zi),truncate:sa(Bi),bg:K(),fg:K(),when:K(),palette:aa(),vars:No()},Fo={noun:`segment key`,fields:Po},Io={noun:`segment key`,fields:{...Po,template:K()}},Lo=[`primary`,`secondary`,`accent`],Ro=[`surface`,`panel`,`surface-lighten-1`],zo=[.16,.3],Bo=zo.reduce((e,t)=>t>e?t:e),Vo=zo.flatMap(e=>Lo.flatMap(t=>Ro.map(n=>({base:n,hue:t,amount:e})))),Ho=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},Uo=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],Wo=e=>typeof e==`string`&&Uo.includes(e),Go={"van-der-corput":Ho,"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},Ko=e=>Go[e??`van-der-corput`],qo=.37;function Jo(e,t){let n=0,r=1;for(let{index:i,count:a,distribution:o}of e)n+=o(i,a)*r*t,r*=qo;let i=Math.round(n)%t;return i<0?i+t:i}function Yo(e){let t=0,n=1;for(let{index:r,count:i,distribution:a}of e)t+=a(r,i)*n,n*=qo;return t%1}function Xo(e,t){let n=e[Jo(t,e.length)];if(n===void 0)throw Error(`vocabularySelect: empty vocabulary`);return n}const Zo=e=>Xo(Vo,e);function Qo(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 $o(e,{base:t,hue:n,amount:r}){return cn(Qo(e,t),Qo(e,n),r)}const es=2.2;function ts(e,t){let n=Vo.filter(e=>e.hue===t&&e.amount===Bo).map(t=>$o(e,t)),r=cn(Qo(e,`surface`),Qo(e,t),.92),i=Qo(e,`foreground`),a=Array.from({length:13},(e,t)=>cn(r,i,t/12)).find(e=>n.every(t=>Rn(e,t)>=es));if(a===void 0)throw Error(`palette "${e.name}": "${t}" cannot clear the ${es} state floor even at foreground`);return a}function ns(e,t){return[`background`,`foreground`].map(t=>Qo(e,t)).reduce((e,n)=>Rn(t,n)>Rn(t,e)?n:e)}const rs={base:.42,perDepth:.14,cap:.75},is={floor:.12,span:.8};function as(e,t){return Lo[(Lo.indexOf(e)+t)%Lo.length]}function os(e,t){let n=`${t.hue}|${t.depth}`,r=ss.get(e);r===void 0&&(r=new Map,ss.set(e,r));let i=r.get(n);if(i!==void 0)return i;let a=ts(e,as(t.hue,t.depth)),o=Math.min(rs.cap,rs.base+rs.perDepth*t.depth),s={state:a,plane:cn(a,Qo(e,`background`),o)};return r.set(n,s),s}const ss=new WeakMap;function cs(e,t,n){let{state:r,plane:i}=os(e,t);return cn(i,r,is.floor+is.span*Yo(n))}const ls={kind:`bar`,address:[]},us=(e,t)=>({...e,address:[...e.address,t]}),ds=e=>({kind:`band`,band:e,address:[]}),fs=()=>void 0;function ps(e,t){switch(t.kind){case`bar`:{let n=Zo(t.address);return{tint:$o(e,n),text:fs,disclosure:{hue:n.hue,depth:0}}}case`band`:return{tint:cs(e,t.band,t.address),text:t=>ns(e,t),disclosure:{hue:t.band.hue,depth:t.band.depth+1}}}}const ms=`closed`;function hs(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 gs(e,t,n,r){let i=hs(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function _s(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function vs(e,t,n,r){return{kind:`segment`,name:e,opens:{ref:t,body:n},...r!==void 0&&{when:r}}}function ys(e,...t){return`{{ and ${[e,...t].map(bs).join(` `)} }}`}function bs(e){return`(eq .${e.variable} "${_s(e.member)}")`}function xs(e,t,n){return`{{ action "${e}" "${_s(t)}" "${_s(n)}" }}`}function Ss(e,t){return{kind:`state`,key:e,default:t}}function Cs(e,t){return{set:e,cycle:[ms,t]}}const ws=`#/definitions/LayoutNode`,Ts={kind:`container`,direction:`vertical`,children:[]};function Es(e){return{required:!0,json:{const:e},parse:()=>e}}function Ds(){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:U(e.source,[`root`])}),``)}}}function Os(){return{required:!0,json:{enum:[...W]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&W.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${W.join(`, `)} (got ${JSON.stringify(i)})`,line:U(e.source,[`root`])}),`vertical`)}}}function ks(e){return{required:!0,json:{type:`array`,items:{$ref:ws}},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 ${qi(a)}`,line:U(t.source,[`root`])}),[])}}}const As={noun:`layout-node key`,fields:{kind:Es(`segment`),name:Ds(),when:K()}},js=()=>sa(Uo),Ms={noun:`layout-node key`,fields:{kind:Es(`container`),direction:Os(),children:ks(ea(()=>Ls)),when:K(),distribution:js()}};function Ns(){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:U(e.source,[`root`])}),``)}}}const Ps={noun:`layout-node key`,fields:{seg:Ns(),when:K()}},Fs={noun:`layout-node key`,fields:{h:ks(ea(()=>Ls)),when:K(),distribution:js()}},Is={noun:`layout-node key`,fields:{v:ks(ea(()=>Ls)),when:K(),distribution:js()}},Ls=(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:U(e.source,[`root`])}),Ts):{kind:`segment`,name:n};if(!Ki(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 ${qi(n)}`,line:U(e.source,[`root`])}),Ts;if(n.kind===`container`)return Ji(e,Ms,t,n)??Ts;if(n.kind===`segment`)return Ji(e,As,t,n)??Ts;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
27
27
  Old: { kind: "cells", segments: ["seg1", "seg2"] }
28
- New: { h: ["seg1", "seg2"] }`,line:U(e.source,[`root`])}),ms;if(n.kind===`group`){let r=Ji(e,Ps,t,n);return r===null?ms:(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}),Is(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:U(e.source,[`root`])}),ms}if(a){let r=Ji(e,Cs,t,n);return r===null?ms:{kind:`segment`,name:r.seg,...r.when!==void 0&&{when:r.when}}}if(r){let r=Ji(e,ws,t,n);return r===null?ms:{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=Ji(e,Ts,t,n);return r===null?ms:{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:U(e.source,[`root`])}),ms};function Ds(){return{required:!0,json:{type:`object`,propertyNames:{pattern:pa.source},additionalProperties:{$ref:ps}},parse:(e,t,n,r)=>{let i=r[n];if(!Ki(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${qi(i)}`,line:U(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!pa.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:U(e.source,[...t.split(`.`),n,r])});continue}a[r]=Es(e,`${t}.${n}.${r}`,o)}return a}}}const Os={noun:`root key`,fields:{rows:Ds(),when:K(),distribution:bs()}};function ks(e,t,n){return Ki(n)&&`rows`in n?Ji(e,Os,t,n)??{rows:{}}:Es(e,t,n)}const As=`groups.`;function js(){return{required:!0,json:{type:`string`,pattern:pa.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!pa.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 "${ns}", got ${G(i)}`,line:U(e.source,[`root`])});return}return i}}}function Ms(){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:U(e.source,[`root`])});return}return i}}}}function Ns(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=Vi(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:U(e.source,[...t.split(`.`),n])});return}return i}}}}const Ps={noun:`layout-node key`,fields:{kind:hs(`group`),name:js(),label:Ns(),open:na(),direction:sa(W),key:Ms(),bg:K(),fg:K(),when:K(),distribution:bs(),children:vs(ea(()=>Es))}};function Fs(e){return e.key??`groups.`+e.name}function Is(e){let t=As+e.name;return os(t,{variable:t,member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},e.when)}function Ls(e,t,n){e.issues.push({path:t,message:n,line:U(e.source,[`root`])})}function Rs(e,t){fs(e,t,As,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&Ls(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}.`)&&Fs(t)===Fs(r)&&Ls(e,t.path,`group "${t.name}" shares key "${Fs(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=Fs(t);if(i.has(n)||i.set(n,ns),t.open===!0){let r=i.get(n);r!==`closed`&&Ls(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=As+e.name,r=Fs(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=us(r,i.get(r)),o[t]=ds(r,e.name),s[t]={template:ls(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 zs=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?Ks(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}},Bs=class extends zs{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},Vs=class extends zs{name=`EvalError`;kind=`EvalError`},Hs=class extends Vs{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=qs(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}},Us=class extends Vs{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}},Ws=class extends Vs{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},Gs=class extends Vs{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function Ks(e,t){let n=e.split(`
28
+ New: { h: ["seg1", "seg2"] }`,line:U(e.source,[`root`])}),Ts;if(n.kind===`group`){let r=Ji(e,Ws,t,n);return r===null?Ts:(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}),Ks(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:U(e.source,[`root`])}),Ts}if(a){let r=Ji(e,Ps,t,n);return r===null?Ts:{kind:`segment`,name:r.seg,...r.when!==void 0&&{when:r.when}}}if(r){let r=Ji(e,Fs,t,n);return r===null?Ts:{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=Ji(e,Is,t,n);return r===null?Ts:{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:U(e.source,[`root`])}),Ts};function Rs(){return{required:!0,json:{type:`object`,propertyNames:{pattern:pa.source},additionalProperties:{$ref:ws}},parse:(e,t,n,r)=>{let i=r[n];if(!Ki(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${qi(i)}`,line:U(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!pa.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:U(e.source,[...t.split(`.`),n,r])});continue}a[r]=Ls(e,`${t}.${n}.${r}`,o)}return a}}}const zs={noun:`root key`,fields:{rows:Rs(),when:K(),distribution:js()}};function Bs(e,t,n){return Ki(n)&&`rows`in n?Ji(e,zs,t,n)??{rows:{}}:Ls(e,t,n)}function Vs(){return{required:!0,json:{type:`string`,pattern:pa.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!pa.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 "${ms}", got ${G(i)}`,line:U(e.source,[`root`])});return}return i}}}function Hs(){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:U(e.source,[`root`])});return}return i}}}}function Us(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=Vi(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:U(e.source,[...t.split(`.`),n])});return}return i}}}}const Ws={noun:`layout-node key`,fields:{kind:Es(`group`),name:Vs(),label:Us(),open:na(),direction:sa(W),key:Hs(),bg:K(),fg:K(),when:K(),distribution:js(),children:ks(ea(()=>Ls))}};function Gs(e){return e.key??`groups.`+e.name}function Ks(e){let t=So+e.name;return vs(t,{variable:t,member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},e.when)}function qs(e,t,n){e.issues.push({path:t,message:n,line:U(e.source,[`root`])})}function Js(e,t){Oo(e,t,So,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&qs(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}.`)&&Gs(t)===Gs(r)&&qs(e,t.path,`group "${t.name}" shares key "${Gs(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=Gs(t);if(i.has(n)||i.set(n,ms),t.open===!0){let r=i.get(n);r!==`closed`&&qs(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=So+e.name,r=Gs(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=Ss(r,i.get(r)),o[t]=Cs(r,e.name),s[t]={template:xs(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 Ys=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?nc(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}},Xs=class extends Ys{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},Zs=class extends Ys{name=`EvalError`;kind=`EvalError`},Qs=class extends Zs{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=rc(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}},$s=class extends Zs{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}},ec=class extends Zs{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},tc=class extends Zs{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function nc(e,t){let n=e.split(`
29
29
  `),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(`
30
- `)}function qs(e,t){if(t.length===0)return[];let n=t.map(t=>({name:t,dist:Js(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 Js(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 Ys(e){throw Error(`unhandled node kind: ${JSON.stringify(e)}`)}const Xs=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`]]),Zs={left:`{{`,right:`}}`};var Qs=class{src;leftDelim;rightDelim;offset=0;line=1;column=1;mode=`text`;pending;constructor(e,t=Zs){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 Bs(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&&$s(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);$s(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);$s(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(;$s(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`;$s(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&&(tc(e)||ec(e)&&tc(this.src[this.offset+1]??``)||e===`.`&&tc(this.src[this.offset+1]??``)))return this.readNumber(t);if(e===`.`)return this.readDotOrField(t);if(e!==void 0&&oc(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===`
30
+ `)}function rc(e,t){if(t.length===0)return[];let n=t.map(t=>({name:t,dist:ic(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 ic(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 ac(e){throw Error(`unhandled node kind: ${JSON.stringify(e)}`)}const oc=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`]]),sc={left:`{{`,right:`}}`};var cc=class{src;leftDelim;rightDelim;offset=0;line=1;column=1;mode=`text`;pending;constructor(e,t=sc){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 Xs(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&&lc(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);lc(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);lc(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(;lc(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`;lc(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&&(dc(e)||uc(e)&&dc(this.src[this.offset+1]??``)||e===`.`&&dc(this.src[this.offset+1]??``)))return this.readNumber(t);if(e===`.`)return this.readDotOrField(t);if(e!==void 0&&gc(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===`
31
31
  `)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===`
32
- `)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(ec(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);nc(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);rc(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);ic(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);return this.finishNumber(t,e)}}for(;tc(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`.`)for(this.advanceBy(1);tc(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),ec(this.src[this.offset]??``)&&this.advanceBy(1);tc(this.src[this.offset]??``);)this.advanceBy(1);return this.src[this.offset]===`i`&&this.advanceBy(1),this.finishNumber(t,e)}isHexFloatTail(e){return nc(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);sc(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&oc(this.src[this.offset+1]??``);)for(this.advanceBy(1);sc(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),!oc(this.src[this.offset]??``))return this.makeToken(`Dot`,`.`,e);for(;sc(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&oc(this.src[this.offset+1]??``);)for(this.advanceBy(1);sc(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(;sc(this.src[this.offset]??``);)this.advanceBy(1);let n=this.src.slice(t,this.offset),r=Xs.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===`
32
+ `)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(uc(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);fc(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);pc(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);mc(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);return this.finishNumber(t,e)}}for(;dc(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`.`)for(this.advanceBy(1);dc(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),uc(this.src[this.offset]??``)&&this.advanceBy(1);dc(this.src[this.offset]??``);)this.advanceBy(1);return this.src[this.offset]===`i`&&this.advanceBy(1),this.finishNumber(t,e)}isHexFloatTail(e){return fc(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);_c(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&gc(this.src[this.offset+1]??``);)for(this.advanceBy(1);_c(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),!gc(this.src[this.offset]??``))return this.makeToken(`Dot`,`.`,e);for(;_c(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&gc(this.src[this.offset+1]??``);)for(this.advanceBy(1);_c(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(;_c(this.src[this.offset]??``);)this.advanceBy(1);let n=this.src.slice(t,this.offset),r=oc.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===`
33
33
  `)this.advanceBy(1);else return}}advanceBy(e){for(let t=0;t<e;t++){let e=this.src[this.offset];this.offset+=1,e===`
34
- `?(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 $s(e){return e===` `||e===` `||e===`\r`||e===`
35
- `}function ec(e){return e===`+`||e===`-`}function tc(e){return e>=`0`&&e<=`9`}function nc(e){return tc(e)||e>=`a`&&e<=`f`||e>=`A`&&e<=`F`}function rc(e){return e>=`0`&&e<=`7`}function ic(e){return e===`0`||e===`1`}function ac(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`}function oc(e){return ac(e)||e===`_`}function sc(e){return oc(e)||tc(e)}let cc,lc;function uc(e,t){return lc(e,t)}var dc=class e{static EMPTY=new e(new Map,void 0);#e;#t;constructor(e,t){this.#e=e,this.#t=t}static{cc=(t,n)=>new e(t,n),lc=(e,t)=>e.#e.get(t)??(e.#t&&lc(e.#t,t))}has(e){return lc(this,e)!==void 0}};function fc(e,t,n=dc.EMPTY){return new pc(e,t,n).parseTemplate()}var pc=class{lex;buf=[];defines=new Map;inherit;source;rangeDepth=0;constructor(e,t,n){this.source=e,this.inherit=n,this.lex=t?new Qs(e,t):new Qs(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:gc(n)});return n}errAt(e,t,n={}){return new Bs(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 ${gc(e)}`,{found:gc(e)})}return{root:e,defines:cc(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=hc(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 mc(e,t);let r=this.parseAction();r!==null&&t.push(r);continue}throw this.errAt(n,`unexpected ${gc(n)} at top level`,{found:gc(n)})}return mc(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 Bs(`{{${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 Bs(`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:gc(e)});return wc(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(!_c(e.type))throw this.errAt(e,"missing command after `|`",{expected:`command`,found:gc(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=[vc(this.next())];for(;this.peek().type===`Comma`;)this.next(),n.push(vc(this.expect(`Variable`,`$variable`)));return{vars:n,isAssign:this.next().type===`Assign`}}parseCommand(){let e=this.peek().pos,t=[this.parsePrimary()];for(;_c(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 vc(e);case`Identifier`:return{type:`Identifier`,pos:e.pos,ident:e.value};case`String`:return{type:`String`,pos:e.pos,raw:e.value,value:wc(e.value,e.pos,this.source)};case`Number`:return bc(e);case`Char`:return xc(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 ${gc(e)}`,{expected:`command argument`,found:gc(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 mc(e,t){return{type:`List`,pos:e,nodes:t}}function hc(e){return{trimLeft:e.trimLeft===!0,trimRight:e.trimRight===!0}}function gc(e){return e.type===`EOF`?`end of input`:e.value||e.type}function _c(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 vc(e){return{type:`Variable`,pos:e.pos,idents:yc(e.value)}}function yc(e){let t=e.indexOf(`.`);return t===-1?[e]:[e.slice(0,t),...e.slice(t+1).split(`.`)]}function bc(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=Sc(i);return{...s,intValue:e}}if(a){let e=Cc(i);return{...s,floatValue:e}}let c=Cc(i);return{...s,complexValue:[0,c]}}function xc(e,t){let n=Tc(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 Sc(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 Cc(e){return Number(e)}function wc(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+=`
36
- `;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 Bs(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function Tc(e,t,n){let r=wc(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new Bs(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function Ec(e,t){if(t(e)!==!1)for(let n of Dc(e))Ec(n,t)}function Dc(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 Ys(e)}}const Oc=Symbol(`go-template-js.MISSING`);function kc(e,t){if(e==null)return Oc;if(e instanceof Map)return e.has(t)?e.get(t):Oc;if(Array.isArray(e))return Oc;if(typeof e==`object`){let n=e;return t in n?n[t]:Oc}return Oc}function Ac(e,t){let n=e;for(let e of t){if(n===Oc)return Oc;n=kc(n,e)}return n}function jc(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)=>jc(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)||!jc(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=>jc(e[n],t[n])):!1}return!1}const Mc=new WeakSet;function Nc(e){return Mc.add(e),e}function Pc(e){return Mc.has(e)}function Fc(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 Ic(e,t){return{eq:{fn:(e,...t)=>t.some(t=>zc(e,t)),argTypes:[`comparable`]},ne:{fn:(e,t)=>!zc(e,t),argTypes:[`comparable`,`comparable`]},lt:{fn:(e,t)=>Bc(e,t)<0,argTypes:[`ordered`,`ordered`]},le:{fn:(e,t)=>Bc(e,t)<=0,argTypes:[`ordered`,`ordered`]},gt:{fn:(e,t)=>Bc(e,t)>0,argTypes:[`ordered`,`ordered`]},ge:{fn:(e,t)=>Bc(e,t)>=0,argTypes:[`ordered`,`ordered`]},len:{fn:e=>Vc(e),argTypes:[`sized`]},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=Hc(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)=>Gc(t,e),argTypes:[`stringifiable`],returnType:`string`},println:{fn:(...t)=>`${Gc(t,e)}\n`,argTypes:[`stringifiable`],returnType:`string`},printf:{fn:(n,...r)=>el(n,r,e,t),argTypes:[`string`,`stringifiable`],returnType:`string`},toString:{fn:n=>rl(n,e,t),argTypes:[`value`],returnType:`string`},toStrings:{fn:n=>n.map(n=>rl(n,e,t)),argTypes:[`list`]},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`]},html:{fn:(...t)=>Jc(Gc(t,e)),argTypes:[`stringifiable`],returnType:`string`},js:{fn:(...t)=>Zc(Gc(t,e)),argTypes:[`stringifiable`],returnType:`string`},urlquery:{fn:(...t)=>$c(Gc(t,e)),argTypes:[`stringifiable`],returnType:`string`},not:{fn:e=>!Fc(e),argTypes:[`truthy`]}}}function Lc(){return{and:Nc({argTypes:[`truthy`],fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!Fc(t))return t;return t}}),or:Nc({argTypes:[`truthy`],fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),Fc(t))return t;return t}})}}function Rc(e,t){return{...Ic(e,t),...Lc()}}function zc(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):jc(e,t)}function Bc(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 Vc(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Hc(e,t){if(Array.isArray(e)){let n=Number(t);if(!Number.isInteger(n))throw Error(`index: array index must be integer, got ${Uc(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 ${Uc(t)}`);return e[t]}throw Error(`index: cannot index ${Uc(e)}`)}function Uc(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Wc(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 Gc(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+=Kc(a,t),r=o}return n}function Kc(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const qc={"\0":`�`,'"':`&#34;`,"'":`&#39;`,"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function Jc(e){return e.replace(/[\0"'&<>]/g,e=>qc[e]??e)}const Yc={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},Xc=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function Zc(e){let t=``;for(let n of e){let e=Yc[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!Xc.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const Qc=new TextEncoder;function $c(e){let t=``,n=Qc.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 el(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+=tl(l??``,u,d,n,r),o=c+1}return i}function tl(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?nl(t,n):nl(t,Kc(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Wc(n)}=${Kc(n,r)})`:nl(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return nl(t,rl(n,r,i));case`q`:return nl(t,JSON.stringify(Kc(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${Wc(n)}=${Kc(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return nl(t,Number(n).toFixed(i))}case`t`:return nl(t,Fc(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 nl(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Wc(n)}=${Kc(n,r)})`:typeof n==`bigint`?nl(t,n.toString(16)):nl(t,Math.trunc(n).toString(16));default:return`%!${e}(${Wc(n)}=${Kc(n,r)})`}}function nl(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 rl(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>rl(e,t,n)).join(` `)}]`:e instanceof Map?il([...e.entries()],t,n):al(e)?il(Object.entries(e),t,n):String(e)}function il(e,t,n){let r=e=>rl(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 al(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 ol(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function sl(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function cl(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 ll(e,t,n){e.vars.set(t,n)}const ul=new Set([`default`,`zero`,`error`]);function dl(e){if(e===void 0)return`default`;if(ul.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${fl(e)}`)}function fl(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 pl(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${fl(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${fl(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${fl(e.right)}`);return{left:e.left,right:e.right}}}const ml=Object.freeze({kind:`break`}),hl=Object.freeze({kind:`continue`}),gl={kind:`none`};let _l;(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{_l=(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 vl(e){let t=new Set,n=e=>{Ec(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 yl={kind:`dynamic`};function bl(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=zl(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:yl}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return yl;let t=e.cmds[0];if(t===void 0)return yl;let n=t.args[0];return n===void 0||n.type!==`Identifier`?yl:{kind:`call`,name:n.ident,args:t.args.slice(1).map(bl)}}default:return yl}}function xl(e){let t=[],n=e=>{Ec(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(bl);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 Sl=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??kl,this.isT=e.isT??Cl,this.missingKey=dl(e.missingKey),this.delims=pl(e.delims),this.funcs={...Rc(this.toString,this.isT),...e.funcs??{}}}parse(e,t){let n=fc(e,this.delims,t);return _l(n.source,e=>this.evalParsed(n,e),n.defines,vl(n),xl(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=ol(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 ml;case`Continue`:throw hl;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 Vs(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:Ys(e)}}evalIf(e,t,n){Fc(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(Fc(r)){let i=sl(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=Il(r);try{if(a.length===0){e.elseList&&this.evalList(e.elseList,t,n);return}for(let[r,o]of a){let a=sl(t,o);if(i.length===1)ll(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;ll(a,e,r),ll(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===hl)continue;throw e}}}catch(e){if(e===ml)return;throw e}}evalTemplateInvoke(e,t,n){let r=uc(n.defines,e.name);if(!r)throw new Vs(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=sl(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=sl(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=uc(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 Vs(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,gl);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)ll(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 Vs(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new Vs(`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 Hs(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=Pc(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)}Tl(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 Us?new Us(t.funcName,t.argIndex,t.expected,t.receivedSummary,e.pos,{source:n.source}):t instanceof Gs?new Gs(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 zl(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 Hs(e.ident,e.pos,{source:n.source,available:Object.keys(this.funcs)});return Tl(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 Vs(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=Ac(e,t);if(i!==Oc)return i;if(this.missingKey===`error`)throw new Ws(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=cl(t,i);if(!a.found)throw new Vs(`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(rl(e,this.toString,this.isT)))}};const Cl=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function wl(e){return new Sl(e)}function Tl(e,t,n,r,i,a=kl,o,s=Ol,c=Cl){let l=El(t,o),u=-1,d=-1;for(let t=0;t<n.length;t++){let o=l(t),f=n[t];if(!Dl(o,f,a,c))throw new Us(e,t+1,Pl(o),Fl(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(!jl(n[u],f))throw new Us(e,t+1,`${Pl(`ordered`)} of the same kind as ${Fl(n[u])}`,Fl(f),r,{source:i})}if(o===`comparable`){if(d===-1)d=t;else if(!Ml(n[d],f))throw new Us(e,t+1,`${Pl(`comparable`)} of the same kind as ${Fl(n[d])}`,Fl(f),r,{source:i})}}}function El(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 Dl(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 al(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||al(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||al(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||al(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 Al(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Ol(e){return e}function kl(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 Us(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,Fl(e),{line:0,column:0,offset:0})}function Al(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function jl(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function Ml(e,t){let n=Nl(e),r=Nl(t);return n===`nil`||r===`nil`?!0:n===r}function Nl(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 Pl(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 Fl(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Il(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?Ll([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?Ll(Object.entries(e)):[]}function Ll(e){return[...e].sort((e,t)=>Rl(e[0],t[0]))}function Rl(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 zl(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 Bl(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function Vl(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 Hl(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 Ul(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=Hl(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 Wl(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=Hl(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 Gl(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 Kl(e){return JSON.stringify(e)??`null`}function ql(){return{atoi:{fn:e=>Bl(e),argTypes:[`string`],returnType:`int`},int:{fn:e=>Ul(e),argTypes:[`value`],returnType:`int`},int64:{fn:e=>Wl(e),argTypes:[`value`]},float64:{fn:e=>Vl(e),argTypes:[`value`],returnType:`float`},toDecimal:{fn:e=>Gl(e),argTypes:[`string`],returnType:`int`},toRawJson:{fn:e=>Kl(e),argTypes:[`serializable`],returnType:`string`}}}const Jl={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function Yl(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*Jl[a],n=n.slice(e[0].length)}return t?-r:r}function Xl(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<Jl.us?`${Math.floor(n)}ns`:n<Jl.ms?Zl(n,Jl.us,3,`µs`):n<Jl.s?Zl(n,Jl.ms,6,`ms`):Ql(n),t?`-${r}`:r}function Zl(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 Ql(e){let t=Math.floor(e/Jl.h);e-=t*Jl.h;let n=Math.floor(e/Jl.m);e-=n*Jl.m;let r=Math.floor(e/Jl.s),i=e-r*Jl.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 $l(e){return e*Jl.s}function eu(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 tu(e,t){let n=t().getTime()-eu(e).getTime();return Xl(Math.round(n/1e3)*1e9)}const nu=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],ru=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],iu=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],au=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function ou(e){return e<10?`0${e}`:String(e)}function su(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function cu(e){return e<10?` ${e}`:String(e)}function lu(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${ou(Math.floor(n/60))}${ou(n%60)}`}function uu(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${ou(Math.floor(n/60))}:${ou(n%60)}`}function du(e){return`${e>=0?`+`:`-`}${ou(Math.floor(Math.abs(e)/60))}`}function fu(e){return e===0?`Z`:lu(e)}function pu(e){return e===0?`Z`:uu(e)}function mu(e){return e===0?`Z`:du(e)}function hu(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const gu=[[`.000000000`,e=>`.${hu(e.ms,9,!1)}`],[`.999999999`,e=>{let t=hu(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${hu(e.ms,6,!1)}`],[`.999999`,e=>{let t=hu(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${su(e.ms)}`],[`.999`,e=>{let t=su(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>nu[e.month-1]??`January`],[`Monday`,e=>iu[e.weekday]??`Monday`],[`Z07:00`,e=>pu(e.offsetMinutes)],[`-07:00`,e=>uu(e.offsetMinutes)],[`Z0700`,e=>fu(e.offsetMinutes)],[`-0700`,e=>lu(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>ru[e.month-1]??`Jan`],[`Mon`,e=>au[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>du(e.offsetMinutes)],[`Z07`,e=>mu(e.offsetMinutes)],[`15`,e=>ou(e.hour)],[`01`,e=>ou(e.month)],[`02`,e=>ou(e.day)],[`_2`,e=>cu(e.day)],[`03`,e=>ou(e.hour12)],[`04`,e=>ou(e.minute)],[`05`,e=>ou(e.second)],[`06`,e=>ou(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 _u(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of gu)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const vu={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function yu(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const bu=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function xu(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=yu(new Intl.DateTimeFormat(`en-US`,{...vu,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=yu(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=Su(yu(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=bu.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 Su(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 Cu(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function wu(e,t){return _u(e,xu(eu(t),Cu()))}function Tu(e,t,n){return _u(e,xu(eu(t),n))}function Eu(e,t){let n=eu(t),r=Yl(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function Du(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:Xl($l(t))}return typeof e==`bigint`?Xl($l(Number(e))):typeof e==`number`?Xl($l(e)):`0s`}const Ou=36e11*24*365,ku=36e11*24*30,Au=36e11*24,ju=36e11,Mu=6e10,Nu=1e9;function Pu(e){let t=Yl(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>Ou?`${Math.floor(n/Ou)}y`:n>ku?`${Math.floor(n/ku)}mo`:n>Au?`${Math.floor(n/Au)}d`:n>ju?`${Math.floor(n/ju)}h`:n>Mu?`${Math.floor(n/Mu)}m`:n>Nu?`${Math.floor(n/Nu)}s`:`0s`}function Fu(e){let t=xu(eu(e),Cu());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function Iu(e,t){let n=xu(eu(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function Lu(e){return e()}const Ru=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],zu=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Bu(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function Vu(e,t,n){return[e.slice(t,t+n),t+n]}function Hu(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 Uu(e,t){for(let[n,r]of Ru.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function Wu(e,t){for(let[n,r]of zu.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function Gu(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 Ku(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 qu(e,t){if(e[t]===` `){let[n,r]=Hu(e,t+1,1,1);return[n,r]}return Hu(e,t,1,2)}function Ju(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]=Hu(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=Hu(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=Hu(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function Yu(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]=Hu(e,t+1,2,2);return[n*r*60,i]}return Ju(e,t,n)}function Xu(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 Zu(e,t,n){let[r,i]=Vu(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function Qu(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=Uu(t,n);return i.month=e,[r,i]}case`Monday`:return[Gu(t,n),i];case`Jan`:{let[e,r]=Wu(t,n);return i.month=e,[r,i]}case`Mon`:return[Ku(t,n),i];case`2006`:{let[e,r]=Hu(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=Hu(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=Hu(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=Hu(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=qu(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=Hu(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=Hu(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=Hu(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=Hu(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=Hu(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=Hu(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=Hu(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=Hu(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=Hu(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[Xu(t,n),i];case`-0700`:{let[e,r]=Ju(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=Ju(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]=Hu(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=Yu(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=Yu(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=Yu(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]=Zu(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]=Zu(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]=Zu(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 $u=`.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 ed(e,t){let n=0,r=0,i=Bu();for(;n<e.length;){let a=!1;for(let o of $u)if(e.startsWith(o,n)){let[e,s]=Qu(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 td(e,t){return ed(e,t)}function nd(e){return String(Math.floor(eu(e).getTime()/1e3))}function rd(e=()=>new Date){return{now:{fn:()=>Lu(e),argTypes:[]},date:{fn:(e,t)=>wu(e,t),argTypes:[`string`,`value`]},dateInZone:{fn:(e,t,n)=>Tu(e,t,n),argTypes:[`string`,`value`,`string`]},dateModify:{fn:(e,t)=>Eu(e,t),argTypes:[`string`,`value`]},htmlDate:{fn:e=>Fu(e),argTypes:[`value`]},htmlDateInZone:{fn:(e,t)=>Iu(e,t),argTypes:[`value`,`string`]},duration:{fn:e=>Du(e),argTypes:[`value`]},durationRound:{fn:e=>Pu(e),argTypes:[`value`]},toDate:{fn:(e,t)=>td(e,t),argTypes:[`string`,`string`]},ago:{fn:t=>tu(t,e),argTypes:[`value`]},unixEpoch:{fn:e=>nd(e),argTypes:[`value`]}}}function id(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 ad(...e){for(let t of e)if(!id(t))return t}function od(e,t){return id(t)?e:t}function sd(e){return JSON.parse(e)}function cd(e,t,n){return Fc(n)?e:t}function ld(e){return JSON.stringify(e)??`null`}function ud(e){return JSON.stringify(e,null,2)??`null`}function dd(){return{default:{fn:(e,t)=>od(e,t),argTypes:[`value`,`truthy`]},empty:{fn:e=>id(e),argTypes:[`truthy`]},coalesce:{fn:(...e)=>ad(...e),argTypes:[`truthy`]},ternary:{fn:(e,t,n)=>cd(e,t,n),argTypes:[`value`,`value`,`truthy`]},fromJson:{fn:e=>sd(e),argTypes:[`string`]},toJson:{fn:e=>ld(e),argTypes:[`serializable`],returnType:`string`},toPrettyJson:{fn:e=>ud(e),argTypes:[`serializable`],returnType:`string`}}}function fd(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function pd(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 fd(...t)}function md(e,t){return e[t]}function hd(e,t){return t in e}function gd(e){return Object.keys(e)}function _d(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 vd(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function yd(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 bd(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function xd(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function Sd(e,t,n){return e[t]=n,e}function Cd(e,t){return delete e[t],e}function wd(e){return Object.values(e)}function Td(){return{dict:{fn:(...e)=>fd(...e),argTypes:[`string`,`value`],argTypePattern:`alternating`},get:{fn:(e,t)=>md(e,t),argTypes:[`dict`,`string`]},set:{fn:(e,t,n)=>Sd(e,t,n),argTypes:[`dict`,`string`,`value`]},unset:{fn:(e,t)=>Cd(e,t),argTypes:[`dict`,`string`]},keys:{fn:e=>gd(e),argTypes:[`dict`]},values:{fn:e=>wd(e),argTypes:[`dict`]},pluck:{fn:(e,...t)=>xd(e,...t),argTypes:[`string`,`dict`]},pick:{fn:(e,...t)=>bd(e,...t),argTypes:[`dict`,`string`]},omit:{fn:(e,...t)=>yd(e,...t),argTypes:[`dict`,`string`]},hasKey:{fn:(e,t)=>hd(e,t),argTypes:[`dict`,`string`]},merge:{fn:(e,...t)=>_d(e,...t),argTypes:[`dict`]},mergeOverwrite:{fn:(e,...t)=>vd(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 Ed(...e){for(let t of e)if(id(t))return!1;return!0}function Dd(...e){for(let t of e)if(!id(t))return!0;return!1}function Od(e,t){return[...e,t]}function kd(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 Ad(e){return e.filter(e=>!id(e))}function jd(...e){let t=[];for(let n of e)t.push(...n);return t}const Md={line:0,column:0,offset:0};function Nd(e,t,n,r){return new Us(e,t,n,r,Md)}function Pd(...e){if(e.length<3)throw Nd(`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(!Id(t))throw Nd(`dig`,e.length-1,`dict`,Ld(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw Nd(`dig`,e,`string`,Ld(r[e]));return Fd(t,n,r,e.length)}function Fd(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(!Id(a))throw Nd(`dig`,r-1,`dict at intermediate key`,Ld(a));return Fd(a,t,n.slice(1),r)}function Id(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function Ld(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function Rd(e){return e[0]}function zd(e,t){return t.some(t=>jc(t,e))}function Bd(e){return e.slice(0,-1)}function Vd(e){return e[e.length-1]}function Hd(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Ud(...e){return e}function Wd(e,t){return[t,...e]}function Gd(e){return e.slice(1)}function Kd(e){return[...e].reverse()}function qd(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function Jd(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function Yd(e){let t=[];for(let n of e)t.some(e=>jc(e,n))||t.push(n);return t}function Xd(e,...t){return e.filter(e=>!t.some(t=>jc(t,e)))}function Zd(){return{list:{fn:(...e)=>Ud(...e),argTypes:[`value`]},first:{fn:e=>Rd(e),argTypes:[`list`]},last:{fn:e=>Vd(e),argTypes:[`list`]},rest:{fn:e=>Gd(e),argTypes:[`list`]},initial:{fn:e=>Bd(e),argTypes:[`list`]},len:{fn:e=>Hd(e),argTypes:[`sized`]},reverse:{fn:e=>Kd(e),argTypes:[`list`]},uniq:{fn:e=>Yd(e),argTypes:[`list`]},without:{fn:(e,...t)=>Xd(e,...t),argTypes:[`list`,`value`]},has:{fn:(e,t)=>zd(e,t),argTypes:[`value`,`list`]},compact:{fn:e=>Ad(e),argTypes:[`list`]},slice:{fn:(e,t,n)=>qd(e,t,n),argTypes:[`list`,`int`,`int`]},concat:{fn:(...e)=>jd(...e),argTypes:[`list`]},chunk:{fn:(e,t)=>kd(e,t),argTypes:[`int`,`list`]},prepend:{fn:(e,t)=>Wd(e,t),argTypes:[`list`,`value`]},append:{fn:(e,t)=>Od(e,t),argTypes:[`list`,`value`]},sortAlpha:{fn:e=>Jd(e),argTypes:[`list`],returnType:`list`},push:{fn:(e,t)=>Od(e,t),argTypes:[`list`,`value`]},tuple:{fn:(...e)=>Ud(...e),argTypes:[`value`]},dig:{fn:(...e)=>Pd(...e),argTypes:[`value`]},all:{fn:(...e)=>Ed(...e),argTypes:[`truthy`],returnType:`bool`},any:{fn:(...e)=>Dd(...e),argTypes:[`truthy`],returnType:`bool`}}}function Qd(...e){return e.reduce((e,t)=>e+t,0)}function $d(e){return e+1}function ef(e){return e+1}function tf(...e){return e.reduce((e,t)=>e+t,0)}function nf(e){return Math.ceil(e)}function rf(e,t){return Math.trunc(e/t)}function af(e,t){return e/t}function of(e){return Math.floor(e)}function sf(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function cf(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function lf(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function uf(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function df(e,t){return e%t}function ff(...e){return e.reduce((e,t)=>e*t,1)}function pf(...e){return e.reduce((e,t)=>e*t,1)}function mf(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function hf(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 gf(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),hf(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return hf(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:hf(n,i+t,r).join(` `)}default:return``}}function _f(e,t){return e-t}function vf(e,t){return e-t}function yf(e){return hf(0,e,e<0?-1:1)}function bf(){return{add:{fn:(...e)=>Qd(...e),argTypes:[`int`]},sub:{fn:(e,t)=>_f(e,t),argTypes:[`int`,`int`]},mul:{fn:(...e)=>ff(...e),argTypes:[`int`]},div:{fn:(e,t)=>rf(e,t),argTypes:[`int`,`int`]},mod:{fn:(e,t)=>df(e,t),argTypes:[`int`,`int`]},min:{fn:(...e)=>lf(...e),argTypes:[`int`]},max:{fn:(...e)=>sf(...e),argTypes:[`int`]},floor:{fn:e=>of(e),argTypes:[`float`]},ceil:{fn:e=>nf(e),argTypes:[`float`]},round:{fn:(e,t)=>mf(e,t),argTypes:[`float`,`int`]},addf:{fn:(...e)=>tf(...e),argTypes:[`float`]},subf:{fn:(e,t)=>vf(e,t),argTypes:[`float`,`float`]},mulf:{fn:(...e)=>pf(...e),argTypes:[`float`]},divf:{fn:(e,t)=>af(e,t),argTypes:[`float`,`float`]},add1:{fn:e=>$d(e),argTypes:[`int`]},add1f:{fn:e=>ef(e),argTypes:[`float`]},maxf:{fn:(...e)=>cf(...e),argTypes:[`float`]},minf:{fn:(...e)=>uf(...e),argTypes:[`float`]},biggest:{fn:(...e)=>sf(...e),argTypes:[`int`]},seq:{fn:(...e)=>gf(...e),argTypes:[`int`],returnType:`string`},until:{fn:e=>yf(e),argTypes:[`int`],returnType:`list`},untilStep:{fn:(e,t,n)=>hf(e,t,n),argTypes:[`int`,`int`,`int`],returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function xf(e,t){return t.length<=e||e<4?t:`${t.slice(0,e-3)}...`}function Sf(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},Cf=/^[-_\s]$/,wf=/^\p{P}$/u,Tf=/^\p{L}$/u,Ef=/^\p{Lu}$/u,Df=/^\p{N}$/u;function Of(e){return e!==void 0&&Cf.test(e)}function kf(e){return e!==void 0&&Tf.test(e)}function Af(e){return e!==void 0&&Ef.test(e)}function jf(e){return e!==void 0&&Df.test(e)}function Mf(e){return e!==void 0&&wf.test(e)}function Nf(e,t){if(t>=e.length)return{word:{wt:q.Invalid,text:``},next:t};let n=e[t],r=t+1;if(Of(n)){for(;r<e.length&&Of(e[r]);)r++;return{word:{wt:q.Connector,text:e.slice(t,r).join(``)},next:r}}if(Mf(n)){for(;r<e.length&&Mf(e[r]);)r++;return{word:{wt:q.Punct,text:e.slice(t,r).join(``)},next:r}}if(Af(n)){if(r>=e.length)return{word:{wt:q.UpperCase,text:n},next:r};if(Af(e[r])){let n=r;for(;n<e.length&&Af(e[n]);)n++;return n<e.length&&kf(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(kf(e[r])){let n=r+1;for(;n<e.length&&kf(e[n])&&!Af(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(kf(n)){for(;r<e.length&&kf(e[r])&&!Af(e[r]);)r++;return{word:{wt:q.Alphabet,text:e.slice(t,r).join(``)},next:r}}if(jf(n)){for(;r<e.length&&jf(e[r]);)r++;return{word:{wt:q.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!Of(e[r])&&!kf(e[r])&&!jf(e[r])&&!Mf(e[r]);)r++;return{word:{wt:q.Other,text:e.slice(t,r).join(``)},next:r}}function Pf(e,t,n){if(t.wt!==q.UpperCase&&t.wt!==q.Connector){e.push(t.text);return}for(let r of t.text)Of(r)?e.push(n):Af(r)?e.push(r.toLowerCase()):e.push(r)}function Ff(e,t){if(e.length===0)return``;let n=Array.from(e),r=[],{word:i,next:a}=Nf(n,0);for(;a<n.length;){i.wt!==q.Connector&&Pf(r,i,t);let e=i,o=i;if({word:i,next:a}=Nf(n,a),e.wt===q.Number){for(;i.wt===q.Alphabet||i.wt===q.Number;)Pf(r,i,t),{word:i,next:a}=Nf(n,a);i.wt!==q.Invalid&&i.wt!==q.Punct&&i.wt!==q.Connector&&r.push(t);continue}if(e.wt===q.Connector){Pf(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}=Nf(n,a),i.wt!==q.Alphabet){Pf(r,s,t),i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}for(r.push(t),Pf(r,s,t);i.wt===q.Alphabet||i.wt===q.Number;)Pf(r,i,t),{word:i,next:a}=Nf(n,a);i.wt!==q.Invalid&&i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t)}return Pf(r,i,t),r.join(``).toLowerCase()}function If(e){if(e.length===0)return``;let t=Array.from(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!Of(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++,Of(i)&&Of(e)){n.push(e);continue}Of(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function Lf(e){return If(e)}function Rf(...e){return e.join(` `)}function zf(e,t){return t.includes(e)}function Bf(e,t){return t.startsWith(e)}function Vf(e,t){return t.endsWith(e)}function Hf(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
34
+ `?(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 lc(e){return e===` `||e===` `||e===`\r`||e===`
35
+ `}function uc(e){return e===`+`||e===`-`}function dc(e){return e>=`0`&&e<=`9`}function fc(e){return dc(e)||e>=`a`&&e<=`f`||e>=`A`&&e<=`F`}function pc(e){return e>=`0`&&e<=`7`}function mc(e){return e===`0`||e===`1`}function hc(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`}function gc(e){return hc(e)||e===`_`}function _c(e){return gc(e)||dc(e)}let vc,yc;function bc(e,t){return yc(e,t)}var xc=class e{static EMPTY=new e(new Map,void 0);#e;#t;constructor(e,t){this.#e=e,this.#t=t}static{vc=(t,n)=>new e(t,n),yc=(e,t)=>e.#e.get(t)??(e.#t&&yc(e.#t,t))}has(e){return yc(this,e)!==void 0}};function Sc(e,t,n=xc.EMPTY){return new Cc(e,t,n).parseTemplate()}var Cc=class{lex;buf=[];defines=new Map;inherit;source;rangeDepth=0;constructor(e,t,n){this.source=e,this.inherit=n,this.lex=t?new cc(e,t):new cc(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:Ec(n)});return n}errAt(e,t,n={}){return new Xs(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 ${Ec(e)}`,{found:Ec(e)})}return{root:e,defines:vc(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=Tc(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 wc(e,t);let r=this.parseAction();r!==null&&t.push(r);continue}throw this.errAt(n,`unexpected ${Ec(n)} at top level`,{found:Ec(n)})}return wc(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 Xs(`{{${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 Xs(`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:Ec(e)});return Pc(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(!Dc(e.type))throw this.errAt(e,"missing command after `|`",{expected:`command`,found:Ec(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=[Oc(this.next())];for(;this.peek().type===`Comma`;)this.next(),n.push(Oc(this.expect(`Variable`,`$variable`)));return{vars:n,isAssign:this.next().type===`Assign`}}parseCommand(){let e=this.peek().pos,t=[this.parsePrimary()];for(;Dc(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 Oc(e);case`Identifier`:return{type:`Identifier`,pos:e.pos,ident:e.value};case`String`:return{type:`String`,pos:e.pos,raw:e.value,value:Pc(e.value,e.pos,this.source)};case`Number`:return Ac(e);case`Char`:return jc(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 ${Ec(e)}`,{expected:`command argument`,found:Ec(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 wc(e,t){return{type:`List`,pos:e,nodes:t}}function Tc(e){return{trimLeft:e.trimLeft===!0,trimRight:e.trimRight===!0}}function Ec(e){return e.type===`EOF`?`end of input`:e.value||e.type}function Dc(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 Oc(e){return{type:`Variable`,pos:e.pos,idents:kc(e.value)}}function kc(e){let t=e.indexOf(`.`);return t===-1?[e]:[e.slice(0,t),...e.slice(t+1).split(`.`)]}function Ac(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=Mc(i);return{...s,intValue:e}}if(a){let e=Nc(i);return{...s,floatValue:e}}let c=Nc(i);return{...s,complexValue:[0,c]}}function jc(e,t){let n=Fc(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 Mc(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 Nc(e){return Number(e)}function Pc(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+=`
36
+ `;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 Xs(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function Fc(e,t,n){let r=Pc(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new Xs(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function Ic(e,t){if(t(e)!==!1)for(let n of Lc(e))Ic(n,t)}function Lc(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 ac(e)}}const Rc=Symbol(`go-template-js.MISSING`);function zc(e,t){if(e==null)return Rc;if(e instanceof Map)return e.has(t)?e.get(t):Rc;if(Array.isArray(e))return Rc;if(typeof e==`object`){let n=e;return t in n?n[t]:Rc}return Rc}function Bc(e,t){let n=e;for(let e of t){if(n===Rc)return Rc;n=zc(n,e)}return n}function Vc(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)=>Vc(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)||!Vc(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=>Vc(e[n],t[n])):!1}return!1}const Hc=new WeakSet;function Uc(e){return Hc.add(e),e}function Wc(e){return Hc.has(e)}function Gc(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 Kc(e,t){return{eq:{fn:(e,...t)=>t.some(t=>Yc(e,t)),argTypes:[`comparable`]},ne:{fn:(e,t)=>!Yc(e,t),argTypes:[`comparable`,`comparable`]},lt:{fn:(e,t)=>Xc(e,t)<0,argTypes:[`ordered`,`ordered`]},le:{fn:(e,t)=>Xc(e,t)<=0,argTypes:[`ordered`,`ordered`]},gt:{fn:(e,t)=>Xc(e,t)>0,argTypes:[`ordered`,`ordered`]},ge:{fn:(e,t)=>Xc(e,t)>=0,argTypes:[`ordered`,`ordered`]},len:{fn:e=>Zc(e),argTypes:[`sized`]},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=Qc(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)=>tl(t,e),argTypes:[`stringifiable`],returnType:`string`},println:{fn:(...t)=>`${tl(t,e)}\n`,argTypes:[`stringifiable`],returnType:`string`},printf:{fn:(n,...r)=>ul(n,r,e,t),argTypes:[`string`,`stringifiable`],returnType:`string`},toString:{fn:n=>pl(n,e,t),argTypes:[`value`],returnType:`string`},toStrings:{fn:n=>n.map(n=>pl(n,e,t)),argTypes:[`list`]},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`]},html:{fn:(...t)=>il(tl(t,e)),argTypes:[`stringifiable`],returnType:`string`},js:{fn:(...t)=>sl(tl(t,e)),argTypes:[`stringifiable`],returnType:`string`},urlquery:{fn:(...t)=>ll(tl(t,e)),argTypes:[`stringifiable`],returnType:`string`},not:{fn:e=>!Gc(e),argTypes:[`truthy`]}}}function qc(){return{and:Uc({argTypes:[`truthy`],fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!Gc(t))return t;return t}}),or:Uc({argTypes:[`truthy`],fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),Gc(t))return t;return t}})}}function Jc(e,t){return{...Kc(e,t),...qc()}}function Yc(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):Vc(e,t)}function Xc(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 Zc(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Qc(e,t){if(Array.isArray(e)){let n=Number(t);if(!Number.isInteger(n))throw Error(`index: array index must be integer, got ${$c(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 ${$c(t)}`);return e[t]}throw Error(`index: cannot index ${$c(e)}`)}function $c(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function el(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 tl(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+=nl(a,t),r=o}return n}function nl(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const rl={"\0":`�`,'"':`&#34;`,"'":`&#39;`,"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function il(e){return e.replace(/[\0"'&<>]/g,e=>rl[e]??e)}const al={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},ol=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function sl(e){let t=``;for(let n of e){let e=al[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!ol.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const cl=new TextEncoder;function ll(e){let t=``,n=cl.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 ul(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+=dl(l??``,u,d,n,r),o=c+1}return i}function dl(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?fl(t,n):fl(t,nl(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${el(n)}=${nl(n,r)})`:fl(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return fl(t,pl(n,r,i));case`q`:return fl(t,JSON.stringify(nl(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${el(n)}=${nl(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return fl(t,Number(n).toFixed(i))}case`t`:return fl(t,Gc(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 fl(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${el(n)}=${nl(n,r)})`:typeof n==`bigint`?fl(t,n.toString(16)):fl(t,Math.trunc(n).toString(16));default:return`%!${e}(${el(n)}=${nl(n,r)})`}}function fl(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 pl(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>pl(e,t,n)).join(` `)}]`:e instanceof Map?ml([...e.entries()],t,n):hl(e)?ml(Object.entries(e),t,n):String(e)}function ml(e,t,n){let r=e=>pl(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 hl(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 gl(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function _l(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function vl(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 yl(e,t,n){e.vars.set(t,n)}const bl=new Set([`default`,`zero`,`error`]);function xl(e){if(e===void 0)return`default`;if(bl.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${Sl(e)}`)}function Sl(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 Cl(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${Sl(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${Sl(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${Sl(e.right)}`);return{left:e.left,right:e.right}}}const wl=Object.freeze({kind:`break`}),Tl=Object.freeze({kind:`continue`}),El={kind:`none`};let Dl;(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{Dl=(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 Ol(e){let t=new Set,n=e=>{Ic(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 kl={kind:`dynamic`};function Al(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=Yl(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:kl}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return kl;let t=e.cmds[0];if(t===void 0)return kl;let n=t.args[0];return n===void 0||n.type!==`Identifier`?kl:{kind:`call`,name:n.ident,args:t.args.slice(1).map(Al)}}default:return kl}}function jl(e){let t=[],n=e=>{Ic(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(Al);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 Ml=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??zl,this.isT=e.isT??Nl,this.missingKey=xl(e.missingKey),this.delims=Cl(e.delims),this.funcs={...Jc(this.toString,this.isT),...e.funcs??{}}}parse(e,t){let n=Sc(e,this.delims,t);return Dl(n.source,e=>this.evalParsed(n,e),n.defines,Ol(n),jl(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=gl(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 wl;case`Continue`:throw Tl;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 Zs(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:ac(e)}}evalIf(e,t,n){Gc(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(Gc(r)){let i=_l(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=Kl(r);try{if(a.length===0){e.elseList&&this.evalList(e.elseList,t,n);return}for(let[r,o]of a){let a=_l(t,o);if(i.length===1)yl(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;yl(a,e,r),yl(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===Tl)continue;throw e}}}catch(e){if(e===wl)return;throw e}}evalTemplateInvoke(e,t,n){let r=bc(n.defines,e.name);if(!r)throw new Zs(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=_l(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=_l(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=bc(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 Zs(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,El);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)yl(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 Zs(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new Zs(`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 Qs(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=Wc(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)}Fl(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 $s?new $s(t.funcName,t.argIndex,t.expected,t.receivedSummary,e.pos,{source:n.source}):t instanceof tc?new tc(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 Yl(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 Qs(e.ident,e.pos,{source:n.source,available:Object.keys(this.funcs)});return Fl(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 Zs(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=Bc(e,t);if(i!==Rc)return i;if(this.missingKey===`error`)throw new ec(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=vl(t,i);if(!a.found)throw new Zs(`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(pl(e,this.toString,this.isT)))}};const Nl=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function Pl(e){return new Ml(e)}function Fl(e,t,n,r,i,a=zl,o,s=Rl,c=Nl){let l=Il(t,o),u=-1,d=-1;for(let t=0;t<n.length;t++){let o=l(t),f=n[t];if(!Ll(o,f,a,c))throw new $s(e,t+1,Wl(o),Gl(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(!Vl(n[u],f))throw new $s(e,t+1,`${Wl(`ordered`)} of the same kind as ${Gl(n[u])}`,Gl(f),r,{source:i})}if(o===`comparable`){if(d===-1)d=t;else if(!Hl(n[d],f))throw new $s(e,t+1,`${Wl(`comparable`)} of the same kind as ${Gl(n[d])}`,Gl(f),r,{source:i})}}}function Il(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 Ll(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 hl(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||hl(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||hl(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||hl(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 Bl(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Rl(e){return e}function zl(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 $s(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,Gl(e),{line:0,column:0,offset:0})}function Bl(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function Vl(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function Hl(e,t){let n=Ul(e),r=Ul(t);return n===`nil`||r===`nil`?!0:n===r}function Ul(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 Wl(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 Gl(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Kl(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?ql([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?ql(Object.entries(e)):[]}function ql(e){return[...e].sort((e,t)=>Jl(e[0],t[0]))}function Jl(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 Yl(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 Xl(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function Zl(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 Ql(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 $l(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=Ql(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 eu(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=Ql(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 tu(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 nu(e){return JSON.stringify(e)??`null`}function ru(){return{atoi:{fn:e=>Xl(e),argTypes:[`string`],returnType:`int`},int:{fn:e=>$l(e),argTypes:[`value`],returnType:`int`},int64:{fn:e=>eu(e),argTypes:[`value`]},float64:{fn:e=>Zl(e),argTypes:[`value`],returnType:`float`},toDecimal:{fn:e=>tu(e),argTypes:[`string`],returnType:`int`},toRawJson:{fn:e=>nu(e),argTypes:[`serializable`],returnType:`string`}}}const iu={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function au(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*iu[a],n=n.slice(e[0].length)}return t?-r:r}function ou(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<iu.us?`${Math.floor(n)}ns`:n<iu.ms?su(n,iu.us,3,`µs`):n<iu.s?su(n,iu.ms,6,`ms`):cu(n),t?`-${r}`:r}function su(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 cu(e){let t=Math.floor(e/iu.h);e-=t*iu.h;let n=Math.floor(e/iu.m);e-=n*iu.m;let r=Math.floor(e/iu.s),i=e-r*iu.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 lu(e){return e*iu.s}function uu(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 du(e,t){let n=t().getTime()-uu(e).getTime();return ou(Math.round(n/1e3)*1e9)}const fu=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],pu=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],mu=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],hu=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function gu(e){return e<10?`0${e}`:String(e)}function _u(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function vu(e){return e<10?` ${e}`:String(e)}function yu(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${gu(Math.floor(n/60))}${gu(n%60)}`}function bu(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${gu(Math.floor(n/60))}:${gu(n%60)}`}function xu(e){return`${e>=0?`+`:`-`}${gu(Math.floor(Math.abs(e)/60))}`}function Su(e){return e===0?`Z`:yu(e)}function Cu(e){return e===0?`Z`:bu(e)}function wu(e){return e===0?`Z`:xu(e)}function Tu(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const Eu=[[`.000000000`,e=>`.${Tu(e.ms,9,!1)}`],[`.999999999`,e=>{let t=Tu(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${Tu(e.ms,6,!1)}`],[`.999999`,e=>{let t=Tu(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${_u(e.ms)}`],[`.999`,e=>{let t=_u(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>fu[e.month-1]??`January`],[`Monday`,e=>mu[e.weekday]??`Monday`],[`Z07:00`,e=>Cu(e.offsetMinutes)],[`-07:00`,e=>bu(e.offsetMinutes)],[`Z0700`,e=>Su(e.offsetMinutes)],[`-0700`,e=>yu(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>pu[e.month-1]??`Jan`],[`Mon`,e=>hu[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>xu(e.offsetMinutes)],[`Z07`,e=>wu(e.offsetMinutes)],[`15`,e=>gu(e.hour)],[`01`,e=>gu(e.month)],[`02`,e=>gu(e.day)],[`_2`,e=>vu(e.day)],[`03`,e=>gu(e.hour12)],[`04`,e=>gu(e.minute)],[`05`,e=>gu(e.second)],[`06`,e=>gu(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 Du(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of Eu)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const Ou={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function ku(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const Au=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function ju(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=ku(new Intl.DateTimeFormat(`en-US`,{...Ou,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=ku(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=Mu(ku(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=Au.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 Mu(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 Nu(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function Pu(e,t){return Du(e,ju(uu(t),Nu()))}function Fu(e,t,n){return Du(e,ju(uu(t),n))}function Iu(e,t){let n=uu(t),r=au(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function Lu(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:ou(lu(t))}return typeof e==`bigint`?ou(lu(Number(e))):typeof e==`number`?ou(lu(e)):`0s`}const Ru=36e11*24*365,zu=36e11*24*30,Bu=36e11*24,Vu=36e11,Hu=6e10,Uu=1e9;function Wu(e){let t=au(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>Ru?`${Math.floor(n/Ru)}y`:n>zu?`${Math.floor(n/zu)}mo`:n>Bu?`${Math.floor(n/Bu)}d`:n>Vu?`${Math.floor(n/Vu)}h`:n>Hu?`${Math.floor(n/Hu)}m`:n>Uu?`${Math.floor(n/Uu)}s`:`0s`}function Gu(e){let t=ju(uu(e),Nu());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function Ku(e,t){let n=ju(uu(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function qu(e){return e()}const Ju=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Yu=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Xu(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function Zu(e,t,n){return[e.slice(t,t+n),t+n]}function Qu(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 $u(e,t){for(let[n,r]of Ju.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function ed(e,t){for(let[n,r]of Yu.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function td(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 nd(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 rd(e,t){if(e[t]===` `){let[n,r]=Qu(e,t+1,1,1);return[n,r]}return Qu(e,t,1,2)}function id(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]=Qu(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=Qu(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=Qu(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function ad(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]=Qu(e,t+1,2,2);return[n*r*60,i]}return id(e,t,n)}function od(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 sd(e,t,n){let[r,i]=Zu(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function cd(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=$u(t,n);return i.month=e,[r,i]}case`Monday`:return[td(t,n),i];case`Jan`:{let[e,r]=ed(t,n);return i.month=e,[r,i]}case`Mon`:return[nd(t,n),i];case`2006`:{let[e,r]=Qu(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=Qu(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=Qu(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=Qu(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=rd(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=Qu(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=Qu(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=Qu(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=Qu(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=Qu(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=Qu(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=Qu(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=Qu(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=Qu(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[od(t,n),i];case`-0700`:{let[e,r]=id(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=id(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]=Qu(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=ad(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=ad(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=ad(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]=sd(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]=sd(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]=sd(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 ld=`.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 ud(e,t){let n=0,r=0,i=Xu();for(;n<e.length;){let a=!1;for(let o of ld)if(e.startsWith(o,n)){let[e,s]=cd(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 dd(e,t){return ud(e,t)}function fd(e){return String(Math.floor(uu(e).getTime()/1e3))}function pd(e=()=>new Date){return{now:{fn:()=>qu(e),argTypes:[]},date:{fn:(e,t)=>Pu(e,t),argTypes:[`string`,`value`]},dateInZone:{fn:(e,t,n)=>Fu(e,t,n),argTypes:[`string`,`value`,`string`]},dateModify:{fn:(e,t)=>Iu(e,t),argTypes:[`string`,`value`]},htmlDate:{fn:e=>Gu(e),argTypes:[`value`]},htmlDateInZone:{fn:(e,t)=>Ku(e,t),argTypes:[`value`,`string`]},duration:{fn:e=>Lu(e),argTypes:[`value`]},durationRound:{fn:e=>Wu(e),argTypes:[`value`]},toDate:{fn:(e,t)=>dd(e,t),argTypes:[`string`,`string`]},ago:{fn:t=>du(t,e),argTypes:[`value`]},unixEpoch:{fn:e=>fd(e),argTypes:[`value`]}}}function md(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 hd(...e){for(let t of e)if(!md(t))return t}function gd(e,t){return md(t)?e:t}function _d(e){return JSON.parse(e)}function vd(e,t,n){return Gc(n)?e:t}function yd(e){return JSON.stringify(e)??`null`}function bd(e){return JSON.stringify(e,null,2)??`null`}function xd(){return{default:{fn:(e,t)=>gd(e,t),argTypes:[`value`,`truthy`]},empty:{fn:e=>md(e),argTypes:[`truthy`]},coalesce:{fn:(...e)=>hd(...e),argTypes:[`truthy`]},ternary:{fn:(e,t,n)=>vd(e,t,n),argTypes:[`value`,`value`,`truthy`]},fromJson:{fn:e=>_d(e),argTypes:[`string`]},toJson:{fn:e=>yd(e),argTypes:[`serializable`],returnType:`string`},toPrettyJson:{fn:e=>bd(e),argTypes:[`serializable`],returnType:`string`}}}function Sd(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function Cd(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 Sd(...t)}function wd(e,t){return e[t]}function Td(e,t){return t in e}function Ed(e){return Object.keys(e)}function Dd(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 Od(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function kd(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 Ad(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function jd(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function Md(e,t,n){return e[t]=n,e}function Nd(e,t){return delete e[t],e}function Pd(e){return Object.values(e)}function Fd(){return{dict:{fn:(...e)=>Sd(...e),argTypes:[`string`,`value`],argTypePattern:`alternating`},get:{fn:(e,t)=>wd(e,t),argTypes:[`dict`,`string`]},set:{fn:(e,t,n)=>Md(e,t,n),argTypes:[`dict`,`string`,`value`]},unset:{fn:(e,t)=>Nd(e,t),argTypes:[`dict`,`string`]},keys:{fn:e=>Ed(e),argTypes:[`dict`]},values:{fn:e=>Pd(e),argTypes:[`dict`]},pluck:{fn:(e,...t)=>jd(e,...t),argTypes:[`string`,`dict`]},pick:{fn:(e,...t)=>Ad(e,...t),argTypes:[`dict`,`string`]},omit:{fn:(e,...t)=>kd(e,...t),argTypes:[`dict`,`string`]},hasKey:{fn:(e,t)=>Td(e,t),argTypes:[`dict`,`string`]},merge:{fn:(e,...t)=>Dd(e,...t),argTypes:[`dict`]},mergeOverwrite:{fn:(e,...t)=>Od(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 Id(...e){for(let t of e)if(md(t))return!1;return!0}function Ld(...e){for(let t of e)if(!md(t))return!0;return!1}function Rd(e,t){return[...e,t]}function zd(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 Bd(e){return e.filter(e=>!md(e))}function Vd(...e){let t=[];for(let n of e)t.push(...n);return t}const Hd={line:0,column:0,offset:0};function Ud(e,t,n,r){return new $s(e,t,n,r,Hd)}function Wd(...e){if(e.length<3)throw Ud(`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(!Kd(t))throw Ud(`dig`,e.length-1,`dict`,qd(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw Ud(`dig`,e,`string`,qd(r[e]));return Gd(t,n,r,e.length)}function Gd(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(!Kd(a))throw Ud(`dig`,r-1,`dict at intermediate key`,qd(a));return Gd(a,t,n.slice(1),r)}function Kd(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function qd(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function Jd(e){return e[0]}function Yd(e,t){return t.some(t=>Vc(t,e))}function Xd(e){return e.slice(0,-1)}function Zd(e){return e[e.length-1]}function Qd(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function $d(...e){return e}function ef(e,t){return[t,...e]}function tf(e){return e.slice(1)}function nf(e){return[...e].reverse()}function rf(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function af(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function of(e){let t=[];for(let n of e)t.some(e=>Vc(e,n))||t.push(n);return t}function sf(e,...t){return e.filter(e=>!t.some(t=>Vc(t,e)))}function cf(){return{list:{fn:(...e)=>$d(...e),argTypes:[`value`]},first:{fn:e=>Jd(e),argTypes:[`list`]},last:{fn:e=>Zd(e),argTypes:[`list`]},rest:{fn:e=>tf(e),argTypes:[`list`]},initial:{fn:e=>Xd(e),argTypes:[`list`]},len:{fn:e=>Qd(e),argTypes:[`sized`]},reverse:{fn:e=>nf(e),argTypes:[`list`]},uniq:{fn:e=>of(e),argTypes:[`list`]},without:{fn:(e,...t)=>sf(e,...t),argTypes:[`list`,`value`]},has:{fn:(e,t)=>Yd(e,t),argTypes:[`value`,`list`]},compact:{fn:e=>Bd(e),argTypes:[`list`]},slice:{fn:(e,t,n)=>rf(e,t,n),argTypes:[`list`,`int`,`int`]},concat:{fn:(...e)=>Vd(...e),argTypes:[`list`]},chunk:{fn:(e,t)=>zd(e,t),argTypes:[`int`,`list`]},prepend:{fn:(e,t)=>ef(e,t),argTypes:[`list`,`value`]},append:{fn:(e,t)=>Rd(e,t),argTypes:[`list`,`value`]},sortAlpha:{fn:e=>af(e),argTypes:[`list`],returnType:`list`},push:{fn:(e,t)=>Rd(e,t),argTypes:[`list`,`value`]},tuple:{fn:(...e)=>$d(...e),argTypes:[`value`]},dig:{fn:(...e)=>Wd(...e),argTypes:[`value`]},all:{fn:(...e)=>Id(...e),argTypes:[`truthy`],returnType:`bool`},any:{fn:(...e)=>Ld(...e),argTypes:[`truthy`],returnType:`bool`}}}function lf(...e){return e.reduce((e,t)=>e+t,0)}function uf(e){return e+1}function df(e){return e+1}function ff(...e){return e.reduce((e,t)=>e+t,0)}function pf(e){return Math.ceil(e)}function mf(e,t){return Math.trunc(e/t)}function hf(e,t){return e/t}function gf(e){return Math.floor(e)}function _f(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function vf(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function yf(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function bf(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function xf(e,t){return e%t}function Sf(...e){return e.reduce((e,t)=>e*t,1)}function Cf(...e){return e.reduce((e,t)=>e*t,1)}function wf(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function Tf(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 Ef(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),Tf(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return Tf(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:Tf(n,i+t,r).join(` `)}default:return``}}function Df(e,t){return e-t}function Of(e,t){return e-t}function kf(e){return Tf(0,e,e<0?-1:1)}function Af(){return{add:{fn:(...e)=>lf(...e),argTypes:[`int`]},sub:{fn:(e,t)=>Df(e,t),argTypes:[`int`,`int`]},mul:{fn:(...e)=>Sf(...e),argTypes:[`int`]},div:{fn:(e,t)=>mf(e,t),argTypes:[`int`,`int`]},mod:{fn:(e,t)=>xf(e,t),argTypes:[`int`,`int`]},min:{fn:(...e)=>yf(...e),argTypes:[`int`]},max:{fn:(...e)=>_f(...e),argTypes:[`int`]},floor:{fn:e=>gf(e),argTypes:[`float`]},ceil:{fn:e=>pf(e),argTypes:[`float`]},round:{fn:(e,t)=>wf(e,t),argTypes:[`float`,`int`]},addf:{fn:(...e)=>ff(...e),argTypes:[`float`]},subf:{fn:(e,t)=>Of(e,t),argTypes:[`float`,`float`]},mulf:{fn:(...e)=>Cf(...e),argTypes:[`float`]},divf:{fn:(e,t)=>hf(e,t),argTypes:[`float`,`float`]},add1:{fn:e=>uf(e),argTypes:[`int`]},add1f:{fn:e=>df(e),argTypes:[`float`]},maxf:{fn:(...e)=>vf(...e),argTypes:[`float`]},minf:{fn:(...e)=>bf(...e),argTypes:[`float`]},biggest:{fn:(...e)=>_f(...e),argTypes:[`int`]},seq:{fn:(...e)=>Ef(...e),argTypes:[`int`],returnType:`string`},until:{fn:e=>kf(e),argTypes:[`int`],returnType:`list`},untilStep:{fn:(e,t,n)=>Tf(e,t,n),argTypes:[`int`,`int`,`int`],returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function jf(e,t){return t.length<=e||e<4?t:`${t.slice(0,e-3)}...`}function Mf(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},Nf=/^[-_\s]$/,Pf=/^\p{P}$/u,Ff=/^\p{L}$/u,If=/^\p{Lu}$/u,Lf=/^\p{N}$/u;function Rf(e){return e!==void 0&&Nf.test(e)}function zf(e){return e!==void 0&&Ff.test(e)}function Bf(e){return e!==void 0&&If.test(e)}function Vf(e){return e!==void 0&&Lf.test(e)}function Hf(e){return e!==void 0&&Pf.test(e)}function Uf(e,t){if(t>=e.length)return{word:{wt:q.Invalid,text:``},next:t};let n=e[t],r=t+1;if(Rf(n)){for(;r<e.length&&Rf(e[r]);)r++;return{word:{wt:q.Connector,text:e.slice(t,r).join(``)},next:r}}if(Hf(n)){for(;r<e.length&&Hf(e[r]);)r++;return{word:{wt:q.Punct,text:e.slice(t,r).join(``)},next:r}}if(Bf(n)){if(r>=e.length)return{word:{wt:q.UpperCase,text:n},next:r};if(Bf(e[r])){let n=r;for(;n<e.length&&Bf(e[n]);)n++;return n<e.length&&zf(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(zf(e[r])){let n=r+1;for(;n<e.length&&zf(e[n])&&!Bf(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(zf(n)){for(;r<e.length&&zf(e[r])&&!Bf(e[r]);)r++;return{word:{wt:q.Alphabet,text:e.slice(t,r).join(``)},next:r}}if(Vf(n)){for(;r<e.length&&Vf(e[r]);)r++;return{word:{wt:q.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!Rf(e[r])&&!zf(e[r])&&!Vf(e[r])&&!Hf(e[r]);)r++;return{word:{wt:q.Other,text:e.slice(t,r).join(``)},next:r}}function Wf(e,t,n){if(t.wt!==q.UpperCase&&t.wt!==q.Connector){e.push(t.text);return}for(let r of t.text)Rf(r)?e.push(n):Bf(r)?e.push(r.toLowerCase()):e.push(r)}function Gf(e,t){if(e.length===0)return``;let n=Array.from(e),r=[],{word:i,next:a}=Uf(n,0);for(;a<n.length;){i.wt!==q.Connector&&Wf(r,i,t);let e=i,o=i;if({word:i,next:a}=Uf(n,a),e.wt===q.Number){for(;i.wt===q.Alphabet||i.wt===q.Number;)Wf(r,i,t),{word:i,next:a}=Uf(n,a);i.wt!==q.Invalid&&i.wt!==q.Punct&&i.wt!==q.Connector&&r.push(t);continue}if(e.wt===q.Connector){Wf(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}=Uf(n,a),i.wt!==q.Alphabet){Wf(r,s,t),i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}for(r.push(t),Wf(r,s,t);i.wt===q.Alphabet||i.wt===q.Number;)Wf(r,i,t),{word:i,next:a}=Uf(n,a);i.wt!==q.Invalid&&i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t)}return Wf(r,i,t),r.join(``).toLowerCase()}function Kf(e){if(e.length===0)return``;let t=Array.from(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!Rf(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++,Rf(i)&&Rf(e)){n.push(e);continue}Rf(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function qf(e){return Kf(e)}function Jf(...e){return e.join(` `)}function Yf(e,t){return t.includes(e)}function Xf(e,t){return t.startsWith(e)}function Zf(e,t){return t.endsWith(e)}function Qf(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
37
37
  `).map(e=>n+e).join(`
38
- `)}function Uf(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 Wf(e,t){let n=[];for(let e of t){if(typeof e==`object`&&e)throw Nd(`join`,2,`list of strings/primitives`,`list element of type ${Gf(e)}`);n.push(String(e))}return n.join(e)}function Gf(e){return Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:`object`}function Kf(e){return Ff(e,`-`)}function qf(e){return e.toLowerCase()}function Jf(e,t){return`\n${Hf(e,t)}`}function Yf(e){return e.replace(/\s+/g,``)}function Xf(e,t,n){return n===1?e:t}function Zf(...e){return e.map(e=>`"${e}"`).join(` `)}function Qf(e){return e.replace(/[\\.+*?()|[\]{}^$]/g,`\\$&`)}function $f(e,t){return t.repeat(Math.max(0,e))}function ep(e,t,n){return n.split(e).join(t)}function tp(e){return Ff(e,`_`)}function np(e,t){let n=t.split(e),r={};for(let e=0;e<n.length;e++)r[`_${e}`]=n[e];return r}function rp(e,t){return t.split(e)}function ip(e,t,n){let r=ap(n,e,t),i={};for(let e=0;e<r.length;e++)i[`_${e}`]=r[e]??``;return i}function ap(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 op(...e){return e.map(e=>`'${e}'`).join(` `)}function sp(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 cp(e){let t=``;for(let n of e)lp(n)?t+=n.toLowerCase():up(n)?t+=n.toUpperCase():t+=n;return t}function lp(e){return e!==e.toLowerCase()&&e===e.toUpperCase()}function up(e){return e!==e.toUpperCase()&&e===e.toLowerCase()}function dp(e){return e.replace(/\b([a-zA-Z])/g,e=>e.toUpperCase())}function fp(e){return e.trim()}function pp(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 mp(e,t){return t.startsWith(e)?t.slice(e.length):t}function hp(e,t){return t.endsWith(e)?t.slice(0,t.length-e.length):t}function gp(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 _p(e){return e.replace(/\b([A-Z])/g,e=>e.toLowerCase())}function vp(e){return e.toUpperCase()}function yp(e,t){return bp(e,`
39
- `,t)}function bp(e,t,n){if(e<=0)return n;let r=[];for(let t of n.split(`
40
- `)){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 xp(e,t,n){return bp(e,t,n)}function Sp(){return{abbrev:{fn:(e,t)=>xf(e,t),argTypes:[`int`,`string`]},abbrevboth:{fn:(e,t,n)=>Sf(e,t,n),argTypes:[`int`,`int`,`string`]},camelcase:{fn:e=>Lf(e),argTypes:[`string`],returnType:`string`},cat:{fn:(...e)=>Rf(...e),argTypes:[`string`]},contains:{fn:(e,t)=>zf(e,t),argTypes:[`string`,`string`]},hasPrefix:{fn:(e,t)=>Bf(e,t),argTypes:[`string`,`string`]},hasSuffix:{fn:(e,t)=>Vf(e,t),argTypes:[`string`,`string`]},indent:{fn:(e,t)=>Hf(e,t),argTypes:[`int`,`string`]},initials:{fn:e=>Uf(e),argTypes:[`string`]},join:{fn:(e,t)=>Wf(e,t),argTypes:[`string`,`list`]},kebabcase:{fn:e=>Kf(e),argTypes:[`string`],returnType:`string`},lower:{fn:e=>qf(e),argTypes:[`string`]},nindent:{fn:(e,t)=>Jf(e,t),argTypes:[`int`,`string`]},nospace:{fn:e=>Yf(e),argTypes:[`string`],returnType:`string`},plural:{fn:(e,t,n)=>Xf(e,t,n),argTypes:[`string`,`string`,`int`],returnType:`string`},quote:{fn:(...e)=>Zf(...e),argTypes:[`string`]},regexQuoteMeta:{fn:e=>Qf(e),argTypes:[`string`],returnType:`string`},repeat:{fn:(e,t)=>$f(e,t),argTypes:[`int`,`string`]},replace:{fn:(e,t,n)=>ep(e,t,n),argTypes:[`string`,`string`,`string`]},snakecase:{fn:e=>tp(e),argTypes:[`string`],returnType:`string`},split:{fn:(e,t)=>np(e,t),argTypes:[`string`,`string`]},splitList:{fn:(e,t)=>rp(e,t),argTypes:[`string`,`string`]},splitn:{fn:(e,t,n)=>ip(e,t,n),argTypes:[`string`,`int`,`string`],returnType:`dict`},squote:{fn:(...e)=>op(...e),argTypes:[`string`]},substr:{fn:(e,t,n)=>sp(e,t,n),argTypes:[`int`,`int`,`string`]},swapcase:{fn:e=>cp(e),argTypes:[`string`],returnType:`string`},title:{fn:e=>dp(e),argTypes:[`string`]},trim:{fn:e=>fp(e),argTypes:[`string`]},trimAll:{fn:(e,t)=>pp(e,t),argTypes:[`string`,`string`]},trimPrefix:{fn:(e,t)=>mp(e,t),argTypes:[`string`,`string`]},trimSuffix:{fn:(e,t)=>hp(e,t),argTypes:[`string`,`string`]},trunc:{fn:(e,t)=>gp(e,t),argTypes:[`int`,`string`]},untitle:{fn:e=>_p(e),argTypes:[`string`]},upper:{fn:e=>vp(e),argTypes:[`string`]},wrap:{fn:(e,t)=>yp(e,t),argTypes:[`int`,`string`]},wrapWith:{fn:(e,t,n)=>xp(e,t,n),argTypes:[`int`,`string`,`string`]}}}function Cp(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}const wp=`menus.`;function Tp(e){return e}function Ep(e,t,n){return n===void 0?wp+Cp(e)+`.`+Cp(t):wp+Cp(n)}function Dp(e,t){return e+`.`+t}function Op(e){return e+`.page`}const kp=[`closeOnPick`,`paged`,`key`,`distribution`],Ap=e=>kp.includes(e),jp=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${jo.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function Mp(e){for(let t of Object.keys(e))if(!Ap(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${jp}`);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&&!Mo(r))throw Error(`{{ menu }} option "distribution" must be one of: ${jo.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:Po(r)}}const Np=`menu`,Pp=`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`,Fp=e=>e.kind===`call`&&e.name===`dict`,Ip=e=>e.kind===`literal`&&typeof e.value!=`object`,Lp=e=>rs(``,e,2)===void 0;function Rp(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&&Fp(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(Fp))return t(`whose options (dict …) is not its last argument — ${Pp}`);if(i!==void 0&&a===void 0&&!Ip(i)&&Lp(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=rs(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${Pp}`);let c=a===void 0?{}:pd(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)`);try{return{kind:`ok`,apply:n.value,options:Mp(c)}}catch(e){return t(`with invalid options — ${e.message}`)}}function zp(e){let t=wl({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===Np).map(Rp)}catch{return`parse-failed`}}function Bp(e){let t=wl({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(Np)}catch{return!1}}function Vp(e,t,n){e.issues.push({path:t,message:n,line:U(e.source,[`root`])})}function Hp(e,t){fs(e,t,wp,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))Bp(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:U(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`&&Bp(i)&&Vp(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 Mi(ba(t.root)))typeof n.when==`string`&&Bp(n.when)&&Vp(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,s]of Object.entries(n)){if(!Bp(s.template))continue;let n=zp(s.template);if(n!==`parse-failed`)for(let s of n){if(s.kind===`issue`){Vp(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${s.message}.`);continue}let{apply:n,options:c}=s;if(n===``){Vp(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=Tp(n);if(l===`closed`){Vp(e,`segments.${t}`,`segment "${t}" has a {{ menu }} whose apply action is named "${ns}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action.`);continue}let u=Ep(t,n,c.key),d=Op(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){Vp(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=Dp(u,l);if(a.has(m)){Vp(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]=ds(u,l)}}if(r.size===0)return;let s={};for(let e of r){s[e]=us(e,ns);let t=Op(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 Up=`edit.`,Wp=`edit.mode`,Gp=`edit.toggle`,Kp=`open`,qp={variable:Wp,member:Kp},Jp=ss(qp);function Yp(e){let t=wl({fromString:e=>e});try{return t.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function Xp(e){for(let t of Object.values(e.segments??{}))for(let e of[t.template,t.bg,t.fg])if(typeof e==`string`&&Yp(e))return!0;return!1}function Zp(e,t){if(fs(e,t,Up,`edit mode`),!Xp(t))return;let n={[Wp]:us(Wp,ns)},r={[Gp]:ds(Wp,Kp)};t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function Qp(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function $p(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 em(e){let t=new Set;for(let n of Mi(e))n.kind===`segment`&&t.add(n.name);return t}const tm=`default`,nm={};function rm(e){return[...new Set([tm,...Object.keys(e)])]}function im(e,t,n){return di(void 0,e,t,tm,n)}function am(e,t){let n={[tm]:nm,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${tm}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function om(e,t){let n=am(e.presets,t).root??ha;return{node:ya(xa(n,e.root)),path:Sa(n)?`presets.${t}.root`:`root`}}function sm(e,t){return{...e.globals,...am(e.presets,t).globals}}const cm=/^segments\.([^.]+)\.palette$/,lm=/^presets\.(.+)\.root$/;function um(e){return`presets.${e}.root`}function dm(e){if(Fa(e))return{scope:`globals`,field:e};let t=cm.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=lm.exec(e);return n?{scope:`preset-root`,preset:n[1]}:null}function fm(e){return e.scope===`globals`?[`globals`,e.field]:[`segments`,e.segment,`palette`]}const pm=`open`;function mm(e,t,n,r){let i={variable:e,member:pm};return r.variables[e]=us(e,ns),r.actions[e]=ds(e,pm),r.segments[e]={template:ls(e,`(?)`,`✕`),...hm(n)},os(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}})})}function hm(e){let[t,...n]=e;return t===void 0?{}:{when:ss(t,...n)}}const gm={help:[`-h`,`--help`],version:[`-V`,`--version`]},_m=[`+ inserts here`,`- removes the one left of it`,`↺ undoes edits`],vm=[`☐ this session only`,`☑ default for every session`],ym=`
38
+ `)}function $f(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 ep(e,t){let n=[];for(let e of t){if(typeof e==`object`&&e)throw Ud(`join`,2,`list of strings/primitives`,`list element of type ${tp(e)}`);n.push(String(e))}return n.join(e)}function tp(e){return Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:`object`}function np(e){return Gf(e,`-`)}function rp(e){return e.toLowerCase()}function ip(e,t){return`\n${Qf(e,t)}`}function ap(e){return e.replace(/\s+/g,``)}function op(e,t,n){return n===1?e:t}function sp(...e){return e.map(e=>`"${e}"`).join(` `)}function cp(e){return e.replace(/[\\.+*?()|[\]{}^$]/g,`\\$&`)}function lp(e,t){return t.repeat(Math.max(0,e))}function up(e,t,n){return n.split(e).join(t)}function dp(e){return Gf(e,`_`)}function fp(e,t){let n=t.split(e),r={};for(let e=0;e<n.length;e++)r[`_${e}`]=n[e];return r}function pp(e,t){return t.split(e)}function mp(e,t,n){let r=hp(n,e,t),i={};for(let e=0;e<r.length;e++)i[`_${e}`]=r[e]??``;return i}function hp(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 gp(...e){return e.map(e=>`'${e}'`).join(` `)}function _p(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 vp(e){let t=``;for(let n of e)yp(n)?t+=n.toLowerCase():bp(n)?t+=n.toUpperCase():t+=n;return t}function yp(e){return e!==e.toLowerCase()&&e===e.toUpperCase()}function bp(e){return e!==e.toUpperCase()&&e===e.toLowerCase()}function xp(e){return e.replace(/\b([a-zA-Z])/g,e=>e.toUpperCase())}function Sp(e){return e.trim()}function Cp(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 wp(e,t){return t.startsWith(e)?t.slice(e.length):t}function Tp(e,t){return t.endsWith(e)?t.slice(0,t.length-e.length):t}function Ep(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 Dp(e){return e.replace(/\b([A-Z])/g,e=>e.toLowerCase())}function Op(e){return e.toUpperCase()}function kp(e,t){return Ap(e,`
39
+ `,t)}function Ap(e,t,n){if(e<=0)return n;let r=[];for(let t of n.split(`
40
+ `)){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 jp(e,t,n){return Ap(e,t,n)}function Mp(){return{abbrev:{fn:(e,t)=>jf(e,t),argTypes:[`int`,`string`]},abbrevboth:{fn:(e,t,n)=>Mf(e,t,n),argTypes:[`int`,`int`,`string`]},camelcase:{fn:e=>qf(e),argTypes:[`string`],returnType:`string`},cat:{fn:(...e)=>Jf(...e),argTypes:[`string`]},contains:{fn:(e,t)=>Yf(e,t),argTypes:[`string`,`string`]},hasPrefix:{fn:(e,t)=>Xf(e,t),argTypes:[`string`,`string`]},hasSuffix:{fn:(e,t)=>Zf(e,t),argTypes:[`string`,`string`]},indent:{fn:(e,t)=>Qf(e,t),argTypes:[`int`,`string`]},initials:{fn:e=>$f(e),argTypes:[`string`]},join:{fn:(e,t)=>ep(e,t),argTypes:[`string`,`list`]},kebabcase:{fn:e=>np(e),argTypes:[`string`],returnType:`string`},lower:{fn:e=>rp(e),argTypes:[`string`]},nindent:{fn:(e,t)=>ip(e,t),argTypes:[`int`,`string`]},nospace:{fn:e=>ap(e),argTypes:[`string`],returnType:`string`},plural:{fn:(e,t,n)=>op(e,t,n),argTypes:[`string`,`string`,`int`],returnType:`string`},quote:{fn:(...e)=>sp(...e),argTypes:[`string`]},regexQuoteMeta:{fn:e=>cp(e),argTypes:[`string`],returnType:`string`},repeat:{fn:(e,t)=>lp(e,t),argTypes:[`int`,`string`]},replace:{fn:(e,t,n)=>up(e,t,n),argTypes:[`string`,`string`,`string`]},snakecase:{fn:e=>dp(e),argTypes:[`string`],returnType:`string`},split:{fn:(e,t)=>fp(e,t),argTypes:[`string`,`string`]},splitList:{fn:(e,t)=>pp(e,t),argTypes:[`string`,`string`]},splitn:{fn:(e,t,n)=>mp(e,t,n),argTypes:[`string`,`int`,`string`],returnType:`dict`},squote:{fn:(...e)=>gp(...e),argTypes:[`string`]},substr:{fn:(e,t,n)=>_p(e,t,n),argTypes:[`int`,`int`,`string`]},swapcase:{fn:e=>vp(e),argTypes:[`string`],returnType:`string`},title:{fn:e=>xp(e),argTypes:[`string`]},trim:{fn:e=>Sp(e),argTypes:[`string`]},trimAll:{fn:(e,t)=>Cp(e,t),argTypes:[`string`,`string`]},trimPrefix:{fn:(e,t)=>wp(e,t),argTypes:[`string`,`string`]},trimSuffix:{fn:(e,t)=>Tp(e,t),argTypes:[`string`,`string`]},trunc:{fn:(e,t)=>Ep(e,t),argTypes:[`int`,`string`]},untitle:{fn:e=>Dp(e),argTypes:[`string`]},upper:{fn:e=>Op(e),argTypes:[`string`]},wrap:{fn:(e,t)=>kp(e,t),argTypes:[`int`,`string`]},wrapWith:{fn:(e,t,n)=>jp(e,t,n),argTypes:[`int`,`string`,`string`]}}}function Np(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}function Pp(e){return e}function Fp(e,t,n){return n===void 0?Co+Np(e)+`.`+Np(t):Co+Np(n)}function Ip(e,t){return e+`.`+t}function Lp(e){return e+`.page`}const Rp=[`closeOnPick`,`paged`,`key`,`distribution`],zp=e=>Rp.includes(e),Bp=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${Uo.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function Vp(e){for(let t of Object.keys(e))if(!zp(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${Bp}`);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&&!Wo(r))throw Error(`{{ menu }} option "distribution" must be one of: ${Uo.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:Ko(r)}}const Hp=`menu`,Up=`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`,Wp=e=>e.kind===`call`&&e.name===`dict`,Gp=e=>e.kind===`literal`&&typeof e.value!=`object`,Kp=e=>hs(``,e,2)===void 0;function qp(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&&Wp(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(Wp))return t(`whose options (dict …) is not its last argument — ${Up}`);if(i!==void 0&&a===void 0&&!Gp(i)&&Kp(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=hs(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${Up}`);let c=a===void 0?{}:Cd(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)`);try{return{kind:`ok`,apply:n.value,options:Vp(c)}}catch(e){return t(`with invalid options — ${e.message}`)}}function Jp(e){let t=Pl({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===Hp).map(qp)}catch{return`parse-failed`}}function Yp(e){let t=Pl({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(Hp)}catch{return!1}}function Xp(e,t,n){e.issues.push({path:t,message:n,line:U(e.source,[`root`])})}function Zp(e,t){Oo(e,t,Co,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))Yp(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:U(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`&&Yp(i)&&Xp(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 Mi(ba(t.root)))typeof n.when==`string`&&Yp(n.when)&&Xp(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||!Yp(s))continue;let n=Jp(s);if(n!==`parse-failed`)for(let s of n){if(s.kind===`issue`){Xp(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${s.message}.`);continue}let{apply:n,options:c}=s;if(n===``){Xp(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=Pp(n);if(l===`closed`){Xp(e,`segments.${t}`,`segment "${t}" has a {{ menu }} whose apply action is named "${ms}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action.`);continue}let u=Fp(t,n,c.key),d=Lp(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){Xp(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=Ip(u,l);if(a.has(m)){Xp(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,ms);let t=Lp(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 Qp=`edit.mode`,$p=`edit.toggle`,em=`open`,tm={variable:Qp,member:em},nm=ys(tm);function rm(e){let t=Pl({fromString:e=>e});try{return t.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function im(e){for(let t of Object.values(e.segments??{}))for(let e of[t.template,t.bg,t.fg])if(typeof e==`string`&&rm(e))return!0;return!1}function am(e,t){if(Oo(e,t,wo,`edit mode`),!im(t))return;let n={[Qp]:Ss(Qp,ms)},r={[$p]:Cs(Qp,em)};t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function om(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function sm(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 cm(e){let t=new Set;for(let n of Mi(e))n.kind===`segment`&&t.add(n.name);return t}const lm=`default`,um={};function dm(e){return[...new Set([lm,...Object.keys(e)])]}function fm(e,t,n){return di(void 0,e,t,lm,n)}function pm(e,t){let n={[lm]:um,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${lm}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function mm(e,t){let n=pm(e.presets,t).root??ha;return{node:ya(xa(n,e.root)),path:Sa(n)?`presets.${t}.root`:`root`}}function hm(e,t){return{...e.globals,...pm(e.presets,t).globals}}const gm=/^segments\.([^.]+)\.palette$/,_m=/^presets\.(.+)\.root$/;function vm(e){return`presets.${e}.root`}function ym(e){if(Ia(e))return{scope:`globals`,field:e};let t=gm.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=_m.exec(e);return n?{scope:`preset-root`,preset:n[1]}:null}function bm(e){return e.scope===`globals`?[`globals`,e.field]:[`segments`,e.segment,`palette`]}const xm=`open`;function Sm(e,t,n,r){let i={variable:e,member:xm};return r.variables[e]=Ss(e,ms),r.actions[e]=Cs(e,xm),r.segments[e]={template:xs(e,`(?)`,`✕`),...Cm(n)},vs(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}})})}function Cm(e){let[t,...n]=e;return t===void 0?{}:{when:ys(t,...n)}}const wm={help:[`-h`,`--help`],version:[`-V`,`--version`]},Tm=[`+ inserts here`,`- removes the one left of it`,`↺ undoes edits`],Em=[`☐ this session only`,`☑ default for every session`],Dm=`
41
41
  cc-candybar - Beautiful powerline statusline for Claude Code
42
42
 
43
43
  Usage: cc-candybar [options]
44
44
 
45
45
  Standalone Commands:
46
- ${gm.help.join(`, `).padEnd(25)}Show this help
47
- ${gm.version.join(`, `).padEnd(25)}Print the version of this runtime (cc-candybar <version>)
46
+ ${wm.help.join(`, `).padEnd(25)}Show this help
47
+ ${wm.version.join(`, `).padEnd(25)}Print the version of this runtime (cc-candybar <version>)
48
48
 
49
49
  Debugging:
50
50
  CC_CANDYBAR_DEBUG=1 Enable debug logging for troubleshooting
@@ -59,12 +59,12 @@ Configuration:
59
59
  needed, and writing your own \`root\` cannot delete it. Click
60
60
  ☰ on the bar for preset switching, edit mode, and a config menu
61
61
  of clickable theme/look/style/wrap/padding controls. The \`persist?\`
62
- checkbox there chooses where a change lands: ${vm.join(`, `)}.
62
+ checkbox there chooses where a change lands: ${Em.join(`, `)}.
63
63
  Its 🧰 tools row holds 🩺 doctor: click it to check your setup, and click a
64
64
  failed row's [fix] to repair it (the same checks \`cc-candybar doctor\` runs).
65
65
 
66
66
  Anywhere the bar shows (?), clicking it reveals these same instructions
67
- in place. In edit mode: ${_m.join(`, `)}.
67
+ in place. In edit mode: ${Tm.join(`, `)}.
68
68
 
69
69
  Subcommands:
70
70
  install One-shot setup: stages the runtime (native render
@@ -100,45 +100,45 @@ Config tooling:
100
100
  config [--json] The effective merged config. (All three query the
101
101
  running daemon; none spawn one.)
102
102
 
103
- `,bm={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function xm(e){let t=e[bm.socket]??``,n=e[bm.pane]??``;if(t===``||n===``)return null;let r=e[bm.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}const Sm=bm.truecolor,Cm=[{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[Sm];return typeof n==`string`&&n!==``?{ok:!1,reason:`${Sm} 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:Sm,value:`1`}}}}}}];function wm(e){return Cm.map(t=>({check:t,verdict:t.probe(e)}))}function Tm(e){return Cm.find(t=>t.name===e)}function Em(e){let t=`settings.doctor.${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`}}function Dm(e){return e.flatMap(({check:e,verdict:t})=>{let n=Em(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:bi}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:t.reason},{key:n.fixable,value:t.fix===void 0?bi:yi}]})}const Om=`settings.`,km=`${Om}menu`,Am=Kp,jm=`${Om}edit`,Mm=`${Om}persist`,Nm=`${Om}config`,Pm=Mm,Fm={variable:km,member:Am},Im={variable:Nm,member:Am},Lm=`${Om}tools`,Rm={variable:Lm,member:Am},zm=`${Om}doctor`,Bm=`${zm}.run`,Vm=e=>`${zm}.fix.${e}`,Hm=e=>`${zm}.${e}`,Um=`${Om}help.persist`,Wm={bg:`{{ color "accent" }}`,fg:`{{ contrastOn (bgOf) }}`},Gm=`${Om}pickers`,Km=[{name:`preset`,sessionKey:`preset`,configKey:`preset`,effectiveVar:`preset.effective`,glyph:`▦`,domain:`presets`}],qm=[{name:`theme`,sessionKey:`theme`,configKey:`palette`,effectiveVar:`theme.effective`,glyph:`🎨`,domain:`themes`},{name:`look`,sessionKey:`look`,configKey:`look`,effectiveVar:`look.effective`,glyph:`◐`,domain:`looks`},{name:`style`,sessionKey:`style`,configKey:`style`,effectiveVar:`style.effective`,glyph:`✦`,domain:`styles`}],Jm={name:`wrap`,sessionKey:`autoWrap`,configKey:`autoWrap`},Ym={name:`padding`,sessionKey:`padding`,configKey:`padding`},Xm=`${Om}${Jm.name}`,Zm=`${Om}${Ym.name}`,Qm=[...Km,...qm];new Set([...Qm,Jm,Ym].flatMap(e=>[e.sessionKey,e.configKey]));const $m=e=>`${Om}${e}`,eh=e=>`${Om}apply.${e}`,th=e=>`${Om}reset.${e}`;function nh(e){return e===km}function rh(e){let t={kind:`segment`,name:km};if(e.kind===`segment`)return{kind:`container`,direction:`horizontal`,children:[t,e],...e.when!==void 0&&{when:e.when}};let[n,...r]=e.children;return e.direction===`vertical`&&n!==void 0&&n.when===void 0?{...e,children:[rh(n),...r]}:{...e,children:[t,...e.children]}}function ih(e){return ah(e)>0?e:rh(e)}function ah(e){let t=0;for(let n of Mi(e))n.kind===`segment`&&nh(n.name)&&(t+=1);return t}function oh(e,t){return e.kind===`segment`?nh(e.name)?os(e.name,Fm,{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:Mm},t,...Km.map(e=>({kind:`segment`,name:$m(e.name)})),os(Nm,Im,{kind:`container`,direction:`horizontal`,children:[...qm.map(e=>({kind:`segment`,name:$m(e.name)})),{kind:`segment`,name:Xm},{kind:`segment`,name:Zm}]}),os(Lm,Rm,{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:zm},...Cm.map(e=>({kind:`segment`,name:Hm(e.name)}))]}),{kind:`segment`,name:jm}]},e.when):ji(e,e=>sh(e,t)):sh(e,t)}function sh(e,t){return{...e,children:e.children.map(e=>oh(e,t))}}function ch(e,t,n,r){let i=Tp(t),a=Ep(e,t,r),o=Op(a);n.variables[a]=us(a,ns),n.variables[o]={kind:`state`,key:o,default:`0`},n.actions[Dp(a,i)]=ds(a,i),n.actions[o]={set:o,int:!0}}function lh(){let e={variables:{[km]:us(km,ns)},actions:{[km]:ds(km,Am),[Nm]:ds(Nm,Am),[Lm]:ds(Lm,Am),[Bm]:{doctor:`run`},[Mm]:{set:Pm,cycle:[bi,yi]}},segments:{[km]:{template:ls(km,`☰`,`✕`),...Wm},[Mm]:{template:`{{ action "${Mm}" "☐ persist?" "☑ persist?" }}`},[Nm]:{template:ls(Nm,`⚙ config ▸`,`⚙ config ▾`)},[Lm]:{template:ls(Lm,`🧰 tools ▸`,`🧰 tools ▾`)},[zm]:{template:`{{ action "${Bm}" "🩺 doctor" }}`},[Xm]:{template:`{{ action "${eh(`wrap`)}" "wrap: on" "wrap: off" }} {{ action "${th(`wrap`)}" "↺" }}`},[Zm]:{template:`{{ action "${eh(`padding`)}.down" "◀" }} padding {{ .padding.effective }} {{ action "${eh(`padding`)}.up" "▶" }} {{ action "${th(`padding`)}" "↺" }}`},[jm]:{template:`{{ action "${Gp}" "✎ edit" "✎ done" }}`}}};return e.variables[Pm]={kind:`state`,key:Pm,default:bi},e.variables[Nm]=us(Nm,ns),e.variables[Lm]=us(Lm,ns),dh(e),uh(e),{artifacts:e,help:mm(Um,vm,[Fm],e)}}function uh(e){for(let t of Cm){let n=Em(t.name),r=Vm(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[Hm(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${yi}" }} {{ action "${r}" "[fix]" }}{{ end }}{{ end }}`}}}function dh(e){for(let t of Qm){let n=$m(t.name),r=eh(t.name);e.segments[n]={template:`${t.glyph} {{ .${t.effectiveVar} }} {{ menu "${r}" "▸" "▾" (dict "key" "${Gm}" "closeOnPick" true) }} {{ action "${th(t.name)}" "↺" }}`},e.actions[r]={set:t.sessionKey,persist:t.configKey,persistWhen:Pm,from:t.domain},e.actions[th(t.name)]={reset:t.configKey},ch(n,r,e,Gm)}e.actions[eh(Jm.name)]={set:Jm.sessionKey,persist:Jm.configKey,persistWhen:Pm,cycle:[...xi]},e.actions[th(Jm.name)]={reset:Jm.configKey};for(let t of[-1,1])e.actions[`${eh(Ym.name)}.${t<0?`down`:`up`}`]={set:Ym.sessionKey,persist:Ym.configKey,persistWhen:Pm,...Si,by:t};e.actions[th(Ym.name)]={reset:Ym.configKey}}function fh(e){e.variables[Wp]=us(Wp,ns),e.actions[Gp]=ds(Wp,Kp)}const ph=`session.id`;function mh(e){return Object.prototype.hasOwnProperty.call(e.variables,ph)}function hh(e){if(!mh(e))return e;let{artifacts:t,help:n}=lh();fh(t);let r={...e.presets};for(let t of rm(e.presets)){let{node:i}=om(e,t);r[t]={...am(e.presets,t),root:oh(ih(i),n)}}return{...e,variables:{...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:r}}const gh=`preset.customized`,_h=`{{ and ${cs(qp)} .${gh} }}`;function vh(e){return e.startsWith(`edit.`)||e.startsWith(`menus.`)||e.startsWith(`groups.`)||e.startsWith(`settings.`)}function yh(e){return`${Up}addable.${e}`}function bh(e){let t=Object.keys(e.segments).filter(e=>!vh(e)),n=new Map;for(let r of rm(e.presets)){let{node:i}=om(e,r),a=em(i);n.set(yh(r),t.filter(e=>!a.has(e)))}return n}function xh(e,t,n,r){let i=`${Up}${e}.remove.${Cp(n)}`,a=`${Up}${e}.removeSeg.${Cp(n)}`;return r.actions[i]={persist:t,removeSegment:n},r.segments[a]={template:`{{ action "${i}" "-" }}`,when:Jp},{kind:`segment`,name:a}}function Sh(e,t,n,r,i,a,o){let s=`${Up}${e}.insert.${n}`,c=`${Up}${e}.insertSeg.${n}`;o.actions[s]={persist:t,insertSegmentFrom:r,anchor:i,relation:a};let l=Tp(s),u=Ep(c,s,void 0),d=Op(u),f=Dp(u,l);return o.variables[u]=us(u,ns),o.variables[d]={kind:`state`,key:d,default:`0`},o.actions[f]=ds(u,l),o.actions[d]={set:d,int:!0},o.segments[c]={template:`{{ menu "${s}" "+" "✕" }}`,when:Jp},{kind:`segment`,name:c}}function Ch(e,t,n,r,i,a){let o=[],s=e.children.reduce((e,t,n)=>t.kind===`segment`&&!vh(t.name)?n:e,-1),c=e=>Ch(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=ji(u,c);if(vh(u.name)){o.push(d);continue}let f=[Sh(t,n,String(a.n++),r,u.name,`before`,i),d,xh(t,n,u.name,i),...l===s?[Sh(t,n,String(a.n++),r,u.name,`after`,i)]:[]];o.push(...e.direction===`vertical`?[{kind:`container`,direction:`horizontal`,children:f,...u.when!==void 0&&{when:u.when}}]:f)}return{...e,children:o}}function wh(e,t,n,r,i,a){let o=`${Up}${n}.resetLayout`,s=`${Up}${n}.customized`;i.actions[o]={reset:r},i.ensured[gh]={kind:`input`,path:gh,type:`boolean`,default:!1};let c=as(t);return i.segments[s]={template:`{{ action "${o}" "↺ ${c} customized" }}`,when:_h},{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:s},Th(e,a)],...e.when!==void 0&&{when:e.when}}}function Th(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),Th(n,t)]}:{...e,children:[...e.children,t]}}function Eh(e,t,n,r){let{node:i}=om(e,t),a=um(t),o=yh(t),s=Cp(t);return wh(Ch(i,s,a,o,n,{n:0}),t,s,a,n,r)}function Dh(e){if(!(`edit.toggle`in e.actions))return e;let t={variables:{},ensured:{},actions:{},segments:{}},n=mm(`${Up}help`,_m,[qp],t),r={...e.presets};for(let i of rm(e.presets)){let a=Eh(e,i,t,n);r[i]={...am(e.presets,i),root:a}}return{...e,variables:{...t.ensured,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:r}}const Oh=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`doctor`],kh=`persistWhen`;function Ah(e){return kh in e}function jh(e){return Ah(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 Mh(e){return`set`in e}function Nh(e){return`persist`in e}function Ph(e){return`reset`in e}function Fh(e){return`undo`in e}function Ih(e){return`redo`in e}function Lh(e){return`doctor`in e}function Rh(e,t){if(t===void 0)return{};if(!Ki(t))return J(e,`actions`,`actions must be an object, got ${qi(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=zh(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function J(e,t,n){e.issues.push({path:t,message:n,line:U(e.source,t.split(`.`))})}function zh(e,t,n){if(!Ki(n))return J(e,t,`${t} must be an action object, got ${qi(n)}`),null;if(`persistWhen`in n)return _g(e,t,n,`dual`,mg);let r=Oh.filter(e=>e in n);return r.length===1?Bh[r[0]](e,t,n):(J(e,t,`action must declare exactly one of: ${Oh.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const Bh={set:(e,t,n)=>_g(e,t,n,`set`,fg),persist:(e,t,n)=>_g(e,t,n,`persist`,pg),copy:Vh(`copy`),open:Vh(`open`),reset:Hh,undo:Uh(`undo`),redo:Uh(`redo`),doctor:Wh};function Vh(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=Vi(t,n,r,e);return i===null?null:{[e]:i}}}function Hh(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=Gh(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 Uh(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 Wh(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`||Tm(a)===void 0?(J(e,`${t}.check`,`doctor fix must name a check (have: ${Cm.map(e=>e.name).join(`, `)}), got ${G(a)}`),null):{doctor:`fix`,check:a}}function Gh(e,t,n,r,i,a){let o=Vi(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 Kh={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`],[kh,`the SessionState key whose boolean value chooses the destination`]]};function qh(e,t,n,r){let i={},a=Kh[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=Gh(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 Jh(e){return e===`set`?`set-state`:e===`persist`?`set-config`:`set-state/set-config`}const Yh={to:vg(`set`)},Xh={to:vg(`persist`)},Zh={from:yg(`set`)},Qh={from:yg(`persist`)},$h={min:wg(),max:wg(),by:wg()},eg={int:xg()},tg={cycle:bg(`set`)},ng={to:vg(`dual`)},rg={from:yg(`dual`)},ig={cycle:bg(`dual`)},ag={cycle:bg(`persist`)},og={removeSegment:Sg(`removeSegment`)},sg={insertSegment:Sg(`insertSegment`),anchor:Sg(`anchor`),relation:Cg()},cg={insertSegmentFrom:yg(`persist`),anchor:Sg(`anchor`),relation:Cg()},lg={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},ug={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function dg(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=Kh[e].map(([e])=>e),s=(e,n,r)=>Yi(e,t,n,r),c=ca(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?ta(s,...n):s}}const fg=[dg(`set`,Yh),dg(`set`,Zh),dg(`set`,$h,[lg,ug]),dg(`set`,eg),dg(`set`,tg)],pg=[dg(`persist`,Xh),dg(`persist`,Qh),dg(`persist`,$h,[lg,ug]),dg(`persist`,ag),dg(`persist`,og),dg(`persist`,sg,[],[`insertSegment`]),dg(`persist`,cg,[],[`insertSegmentFrom`])],mg=[dg(`dual`,ng),dg(`dual`,rg),dg(`dual`,$h,[lg,ug]),dg(`dual`,ig)];function hg(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 gg(e){let t=hg(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 _g(e,t,n,r,i){let a=qh(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return J(e,t,`${gg(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 vg(e){let t=Jh(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>Gh(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 yg(e){let t=Jh(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 bg(e){let t=Jh(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 ${qi(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 xg(){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 Sg(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=Vi(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 Cg(){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 wg(){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 Tg={noun:`look key`,fields:{hueShift:ia(),chromaScale:ia({min:0}),lightnessScale:ia(),lightnessShift:ia()}};function Eg(e,t){if(!Ki(t))return e.issues.push({path:`looks`,message:`looks must be an object mapping look names to adaptation objects, got ${qi(t)}`,line:U(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:U(e.source,[`looks`,r])});continue}let t=Ji(e,Tg,`looks.${r}`,i);t!==null&&(n[r]={...gn,...t})}return n}const Dg={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:ks(e,`${t}.${n}`,r[n])},globals:{required:!1,json:Ma(),parse:(e,t,n,r)=>r[n]===void 0?void 0:ja(e,`${t}.${n}`,r[n])}}};function Og(e,t){if(!Ki(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${qi(t)}`,line:U(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:U(e.source,[`presets`,r])});continue}let t=Ji(e,Dg,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function kg(e,t){if(t===void 0)return{};if(!Ki(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${qi(t)}`,line:U(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:U(e.source,[`helpers`,r])});continue}n[r]=i}return n}const Ag=new Map;function jg(e,t){Ag.set(e,{permanent:!0,resolve:t})}jg(`themes`,()=>ui()),jg(`styles`,()=>mi),jg(`charsets`,()=>_i),jg(`colorCompatibilities`,()=>vi);function Mg(e){return new Map([[`looks`,Object.keys(e.looks)],[`presets`,rm(e.presets)]])}function Ng(e){return[...new Set([...Ag.keys(),...e.keys()])]}function Pg(e,t){if(typeof e!=`string`)return e;let n=t.get(e);if(n)return n;let r=Ag.get(e);if(r)return r.resolve();throw Error(`unknown option domain "${e}" (have: ${Ng(t).join(`, `)})`)}const Fg=/{{([\s\S]*?)}}/g,Ig=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g,Lg=/(?<![A-Za-z0-9_)])\.([A-Za-z_][\w]*(?:\.[A-Za-z_][\w]*)*)/g;function Rg(e){let t=new Set,n;for(Fg.lastIndex=0;(n=Fg.exec(e))!==null;){let e=n[1].replace(Ig,``),r;for(Lg.lastIndex=0;(r=Lg.exec(e))!==null;)t.add(r[1])}return t}const zg=/\baction\s+$/;function Bg(e){let t=new Set;Fg.lastIndex=0;let n;for(;(n=Fg.exec(e))!==null;){let e=n[1],r=0,i;for(Ig.lastIndex=0;(i=Ig.exec(e))!==null;)zg.test(e.slice(r,i.index))&&t.add(i[0].slice(1,-1)),r=i.index+i[0].length}return t}const Vg=/\b(picker|menu)\s+$/;function Hg(e){let t=new Set;Fg.lastIndex=0;let n;for(;(n=Fg.exec(e))!==null;){let e=n[1],r=0,i=0,a;for(Ig.lastIndex=0;(a=Ig.exec(e))!==null;){let n=Vg.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 Ug(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 Wg={gitTaculous:`gitaculous`};function Gg(e,t){let n=new Map;for(let e of Object.keys(t)){let t=Cp(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:U(e.source,[`presets`])})}function Kg(e,t){t.globals.look!==void 0&&!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:U(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:U(e.source,[`globals`,`preset`])}),Gg(e,t.presets);let n=Mg(t);for(let[r,i]of Object.entries(t.actions))!(`set`in i)||!(`from`in i)||typeof i.from!=`string`||Ng(n).includes(i.from)||e.issues.push({path:`actions.${r}.from`,message:`actions.${r} from: references unknown option domain "${i.from}" (have: ${Ng(n).join(`, `)})`,line:U(e.source,[`actions`,r,`from`])});for(let[n,r]of Object.entries(t.actions)){if(!Ah(r))continue;let i=r[kh];Zg(t,i)||e.issues.push({path:`actions.${n}.${kh}`,message:`actions.${n} ${kh}: "${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:U(e.source,[`actions`,n,kh])})}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=dm(i);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is not a config globals field (have: ${Ia().join(`, `)}), a "segments.<name>.palette" target, or a "presets.<name>.root" target`,line:U(e.source,[`actions`,n,a])});continue}let s=qg.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:U(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){Jg(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:U(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:U(e.source,[`actions`,n,a])})}}let r=$g(t),i=mh(t),a=Object.entries(t.segments).filter(([,e])=>Bp(e.template)).map(([e])=>e),o=(t,n,r)=>{ah(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${km}" ${ah(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});let i=new Map;for(let e of Mi(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})},s=(n,a,o)=>{for(let s of Mi(n))if(s.when!==void 0&&r_(e,`${a}.when`,s.when,r,{line:o}),s.kind===`segment`){if(nh(s.name)){i||e.issues.push({path:a,message:`${a} places the global settings menu anchor "${km}", but this config declares no "${ph}" variable — the menu is a click surface and every click composes a URL from "${ph}", so it is not synthesized for a config without it. Declare a "${ph}" 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=Wg[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})}}},c=i_(e.source);s(ya(t.root),c,U(e.source,[c]));for(let[n,r]of Object.entries(t.presets)){if(r.root===void 0)continue;let t=`presets.${n}.root`,i=U(e.source,[`presets`,n,`root`]);s(ba(r.root),t,i)}let l=new Map([[`root`,ya(t.root)]]);for(let e of rm(t.presets)){let{node:n,path:r}=om(t,e);l.set(r,n)}for(let[t,n]of l)o(n,t,U(e.source,t.split(`.`)));for(let[n,i]of Object.entries(t.variables))t_(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))t_(e,`segments.${n}.vars.${t}`,a,r,n);for(let a of[`template`,`bg`,`fg`,`when`]){let o=i[a];if(typeof o==`string`){r_(e,`segments.${n}.${a}`,o,r,{segCtx:n});for(let r of Bg(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}"`,line:U(e.source,[`segments`,n,a])});for(let r of Hg(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}" (in a picker or menu)`,line:U(e.source,[`segments`,n,a])})}}}for(let[n,i]of Object.entries(t.variables))n_(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))n_(e,`segments.${n}.vars.${t}`,a,r,n);(Xg(t)||Qg(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:U(e.source,[`variables`])})}const qg=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function Jg(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=U(e.source,[`actions`,n,r]);if(!rm(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${rm(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 Yg(e){return[...Object.values(e.variables),...Object.values(e.segments).flatMap(e=>Object.values(e.vars??{}))].filter(e=>e.kind===`state`)}function Xg(e){return Yg(e).length>0}function Zg(e,t){return Yg(e).some(e=>e.kind===`state`&&e.key===t)}function Qg(e){return Object.values(e.actions).some(e=>Mh(e)||Nh(e)||Ph(e)||Fh(e)||Ih(e)||Lh(e))}function $g(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),e_(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 e_(e){return(e.kind===`shell`||e.kind===`file`)&&Pi(e.parse)===`json`}function t_(e,t,n,r,i){n.kind===`template`&&r_(e,`${t}.template`,n.template,r,{segCtx:i}),Ii(n)&&n.cache&&`key`in n.cache&&r_(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function n_(e,t,n,r,i){if(Ii(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:U(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function r_(e,t,n,r,i){for(let a of Rg(n)){if(Ug(a,r))continue;let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,o=n!==void 0&&Ug(n,r)?` (segment-local vars are namespaced — write ".${n}")`:``;e.issues.push({path:t,message:`Template references unknown variable ".${a}"${o}`,line:i?.line??U(e.source,t.split(`.`))})}}function i_(e){try{let t=Ze.default.parse(e);if(Ki(t)&&`root`in t)return`root`}catch{}return`layout`}function a_(e,t){let{graph:n,nodeInfo:r}=o_(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:U(e.source,o?.linePathParts??[`variables`,i])}),!0}if(t===0&&o(s))return!0}return i.set(t,2),a.pop(),!1}}function o_(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 Rg(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),Ii(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 s_=[`json5`,`json`];function c_(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function l_(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?f.homedir()+e.slice(1):e}function u_(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?s_.map(t=>c.join(e,`.cc-candybar.${t}`)):[],...s_.map(e=>c.join(r,`.cc-candybar.${e}`)),...s_.map(e=>`${d_()}.${e}`)])]}function d_(){let e=process.env.XDG_CONFIG_HOME??c.join(f.homedir(),`.config`);return c.join(e,`cc-candybar`,`config`)}function f_(e,t,n){let r=[];for(let i of u_(e,t,n)){let e=c_(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 p_(e,t,n){let r=f_(e,t,n);return r.kind===`default`?`${d_()}.${s_[0]}`:r.path}function m_(e){return h_(e).join(`
104
- `)||null}function h_(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 g_(e,t){let n=u_(e,t).filter(e=>c_(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 __(e,t,n){let i=e===null?``:r.readFileSync(e,`utf-8`),a=e===null?{}:y_(e,i,n);return{config:Ca(a,t),raw:a,source:i}}function v_(e,t=`<config>`,n=``,r=new Set(ui())){let i=[],a={source:n,issues:i,allowedPalettes:r,groups:[]};if(Kg(a,e),a_(a,e),i.length>0)throw new Di(t,i);return Dh(hh(e))}function y_(e,t,n=new Set(ui())){let r=b_(e,t),i=[],a={source:t,issues:i,allowedPalettes:n,groups:[]};if(!Ki(r))throw new Di(e,[{path:``,message:`Config root must be an object, got ${qi(r)}`}]);let o=x_(a,r);if(i.length>0)throw new Di(e,i);return o}function b_(e,t){try{return Ze.default.parse(t)}catch(t){let n=t;throw new Di(e,[{path:``,message:`JSON5 syntax error: ${n.message}`,line:n.lineNumber,col:n.columnNumber}])}}function x_(e,t){for(let n of Object.keys(t))S_.has(n)||e.issues.push({path:n,message:`Unknown top-level key "${n}". Expected one of: ${[...S_].join(`, `)}`,line:U(e.source,[n])});let n={};return t.globals!==void 0&&(n.globals=Aa(e,`globals`,t.globals)),t.variables!==void 0&&(n.variables=Xa(e,`variables`,t.variables)),t.segments!==void 0&&(n.segments=xo(e,t.segments)),t.layout!==void 0&&e.issues.push({path:`layout`,message:`"layout" is no longer supported — use "root" with the A-grammar instead.
103
+ `,Om=`preset.customized`,km=`{{ and ${bs(tm)} .${Om} }}`,Am=Do;function jm(e){return`${wo}addable.${e}`}function Mm(e){let t=Object.keys(e.segments).filter(e=>!Am(e)),n=new Map;for(let r of dm(e.presets)){let{node:i}=mm(e,r),a=cm(i);n.set(jm(r),t.filter(e=>!a.has(e)))}return n}function Nm(e,t,n,r){let i=`${wo}${e}.remove.${Np(n)}`,a=`${wo}${e}.removeSeg.${Np(n)}`;return r.actions[i]={persist:t,removeSegment:n},r.segments[a]={template:`{{ action "${i}" "-" }}`,when:nm},{kind:`segment`,name:a}}function Pm(e,t,n,r,i,a,o){let s=`${wo}${e}.insert.${n}`,c=`${wo}${e}.insertSeg.${n}`;o.actions[s]={persist:t,insertSegmentFrom:r,anchor:i,relation:a};let l=Pp(s),u=Fp(c,s,void 0),d=Lp(u),f=Ip(u,l);return o.variables[u]=Ss(u,ms),o.variables[d]={kind:`state`,key:d,default:`0`},o.actions[f]=Cs(u,l),o.actions[d]={set:d,int:!0},o.segments[c]={template:`{{ menu "${s}" "+" "✕" }}`,when:nm},{kind:`segment`,name:c}}function Fm(e,t,n,r,i,a){let o=[],s=e.children.reduce((e,t,n)=>t.kind===`segment`&&!Am(t.name)?n:e,-1),c=e=>Fm(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=ji(u,c);if(Am(u.name)){o.push(d);continue}let f=[Pm(t,n,String(a.n++),r,u.name,`before`,i),d,Nm(t,n,u.name,i),...l===s?[Pm(t,n,String(a.n++),r,u.name,`after`,i)]:[]];o.push(...e.direction===`vertical`?[{kind:`container`,direction:`horizontal`,children:f,...u.when!==void 0&&{when:u.when}}]:f)}return{...e,children:o}}function Im(e,t,n,r,i,a){let o=`${wo}${n}.resetLayout`,s=`${wo}${n}.customized`;i.actions[o]={reset:r},i.ensured[Om]={kind:`input`,path:Om,type:`boolean`,default:!1};let c=_s(t);return i.segments[s]={template:`{{ action "${o}" "↺ ${c} customized" }}`,when:km},{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:s},Lm(e,a)],...e.when!==void 0&&{when:e.when}}}function Lm(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),Lm(n,t)]}:{...e,children:[...e.children,t]}}function Rm(e,t,n,r){let{node:i}=mm(e,t),a=vm(t),o=jm(t),s=Np(t);return Im(Fm(i,s,a,o,n,{n:0}),t,s,a,n,r)}function zm(e){if(!(`edit.toggle`in e.actions))return e;let t={variables:{},ensured:{},actions:{},segments:{}},n=Sm(`${wo}help`,Tm,[tm],t),r={...e.presets};for(let i of dm(e.presets)){let a=Rm(e,i,t,n);r[i]={...pm(e.presets,i),root:a}}return{...e,variables:{...t.ensured,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:r}}const Bm={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function Vm(e){let t=e[Bm.socket]??``,n=e[Bm.pane]??``;if(t===``||n===``)return null;let r=e[Bm.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}const Hm=Bm.truecolor,Um=[{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[Hm];return typeof n==`string`&&n!==``?{ok:!1,reason:`${Hm} 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:Hm,value:`1`}}}}}}];function Wm(e){return Um.map(t=>({check:t,verdict:t.probe(e)}))}function Gm(e){return Um.find(t=>t.name===e)}function Km(e){let t=`settings.doctor.${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`}}function qm(e){return e.flatMap(({check:e,verdict:t})=>{let n=Km(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:bi}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:t.reason},{key:n.fixable,value:t.fix===void 0?bi:yi}]})}const Jm=`${To}menu`,Ym=em,Xm=`${To}edit`,Zm=`${To}persist`,Qm=`${To}config`,$m=Zm,eh={variable:Jm,member:Ym},th={variable:Qm,member:Ym},nh=`${To}tools`,rh={variable:nh,member:Ym},ih=`${To}doctor`,ah=`${ih}.run`,oh=e=>`${ih}.fix.${e}`,sh=e=>`${ih}.${e}`,ch=`${To}help.persist`,lh={bg:`{{ color "accent" }}`,fg:`{{ contrastOn (bgOf) }}`},uh=`${To}pickers`,dh=[{name:`preset`,sessionKey:`preset`,configKey:`preset`,effectiveVar:`preset.effective`,glyph:`▦`,domain:`presets`}],fh=[{name:`theme`,sessionKey:`theme`,configKey:`palette`,effectiveVar:`theme.effective`,glyph:`🎨`,domain:`themes`},{name:`look`,sessionKey:`look`,configKey:`look`,effectiveVar:`look.effective`,glyph:`◐`,domain:`looks`},{name:`style`,sessionKey:`style`,configKey:`style`,effectiveVar:`style.effective`,glyph:`✦`,domain:`styles`}],ph={name:`wrap`,sessionKey:`autoWrap`,configKey:`autoWrap`},mh={name:`padding`,sessionKey:`padding`,configKey:`padding`},hh=`${To}${ph.name}`,gh=`${To}${mh.name}`,_h=[...dh,...fh];new Set([..._h,ph,mh].flatMap(e=>[e.sessionKey,e.configKey]));const vh=e=>`${To}${e}`,yh=e=>`${To}apply.${e}`,bh=e=>`${To}reset.${e}`;function xh(e){return e===Jm}function Sh(e){let t={kind:`segment`,name:Jm};if(e.kind===`segment`)return{kind:`container`,direction:`horizontal`,children:[t,e],...e.when!==void 0&&{when:e.when}};let[n,...r]=e.children;return e.direction===`vertical`&&n!==void 0&&n.when===void 0?{...e,children:[Sh(n),...r]}:{...e,children:[t,...e.children]}}function Ch(e){return wh(e)>0?e:Sh(e)}function wh(e){let t=0;for(let n of Mi(e))n.kind===`segment`&&xh(n.name)&&(t+=1);return t}function Th(e,t){return e.kind===`segment`?xh(e.name)?vs(e.name,eh,{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:Zm},t,...dh.map(e=>({kind:`segment`,name:vh(e.name)})),vs(Qm,th,{kind:`container`,direction:`horizontal`,children:[...fh.map(e=>({kind:`segment`,name:vh(e.name)})),{kind:`segment`,name:hh},{kind:`segment`,name:gh}]}),vs(nh,rh,{kind:`container`,direction:`vertical`,children:[{kind:`segment`,name:ih},...Um.map(e=>({kind:`segment`,name:sh(e.name)}))]}),{kind:`segment`,name:Xm}]},e.when):ji(e,e=>Eh(e,t)):Eh(e,t)}function Eh(e,t){return{...e,children:e.children.map(e=>Th(e,t))}}function Dh(e,t,n,r){let i=Pp(t),a=Fp(e,t,r),o=Lp(a);n.variables[a]=Ss(a,ms),n.variables[o]={kind:`state`,key:o,default:`0`},n.actions[Ip(a,i)]=Cs(a,i),n.actions[o]={set:o,int:!0}}function Oh(){let e={variables:{[Jm]:Ss(Jm,ms)},actions:{[Jm]:Cs(Jm,Ym),[Qm]:Cs(Qm,Ym),[nh]:Cs(nh,Ym),[ah]:{doctor:`run`},[Zm]:{set:$m,cycle:[bi,yi]}},segments:{[Jm]:{template:xs(Jm,`☰`,`✕`),...lh},[Zm]:{template:`{{ action "${Zm}" "☐ persist?" "☑ persist?" }}`},[Qm]:{template:xs(Qm,`⚙ config ▸`,`⚙ config ▾`)},[nh]:{template:xs(nh,`🧰 tools ▸`,`🧰 tools ▾`)},[ih]:{template:`{{ action "${ah}" "🩺 doctor" }}`},[hh]:{template:`{{ action "${yh(`wrap`)}" "wrap: on" "wrap: off" }} {{ action "${bh(`wrap`)}" "↺" }}`},[gh]:{template:`{{ action "${yh(`padding`)}.down" "◀" }} padding {{ .padding.effective }} {{ action "${yh(`padding`)}.up" "▶" }} {{ action "${bh(`padding`)}" "↺" }}`},[Xm]:{template:`{{ action "${$p}" "✎ edit" "✎ done" }}`}}};return e.variables[$m]={kind:`state`,key:$m,default:bi},e.variables[Qm]=Ss(Qm,ms),e.variables[nh]=Ss(nh,ms),Ah(e),kh(e),{artifacts:e,help:Sm(ch,Em,[eh],e)}}function kh(e){for(let t of Um){let n=Km(t.name),r=oh(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[sh(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${yi}" }} {{ action "${r}" "[fix]" }}{{ end }}{{ end }}`}}}function Ah(e){for(let t of _h){let n=vh(t.name),r=yh(t.name);e.segments[n]={template:`${t.glyph} {{ .${t.effectiveVar} }} {{ menu "${r}" "▸" "▾" (dict "key" "${uh}" "closeOnPick" true) }} {{ action "${bh(t.name)}" "↺" }}`},e.actions[r]={set:t.sessionKey,persist:t.configKey,persistWhen:$m,from:t.domain},e.actions[bh(t.name)]={reset:t.configKey},Dh(n,r,e,uh)}e.actions[yh(ph.name)]={set:ph.sessionKey,persist:ph.configKey,persistWhen:$m,cycle:[...xi]},e.actions[bh(ph.name)]={reset:ph.configKey};for(let t of[-1,1])e.actions[`${yh(mh.name)}.${t<0?`down`:`up`}`]={set:mh.sessionKey,persist:mh.configKey,persistWhen:$m,...Si,by:t};e.actions[bh(mh.name)]={reset:mh.configKey}}function jh(e){e.variables[Qp]=Ss(Qp,ms),e.actions[$p]=Cs(Qp,em)}const Mh=`session.id`;function Nh(e){return Object.prototype.hasOwnProperty.call(e.variables,Mh)}function Ph(e){if(!Nh(e))return e;let{artifacts:t,help:n}=Oh();jh(t);let r={...e.presets};for(let t of dm(e.presets)){let{node:i}=mm(e,t);r[t]={...pm(e.presets,t),root:Th(Ch(i),n)}}return{...e,variables:{...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:r}}const Fh=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`doctor`],Ih=`persistWhen`;function Lh(e){return Ih in e}function Rh(e){return Lh(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 zh(e){return`set`in e}function Bh(e){return`persist`in e}function Vh(e){return`reset`in e}function Hh(e){return`undo`in e}function Uh(e){return`redo`in e}function Wh(e){return`doctor`in e}function Gh(e,t){if(t===void 0)return{};if(!Ki(t))return J(e,`actions`,`actions must be an object, got ${qi(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=Kh(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function J(e,t,n){e.issues.push({path:t,message:n,line:U(e.source,t.split(`.`))})}function Kh(e,t,n){if(!Ki(n))return J(e,t,`${t} must be an action object, got ${qi(n)}`),null;if(`persistWhen`in n)return wg(e,t,n,`dual`,xg);let r=Fh.filter(e=>e in n);return r.length===1?qh[r[0]](e,t,n):(J(e,t,`action must declare exactly one of: ${Fh.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const qh={set:(e,t,n)=>wg(e,t,n,`set`,yg),persist:(e,t,n)=>wg(e,t,n,`persist`,bg),copy:Jh(`copy`),open:Jh(`open`),reset:Yh,undo:Xh(`undo`),redo:Xh(`redo`),doctor:Zh};function Jh(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=Vi(t,n,r,e);return i===null?null:{[e]:i}}}function Yh(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=Qh(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 Xh(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 Zh(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`||Gm(a)===void 0?(J(e,`${t}.check`,`doctor fix must name a check (have: ${Um.map(e=>e.name).join(`, `)}), got ${G(a)}`),null):{doctor:`fix`,check:a}}function Qh(e,t,n,r,i,a){let o=Vi(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 $h={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`],[Ih,`the SessionState key whose boolean value chooses the destination`]]};function eg(e,t,n,r){let i={},a=$h[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=Qh(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 tg(e){return e===`set`?`set-state`:e===`persist`?`set-config`:`set-state/set-config`}const ng={to:Tg(`set`)},rg={to:Tg(`persist`)},ig={from:Eg(`set`)},ag={from:Eg(`persist`)},og={min:jg(),max:jg(),by:jg()},sg={int:Og()},cg={cycle:Dg(`set`)},lg={to:Tg(`dual`)},ug={from:Eg(`dual`)},dg={cycle:Dg(`dual`)},fg={cycle:Dg(`persist`)},pg={removeSegment:kg(`removeSegment`)},mg={insertSegment:kg(`insertSegment`),anchor:kg(`anchor`),relation:Ag()},hg={insertSegmentFrom:Eg(`persist`),anchor:kg(`anchor`),relation:Ag()},gg={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},_g={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function vg(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=$h[e].map(([e])=>e),s=(e,n,r)=>Yi(e,t,n,r),c=ca(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?ta(s,...n):s}}const yg=[vg(`set`,ng),vg(`set`,ig),vg(`set`,og,[gg,_g]),vg(`set`,sg),vg(`set`,cg)],bg=[vg(`persist`,rg),vg(`persist`,ag),vg(`persist`,og,[gg,_g]),vg(`persist`,fg),vg(`persist`,pg),vg(`persist`,mg,[],[`insertSegment`]),vg(`persist`,hg,[],[`insertSegmentFrom`])],xg=[vg(`dual`,lg),vg(`dual`,ug),vg(`dual`,og,[gg,_g]),vg(`dual`,dg)];function Sg(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 Cg(e){let t=Sg(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 wg(e,t,n,r,i){let a=eg(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return J(e,t,`${Cg(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 Tg(e){let t=tg(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>Qh(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 Eg(e){let t=tg(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 Dg(e){let t=tg(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 ${qi(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 Og(){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 kg(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=Vi(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 Ag(){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 jg(){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 Mg={noun:`look key`,fields:{hueShift:ia(),chromaScale:ia({min:0}),lightnessScale:ia(),lightnessShift:ia()}};function Ng(e,t){if(!Ki(t))return e.issues.push({path:`looks`,message:`looks must be an object mapping look names to adaptation objects, got ${qi(t)}`,line:U(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:U(e.source,[`looks`,r])});continue}let t=Ji(e,Mg,`looks.${r}`,i);t!==null&&(n[r]={...gn,...t})}return n}const Pg={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:Bs(e,`${t}.${n}`,r[n])},globals:{required:!1,json:Na(),parse:(e,t,n,r)=>r[n]===void 0?void 0:Ma(e,`${t}.${n}`,r[n])}}};function Fg(e,t){if(!Ki(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${qi(t)}`,line:U(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:U(e.source,[`presets`,r])});continue}let t=Ji(e,Pg,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function Ig(e,t){if(t===void 0)return{};if(!Ki(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${qi(t)}`,line:U(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:U(e.source,[`helpers`,r])});continue}n[r]=i}return n}const Lg=new Map;function Rg(e,t){Lg.set(e,{permanent:!0,resolve:t})}Rg(`themes`,()=>ui()),Rg(`styles`,()=>mi),Rg(`charsets`,()=>_i),Rg(`colorCompatibilities`,()=>vi);function zg(e){return new Map([[`looks`,Object.keys(e.looks)],[`presets`,dm(e.presets)]])}function Bg(e){return[...new Set([...Lg.keys(),...e.keys()])]}function Vg(e,t){if(typeof e!=`string`)return e;let n=t.get(e);if(n)return n;let r=Lg.get(e);if(r)return r.resolve();throw Error(`unknown option domain "${e}" (have: ${Bg(t).join(`, `)})`)}const Hg=/{{([\s\S]*?)}}/g,Ug=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g,Wg=/(?<![A-Za-z0-9_)])\.([A-Za-z_][\w]*(?:\.[A-Za-z_][\w]*)*)/g;function Gg(e){let t=new Set,n;for(Hg.lastIndex=0;(n=Hg.exec(e))!==null;){let e=n[1].replace(Ug,``),r;for(Wg.lastIndex=0;(r=Wg.exec(e))!==null;)t.add(r[1])}return t}const Kg=/\baction\s+$/;function qg(e){let t=new Set;Hg.lastIndex=0;let n;for(;(n=Hg.exec(e))!==null;){let e=n[1],r=0,i;for(Ug.lastIndex=0;(i=Ug.exec(e))!==null;)Kg.test(e.slice(r,i.index))&&t.add(i[0].slice(1,-1)),r=i.index+i[0].length}return t}const Jg=/\b(picker|menu)\s+$/;function Yg(e){let t=new Set;Hg.lastIndex=0;let n;for(;(n=Hg.exec(e))!==null;){let e=n[1],r=0,i=0,a;for(Ug.lastIndex=0;(a=Ug.exec(e))!==null;){let n=Jg.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 Xg(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 Zg={gitTaculous:`gitaculous`};function Qg(e,t){let n=new Map;for(let e of Object.keys(t)){let t=Np(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:U(e.source,[`presets`])})}function $g(e,t){t.globals.look!==void 0&&!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:U(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:U(e.source,[`globals`,`preset`])}),Qg(e,t.presets);let n=zg(t);for(let[r,i]of Object.entries(t.actions))!(`set`in i)||!(`from`in i)||typeof i.from!=`string`||Bg(n).includes(i.from)||e.issues.push({path:`actions.${r}.from`,message:`actions.${r} from: references unknown option domain "${i.from}" (have: ${Bg(n).join(`, `)})`,line:U(e.source,[`actions`,r,`from`])});for(let[n,r]of Object.entries(t.actions)){if(!Lh(r))continue;let i=r[Ih];i_(t,i)||e.issues.push({path:`actions.${n}.${Ih}`,message:`actions.${n} ${Ih}: "${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:U(e.source,[`actions`,n,Ih])})}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=ym(i);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${i}" is not a config globals field (have: ${La().join(`, `)}), a "segments.<name>.palette" target, or a "presets.<name>.root" target`,line:U(e.source,[`actions`,n,a])});continue}let s=e_.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:U(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){t_(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:U(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:U(e.source,[`actions`,n,a])})}}let r=o_(t),i=Nh(t),a=Object.entries(t.segments).filter(([,e])=>Yp(e.template)).map(([e])=>e),o=(t,n,r)=>{wh(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${Jm}" ${wh(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});let i=new Map;for(let e of Mi(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})},s=(n,a,o)=>{for(let s of Mi(n))if(s.when!==void 0&&u_(e,`${a}.when`,s.when,r,{line:o}),s.kind===`segment`){if(xh(s.name)){i||e.issues.push({path:a,message:`${a} places the global settings menu anchor "${Jm}", but this config declares no "${Mh}" variable — the menu is a click surface and every click composes a URL from "${Mh}", so it is not synthesized for a config without it. Declare a "${Mh}" 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=Zg[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})}}},c=d_(e.source);s(ya(t.root),c,U(e.source,[c]));for(let[n,r]of Object.entries(t.presets)){if(r.root===void 0)continue;let t=`presets.${n}.root`,i=U(e.source,[`presets`,n,`root`]);s(ba(r.root),t,i)}let l=new Map([[`root`,ya(t.root)]]);for(let e of dm(t.presets)){let{node:n,path:r}=mm(t,e);l.set(r,n)}for(let[t,n]of l)o(n,t,U(e.source,t.split(`.`)));for(let[n,i]of Object.entries(t.variables))c_(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))c_(e,`segments.${n}.vars.${t}`,a,r,n);for(let a of[`template`,`bg`,`fg`,`when`]){let o=i[a];if(typeof o==`string`){u_(e,`segments.${n}.${a}`,o,r,{segCtx:n});for(let r of qg(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}"`,line:U(e.source,[`segments`,n,a])});for(let r of Yg(o))Object.prototype.hasOwnProperty.call(t.actions,r)||e.issues.push({path:`segments.${n}.${a}`,message:`${a} references unknown action "${r}" (in a picker or menu)`,line:U(e.source,[`segments`,n,a])})}}}for(let[n,i]of Object.entries(t.variables))l_(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))l_(e,`segments.${n}.vars.${t}`,a,r,n);(r_(t)||a_(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:U(e.source,[`variables`])})}const e_=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function t_(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=U(e.source,[`actions`,n,r]);if(!dm(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${dm(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 n_(e){return[...Object.values(e.variables),...Object.values(e.segments).flatMap(e=>Object.values(e.vars??{}))].filter(e=>e.kind===`state`)}function r_(e){return n_(e).length>0}function i_(e,t){return n_(e).some(e=>e.kind===`state`&&e.key===t)}function a_(e){return Object.values(e.actions).some(e=>zh(e)||Bh(e)||Vh(e)||Hh(e)||Uh(e)||Wh(e))}function o_(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),s_(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 s_(e){return(e.kind===`shell`||e.kind===`file`)&&Pi(e.parse)===`json`}function c_(e,t,n,r,i){n.kind===`template`&&u_(e,`${t}.template`,n.template,r,{segCtx:i}),Ii(n)&&n.cache&&`key`in n.cache&&u_(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function l_(e,t,n,r,i){if(Ii(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:U(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function u_(e,t,n,r,i){for(let a of Gg(n)){if(Xg(a,r))continue;let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,o=n!==void 0&&Xg(n,r)?` (segment-local vars are namespaced — write ".${n}")`:``;e.issues.push({path:t,message:`Template references unknown variable ".${a}"${o}`,line:i?.line??U(e.source,t.split(`.`))})}}function d_(e){try{let t=Ze.default.parse(e);if(Ki(t)&&`root`in t)return`root`}catch{}return`layout`}function f_(e,t){let{graph:n,nodeInfo:r}=p_(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:U(e.source,o?.linePathParts??[`variables`,i])}),!0}if(t===0&&o(s))return!0}return i.set(t,2),a.pop(),!1}}function p_(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 Gg(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),Ii(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 m_=[`json5`,`json`];function h_(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function g_(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?f.homedir()+e.slice(1):e}function __(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?m_.map(t=>c.join(e,`.cc-candybar.${t}`)):[],...m_.map(e=>c.join(r,`.cc-candybar.${e}`)),...m_.map(e=>`${v_()}.${e}`)])]}function v_(){let e=process.env.XDG_CONFIG_HOME??c.join(f.homedir(),`.config`);return c.join(e,`cc-candybar`,`config`)}function y_(e,t,n){let r=[];for(let i of __(e,t,n)){let e=h_(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 b_(e,t,n){let r=y_(e,t,n);return r.kind===`default`?`${v_()}.${m_[0]}`:r.path}function x_(e){return S_(e).join(`
104
+ `)||null}function S_(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 C_(e,t){let n=__(e,t).filter(e=>h_(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 w_(e,t,n){let i=e===null?``:r.readFileSync(e,`utf-8`),a=e===null?{}:E_(e,i,n,ko(t));return{config:Ca(a,t),raw:a,source:i}}function T_(e,t=`<config>`,n=``,r=new Set(ui())){let i=[],a={source:n,issues:i,allowedPalettes:r,groups:[]};if($g(a,e),f_(a,e),i.length>0)throw new Di(t,i);return zm(Ph(e))}function E_(e,t,n=new Set(ui()),r=D_){let i=O_(e,t),a=[],o={source:t,issues:a,allowedPalettes:n,groups:[]};if(!Ki(i))throw new Di(e,[{path:``,message:`Config root must be an object, got ${qi(i)}`}]);let s=k_(o,i,r);if(a.length>0)throw new Di(e,a);return s}const D_=new Set;function O_(e,t){try{return Ze.default.parse(t)}catch(t){let n=t;throw new Di(e,[{path:``,message:`JSON5 syntax error: ${n.message}`,line:n.lineNumber,col:n.columnNumber}])}}function k_(e,t,n){for(let n of Object.keys(t))A_.has(n)||e.issues.push({path:n,message:`Unknown top-level key "${n}". Expected one of: ${[...A_].join(`, `)}`,line:U(e.source,[n])});let r={};return t.globals!==void 0&&(r.globals=ja(e,`globals`,t.globals)),t.variables!==void 0&&(r.variables=Za(e,`variables`,t.variables)),t.segments!==void 0&&(r.segments=Ao(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.
105
105
  Replace: layout: [["seg1", "seg2"], ["seg3"]]
106
106
  With: root: { v: [{ h: ["seg1", "seg2"] }, "seg3"] }
107
- Single-row example: root: { h: ["seg1", "seg2"] }`,line:U(e.source,[`layout`])}),t.root!==void 0&&(n.root=ks(e,`root`,t.root)),t.actions!==void 0&&(n.actions=Rh(e,t.actions)),t.looks!==void 0&&(n.looks=Eg(e,t.looks)),t.presets!==void 0&&(n.presets=Og(e,t.presets)),t.editGlobals!==void 0&&(n.editGlobals=Na(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(n.helpers=kg(e,t.helpers)),Rs(e,n),Hp(e,n),Zp(e,n),fs(e,n,Om,`the global settings menu`),n}const S_=new Set([`globals`,`variables`,`segments`,`layout`,`root`,`actions`,`looks`,`presets`,`editGlobals`,`helpers`]);function C_(e){let t=D_(e.termCols),n=D_(e.termRows),r=O_(e.ssh),i=T_(e.tmux),a=w_(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 w_(e){return typeof e==`string`&&e!==``?l_(e):void 0}function T_(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 E_=1e4;function D_(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>E_?E_:t}function O_(e){return typeof e==`boolean`?e:void 0}var k_=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function A_(e){let t=Buffer.from(JSON.stringify(e),`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function j_(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 k_(`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 k_(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function M_(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=j_(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(A_(t))})}async function N_(e,t,n){let r=null;try{r=await R_(Pe(),t.connectMs);let i=await M_(r,{v:3,...e},t.budgetMs);return I_(e.kind,i,n)}catch(e){return L_(e)}finally{r&&r.destroy()}}function P_(e,t){return typeof e==`string`?e:t}function F_(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function I_(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=P_(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:F_(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 L_(e){if(e instanceof k_||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 R_(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 z_(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 B_={connectMs:50,budgetMs:150},V_={connectMs:50,budgetMs:200};function H_(e){let t=e.output;return typeof t==`string`?t:void 0}function U_(e,t,n,r){return N_({kind:`render`,hookData:e,args:t,cwd:n,...r},B_,H_)}function W_(e,t){return N_({kind:`click`,verb:e,value:t},V_,H_)}let G_=null;function K_(e){if(G_!==null)return G_;r.mkdirSync(c.dirname(e),{recursive:!0});try{G_=r.statSync(e).size}catch{G_=0}return G_}function q_(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{}G_=0}function Y(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=Ke(),t=K_(e);r.appendFileSync(e,n),G_=t+Buffer.byteLength(n,`utf8`),G_>=5242880&&q_(e)}catch(e){G_=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}const J_=`CC_CANDYBAR_RSS_LIMIT_MB`;function Y_(e){let t=e[J_];if(t===void 0)return 512;let n=/^\d+$/.test(t)?Number(t):NaN;if(!Number.isSafeInteger(n)||n<=0)throw Error(`${J_} must be a positive integer (MB), got ${JSON.stringify(t)}`);return n}function X_(e){return Y_(e)*2}const Z_=1024*1024;function Q_(e){return Y_(e)*Z_}function $_(e){let t=e.rssLimitBytes??512*Z_,n=e.snapshotsKeep??3,r=!1;function i(){if(r)return!0;let i=e.rssBytes();if(i<=t)return!1;r=!0,e.log(`warn`,`RSS ${i} > limit ${t}; writing heap snapshot then shutting down`);try{let t=new Date(e.now()).toISOString().replace(/[:.]/g,`-`),r=c.join(e.snapshotDir,`heap-${t}-${e.pid}.heapsnapshot`),i=e.writeHeapSnapshot(r);e.log(`info`,`heap snapshot written: ${i}`),ev(e.listSnapshots(),n,e.removeFile)}catch(t){e.log(`warn`,`heap snapshot failed: ${t.message}`)}return e.shutdown(0),!0}function a(){let n=e.rssBytes();return n>t*.75?`rss ${n} approaching limit ${t}`:null}function o(e=6e4){let t=setInterval(()=>{i()},e);return t.unref(),{disarm:()=>clearInterval(t)}}return{checkRss:i,describeNextRestart:a,arm:o}}function ev(e,t,n){let r=[...e].sort((e,t)=>{let n=e.slice(e.lastIndexOf(`/`)+1);return t.slice(t.lastIndexOf(`/`)+1).localeCompare(n)});for(let e of r.slice(t))try{n(e)}catch{}}function tv(e,t,n={}){let i=Ne();return{now:()=>Date.now(),pid:process.pid,snapshotDir:i,log:Y,rssBytes:()=>process.memoryUsage().rss,writeHeapSnapshot:e=>_.writeHeapSnapshot(e),listSnapshots:()=>{try{return r.readdirSync(i).filter(e=>e.startsWith(`heap-`)&&e.endsWith(`.heapsnapshot`)).map(e=>c.join(i,e))}catch{return[]}},removeFile:e=>r.unlinkSync(e),shutdown:t,startedAtMs:e,...n}}function nv(e={}){if(vv()!==null)return;let n=e.spawn??yv,r=hv();if(r.kind===`contended`){let e=iv();e!==null&&e>2e3&&(t.stderr.write(`cc-candybar: spawn-lock held ${e}ms (likely crashed holder) — spawning unlocked\n`),rv(n));return}if(r.kind===`error`){t.stderr.write(`cc-candybar: spawn-lock unavailable (${r.reason}) — spawning unlocked\n`),rv(n);return}try{rv(n)}finally{_v()}}function rv(e){dv()&&av(e)}function iv(){try{let e=r.statSync(He());return Date.now()-e.mtimeMs}catch{return null}}function av(e){try{e()||t.stderr.write(`cc-candybar: daemon spawn returned false (unable to resolve script path?)
108
- `)}catch(e){t.stderr.write(`cc-candybar: daemon spawn failed: ${e.message}\n`)}}function ov(e,t){return e===null?{kind:`allow`}:e<-1e4?{kind:`allow-future-garbage`,futureMs:-e}:e<t?{kind:`deny`}:{kind:`allow`}}function sv(e){return Math.min(3e3*2**Math.min(Math.max(e,0),5),6e4)}function cv(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 lv(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 uv(){try{r.unlinkSync(We())}catch(e){e.code!==`ENOENT`&&t.stderr.write(`cc-candybar: could not reset spawn.backoff: ${e.message}\n`)}}function dv(){let e=Ue(),n=We(),r=cv(n),i=ov(fv(e),sv(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`),pv(e),lv(n,Math.min(r+1,5)),!0)}function fv(e){try{return Date.now()-r.statSync(e).mtimeMs}catch{return null}}function pv(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 mv=null;function hv(){let e=He();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 mv={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(!gv(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 gv(e){try{let t=r.statSync(e);return Date.now()-t.mtimeMs>1e4}catch{return!0}}function _v(){if(!mv)return;let{fd:e,path:t}=mv;mv=null;try{r.closeSync(e)}catch{}try{r.unlinkSync(t)}catch{}}function vv(){try{return r.mkdirSync(Ne(),{recursive:!0}),null}catch(e){return`mkdir ${Ne()}: ${e.message}`}}function yv(){let e=t.execPath,n=t.argv[1];return n?Oe({bin:e,args:[`--max-old-space-size=${X_(t.env)}`,n,`daemon`],category:`daemon-spawn`}).ok:!1}const bv=`cc-candybar`,xv=`dispatch`,Sv=`set-state`,Cv=`step-state`,wv=`copy`,Tv=`open-vscode`,Ev=`toolbar-toggle`,Dv=`show-config-error`,Ov=`show-config-warning`,kv=`set-config`,Av=`step-config`,jv=`reset-config`,Mv=`apply-layout-op`,Nv=`undo`,Pv=`redo`,Fv=`apply-update`,Iv=`doctor-run`,Lv=`doctor-fix`;function Rv(e){return e.map(encodeURIComponent).join(`/`)}function zv(e){return e.length===0?[]:e.split(`/`).map(decodeURIComponent)}function Bv(e){return`${bv}://${xv}/${e.map(e=>`e=${encodeURIComponent(`${e.verb}/${Rv(e.args)}`)}`).join(`&`)}`}function Vv(e){return new y(e).getAll(`e`).map(Hv)}function Hv(e){let t=e.indexOf(`/`);return t===-1?{verb:e,value:``}:{verb:e.slice(0,t),value:e.slice(t+1)}}const Uv=`1.59.0`;function Wv(){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 Gv(e,t){return e?.kind===`ok`?e.value:t}const Kv=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function qv(e){let t=Kv.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 Jv(e){return e.join(`.`)}function Yv([e,t,n],[r,i,a]){return e-r||t-i||n-a}const Xv=`@promptctl/cc-candybar`;async function Zv(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`?qv(n.latest):Z}catch(e){return Q(e instanceof Error?e.message:String(e))}}function Qv(e,t){let n=qv(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=Yv(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 $v(e,t){switch(t.kind){case`current`:return{stream:`stdout`,text:`✓ cc-candybar ${Jv(t.installed)} is the latest release.\n`};case`ahead`:return{stream:`stdout`,text:`cc-candybar ${Jv(t.installed)} is newer than the registry's latest release (${Jv(t.latest)}): an unpublished build.\n`};case`stale`:{let n=Jv(t.latest);return{stream:`stderr`,text:`⚠ cc-candybar ${Jv(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 ey=`CCCandybarURLHandler`,ty=[],ny={"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 ry(e){return/^[A-Za-z0-9_./=,:-]+$/.test(e)?e:`'${e.replace(/'/g,`'\\''`)}'`}function iy(e,t){return[e,...t].map(ry).join(` `)}function ay(){return c.join(f.homedir(),`Applications`,`${ey}.app`)}function oy(){if(process.platform!==`darwin`)throw Error(`URL handler installation requires macOS (found platform: ${process.platform}).`)}function sy(){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 cy(){return c.join(sy(),`bin`,`cc-candybar`)}function ly(){return c.join(sy(),`dist`,`index.mjs`)}function uy(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(`
109
- `)}function dy(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 fy(t){let n=ny[`${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 py(e,t){c.resolve(e)!==c.resolve(t)&&r.copyFileSync(e,t)}function my(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 ${Xv}@latest install`);return n.toString(`latin1`)===`#!`?`node-shim`:`native`}finally{r.closeSync(t)}}function hy(){let e=dy(process.argv[1]);if(!r.existsSync(e))throw Error(`install: bundled dist not found at ${e}. Reinstall the package.`);let t=fy(e);if(!r.existsSync(t.sourcePath))throw Error(`install: render entry not found at ${t.sourcePath}. Reinstall the package.`);r.mkdirSync(c.dirname(ly()),{recursive:!0}),r.mkdirSync(c.dirname(cy()),{recursive:!0}),py(e,ly()),py(t.sourcePath,cy()),r.chmodSync(cy(),493),r.rmSync(c.join(sy(),`url-handler.mjs`),{force:!0});let n=my(cy());return process.stdout.write(`Staged cc-candybar v${Uv} runtime at ${sy()}\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:cy(),distPath:ly(),entryKind:n}}function gy(){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>${bv}</string>`,` </array>`,` </dict>`,`</array>`].join(`
110
- `)}]}function _y(e){let t=ay();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=De({bin:`/usr/bin/osacompile`,args:[`-o`,t,`-e`,uy(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 gy())De({bin:`/usr/bin/plutil`,args:[`-remove`,e,i],category:`install.plutil`});for(let{key:e,xml:t}of gy()){let n=De({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 ${bv}:// with Launch Services\n`);let a=De({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(`✓ ${ey}.app installed and registered.\n`),process.stdout.write(` Test: open '${bv}://hello-world' && pbpaste\n`)}function vy(){oy(),_y(hy().distPath)}function yy(e,t=bv){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:wv,value:r}:{verb:decodeURIComponent(r.slice(0,i)),value:r.slice(i+1)}}async function by(e){e||(process.stderr.write(`url-handle: missing URL argument.
111
- `),process.exit(1));let t;try{t=yy(e)}catch(e){process.stderr.write(`url-handle: ${e instanceof Error?e.message:String(e)}\n`),process.exit(1)}let n=await W_(t.verb,t.value);n.kind===`ok`&&process.exit(0),n.kind===`transient`&&(nv(),process.stderr.write(`url-handle: daemon unavailable (${n.cause}: ${n.message})\n`),process.exit(1)),process.stderr.write(xy(n)+`
112
- `),process.exit(1)}function xy(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 Sy(){return`✓ install complete.
107
+ Single-row example: root: { h: ["seg1", "seg2"] }`,line:U(e.source,[`layout`])}),t.root!==void 0&&(r.root=Bs(e,`root`,t.root)),t.actions!==void 0&&(r.actions=Gh(e,t.actions)),t.looks!==void 0&&(r.looks=Ng(e,t.looks)),t.presets!==void 0&&(r.presets=Fg(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=Pa(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=Ig(e,t.helpers)),Js(e,r),Zp(e,r),am(e,r),Oo(e,r,To,`the global settings menu`),r}const A_=new Set([`globals`,`variables`,`segments`,`layout`,`root`,`actions`,`looks`,`presets`,`editGlobals`,`helpers`]);function j_(e){let t=F_(e.termCols),n=F_(e.termRows),r=I_(e.ssh),i=N_(e.tmux),a=M_(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 M_(e){return typeof e==`string`&&e!==``?g_(e):void 0}function N_(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 P_=1e4;function F_(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>P_?P_:t}function I_(e){return typeof e==`boolean`?e:void 0}var L_=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function R_(e){let t=Buffer.from(JSON.stringify(e),`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function z_(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 L_(`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 L_(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function B_(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=z_(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(R_(t))})}async function V_(e,t,n){let r=null;try{r=await K_(Pe(),t.connectMs);let i=await B_(r,{v:3,...e},t.budgetMs);return W_(e.kind,i,n)}catch(e){return G_(e)}finally{r&&r.destroy()}}function H_(e,t){return typeof e==`string`?e:t}function U_(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function W_(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=H_(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:U_(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 G_(e){if(e instanceof L_||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 K_(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 q_(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 J_={connectMs:50,budgetMs:150},Y_={connectMs:50,budgetMs:200};function X_(e){let t=e.output;return typeof t==`string`?t:void 0}function Z_(e,t,n,r){return V_({kind:`render`,hookData:e,args:t,cwd:n,...r},J_,X_)}function Q_(e,t){return V_({kind:`click`,verb:e,value:t},Y_,X_)}let $_=null;function ev(e){if($_!==null)return $_;r.mkdirSync(c.dirname(e),{recursive:!0});try{$_=r.statSync(e).size}catch{$_=0}return $_}function tv(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{}$_=0}function Y(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=Ke(),t=ev(e);r.appendFileSync(e,n),$_=t+Buffer.byteLength(n,`utf8`),$_>=5242880&&tv(e)}catch(e){$_=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}const nv=`CC_CANDYBAR_RSS_LIMIT_MB`;function rv(e){let t=e[nv];if(t===void 0)return 512;let n=/^\d+$/.test(t)?Number(t):NaN;if(!Number.isSafeInteger(n)||n<=0)throw Error(`${nv} must be a positive integer (MB), got ${JSON.stringify(t)}`);return n}function iv(e){return rv(e)*2}const av=1024*1024;function ov(e){return rv(e)*av}function sv(e){let t=e.rssLimitBytes??512*av,n=e.snapshotsKeep??3,r=!1;function i(){if(r)return!0;let i=e.rssBytes();if(i<=t)return!1;r=!0,e.log(`warn`,`RSS ${i} > limit ${t}; writing heap snapshot then shutting down`);try{let t=new Date(e.now()).toISOString().replace(/[:.]/g,`-`),r=c.join(e.snapshotDir,`heap-${t}-${e.pid}.heapsnapshot`),i=e.writeHeapSnapshot(r);e.log(`info`,`heap snapshot written: ${i}`),cv(e.listSnapshots(),n,e.removeFile)}catch(t){e.log(`warn`,`heap snapshot failed: ${t.message}`)}return e.shutdown(0),!0}function a(){let n=e.rssBytes();return n>t*.75?`rss ${n} approaching limit ${t}`:null}function o(e=6e4){let t=setInterval(()=>{i()},e);return t.unref(),{disarm:()=>clearInterval(t)}}return{checkRss:i,describeNextRestart:a,arm:o}}function cv(e,t,n){let r=[...e].sort((e,t)=>{let n=e.slice(e.lastIndexOf(`/`)+1);return t.slice(t.lastIndexOf(`/`)+1).localeCompare(n)});for(let e of r.slice(t))try{n(e)}catch{}}function lv(e,t,n={}){let i=Ne();return{now:()=>Date.now(),pid:process.pid,snapshotDir:i,log:Y,rssBytes:()=>process.memoryUsage().rss,writeHeapSnapshot:e=>_.writeHeapSnapshot(e),listSnapshots:()=>{try{return r.readdirSync(i).filter(e=>e.startsWith(`heap-`)&&e.endsWith(`.heapsnapshot`)).map(e=>c.join(i,e))}catch{return[]}},removeFile:e=>r.unlinkSync(e),shutdown:t,startedAtMs:e,...n}}function uv(e={}){if(Ev()!==null)return;let n=e.spawn??Dv,r=Cv();if(r.kind===`contended`){let e=fv();e!==null&&e>2e3&&(t.stderr.write(`cc-candybar: spawn-lock held ${e}ms (likely crashed holder) — spawning unlocked\n`),dv(n));return}if(r.kind===`error`){t.stderr.write(`cc-candybar: spawn-lock unavailable (${r.reason}) — spawning unlocked\n`),dv(n);return}try{dv(n)}finally{Tv()}}function dv(e){yv()&&pv(e)}function fv(){try{let e=r.statSync(He());return Date.now()-e.mtimeMs}catch{return null}}function pv(e){try{e()||t.stderr.write(`cc-candybar: daemon spawn returned false (unable to resolve script path?)
108
+ `)}catch(e){t.stderr.write(`cc-candybar: daemon spawn failed: ${e.message}\n`)}}function mv(e,t){return e===null?{kind:`allow`}:e<-1e4?{kind:`allow-future-garbage`,futureMs:-e}:e<t?{kind:`deny`}:{kind:`allow`}}function hv(e){return Math.min(3e3*2**Math.min(Math.max(e,0),5),6e4)}function gv(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 _v(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 vv(){try{r.unlinkSync(We())}catch(e){e.code!==`ENOENT`&&t.stderr.write(`cc-candybar: could not reset spawn.backoff: ${e.message}\n`)}}function yv(){let e=Ue(),n=We(),r=gv(n),i=mv(bv(e),hv(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`),xv(e),_v(n,Math.min(r+1,5)),!0)}function bv(e){try{return Date.now()-r.statSync(e).mtimeMs}catch{return null}}function xv(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 Sv=null;function Cv(){let e=He();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 Sv={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(!wv(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 wv(e){try{let t=r.statSync(e);return Date.now()-t.mtimeMs>1e4}catch{return!0}}function Tv(){if(!Sv)return;let{fd:e,path:t}=Sv;Sv=null;try{r.closeSync(e)}catch{}try{r.unlinkSync(t)}catch{}}function Ev(){try{return r.mkdirSync(Ne(),{recursive:!0}),null}catch(e){return`mkdir ${Ne()}: ${e.message}`}}function Dv(){let e=t.execPath,n=t.argv[1];return n?Oe({bin:e,args:[`--max-old-space-size=${iv(t.env)}`,n,`daemon`],category:`daemon-spawn`}).ok:!1}const Ov=`cc-candybar`,kv=`dispatch`,Av=`set-state`,jv=`step-state`,Mv=`copy`,Nv=`open-vscode`,Pv=`toolbar-toggle`,Fv=`show-config-error`,Iv=`show-config-warning`,Lv=`set-config`,Rv=`step-config`,zv=`reset-config`,Bv=`apply-layout-op`,Vv=`undo`,Hv=`redo`,Uv=`apply-update`,Wv=`doctor-run`,Gv=`doctor-fix`;function Kv(e){return e.map(encodeURIComponent).join(`/`)}function qv(e){return e.length===0?[]:e.split(`/`).map(decodeURIComponent)}function Jv(e){return`${Ov}://${kv}/${e.map(e=>`e=${encodeURIComponent(`${e.verb}/${Kv(e.args)}`)}`).join(`&`)}`}function Yv(e){return new y(e).getAll(`e`).map(Xv)}function Xv(e){let t=e.indexOf(`/`);return t===-1?{verb:e,value:``}:{verb:e.slice(0,t),value:e.slice(t+1)}}const Zv=`1.60.0`;function Qv(){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 $v(e,t){return e?.kind===`ok`?e.value:t}const ey=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;function ty(e){let t=ey.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 ny(e){return e.join(`.`)}function ry([e,t,n],[r,i,a]){return e-r||t-i||n-a}const iy=`@promptctl/cc-candybar`;async function ay(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`?ty(n.latest):Z}catch(e){return Q(e instanceof Error?e.message:String(e))}}function oy(e,t){let n=ty(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=ry(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 sy(e,t){switch(t.kind){case`current`:return{stream:`stdout`,text:`✓ cc-candybar ${ny(t.installed)} is the latest release.\n`};case`ahead`:return{stream:`stdout`,text:`cc-candybar ${ny(t.installed)} is newer than the registry's latest release (${ny(t.latest)}): an unpublished build.\n`};case`stale`:{let n=ny(t.latest);return{stream:`stderr`,text:`⚠ cc-candybar ${ny(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 cy=`CCCandybarURLHandler`,ly=[],uy={"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 dy(e){return/^[A-Za-z0-9_./=,:-]+$/.test(e)?e:`'${e.replace(/'/g,`'\\''`)}'`}function fy(e,t){return[e,...t].map(dy).join(` `)}function py(){return c.join(f.homedir(),`Applications`,`${cy}.app`)}function my(){if(process.platform!==`darwin`)throw Error(`URL handler installation requires macOS (found platform: ${process.platform}).`)}function hy(){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 gy(){return c.join(hy(),`bin`,`cc-candybar`)}function _y(){return c.join(hy(),`dist`,`index.mjs`)}function vy(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(`
109
+ `)}function yy(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 by(t){let n=uy[`${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 xy(e,t){c.resolve(e)!==c.resolve(t)&&r.copyFileSync(e,t)}function Sy(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 ${iy}@latest install`);return n.toString(`latin1`)===`#!`?`node-shim`:`native`}finally{r.closeSync(t)}}function Cy(){let e=yy(process.argv[1]);if(!r.existsSync(e))throw Error(`install: bundled dist not found at ${e}. Reinstall the package.`);let t=by(e);if(!r.existsSync(t.sourcePath))throw Error(`install: render entry not found at ${t.sourcePath}. Reinstall the package.`);r.mkdirSync(c.dirname(_y()),{recursive:!0}),r.mkdirSync(c.dirname(gy()),{recursive:!0}),xy(e,_y()),xy(t.sourcePath,gy()),r.chmodSync(gy(),493),r.rmSync(c.join(hy(),`url-handler.mjs`),{force:!0});let n=Sy(gy());return process.stdout.write(`Staged cc-candybar v${Zv} runtime at ${hy()}\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:gy(),distPath:_y(),entryKind:n}}function wy(){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>${Ov}</string>`,` </array>`,` </dict>`,`</array>`].join(`
110
+ `)}]}function Ty(e){let t=py();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=De({bin:`/usr/bin/osacompile`,args:[`-o`,t,`-e`,vy(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 wy())De({bin:`/usr/bin/plutil`,args:[`-remove`,e,i],category:`install.plutil`});for(let{key:e,xml:t}of wy()){let n=De({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 ${Ov}:// with Launch Services\n`);let a=De({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(`✓ ${cy}.app installed and registered.\n`),process.stdout.write(` Test: open '${Ov}://hello-world' && pbpaste\n`)}function Ey(){my(),Ty(Cy().distPath)}function Dy(e,t=Ov){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:Mv,value:r}:{verb:decodeURIComponent(r.slice(0,i)),value:r.slice(i+1)}}async function Oy(e){e||(process.stderr.write(`url-handle: missing URL argument.
111
+ `),process.exit(1));let t;try{t=Dy(e)}catch(e){process.stderr.write(`url-handle: ${e instanceof Error?e.message:String(e)}\n`),process.exit(1)}let n=await Q_(t.verb,t.value);n.kind===`ok`&&process.exit(0),n.kind===`transient`&&(uv(),process.stderr.write(`url-handle: daemon unavailable (${n.cause}: ${n.message})\n`),process.exit(1)),process.stderr.write(ky(n)+`
112
+ `),process.exit(1)}function ky(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 Ay(){return`✓ install complete.
113
113
  Restart Claude Code to pick up the new statusline.
114
114
  Tip: every bar carries a settings menu — click ☰ for preset
115
115
  switching, edit mode, and clickable theme/look/style/wrap/padding controls.
116
- `}async function Cy(e){let t=e.includes(`--force`),n=e.filter(e=>e!==`--force`),r=n.length>0?n:[...ty],i=hy();process.platform===`darwin`?_y(i.distPath):process.stdout.write(`Skipping URL handler (cmd-click verbs are macOS-only).
117
- `),wy(i.binPath,r,t),process.stdout.write(Sy());let a=$v(Xv,Qv(Uv,await Zv(Xv,fetch,`https://registry.npmjs.org`)));process[a.stream].write(a.text)}function wy(e,t,n,i){let a=i??Wv();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,ry(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:iy(e,t)},Ae(a,JSON.stringify(o,null,2)),process.stdout.write(`Updated ${a}\n`)}function Ty(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 Ey(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 Dy(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 Oy(e,t){let n=Ey(e);if(n.kind===`owned`&&n.pid===t)try{r.unlinkSync(e)}catch{}}function ky(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 Ay(e,t,n,r){let i=jy(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 jy(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 My(e){let t=!1;function n(){let n=Ay(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 Ny(e,t=De){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 Py(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 Fy(e,t=Ny){let n=t(e);return n.kind===`start`?n.token:null}const Iy=`CC_CANDYBAR_PARENT_PID`;function Ly(e){let t=e[Iy];if(t===void 0)return{kind:`outlives-nobody`};let n=Number.parseInt(t,10);if(!Number.isInteger(n)||n<=0)throw Error(`${Iy} must be a positive integer pid, got ${JSON.stringify(t)}`);return{kind:`anchored`,pid:n}}function Ry(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 zy(e){try{return t.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function By(){let e=Number(process.env.CC_CANDYBAR_DAEMON_CEILING??``);return Number.isInteger(e)&&e>0?e:16}function Vy(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 Hy(e){try{return r.readdirSync(e).filter(e=>e.endsWith(`.json`)).map(t=>c.join(e,t))}catch{return[]}}function Uy(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 Wy(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 Gy(e){if(!e.isolated)return{decision:Vy(!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=Vy(!0,Wy(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 Ky(e,t,n,r){let i=n(e);if(i!==null&&i.pid===t)try{r(e)}catch{}}function qy(e,t={}){return{isolated:!!process.env.CC_CANDYBAR_SOCKET,registryDir:Ve(),ceiling:By(),pid:process.pid,startTime:e,isSameLiveProcess:(e,t)=>Py(e,t,{readStartTime:Ny,pidAlive:zy}),listFiles:Hy,readEntry:Uy,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?Fe:e=>{Fe(c.dirname(e)),Fe(e)},...t}}function Jy(e){return e<32||e===127||e>=128&&e<=159}function Yy(e){let t=``;for(let n of e)t+=Jy(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function Xy(e,t){let n=Yy(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const Zy=`\x1B[38;2;255;255;255m`,Qy=`\x1B[48;2;200;40;40m`;function $y(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 eb={fg:$y(Zy),bg:$y(Qy)},tb={fg:$y(`\x1B[38;2;0;0;0m`),bg:$y(`\x1B[48;2;220;160;40m`)},nb={unicode:{},ascii:{glyph:`>`}},rb={unicode:{},ascii:{left:`(`,right:`)`}};function ib(e,t,n){switch(e){case`capsule`:return new Rr(rb[t]);case`plain`:return new zr(n===void 0?{}:{separator:n});case`powerline`:return new Lr(nb[t]);default:return e}}function ab(e){switch(e){case`powerline`:return 1;case`capsule`:return 2;case`plain`:return 0;default:return e}}function ob(e,t){if(e.length===0)return``;let n=ib(t.style,t.charset,t.separator);if(t.wrap&&Number.isFinite(t.width)){let r=Hr(new ii([...e],{joiner:n}),{width:t.width,colorSystem:t.colorCompatibility});return r.endsWith(`
118
- `)?r.slice(0,-1):r}return Hr(new Mr([...e],n),{colorSystem:t.colorCompatibility})}function sb(e){return Math.min(20,e??20)}const cb={heading:`ERROR`,glyph:`⚠`,colors:eb},lb={heading:`WARNING`,glyph:`⚠`,colors:tb},ub={heading:`UPDATE`,glyph:`⬆`,colors:tb};function db(e,t){return{text:Yy(e),link:t}}function fb(e,t,n){let[r,...i]=[pb(e,cb,Dv),t,pb(n,lb,Ov)].flat();return r===void 0?null:{channels:[r,...i]}}function pb(e,t,n){let r=Bv([{verb:n,args:[e]}]),[i,...a]=e.split(/\r\n|\r|\n/).map(e=>db(e,r)).filter(e=>e.text!==``).map(e=>[e]);return i===void 0?[]:[{severity:t,message:e,lines:[i,...a]}]}function mb(e){return e.channels.map(e=>`${e.severity.heading}\n${e.message}\n`).join(`
119
- `)}function hb(e,t,n,r){if(t===null)return e;let i=gb(r),a=t.channels.flatMap(e=>_b(e,i)),o=n.failedConfigFile!==null||a.length>r.rowCap,s=a.slice(0,r.rowCap-Number(o)),c=o?[vb(t,n,a.length-s.length,i)]:[],l=[...s,...c].join(`
120
- `);return e?`${l}\n${e}`:l}function gb(e){return{style:`plain`,separator:``,width:e.width,wrap:!0,padding:0,charset:`unicode`,colorCompatibility:e.colorCompatibility}}function _b(e,t){let n=new V({bgcolor:e.severity.colors.bg,color:e.severity.colors.fg}),r=A(Math.max(2,t.width-1)),i=(e,t)=>new jr(`${e} `,{style:t,end:``,noWrap:!0});return e.lines.flatMap((a,o)=>ob([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=>Vt(e,r)).map(e=>i(e,t))})],t).split(`
121
- `))}function vb(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new V({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new jr(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: ${Yy(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(Yy(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=jr.fromFragments([...d,...p]).truncate(r.width,{overflow:`ellipsis`});return m.noWrap=!0,ob([m],r)}const yb=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function bb(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function xb(e,t){return r.readdirSync(t).filter(yb).sort().flatMap(n=>{let i=c.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?xb(e,i):[[c.relative(e,i).split(c.sep).join(`/`),bb(i,a)]]})}function Sb(e){let t=ee.createHash(`sha256`);for(let[n,r]of xb(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const Cb=e=>e.slice(0,7);function wb(e){return c.dirname(c.dirname(e))}function Tb(){return{version:Uv,digest:`d5c2113f1f0006a883e7421842853cbf533184631d0c94623855bbab4df32047`}}function Eb(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 Db(e,t){try{let n=wb(b(e)),i=c.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=Sb(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:Eb(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 Ob=/^-?\d+$/;function kb(e,t,n){return e===void 0?t:Math.max(t,Math.min(n,e))}function Ab(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 jb(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!Ob.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 Mb(e,t,n){return r=>r?Ob.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 Nb(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=>!Ob.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:kb(r[0].seed,t,i)}}return{kind:`int`}}function Pb(e){return e===`config`?`set-config`:`set-state`}function Fb(e,t,n){return t.kind===`int`?jb(`menu page "${e}"`):t.kind===`range`?Mb(t.min,t.max,`${n} stepper "${e}"`):Ab(t.allowed,`${n} "${e}"`,Pb(n))}function Ib(e,t,n){return Fb(e,Nb(e,t,n),n)}function Lb(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:Nb(e,n,t)}))}function Rb(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=Ib(e,a.specs,t)}else{let r=[i];n.set(e,{permanent:!1,kind:i.kind,validator:Ib(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=Ib(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=Nb(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 zb=Rb({},`config`);function Bb(){return zb.listKeys()}function Vb(e,t){return zb.validate(e,t)}function Hb(e){return zb.rangeParamsFor(e)}function Ub(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:Pg(e.from,n)}}]:`cycle`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:e.cycle}}]:`removeSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[Qp({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[Qp({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:Pg(e.insertSegmentFrom,n).map(t=>Qp({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max,seed:kb(t.get(e.persist),e.min,e.max)}}]:[]}function Wb(e){return Ra(e.globals)}function Gb(e){let t=new Set;for(let n of qb(e)){let e=`persist`in n?n.persist:`reset`in n?n.reset:null;if(e===null)continue;let r=dm(e);r?.scope===`preset-root`&&t.add(r.preset)}return[...t].map(e=>({key:um(e),spec:{kind:`allow-list`,allowed:[]}}))}function Kb(e){let t=Wb(e),n=new Map([...Mg(e),...bh(e)]);return[...Gb(e),...qb(e).flatMap(e=>Ub(e,t,n))]}function qb(e){return Object.values(e.actions).flatMap(jh)}function Jb(e){return Lb(Kb(e),`config`)}function Yb(e,t){return zb.register(e,t)}const Xb=ui(),Zb=new Set(Xb),Qb=new Set(mi),$b=e=>e?Zb.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${Xb.join(`, `)})`}:{ok:!1,reason:`theme name is required`},ex=e=>e?Qb.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown style "${e}" (have: ${mi.join(`, `)})`}:{ok:!1,reason:`style name is required`},tx=new Set([`1`,`true`]),nx=new Set([`0`,`false`]),rx=Rb({style:ex,theme:$b,"toolbar-expanded":e=>tx.has(e)?{ok:!0,value:`1`}:nx.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}});function ix(){return rx.listKeys()}function ax(e,t){return rx.register(e,t)}function ox(e,t){return rx.validate(e,t)}function sx(e){return rx.rangeParamsFor(e)}function cx(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:Pg(e.from,n)}}]:`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:kb(t.get(e.set),e.min,e.max)}}]:[]}function lx(e){let t=new Set(rx.listBaselineKeys());return e.filter(e=>e.spec.kind!==`allow-list`||!t.has(e.key))}function ux(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 Ra(e.globals))t.set(n,r);return t}function dx(e){let t=ux(e),n=Mg(e);return lx(Object.values(e.actions).flatMap(jh).flatMap(e=>cx(e,t,n)))}function fx(e){return Lb(dx(e))}const px=`update.dismissed`,mx=`updateNotice`;function hx(e){return e.kind===`source`?e.newer.digest:Jv(e.newer)}const gx=e=>`${e.version} [${Cb(e.digest)}]`;function _x(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:gx(e.newer),running:gx(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:Jv(e.newer),running:Jv(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${Xv}@${Jv(e.newer)}`,`install`]}}}}const vx={kind:`idle`},yx={kind:`running`};function bx(e,t,n){if(e===null)return[];let r=hx(e);if(!n.enabled||n.dismissed===r)return[];let i=_x(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(`
122
- `),c=Bv([{verb:Ov,args:[s]}]),l=t.kind===`running`?db(`[${i.busy}]`,c):db(`[${i.act}]`,Bv([{verb:Fv,args:[n.sessionId]}]));return[{severity:ub,message:s,lines:[[db(a,c),l,db(`[dismiss]`,Bv([{verb:Sv,args:[n.sessionId,px,r]}])),db(`[disable]`,Bv([{verb:kv,args:[n.sessionId,mx,`false`]}]))],...o.map(e=>[db(e,c)])]}]}function xx(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 Sx(e){switch(e.kind){case`current`:return[`info`,`build: current ${gx(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${gx(e.source)}, running ${gx(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function Cx(e){switch(e.kind){case`current`:return[`info`,`release: current ${Jv(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${Jv(e.latest)}, running ${Jv(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${Jv(e.installed)}, latest ${Jv(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function wx(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const Tx=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function Ex(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=Tx(e.stderr)??e.error??Tx(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function Dx(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=vx,d=null,f=wx(s),p=wx(s),m=()=>xx(c,l);function h(){let e=m(),t=e===null?null:hx(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:ax(px,{kind:`allow-list`,allowed:[t]})})}function g(){c=Db(t,Tb),f(Sx(c)),h()}async function _(){l=Qv(Uv,await Zv(Xv,a,i)),p(Cx(l)),h()}return{arm(){Yb(mx,{kind:`allow-list`,allowed:[`false`]}),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>bx(m(),u,e),act(){let e=m();if(e===null)throw new $(`apply-update: nothing newer is known to apply`);let t=_x(e);if(u.kind===`running`)throw new $(`apply-update: already ${t.busy}`);u=yx,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),Ee({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=vx,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=Ex(n);u={kind:`failed`,identity:hx(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}function Ox(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??kx(t.stderr)].filter(Boolean).join(`, `)}`)}function kx(e){return e.trim().split(`
123
- `,1)[0]??``}function Ax(e,t){if(e.kind!==`ok`)return e;let n=t(e.value);return n===null?Z:X(n)}function jx(e){if(e.kind!==`ok`)return e;let t=e.value.trim();return t?X(t):Z}const Mx=/^[A-Za-z]:[\\/]/;function Nx(e){let t=e.trim();if(Mx.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 Px(e){return Nx(e)?.host||null}function Fx(e){let t=Px(e);return t?t===`github.com`||t.endsWith(`.github.com`)?`github`:/(^|\.)gitlab\./.test(t)?`gitlab`:null:null}function Ix(e){let t=new Map;for(let n of e.split(`
124
- `)){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 Lx(e){return e.urls.find(e=>Hx(e)!==null)??e.urls[0]??null}function Rx(e){return e.find(e=>e.name===`origin`)??e[0]??null}function zx(e){let t=Rx(e);return t?Lx(t):null}function Bx(e){let t=Rx(e);return t?t.urls.find(e=>Fx(e)!==null)??Lx(t):null}function Vx(e){let t=(Nx(e)?.path??e.replace(/[\\/]+$/,``)).split(`/`);return(t[t.length-1]??``).replace(/\.git$/,``)||null}function Hx(e){let t=Nx(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 Ux(e){let t=zx(e);return t===null?null:Hx(t)}function Wx(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??kx(t.stderr)].filter(Boolean).join(`, `)}`)}function Gx(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Kx(e){let t=`detached`,n=Z,r=Z,i=Z,a=0,o=0,s=0,c=0;for(let l of e.split(`
125
- `)){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.slice(0,7))}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,sha:n,upstream:r,workingTree:{staged:a,unstaged:o,untracked:s,conflicts:c}}}function qx(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(!Gx(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 Jx(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(!Gx(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}var Yx=class{isGitRepo(e){try{return r.existsSync(c.join(e,`.git`))}catch{return!1}}async execGitAsync(e,t){return Ee({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){return jx(Ox(`git rev-parse --show-toplevel`,await this.execGitAsync([`rev-parse`,`--show-toplevel`],{cwd:e,timeout:2e3}),`absent`))}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=a.value.sha),t.showUpstream&&(o.upstream=a.value.upstream),t.showTag&&(o.tag=await this.getNearestTagAsync(r)),t.showTimeSinceCommit&&(o.timeSinceCommit=await this.getTimeSinceLastCommitAsync(r));let[s,c]=await Promise.all([t.showStashCount?this.getStashCountAsync(r):void 0,t.showRepoName||t.showRepoUrl?this.getRemotesAsync(r):void 0]);return s!==void 0&&(o.stashCount=s),c!==void 0&&t.showRepoName&&(o.repoName=Ax(c,e=>this.repoNameFrom(e,r)),o.isWorktree=i),c!==void 0&&t.showRepoUrl&&(o.repoUrl=Ax(c,Ux)),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 jx(Ox(`git describe --tags`,await this.execGitAsync([`describe`,`--tags`,`--abbrev=0`],{cwd:e,timeout:2e3}),`absent`))}async getTimeSinceLastCommitAsync(e){let t=jx(Ox(`git log -1`,await this.execGitAsync([`log`,`-1`,`--format=%ct`],{cwd:e,timeout:2e3}),`absent`));if(t.kind!==`ok`)return t;let n=parseInt(t.value)*1e3;return Number.isNaN(n)?Q(`git log -1: unparseable timestamp "${t.value}"`):X(Math.floor((Date.now()-n)/1e3))}async getStashCountAsync(e){let t=Ox(`git stash list`,await this.execGitAsync([`stash`,`list`],{cwd:e,timeout:2e3}),`failed`);if(t.kind!==`ok`)return t;let n=t.value.trim();return X(n?n.split(`
126
- `).length:0)}async getRemotesAsync(e){let t=Ox(`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`?Ix(t.value):[])}repoNameFrom(e,t){let n=zx(e);return(n===null?null:Vx(n))??c.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=Bx(t.value);return n===null?Z:X(n)}async execForgeAsync(e,t,n){return Ee({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=Fx(t);return n===`github`?Wx(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,qx):n===`gitlab`?Wx(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,Jx):Z}isWorktree(e){try{let t=c.join(e,`.git`);return!!(r.existsSync(t)&&r.statSync(t).isFile())}catch{return!1}}async getCoreAsync(e){E(`[GIT-EXEC] Running git status --porcelain=v2 in ${e}`);let t=Ox(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?X(Kx(t.value)):t}};const Xx=(e,t)=>E(t);var Zx=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??Xx}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()}};const Qx=(e,t)=>E(t),$x={showSha:!0,showStashCount:!0};function eS(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function tS(e){let t=t=>{try{return r.statSync(c.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function nS(e,t){return e.head!==t.head||e.index!==t.index}function rS(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 iS=class extends Yx{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;prCache=new Map;prFetchInFlight=new Map;refreshing=new Set;refreshAgain=new Set;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new Yx,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??Qx,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new Zx({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()}}async getGitInfo(e,t={},n){let r=await this.inner.resolveEffectiveGitDir(e,n);return r.kind===`ok`?this.getGitInfoForRoot(r.value,t):r}getGitInfoForRoot(e,t){let n=`${e}|${eS(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=tS(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}`,rS(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(async()=>{let i=await this.inner.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}`,rS(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,{...$x});n||this.safeInvoke(t,this.deliverable(s,a))})(),()=>{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){if(this.refreshing.has(e)){this.refreshAgain.add(e);return}let t=this.subscribersByRepo.get(e);!t||t.callbacks.size===0||(this.refreshing.add(e),this.doRefreshLoop(e))}async doRefreshLoop(e){try{do{this.refreshAgain.delete(e);let t=this.subscribersByRepo.get(e);if(!t||t.callbacks.size===0)return;let n=await this.getGitInfoForRoot(e,{...$x}),r=this.deliverable(n,e),i=this.subscribersByRepo.get(e);if(!i||i.callbacks.size===0)return;for(let e of[...i.callbacks])i.callbacks.has(e)&&this.safeInvoke(e,r)}while(this.refreshAgain.has(e))}finally{this.refreshing.delete(e),this.refreshAgain.delete(e)}}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=tS(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),nS(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.refreshing.clear(),this.refreshAgain.clear(),this.fetchInFlight.clear(),this.prCache.clear(),this.prFetchInFlight.clear(),this.ownsWatchers&&this.watchers.closeAll()}},aS=class{static CACHE_DIR=D();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 E(`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`?(E(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(E(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return E(`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`}),E(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await re(50);else throw e}return E(`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),E(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&E(`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){E(`Failed to create cache directories:`,e)}}static createProjectHash(e){return te(`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)){E(`Cache for ${e} is locked, waiting...`),await re(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(E(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(E(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return E(`No shared ${e} usage cache found`),null;E(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await re(75)}}return E(`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)){E(`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`),E(`[CACHE-SET] ${e} disk cache stored`)}catch(t){E(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const oS={"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 sS=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 aS.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await aS.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new v(this.GITHUB_PRICING_URL),n=ne({hostname:t.hostname,path:t.pathname,headers:{"User-Agent":`cc-candybar`,"Cache-Control":`no-cache`},timeout:5e3},t=>{if(t.statusCode!==200){E(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){E(`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)?(E(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),E(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(E(`Invalid pricing data structure`),e(null))}catch(t){E(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{E(`Response error:`,t),e(null)})});n.on(`error`,t=>{E(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{E(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return E(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return E(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,E(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),E(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,E(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(E(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(oS).length} models`),this.executionCache=oS,E(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(oS).length} models`),oS)}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 E(`[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),E(`[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 cS(e){if(!e)return 0;try{return o(e).mtimeMs}catch{return 0}}const lS=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 uS(e){return((...t)=>lS.run(()=>e(...t)))}const dS=uS(ae),fS=uS(C),pS=uS(w);async function mS(e,t){return lS.run(async()=>{let n=null;try{n=await ie(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=>{E(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}async function hS(e,t){return lS.run(async()=>{let n=null;try{n=await ie(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=>{E(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}function gS(){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 _S(e){let t=[];for(let n of e){let e=d(n,`projects`);if(a(e))try{let n=await dS(e,{withFileTypes:!0});for(let r of n)if(r.isDirectory()){let n=d(e,r.name);t.push(n)}}catch(t){E(`Failed to read projects directory ${e}:`,t)}}return t}async function vS(e,t,n){let r=[],i=d(t,e,`subagents`);try{let t=(await dS(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 fS(t,`utf-8`)).split(`
127
- `)[0];n&&JSON.parse(n).sessionId===e&&r.push(t)}catch{E(`Failed to check agent file ${t}`)}}}catch(e){E(`Failed to read subagents directory ${i}:`,e)}return r}const yS=new Map;async function bS(e){try{let t=await pS(e),n=t.size,r=yS.get(e);if(r&&r.mtime===t.mtimeMs&&r.size===n)return E(`[parse-cache] hit ${e}`),yS.delete(e),yS.set(e,r),r.entries;let i;return n>1048576?(E(`Using streaming parser for large file ${e} (${Math.round(n/1024)}KB)`),i=await TS(e)):i=await CS(e),E(`Parsed ${i.length} entries from ${e}`),n>5242880?i:(yS.delete(e),yS.size>=16&&yS.delete(yS.keys().next().value),yS.set(e,{mtime:t.mtimeMs,size:n,entries:i}),i)}catch(t){if(t.code===`ENOENT`)return E(`Transcript not present yet: ${e}`),[];throw t}}function xS(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,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 SS(e){let t=[];for(let n of e.split(`
128
- `))if(n.trim())try{let e=xS(JSON.parse(n));e&&t.push(e)}catch(e){E(`Failed to parse JSONL line: ${e}`);continue}return t}async function CS(e){return SS(await fS(e,`utf-8`))}async function wS(e,t){let n=await mS(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:SS(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,mtimeMs:a,ino:o},reset:s})}async function TS(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=T({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=xS(JSON.parse(t));e&&r.push(e)}catch(e){E(`Failed to parse JSONL line: ${e}`)}}),o.on(`close`,()=>{t(r)}),o.on(`error`,t=>{E(`Streaming parser error for ${e}:`,t),n(t)}),a.on(`error`,t=>{E(`File stream error for ${e}:`,t),n(t)})})}var ES=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 DS(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 OS={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},kS={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function AS(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function jS(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function MS(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function NS(e,t,n,r){let i=AS(new Date(jS())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:MS(),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 sS.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=AS(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...OS};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 PS(e){let t=0,n=0,r=MS(),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)??{...OS};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:kS,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 FS(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 IS=class{entries=new Map;flight=new ES;seeded=new Map;speedRings=new Map;speedFlight=new ES;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:kS,i=t?.cost?.total_cost_usd??null;return X({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e){let t=AS(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={...OS},i=!1;for(let e of this.entries.values()){i||=e.days.has(t);let n=e.days.get(t)??OS;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=cS(t);return this.speedFlight.run(`${e}:${r}`,async()=>{let i=await this.ingest(e,t,r);if(i.kind===`failed`)return i;let a=DS(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??cS(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 vS(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 wS(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 NS(r,l,s,c)),e===t&&(a=c.mtimeMs)}return X({files:i,...PS(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=jS(),n=await _S(gS()),r=[];for(let e of n){let n;try{n=await dS(e)}catch{continue}for(let i of n){if(!i.endsWith(`.jsonl`))continue;let n=d(e,i),a;try{a=(await pS(n)).mtimeMs}catch{continue}a<t||r.push({sessionId:i.slice(0,-6),path:n,mtime:a})}}await FS(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 LS=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function RS(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 zS(e){let t=await BS(e);return t.kind===`ok`?X(Math.floor((t.value+36e5)/1e3)):t}async function BS(e){for(let t of[65536,1048576]){let n=await hS(e,t);if(n.kind!==`ok`)return n;let r=VS(n.value.buf,n.value.fromStart);if(r!=null)return X(r);if(n.value.fromStart)return Z}return Z}function VS(e,t){let n=e.toString(`utf8`).split(`
129
- `),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!LS.test(t))continue;let r=RS(t);if(r!=null)return r}return null}function HS(e,t,n){let r=im(t(`preset`),e.globals.preset,e.presets),i=sm(e,r),a=t(`edit.mode`)===`open`?e.editGlobals:{};return{preset:r,presetCustomized:n(r),theme:ci(a.palette,t(`theme`),i.palette),look:fi(a.look,t(`look`),i.look,e.looks),style:gi(a.style,t(`style`),i.style),separator:a.default_separator??i.default_separator,autoWrap:Ti(a.autoWrap,t(`autoWrap`),i.autoWrap),padding:Ei(a.padding,t(`padding`),i.padding),charset:a.charset??i.charset??`unicode`,updateNotice:a.updateNotice??i.updateNotice??!0,colorCompatibility:a.colorCompatibility??i.colorCompatibility??`truecolor`}}const US=10*1e3;function WS(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 GS(e,t){if(!(t<60))return e*3600/t}function KS(e,t,n,r){let i=r-t;if(i<50||i>US)return;let a=n-e;if(!(a<=0))return a*1e3/i}function qS(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=KS(t.input,t.atMs,n.input,n.atMs),i=KS(t.output,t.atMs,n.output,n.atMs),a=KS(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 JS(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>US)continue;let o=KS(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function YS(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function XS(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`,()=>YS(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 ZS(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,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}`,i);let n=[],r=new Set;for(let t of Mi(ya(e.root))){if(t.when)for(let e of Rg(t.when))n.push(e);if(t.kind!==`segment`)continue;let r=e.segments[t.name];if(r){for(let e of[r.template,r.when,r.bg,r.fg])if(e)for(let t of Rg(e))n.push(t)}}let i=new Set;for(;n.length>0;){let e=n.pop();for(let a of QS(t,e)){if(r.has(a))continue;r.add(a);let e=t.get(a);if(e){if(e.kind===`input`)i.add(e.path);else if(e.kind===`template`)for(let t of Rg(e.template))n.push(t)}}}return i}function QS(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 $S(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function eC(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 tC(e,t,n,r,i,a){let o=e=>$S(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,eC(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(`tmux`,o(`tmux`),()=>t.tmuxService.getSessionId()),c(`cache`,o(`cache`),()=>zS(e.transcript_path)),c(`speed`,o(`speed`),()=>t.usageStore.observeSpeed(e.session_id,e.transcript_path,s))]),_=[],v=e=>{if(e.kind===`failed`){_.push(e.reason);return}return e.kind===`ok`?e.value:void 0},y=iC(l);_.push(...y.failures);let b=XS(a);_.push(...b.failures);let x=v(u),S=v(d),ee=v(f),te=v(p),ne=v(m),re=v(h);for(let e of _)t.log(`warn`,`provider fetch failed: ${e}`);let ie=e.rate_limits?.five_hour,C=e.rate_limits?.seven_day,ae=ie?WS(ie.used_percentage,ie.resets_at,18e6,s):void 0,w=C?WS(C.used_percentage,C.resets_at,6048e5,s):void 0,T=x?.session.cost,oe=te?.sessionDuration,se=o(`burn`)&&T!=null&&oe!=null?GS(T,oe):void 0,ce=v(g),le=ce===void 0?void 0:qS(ce),ue=ce===void 0?void 0:JS(ce),de=le!==void 0||ue!==void 0?{...le,...ue!==void 0&&{history:ue}}:void 0,fe=rC(process.env.HOME??process.env.USERPROFILE),pe=e.workspace?{...e.workspace,current_dir:rC(e.workspace.current_dir)??``,project_dir:rC(e.workspace.project_dir)??``}:e.workspace,me=x===void 0?void 0:nC({cost:x.session.cost,tokens:x.session.tokens}),he=S===void 0?void 0:{cost:S.cost,tokens:S.tokens},ge=te===void 0?void 0:nC({lastResponseTime:te.lastResponseTime,responseTime:te.responseTime,sessionDuration:te.sessionDuration,messageCount:te.messageCount,linesAdded:te.linesAdded,linesRemoved:te.linesRemoved});return{...e,...pe!==void 0&&{workspace:pe},...fe!==void 0&&{home:fe},...y.git!==void 0&&{git:y.git},...ne!==void 0&&{tmux:{session:ne}},host:b.host,theme:{effective:i.theme},look:{effective:i.look},preset:{effective:i.preset,customized:i.presetCustomized},style:{effective:i.style},charset:{effective:i.charset},colorCompatibility:{effective:i.colorCompatibility},autoWrap:{effective:i.autoWrap},padding:{effective:i.padding},...me!==void 0&&{session:me},...he!==void 0&&{today:he},...se!==void 0&&{burn:{costPerHour:se}},...de!==void 0&&{speed:de},...o(`block`)&&ie!==void 0&&{block:{nativeUtilization:ie.used_percentage,resetsAt:ie.resets_at,...ae!==void 0&&{etaMinutes:ae}}},...C!==void 0&&{weekly:{percentage:C.used_percentage,resetsAt:C.resets_at,...w!==void 0&&{etaMinutes:w}}},...re!==void 0&&{cache:{expiresAt:re}},...ee!==void 0&&{context:{totalTokens:ee.totalTokens,contextLeft:ee.contextLeftPercentage}},...ge!==void 0&&{metrics:ge}}}function nC(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 rC(e){return e===void 0||e.length===0||c.sep!==`\\`?e:e.replace(/\\/g,`/`)}function iC(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 aC=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,oC=`{{ \$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 (${aC}) (basename .project_dir) (ne (${aC}) "") }}{{ end }}{{ end }}{{ abbreviatePath \$dir }}`,sC={branch:`primary`,staged:`success`,unstaged:`warning`,untracked:`accent`,conflicts:`error`,ahead:`success`,behind:`warning`,stash:`accent`},cC=(e,t)=>`{{ fg (color "${sC[e]}") ${t} }}`,lC=`{{ readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3 }}`,uC=`{{ 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 }}${cC(`staged`,`(printf "+%v" .git.staged)`)}{{ $first = false }}{{ end }}{{ if gt .git.unstaged 0 }}{{ if not $first }} {{ end }}${cC(`unstaged`,`(printf "~%v" .git.unstaged)`)}{{ $first = false }}{{ end }}{{ if gt .git.untracked 0 }}{{ if not $first }} {{ end }}${cC(`untracked`,`(printf "?%v" .git.untracked)`)}{{ $first = false }}{{ end }}{{ if gt .git.conflicts 0 }}{{ if not $first }} {{ end }}${cC(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ $first = false }}{{ end }}){{ end }}`,dC=`{{ if ne .git.repoName "" }}{{ .git.repoName }} {{ end }}⎇ ${cC(`branch`,`.git.branch`)}{{ if .git.sha }} ♯ {{ .git.sha }}{{ end }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${cC(`ahead`,`(printf "↑%v" .git.ahead)`)}{{ end }}{{ if gt .git.behind 0 }}${cC(`behind`,`(printf "↓%v" .git.behind)`)}{{ end }}{{ end }}`+uC+`{{ if .git.upstream }} →{{ .git.upstream }}{{ end }}{{ if gt .git.stash 0 }} ${cC(`stash`,`(printf "⧇ %v" .git.stash)`)}{{ end }} {{ if eq .git.status "conflicts" }}{{ fg (color "error") "⚠" }}{{ else }}{{ if eq .git.status "dirty" }}{{ fg (color "warning") "●" }}{{ else }}{{ fg (color "success") "✓" }}{{ end }}{{ end }}`,fC={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}},segments:{directory:{template:oC,fg:`foreground`},model:{template:`✱ {{ formatModelName .model.display_name }}`,fg:`foreground`,when:`{{ ne .model.display_name "" }}`},sessionId:{template:`⌗{{ trunc 8 .session.id }}`,fg:`foreground`,when:`{{ ne .session.id "" }}`},version:{template:`◈ v{{ .version }}`,fg:`foreground`,when:`{{ ne .version "" }}`},tmux:{template:`tmux:{{ .tmux.session | default "none" }}`,fg:`foreground`,when:`{{ ne .tmux.session "" }}`},host:{template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,fg:`{{ contrastOn (bgOf) }}`,when:`{{ .host.ssh }}`},git:{template:dC,fg:lC,when:`{{ ne .git.branch "" }}`},gitaculous:{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 }}${cC(`staged`,`"S"`)}{{ end }}{{ if gt .git.unstaged 0 }}${cC(`unstaged`,`"U"`)}{{ end }}{{ if gt .git.untracked 0 }}${cC(`untracked`,`"?"`)}{{ end }}{{ if gt .git.conflicts 0 }}${cC(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ end }}{{ end }} ⎇ ${cC(`branch`,`.git.branch`)}{{ if ne .git.upstream "" }} [{{ .git.upstream }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${cC(`ahead`,`(printf "+%v" .git.ahead)`)}{{ end }}{{ if and (gt .git.ahead 0) (gt .git.behind 0) }}/{{ end }}{{ if gt .git.behind 0 }}${cC(`behind`,`(printf "-%v" .git.behind)`)}{{ end }}{{ end }}]{{ end }}{{ if gt .git.stash 0 }} ${cC(`stash`,`(printf "(%v stashed)" .git.stash)`)}{{ end }}{{ if gt .git.timeSinceCommit 0 }} ◷ {{ template "formatTimeSince" .git.timeSinceCommit }}{{ end }}`,fg:lC,when:`{{ ne .git.branch "" }}`},gitPr:{template:`{{ if ne .git.prUrl "" }}{{ link .git.prUrl (printf "⇆ #%v" .git.prNumber) }}{{ else }}⚠ PR{{ end }}`,fg:`foreground`,when:`{{ or (ne .git.prUrl "") (ne .git.prError "") }}`},toolbar:{template:`{{ action "copySession" "⎘ id" }} {{ action "openProject" "↗ proj" }} {{ action "openTranscript" "↗ log" }}{{ if ne .git.repoUrl "" }} {{ link .git.repoUrl "↗ repo" }}{{ end }} {{ action "edit.toggle" "✎ edit" "✎ done" }}`,fg:`foreground`},session:{template:`§ {{ template "formatCost" .session.cost }} ({{ template "formatTokens" .session.tokens }}){{ template "budgetStatus" (dict "cost" .session.cost "budget" .session.budget.amount "warn" .session.budget.warningThreshold) }}`,fg:`foreground`},today:{template:`☉ {{ template "formatCost" .today.cost }} ({{ template "formatTokens" .today.tokens }}){{ template "budgetStatus" (dict "cost" .today.cost "budget" .today.budget.amount "warn" .today.budget.warningThreshold) }}`,fg:`foreground`},block:{template:`◱ {{ round .block.nativeUtilization }}% ({{ template "formatResetCountdown" .block.resetsAt }})`,bg:`{{ ramp (round .block.nativeUtilization) "step" 0 "panel" .block.budget.heatThreshold "warning" .block.budget.warningThreshold "error" }}`,fg:`{{ ramp (round .block.nativeUtilization) "step" 0 "foreground" .block.budget.heatThreshold "button-color-foreground" }}`,when:`{{ gt .block.resetsAt 0 }}`},weekly:{template:`◑ {{ round .weekly.percentage }}% ({{ template "formatResetCountdown" .weekly.resetsAt }})`,bg:`{{ ramp (round .weekly.percentage) "step" 0 "panel" .weekly.budget.heatThreshold "warning" .weekly.budget.warningThreshold "error" }}`,fg:`{{ ramp (round .weekly.percentage) "step" 0 "foreground" .weekly.budget.heatThreshold "button-color-foreground" }}`,when:`{{ gt .weekly.resetsAt 0 }}`},burnrate:{template:`⚡ {{ template "formatRate" .burn.costPerHour }} · {{ template "formatEta" .block.etaMinutes }} to 5h · {{ template "formatEta" .weekly.etaMinutes }} to wk`,bg:`{{ ramp .block.etaMinutes "step" -1 "panel" 0 "error" .burn.eta.errorMinutes "warning" .burn.eta.warnMinutes "panel" }}`,fg:`{{ ramp .block.etaMinutes "step" -1 "foreground" 0 "button-color-foreground" .burn.eta.warnMinutes "foreground" }}`,when:`{{ or (gt .block.resetsAt 0) (gt .weekly.resetsAt 0) }}`},speed:{template:`⇅ out {{ template "formatSpeed" .speed.output }} · in {{ template "formatSpeed" .speed.input }} · tot {{ template "formatSpeed" .speed.total }}`,fg:`foreground`,when:`{{ gt .session.tokens 0 }}`},tokenSparkline:{template:`⚡ {{ sparkline .speed.history 24 }}`,fg:`foreground`,when:`{{ ne .speed.history "" }}`},cacheTimer:{template:`◴ {{ if le (minutesUntilReset .cache.expiresAt) 0 }}cold{{ else }}{{ minutesUntilReset .cache.expiresAt }}m{{ end }}`,fg:`{{ if le (minutesUntilReset .cache.expiresAt) 8 }}error{{ else }}{{ if le (minutesUntilReset .cache.expiresAt) 20 }}warning{{ else }}foreground{{ end }}{{ end }}`,when:`{{ gt .cache.expiresAt 0 }}`},context:{template:`◔ {{ formatInteger .context.totalTokens }} ({{ .context.contextLeft }}%)`,bg:`{{ ramp .context.contextLeft "step" 0 "error" 21 "warning" 41 "surface-active" }}`,fg:`{{ ramp .context.contextLeft "step" 0 "button-color-foreground" 41 "foreground" }}`,when:`{{ gt .context.totalTokens 0 }}`},metrics:{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 }} `,fg:`foreground`,when:`{{ or .metrics.lastResponseTime .metrics.responseTime .metrics.sessionDuration .metrics.messageCount .metrics.linesAdded .metrics.linesRemoved }}`},charsetControl:{template:`{{ .charset.effective }} {{ menu "applyCharsetForever" "▸" "▾" }} {{ action "resetCharset" "↺" }}`,fg:`foreground`},colorCompatControl:{template:`{{ .colorCompatibility.effective }} {{ menu "applyColorCompatForever" "▸" "▾" }} {{ action "resetColorCompat" "↺" }}`,fg:`foreground`},directoryPaletteControl:{template:`🎨 directory {{ menu "applyDirectoryPaletteForever" "▸" "▾" }} {{ action "resetDirectoryPalette" "↺" }}`,fg:`foreground`}},root:{rows:{identity:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`toolbar`},{kind:`group`,name:`settings`,label:`⚙ terminal`,direction:`horizontal`,children:[`charsetControl`,`colorCompatControl`,`directoryPaletteControl`]}]},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`}]}}},actions:{copySession:{copy:`{{ .session.id }}`},copyDir:{copy:`{{ .current_dir }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},applyCharsetForever:{persist:`charset`,from:`charsets`},resetCharset:{reset:`charset`},applyColorCompatForever:{persist:`colorCompatibility`,from:`colorCompatibilities`},resetColorCompat:{reset:`colorCompatibility`},applyDirectoryPaletteForever:{persist:`segments.directory.palette`,from:`themes`},resetDirectoryPalette:{reset:`segments.directory.palette`}},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:`segment`,name:`toolbar`}]},{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`,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 .)) }}`}},pC=new Set([fC.globals.palette,...Object.values(fC.segments).map(e=>e.palette)].filter(e=>e!==void 0)),mC=Ca(y_(`<default>`,JSON.stringify(fC),pC),fC);var hC=me((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:tn}function r(){cn||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){rn(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function d(e,t,n){rn(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 an.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(ie())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&C(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,ae(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 ee(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.
130
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function te(){return(te=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 ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function re(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,C(e,t)}function ie(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch{}return(ie=function(){return!!e})()}function C(e,t){return(C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ae(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 w(e){var t=typeof Map==`function`?new Map:void 0;return(w=function(e){function n(){return b(e,arguments,ne(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}}),C(n,e)})(e)}function T(e){return Object.assign((function(t,n){if(se(n))return e.t(t,n);oe(t,n,e)}),e)}function oe(e,t,n){g(e,mn)||u(e,mn,te({},e[mn])),function(e){return e.i===`override`}(n)||(e[mn][t]=n)}function se(e){return typeof e==`object`&&typeof e.kind==`string`}function ce(e,t,n){t===void 0&&(t=un),n===void 0&&(n=un);var r=new hn(e);return t!==un&&ft(r,t),n!==un&&pt(r,n),r}function le(e,t,n){return St(e)?e:Array.isArray(e)?L.array(e,{name:n}):c(e)?L.object(e,void 0,{name:n}):p(e)?L.map(e,{name:n}):m(e)?L.set(e,{name:n}):typeof e!=`function`||lt(e)||yt(e)?e:l(e)?nr(e):Xn(n,e)}function ue(e){return e}function de(e,t){return{i:e,u:t,o:fe,s:pe,t:me}}function fe(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:lt(n.value)?1:(rn(r,t,he(e,this,t,n,!1)),2)}function pe(e,t,n,r){var i=he(e,this,t,n);return e.l(t,i,r)}function me(e,n){var r,i=n.kind,a=n.name,o=n.addInitializer,s=this,c=function(e){var t;return Pe(s.u?.name??a.toString(),e,(t=s.u?.autoAction)!=null&&t)};return i==`field`?function(e){var t,n=e;return lt(n)||(n=c(n)),(t=s.u)!=null&&t.bound&&((n=n.bind(this)).isMobxAction=!0),n}:i==`method`?(lt(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+`):
131
- '`+s.i+`' can only be used on properties with a function value.`)}function he(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:Pe(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 ge(e,t){return{i:e,u:t,o:E,s:_e,t:ve}}function E(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)||!yt(e.h[t]))&&this.s(e,t,n,!1)===null?0:yt(n.value)?1:(rn(r,t,ye(e,0,0,n,!1,!1)),2)}function _e(e,t,n,r){var i=ye(e,0,0,n,this.u?.bound);return e.l(t,i,r)}function ve(e,t){var n,r=t.name,i=t.addInitializer;return yt(e)||(e=nr(e)),(n=this.u)!=null&&n.bound&&i((function(){var e=this[r].bind(this);e.isMobXFlow=!0,this[r]=e})),e}function ye(e,t,n,r,i,a){a===void 0&&(a=z.safeDescriptors);var o=r.value;return yt(o)||(o=nr(o)),i&&((o=o.bind(e.v??e.h)).isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function be(e,t){return{i:e,u:t,o:xe,s:Se,t:Ce}}function xe(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Se(e,t,n,r){return e.m(t,te({},this.u,{get:n.get,set:n.set}),r)}function Ce(e,t){var n=this,r=t.name;return(0,t.addInitializer)((function(){var t=Ht(this)[F],i=te({},n.u,{get:e,context:this});i.name||=`ObservableObject.`+r.toString(),t.j.set(r,new Fn(i))})),function(){return this[F].O(r)}}function we(e,t){return{i:e,u:t,o:Te,s:Ee,t:De}}function Te(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Ee(e,t,n,r){return e.g(t,n.value,this.u?.enhancer??le,r)}function De(e,t){function n(e,t){var n=Ht(e)[F],i=new Nn(t,r.u?.enhancer??le,`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 Oe(e){return{i:`true`,u:e,o:ke,s:Ae,t:je}}function ke(e,t,n,r){var i,a,o;if(n.get)return On.o(e,t,n,r);if(n.set){var s=lt(n.set)?n.set:Pe(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!z.safeDescriptors||e.p,set:s})===null?0:2:(rn(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?nr.bound:nr).o(e,t,n,r):((a=this.u)!=null&&a.autoBind?Xn.bound:Xn).o(e,t,n,r);var c=!1===this.u?.deep?L.ref:L;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 Ae(e,t,n,r){var i;return n.get?On.s(e,t,n,r):n.set?e.l(t,{configurable:!z.safeDescriptors||e.p,set:Pe(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?L.ref:L).s(e,t,n,r))}function je(){t(`'`+this.i+`' cannot be used as a decorator`)}function Me(e){return e||bn}function D(e){return!0===e.deep?le:!1===e.deep?ue:(t=e.defaultDecorator)&&(n=(r=t.u)?.enhancer)!=null?n:le;var t,n,r}function Ne(e,t,n){return se(t)?xn.t(e,t):o(t)?void oe(e,t,xn):St(e)?e:c(e)?L.object(e,t,n):Array.isArray(e)?L.array(e,t):p(e)?L.map(e,t):m(e)?L.set(e,t):typeof e==`object`&&e?e:L.box(e,t)}function Pe(e,t,n,r){function i(){return Fe(0,n,t,r||this,arguments)}return n===void 0&&(n=!1),i.isMobxAction=!0,i.toString=function(){return t.toString()},jn&&(Mn.value=e,rn(i,`name`,Mn)),i}function Fe(e,t,n,r,i){var a=Ie(0,t);try{return n.apply(r,i)}catch(e){throw a._=e,e}finally{Le(a)}}function Ie(e,t){var n=z.trackingDerivation,r=!t||!n;et();var i=z.allowStateChanges;r&&(Ke(),i=ze(!0));var a={A:r,k:n,M:i,V:Je(!0),R:!1,N:0,T:An++,C:kn};return kn=a.T,a}function Le(e){kn!==e.T&&t(30),kn=e.C,e._!==void 0&&(z.suppressReactionErrors=!0),Be(e.M),Ye(e.V),tt(),e.A&&qe(e.k),z.suppressReactionErrors=!1}function Re(e,t){var n=ze(e);try{return t()}finally{Be(n)}}function ze(e){var t=z.allowStateChanges;return z.allowStateChanges=e,t}function Be(e){z.allowStateChanges=e}function Ve(e){return e instanceof Rn}function He(e){switch(e.I){case R.L:return!1;case R.P:case R.K:return!0;case R.B:for(var t=Je(!0),n=Ke(),r=e.D,i=r.length,a=0;a<i;a++){var o=r[a];if(Ln(o)){if(z.disableErrorBoundaries)o.get();else try{o.get()}catch{return qe(n),Ye(t),!0}if(e.I===R.K)return qe(n),Ye(t),!0}}return Xe(e),qe(n),Ye(t),!1}}function Ue(e,t,n){var r=Je(!0);Xe(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=R.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&&Qe(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Ze(l,e))}r!==R.L&&(e.I=r,e.H())}(e),Ye(r),i}function We(e){var t=e.D;e.D=[];for(var n=t.length;n--;)Qe(t[n],e);e.I=R.P}function Ge(e){var t=Ke();try{return e()}finally{qe(t)}}function Ke(){var e=z.trackingDerivation;return z.trackingDerivation=null,e}function qe(e){z.trackingDerivation=e}function Je(e){var t=z.allowStateReads;return z.allowStateReads=e,t}function Ye(e){z.allowStateReads=e}function Xe(e){if(e.I!==R.L){e.I=R.L;for(var t=e.D,n=t.length;n--;)t[n].U=R.L}}function Ze(e,t){e.F.add(t),e.U>t.I&&(e.U=t.I)}function Qe(e,t){e.F.delete(t),e.F.size===0&&$e(e)}function $e(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,z.pendingUnobservations.push(e))}function et(){z.inBatch++}function tt(){if(--z.inBatch==0){it();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 Fn&&n.X())}z.pendingUnobservations=[]}}function nt(e){var t=z.trackingDerivation;return t===null?(e.F.size===0&&z.inBatch>0&&$e(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 rt(e){e.U!==R.K&&(e.U=R.K,e.F.forEach((function(e){e.I===R.L&&e.H(),e.I=R.K})))}function it(){z.inBatch>0||z.isRunningReactions||Wn(at)}function at(){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 ot(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}}function st(e){return function(t,n){return a(t)?Pe(t.name||`<unnamed action>`,t,e):a(n)?Pe(t,n,e):se(n)?(e?B:Kn).t(t,n):o(n)?oe(t,n,e?B:Kn):o(t)?T(de(e?`autoAction`:`action`,{name:t,autoAction:e})):void 0}}function ct(e){return Fe(0,!1,e,this,void 0)}function lt(e){return a(e)&&!0===e.isMobxAction}function ut(e,t){function n(){e(i)}var r;t===void 0&&(t=sn);var i,a=t?.name??`Autorun`;if(t.scheduler||t.delay){var o=dt(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 dt(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:Zn}function ft(e,t,n){return mt(`onBO`,e,t,n)}function pt(e,t,n){return mt(`onBUO`,e,t,n)}function mt(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 ht(e,t,n,r){var i=pn(t);return Zt((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 gt(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(gt)),n}function _t(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(_t)),t}function vt(e){a(e.cancel)&&e.cancel()}function yt(e){return!0===e?.isMobXFlow}function bt(e,t){return t===void 0?Ln(e):!1===Wt(e)||!e[F].j.has(t)?!1:Ln(Yt(e,t))}function xt(e,t){return!!e&&(t===void 0?Wt(e)||!!e[F]||gn(e)||Gn(e)||Ln(e):!!Wt(e)&&e[F].j.has(t))}function St(e){return xt(e)}function Ct(e){return Wt(e)?e[F].nt():V(e)||_r(e)?Array.from(e.keys()):zt(e)?e.map((function(e,t){return t})):void t(5)}function wt(e,n){return Wt(e)?e[F].it(n):V(e)||_r(e)?e.has(n):zt(e)?n>=0&&n<e.length:void t(10)}function Tt(e){if(Wt(e))return e[F].rt();t(38)}function Et(e,t,n){return e.set(t,n),n}function Dt(e,t){t===void 0&&(t=void 0),et();try{return e.apply(t)}finally{tt()}}function Ot(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=Pe(`When-effect`,t),o=ut((function(t){Re(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())}),n);return o}function kt(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=Ot(e,n,te({},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 At(e){return e[F]}function jt(e){return e.et!==void 0&&e.et.length>0}function Mt(e,t){var n=e.et||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Nt(e,n){var r=Ke();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{qe(r)}}function Pt(e){return e.ut!==void 0&&e.ut.length>0}function Ft(e,t){var n=e.ut||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function It(e,t){var n=Ke(),r=e.ut;if(r){for(var i=0,a=(r=r.slice()).length;i<a;i++)r[i](t);qe(n)}}function Lt(e,t,n,i){return n===void 0&&(n=`ObservableArray`),i===void 0&&(i=!1),r(),Zt((function(){var r=new sr(n,t,i,!1);d(r.j,F,r);var a=new Proxy(r.j,or);return r.v=a,e&&e.length&&r.ot(0,0,e),a}))}function O(e,t){typeof Array.prototype[e]==`function`&&(cr[e]=t(e))}function k(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)&&dr(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 yr(e,new Map,String(n),function(e){return e?e.defaultDecorator??Oe(e):void 0}(t))),e}function Ut(e){return vr[e]||(vr[e]={get:function(){return this[F].O(e)},set:function(t){return this[F].S(e,t)}})}function Wt(e){return!!s(e)&&br(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 qt(e){rn(wr.prototype,``+e,Kt(e))}function Jt(e){if(e>Sr){for(var t=Sr;t<e+100;t++)qt(t);Sr=e}}function j(e,t,n){return new wr(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(_r(e))return e.st;if(V(e)){if(n===void 0)return e.lt;var r=e.vt.get(n)||e.dt.get(n);return r||t(25,n,Xt(e)),r}if(Wt(e)){if(!n)return t(26);var i=e[F].j.get(n);return i||t(27,n,Xt(e)),i}if(gn(e)||Ln(e)||Gn(e))return e}else if(a(e)&&Gn(e[F]))return e[F];t(28)}function M(e,n){return e||t(29),n===void 0?gn(e)||Ln(e)||Gn(e)||V(e)||_r(e)?e:e[F]?e[F]:void t(24,e):M(Yt(e,n))}function Xt(e,t){var n;if(t!==void 0)n=Yt(e,t);else{if(lt(e))return e.name;n=Wt(e)||V(e)||_r(e)?M(e):Yt(e)}return n.tt}function Zt(e){var t=Ke(),n=ze(!0);et();try{return e()}finally{tt(),Be(n),qe(t)}}function Qt(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=Tr.call(t);if(c!==Tr.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=$t(t),n=$t(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 $t(e){return zt(e)?e.slice():p(e)||V(e)||m(e)||_r(e)?Array.from(e.entries()):e}function en(e){return e[Symbol.iterator]=N,Object.assign(Object.create(Er),e)}function N(){return this}Object.defineProperty(e,`__esModule`,{value:!0});var tn={},P=Object.assign,nn=Object.getOwnPropertyDescriptor,rn=Object.defineProperty,an=Object.prototype,on=[];Object.freeze(on);var sn={};Object.freeze(sn);var cn=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]=nn(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=R.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 nt(this)},t.reportChanged=function(){et(),rt(this),tt()},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 Qt(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 Qt(e,t,1)}},vn=T({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=Oe(),bn={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(bn);var xn=we(`observable`),Sn=we(`observable.ref`,{enhancer:ue}),I=we(`observable.shallow`,{enhancer:function(e,t,n){return e==null||Wt(e)||zt(e)||V(e)||_r(e)?e:Array.isArray(e)?L.array(e,{name:n,deep:!1}):c(e)?L.object(e,void 0,{name:n,deep:!1}):p(e)?L.map(e,{name:n,deep:!1}):m(e)?L.set(e,{name:n,deep:!1}):void 0}}),Cn=we(`observable.struct`,{enhancer:function(e,t){return Qt(e,t)?t:e}}),wn=T(xn);P(Ne,wn);var Tn,L=P(Ne,{box:function(e,t){var n=Me(t);return new Nn(e,D(n),n.name,!0,n.equals)},array:function(e,t){var n=Me(t);return(!1===z.useProxies||!1===n.proxy?j:Lt)(e,D(n),n.name)},map:function(e,t){var n=Me(t);return new mr(e,D(n),n.name)},set:function(e,t){var n=Me(t);return new gr(e,D(n),n.name)},object:function(e,t,n){return Zt((function(){return ht(!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,rr))}({},n),e,t)}))},ref:T(Sn),shallow:T(I),deep:wn,struct:T(Cn)}),En=be(`computed`),Dn=be(`computed.struct`,{equals:_n.structural}),On=function(e,t){if(se(t))return En.t(e,t);if(o(t))return oe(e,t,En);if(c(e))return T(be(`computed`,e));var n=c(t)?t:{};return n.get=e,n.name||=e.name||``,new Fn(n)};Object.assign(On,En),On.struct=T(Dn);var kn=0,An=1,jn=(Tn=nn((function(){}),`name`)?.configurable)!=null&&Tn,Mn={value:`action`,configurable:!0,writable:!1,enumerable:!1},Nn=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}re(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(jt(this)){var t=Nt(this,{object:this,type:ar,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(),Pt(this)&&It(this,{type:ar,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.Ot)},n.St=function(e){return Mt(this,e)},n._t=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.tt,object:this,type:ar,newValue:this.Ot,oldValue:void 0}),Ft(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),Pn=f(`ObservableValue`,Nn),Fn=function(){function e(e){this.I=R.P,this.D=[],this.W=null,this.F=new Set,this.q=0,this.$=0,this.U=R.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=In.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=Pe(`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===R.L&&(e.U=R.B,e.F.forEach((function(e){e.I===R.L&&(e.I=R.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(nt(this),He(this)){var e=z.trackingContext;this.Nt&&!e&&(z.trackingContext=this),this.trackAndCompute()&&function(e){e.U!==R.K&&(e.U=R.K,e.F.forEach((function(t){t.I===R.B?t.I=R.K:t.I===R.L&&(e.U=R.L)})))}(this),z.trackingContext=e}}else He(this)&&(this.Tt(),et(),this.Ot=this.Ct(!1),tt());var n=this.Ot;if(Ve(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===R.P,n=this.Ct(!0),r=t||Ve(e)||Ve(n)||!this.Vt(e,n);return r&&(this.Ot=n),r},n.Ct=function(e){this.isComputing=!0;var t,n=ze(!1);if(e)t=Ue(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 Be(n),this.isComputing=!1,t},n.X=function(){this.Nt||(We(this),this.Ot=void 0)},n._t=function(e,t){var n=this,r=!0,i=void 0;return ut((function(){var a=n.get();if(!r||t){var o=Ke();e({observableKind:`computed`,debugObjectName:n.tt,type:ar,object:n,newValue:a,oldValue:i}),qe(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)}}])}();Fn.It=1,Fn.Lt=2,Fn.pt=4,Fn.yt=8,Fn.wt=16;var R,In,Ln=f(`ComputedValue`,Fn);(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_`})(R||={}),function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`}(In||={});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=R.P,this.q=0,this.G=0,this.bt=0,this.Mt=In.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),it())},t.J=function(){if(!this.isDisposed){et(),this.isScheduled=!1;var e=z.trackingContext;if(z.trackingContext=this,He(this)){this.isTrackPending=!0;try{this.Pt()}catch(e){this.Dt(e)}}z.trackingContext=e,tt()}},t.track=function(e){if(!this.isDisposed){et(),this.isRunning=!0;var t=z.trackingContext;z.trackingContext=this;var n=Ue(this,e,void 0);z.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&We(this),Ve(n)&&this.Dt(n.cause),tt()}},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||(et(),We(this),tt()))},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=de(`action`),qn=de(`action.bound`,{bound:!0}),B=de(`autoAction`,{autoAction:!0}),Jn=de(`autoAction.bound`,{autoAction:!0,bound:!0}),Yn=st(!1);Object.assign(Yn,Kn);var Xn=st(!0);Object.assign(Xn,B),Yn.bound=T(qn),Xn.bound=T(Jn);var Zn=function(e){return e()},Qn=0,$n=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 re(t,e),t.prototype.toString=function(){return`Error: `+this.message},t}(w(Error)),er=ge(`flow`),tr=ge(`flow.bound`,{bound:!0}),nr=Object.assign((function(e,t){if(se(t))return er.t(e,t);if(o(t))return oe(e,t,er);var n=e,r=n.name||`<unnamed flow>`,i=function(){var e,t=this,i=arguments,o=++Qn,s=Yn(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=Yn(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=Yn(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=Yn(r+` - runid: `+o+` - cancel`,(function(){try{c&&vt(c);var t=s.return(void 0),n=Promise.resolve(t.value);n.then(un,un),vt(n),e(new $n)}catch(t){e(t)}})),l};return i.isMobXFlow=!0,i}),er);nr.bound=T(tr);var rr={has:function(e,t){return At(e).it(t)},get:function(e,t){return At(e).ct(t)},set:function(e,t,n){var r;return!!o(t)&&((r=At(e).ht(t,n,!0))==null||r)},deleteProperty:function(e,t){var n;return!!o(t)&&((n=At(e).Ut(t,!0))==null||n)},defineProperty:function(e,t,n){var r;return(r=At(e).l(t,n))==null||r},ownKeys:function(e){return At(e).rt()},preventExtensions:function(){t(13)}},ir=Symbol(`mobx-keys`),ar=`update`,or={get:function(e,t){var n=e[F];return t===F?n:t===`length`?n.Ft():typeof t!=`string`||isNaN(t)?g(cr,t)?cr[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)}},sr=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 Mt(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}),Ft(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&&Jt(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=on),jt(this)){var a=Nt(this,{object:this.v,type:`splice`,index:e,removedCount:t,added:n});if(!a)return on;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=Pt(this),a=i||r?{observableKind:`array`,object:this.v,type:ar,debugObjectName:this.st.tt,index:e,newValue:t,oldValue:n}:null;this.st.reportChanged(),i&&It(this,a)},n.nn=function(e,t,n){var r=!this.zt&&!1,i=Pt(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&&It(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(jt(this)){var a=Nt(this,{type:ar,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}(),cr={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)}};O(`at`,k),O(`concat`,k),O(`flat`,k),O(`includes`,k),O(`indexOf`,k),O(`join`,k),O(`lastIndexOf`,k),O(`slice`,k),O(`toString`,k),O(`toLocaleString`,k),O(`toSorted`,k),O(`toSpliced`,k),O(`with`,k),O(`every`,A),O(`filter`,A),O(`find`,A),O(`findIndex`,A),O(`findLast`,A),O(`findLastIndex`,A),O(`flatMap`,A),O(`forEach`,A),O(`map`,A),O(`some`,A),O(`toReversed`,A),O(`reduce`,Rt),O(`reduceRight`,Rt);var lr,ur,dr=f(`ObservableArrayAdministration`,sr),fr={},pr=`add`,mr=function(){function e(e,n,r){var i=this;n===void 0&&(n=le),r===void 0&&(r=`ObservableMap`),this.Jt=void 0,this.tt=void 0,this[F]=fr,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),Zt((function(){i.lt=ce(`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 Nn(this.it(e),ue,`ObservableMap.key?`,!1);this.dt.set(e,r),pt(r,(function(){return t.dt.delete(e)}))}return n.get()},n.set=function(e,t){var n=this.it(e);if(jt(this)){var r=Nt(this,{type:n?ar:pr,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(jt(this)&&!Nt(this,{type:`delete`,object:this,name:e}))return!1;if(this.it(e)){var n=Pt(this),r=n?{observableKind:`map`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:this.vt.get(e).Ot,name:e}:null;return Dt((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&&It(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=Pt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:ar,object:this,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),r&&It(this,i)}},n.en=function(e,t){var n=this;Dt((function(){var r,i=new Nn(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=Pt(this);r&&It(this,r?{observableKind:`map`,debugObjectName:this.tt,type:pr,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=ee(this);!(n=r()).done;){var i=n.value;e.call(t,i[1],i[0],this)}},n.merge=function(e){var n=this;return V(e)&&(e=new Map(e)),Dt((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 an.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;Dt((function(){Ge((function(){for(var t,n=ee(e.keys());!(t=n()).done;)e.delete(t.value)}))}))},n.replace=function(e){var n=this;return Dt((function(){for(var r,i=function(e){if(p(e)||V(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=ee(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=ee(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 Ft(this,e)},n.St=function(e){return Mt(this,e)},S(e,[{key:`size`,get:function(){return this.lt.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),V=f(`ObservableMap`,mr),hr={},gr=function(){function e(e,n,r){var i=this;n===void 0&&(n=le),r===void 0&&(r=`ObservableSet`),this.tt=void 0,this[F]=hr,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)},Zt((function(){i.st=ce(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;Dt((function(){Ge((function(){for(var t,n=ee(e.vt.values());!(t=n()).done;)e.delete(t.value)}))}))},n.forEach=function(e,t){for(var n,r=ee(this);!(n=r()).done;){var i=n.value;e.call(t,i,i,this)}},n.add=function(e){var t=this;if(jt(this)){var n=Nt(this,{type:pr,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){Dt((function(){t.vt.add(t.Jt(e,void 0)),t.st.reportChanged()}));var r=Pt(this);r&&It(this,r?{observableKind:`set`,debugObjectName:this.tt,type:pr,object:this,newValue:e}:null)}return this},n.delete=function(e){var t=this;if(jt(this)&&!Nt(this,{type:`delete`,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Pt(this),r=n?{observableKind:`set`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:e}:null;return Dt((function(){t.st.reportChanged(),t.vt.delete(e)})),n&&It(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)&&!_r(e)?e.intersection(this):new Set(this).intersection(e)},n.union=function(e){return m(e)&&!_r(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)&&!_r(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)&&!_r(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},n.replace=function(e){var n=this;return _r(e)&&(e=new Set(e)),Dt((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 Ft(this,e)},n.St=function(e){return Mt(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`}}])}(),_r=f(`ObservableSet`,gr),vr=Object.create(null),yr=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 Fn)return n.set(t),!0;if(jt(this)){var r=Nt(this,{type:ar,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=Pt(this),a=i?{type:ar,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),i&&It(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 Nn(e in this.h,ue,`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!==an;){var a=nn(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{et();var r=this.Ut(e);if(!r)return r;if(jt(this)){var i=Nt(this,{object:this.v||this.h,name:e,type:pr,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=te({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.h,e,t))return!1}else rn(this.h,e,t);this.fn(e,t.value)}finally{tt()}return!0},n.g=function(e,t,n,r){r===void 0&&(r=!1);try{et();var i=this.Ut(e);if(!i)return i;if(jt(this)){var a=Nt(this,{object:this.v||this.h,name:e,type:pr,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 rn(this.h,e,s);var c=new Nn(t,n,`ObservableObject.key`,!1);this.j.set(e,c),this.fn(e,c.Ot)}finally{tt()}return!0},n.m=function(e,t,n){n===void 0&&(n=!1);try{et();var r=this.Ut(e);if(!r)return r;if(jt(this)&&!Nt(this,{object:this.v||this.h,name:e,type:pr,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 rn(this.h,e,a);this.j.set(e,new Fn(t)),this.fn(e,void 0)}finally{tt()}return!0},n.Ut=function(e,t){if(t===void 0&&(t=!1),!g(this.h,e))return!0;if(jt(this)&&!Nt(this,{object:this.v||this.h,name:e,type:`remove`}))return null;try{var n;et();var r=Pt(this),i=this.j.get(e),a=void 0;if(!i&&r&&(a=nn(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 Nn&&(a=i.Ot),rt(i)),this.lt.reportChanged(),(n=this.sn)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&It(this,{type:`remove`,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{tt()}return!0},n._t=function(e){return Ft(this,e)},n.St=function(e){return Mt(this,e)},n.fn=function(e,t){var n,r=Pt(this);r&&r&&It(this,r?{type:pr,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}(),br=f(`ObservableObjectAdministration`,yr),xr=Kt(0),H=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,!1===e}(),Sr=0,Cr=function(){};lr=Cr,ur=Array.prototype,Object.setPrototypeOf?Object.setPrototypeOf(lr.prototype,ur):lr.prototype.__proto__===void 0?lr.prototype=ur:lr.prototype.__proto__=ur;var wr=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,Zt((function(){var e=new sr(r,n,i,!0);e.v=a,d(a,F,e),t&&t.length&&a.spliceWithArray(0,0,t),H&&Object.defineProperty(a,`0`,xr)})),a}re(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`}}])}(Cr);Object.entries(cr).forEach((function(e){var t=e[0];t!==`concat`&&u(wr.prototype,t,e[1])})),Jt(1e3);var Tr=an.toString,Er=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:ot,extras:{getDebugName:Xt},$mobx:F}),e.$mobx=F,e.FlowCancellationError=$n,e.ObservableMap=mr,e.ObservableSet=gr,e.Reaction=Un,e._allowStateChanges=Re,e._allowStateChangesInsideComputed=ct,e._allowStateReadsEnd=Ye,e._allowStateReadsStart=Je,e._autoAction=Xn,e._endAction=Le,e._getAdministration=M,e._getGlobalState=function(){return z},e._interceptReads=function(e,t,n){var r;return V(e)||zt(e)||Pn(e)?r=M(e):Wt(e)&&(r=M(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=Ie,e.action=Yn,e.autorun=ut,e.comparer=_n,e.computed=On,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=ce,e.defineProperty=function(e,n,r){if(Wt(e))return e[F].l(n,r);t(39)},e.entries=function(e){return Wt(e)?Ct(e).map((function(t){return[t,e[t]]})):V(e)?Ct(e).map((function(t){return[t,e.get(t)]})):_r(e)?Array.from(e.entries()):zt(e)?e.map((function(e,t){return[t,e]})):void t(7)},e.extendObservable=ht,e.flow=nr,e.flowResult=function(e){return e},e.get=function(e,n){if(wt(e,n))return Wt(e)?e[F].ct(n):V(e)?e.get(n):zt(e)?e[n]:void t(11)},e.getAtom=Yt,e.getDebugName=Xt,e.getDependencyTree=function(e,t){return gt(Yt(e,t))},e.getObserverTree=function(e,t){return _t(Yt(e,t))},e.has=wt,e.intercept=function(e,t,n){return a(n)?function(e,t,n){return M(e,t).St(n)}(e,t,n):function(e,t){return M(e).St(t)}(e,t)},e.isAction=lt,e.isBoxedObservable=Pn,e.isComputed=function(e){return bt(e)},e.isComputedProp=function(e,t){return bt(e,t)},e.isFlow=yt,e.isFlowCancellationError=function(e){return e instanceof $n},e.isObservable=St,e.isObservableArray=zt,e.isObservableMap=V,e.isObservableObject=Wt,e.isObservableProp=function(e,t){return xt(e,t)},e.isObservableSet=_r,e.keys=Ct,e.makeAutoObservable=function(e,t,n){return c(e)?ht(e,e,t,n):(Zt((function(){var r=Ht(e,n)[F];if(!e[ir]){var i=Object.getPrototypeOf(e),a=new Set([].concat(fn(e),fn(i)));a.delete(`constructor`),a.delete(F),u(i,ir,a)}e[ir].forEach((function(e){return r.o(e,!t||!(e in t)||t[e])}))})),e)},e.makeObservable=function(e,t,n){return Zt((function(){var r=Ht(e,n)[F];t??=function(e){return g(e,mn)||u(e,mn,te({},e[mn])),e[mn]}(e),fn(t).forEach((function(e){return r.o(e,t[e])}))})),e},e.observable=L,e.observe=function(e,t,n,r){return a(n)?function(e,t,n,r){return M(e,t)._t(n,r)}(e,t,n,r):function(e,t,n){return M(e)._t(t,n)}(e,t,n)},e.onBecomeObserved=ft,e.onBecomeUnobserved=pt,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=Tt,e.reaction=function(e,t,n){function r(){if(p=!1,!h.isDisposed){var t=!1,r=s;h.track((function(){var n=Re(!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=sn);var a,o,s,c=n.name??`Reaction`,l=Yn(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=dt(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):V(e)||_r(e)?e.delete(n):zt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=ct,e.set=function e(n,r,i){if(arguments.length!==2||_r(n))Wt(n)?n[F].ht(r,i):V(n)?n.set(r,i):_r(n)?n.add(r):zt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(`Invalid index: '`+r+`'`),et(),r>=n.length&&(n.length=r+1),n[r]=i,tt()):t(8);else{et();var a=r;try{for(var o in a)e(n,o,a[o])}finally{tt()}}},e.spy=ot,e.toJS=function(e){return function e(t,n){if(typeof t!=`object`||!t||t instanceof Date||!St(t))return t;if(Pn(t)||Ln(t))return e(t.get(),n);if(n.has(t))return n.get(t);if(zt(t)){var r=Et(n,t,Array(t.length));return t.forEach((function(t,i){r[i]=e(t,n)})),r}if(_r(t)){var i=Et(n,t,new Set);return t.forEach((function(t){i.add(e(t,n))})),i}if(V(t)){var a=Et(n,t,new Map);return t.forEach((function(t,r){a.set(r,e(t,n))})),a}var o=Et(n,t,{});return Tt(t).forEach((function(r){an.propertyIsEnumerable.call(t,r)&&(o[r]=e(t[r],n))})),o}(e,new Map)},e.trace=function(){},e.transaction=Dt,e.untracked=Ge,e.values=function(e){return Wt(e)?Ct(e).map((function(t){return e[t]})):V(e)?Ct(e).map((function(t){return e.get(t)})):_r(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`?kt(e,t):Ot(e,t,n||{})}})),gC=me((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 ee(e,t,n){s(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function te(e,t,n){s(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function ne(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return b(e)&&e[n]===!0}}function re(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function ie(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function C(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}var ae=Object.getOwnPropertySymbols!==void 0;function w(e){var t=Object.keys(e);if(!ae)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter(function(t){return c.propertyIsEnumerable.call(e,t)})):t}var T=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:ae?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function oe(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function se(e){return e===null?null:typeof e==`object`?``+e:e}function ce(e,t){return c.hasOwnProperty.call(e,t)}var le=Object.getOwnPropertyDescriptors||function(e){var t={};return T(e).forEach(function(n){t[n]=o(e,n)}),t};function ue(e,t){return!!(e&t)}function de(e,t,n){return n?e|=t:e&=~t,e}function fe(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 pe(e,t,n){if(be())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&xe(i,n.prototype),i}function me(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,Ce(r.key),r)}}function he(e,t,n){return t&&me(e.prototype,t),n&&me(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function ge(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=we(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
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E(){return E=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},E.apply(null,arguments)}function _e(e){return _e=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_e(e)}function ve(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,xe(e,t)}function ye(e){try{return Function.toString.call(e).indexOf(`[native code]`)!==-1}catch{return typeof e==`function`}}function be(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(be=function(){return!!e})()}function xe(e,t){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xe(e,t)}function Se(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 Ce(e){var t=Se(e,`string`);return typeof t==`symbol`?t:t+``}function we(e,t){if(e){if(typeof e==`string`)return fe(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)?fe(e,t):void 0}}function Te(e){var t=typeof Map==`function`?new Map:void 0;return Te=function(e){if(e===null||!ye(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 pe(e,arguments,_e(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),xe(n,e)},Te(e)}var Ee=Symbol(`mobx-stored-annotations`);function De(e){function t(t,n){if(je(n))return e.decorate_20223_(t,n);Oe(t,n,e)}return Object.assign(t,e)}function Oe(e,t,r){ce(e,Ee)||ee(e,Ee,E({},e[Ee])),qe(r)&&!ce(e[Ee],t)&&n(`'`+(e.constructor.name+`.prototype.`+t.toString())+`' is decorated with 'override', but no such decorated member was found on prototype.`),ke(e,r,t),qe(r)||(e[Ee][t]=r)}function ke(e,t,r){if(!qe(t)&&ce(e[Ee],r)){var i=e.constructor.name+`.prototype.`+r.toString(),a=e[Ee][r].annotationType_,o=t.annotationType_;n(`Cannot apply '@`+o+`' to '`+i+`':`+(`
116
+ `}async function jy(e){let t=e.includes(`--force`),n=e.filter(e=>e!==`--force`),r=n.length>0?n:[...ly],i=Cy();process.platform===`darwin`?Ty(i.distPath):process.stdout.write(`Skipping URL handler (cmd-click verbs are macOS-only).
117
+ `),My(i.binPath,r,t),process.stdout.write(Ay());let a=sy(iy,oy(Zv,await ay(iy,fetch,`https://registry.npmjs.org`)));process[a.stream].write(a.text)}function My(e,t,n,i){let a=i??Qv();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,dy(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:fy(e,t)},Ae(a,JSON.stringify(o,null,2)),process.stdout.write(`Updated ${a}\n`)}function Ny(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 Py(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 Fy(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 Iy(e,t){let n=Py(e);if(n.kind===`owned`&&n.pid===t)try{r.unlinkSync(e)}catch{}}function Ly(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 Ry(e,t,n,r){let i=zy(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 zy(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 By(e){let t=!1;function n(){let n=Ry(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 Vy(e,t=De){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 Hy(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 Uy(e,t=Vy){let n=t(e);return n.kind===`start`?n.token:null}const Wy=`CC_CANDYBAR_PARENT_PID`;function Gy(e){let t=e[Wy];if(t===void 0)return{kind:`outlives-nobody`};let n=Number.parseInt(t,10);if(!Number.isInteger(n)||n<=0)throw Error(`${Wy} must be a positive integer pid, got ${JSON.stringify(t)}`);return{kind:`anchored`,pid:n}}function Ky(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 qy(e){try{return t.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function Jy(){let e=Number(process.env.CC_CANDYBAR_DAEMON_CEILING??``);return Number.isInteger(e)&&e>0?e:16}function Yy(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 Xy(e){try{return r.readdirSync(e).filter(e=>e.endsWith(`.json`)).map(t=>c.join(e,t))}catch{return[]}}function Zy(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 Qy(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 $y(e){if(!e.isolated)return{decision:Yy(!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=Yy(!0,Qy(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 eb(e,t,n,r){let i=n(e);if(i!==null&&i.pid===t)try{r(e)}catch{}}function tb(e,t={}){return{isolated:!!process.env.CC_CANDYBAR_SOCKET,registryDir:Ve(),ceiling:Jy(),pid:process.pid,startTime:e,isSameLiveProcess:(e,t)=>Hy(e,t,{readStartTime:Vy,pidAlive:qy}),listFiles:Xy,readEntry:Zy,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?Fe:e=>{Fe(c.dirname(e)),Fe(e)},...t}}function nb(e){return e<32||e===127||e>=128&&e<=159}function rb(e){let t=``;for(let n of e)t+=nb(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function ib(e,t){let n=rb(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const ab=`\x1B[38;2;255;255;255m`,ob=`\x1B[48;2;200;40;40m`;function sb(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 cb={fg:sb(ab),bg:sb(ob)},lb={fg:sb(`\x1B[38;2;0;0;0m`),bg:sb(`\x1B[48;2;220;160;40m`)},ub={unicode:{},ascii:{glyph:`>`}},db={unicode:{},ascii:{left:`(`,right:`)`}};function fb(e,t,n){switch(e){case`capsule`:return new Rr(db[t]);case`plain`:return new zr(n===void 0?{}:{separator:n});case`powerline`:return new Lr(ub[t]);default:return e}}function pb(e){switch(e){case`powerline`:return 1;case`capsule`:return 2;case`plain`:return 0;default:return e}}function mb(e,t){if(e.length===0)return``;let n=fb(t.style,t.charset,t.separator);if(t.wrap&&Number.isFinite(t.width)){let r=Hr(new ii([...e],{joiner:n}),{width:t.width,colorSystem:t.colorCompatibility});return r.endsWith(`
118
+ `)?r.slice(0,-1):r}return Hr(new Mr([...e],n),{colorSystem:t.colorCompatibility})}function hb(e){return Math.min(20,e??20)}const gb={heading:`ERROR`,glyph:`⚠`,colors:cb},_b={heading:`WARNING`,glyph:`⚠`,colors:lb},vb={heading:`UPDATE`,glyph:`⬆`,colors:lb};function yb(e,t){return{text:rb(e),link:t}}function bb(e,t,n){let[r,...i]=[xb(e,gb,Fv),t,xb(n,_b,Iv)].flat();return r===void 0?null:{channels:[r,...i]}}function xb(e,t,n){let r=Jv([{verb:n,args:[e]}]),[i,...a]=e.split(/\r\n|\r|\n/).map(e=>yb(e,r)).filter(e=>e.text!==``).map(e=>[e]);return i===void 0?[]:[{severity:t,message:e,lines:[i,...a]}]}function Sb(e){return e.channels.map(e=>`${e.severity.heading}\n${e.message}\n`).join(`
119
+ `)}function Cb(e,t,n,r){if(t===null)return e;let i=wb(r),a=t.channels.flatMap(e=>Tb(e,i)),o=n.failedConfigFile!==null||a.length>r.rowCap,s=a.slice(0,r.rowCap-Number(o)),c=o?[Eb(t,n,a.length-s.length,i)]:[],l=[...s,...c].join(`
120
+ `);return e?`${l}\n${e}`:l}function wb(e){return{style:`plain`,separator:``,width:e.width,wrap:!0,padding:0,charset:`unicode`,colorCompatibility:e.colorCompatibility}}function Tb(e,t){let n=new V({bgcolor:e.severity.colors.bg,color:e.severity.colors.fg}),r=A(Math.max(2,t.width-1)),i=(e,t)=>new jr(`${e} `,{style:t,end:``,noWrap:!0});return e.lines.flatMap((a,o)=>mb([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=>Vt(e,r)).map(e=>i(e,t))})],t).split(`
121
+ `))}function Eb(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new V({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new jr(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: ${rb(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(rb(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=jr.fromFragments([...d,...p]).truncate(r.width,{overflow:`ellipsis`});return m.noWrap=!0,mb([m],r)}const Db=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function Ob(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function kb(e,t){return r.readdirSync(t).filter(Db).sort().flatMap(n=>{let i=c.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?kb(e,i):[[c.relative(e,i).split(c.sep).join(`/`),Ob(i,a)]]})}function Ab(e){let t=C.createHash(`sha256`);for(let[n,r]of kb(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const jb=e=>e.slice(0,7);function Mb(e){return c.dirname(c.dirname(e))}function Nb(){return{version:Zv,digest:`716bd69e50367c668fb41e2384299e1c6a61622177b4cedb1aa0d112e0c96933`}}function Pb(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 Fb(e,t){try{let n=Mb(b(e)),i=c.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=Ab(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:Pb(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 Ib=/^-?\d+$/;function Lb(e,t,n){return e===void 0?t:Math.max(t,Math.min(n,e))}function Rb(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 zb(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!Ib.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 Bb(e,t,n){return r=>r?Ib.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 Vb(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=>!Ib.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:Lb(r[0].seed,t,i)}}return{kind:`int`}}function Hb(e){return e===`config`?`set-config`:`set-state`}function Ub(e,t,n){return t.kind===`int`?zb(`menu page "${e}"`):t.kind===`range`?Bb(t.min,t.max,`${n} stepper "${e}"`):Rb(t.allowed,`${n} "${e}"`,Hb(n))}function Wb(e,t,n){return Ub(e,Vb(e,t,n),n)}function Gb(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:Vb(e,n,t)}))}function Kb(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=Wb(e,a.specs,t)}else{let r=[i];n.set(e,{permanent:!1,kind:i.kind,validator:Wb(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=Wb(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=Vb(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 qb=Kb({},`config`);function Jb(){return qb.listKeys()}function Yb(e,t){return qb.validate(e,t)}function Xb(e){return qb.rangeParamsFor(e)}function Zb(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:Vg(e.from,n)}}]:`cycle`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:e.cycle}}]:`removeSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[om({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[om({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:Vg(e.insertSegmentFrom,n).map(t=>om({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max,seed:Lb(t.get(e.persist),e.min,e.max)}}]:[]}function Qb(e){return za(e.globals)}function $b(e){let t=new Set;for(let n of tx(e)){let e=`persist`in n?n.persist:`reset`in n?n.reset:null;if(e===null)continue;let r=ym(e);r?.scope===`preset-root`&&t.add(r.preset)}return[...t].map(e=>({key:vm(e),spec:{kind:`allow-list`,allowed:[]}}))}function ex(e){let t=Qb(e),n=new Map([...zg(e),...Mm(e)]);return[...$b(e),...tx(e).flatMap(e=>Zb(e,t,n))]}function tx(e){return Object.values(e.actions).flatMap(Rh)}function nx(e){return Gb(ex(e),`config`)}function rx(e,t){return qb.register(e,t)}const ix=ui(),ax=new Set(ix),ox=new Set(mi),sx=e=>e?ax.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${ix.join(`, `)})`}:{ok:!1,reason:`theme name is required`},cx=e=>e?ox.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown style "${e}" (have: ${mi.join(`, `)})`}:{ok:!1,reason:`style name is required`},lx=new Set([`1`,`true`]),ux=new Set([`0`,`false`]),dx=Kb({style:cx,theme:sx,"toolbar-expanded":e=>lx.has(e)?{ok:!0,value:`1`}:ux.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}});function fx(){return dx.listKeys()}function px(e,t){return dx.register(e,t)}function mx(e,t){return dx.validate(e,t)}function hx(e){return dx.rangeParamsFor(e)}function gx(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:Vg(e.from,n)}}]:`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:Lb(t.get(e.set),e.min,e.max)}}]:[]}function _x(e){let t=new Set(dx.listBaselineKeys());return e.filter(e=>e.spec.kind!==`allow-list`||!t.has(e.key))}function vx(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 za(e.globals))t.set(n,r);return t}function yx(e){let t=vx(e),n=zg(e);return _x(Object.values(e.actions).flatMap(Rh).flatMap(e=>gx(e,t,n)))}function bx(e){return Gb(yx(e))}const xx=`update.dismissed`,Sx=`updateNotice`;function Cx(e){return e.kind===`source`?e.newer.digest:ny(e.newer)}const wx=e=>`${e.version} [${jb(e.digest)}]`;function Tx(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:wx(e.newer),running:wx(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:ny(e.newer),running:ny(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${iy}@${ny(e.newer)}`,`install`]}}}}const Ex={kind:`idle`},Dx={kind:`running`};function Ox(e,t,n){if(e===null)return[];let r=Cx(e);if(!n.enabled||n.dismissed===r)return[];let i=Tx(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(`
122
+ `),c=Jv([{verb:Iv,args:[s]}]),l=t.kind===`running`?yb(`[${i.busy}]`,c):yb(`[${i.act}]`,Jv([{verb:Uv,args:[n.sessionId]}]));return[{severity:vb,message:s,lines:[[yb(a,c),l,yb(`[dismiss]`,Jv([{verb:Av,args:[n.sessionId,xx,r]}])),yb(`[disable]`,Jv([{verb:Lv,args:[n.sessionId,Sx,`false`]}]))],...o.map(e=>[yb(e,c)])]}]}function kx(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 Ax(e){switch(e.kind){case`current`:return[`info`,`build: current ${wx(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${wx(e.source)}, running ${wx(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function jx(e){switch(e.kind){case`current`:return[`info`,`release: current ${ny(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${ny(e.latest)}, running ${ny(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${ny(e.installed)}, latest ${ny(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function Mx(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const Nx=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function Px(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=Nx(e.stderr)??e.error??Nx(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function Fx(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=Ex,d=null,f=Mx(s),p=Mx(s),m=()=>kx(c,l);function h(){let e=m(),t=e===null?null:Cx(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:px(xx,{kind:`allow-list`,allowed:[t]})})}function g(){c=Fb(t,Nb),f(Ax(c)),h()}async function _(){l=oy(Zv,await ay(iy,a,i)),p(jx(l)),h()}return{arm(){rx(Sx,{kind:`allow-list`,allowed:[`false`]}),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>Ox(m(),u,e),act(){let e=m();if(e===null)throw new $(`apply-update: nothing newer is known to apply`);let t=Tx(e);if(u.kind===`running`)throw new $(`apply-update: already ${t.busy}`);u=Dx,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),Ee({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=Ex,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=Px(n);u={kind:`failed`,identity:Cx(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}function Ix(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??Lx(t.stderr)].filter(Boolean).join(`, `)}`)}function Lx(e){return e.trim().split(`
123
+ `,1)[0]??``}function Rx(e,t){if(e.kind!==`ok`)return e;let n=t(e.value);return n===null?Z:X(n)}function zx(e){if(e.kind!==`ok`)return e;let t=e.value.trim();return t?X(t):Z}const Bx=/^[A-Za-z]:[\\/]/;function Vx(e){let t=e.trim();if(Bx.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 Hx(e){return Vx(e)?.host||null}function Ux(e){let t=Hx(e);return t?t===`github.com`||t.endsWith(`.github.com`)?`github`:/(^|\.)gitlab\./.test(t)?`gitlab`:null:null}function Wx(e){let t=new Map;for(let n of e.split(`
124
+ `)){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 Gx(e){return e.urls.find(e=>Xx(e)!==null)??e.urls[0]??null}function Kx(e){return e.find(e=>e.name===`origin`)??e[0]??null}function qx(e){let t=Kx(e);return t?Gx(t):null}function Jx(e){let t=Kx(e);return t?t.urls.find(e=>Ux(e)!==null)??Gx(t):null}function Yx(e){let t=(Vx(e)?.path??e.replace(/[\\/]+$/,``)).split(`/`);return(t[t.length-1]??``).replace(/\.git$/,``)||null}function Xx(e){let t=Vx(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 Zx(e){let t=qx(e);return t===null?null:Xx(t)}function Qx(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??Lx(t.stderr)].filter(Boolean).join(`, `)}`)}function $x(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function eS(e){let t=`detached`,n=Z,r=Z,i=Z,a=0,o=0,s=0,c=0;for(let l of e.split(`
125
+ `)){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.slice(0,7))}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,sha:n,upstream:r,workingTree:{staged:a,unstaged:o,untracked:s,conflicts:c}}}function tS(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(!$x(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 nS(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(!$x(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}var rS=class{isGitRepo(e){try{return r.existsSync(c.join(e,`.git`))}catch{return!1}}async execGitAsync(e,t){return Ee({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){return zx(Ix(`git rev-parse --show-toplevel`,await this.execGitAsync([`rev-parse`,`--show-toplevel`],{cwd:e,timeout:2e3}),`absent`))}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=a.value.sha),t.showUpstream&&(o.upstream=a.value.upstream),t.showTag&&(o.tag=await this.getNearestTagAsync(r)),t.showTimeSinceCommit&&(o.timeSinceCommit=await this.getTimeSinceLastCommitAsync(r));let[s,c]=await Promise.all([t.showStashCount?this.getStashCountAsync(r):void 0,t.showRepoName||t.showRepoUrl?this.getRemotesAsync(r):void 0]);return s!==void 0&&(o.stashCount=s),c!==void 0&&t.showRepoName&&(o.repoName=Rx(c,e=>this.repoNameFrom(e,r)),o.isWorktree=i),c!==void 0&&t.showRepoUrl&&(o.repoUrl=Rx(c,Zx)),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 zx(Ix(`git describe --tags`,await this.execGitAsync([`describe`,`--tags`,`--abbrev=0`],{cwd:e,timeout:2e3}),`absent`))}async getTimeSinceLastCommitAsync(e){let t=zx(Ix(`git log -1`,await this.execGitAsync([`log`,`-1`,`--format=%ct`],{cwd:e,timeout:2e3}),`absent`));if(t.kind!==`ok`)return t;let n=parseInt(t.value)*1e3;return Number.isNaN(n)?Q(`git log -1: unparseable timestamp "${t.value}"`):X(Math.floor((Date.now()-n)/1e3))}async getStashCountAsync(e){let t=Ix(`git stash list`,await this.execGitAsync([`stash`,`list`],{cwd:e,timeout:2e3}),`failed`);if(t.kind!==`ok`)return t;let n=t.value.trim();return X(n?n.split(`
126
+ `).length:0)}async getRemotesAsync(e){let t=Ix(`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`?Wx(t.value):[])}repoNameFrom(e,t){let n=qx(e);return(n===null?null:Yx(n))??c.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=Jx(t.value);return n===null?Z:X(n)}async execForgeAsync(e,t,n){return Ee({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=Ux(t);return n===`github`?Qx(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,tS):n===`gitlab`?Qx(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,nS):Z}isWorktree(e){try{let t=c.join(e,`.git`);return!!(r.existsSync(t)&&r.statSync(t).isFile())}catch{return!1}}async getCoreAsync(e){E(`[GIT-EXEC] Running git status --porcelain=v2 in ${e}`);let t=Ix(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?X(eS(t.value)):t}};const iS=(e,t)=>E(t);var aS=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??iS}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()}};const oS=(e,t)=>E(t),sS={showSha:!0,showStashCount:!0};function cS(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function lS(e){let t=t=>{try{return r.statSync(c.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function uS(e,t){return e.head!==t.head||e.index!==t.index}function dS(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 fS=class extends rS{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;prCache=new Map;prFetchInFlight=new Map;refreshing=new Set;refreshAgain=new Set;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new rS,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??oS,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new aS({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()}}async getGitInfo(e,t={},n){let r=await this.inner.resolveEffectiveGitDir(e,n);return r.kind===`ok`?this.getGitInfoForRoot(r.value,t):r}getGitInfoForRoot(e,t){let n=`${e}|${cS(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=lS(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}`,dS(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(async()=>{let i=await this.inner.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}`,dS(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,{...sS});n||this.safeInvoke(t,this.deliverable(s,a))})(),()=>{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){if(this.refreshing.has(e)){this.refreshAgain.add(e);return}let t=this.subscribersByRepo.get(e);!t||t.callbacks.size===0||(this.refreshing.add(e),this.doRefreshLoop(e))}async doRefreshLoop(e){try{do{this.refreshAgain.delete(e);let t=this.subscribersByRepo.get(e);if(!t||t.callbacks.size===0)return;let n=await this.getGitInfoForRoot(e,{...sS}),r=this.deliverable(n,e),i=this.subscribersByRepo.get(e);if(!i||i.callbacks.size===0)return;for(let e of[...i.callbacks])i.callbacks.has(e)&&this.safeInvoke(e,r)}while(this.refreshAgain.has(e))}finally{this.refreshing.delete(e),this.refreshAgain.delete(e)}}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=lS(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),uS(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.refreshing.clear(),this.refreshAgain.clear(),this.fetchInFlight.clear(),this.prCache.clear(),this.prFetchInFlight.clear(),this.ownsWatchers&&this.watchers.closeAll()}},pS=class{static CACHE_DIR=D();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 E(`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`?(E(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(E(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return E(`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`}),E(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await ne(50);else throw e}return E(`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),E(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&E(`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){E(`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)){E(`Cache for ${e} is locked, waiting...`),await ne(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(E(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(E(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return E(`No shared ${e} usage cache found`),null;E(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await ne(75)}}return E(`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)){E(`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`),E(`[CACHE-SET] ${e} disk cache stored`)}catch(t){E(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const mS={"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 hS=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 pS.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await pS.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){E(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){E(`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)?(E(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),E(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(E(`Invalid pricing data structure`),e(null))}catch(t){E(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{E(`Response error:`,t),e(null)})});n.on(`error`,t=>{E(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{E(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return E(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return E(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,E(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),E(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,E(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(E(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(mS).length} models`),this.executionCache=mS,E(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(mS).length} models`),mS)}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 E(`[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),E(`[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 gS(e){if(!e)return 0;try{return o(e).mtimeMs}catch{return 0}}const _S=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 vS(e){return((...t)=>_S.run(()=>e(...t)))}const yS=vS(ae),bS=vS(ie),xS=vS(w);async function SS(e,t){return _S.run(async()=>{let n=null;try{n=await re(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=>{E(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}async function CS(e,t){return _S.run(async()=>{let n=null;try{n=await re(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=>{E(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}function wS(){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 TS(e){let t=[];for(let n of e){let e=d(n,`projects`);if(a(e))try{let n=await yS(e,{withFileTypes:!0});for(let r of n)if(r.isDirectory()){let n=d(e,r.name);t.push(n)}}catch(t){E(`Failed to read projects directory ${e}:`,t)}}return t}async function ES(e,t,n){let r=[],i=d(t,e,`subagents`);try{let t=(await yS(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 bS(t,`utf-8`)).split(`
127
+ `)[0];n&&JSON.parse(n).sessionId===e&&r.push(t)}catch{E(`Failed to check agent file ${t}`)}}}catch(e){E(`Failed to read subagents directory ${i}:`,e)}return r}const DS=new Map;async function OS(e){try{let t=await xS(e),n=t.size,r=DS.get(e);if(r&&r.mtime===t.mtimeMs&&r.size===n)return E(`[parse-cache] hit ${e}`),DS.delete(e),DS.set(e,r),r.entries;let i;return n>1048576?(E(`Using streaming parser for large file ${e} (${Math.round(n/1024)}KB)`),i=await NS(e)):i=await jS(e),E(`Parsed ${i.length} entries from ${e}`),n>5242880?i:(DS.delete(e),DS.size>=16&&DS.delete(DS.keys().next().value),DS.set(e,{mtime:t.mtimeMs,size:n,entries:i}),i)}catch(t){if(t.code===`ENOENT`)return E(`Transcript not present yet: ${e}`),[];throw t}}function kS(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,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 AS(e){let t=[];for(let n of e.split(`
128
+ `))if(n.trim())try{let e=kS(JSON.parse(n));e&&t.push(e)}catch(e){E(`Failed to parse JSONL line: ${e}`);continue}return t}async function jS(e){return AS(await bS(e,`utf-8`))}async function MS(e,t){let n=await SS(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:AS(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,mtimeMs:a,ino:o},reset:s})}async function NS(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=T({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=kS(JSON.parse(t));e&&r.push(e)}catch(e){E(`Failed to parse JSONL line: ${e}`)}}),o.on(`close`,()=>{t(r)}),o.on(`error`,t=>{E(`Streaming parser error for ${e}:`,t),n(t)}),a.on(`error`,t=>{E(`File stream error for ${e}:`,t),n(t)})})}var PS=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 FS(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 IS={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},LS={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function RS(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function zS(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function BS(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function VS(e,t,n,r){let i=RS(new Date(zS())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:BS(),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 hS.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=RS(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...IS};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 HS(e){let t=0,n=0,r=BS(),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)??{...IS};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:LS,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 US(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 WS=class{entries=new Map;flight=new PS;seeded=new Map;speedRings=new Map;speedFlight=new PS;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:LS,i=t?.cost?.total_cost_usd??null;return X({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e){let t=RS(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={...IS},i=!1;for(let e of this.entries.values()){i||=e.days.has(t);let n=e.days.get(t)??IS;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=gS(t);return this.speedFlight.run(`${e}:${r}`,async()=>{let i=await this.ingest(e,t,r);if(i.kind===`failed`)return i;let a=FS(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??gS(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 ES(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 MS(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 VS(r,l,s,c)),e===t&&(a=c.mtimeMs)}return X({files:i,...HS(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=zS(),n=await TS(wS()),r=[];for(let e of n){let n;try{n=await yS(e)}catch{continue}for(let i of n){if(!i.endsWith(`.jsonl`))continue;let n=d(e,i),a;try{a=(await xS(n)).mtimeMs}catch{continue}a<t||r.push({sessionId:i.slice(0,-6),path:n,mtime:a})}}await US(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 GS=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function KS(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 qS(e){let t=await JS(e);return t.kind===`ok`?X(Math.floor((t.value+36e5)/1e3)):t}async function JS(e){for(let t of[65536,1048576]){let n=await CS(e,t);if(n.kind!==`ok`)return n;let r=YS(n.value.buf,n.value.fromStart);if(r!=null)return X(r);if(n.value.fromStart)return Z}return Z}function YS(e,t){let n=e.toString(`utf8`).split(`
129
+ `),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!GS.test(t))continue;let r=KS(t);if(r!=null)return r}return null}function XS(e,t,n){let r=fm(t(`preset`),e.globals.preset,e.presets),i=hm(e,r),a=t(`edit.mode`)===`open`?e.editGlobals:{};return{preset:r,presetCustomized:n(r),theme:ci(a.palette,t(`theme`),i.palette),look:fi(a.look,t(`look`),i.look,e.looks),style:gi(a.style,t(`style`),i.style),separator:a.default_separator??i.default_separator,autoWrap:Ti(a.autoWrap,t(`autoWrap`),i.autoWrap),padding:Ei(a.padding,t(`padding`),i.padding),charset:a.charset??i.charset??`unicode`,updateNotice:a.updateNotice??i.updateNotice??!0,colorCompatibility:a.colorCompatibility??i.colorCompatibility??`truecolor`}}const ZS=10*1e3;function QS(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 $S(e,t){if(!(t<60))return e*3600/t}function eC(e,t,n,r){let i=r-t;if(i<50||i>ZS)return;let a=n-e;if(!(a<=0))return a*1e3/i}function tC(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=eC(t.input,t.atMs,n.input,n.atMs),i=eC(t.output,t.atMs,n.output,n.atMs),a=eC(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 nC(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>ZS)continue;let o=eC(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function rC(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function iC(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`,()=>rC(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 aC(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,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}`,i);let n=[],r=new Set;for(let t of Mi(ya(e.root))){if(t.when)for(let e of Gg(t.when))n.push(e);if(t.kind!==`segment`)continue;let r=e.segments[t.name];if(r){for(let e of[r.template,r.when,r.bg,r.fg])if(e)for(let t of Gg(e))n.push(t)}}let i=new Set;for(;n.length>0;){let e=n.pop();for(let a of oC(t,e)){if(r.has(a))continue;r.add(a);let e=t.get(a);if(e){if(e.kind===`input`)i.add(e.path);else if(e.kind===`template`)for(let t of Gg(e.template))n.push(t)}}}return i}function oC(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 sC(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function cC(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 lC(e,t,n,r,i,a){let o=e=>sC(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,cC(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(`tmux`,o(`tmux`),()=>t.tmuxService.getSessionId()),c(`cache`,o(`cache`),()=>qS(e.transcript_path)),c(`speed`,o(`speed`),()=>t.usageStore.observeSpeed(e.session_id,e.transcript_path,s))]),_=[],v=e=>{if(e.kind===`failed`){_.push(e.reason);return}return e.kind===`ok`?e.value:void 0},y=fC(l);_.push(...y.failures);let b=iC(a);_.push(...b.failures);let x=v(u),S=v(d),C=v(f),ee=v(p),te=v(m),ne=v(h);for(let e of _)t.log(`warn`,`provider fetch failed: ${e}`);let re=e.rate_limits?.five_hour,ie=e.rate_limits?.seven_day,ae=re?QS(re.used_percentage,re.resets_at,18e6,s):void 0,w=ie?QS(ie.used_percentage,ie.resets_at,6048e5,s):void 0,T=x?.session.cost,oe=ee?.sessionDuration,se=o(`burn`)&&T!=null&&oe!=null?$S(T,oe):void 0,ce=v(g),le=ce===void 0?void 0:tC(ce),ue=ce===void 0?void 0:nC(ce),de=le!==void 0||ue!==void 0?{...le,...ue!==void 0&&{history:ue}}:void 0,fe=dC(process.env.HOME??process.env.USERPROFILE),pe=e.workspace?{...e.workspace,current_dir:dC(e.workspace.current_dir)??``,project_dir:dC(e.workspace.project_dir)??``}:e.workspace,me=x===void 0?void 0:uC({cost:x.session.cost,tokens:x.session.tokens}),he=S===void 0?void 0:{cost:S.cost,tokens:S.tokens},ge=ee===void 0?void 0:uC({lastResponseTime:ee.lastResponseTime,responseTime:ee.responseTime,sessionDuration:ee.sessionDuration,messageCount:ee.messageCount,linesAdded:ee.linesAdded,linesRemoved:ee.linesRemoved});return{...e,...pe!==void 0&&{workspace:pe},...fe!==void 0&&{home:fe},...y.git!==void 0&&{git:y.git},...te!==void 0&&{tmux:{session:te}},host:b.host,theme:{effective:i.theme},look:{effective:i.look},preset:{effective:i.preset,customized:i.presetCustomized},style:{effective:i.style},charset:{effective:i.charset},colorCompatibility:{effective:i.colorCompatibility},autoWrap:{effective:i.autoWrap},padding:{effective:i.padding},...me!==void 0&&{session:me},...he!==void 0&&{today:he},...se!==void 0&&{burn:{costPerHour:se}},...de!==void 0&&{speed:de},...o(`block`)&&re!==void 0&&{block:{nativeUtilization:re.used_percentage,resetsAt:re.resets_at,...ae!==void 0&&{etaMinutes:ae}}},...ie!==void 0&&{weekly:{percentage:ie.used_percentage,resetsAt:ie.resets_at,...w!==void 0&&{etaMinutes:w}}},...ne!==void 0&&{cache:{expiresAt:ne}},...C!==void 0&&{context:{totalTokens:C.totalTokens,contextLeft:C.contextLeftPercentage}},...ge!==void 0&&{metrics:ge}}}function uC(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 dC(e){return e===void 0||e.length===0||c.sep!==`\\`?e:e.replace(/\\/g,`/`)}function fC(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 pC=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,mC=`{{ \$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 (${pC}) (basename .project_dir) (ne (${pC}) "") }}{{ end }}{{ end }}{{ abbreviatePath \$dir }}`,hC={branch:`primary`,staged:`success`,unstaged:`warning`,untracked:`accent`,conflicts:`error`,ahead:`success`,behind:`warning`,stash:`accent`},gC=(e,t)=>`{{ fg (color "${hC[e]}") ${t} }}`,_C=`{{ readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3 }}`,vC=`{{ 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 }}${gC(`staged`,`(printf "+%v" .git.staged)`)}{{ $first = false }}{{ end }}{{ if gt .git.unstaged 0 }}{{ if not $first }} {{ end }}${gC(`unstaged`,`(printf "~%v" .git.unstaged)`)}{{ $first = false }}{{ end }}{{ if gt .git.untracked 0 }}{{ if not $first }} {{ end }}${gC(`untracked`,`(printf "?%v" .git.untracked)`)}{{ $first = false }}{{ end }}{{ if gt .git.conflicts 0 }}{{ if not $first }} {{ end }}${gC(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ $first = false }}{{ end }}){{ end }}`,yC=`{{ if ne .git.repoName "" }}{{ .git.repoName }} {{ end }}⎇ ${gC(`branch`,`.git.branch`)}{{ if .git.sha }} ♯ {{ .git.sha }}{{ end }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${gC(`ahead`,`(printf "↑%v" .git.ahead)`)}{{ end }}{{ if gt .git.behind 0 }}${gC(`behind`,`(printf "↓%v" .git.behind)`)}{{ end }}{{ end }}`+vC+`{{ if .git.upstream }} →{{ .git.upstream }}{{ end }}{{ if gt .git.stash 0 }} ${gC(`stash`,`(printf "⧇ %v" .git.stash)`)}{{ end }} {{ if eq .git.status "conflicts" }}{{ fg (color "error") "⚠" }}{{ else }}{{ if eq .git.status "dirty" }}{{ fg (color "warning") "●" }}{{ else }}{{ fg (color "success") "✓" }}{{ end }}{{ end }}`,bC={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}},segments:{directory:{template:mC,fg:`foreground`},model:{template:`✱ {{ formatModelName .model.display_name }}`,fg:`foreground`,when:`{{ ne .model.display_name "" }}`},sessionId:{template:`⌗{{ trunc 8 .session.id }}`,fg:`foreground`,when:`{{ ne .session.id "" }}`},version:{template:`◈ v{{ .version }}`,fg:`foreground`,when:`{{ ne .version "" }}`},tmux:{template:`tmux:{{ .tmux.session | default "none" }}`,fg:`foreground`,when:`{{ ne .tmux.session "" }}`},host:{template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,fg:`{{ contrastOn (bgOf) }}`,when:`{{ .host.ssh }}`},git:{template:yC,fg:_C,when:`{{ ne .git.branch "" }}`},gitaculous:{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 }}${gC(`staged`,`"S"`)}{{ end }}{{ if gt .git.unstaged 0 }}${gC(`unstaged`,`"U"`)}{{ end }}{{ if gt .git.untracked 0 }}${gC(`untracked`,`"?"`)}{{ end }}{{ if gt .git.conflicts 0 }}${gC(`conflicts`,`(printf "!%v" .git.conflicts)`)}{{ end }}{{ end }} ⎇ ${gC(`branch`,`.git.branch`)}{{ if ne .git.upstream "" }} [{{ .git.upstream }}{{ if or (gt .git.ahead 0) (gt .git.behind 0) }} {{ if gt .git.ahead 0 }}${gC(`ahead`,`(printf "+%v" .git.ahead)`)}{{ end }}{{ if and (gt .git.ahead 0) (gt .git.behind 0) }}/{{ end }}{{ if gt .git.behind 0 }}${gC(`behind`,`(printf "-%v" .git.behind)`)}{{ end }}{{ end }}]{{ end }}{{ if gt .git.stash 0 }} ${gC(`stash`,`(printf "(%v stashed)" .git.stash)`)}{{ end }}{{ if gt .git.timeSinceCommit 0 }} ◷ {{ template "formatTimeSince" .git.timeSinceCommit }}{{ end }}`,fg:_C,when:`{{ ne .git.branch "" }}`},gitPr:{template:`{{ if ne .git.prUrl "" }}{{ link .git.prUrl (printf "⇆ #%v" .git.prNumber) }}{{ else }}⚠ PR{{ end }}`,fg:`foreground`,when:`{{ or (ne .git.prUrl "") (ne .git.prError "") }}`},toolbar:{template:`{{ action "copySession" "⎘ id" }} {{ action "openProject" "↗ proj" }} {{ action "openTranscript" "↗ log" }}{{ if ne .git.repoUrl "" }} {{ link .git.repoUrl "↗ repo" }}{{ end }} {{ action "edit.toggle" "✎ edit" "✎ done" }}`,fg:`foreground`},session:{template:`§ {{ template "formatCost" .session.cost }} ({{ template "formatTokens" .session.tokens }}){{ template "budgetStatus" (dict "cost" .session.cost "budget" .session.budget.amount "warn" .session.budget.warningThreshold) }}`,fg:`foreground`},today:{template:`☉ {{ template "formatCost" .today.cost }} ({{ template "formatTokens" .today.tokens }}){{ template "budgetStatus" (dict "cost" .today.cost "budget" .today.budget.amount "warn" .today.budget.warningThreshold) }}`,fg:`foreground`},block:{template:`◱ {{ round .block.nativeUtilization }}% ({{ template "formatResetCountdown" .block.resetsAt }})`,bg:`{{ ramp (round .block.nativeUtilization) "step" 0 "panel" .block.budget.heatThreshold "warning" .block.budget.warningThreshold "error" }}`,fg:`{{ ramp (round .block.nativeUtilization) "step" 0 "foreground" .block.budget.heatThreshold "button-color-foreground" }}`,when:`{{ gt .block.resetsAt 0 }}`},weekly:{template:`◑ {{ round .weekly.percentage }}% ({{ template "formatResetCountdown" .weekly.resetsAt }})`,bg:`{{ ramp (round .weekly.percentage) "step" 0 "panel" .weekly.budget.heatThreshold "warning" .weekly.budget.warningThreshold "error" }}`,fg:`{{ ramp (round .weekly.percentage) "step" 0 "foreground" .weekly.budget.heatThreshold "button-color-foreground" }}`,when:`{{ gt .weekly.resetsAt 0 }}`},burnrate:{template:`⚡ {{ template "formatRate" .burn.costPerHour }} · {{ template "formatEta" .block.etaMinutes }} to 5h · {{ template "formatEta" .weekly.etaMinutes }} to wk`,bg:`{{ ramp .block.etaMinutes "step" -1 "panel" 0 "error" .burn.eta.errorMinutes "warning" .burn.eta.warnMinutes "panel" }}`,fg:`{{ ramp .block.etaMinutes "step" -1 "foreground" 0 "button-color-foreground" .burn.eta.warnMinutes "foreground" }}`,when:`{{ or (gt .block.resetsAt 0) (gt .weekly.resetsAt 0) }}`},speed:{template:`⇅ out {{ template "formatSpeed" .speed.output }} · in {{ template "formatSpeed" .speed.input }} · tot {{ template "formatSpeed" .speed.total }}`,fg:`foreground`,when:`{{ gt .session.tokens 0 }}`},tokenSparkline:{template:`⚡ {{ sparkline .speed.history 24 }}`,fg:`foreground`,when:`{{ ne .speed.history "" }}`},cacheTimer:{template:`◴ {{ if le (minutesUntilReset .cache.expiresAt) 0 }}cold{{ else }}{{ minutesUntilReset .cache.expiresAt }}m{{ end }}`,fg:`{{ if le (minutesUntilReset .cache.expiresAt) 8 }}error{{ else }}{{ if le (minutesUntilReset .cache.expiresAt) 20 }}warning{{ else }}foreground{{ end }}{{ end }}`,when:`{{ gt .cache.expiresAt 0 }}`},context:{template:`◔ {{ formatInteger .context.totalTokens }} ({{ .context.contextLeft }}%)`,bg:`{{ ramp .context.contextLeft "step" 0 "error" 21 "warning" 41 "surface-active" }}`,fg:`{{ ramp .context.contextLeft "step" 0 "button-color-foreground" 41 "foreground" }}`,when:`{{ gt .context.totalTokens 0 }}`},metrics:{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 }} `,fg:`foreground`,when:`{{ or .metrics.lastResponseTime .metrics.responseTime .metrics.sessionDuration .metrics.messageCount .metrics.linesAdded .metrics.linesRemoved }}`},charsetControl:{template:`{{ .charset.effective }} {{ menu "applyCharsetForever" "▸" "▾" }} {{ action "resetCharset" "↺" }}`,fg:`foreground`},colorCompatControl:{template:`{{ .colorCompatibility.effective }} {{ menu "applyColorCompatForever" "▸" "▾" }} {{ action "resetColorCompat" "↺" }}`,fg:`foreground`},directoryPaletteControl:{template:`🎨 directory {{ menu "applyDirectoryPaletteForever" "▸" "▾" }} {{ action "resetDirectoryPalette" "↺" }}`,fg:`foreground`}},root:{rows:{identity:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`toolbar`},{kind:`group`,name:`settings`,label:`⚙ terminal`,direction:`horizontal`,children:[`charsetControl`,`colorCompatControl`,`directoryPaletteControl`]}]},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`}]}}},actions:{copySession:{copy:`{{ .session.id }}`},copyDir:{copy:`{{ .current_dir }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},applyCharsetForever:{persist:`charset`,from:`charsets`},resetCharset:{reset:`charset`},applyColorCompatForever:{persist:`colorCompatibility`,from:`colorCompatibilities`},resetColorCompat:{reset:`colorCompatibility`},applyDirectoryPaletteForever:{persist:`segments.directory.palette`,from:`themes`},resetDirectoryPalette:{reset:`segments.directory.palette`}},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:`segment`,name:`toolbar`}]},{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`,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 .)) }}`}},xC=new Set([bC.globals.palette,...Object.values(bC.segments).map(e=>e.palette)].filter(e=>e!==void 0)),SC=Ca(E_(`<default>`,JSON.stringify(bC),xC),bC);var CC=me((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:tn}function r(){cn||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){rn(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function d(e,t,n){rn(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 an.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(re())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&ie(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,ae(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.
130
+ 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 te(e){return(te=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ne(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,ie(e,t)}function re(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch{}return(re=function(){return!!e})()}function ie(e,t){return(ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ae(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 w(e){var t=typeof Map==`function`?new Map:void 0;return(w=function(e){function n(){return b(e,arguments,te(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}}),ie(n,e)})(e)}function T(e){return Object.assign((function(t,n){if(se(n))return e.t(t,n);oe(t,n,e)}),e)}function oe(e,t,n){g(e,mn)||u(e,mn,ee({},e[mn])),function(e){return e.i===`override`}(n)||(e[mn][t]=n)}function se(e){return typeof e==`object`&&typeof e.kind==`string`}function ce(e,t,n){t===void 0&&(t=un),n===void 0&&(n=un);var r=new hn(e);return t!==un&&ft(r,t),n!==un&&pt(r,n),r}function le(e,t,n){return St(e)?e:Array.isArray(e)?L.array(e,{name:n}):c(e)?L.object(e,void 0,{name:n}):p(e)?L.map(e,{name:n}):m(e)?L.set(e,{name:n}):typeof e!=`function`||lt(e)||yt(e)?e:l(e)?nr(e):Xn(n,e)}function ue(e){return e}function de(e,t){return{i:e,u:t,o:fe,s:pe,t:me}}function fe(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:lt(n.value)?1:(rn(r,t,he(e,this,t,n,!1)),2)}function pe(e,t,n,r){var i=he(e,this,t,n);return e.l(t,i,r)}function me(e,n){var r,i=n.kind,a=n.name,o=n.addInitializer,s=this,c=function(e){var t;return Pe(s.u?.name??a.toString(),e,(t=s.u?.autoAction)!=null&&t)};return i==`field`?function(e){var t,n=e;return lt(n)||(n=c(n)),(t=s.u)!=null&&t.bound&&((n=n.bind(this)).isMobxAction=!0),n}:i==`method`?(lt(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+`):
131
+ '`+s.i+`' can only be used on properties with a function value.`)}function he(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:Pe(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 ge(e,t){return{i:e,u:t,o:E,s:_e,t:ve}}function E(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)||!yt(e.h[t]))&&this.s(e,t,n,!1)===null?0:yt(n.value)?1:(rn(r,t,ye(e,0,0,n,!1,!1)),2)}function _e(e,t,n,r){var i=ye(e,0,0,n,this.u?.bound);return e.l(t,i,r)}function ve(e,t){var n,r=t.name,i=t.addInitializer;return yt(e)||(e=nr(e)),(n=this.u)!=null&&n.bound&&i((function(){var e=this[r].bind(this);e.isMobXFlow=!0,this[r]=e})),e}function ye(e,t,n,r,i,a){a===void 0&&(a=z.safeDescriptors);var o=r.value;return yt(o)||(o=nr(o)),i&&((o=o.bind(e.v??e.h)).isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function be(e,t){return{i:e,u:t,o:xe,s:Se,t:Ce}}function xe(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Se(e,t,n,r){return e.m(t,ee({},this.u,{get:n.get,set:n.set}),r)}function Ce(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 Fn(i))})),function(){return this[F].O(r)}}function we(e,t){return{i:e,u:t,o:Te,s:Ee,t:De}}function Te(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Ee(e,t,n,r){return e.g(t,n.value,this.u?.enhancer??le,r)}function De(e,t){function n(e,t){var n=Ht(e)[F],i=new Nn(t,r.u?.enhancer??le,`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 Oe(e){return{i:`true`,u:e,o:ke,s:Ae,t:je}}function ke(e,t,n,r){var i,a,o;if(n.get)return On.o(e,t,n,r);if(n.set){var s=lt(n.set)?n.set:Pe(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!z.safeDescriptors||e.p,set:s})===null?0:2:(rn(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?nr.bound:nr).o(e,t,n,r):((a=this.u)!=null&&a.autoBind?Xn.bound:Xn).o(e,t,n,r);var c=!1===this.u?.deep?L.ref:L;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 Ae(e,t,n,r){var i;return n.get?On.s(e,t,n,r):n.set?e.l(t,{configurable:!z.safeDescriptors||e.p,set:Pe(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?L.ref:L).s(e,t,n,r))}function je(){t(`'`+this.i+`' cannot be used as a decorator`)}function Me(e){return e||bn}function D(e){return!0===e.deep?le:!1===e.deep?ue:(t=e.defaultDecorator)&&(n=(r=t.u)?.enhancer)!=null?n:le;var t,n,r}function Ne(e,t,n){return se(t)?xn.t(e,t):o(t)?void oe(e,t,xn):St(e)?e:c(e)?L.object(e,t,n):Array.isArray(e)?L.array(e,t):p(e)?L.map(e,t):m(e)?L.set(e,t):typeof e==`object`&&e?e:L.box(e,t)}function Pe(e,t,n,r){function i(){return Fe(0,n,t,r||this,arguments)}return n===void 0&&(n=!1),i.isMobxAction=!0,i.toString=function(){return t.toString()},jn&&(Mn.value=e,rn(i,`name`,Mn)),i}function Fe(e,t,n,r,i){var a=Ie(0,t);try{return n.apply(r,i)}catch(e){throw a._=e,e}finally{Le(a)}}function Ie(e,t){var n=z.trackingDerivation,r=!t||!n;et();var i=z.allowStateChanges;r&&(Ke(),i=ze(!0));var a={A:r,k:n,M:i,V:Je(!0),R:!1,N:0,T:An++,C:kn};return kn=a.T,a}function Le(e){kn!==e.T&&t(30),kn=e.C,e._!==void 0&&(z.suppressReactionErrors=!0),Be(e.M),Ye(e.V),tt(),e.A&&qe(e.k),z.suppressReactionErrors=!1}function Re(e,t){var n=ze(e);try{return t()}finally{Be(n)}}function ze(e){var t=z.allowStateChanges;return z.allowStateChanges=e,t}function Be(e){z.allowStateChanges=e}function Ve(e){return e instanceof Rn}function He(e){switch(e.I){case R.L:return!1;case R.P:case R.K:return!0;case R.B:for(var t=Je(!0),n=Ke(),r=e.D,i=r.length,a=0;a<i;a++){var o=r[a];if(Ln(o)){if(z.disableErrorBoundaries)o.get();else try{o.get()}catch{return qe(n),Ye(t),!0}if(e.I===R.K)return qe(n),Ye(t),!0}}return Xe(e),qe(n),Ye(t),!1}}function Ue(e,t,n){var r=Je(!0);Xe(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=R.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&&Qe(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Ze(l,e))}r!==R.L&&(e.I=r,e.H())}(e),Ye(r),i}function We(e){var t=e.D;e.D=[];for(var n=t.length;n--;)Qe(t[n],e);e.I=R.P}function Ge(e){var t=Ke();try{return e()}finally{qe(t)}}function Ke(){var e=z.trackingDerivation;return z.trackingDerivation=null,e}function qe(e){z.trackingDerivation=e}function Je(e){var t=z.allowStateReads;return z.allowStateReads=e,t}function Ye(e){z.allowStateReads=e}function Xe(e){if(e.I!==R.L){e.I=R.L;for(var t=e.D,n=t.length;n--;)t[n].U=R.L}}function Ze(e,t){e.F.add(t),e.U>t.I&&(e.U=t.I)}function Qe(e,t){e.F.delete(t),e.F.size===0&&$e(e)}function $e(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,z.pendingUnobservations.push(e))}function et(){z.inBatch++}function tt(){if(--z.inBatch==0){it();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 Fn&&n.X())}z.pendingUnobservations=[]}}function nt(e){var t=z.trackingDerivation;return t===null?(e.F.size===0&&z.inBatch>0&&$e(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 rt(e){e.U!==R.K&&(e.U=R.K,e.F.forEach((function(e){e.I===R.L&&e.H(),e.I=R.K})))}function it(){z.inBatch>0||z.isRunningReactions||Wn(at)}function at(){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 ot(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}}function st(e){return function(t,n){return a(t)?Pe(t.name||`<unnamed action>`,t,e):a(n)?Pe(t,n,e):se(n)?(e?B:Kn).t(t,n):o(n)?oe(t,n,e?B:Kn):o(t)?T(de(e?`autoAction`:`action`,{name:t,autoAction:e})):void 0}}function ct(e){return Fe(0,!1,e,this,void 0)}function lt(e){return a(e)&&!0===e.isMobxAction}function ut(e,t){function n(){e(i)}var r;t===void 0&&(t=sn);var i,a=t?.name??`Autorun`;if(t.scheduler||t.delay){var o=dt(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 dt(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:Zn}function ft(e,t,n){return mt(`onBO`,e,t,n)}function pt(e,t,n){return mt(`onBUO`,e,t,n)}function mt(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 ht(e,t,n,r){var i=pn(t);return Zt((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 gt(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(gt)),n}function _t(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(_t)),t}function vt(e){a(e.cancel)&&e.cancel()}function yt(e){return!0===e?.isMobXFlow}function bt(e,t){return t===void 0?Ln(e):!1===Wt(e)||!e[F].j.has(t)?!1:Ln(Yt(e,t))}function xt(e,t){return!!e&&(t===void 0?Wt(e)||!!e[F]||gn(e)||Gn(e)||Ln(e):!!Wt(e)&&e[F].j.has(t))}function St(e){return xt(e)}function Ct(e){return Wt(e)?e[F].nt():V(e)||_r(e)?Array.from(e.keys()):zt(e)?e.map((function(e,t){return t})):void t(5)}function wt(e,n){return Wt(e)?e[F].it(n):V(e)||_r(e)?e.has(n):zt(e)?n>=0&&n<e.length:void t(10)}function Tt(e){if(Wt(e))return e[F].rt();t(38)}function Et(e,t,n){return e.set(t,n),n}function Dt(e,t){t===void 0&&(t=void 0),et();try{return e.apply(t)}finally{tt()}}function Ot(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=Pe(`When-effect`,t),o=ut((function(t){Re(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())}),n);return o}function kt(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=Ot(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 At(e){return e[F]}function jt(e){return e.et!==void 0&&e.et.length>0}function Mt(e,t){var n=e.et||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Nt(e,n){var r=Ke();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{qe(r)}}function Pt(e){return e.ut!==void 0&&e.ut.length>0}function Ft(e,t){var n=e.ut||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function It(e,t){var n=Ke(),r=e.ut;if(r){for(var i=0,a=(r=r.slice()).length;i<a;i++)r[i](t);qe(n)}}function Lt(e,t,n,i){return n===void 0&&(n=`ObservableArray`),i===void 0&&(i=!1),r(),Zt((function(){var r=new sr(n,t,i,!1);d(r.j,F,r);var a=new Proxy(r.j,or);return r.v=a,e&&e.length&&r.ot(0,0,e),a}))}function O(e,t){typeof Array.prototype[e]==`function`&&(cr[e]=t(e))}function k(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)&&dr(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 yr(e,new Map,String(n),function(e){return e?e.defaultDecorator??Oe(e):void 0}(t))),e}function Ut(e){return vr[e]||(vr[e]={get:function(){return this[F].O(e)},set:function(t){return this[F].S(e,t)}})}function Wt(e){return!!s(e)&&br(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 qt(e){rn(wr.prototype,``+e,Kt(e))}function Jt(e){if(e>Sr){for(var t=Sr;t<e+100;t++)qt(t);Sr=e}}function j(e,t,n){return new wr(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(_r(e))return e.st;if(V(e)){if(n===void 0)return e.lt;var r=e.vt.get(n)||e.dt.get(n);return r||t(25,n,Xt(e)),r}if(Wt(e)){if(!n)return t(26);var i=e[F].j.get(n);return i||t(27,n,Xt(e)),i}if(gn(e)||Ln(e)||Gn(e))return e}else if(a(e)&&Gn(e[F]))return e[F];t(28)}function M(e,n){return e||t(29),n===void 0?gn(e)||Ln(e)||Gn(e)||V(e)||_r(e)?e:e[F]?e[F]:void t(24,e):M(Yt(e,n))}function Xt(e,t){var n;if(t!==void 0)n=Yt(e,t);else{if(lt(e))return e.name;n=Wt(e)||V(e)||_r(e)?M(e):Yt(e)}return n.tt}function Zt(e){var t=Ke(),n=ze(!0);et();try{return e()}finally{tt(),Be(n),qe(t)}}function Qt(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=Tr.call(t);if(c!==Tr.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=$t(t),n=$t(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 $t(e){return zt(e)?e.slice():p(e)||V(e)||m(e)||_r(e)?Array.from(e.entries()):e}function en(e){return e[Symbol.iterator]=N,Object.assign(Object.create(Er),e)}function N(){return this}Object.defineProperty(e,`__esModule`,{value:!0});var tn={},P=Object.assign,nn=Object.getOwnPropertyDescriptor,rn=Object.defineProperty,an=Object.prototype,on=[];Object.freeze(on);var sn={};Object.freeze(sn);var cn=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]=nn(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=R.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 nt(this)},t.reportChanged=function(){et(),rt(this),tt()},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 Qt(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 Qt(e,t,1)}},vn=T({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=Oe(),bn={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(bn);var xn=we(`observable`),Sn=we(`observable.ref`,{enhancer:ue}),I=we(`observable.shallow`,{enhancer:function(e,t,n){return e==null||Wt(e)||zt(e)||V(e)||_r(e)?e:Array.isArray(e)?L.array(e,{name:n,deep:!1}):c(e)?L.object(e,void 0,{name:n,deep:!1}):p(e)?L.map(e,{name:n,deep:!1}):m(e)?L.set(e,{name:n,deep:!1}):void 0}}),Cn=we(`observable.struct`,{enhancer:function(e,t){return Qt(e,t)?t:e}}),wn=T(xn);P(Ne,wn);var Tn,L=P(Ne,{box:function(e,t){var n=Me(t);return new Nn(e,D(n),n.name,!0,n.equals)},array:function(e,t){var n=Me(t);return(!1===z.useProxies||!1===n.proxy?j:Lt)(e,D(n),n.name)},map:function(e,t){var n=Me(t);return new mr(e,D(n),n.name)},set:function(e,t){var n=Me(t);return new gr(e,D(n),n.name)},object:function(e,t,n){return Zt((function(){return ht(!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,rr))}({},n),e,t)}))},ref:T(Sn),shallow:T(I),deep:wn,struct:T(Cn)}),En=be(`computed`),Dn=be(`computed.struct`,{equals:_n.structural}),On=function(e,t){if(se(t))return En.t(e,t);if(o(t))return oe(e,t,En);if(c(e))return T(be(`computed`,e));var n=c(t)?t:{};return n.get=e,n.name||=e.name||``,new Fn(n)};Object.assign(On,En),On.struct=T(Dn);var kn=0,An=1,jn=(Tn=nn((function(){}),`name`)?.configurable)!=null&&Tn,Mn={value:`action`,configurable:!0,writable:!1,enumerable:!1},Nn=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}ne(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(jt(this)){var t=Nt(this,{object:this,type:ar,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(),Pt(this)&&It(this,{type:ar,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.Ot)},n.St=function(e){return Mt(this,e)},n._t=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.tt,object:this,type:ar,newValue:this.Ot,oldValue:void 0}),Ft(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),Pn=f(`ObservableValue`,Nn),Fn=function(){function e(e){this.I=R.P,this.D=[],this.W=null,this.F=new Set,this.q=0,this.$=0,this.U=R.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=In.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=Pe(`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===R.L&&(e.U=R.B,e.F.forEach((function(e){e.I===R.L&&(e.I=R.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(nt(this),He(this)){var e=z.trackingContext;this.Nt&&!e&&(z.trackingContext=this),this.trackAndCompute()&&function(e){e.U!==R.K&&(e.U=R.K,e.F.forEach((function(t){t.I===R.B?t.I=R.K:t.I===R.L&&(e.U=R.L)})))}(this),z.trackingContext=e}}else He(this)&&(this.Tt(),et(),this.Ot=this.Ct(!1),tt());var n=this.Ot;if(Ve(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===R.P,n=this.Ct(!0),r=t||Ve(e)||Ve(n)||!this.Vt(e,n);return r&&(this.Ot=n),r},n.Ct=function(e){this.isComputing=!0;var t,n=ze(!1);if(e)t=Ue(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 Be(n),this.isComputing=!1,t},n.X=function(){this.Nt||(We(this),this.Ot=void 0)},n._t=function(e,t){var n=this,r=!0,i=void 0;return ut((function(){var a=n.get();if(!r||t){var o=Ke();e({observableKind:`computed`,debugObjectName:n.tt,type:ar,object:n,newValue:a,oldValue:i}),qe(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)}}])}();Fn.It=1,Fn.Lt=2,Fn.pt=4,Fn.yt=8,Fn.wt=16;var R,In,Ln=f(`ComputedValue`,Fn);(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_`})(R||={}),function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`}(In||={});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=R.P,this.q=0,this.G=0,this.bt=0,this.Mt=In.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),it())},t.J=function(){if(!this.isDisposed){et(),this.isScheduled=!1;var e=z.trackingContext;if(z.trackingContext=this,He(this)){this.isTrackPending=!0;try{this.Pt()}catch(e){this.Dt(e)}}z.trackingContext=e,tt()}},t.track=function(e){if(!this.isDisposed){et(),this.isRunning=!0;var t=z.trackingContext;z.trackingContext=this;var n=Ue(this,e,void 0);z.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&We(this),Ve(n)&&this.Dt(n.cause),tt()}},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||(et(),We(this),tt()))},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=de(`action`),qn=de(`action.bound`,{bound:!0}),B=de(`autoAction`,{autoAction:!0}),Jn=de(`autoAction.bound`,{autoAction:!0,bound:!0}),Yn=st(!1);Object.assign(Yn,Kn);var Xn=st(!0);Object.assign(Xn,B),Yn.bound=T(qn),Xn.bound=T(Jn);var Zn=function(e){return e()},Qn=0,$n=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 ne(t,e),t.prototype.toString=function(){return`Error: `+this.message},t}(w(Error)),er=ge(`flow`),tr=ge(`flow.bound`,{bound:!0}),nr=Object.assign((function(e,t){if(se(t))return er.t(e,t);if(o(t))return oe(e,t,er);var n=e,r=n.name||`<unnamed flow>`,i=function(){var e,t=this,i=arguments,o=++Qn,s=Yn(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=Yn(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=Yn(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=Yn(r+` - runid: `+o+` - cancel`,(function(){try{c&&vt(c);var t=s.return(void 0),n=Promise.resolve(t.value);n.then(un,un),vt(n),e(new $n)}catch(t){e(t)}})),l};return i.isMobXFlow=!0,i}),er);nr.bound=T(tr);var rr={has:function(e,t){return At(e).it(t)},get:function(e,t){return At(e).ct(t)},set:function(e,t,n){var r;return!!o(t)&&((r=At(e).ht(t,n,!0))==null||r)},deleteProperty:function(e,t){var n;return!!o(t)&&((n=At(e).Ut(t,!0))==null||n)},defineProperty:function(e,t,n){var r;return(r=At(e).l(t,n))==null||r},ownKeys:function(e){return At(e).rt()},preventExtensions:function(){t(13)}},ir=Symbol(`mobx-keys`),ar=`update`,or={get:function(e,t){var n=e[F];return t===F?n:t===`length`?n.Ft():typeof t!=`string`||isNaN(t)?g(cr,t)?cr[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)}},sr=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 Mt(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}),Ft(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&&Jt(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=on),jt(this)){var a=Nt(this,{object:this.v,type:`splice`,index:e,removedCount:t,added:n});if(!a)return on;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=Pt(this),a=i||r?{observableKind:`array`,object:this.v,type:ar,debugObjectName:this.st.tt,index:e,newValue:t,oldValue:n}:null;this.st.reportChanged(),i&&It(this,a)},n.nn=function(e,t,n){var r=!this.zt&&!1,i=Pt(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&&It(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(jt(this)){var a=Nt(this,{type:ar,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}(),cr={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)}};O(`at`,k),O(`concat`,k),O(`flat`,k),O(`includes`,k),O(`indexOf`,k),O(`join`,k),O(`lastIndexOf`,k),O(`slice`,k),O(`toString`,k),O(`toLocaleString`,k),O(`toSorted`,k),O(`toSpliced`,k),O(`with`,k),O(`every`,A),O(`filter`,A),O(`find`,A),O(`findIndex`,A),O(`findLast`,A),O(`findLastIndex`,A),O(`flatMap`,A),O(`forEach`,A),O(`map`,A),O(`some`,A),O(`toReversed`,A),O(`reduce`,Rt),O(`reduceRight`,Rt);var lr,ur,dr=f(`ObservableArrayAdministration`,sr),fr={},pr=`add`,mr=function(){function e(e,n,r){var i=this;n===void 0&&(n=le),r===void 0&&(r=`ObservableMap`),this.Jt=void 0,this.tt=void 0,this[F]=fr,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),Zt((function(){i.lt=ce(`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 Nn(this.it(e),ue,`ObservableMap.key?`,!1);this.dt.set(e,r),pt(r,(function(){return t.dt.delete(e)}))}return n.get()},n.set=function(e,t){var n=this.it(e);if(jt(this)){var r=Nt(this,{type:n?ar:pr,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(jt(this)&&!Nt(this,{type:`delete`,object:this,name:e}))return!1;if(this.it(e)){var n=Pt(this),r=n?{observableKind:`map`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:this.vt.get(e).Ot,name:e}:null;return Dt((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&&It(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=Pt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:ar,object:this,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),r&&It(this,i)}},n.en=function(e,t){var n=this;Dt((function(){var r,i=new Nn(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=Pt(this);r&&It(this,r?{observableKind:`map`,debugObjectName:this.tt,type:pr,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 V(e)&&(e=new Map(e)),Dt((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 an.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;Dt((function(){Ge((function(){for(var t,n=C(e.keys());!(t=n()).done;)e.delete(t.value)}))}))},n.replace=function(e){var n=this;return Dt((function(){for(var r,i=function(e){if(p(e)||V(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 Ft(this,e)},n.St=function(e){return Mt(this,e)},S(e,[{key:`size`,get:function(){return this.lt.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),V=f(`ObservableMap`,mr),hr={},gr=function(){function e(e,n,r){var i=this;n===void 0&&(n=le),r===void 0&&(r=`ObservableSet`),this.tt=void 0,this[F]=hr,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)},Zt((function(){i.st=ce(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;Dt((function(){Ge((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(jt(this)){var n=Nt(this,{type:pr,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){Dt((function(){t.vt.add(t.Jt(e,void 0)),t.st.reportChanged()}));var r=Pt(this);r&&It(this,r?{observableKind:`set`,debugObjectName:this.tt,type:pr,object:this,newValue:e}:null)}return this},n.delete=function(e){var t=this;if(jt(this)&&!Nt(this,{type:`delete`,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Pt(this),r=n?{observableKind:`set`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:e}:null;return Dt((function(){t.st.reportChanged(),t.vt.delete(e)})),n&&It(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)&&!_r(e)?e.intersection(this):new Set(this).intersection(e)},n.union=function(e){return m(e)&&!_r(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)&&!_r(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)&&!_r(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},n.replace=function(e){var n=this;return _r(e)&&(e=new Set(e)),Dt((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 Ft(this,e)},n.St=function(e){return Mt(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`}}])}(),_r=f(`ObservableSet`,gr),vr=Object.create(null),yr=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 Fn)return n.set(t),!0;if(jt(this)){var r=Nt(this,{type:ar,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=Pt(this),a=i?{type:ar,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),i&&It(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 Nn(e in this.h,ue,`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!==an;){var a=nn(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{et();var r=this.Ut(e);if(!r)return r;if(jt(this)){var i=Nt(this,{object:this.v||this.h,name:e,type:pr,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 rn(this.h,e,t);this.fn(e,t.value)}finally{tt()}return!0},n.g=function(e,t,n,r){r===void 0&&(r=!1);try{et();var i=this.Ut(e);if(!i)return i;if(jt(this)){var a=Nt(this,{object:this.v||this.h,name:e,type:pr,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 rn(this.h,e,s);var c=new Nn(t,n,`ObservableObject.key`,!1);this.j.set(e,c),this.fn(e,c.Ot)}finally{tt()}return!0},n.m=function(e,t,n){n===void 0&&(n=!1);try{et();var r=this.Ut(e);if(!r)return r;if(jt(this)&&!Nt(this,{object:this.v||this.h,name:e,type:pr,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 rn(this.h,e,a);this.j.set(e,new Fn(t)),this.fn(e,void 0)}finally{tt()}return!0},n.Ut=function(e,t){if(t===void 0&&(t=!1),!g(this.h,e))return!0;if(jt(this)&&!Nt(this,{object:this.v||this.h,name:e,type:`remove`}))return null;try{var n;et();var r=Pt(this),i=this.j.get(e),a=void 0;if(!i&&r&&(a=nn(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 Nn&&(a=i.Ot),rt(i)),this.lt.reportChanged(),(n=this.sn)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&It(this,{type:`remove`,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{tt()}return!0},n._t=function(e){return Ft(this,e)},n.St=function(e){return Mt(this,e)},n.fn=function(e,t){var n,r=Pt(this);r&&r&&It(this,r?{type:pr,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}(),br=f(`ObservableObjectAdministration`,yr),xr=Kt(0),H=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,!1===e}(),Sr=0,Cr=function(){};lr=Cr,ur=Array.prototype,Object.setPrototypeOf?Object.setPrototypeOf(lr.prototype,ur):lr.prototype.__proto__===void 0?lr.prototype=ur:lr.prototype.__proto__=ur;var wr=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,Zt((function(){var e=new sr(r,n,i,!0);e.v=a,d(a,F,e),t&&t.length&&a.spliceWithArray(0,0,t),H&&Object.defineProperty(a,`0`,xr)})),a}ne(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`}}])}(Cr);Object.entries(cr).forEach((function(e){var t=e[0];t!==`concat`&&u(wr.prototype,t,e[1])})),Jt(1e3);var Tr=an.toString,Er=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:ot,extras:{getDebugName:Xt},$mobx:F}),e.$mobx=F,e.FlowCancellationError=$n,e.ObservableMap=mr,e.ObservableSet=gr,e.Reaction=Un,e._allowStateChanges=Re,e._allowStateChangesInsideComputed=ct,e._allowStateReadsEnd=Ye,e._allowStateReadsStart=Je,e._autoAction=Xn,e._endAction=Le,e._getAdministration=M,e._getGlobalState=function(){return z},e._interceptReads=function(e,t,n){var r;return V(e)||zt(e)||Pn(e)?r=M(e):Wt(e)&&(r=M(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=Ie,e.action=Yn,e.autorun=ut,e.comparer=_n,e.computed=On,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=ce,e.defineProperty=function(e,n,r){if(Wt(e))return e[F].l(n,r);t(39)},e.entries=function(e){return Wt(e)?Ct(e).map((function(t){return[t,e[t]]})):V(e)?Ct(e).map((function(t){return[t,e.get(t)]})):_r(e)?Array.from(e.entries()):zt(e)?e.map((function(e,t){return[t,e]})):void t(7)},e.extendObservable=ht,e.flow=nr,e.flowResult=function(e){return e},e.get=function(e,n){if(wt(e,n))return Wt(e)?e[F].ct(n):V(e)?e.get(n):zt(e)?e[n]:void t(11)},e.getAtom=Yt,e.getDebugName=Xt,e.getDependencyTree=function(e,t){return gt(Yt(e,t))},e.getObserverTree=function(e,t){return _t(Yt(e,t))},e.has=wt,e.intercept=function(e,t,n){return a(n)?function(e,t,n){return M(e,t).St(n)}(e,t,n):function(e,t){return M(e).St(t)}(e,t)},e.isAction=lt,e.isBoxedObservable=Pn,e.isComputed=function(e){return bt(e)},e.isComputedProp=function(e,t){return bt(e,t)},e.isFlow=yt,e.isFlowCancellationError=function(e){return e instanceof $n},e.isObservable=St,e.isObservableArray=zt,e.isObservableMap=V,e.isObservableObject=Wt,e.isObservableProp=function(e,t){return xt(e,t)},e.isObservableSet=_r,e.keys=Ct,e.makeAutoObservable=function(e,t,n){return c(e)?ht(e,e,t,n):(Zt((function(){var r=Ht(e,n)[F];if(!e[ir]){var i=Object.getPrototypeOf(e),a=new Set([].concat(fn(e),fn(i)));a.delete(`constructor`),a.delete(F),u(i,ir,a)}e[ir].forEach((function(e){return r.o(e,!t||!(e in t)||t[e])}))})),e)},e.makeObservable=function(e,t,n){return Zt((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=L,e.observe=function(e,t,n,r){return a(n)?function(e,t,n,r){return M(e,t)._t(n,r)}(e,t,n,r):function(e,t,n){return M(e)._t(t,n)}(e,t,n)},e.onBecomeObserved=ft,e.onBecomeUnobserved=pt,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=Tt,e.reaction=function(e,t,n){function r(){if(p=!1,!h.isDisposed){var t=!1,r=s;h.track((function(){var n=Re(!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=sn);var a,o,s,c=n.name??`Reaction`,l=Yn(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=dt(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):V(e)||_r(e)?e.delete(n):zt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=ct,e.set=function e(n,r,i){if(arguments.length!==2||_r(n))Wt(n)?n[F].ht(r,i):V(n)?n.set(r,i):_r(n)?n.add(r):zt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(`Invalid index: '`+r+`'`),et(),r>=n.length&&(n.length=r+1),n[r]=i,tt()):t(8);else{et();var a=r;try{for(var o in a)e(n,o,a[o])}finally{tt()}}},e.spy=ot,e.toJS=function(e){return function e(t,n){if(typeof t!=`object`||!t||t instanceof Date||!St(t))return t;if(Pn(t)||Ln(t))return e(t.get(),n);if(n.has(t))return n.get(t);if(zt(t)){var r=Et(n,t,Array(t.length));return t.forEach((function(t,i){r[i]=e(t,n)})),r}if(_r(t)){var i=Et(n,t,new Set);return t.forEach((function(t){i.add(e(t,n))})),i}if(V(t)){var a=Et(n,t,new Map);return t.forEach((function(t,r){a.set(r,e(t,n))})),a}var o=Et(n,t,{});return Tt(t).forEach((function(r){an.propertyIsEnumerable.call(t,r)&&(o[r]=e(t[r],n))})),o}(e,new Map)},e.trace=function(){},e.transaction=Dt,e.untracked=Ge,e.values=function(e){return Wt(e)?Ct(e).map((function(t){return e[t]})):V(e)?Ct(e).map((function(t){return e.get(t)})):_r(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`?kt(e,t):Ot(e,t,n||{})}})),wC=me((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 ne(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function re(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function ie(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}var ae=Object.getOwnPropertySymbols!==void 0;function w(e){var t=Object.keys(e);if(!ae)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter(function(t){return c.propertyIsEnumerable.call(e,t)})):t}var T=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:ae?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function oe(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function se(e){return e===null?null:typeof e==`object`?``+e:e}function ce(e,t){return c.hasOwnProperty.call(e,t)}var le=Object.getOwnPropertyDescriptors||function(e){var t={};return T(e).forEach(function(n){t[n]=o(e,n)}),t};function ue(e,t){return!!(e&t)}function de(e,t,n){return n?e|=t:e&=~t,e}function fe(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 pe(e,t,n){if(be())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&xe(i,n.prototype),i}function me(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,Ce(r.key),r)}}function he(e,t,n){return t&&me(e.prototype,t),n&&me(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function ge(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=we(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
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E(){return E=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},E.apply(null,arguments)}function _e(e){return _e=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_e(e)}function ve(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,xe(e,t)}function ye(e){try{return Function.toString.call(e).indexOf(`[native code]`)!==-1}catch{return typeof e==`function`}}function be(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(be=function(){return!!e})()}function xe(e,t){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xe(e,t)}function Se(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 Ce(e){var t=Se(e,`string`);return typeof t==`symbol`?t:t+``}function we(e,t){if(e){if(typeof e==`string`)return fe(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)?fe(e,t):void 0}}function Te(e){var t=typeof Map==`function`?new Map:void 0;return Te=function(e){if(e===null||!ye(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 pe(e,arguments,_e(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),xe(n,e)},Te(e)}var Ee=Symbol(`mobx-stored-annotations`);function De(e){function t(t,n){if(je(n))return e.decorate_20223_(t,n);Oe(t,n,e)}return Object.assign(t,e)}function Oe(e,t,r){ce(e,Ee)||C(e,Ee,E({},e[Ee])),qe(r)&&!ce(e[Ee],t)&&n(`'`+(e.constructor.name+`.prototype.`+t.toString())+`' is decorated with 'override', but no such decorated member was found on prototype.`),ke(e,r,t),qe(r)||(e[Ee][t]=r)}function ke(e,t,r){if(!qe(t)&&ce(e[Ee],r)){var i=e.constructor.name+`.prototype.`+r.toString(),a=e[Ee][r].annotationType_,o=t.annotationType_;n(`Cannot apply '@`+o+`' to '`+i+`':`+(`
133
133
  The field is already decorated with '@`+a+`'.`)+`
134
134
  Re-decorating fields is not allowed.
135
- Use '@override' decorator for methods overridden by subclass.`)}}function Ae(e){return ce(e,Ee)||ee(e,Ee,E({},e[Ee])),e[Ee]}function je(e){return typeof e==`object`&&typeof e.kind==`string`}function Me(e,t){t.includes(e.kind)||n(`The decorator applied to '`+String(e.name)+`' cannot be used on a `+e.kind+` element`)}var D=Symbol(`mobx administration`),Ne=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_=P.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 Mn(this)},t.reportChanged=function(){An(),Nn(this),jn()},t.toString=function(){return this.name_},he(e,[{key:`isBeingObserved`,get:function(){return ue(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=de(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return ue(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=de(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=de(this.flags_,e.diffValueMask_,t===1)}}])}();Ne.isBeingObservedMask_=1,Ne.isPendingUnobservationMask_=2,Ne.diffValueMask_=4;var Pe=ne(`Atom`,Ne);function Fe(e,t,n){t===void 0&&(t=_),n===void 0&&(n=_);var r=new Ne(e);return t!==_&&hr(r,t),n!==_&&gr(r,n),r}function Ie(e,t){return e===t}function Le(e,t){return ha(e,t)}function Re(e,t){return ha(e,t,1)}function ze(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Be={identity:Ie,structural:Le,default:ze,shallow:Re};function Ve(e,t,n){return Wr(e)?e:Array.isArray(e)?A.array(e,{name:n}):x(e)?A.object(e,void 0,{name:n}):re(e)?A.map(e,{name:n}):C(e)?A.set(e,{name:n}):typeof e==`function`&&!cr(e)&&!Fr(e)?S(e)?Mr(e):or(n,e):e}function He(e,t,r){if(e==null||Qi(e)||Fi(e)||Bi(e)||Gi(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(re(e))return A.map(e,{name:r,deep:!1});if(C(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 Ue(e){return e}function We(e,t){return Wr(e)&&n(`observable.struct should not be used with observable values`),ha(e,t)?t:e}var Ge=`override`,Ke=De({annotationType_:Ge,make_:Je,extend_:Ye,decorate_20223_:Xe});function qe(e){return e.annotationType_===Ge}function Je(e,t){return e.isPlainObject_&&n(`Cannot apply '`+this.annotationType_+`' to '`+e.name_+`.`+t.toString()+`':`+(`
135
+ Use '@override' decorator for methods overridden by subclass.`)}}function Ae(e){return ce(e,Ee)||C(e,Ee,E({},e[Ee])),e[Ee]}function je(e){return typeof e==`object`&&typeof e.kind==`string`}function Me(e,t){t.includes(e.kind)||n(`The decorator applied to '`+String(e.name)+`' cannot be used on a `+e.kind+` element`)}var D=Symbol(`mobx administration`),Ne=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_=P.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 Mn(this)},t.reportChanged=function(){An(),Nn(this),jn()},t.toString=function(){return this.name_},he(e,[{key:`isBeingObserved`,get:function(){return ue(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=de(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return ue(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=de(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=de(this.flags_,e.diffValueMask_,t===1)}}])}();Ne.isBeingObservedMask_=1,Ne.isPendingUnobservationMask_=2,Ne.diffValueMask_=4;var Pe=te(`Atom`,Ne);function Fe(e,t,n){t===void 0&&(t=_),n===void 0&&(n=_);var r=new Ne(e);return t!==_&&hr(r,t),n!==_&&gr(r,n),r}function Ie(e,t){return e===t}function Le(e,t){return ha(e,t)}function Re(e,t){return ha(e,t,1)}function ze(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Be={identity:Ie,structural:Le,default:ze,shallow:Re};function Ve(e,t,n){return Wr(e)?e:Array.isArray(e)?A.array(e,{name:n}):x(e)?A.object(e,void 0,{name:n}):ne(e)?A.map(e,{name:n}):ie(e)?A.set(e,{name:n}):typeof e==`function`&&!cr(e)&&!Fr(e)?S(e)?Mr(e):or(n,e):e}function He(e,t,r){if(e==null||Qi(e)||Fi(e)||Bi(e)||Gi(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(ne(e))return A.map(e,{name:r,deep:!1});if(ie(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 Ue(e){return e}function We(e,t){return Wr(e)&&n(`observable.struct should not be used with observable values`),ha(e,t)?t:e}var Ge=`override`,Ke=De({annotationType_:Ge,make_:Je,extend_:Ye,decorate_20223_:Xe});function qe(e){return e.annotationType_===Ge}function Je(e,t){return e.isPlainObject_&&n(`Cannot apply '`+this.annotationType_+`' to '`+e.name_+`.`+t.toString()+`':`+(`
136
136
  '`+this.annotationType_+`' cannot be used on plain objects.`)),ce(e.appliedAnnotations_,t)||n(`'`+e.name_+`.`+t.toString()+`' is annotated with '`+this.annotationType_+`', but no such annotated member was found on prototype.`),0}function Ye(e,t,r,i){n(`'`+this.annotationType_+`' can only be used with 'makeObservable'`)}function Xe(e,t){console.warn(`'`+this.annotationType_+`' cannot be used with decorators - this is a no-op`)}function Ze(e,t){return{annotationType_:e,options_:t,make_:Qe,extend_:$e,decorate_20223_:et}}function Qe(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:cr(n.value)?1:(s(r,t,nt(e,this,t,n,!1)),2)}function $e(e,t,n,r){var i=nt(e,this,t,n);return e.defineProperty_(t,i,r)}function et(e,t){Me(t,[`method`,`field`]);var r=t.kind,i=t.name,a=t.addInitializer,o=this,s=function(e){return qt(o.options_?.name??i.toString(),e,o.options_?.autoAction??!1)};if(r==`field`)return function(e){var t,n=e;return cr(n)||(n=s(n)),(t=o.options_)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n};if(r==`method`){var c;return cr(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+`):`+(`
137
137
  '`+o.annotationType_+`' can only be used on properties with a function value.`))}function tt(e,t,r,i){var a=t.annotationType_,o=i.value;v(o)||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
138
138
  '`+a+`' can only be used on properties with a function value.`))}function nt(e,t,n,r,i){var a,o;i===void 0&&(i=I.safeDescriptors),tt(e,t,n,r);var s=r.value;return(a=t.options_)!=null&&a.bound&&(s=s.bind(e.proxy_??e.target_)),{value:qt(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 rt(e,t){return{annotationType_:e,options_:t,make_:it,extend_:at,decorate_20223_:ot}}function it(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&&(!ce(e.target_,t)||!Fr(e.target_[t]))&&this.extend_(e,t,n,!1)===null?0:Fr(n.value)?1:(s(r,t,ct(e,this,t,n,!1,!1)),2)}function at(e,t,n,r){var i=ct(e,this,t,n,this.options_?.bound);return e.defineProperty_(t,i,r)}function ot(e,t){var n;Me(t,[`method`]);var r=t.name,i=t.addInitializer;return Fr(e)||(e=Mr(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 st(e,t,r,i){var a=t.annotationType_,o=i.value;v(o)||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
139
139
  '`+a+`' can only be used on properties with a generator function value.`))}function ct(e,t,n,r,i,a){a===void 0&&(a=I.safeDescriptors),st(e,t,n,r);var o=r.value;return Fr(o)||(o=Mr(o)),i&&(o=o.bind(e.proxy_??e.target_),o.isMobXFlow=!0),{value:o,configurable:a?e.isPlainObject_:!0,enumerable:!1,writable:!a}}function lt(e,t){return{annotationType_:e,options_:t,make_:ut,extend_:dt,decorate_20223_:ft}}function ut(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function dt(e,t,n,r){return pt(e,this,t,n),e.defineComputedProperty_(t,E({},this.options_,{get:n.get,set:n.set}),r)}function ft(e,t){Me(t,[`getter`]);var n=this,r=t.name,i=t.addInitializer;return i(function(){var t=Yi(this)[D],i=E({},n.options_,{get:e,context:this});i.name||=t.name_+`.`+r.toString(),t.values_.set(r,new N(i))}),function(){return this[D].getObservablePropValue_(r)}}function pt(e,t,r,i){var a=t.annotationType_;i.get||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
140
140
  '`+a+`' can only be used on getter(+setter) properties.`))}function mt(e,t){return{annotationType_:e,options_:t,make_:ht,extend_:gt,decorate_20223_:_t}}function ht(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function gt(e,t,n,r){return vt(e,this,t,n),e.defineObservableProperty_(t,n.value,this.options_?.enhancer??Ve,r)}function _t(e,t){if(t.kind===`field`)throw n("Please use `@observable accessor "+String(t.name)+"` instead of `@observable "+String(t.name)+"`");Me(t,[`accessor`]);var r=this,i=t.kind,a=t.name,o=new WeakSet;function s(e,t){var n=Yi(e)[D],i=new $t(t,r.options_?.enhancer??Ve,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[D].getObservablePropValue_(a)},set:function(e){return o.has(this)||s(this,e),this[D].setObservablePropValue_(a,e)},init:function(e){return o.has(this)||s(this,e),e}}}function vt(e,t,r,i){var a=t.annotationType_;`value`in i||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
141
- '`+a+`' cannot be used on getter/setter properties`))}var yt=`true`,bt=xt();function xt(e){return{annotationType_:yt,options_:e,make_:St,extend_:Ct,decorate_20223_:wt}}function St(e,t,n,r){var i;if(n.get)return Ht.make_(e,t,n,r);if(n.set){var a=cr(n.set)?n.set:qt(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?Mr.bound:Mr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?or.bound:or).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 Ct(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:qt(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 wt(e,t){n(`'`+this.annotationType_+`' cannot be used as a decorator`)}var Tt=`observable`,Et=`observable.ref`,Dt=`observable.shallow`,Ot=`observable.struct`,kt={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(kt);function At(e){return e||kt}var jt=mt(Tt),Mt=mt(Et,{enhancer:Ue}),Nt=mt(Dt,{enhancer:He}),Pt=mt(Ot,{enhancer:We}),Ft=De(jt);function It(e){return e.deep===!0?Ve:e.deep===!1?Ue:O(e.defaultDecorator)}function Lt(e){return e?e.defaultDecorator??xt(e):void 0}function O(e){return e?e.options_?.enhancer??Ve:Ve}function k(e,t,n){if(je(t))return jt.decorate_20223_(e,t);if(y(t)){Oe(e,t,jt);return}return Wr(e)?e:x(e)?A.object(e,t,n):Array.isArray(e)?A.array(e,t):re(e)?A.map(e,t):C(e)?A.set(e,t):typeof e==`object`&&e?e:A.box(e,t)}a(k,Ft);var A=a(k,{box:function(e,t){var n=At(t);return new $t(e,It(n),n.name,!0,n.equals)},array:function(e,t){var n=At(t);return(I.useProxies===!1||n.proxy===!1?la:ki)(e,It(n),n.name)},map:function(e,t){var n=At(t);return new zi(e,It(n),n.name)},set:function(e,t){var n=At(t);return new Wi(e,It(n),n.name)},object:function(e,t,n){return pa(function(){return H(I.useProxies===!1||n?.proxy===!1?Yi({},n):hi({},n),e,t)})},ref:De(Mt),shallow:De(Nt),deep:Ft,struct:De(Pt)}),Rt=`computed`,zt=`computed.struct`,Bt=lt(Rt),Vt=lt(zt,{equals:Be.structural}),Ht=function(e,t){if(je(t))return Bt.decorate_20223_(e,t);if(y(t))return Oe(e,t,Bt);if(x(e))return De(lt(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 N(r)};Object.assign(Ht,Bt),Ht.struct=De(Vt);var Ut=0,Wt=1,Gt=o(function(){},`name`)?.configurable??!1,Kt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function qt(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 Jt(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 Jt(e,t,n,r,i){var a=j(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Yt(a)}}function j(e,t,n,r){var i=Wn()&&!!e,a=0;i&&(a=Date.now(),Kn({type:Yn,name:e,object:n,arguments:r?Array.from(r):l}));var o=I.trackingDerivation,s=!t||!o;An();var c=I.allowStateChanges;s&&(F(),c=Xt(!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),Zt(e.prevAllowStateChanges_),_n(e.prevAllowStateReads_),jn(),e.runAsAction_&&hn(e.prevDerivation_),e.notifySpy_&&B({time:Date.now()-e.startTime_}),I.suppressReactionErrors=!1}function M(e,t){var n=Xt(e);try{return t()}finally{Zt(n)}}function Xt(e){var t=I.allowStateChanges;return I.allowStateChanges=e,t}function Zt(e){I.allowStateChanges=e}var Qt=`create`,$t=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=Be.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:Qt,object:o,observableKind:`value`,debugObjectName:o.name_,newValue:``+o.value_?.toString()}),o}ve(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&&B()}},n.prepareNewValue_=function(e){if(cn(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 se(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(Ne),en=ne(`ObservableValue`,$t),N=function(){function e(e){this.dependenciesState_=P.NOT_TRACKING_,this.observing_=[],this.newObserving_=null,this.observers_=new Set,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=P.UP_TO_DATE_,this.unboundDepsCount_=0,this.value_=new rn(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,this.isTracing_=nn.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_=qt(this.name_+`-setter`,e.set)),this.equals_=e.equals||(e.compareStructural||e.struct?Be.structural:Be.default),this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}var t=e.prototype;return t.onBecomeStale_=function(){Fn(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_)on(this)&&(this.warnAboutUntrackedRead_(),An(),this.value_=this.computeValue_(!1),jn());else if(Mn(this),on(this)){var e=I.trackingContext;this.keepAlive_&&!e&&(I.trackingContext=this),this.trackAndCompute()&&Pn(this),I.trackingContext=e}var t=this.value_;if(an(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_===P.NOT_TRACKING_,n=this.computeValue_(!0),r=t||an(e)||an(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=Xt(!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 rn(e)}return Zt(t),this.isComputing=!1,n},t.suspend_=function(){this.keepAlive_||(pn(this),this.value_=void 0,this.isTracing_!==nn.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 lr(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_!==nn.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 se(this.get())},t[Symbol.toPrimitive]=function(){return this.valueOf()},he(e,[{key:`isComputing`,get:function(){return ue(this.flags_,e.isComputingMask_)},set:function(t){this.flags_=de(this.flags_,e.isComputingMask_,t)}},{key:`isRunningSetter`,get:function(){return ue(this.flags_,e.isRunningSetterMask_)},set:function(t){this.flags_=de(this.flags_,e.isRunningSetterMask_,t)}},{key:`isBeingObserved`,get:function(){return ue(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=de(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return ue(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=de(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=de(this.flags_,e.diffValueMask_,t===1)}}])}();N.isComputingMask_=1,N.isRunningSetterMask_=2,N.isBeingObservedMask_=4,N.isPendingUnobservationMask_=8,N.diffValueMask_=16;var tn=ne(`ComputedValue`,N),P;(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_`})(P||={});var nn;(function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`})(nn||={});var rn=function(e){this.cause=void 0,this.cause=e};function an(e){return e instanceof rn}function on(e){switch(e.dependenciesState_){case P.UP_TO_DATE_:return!1;case P.NOT_TRACKING_:case P.STALE_:return!0;case P.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(tn(o)){if(I.disableErrorBoundaries)o.get();else try{o.get()}catch{return hn(n),_n(t),!0}if(e.dependenciesState_===P.STALE_)return hn(n),_n(t),!0}}return vn(e),hn(n),_n(t),!1}}function sn(){return I.trackingDerivation!==null}function cn(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 rn(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=P.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&&On(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Dn(l,e))}r!==P.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}function pn(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)On(t[n],e);e.dependenciesState_=P.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_!==P.UP_TO_DATE_){e.dependenciesState_=P.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=P.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 L(e){return e.observers_&&e.observers_.size>0}function En(e){return e.observers_}function Dn(e,t){e.observers_.add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function On(e,t){e.observers_.delete(t),e.observers_.size===0&&kn(e)}function kn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,I.pendingUnobservations.push(e))}function An(){I.inBatch++}function jn(){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 N&&n.suspend_())}I.pendingUnobservations=[]}}function Mn(e){ln(e);var t=I.trackingDerivation;return t===null?(e.observers_.size===0&&I.inBatch>0&&kn(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 Nn(e){e.lowestObserverState_!==P.STALE_&&(e.lowestObserverState_=P.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===P.UP_TO_DATE_&&(t.isTracing_!==nn.NONE&&R(t,e),t.onBecomeStale_()),t.dependenciesState_=P.STALE_}))}function Pn(e){e.lowestObserverState_!==P.STALE_&&(e.lowestObserverState_=P.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===P.POSSIBLY_STALE_?(t.dependenciesState_=P.STALE_,t.isTracing_!==nn.NONE&&R(t,e)):t.dependenciesState_===P.UP_TO_DATE_&&(e.lowestObserverState_=P.UP_TO_DATE_)}))}function Fn(e){e.lowestObserverState_===P.UP_TO_DATE_&&(e.lowestObserverState_=P.POSSIBLY_STALE_,e.observers_.forEach(function(e){e.dependenciesState_===P.UP_TO_DATE_&&(e.dependenciesState_=P.POSSIBLY_STALE_,e.onBecomeStale_())}))}function R(e,t){if(console.log(`[mobx.trace] '`+e.name_+`' is invalidated due to a change in: '`+t.name_+`'`),e.isTracing_===nn.BREAK){var n=[];In(Sr(e),n,1),Function(`debugger;
141
+ '`+a+`' cannot be used on getter/setter properties`))}var yt=`true`,bt=xt();function xt(e){return{annotationType_:yt,options_:e,make_:St,extend_:Ct,decorate_20223_:wt}}function St(e,t,n,r){var i;if(n.get)return Ht.make_(e,t,n,r);if(n.set){var a=cr(n.set)?n.set:qt(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?Mr.bound:Mr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?or.bound:or).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 Ct(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:qt(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 wt(e,t){n(`'`+this.annotationType_+`' cannot be used as a decorator`)}var Tt=`observable`,Et=`observable.ref`,Dt=`observable.shallow`,Ot=`observable.struct`,kt={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(kt);function At(e){return e||kt}var jt=mt(Tt),Mt=mt(Et,{enhancer:Ue}),Nt=mt(Dt,{enhancer:He}),Pt=mt(Ot,{enhancer:We}),Ft=De(jt);function It(e){return e.deep===!0?Ve:e.deep===!1?Ue:O(e.defaultDecorator)}function Lt(e){return e?e.defaultDecorator??xt(e):void 0}function O(e){return e?e.options_?.enhancer??Ve:Ve}function k(e,t,n){if(je(t))return jt.decorate_20223_(e,t);if(y(t)){Oe(e,t,jt);return}return Wr(e)?e:x(e)?A.object(e,t,n):Array.isArray(e)?A.array(e,t):ne(e)?A.map(e,t):ie(e)?A.set(e,t):typeof e==`object`&&e?e:A.box(e,t)}a(k,Ft);var A=a(k,{box:function(e,t){var n=At(t);return new $t(e,It(n),n.name,!0,n.equals)},array:function(e,t){var n=At(t);return(I.useProxies===!1||n.proxy===!1?la:ki)(e,It(n),n.name)},map:function(e,t){var n=At(t);return new zi(e,It(n),n.name)},set:function(e,t){var n=At(t);return new Wi(e,It(n),n.name)},object:function(e,t,n){return pa(function(){return H(I.useProxies===!1||n?.proxy===!1?Yi({},n):hi({},n),e,t)})},ref:De(Mt),shallow:De(Nt),deep:Ft,struct:De(Pt)}),Rt=`computed`,zt=`computed.struct`,Bt=lt(Rt),Vt=lt(zt,{equals:Be.structural}),Ht=function(e,t){if(je(t))return Bt.decorate_20223_(e,t);if(y(t))return Oe(e,t,Bt);if(x(e))return De(lt(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 N(r)};Object.assign(Ht,Bt),Ht.struct=De(Vt);var Ut=0,Wt=1,Gt=o(function(){},`name`)?.configurable??!1,Kt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function qt(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 Jt(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 Jt(e,t,n,r,i){var a=j(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Yt(a)}}function j(e,t,n,r){var i=Wn()&&!!e,a=0;i&&(a=Date.now(),Kn({type:Yn,name:e,object:n,arguments:r?Array.from(r):l}));var o=I.trackingDerivation,s=!t||!o;An();var c=I.allowStateChanges;s&&(F(),c=Xt(!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),Zt(e.prevAllowStateChanges_),_n(e.prevAllowStateReads_),jn(),e.runAsAction_&&hn(e.prevDerivation_),e.notifySpy_&&B({time:Date.now()-e.startTime_}),I.suppressReactionErrors=!1}function M(e,t){var n=Xt(e);try{return t()}finally{Zt(n)}}function Xt(e){var t=I.allowStateChanges;return I.allowStateChanges=e,t}function Zt(e){I.allowStateChanges=e}var Qt=`create`,$t=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=Be.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:Qt,object:o,observableKind:`value`,debugObjectName:o.name_,newValue:``+o.value_?.toString()}),o}ve(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&&B()}},n.prepareNewValue_=function(e){if(cn(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 se(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(Ne),en=te(`ObservableValue`,$t),N=function(){function e(e){this.dependenciesState_=P.NOT_TRACKING_,this.observing_=[],this.newObserving_=null,this.observers_=new Set,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=P.UP_TO_DATE_,this.unboundDepsCount_=0,this.value_=new rn(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,this.isTracing_=nn.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_=qt(this.name_+`-setter`,e.set)),this.equals_=e.equals||(e.compareStructural||e.struct?Be.structural:Be.default),this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}var t=e.prototype;return t.onBecomeStale_=function(){Fn(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_)on(this)&&(this.warnAboutUntrackedRead_(),An(),this.value_=this.computeValue_(!1),jn());else if(Mn(this),on(this)){var e=I.trackingContext;this.keepAlive_&&!e&&(I.trackingContext=this),this.trackAndCompute()&&Pn(this),I.trackingContext=e}var t=this.value_;if(an(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_===P.NOT_TRACKING_,n=this.computeValue_(!0),r=t||an(e)||an(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=Xt(!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 rn(e)}return Zt(t),this.isComputing=!1,n},t.suspend_=function(){this.keepAlive_||(pn(this),this.value_=void 0,this.isTracing_!==nn.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 lr(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_!==nn.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 se(this.get())},t[Symbol.toPrimitive]=function(){return this.valueOf()},he(e,[{key:`isComputing`,get:function(){return ue(this.flags_,e.isComputingMask_)},set:function(t){this.flags_=de(this.flags_,e.isComputingMask_,t)}},{key:`isRunningSetter`,get:function(){return ue(this.flags_,e.isRunningSetterMask_)},set:function(t){this.flags_=de(this.flags_,e.isRunningSetterMask_,t)}},{key:`isBeingObserved`,get:function(){return ue(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=de(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return ue(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=de(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=de(this.flags_,e.diffValueMask_,t===1)}}])}();N.isComputingMask_=1,N.isRunningSetterMask_=2,N.isBeingObservedMask_=4,N.isPendingUnobservationMask_=8,N.diffValueMask_=16;var tn=te(`ComputedValue`,N),P;(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_`})(P||={});var nn;(function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`})(nn||={});var rn=function(e){this.cause=void 0,this.cause=e};function an(e){return e instanceof rn}function on(e){switch(e.dependenciesState_){case P.UP_TO_DATE_:return!1;case P.NOT_TRACKING_:case P.STALE_:return!0;case P.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(tn(o)){if(I.disableErrorBoundaries)o.get();else try{o.get()}catch{return hn(n),_n(t),!0}if(e.dependenciesState_===P.STALE_)return hn(n),_n(t),!0}}return vn(e),hn(n),_n(t),!1}}function sn(){return I.trackingDerivation!==null}function cn(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 rn(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=P.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&&On(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Dn(l,e))}r!==P.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}function pn(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)On(t[n],e);e.dependenciesState_=P.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_!==P.UP_TO_DATE_){e.dependenciesState_=P.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=P.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 L(e){return e.observers_&&e.observers_.size>0}function En(e){return e.observers_}function Dn(e,t){e.observers_.add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function On(e,t){e.observers_.delete(t),e.observers_.size===0&&kn(e)}function kn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,I.pendingUnobservations.push(e))}function An(){I.inBatch++}function jn(){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 N&&n.suspend_())}I.pendingUnobservations=[]}}function Mn(e){ln(e);var t=I.trackingDerivation;return t===null?(e.observers_.size===0&&I.inBatch>0&&kn(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 Nn(e){e.lowestObserverState_!==P.STALE_&&(e.lowestObserverState_=P.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===P.UP_TO_DATE_&&(t.isTracing_!==nn.NONE&&R(t,e),t.onBecomeStale_()),t.dependenciesState_=P.STALE_}))}function Pn(e){e.lowestObserverState_!==P.STALE_&&(e.lowestObserverState_=P.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===P.POSSIBLY_STALE_?(t.dependenciesState_=P.STALE_,t.isTracing_!==nn.NONE&&R(t,e)):t.dependenciesState_===P.UP_TO_DATE_&&(e.lowestObserverState_=P.UP_TO_DATE_)}))}function Fn(e){e.lowestObserverState_===P.UP_TO_DATE_&&(e.lowestObserverState_=P.POSSIBLY_STALE_,e.observers_.forEach(function(e){e.dependenciesState_===P.UP_TO_DATE_&&(e.dependenciesState_=P.POSSIBLY_STALE_,e.onBecomeStale_())}))}function R(e,t){if(console.log(`[mobx.trace] '`+e.name_+`' is invalidated due to a change in: '`+t.name_+`'`),e.isTracing_===nn.BREAK){var n=[];In(Sr(e),n,1),Function(`debugger;
142
142
  /*
143
143
  Tracing '`+e.name_+`'
144
144
 
@@ -153,50 +153,50 @@ The dependencies for this derivation are:
153
153
  `+n.join(`
154
154
  `)+`
155
155
  */
156
- `)()}}function In(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 In(e,t,n+1)})}var Ln=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_=P.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=nn.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){An(),this.isScheduled=!1;var e=I.trackingContext;if(I.trackingContext=this,on(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,jn()}},t.track=function(e){if(!this.isDisposed){An();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),an(i)&&this.reportExceptionInDerivation_(i.cause),t&&B({time:Date.now()-n}),jn()}},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||(An(),pn(this),jn()))},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[D]=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)},he(e,[{key:`isDisposed`,get:function(){return ue(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=de(this.flags_,e.isDisposedMask_,t)}},{key:`isScheduled`,get:function(){return ue(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=de(this.flags_,e.isScheduledMask_,t)}},{key:`isTrackPending`,get:function(){return ue(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=de(this.flags_,e.isTrackPendingMask_,t)}},{key:`isRunning`,get:function(){return ue(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=de(this.flags_,e.isRunningMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=de(this.flags_,e.diffValueMask_,t===1)}}])}();Ln.isDisposedMask_=1,Ln.isScheduledMask_=2,Ln.isTrackPendingMask_=4,Ln.isRunningMask_=8,Ln.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=ne(`Reaction`,Ln);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(E({},e,{spyReportStart:!0}))}var qn={type:`report-end`,spyReportEnd:!0};function B(e){Gn(e?E({},e,{type:`report-end`,spyReportEnd:!0}):qn)}function Jn(e){return I.spyListeners.push(e),g(function(){I.spyListeners=I.spyListeners.filter(function(t){return t!==e})})}var Yn=`action`,Xn=`action.bound`,Zn=`autoAction`,Qn=`autoAction.bound`,$n=`<unnamed action>`,er=Ze(Yn),tr=Ze(Xn,{bound:!0}),nr=Ze(Zn,{autoAction:!0}),rr=Ze(Qn,{autoAction:!0,bound:!0});function ir(e){return function(t,r){if(v(t))return qt(t.name||$n,t,e);if(v(r))return qt(t,r,e);if(je(r))return(e?nr:er).decorate_20223_(t,r);if(y(r))return Oe(t,r,e?nr:er);if(y(t))return De(Ze(e?Zn:Yn,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}var ar=ir(!1);Object.assign(ar,er);var or=ir(!0);Object.assign(or,nr),ar.bound=De(tr),or.bound=De(rr);function sr(e){return Jt(e.name||$n,!1,e,this,void 0)}function cr(e){return v(e)&&e.isMobxAction===!0}function lr(e,t){var r;t===void 0&&(t=u),v(e)||n(`Autorun expects a function as first argument`),cr(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 Ln(i,function(){this.track(l)},t.onError,t.requiresObservable);else{var s=dr(t),c=!1;o=new Ln(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 ur=function(e){return e()};function dr(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:ur}function fr(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=ar(a,r.onError?pr(r.onError,t):t),s=!r.scheduler&&!r.delay,c=dr(r),l=!0,d=!1,f,p=r.compareStructural?Be.structural:r.equals||Be.default,m=new Ln(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=M(!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 pr(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}var mr=`onBO`,V=`onBUO`;function hr(e,t,n){return _r(mr,e,t,n)}function gr(e,t,n){return _r(V,e,t,n)}function _r(e,t,n,r){var i=typeof r==`function`?ua(t,n):ua(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 vr=`never`,yr=`always`,br=`observed`;function xr(e){e.isolateGlobalState===!0&&Cn();var t=e.useProxies,n=e.enforceActions;if(t!==void 0&&(I.useProxies=t===yr?!0:t===vr?!1:typeof Proxy<`u`),t===`ifavailable`&&(I.verifyProxies=!0),n!==void 0){var r=n===yr?yr:n===br;I.enforceActions=r,I.allowStateChanges=!(r===!0||r===yr)}[`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 H(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),Bi(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),x(t)||n(`'extendObservable' only accepts plain objects as second argument`),(Wr(t)||Wr(r))&&n(`Extending an object with another observable (object) is not supported`);var a=le(t);return pa(function(){var t=Yi(e,i)[D];T(a).forEach(function(e){t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function Sr(e,t){return Cr(ua(e,t))}function Cr(e){var t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=Er(e.observing_).map(Cr)),t}function wr(e,t){return Tr(ua(e,t))}function Tr(e){var t={name:e.name_};return L(e)&&(t.observers=Array.from(En(e)).map(Tr)),t}function Er(e){return Array.from(new Set(e))}var Dr=0,Or=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}ve(t,e);var n=t.prototype;return n.toString=function(){return`Error: `+this.message},t}(Te(Error));function kr(e){return e instanceof Or}var Ar=rt(`flow`),jr=rt(`flow.bound`,{bound:!0}),Mr=Object.assign(function(e,t){if(je(t))return Ar.decorate_20223_(e,t);if(y(t))return Oe(e,t,Ar);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=++Dr,a=ar(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=ar(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=ar(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=ar(i+` - runid: `+n+` - cancel`,function(){try{s&&Nr(s);var e=a.return(void 0),t=Promise.resolve(e.value);t.then(_,_),Nr(t),o(new Or)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},Ar);Mr.bound=De(jr);function Nr(e){v(e.cancel)&&e.cancel()}function Pr(e){return e}function Fr(e){return e?.isMobXFlow===!0}function Ir(e,t,r){var i;if(Bi(e)||Fi(e)||en(e))i=da(e);else if(Qi(e)){if(!y(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=da(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 Lr(e,t,n){return v(n)?zr(e,t,n):Rr(e,t)}function Rr(e,t){return da(e).intercept_(t)}function zr(e,t,n){return da(e,t).intercept_(n)}function Br(e,t){return t===void 0?tn(e):Qi(e)===!1||!e[D].values_.has(t)?!1:tn(ua(e,t))}function Vr(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):Br(e)}function Hr(e,t){return y(t)?Br(e,t):n(`isComputed expected a property name as second argument`)}function Ur(e,t){return e?t===void 0?Qi(e)||!!e[D]||Pe(e)||z(e)||tn(e):Bi(e)||Fi(e)?n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`):Qi(e)?e[D].values_.has(t):!1:!1}function Wr(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),Ur(e)}function Gr(e,t){return y(t)?Ur(e,t):n(`expected a property name as second argument`)}function Kr(e){if(Qi(e))return e[D].keys_();if(Bi(e)||Gi(e))return Array.from(e.keys());if(Fi(e))return e.map(function(e,t){return t});n(5)}function qr(e){if(Qi(e))return Kr(e).map(function(t){return e[t]});if(Bi(e))return Kr(e).map(function(t){return e.get(t)});if(Gi(e))return Array.from(e.values());if(Fi(e))return e.slice();n(6)}function Jr(e){if(Qi(e))return Kr(e).map(function(t){return[t,e[t]]});if(Bi(e))return Kr(e).map(function(t){return[t,e.get(t)]});if(Gi(e))return Array.from(e.entries());if(Fi(e))return e.map(function(e,t){return[t,e]});n(7)}function Yr(e,t,r){if(arguments.length===2&&!Gi(e)){An();var i=t;try{for(var a in i)Yr(e,a,i[a])}finally{jn()}return}Qi(e)?e[D].set_(t,r):Bi(e)?e.set(t,r):Gi(e)?e.add(t):Fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(`Invalid index: '`+t+`'`),An(),t>=e.length&&(e.length=t+1),e[t]=r,jn()):n(8)}function Xr(e,t){Qi(e)?e[D].delete_(t):Bi(e)||Gi(e)?e.delete(t):Fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function Zr(e,t){if(Qi(e))return e[D].has_(t);if(Bi(e)||Gi(e))return e.has(t);if(Fi(e))return t>=0&&t<e.length;n(10)}function Qr(e,t){if(Zr(e,t)){if(Qi(e))return e[D].get_(t);if(Bi(e))return e.get(t);if(Fi(e))return e[t];n(11)}}function $r(e,t,r){if(Qi(e))return e[D].defineProperty_(t,r);n(39)}function ei(e){if(Qi(e))return e[D].ownKeys_();n(38)}function ti(e,t,n,r){return v(n)?ri(e,t,n,r):ni(e,t,n)}function ni(e,t,n){return da(e).observe_(t,n)}function ri(e,t,n,r){return da(e,t).observe_(n,r)}function ii(e,t,n){return e.set(t,n),n}function ai(e,t){if(typeof e!=`object`||!e||e instanceof Date||!Wr(e))return e;if(en(e)||tn(e))return ai(e.get(),t);if(t.has(e))return t.get(e);if(Fi(e)){var n=ii(t,e,Array(e.length));return e.forEach(function(e,r){n[r]=ai(e,t)}),n}if(Gi(e)){var r=ii(t,e,new Set);return e.forEach(function(e){r.add(ai(e,t))}),r}if(Bi(e)){var i=ii(t,e,new Map);return e.forEach(function(e,n){i.set(n,ai(e,t))}),i}else{var a=ii(t,e,{});return ei(e).forEach(function(n){c.propertyIsEnumerable.call(e,n)&&(a[n]=ai(e[n],t))}),a}}function oi(e,t){return t&&n(`toJS no longer supports options`),ai(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_===nn.NONE&&console.log(`[mobx.trace] '`+r.name_+`' tracing enabled`),r.isTracing_=e?nn.BREAK:nn.LOG}function ci(e){switch(e.length){case 0:return I.trackingDerivation;case 1:return ua(e[0]);case 2:return ua(e[0],e[1])}}function li(e,t){t===void 0&&(t=void 0),An();try{return e.apply(t)}finally{jn()}}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[D].isDisposed)if(o(),n.onError)n.onError(i);else throw i},n.timeout)}n.name=n.name||`When@`+h();var a=qt(n.name+`-effect`,t),o=lr(function(t){M(!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,E({},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[D]}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=Yi(e,t),(n=e[D]).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 pa(function(){var i=Yi(e,r)[D];t&&e[Ee]&&n(`makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.`),t??=Ae(e),T(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`),Qi(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),x(e)?H(e,e,t,r):(pa(function(){var n=Yi(e,r)[D];if(!e[Ci]){var i=Object.getPrototypeOf(e),a=new Set([].concat(T(e),T(i)));a.delete(`constructor`),a.delete(D),ee(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,U={get:function(e,t){var n=e[D];return t===D?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):ce(Ai,t)?Ai[t]:e[t]},set:function(e,t,n){var r=e[D];return t===`length`&&r.setArrayLength_(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions:function(){n(15)}},Oi=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 Ne(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&&ca(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;cn(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&&B()},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&&B()},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){cn(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 ki(e,t,n,r){return n===void 0&&(n=`ObservableArray@`+h()),r===void 0&&(r=!1),p(),pa(function(){var i=new Oi(n,t,r,!1);te(i.values_,D,i);var a=new Proxy(i.values_,U);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var Ai={clear:function(){return this.splice(0)},replace:function(e){var t=this[D];return t.spliceWithArray_(0,t.values_.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[D];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[D].spliceWithArray_(e,t,n)},push:function(){var e=this[D],t=[...arguments];return e.spliceWithArray_(e.values_.length,0,t),e.values_.length},pop:function(){return this.splice(Math.max(this[D].values_.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){var e=this[D],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[D],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};W(`at`,ji),W(`concat`,ji),W(`flat`,ji),W(`includes`,ji),W(`indexOf`,ji),W(`join`,ji),W(`lastIndexOf`,ji),W(`slice`,ji),W(`toString`,ji),W(`toLocaleString`,ji),W(`toSorted`,ji),W(`toSpliced`,ji),W(`with`,ji),W(`every`,Mi),W(`filter`,Mi),W(`find`,Mi),W(`findIndex`,Mi),W(`findLast`,Mi),W(`findLastIndex`,Mi),W(`flatMap`,Mi),W(`forEach`,Mi),W(`map`,Mi),W(`some`,Mi),W(`toReversed`,Mi),W(`reduce`,Ni),W(`reduceRight`,Ni);function W(e,t){typeof Array.prototype[e]==`function`&&(Ai[e]=t(e))}function ji(e){return function(){var t=this[D];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function Mi(e){return function(t,n){var r=this,i=this[D];return i.atom_.reportObserved(),i.dehanceValues_(i.values_)[e](function(e,i){return t.call(n,e,i,r)})}}function Ni(e){return function(){var t=this,n=this[D];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 Pi=ne(`ObservableArrayAdministration`,Oi);function Fi(e){return b(e)&&Pi(e[D])}var Ii={},Li=`add`,Ri=`delete`,zi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Ve),r===void 0&&(r=`ObservableMap@`+h()),this.enhancer_=void 0,this.name_=void 0,this[D]=Ii,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),pa(function(){i.keysAtom_=Fe(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 $t(this.has_(e),Ue,this.name_+`.`+oe(e)+`?`,!1);this.hasMap_.set(e,r),gr(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:Li,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(cn(this.keysAtom_),gi(this)&&!vi(this,{type:Ri,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:Ri,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&&B(),!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&&B()}},t.addValue_=function(e,t){var n=this;cn(this.keysAtom_),li(function(){var r,i=new $t(t,n.enhancer_,n.name_+`.`+oe(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:Li,object:this,name:e,newValue:t}:null;r&&Kn(a),i&&xi(this,a),r&&B()},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 Vi({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 Vi({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=ge(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 Bi(e)&&(e=new Map(e)),li(function(){x(e)?w(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)}):re(e)?(ie(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=ge(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=Hi(e),r=new Map,i=!1,a=ge(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=ge(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)},he(e,[{key:`size`,get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),Bi=ne(`ObservableMap`,zi);function Vi(e){return e[Symbol.toStringTag]=`MapIterator`,ya(e)}function Hi(e){if(re(e)||Bi(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 Ui={},Wi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Ve),r===void 0&&(r=`ObservableSet@`+h()),this.name_=void 0,this[D]=Ui,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)},pa(function(){i.atom_=Fe(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=ge(e.data_.values()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.forEach=function(e,t){for(var n=ge(this),r;!(r=n()).done;){var i=r.value;e.call(t,i,i,this)}},t.add=function(e){var t=this;if(cn(this.atom_),gi(this)){var n=vi(this,{type:Li,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:Li,object:this,newValue:e}:null;r&&Kn(a),i&&xi(this,a),r&&B()}return this},t.delete=function(e){var t=this;if(gi(this)&&!vi(this,{type:Ri,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:Ri,object:this,oldValue:e}:null;return n&&Kn(i),li(function(){t.atom_.reportChanged(),t.data_.delete(e)}),r&&xi(this,i),n&&B(),!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 Ki({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 Ki({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 C(e)&&!Gi(e)?e.intersection(this):new Set(this).intersection(e)},t.union=function(e){return C(e)&&!Gi(e)?e.union(this):new Set(this).union(e)},t.difference=function(e){return new Set(this).difference(e)},t.symmetricDifference=function(e){return C(e)&&!Gi(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 C(e)&&!Gi(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},t.replace=function(e){var t=this;return Gi(e)&&(e=new Set(e)),li(function(){Array.isArray(e)||C(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()},he(e,[{key:`size`,get:function(){return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),Gi=ne(`ObservableSet`,Wi);function Ki(e){return e[Symbol.toStringTag]=`SetIterator`,ya(e)}var qi=Object.create(null),G=`remove`,Ji=function(){function e(e,t,r,i){t===void 0&&(t=new Map),i===void 0&&(i=bt),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 Ne(this.name_+`.keys`),this.isPlainObject_=x(this.target_),xa(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 N)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&&B()}return!0},t.get_=function(e){return I.trackingDerivation&&!ce(this.target_,e)&&this.has_(e),this.target_[e]},t.set_=function(e,t,n){return n===void 0&&(n=!1),ce(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 $t(e in this.target_,Ue,this.name_+`.`+oe(e)+`?`,!1),this.pendingKeys_.set(e,t)),t.get()},t.make_=function(e,t){if(t===!0&&(t=this.defaultAnnotation_),t!==!1){if(ea(this,t,e),!(e in this.target_)){var r;if((r=this.target_[Ee])!=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)}$i(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);ea(this,n,e);var i=n.extend_(this,e,t,r);return i&&$i(this,n,e),i},t.defineProperty_=function(e,t,n){n===void 0&&(n=!1),cn(this.keysAtom_);try{An();var r=this.delete_(e);if(!r)return r;if(gi(this)){var i=vi(this,{object:this.proxy_||this.target_,name:e,type:Li,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=E({},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{jn()}return!0},t.defineObservableProperty_=function(e,t,n,r){r===void 0&&(r=!1),cn(this.keysAtom_);try{An();var i=this.delete_(e);if(!i)return i;if(gi(this)){var a=vi(this,{object:this.proxy_||this.target_,name:e,type:Li,newValue:t});if(!a)return null;t=a.newValue}var o=Zi(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 $t(t,n,this.name_+`.`+e.toString(),!1);this.values_.set(e,l),this.notifyPropertyAddition_(e,l.value_)}finally{jn()}return!0},t.defineComputedProperty_=function(e,t,n){n===void 0&&(n=!1),cn(this.keysAtom_);try{An();var r=this.delete_(e);if(!r)return r;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:Li,newValue:void 0}))return null;t.name||=this.name_+`.`+e.toString(),t.context=this.proxy_||this.target_;var i=Zi(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 N(t)),this.notifyPropertyAddition_(e,void 0)}finally{jn()}return!0},t.delete_=function(e,t){if(t===void 0&&(t=!1),cn(this.keysAtom_),!ce(this.target_,e))return!0;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:G}))return null;try{var n;An();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 $t&&(s=a.value_),Nn(a)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||i){var c={type:G,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};i&&Kn(c),r&&xi(this,c),i&&B()}}finally{jn()}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:Li,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&Kn(a),r&&xi(this,a),i&&B()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()},t.ownKeys_=function(){return this.keysAtom_.reportObserved(),T(this.target_)},t.keys_=function(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)},e}();function Yi(e,t){if(t&&Qi(e)&&n(`Options can't be provided for already observable objects.`),ce(e,D))return da(e)instanceof Ji||n(`Cannot convert '`+fa(e)+`' into observable object:
156
+ `)()}}function In(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 In(e,t,n+1)})}var Ln=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_=P.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=nn.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){An(),this.isScheduled=!1;var e=I.trackingContext;if(I.trackingContext=this,on(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,jn()}},t.track=function(e){if(!this.isDisposed){An();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),an(i)&&this.reportExceptionInDerivation_(i.cause),t&&B({time:Date.now()-n}),jn()}},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||(An(),pn(this),jn()))},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[D]=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)},he(e,[{key:`isDisposed`,get:function(){return ue(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=de(this.flags_,e.isDisposedMask_,t)}},{key:`isScheduled`,get:function(){return ue(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=de(this.flags_,e.isScheduledMask_,t)}},{key:`isTrackPending`,get:function(){return ue(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=de(this.flags_,e.isTrackPendingMask_,t)}},{key:`isRunning`,get:function(){return ue(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=de(this.flags_,e.isRunningMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=de(this.flags_,e.diffValueMask_,t===1)}}])}();Ln.isDisposedMask_=1,Ln.isScheduledMask_=2,Ln.isTrackPendingMask_=4,Ln.isRunningMask_=8,Ln.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`,Ln);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(E({},e,{spyReportStart:!0}))}var qn={type:`report-end`,spyReportEnd:!0};function B(e){Gn(e?E({},e,{type:`report-end`,spyReportEnd:!0}):qn)}function Jn(e){return I.spyListeners.push(e),g(function(){I.spyListeners=I.spyListeners.filter(function(t){return t!==e})})}var Yn=`action`,Xn=`action.bound`,Zn=`autoAction`,Qn=`autoAction.bound`,$n=`<unnamed action>`,er=Ze(Yn),tr=Ze(Xn,{bound:!0}),nr=Ze(Zn,{autoAction:!0}),rr=Ze(Qn,{autoAction:!0,bound:!0});function ir(e){return function(t,r){if(v(t))return qt(t.name||$n,t,e);if(v(r))return qt(t,r,e);if(je(r))return(e?nr:er).decorate_20223_(t,r);if(y(r))return Oe(t,r,e?nr:er);if(y(t))return De(Ze(e?Zn:Yn,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}var ar=ir(!1);Object.assign(ar,er);var or=ir(!0);Object.assign(or,nr),ar.bound=De(tr),or.bound=De(rr);function sr(e){return Jt(e.name||$n,!1,e,this,void 0)}function cr(e){return v(e)&&e.isMobxAction===!0}function lr(e,t){var r;t===void 0&&(t=u),v(e)||n(`Autorun expects a function as first argument`),cr(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 Ln(i,function(){this.track(l)},t.onError,t.requiresObservable);else{var s=dr(t),c=!1;o=new Ln(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 ur=function(e){return e()};function dr(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:ur}function fr(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=ar(a,r.onError?pr(r.onError,t):t),s=!r.scheduler&&!r.delay,c=dr(r),l=!0,d=!1,f,p=r.compareStructural?Be.structural:r.equals||Be.default,m=new Ln(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=M(!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 pr(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}var mr=`onBO`,V=`onBUO`;function hr(e,t,n){return _r(mr,e,t,n)}function gr(e,t,n){return _r(V,e,t,n)}function _r(e,t,n,r){var i=typeof r==`function`?ua(t,n):ua(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 vr=`never`,yr=`always`,br=`observed`;function xr(e){e.isolateGlobalState===!0&&Cn();var t=e.useProxies,n=e.enforceActions;if(t!==void 0&&(I.useProxies=t===yr?!0:t===vr?!1:typeof Proxy<`u`),t===`ifavailable`&&(I.verifyProxies=!0),n!==void 0){var r=n===yr?yr:n===br;I.enforceActions=r,I.allowStateChanges=!(r===!0||r===yr)}[`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 H(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),Bi(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),x(t)||n(`'extendObservable' only accepts plain objects as second argument`),(Wr(t)||Wr(r))&&n(`Extending an object with another observable (object) is not supported`);var a=le(t);return pa(function(){var t=Yi(e,i)[D];T(a).forEach(function(e){t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function Sr(e,t){return Cr(ua(e,t))}function Cr(e){var t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=Er(e.observing_).map(Cr)),t}function wr(e,t){return Tr(ua(e,t))}function Tr(e){var t={name:e.name_};return L(e)&&(t.observers=Array.from(En(e)).map(Tr)),t}function Er(e){return Array.from(new Set(e))}var Dr=0,Or=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}ve(t,e);var n=t.prototype;return n.toString=function(){return`Error: `+this.message},t}(Te(Error));function kr(e){return e instanceof Or}var Ar=rt(`flow`),jr=rt(`flow.bound`,{bound:!0}),Mr=Object.assign(function(e,t){if(je(t))return Ar.decorate_20223_(e,t);if(y(t))return Oe(e,t,Ar);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=++Dr,a=ar(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=ar(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=ar(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=ar(i+` - runid: `+n+` - cancel`,function(){try{s&&Nr(s);var e=a.return(void 0),t=Promise.resolve(e.value);t.then(_,_),Nr(t),o(new Or)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},Ar);Mr.bound=De(jr);function Nr(e){v(e.cancel)&&e.cancel()}function Pr(e){return e}function Fr(e){return e?.isMobXFlow===!0}function Ir(e,t,r){var i;if(Bi(e)||Fi(e)||en(e))i=da(e);else if(Qi(e)){if(!y(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=da(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 Lr(e,t,n){return v(n)?zr(e,t,n):Rr(e,t)}function Rr(e,t){return da(e).intercept_(t)}function zr(e,t,n){return da(e,t).intercept_(n)}function Br(e,t){return t===void 0?tn(e):Qi(e)===!1||!e[D].values_.has(t)?!1:tn(ua(e,t))}function Vr(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):Br(e)}function Hr(e,t){return y(t)?Br(e,t):n(`isComputed expected a property name as second argument`)}function Ur(e,t){return e?t===void 0?Qi(e)||!!e[D]||Pe(e)||z(e)||tn(e):Bi(e)||Fi(e)?n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`):Qi(e)?e[D].values_.has(t):!1:!1}function Wr(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),Ur(e)}function Gr(e,t){return y(t)?Ur(e,t):n(`expected a property name as second argument`)}function Kr(e){if(Qi(e))return e[D].keys_();if(Bi(e)||Gi(e))return Array.from(e.keys());if(Fi(e))return e.map(function(e,t){return t});n(5)}function qr(e){if(Qi(e))return Kr(e).map(function(t){return e[t]});if(Bi(e))return Kr(e).map(function(t){return e.get(t)});if(Gi(e))return Array.from(e.values());if(Fi(e))return e.slice();n(6)}function Jr(e){if(Qi(e))return Kr(e).map(function(t){return[t,e[t]]});if(Bi(e))return Kr(e).map(function(t){return[t,e.get(t)]});if(Gi(e))return Array.from(e.entries());if(Fi(e))return e.map(function(e,t){return[t,e]});n(7)}function Yr(e,t,r){if(arguments.length===2&&!Gi(e)){An();var i=t;try{for(var a in i)Yr(e,a,i[a])}finally{jn()}return}Qi(e)?e[D].set_(t,r):Bi(e)?e.set(t,r):Gi(e)?e.add(t):Fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(`Invalid index: '`+t+`'`),An(),t>=e.length&&(e.length=t+1),e[t]=r,jn()):n(8)}function Xr(e,t){Qi(e)?e[D].delete_(t):Bi(e)||Gi(e)?e.delete(t):Fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function Zr(e,t){if(Qi(e))return e[D].has_(t);if(Bi(e)||Gi(e))return e.has(t);if(Fi(e))return t>=0&&t<e.length;n(10)}function Qr(e,t){if(Zr(e,t)){if(Qi(e))return e[D].get_(t);if(Bi(e))return e.get(t);if(Fi(e))return e[t];n(11)}}function $r(e,t,r){if(Qi(e))return e[D].defineProperty_(t,r);n(39)}function ei(e){if(Qi(e))return e[D].ownKeys_();n(38)}function ti(e,t,n,r){return v(n)?ri(e,t,n,r):ni(e,t,n)}function ni(e,t,n){return da(e).observe_(t,n)}function ri(e,t,n,r){return da(e,t).observe_(n,r)}function ii(e,t,n){return e.set(t,n),n}function ai(e,t){if(typeof e!=`object`||!e||e instanceof Date||!Wr(e))return e;if(en(e)||tn(e))return ai(e.get(),t);if(t.has(e))return t.get(e);if(Fi(e)){var n=ii(t,e,Array(e.length));return e.forEach(function(e,r){n[r]=ai(e,t)}),n}if(Gi(e)){var r=ii(t,e,new Set);return e.forEach(function(e){r.add(ai(e,t))}),r}if(Bi(e)){var i=ii(t,e,new Map);return e.forEach(function(e,n){i.set(n,ai(e,t))}),i}else{var a=ii(t,e,{});return ei(e).forEach(function(n){c.propertyIsEnumerable.call(e,n)&&(a[n]=ai(e[n],t))}),a}}function oi(e,t){return t&&n(`toJS no longer supports options`),ai(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_===nn.NONE&&console.log(`[mobx.trace] '`+r.name_+`' tracing enabled`),r.isTracing_=e?nn.BREAK:nn.LOG}function ci(e){switch(e.length){case 0:return I.trackingDerivation;case 1:return ua(e[0]);case 2:return ua(e[0],e[1])}}function li(e,t){t===void 0&&(t=void 0),An();try{return e.apply(t)}finally{jn()}}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[D].isDisposed)if(o(),n.onError)n.onError(i);else throw i},n.timeout)}n.name=n.name||`When@`+h();var a=qt(n.name+`-effect`,t),o=lr(function(t){M(!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,E({},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[D]}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=Yi(e,t),(n=e[D]).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 pa(function(){var i=Yi(e,r)[D];t&&e[Ee]&&n(`makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.`),t??=Ae(e),T(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`),Qi(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),x(e)?H(e,e,t,r):(pa(function(){var n=Yi(e,r)[D];if(!e[Ci]){var i=Object.getPrototypeOf(e),a=new Set([].concat(T(e),T(i)));a.delete(`constructor`),a.delete(D),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,U={get:function(e,t){var n=e[D];return t===D?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):ce(Ai,t)?Ai[t]:e[t]},set:function(e,t,n){var r=e[D];return t===`length`&&r.setArrayLength_(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions:function(){n(15)}},Oi=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 Ne(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&&ca(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;cn(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&&B()},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&&B()},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){cn(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 ki(e,t,n,r){return n===void 0&&(n=`ObservableArray@`+h()),r===void 0&&(r=!1),p(),pa(function(){var i=new Oi(n,t,r,!1);ee(i.values_,D,i);var a=new Proxy(i.values_,U);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var Ai={clear:function(){return this.splice(0)},replace:function(e){var t=this[D];return t.spliceWithArray_(0,t.values_.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[D];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[D].spliceWithArray_(e,t,n)},push:function(){var e=this[D],t=[...arguments];return e.spliceWithArray_(e.values_.length,0,t),e.values_.length},pop:function(){return this.splice(Math.max(this[D].values_.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){var e=this[D],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[D],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};W(`at`,ji),W(`concat`,ji),W(`flat`,ji),W(`includes`,ji),W(`indexOf`,ji),W(`join`,ji),W(`lastIndexOf`,ji),W(`slice`,ji),W(`toString`,ji),W(`toLocaleString`,ji),W(`toSorted`,ji),W(`toSpliced`,ji),W(`with`,ji),W(`every`,Mi),W(`filter`,Mi),W(`find`,Mi),W(`findIndex`,Mi),W(`findLast`,Mi),W(`findLastIndex`,Mi),W(`flatMap`,Mi),W(`forEach`,Mi),W(`map`,Mi),W(`some`,Mi),W(`toReversed`,Mi),W(`reduce`,Ni),W(`reduceRight`,Ni);function W(e,t){typeof Array.prototype[e]==`function`&&(Ai[e]=t(e))}function ji(e){return function(){var t=this[D];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function Mi(e){return function(t,n){var r=this,i=this[D];return i.atom_.reportObserved(),i.dehanceValues_(i.values_)[e](function(e,i){return t.call(n,e,i,r)})}}function Ni(e){return function(){var t=this,n=this[D];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 Pi=te(`ObservableArrayAdministration`,Oi);function Fi(e){return b(e)&&Pi(e[D])}var Ii={},Li=`add`,Ri=`delete`,zi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Ve),r===void 0&&(r=`ObservableMap@`+h()),this.enhancer_=void 0,this.name_=void 0,this[D]=Ii,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),pa(function(){i.keysAtom_=Fe(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 $t(this.has_(e),Ue,this.name_+`.`+oe(e)+`?`,!1);this.hasMap_.set(e,r),gr(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:Li,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(cn(this.keysAtom_),gi(this)&&!vi(this,{type:Ri,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:Ri,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&&B(),!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&&B()}},t.addValue_=function(e,t){var n=this;cn(this.keysAtom_),li(function(){var r,i=new $t(t,n.enhancer_,n.name_+`.`+oe(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:Li,object:this,name:e,newValue:t}:null;r&&Kn(a),i&&xi(this,a),r&&B()},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 Vi({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 Vi({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=ge(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 Bi(e)&&(e=new Map(e)),li(function(){x(e)?w(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)}):ne(e)?(re(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=ge(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=Hi(e),r=new Map,i=!1,a=ge(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=ge(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)},he(e,[{key:`size`,get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),Bi=te(`ObservableMap`,zi);function Vi(e){return e[Symbol.toStringTag]=`MapIterator`,ya(e)}function Hi(e){if(ne(e)||Bi(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 Ui={},Wi=function(){function e(e,t,r){var i=this;t===void 0&&(t=Ve),r===void 0&&(r=`ObservableSet@`+h()),this.name_=void 0,this[D]=Ui,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)},pa(function(){i.atom_=Fe(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=ge(e.data_.values()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.forEach=function(e,t){for(var n=ge(this),r;!(r=n()).done;){var i=r.value;e.call(t,i,i,this)}},t.add=function(e){var t=this;if(cn(this.atom_),gi(this)){var n=vi(this,{type:Li,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:Li,object:this,newValue:e}:null;r&&Kn(a),i&&xi(this,a),r&&B()}return this},t.delete=function(e){var t=this;if(gi(this)&&!vi(this,{type:Ri,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:Ri,object:this,oldValue:e}:null;return n&&Kn(i),li(function(){t.atom_.reportChanged(),t.data_.delete(e)}),r&&xi(this,i),n&&B(),!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 Ki({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 Ki({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 ie(e)&&!Gi(e)?e.intersection(this):new Set(this).intersection(e)},t.union=function(e){return ie(e)&&!Gi(e)?e.union(this):new Set(this).union(e)},t.difference=function(e){return new Set(this).difference(e)},t.symmetricDifference=function(e){return ie(e)&&!Gi(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 ie(e)&&!Gi(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},t.replace=function(e){var t=this;return Gi(e)&&(e=new Set(e)),li(function(){Array.isArray(e)||ie(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()},he(e,[{key:`size`,get:function(){return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),Gi=te(`ObservableSet`,Wi);function Ki(e){return e[Symbol.toStringTag]=`SetIterator`,ya(e)}var qi=Object.create(null),G=`remove`,Ji=function(){function e(e,t,r,i){t===void 0&&(t=new Map),i===void 0&&(i=bt),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 Ne(this.name_+`.keys`),this.isPlainObject_=x(this.target_),xa(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 N)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&&B()}return!0},t.get_=function(e){return I.trackingDerivation&&!ce(this.target_,e)&&this.has_(e),this.target_[e]},t.set_=function(e,t,n){return n===void 0&&(n=!1),ce(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 $t(e in this.target_,Ue,this.name_+`.`+oe(e)+`?`,!1),this.pendingKeys_.set(e,t)),t.get()},t.make_=function(e,t){if(t===!0&&(t=this.defaultAnnotation_),t!==!1){if(ea(this,t,e),!(e in this.target_)){var r;if((r=this.target_[Ee])!=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)}$i(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);ea(this,n,e);var i=n.extend_(this,e,t,r);return i&&$i(this,n,e),i},t.defineProperty_=function(e,t,n){n===void 0&&(n=!1),cn(this.keysAtom_);try{An();var r=this.delete_(e);if(!r)return r;if(gi(this)){var i=vi(this,{object:this.proxy_||this.target_,name:e,type:Li,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=E({},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{jn()}return!0},t.defineObservableProperty_=function(e,t,n,r){r===void 0&&(r=!1),cn(this.keysAtom_);try{An();var i=this.delete_(e);if(!i)return i;if(gi(this)){var a=vi(this,{object:this.proxy_||this.target_,name:e,type:Li,newValue:t});if(!a)return null;t=a.newValue}var o=Zi(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 $t(t,n,this.name_+`.`+e.toString(),!1);this.values_.set(e,l),this.notifyPropertyAddition_(e,l.value_)}finally{jn()}return!0},t.defineComputedProperty_=function(e,t,n){n===void 0&&(n=!1),cn(this.keysAtom_);try{An();var r=this.delete_(e);if(!r)return r;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:Li,newValue:void 0}))return null;t.name||=this.name_+`.`+e.toString(),t.context=this.proxy_||this.target_;var i=Zi(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 N(t)),this.notifyPropertyAddition_(e,void 0)}finally{jn()}return!0},t.delete_=function(e,t){if(t===void 0&&(t=!1),cn(this.keysAtom_),!ce(this.target_,e))return!0;if(gi(this)&&!vi(this,{object:this.proxy_||this.target_,name:e,type:G}))return null;try{var n;An();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 $t&&(s=a.value_),Nn(a)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||i){var c={type:G,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};i&&Kn(c),r&&xi(this,c),i&&B()}}finally{jn()}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:Li,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&Kn(a),r&&xi(this,a),i&&B()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()},t.ownKeys_=function(){return this.keysAtom_.reportObserved(),T(this.target_)},t.keys_=function(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)},e}();function Yi(e,t){if(t&&Qi(e)&&n(`Options can't be provided for already observable objects.`),ce(e,D))return da(e)instanceof Ji||n(`Cannot convert '`+fa(e)+`' into observable object:
157
157
  The target is already observable of different type.
158
- 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 ee(e,D,new Ji(e,new Map,String(r),Lt(t))),e}var Xi=ne(`ObservableObjectAdministration`,Ji);function Zi(e){return qi[e]||(qi[e]={get:function(){return this[D].getObservablePropValue_(e)},set:function(t){return this[D].setObservablePropValue_(e,t)}})}function Qi(e){return b(e)?Xi(e[D]):!1}function $i(e,t,n){var r;e.appliedAnnotations_[n]=t,(r=e.target_[Ee])==null||delete r[n]}function ea(e,t,r){if(xa(t)||n(`Cannot annotate '`+e.name_+`.`+r.toString()+`': Invalid annotation.`),!qe(t)&&ce(e.appliedAnnotations_,r)){var i=e.name_+`.`+r.toString(),a=e.appliedAnnotations_[r].annotationType_,o=t.annotationType_;n(`Cannot apply '`+o+`' to '`+i+`':`+(`
158
+ 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,D,new Ji(e,new Map,String(r),Lt(t))),e}var Xi=te(`ObservableObjectAdministration`,Ji);function Zi(e){return qi[e]||(qi[e]={get:function(){return this[D].getObservablePropValue_(e)},set:function(t){return this[D].setObservablePropValue_(e,t)}})}function Qi(e){return b(e)?Xi(e[D]):!1}function $i(e,t,n){var r;e.appliedAnnotations_[n]=t,(r=e.target_[Ee])==null||delete r[n]}function ea(e,t,r){if(xa(t)||n(`Cannot annotate '`+e.name_+`.`+r.toString()+`': Invalid annotation.`),!qe(t)&&ce(e.appliedAnnotations_,r)){var i=e.name_+`.`+r.toString(),a=e.appliedAnnotations_[r].annotationType_,o=t.annotationType_;n(`Cannot apply '`+o+`' to '`+i+`':`+(`
159
159
  The field is already annotated with '`+a+`'.`)+`
160
160
  Re-annotating fields is not allowed.
161
- Use 'override' annotation for methods overridden by subclass.`)}}var ta=oa(0),K=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,e===!1}(),na=0,ra=function(){};function ia(e,t){Object.setPrototypeOf?Object.setPrototypeOf(e.prototype,t):e.prototype.__proto__===void 0?e.prototype=t:e.prototype.__proto__=t}ia(ra,Array.prototype);var aa=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,pa(function(){var e=new Oi(r,n,i,!0);e.proxy_=a,te(a,D,e),t&&t.length&&a.spliceWithArray(0,0,t),K&&Object.defineProperty(a,`0`,ta)}),a}ve(t,e);var n=t.prototype;return n.concat=function(){this[D].atom_.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map(function(e){return Fi(e)?e.slice():e}))},n[Symbol.iterator]=function(){var e=this,t=0;return ya({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},he(t,[{key:`length`,get:function(){return this[D].getArrayLength_()},set:function(e){this[D].setArrayLength_(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(ra);Object.entries(Ai).forEach(function(e){var t=e[0],n=e[1];t!==`concat`&&ee(aa.prototype,t,n)});function oa(e){return{enumerable:!1,configurable:!0,get:function(){return this[D].get_(e)},set:function(t){this[D].set_(e,t)}}}function sa(e){s(aa.prototype,``+e,oa(e))}function ca(e){if(e>na){for(var t=na;t<e+100;t++)sa(t);na=e}}ca(1e3);function la(e,t,n){return new aa(e,t,n)}function ua(e,t){if(typeof e==`object`&&e){if(Fi(e))return t!==void 0&&n(23),e[D].atom_;if(Gi(e))return e.atom_;if(Bi(e)){if(t===void 0)return e.keysAtom_;var r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,fa(e)),r}if(Qi(e)){if(!t)return n(26);var i=e[D].values_.get(t);return i||n(27,t,fa(e)),i}if(Pe(e)||tn(e)||z(e))return e}else if(v(e)&&z(e[D]))return e[D];n(28)}function da(e,t){if(e||n(29),t!==void 0)return da(ua(e,t));if(Pe(e)||tn(e)||z(e)||Bi(e)||Gi(e))return e;if(e[D])return e[D];n(24,e)}function fa(e,t){var n;if(t!==void 0)n=ua(e,t);else if(cr(e))return e.name;else n=Qi(e)||Bi(e)||Gi(e)?da(e):ua(e);return n.name_}function pa(e){var t=F(),n=Xt(!0);An();try{return e()}finally{jn(),Zt(n),hn(t)}}var ma=c.toString;function ha(e,t,n){return n===void 0&&(n=-1),ga(e,t,n)}function ga(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=ma.call(e);if(o!==ma.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=_a(e),t=_a(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(!ga(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(!(ce(t,m)&&ga(e[m],t[m],n-1,r,i)))return!1}}return r.pop(),i.pop(),!0}function _a(e){return Fi(e)?e.slice():re(e)||Bi(e)||C(e)||Gi(e)?Array.from(e.entries()):e}var va=i().Iterator?.prototype||{};function ya(e){return e[Symbol.iterator]=ba,Object.assign(Object.create(va),e)}function ba(){return this}function xa(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:Jn,extras:{getDebugName:fa},$mobx:D}),e.$mobx=D,e.FlowCancellationError=Or,e.ObservableMap=zi,e.ObservableSet=Wi,e.Reaction=Ln,e._allowStateChanges=M,e._allowStateChangesInsideComputed=sr,e._allowStateReadsEnd=_n,e._allowStateReadsStart=gn,e._autoAction=or,e._endAction=Yt,e._getAdministration=da,e._getGlobalState=wn,e._interceptReads=Ir,e._isComputingDerivation=sn,e._resetGlobalState=Tn,e._startAction=j,e.action=ar,e.autorun=lr,e.comparer=Be,e.computed=Ht,e.configure=xr,e.createAtom=Fe,e.defineProperty=$r,e.entries=Jr,e.extendObservable=H,e.flow=Mr,e.flowResult=Pr,e.get=Qr,e.getAtom=ua,e.getDebugName=fa,e.getDependencyTree=Sr,e.getObserverTree=wr,e.has=Zr,e.intercept=Lr,e.isAction=cr,e.isBoxedObservable=en,e.isComputed=Vr,e.isComputedProp=Hr,e.isFlow=Fr,e.isFlowCancellationError=kr,e.isObservable=Wr,e.isObservableArray=Fi,e.isObservableMap=Bi,e.isObservableObject=Qi,e.isObservableProp=Gr,e.isObservableSet=Gi,e.keys=Kr,e.makeAutoObservable=wi,e.makeObservable=Si,e.observable=A,e.observe=ti,e.onBecomeObserved=hr,e.onBecomeUnobserved=gr,e.onReactionError=Rn,e.override=Ke,e.ownKeys=ei,e.reaction=fr,e.remove=Xr,e.runInAction=sr,e.set=Yr,e.spy=Jn,e.toJS=oi,e.trace=si,e.transaction=li,e.untracked=mn,e.values=qr,e.when=ui})),_C=me(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=hC():t.exports=gC()}))();function vC(e){if(Array.isArray(e))return Object.freeze(e.map(vC));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]=vC(r);return Object.freeze(t)}return e}function yC(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 bC(e){return typeof e==`string`?e:String(e)}function xC(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 SC(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 CC(e,t){if(!(e instanceof jr))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=e.style.add(t),n}function wC(e){return{fn:(t=>CC(t,e)),argTypes:[`liftable`],returnType:`T`}}function TC(e){return{fn:((t,n)=>CC(n,new V({[e]:N.parse(t)}))),argTypes:[`string`,`liftable`],returnType:`T`}}function EC(e,t){return new V({[e]:t})}function DC(){let e={};for(let t of ur)e[t]=wC(EC(t,!0)),e[`not_${t}`]=wC(EC(t,!1));for(let[t,n]of Object.entries(fr))e[t]=wC(EC(n,!0));return e}const OC={fn:((e,t)=>CC(t,V.parse(e))),argTypes:[`string`,`liftable`],returnType:`T`},kC={fn:((e,t)=>CC(t,new V({link:e}))),argTypes:[`string`,`liftable`],returnType:`T`};function AC(){return{fg:TC(`color`),bg:TC(`bgcolor`),...DC(),link:kC,style:OC}}function jC(e,t){if(!Dn.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 On(e)}function MC(e,t){return{fn:t,argTypes:e,returnType:`string`}}function NC(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 PC=MC([`string`,`int`],((e,t)=>Fn(jC(e,`darken`),NC(t,`darken`,`levels`)).hex)),FC=MC([`string`,`int`],((e,t)=>Fn(jC(e,`lighten`),-NC(t,`lighten`,`levels`)).hex)),IC={min:0,max:100,note:`0 = from, 100 = toward`},LC=MC([`string`,`string`,`float`],((e,t,n)=>cn(jC(e,`mix`),jC(t,`mix`),NC(n,`mix`,`percentage`,IC)/100).hex)),RC={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},zC=MC([`string`],(e=>In(jC(e,`contrastOn`)).hex)),BC=MC([`string`,`string`,`float`],((e,t,n)=>zn(jC(e,`readableOn`),jC(t,`readableOn`),NC(n,`readableOn`,`ratio`,RC)).hex)),VC={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function HC(){let e={};for(let[t,n]of Object.entries(VC)){let r=t;e[n]=MC([`string`,`float`],((e,t)=>{let i={...gn,[r]:NC(t,n,`amount`)};return L.fromRgba(jC(e,n)).applyKey(i).toRgba().hex}))}return e}function UC(){return{darken:PC,lighten:FC,mix:LC,contrastOn:zC,readableOn:BC,...HC()}}function WC(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:kn(t,e[r+1])});return n}function GC(e){return{color:{fn:(t=>kn(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 or(ar(r),WC(i,e())).at(n).hex}),argTypes:[`float`,`string`],argTypePattern:`alternating`,returnType:`string`}}}function KC(){return{...AC(),...UC()}}new V({color:`red`,dim:!0});const qC=/^(?:(?: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,JC=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function YC(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(qC);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(JC);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 XC(e){let t=e.match(JC);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 ZC(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 QC(e){return e.toLocaleString()}const $C=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],ew=$C.length;function tw(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*(ew-1));o+=$C[t]}return o}function nw(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 rw=ui(),iw=[...mi];function aw(){return{basename:{fn:e=>l(e),argTypes:[`string`]},dirname:{fn:e=>u(e),argTypes:[`string`]},abbreviatePath:{fn:e=>ZC(e),argTypes:[`string`]},int:{fn:e=>xC(e),argTypes:[`value`]},string:{fn:e=>bC(e),argTypes:[`value`]},bool:{fn:e=>SC(e),argTypes:[`value`]},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`]},themes:{fn:()=>rw,argTypes:[]},styles:{fn:()=>iw,argTypes:[]},sparkline:{fn:(e,t)=>tw(nw(e),t),argTypes:[`string`,`int`]}}}function ow(e=()=>new Date){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`]},formatInteger:{fn:e=>QC(e),argTypes:[`int`]},round:{fn:e=>Math.round(e),argTypes:[`float`]},formatModelName:{fn:e=>YC(e),argTypes:[`string`]},shortenModelName:{fn:e=>XC(e),argTypes:[`string`]}}}function sw(e,t=()=>new Date){return wl({fromString:e=>new jr(e),toString:e=>e.plain,isT:e=>e instanceof jr,clock:t,missingKey:`error`,funcs:{...dd(),...Sp(),...Zd(),...bf(),...rd(t),...ql(),...Td(),...KC(),...aw(),...ow(t),...e??{}}})}function cw(e){return lw(e,new Set(e.names()),``)}function lw(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`?uw(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return lw(e,t,a)}})}function uw(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 dw=/\r\n|\r|\n/g,fw=e=>X(e.replace(dw,` `).trim());function pw(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?Q(`regex no-match`):X(n.replace(dw,` `))}}const mw=e=>{try{return X(JSON.parse(e))}catch(e){return Q(`JSON parse failed: ${e.message}`)}};function hw(e,t){return t.kind!==`ttl`||t.durationMs>=500?t:(E(`declareShell "${e}": ttl ${t.durationMs}ms below floor 500ms; clamping`),{kind:`ttl`,durationMs:500})}function gw(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 _w(e,t){return{where:`output of "${e}"`,read:async()=>{let n=await Ee({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 vw(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await C(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 yw(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 bw=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],xw=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Sw=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],Cw=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function ww(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>bw[e.getMonth()]],[`Monday`,e=>Sw[e.getDay()]],[`Jan`,e=>xw[e.getMonth()]],[`Mon`,e=>Cw[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 Tw={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function Ew(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=Tw[t];try{return Aw(r,e)}catch{return jw(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return Gv(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return Gv(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return Gv(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return Gv(e.stashCount,0)}}var Dw=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}},Ow=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:se(()=>{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&&(oe(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())oe(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function kw(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function Aw(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`?bC(e):t===`number`?xC(e):SC(e)}function jw(e){return e===`number`?0:e===`boolean`?!1:``}var Mw=class{inputMetas=new Map;lastErrors=new Map;watchMgr=new Dw;ttlMgr=new Ow;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;abort=new AbortController;engine=sw();gitProvider;ownsGitProvider;sessionState;constructor(e,t=``,n,r){this.store=e,this.defaultEmptyValue=t,n?(this.gitProvider=n,this.ownsGitProvider=!1):(this.gitProvider=new iS({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,yC(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,_w(t,this.abort.signal),hw(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,vw(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,fw,t.default,n);case`regex`:return this.scalarPublisher(e,pw(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=yw(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,Gv(a,i))}}documentPublisher(e,t,n){let r=t===void 0?Z:X(t);return this.store.defineDocument(e,r),i=>{let a=yw(i,mw,n);this.noteOutcome(e,a),this.store.setDocument(e,a.kind===`ok`||t===void 0?a:r)}}runSource(e,t,n){if(this.inFlight.has(e))return;let r=t.read().then(n,e=>{if(e!==this.abort.signal.reason)throw e}).finally(()=>this.inFlight.delete(e));this.inFlight.set(e,r)}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=cw(this.store);try{let t=r.evaluate(i).map(e=>e.plain).join(``);return this.lastErrors.delete(e),t}catch(t){return this.recordError(e,t instanceof Error?t.message:String(t)),this.stringInitial(n.varDefault)}}),this.store.read(e)}declareTime(e,t){let n=t.ttlMs??1e3;this.store.defineBox(e,`string`,(e=>{try{return ww(t.format,e)}catch{return this.stringInitial(t.varDefault)}})(new Date));let r=this.ttlMgr.subscribe(n,()=>{try{this.store.setBox(e,ww(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=Tw[t.field],r=t.varDefault===void 0?jw(n):Aw(t.varDefault,n);this.store.defineBox(e,n,r);let i=this.gitSubscriptions.get(t.cwd);if(!i){let e=new Map;i={fieldSubs:e,unsubscribe: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,Ew(t,n,i,this.defaultEmptyValue))})})},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})}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=kw(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,Aw(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`)}})}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.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,_C.reaction)(()=>{let t=cw(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,_C.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,Aw(this.defaultEmptyValue,t))}catch{this.store.setBox(e,jw(t))}}defaultFor(e){try{return Aw(this.defaultEmptyValue,e)}catch{return jw(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`)}};const Nw=new Map,Pw=new Map;function Fw(e){let t=oi(e),n=Nw.get(t);if(n!==void 0)return n;let r=Kn(t);if(r===null)throw Error(`Palette "${e}" (resolved "${t}") did not resolve in the theme registry — allowed names and the registry are inconsistent`);return Nw.set(t,r),r}function Iw(e,t){let n=`${e.name} ${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,r=Pw.get(n);if(r!==void 0)return r;let i=nr(e,t);return Pw.set(n,i),i}function Lw(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=Rw(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e)if(a.style.link){i();let e=Rw([a],t);e.plain.length>0&&n.push(e)}else r.push(a);return i(),n}function Rw(e,t){let n=t!==void 0&&!t.isNull?e.map(e=>zw(e,t)):e,r=jr.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 zw(e,t){let n=e.copy();return n.style=t.add(e.style),n}function Bw(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}function Vw(e,t){let n=jr.fromFragments(e);return n.end=``,n.noWrap=!0,t!==void 0&&!t.isNull&&(n.style=t),n}function Hw(e,t){let{width:n,justify:r,truncate:i,truncateMarker:a=`…`,baseStyle:o,padding:s}=t;if(e.length===0)return[];let c=Vw(e,o).pad(s);return n===`auto`||(c.cellLength>n?c.truncate(n,{mode:i,marker:a}):c.cellLength<n&&c.align(r,n)),[c]}var Uw=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function Ww(e,t,n,r,i,a,o,s,c){let l={segName:t,palette:n,disclosure:r,bg:void 0};e.current=l;let u=Gw(o,c),d=u===void 0?i:Kw(n,u,`bg`);l.bg=d;let f=Gw(s,c),p=f===void 0?a(d):Kw(n,f,`fg`);return new V({bgcolor:N.fromRgba(d),color:p===void 0?void 0:N.fromRgba(p)})}function Gw(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function Kw(e,t,n){try{return kn(e,t)}catch(e){throw e instanceof En?new Uw(t,n,e.message):e}}const qw=new Map([[`palette`,`theme.effective`],[`preset`,`preset.effective`],[`look`,`look.effective`],[`style`,`style.effective`],[`charset`,`charset.effective`],[`colorCompatibility`,`colorCompatibility.effective`],[`autoWrap`,`autoWrap.effective`],[`padding`,`padding.effective`]]);function Jw(e,t,n,r){let i=new Map;for(let[a,o]of Object.entries(t))i.set(a,Yw(e,a,o,n,r));return i}function Yw(e,t,n,r,i){if(Ah(n)){let[a,o]=jh(n);return Xw(r.get(n.persistWhen)??n.persistWhen,n.set,Yw(e,t,a,r,i),Yw(e,t,o,r,i))}if(`set`in n){let e=r.get(n.set)??n.set;return`to`in n?{kind:`set-literal`,key:n.set,value:n.to,stateVar:e}:`from`in n?{kind:`set-option`,key:n.set,stateVar:e,options:[...Pg(n.from,i)]}:`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=qw.get(n.persist)??n.persist;return`to`in n?{kind:`persist-literal`,key:n.persist,value:n.to,stateVar:e}:`from`in n?{kind:`persist-option`,key:n.persist,stateVar:e,options:[...Pg(n.from,i)]}:`cycle`in n?{kind:`persist-cycle`,key:n.persist,stateVar:e,members:n.cycle}:`removeSegment`in n?{kind:`layout-op`,key:n.persist,op:{op:`remove`,target:n.removeSegment}}:`insertSegment`in n?{kind:`layout-op`,key:n.persist,op:{op:`insert`,segment:n.insertSegment,anchor:n.anchor,relation:n.relation}}:`insertSegmentFrom`in n?{kind:`layout-op-option`,key:n.persist,anchor:n.anchor,relation:n.relation,options:[...Pg(n.insertSegmentFrom,i)]}:{kind:`persist-bounded`,key:n.persist,by:n.by}}return`copy`in n?{kind:`copy`,text:Qw(e,n.copy,t)}:`open`in n?{kind:`open`,target:Qw(e,n.open,t)}:`reset`in n?{kind:`reset`,key:n.reset}:`doctor`in n?n.doctor===`run`?{kind:`doctor-run`}:{kind:`doctor-fix`,check:n.check}:`undo`in n?{kind:`undo`}:{kind:`redo`}}function Xw(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 Zw(e,t){return e.kind===`dual`?Ci($w(t,e.selector))===!0?e.durable:e.session:e}function Qw(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function $w(e,t){return e.has(t)?bC(e.read(t)):``}function eT(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function tT(e,t,n,r){let i=new jr(e,{style:V.combine([r,new V({link:t,bold:n})])});return i.noWrap=!0,i.end=``,i}function nT(e,t){return Math.max(e.members.indexOf($w(t,e.stateVar)),0)}function rT(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=$w(r,e.stateVar);return{effects:[{verb:Sv,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=$w(r,e.stateVar);return{effects:[{verb:Sv,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=$w(r,e.stateVar);return{effects:[{verb:Sv,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(nT(e,r)+1)%e.members.length];return{effects:[{verb:Sv,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:Cv,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:wv,args:[eT(e.text,cw(r))]}],active:!1};case`open`:return{effects:[{verb:Tv,args:[eT(e.target,cw(r))]}],active:!1};case`persist-literal`:{let t=$w(r,e.stateVar);return{effects:[{verb:kv,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=$w(r,e.stateVar);return{effects:[{verb:kv,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(nT(e,r)+1)%e.members.length];return{effects:[{verb:kv,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Av,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:jv,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:Nv,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Pv,args:[i]}],active:!1};case`doctor-run`:return{effects:[{verb:Iv,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Lv,args:[i,e.check]}],active:!1};case`layout-op`:return{effects:[{verb:Mv,args:[i,e.key,Qp(e.op)]}],active:!1};case`dual`:{let a=Zw(e,r),{effects:o,active:s}=rT(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`layout-op-option`:{let r={op:`insert`,segment:n??t,anchor:e.anchor,relation:e.relation};return{effects:[{verb:Mv,args:[i,e.key,Qp(r)]}],active:!1}}}}function iT(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:is(`action "${e}"`,n,t.members.length,nT(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 aT(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}=iT(e,Zw(r,i),t,i),{effects:s,active:c}=rT(r,a,o,i,$w(i,`session.id`));return tT(a,Bv(s),c)}function oT(e){return{action:{fn:(t,...n)=>aT(t,n,e),argTypes:[`string`,`string`],returnType:`T`}}}function sT(e,t){return new V({bgcolor:N.fromRgba(t),color:N.fromRgba(Wo(e,t))})}function cT(e,t){return sT(e.palette,Xo(e.palette,e.disclosure,[t]))}function lT(){return{current:null}}function uT(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 dT(e){return new jr(e).cellLength}function fT(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 pT(e,t){let n=[];for(let t of e)n.length>0&&n.push(new jr(` `)),n.push(t);let r=jr.fromFragments(n);return r.noWrap=t,r.end=``,r}function mT(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 hT(e,t){let n=e.compiled.get(t),r=n&&Zw(n,e.store);if(!r||r.kind!==`set-option`&&r.kind!==`persist-option`&&r.kind!==`layout-op-option`)throw Error(`picker 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 ${r?`a ${r.kind} action`:`no such action`}`);return r}function gT(e,t,n,r,i,a,o){let s=hT(a,e),c=a.compiled.get(e),l=a.store,u=$w(l,`session.id`),d=`stateVar`in s?$w(l,s.stateVar):void 0,f=s.options.map(dT),p=i?Math.max(1,xC(l.read(`term.cols`))-ab(a.stripStyle)-2*a.padding):1/0,m=dT(`✕`)+1,h=dT(`←`)+1+dT(`→`)+1,g=fT(f,p,m),_=g.length>1?fT(f,p,m+h):g,v=parseInt($w(l,t.stateVar),10),y=Number.isInteger(v)?Math.max(0,Math.min(v,_.length-1)):0,b=_[y]??[],x=e=>Bv([{verb:Sv,args:[u,t.key,String(e)]}]),S=n.flatMap(([e,t])=>[e,t]),ee=Bv([{verb:Sv,args:[u,...S]}]),te=r?[{verb:Sv,args:[u,...S]}]:[],ne=e=>{let{effects:t}=rT(c,e,e,l,u),n=t.length===1?t[0]:void 0;return n?.verb===`set-state`?Bv([{verb:Sv,args:[...n.args,...r?S:[]]}]):Bv([...t,...te])},re=[tT(`✕`,ee,!1)];y>0&&re.push(tT(`←`,x(y-1),!1));for(let e of b){let t=s.options[e];re.push(tT(t,ne(t),t===d,o({index:e,count:s.options.length})))}return y<_.length-1&&re.push(tT(`→`,x(y+1),!1)),pT(re,i)}function _T(e,t){return{picker:{fn:(n,r,i,a)=>{let o=mT(e,r,`set-int`,`an int action ({ set, int: true })`);return gT(n,{key:o.key,stateVar:o.stateVar},[[o.key,`-1`]],i===!0,a===!0,e,e=>cT(uT(t,`{{ picker }}`),{...e,distribution:Po(void 0)}))},argTypes:[`string`,`string`,`bool`,`bool`],returnType:`T`}}}const vT=Symbol(`cc-candybar.menuDrop`);function yT(e){return e.flatMap(e=>e[vT]??[])}function bT(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=Ep(i.segName,e,n.key),s=Op(o),c=Tp(e),l=$w(a.store,o)===c,u=$w(a.store,`session.id`),d=l?ns:c,f=tT(is(`{{ menu "${e}" }}`,t,2,+!!l),Bv([{verb:Sv,args:[u,o,d,s,`0`]}]),!1);return f[vT]=l?[gT(e,{key:s,stateVar:s},[[o,ns],[s,`0`]],n.closeOnPick,n.paged,a,e=>cT(i,{...e,distribution:n.distribution}))]:[],f}const xT=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function ST(e,t){let n=t[t.length-1],r=xT(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:Mp(r??{})}}function CT(e){return{menu:{fn:(t,...n)=>{let{displays:r,options:i}=ST(t,n);return bT(t,r,i,e)},argTypes:[`string`,`value`],returnType:`T`}}}function wT(e){let t={fn:(()=>{let t=uT(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`};return{...GC(()=>uT(e,`{{ color }} / {{ ramp }}`).palette),bgOf:t}}function TT(e){let t=[],n=[];for(let r of e){if(!r.contains(`
161
+ Use 'override' annotation for methods overridden by subclass.`)}}var ta=oa(0),K=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,e===!1}(),na=0,ra=function(){};function ia(e,t){Object.setPrototypeOf?Object.setPrototypeOf(e.prototype,t):e.prototype.__proto__===void 0?e.prototype=t:e.prototype.__proto__=t}ia(ra,Array.prototype);var aa=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,pa(function(){var e=new Oi(r,n,i,!0);e.proxy_=a,ee(a,D,e),t&&t.length&&a.spliceWithArray(0,0,t),K&&Object.defineProperty(a,`0`,ta)}),a}ve(t,e);var n=t.prototype;return n.concat=function(){this[D].atom_.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map(function(e){return Fi(e)?e.slice():e}))},n[Symbol.iterator]=function(){var e=this,t=0;return ya({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},he(t,[{key:`length`,get:function(){return this[D].getArrayLength_()},set:function(e){this[D].setArrayLength_(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(ra);Object.entries(Ai).forEach(function(e){var t=e[0],n=e[1];t!==`concat`&&C(aa.prototype,t,n)});function oa(e){return{enumerable:!1,configurable:!0,get:function(){return this[D].get_(e)},set:function(t){this[D].set_(e,t)}}}function sa(e){s(aa.prototype,``+e,oa(e))}function ca(e){if(e>na){for(var t=na;t<e+100;t++)sa(t);na=e}}ca(1e3);function la(e,t,n){return new aa(e,t,n)}function ua(e,t){if(typeof e==`object`&&e){if(Fi(e))return t!==void 0&&n(23),e[D].atom_;if(Gi(e))return e.atom_;if(Bi(e)){if(t===void 0)return e.keysAtom_;var r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,fa(e)),r}if(Qi(e)){if(!t)return n(26);var i=e[D].values_.get(t);return i||n(27,t,fa(e)),i}if(Pe(e)||tn(e)||z(e))return e}else if(v(e)&&z(e[D]))return e[D];n(28)}function da(e,t){if(e||n(29),t!==void 0)return da(ua(e,t));if(Pe(e)||tn(e)||z(e)||Bi(e)||Gi(e))return e;if(e[D])return e[D];n(24,e)}function fa(e,t){var n;if(t!==void 0)n=ua(e,t);else if(cr(e))return e.name;else n=Qi(e)||Bi(e)||Gi(e)?da(e):ua(e);return n.name_}function pa(e){var t=F(),n=Xt(!0);An();try{return e()}finally{jn(),Zt(n),hn(t)}}var ma=c.toString;function ha(e,t,n){return n===void 0&&(n=-1),ga(e,t,n)}function ga(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=ma.call(e);if(o!==ma.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=_a(e),t=_a(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(!ga(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(!(ce(t,m)&&ga(e[m],t[m],n-1,r,i)))return!1}}return r.pop(),i.pop(),!0}function _a(e){return Fi(e)?e.slice():ne(e)||Bi(e)||ie(e)||Gi(e)?Array.from(e.entries()):e}var va=i().Iterator?.prototype||{};function ya(e){return e[Symbol.iterator]=ba,Object.assign(Object.create(va),e)}function ba(){return this}function xa(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:Jn,extras:{getDebugName:fa},$mobx:D}),e.$mobx=D,e.FlowCancellationError=Or,e.ObservableMap=zi,e.ObservableSet=Wi,e.Reaction=Ln,e._allowStateChanges=M,e._allowStateChangesInsideComputed=sr,e._allowStateReadsEnd=_n,e._allowStateReadsStart=gn,e._autoAction=or,e._endAction=Yt,e._getAdministration=da,e._getGlobalState=wn,e._interceptReads=Ir,e._isComputingDerivation=sn,e._resetGlobalState=Tn,e._startAction=j,e.action=ar,e.autorun=lr,e.comparer=Be,e.computed=Ht,e.configure=xr,e.createAtom=Fe,e.defineProperty=$r,e.entries=Jr,e.extendObservable=H,e.flow=Mr,e.flowResult=Pr,e.get=Qr,e.getAtom=ua,e.getDebugName=fa,e.getDependencyTree=Sr,e.getObserverTree=wr,e.has=Zr,e.intercept=Lr,e.isAction=cr,e.isBoxedObservable=en,e.isComputed=Vr,e.isComputedProp=Hr,e.isFlow=Fr,e.isFlowCancellationError=kr,e.isObservable=Wr,e.isObservableArray=Fi,e.isObservableMap=Bi,e.isObservableObject=Qi,e.isObservableProp=Gr,e.isObservableSet=Gi,e.keys=Kr,e.makeAutoObservable=wi,e.makeObservable=Si,e.observable=A,e.observe=ti,e.onBecomeObserved=hr,e.onBecomeUnobserved=gr,e.onReactionError=Rn,e.override=Ke,e.ownKeys=ei,e.reaction=fr,e.remove=Xr,e.runInAction=sr,e.set=Yr,e.spy=Jn,e.toJS=oi,e.trace=si,e.transaction=li,e.untracked=mn,e.values=qr,e.when=ui})),TC=me(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=CC():t.exports=wC()}))();function EC(e){if(Array.isArray(e))return Object.freeze(e.map(EC));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]=EC(r);return Object.freeze(t)}return e}function DC(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 OC(e){return typeof e==`string`?e:String(e)}function kC(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 AC(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 jC(e,t){if(!(e instanceof jr))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=e.style.add(t),n}function MC(e){return{fn:(t=>jC(t,e)),argTypes:[`liftable`],returnType:`T`}}function NC(e){return{fn:((t,n)=>jC(n,new V({[e]:N.parse(t)}))),argTypes:[`string`,`liftable`],returnType:`T`}}function PC(e,t){return new V({[e]:t})}function FC(){let e={};for(let t of ur)e[t]=MC(PC(t,!0)),e[`not_${t}`]=MC(PC(t,!1));for(let[t,n]of Object.entries(fr))e[t]=MC(PC(n,!0));return e}const IC={fn:((e,t)=>jC(t,V.parse(e))),argTypes:[`string`,`liftable`],returnType:`T`},LC={fn:((e,t)=>jC(t,new V({link:e}))),argTypes:[`string`,`liftable`],returnType:`T`};function RC(){return{fg:NC(`color`),bg:NC(`bgcolor`),...FC(),link:LC,style:IC}}function zC(e,t){if(!Dn.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 On(e)}function BC(e,t){return{fn:t,argTypes:e,returnType:`string`}}function VC(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 HC=BC([`string`,`int`],((e,t)=>Fn(zC(e,`darken`),VC(t,`darken`,`levels`)).hex)),UC=BC([`string`,`int`],((e,t)=>Fn(zC(e,`lighten`),-VC(t,`lighten`,`levels`)).hex)),WC={min:0,max:100,note:`0 = from, 100 = toward`},GC=BC([`string`,`string`,`float`],((e,t,n)=>cn(zC(e,`mix`),zC(t,`mix`),VC(n,`mix`,`percentage`,WC)/100).hex)),KC={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},qC=BC([`string`],(e=>In(zC(e,`contrastOn`)).hex)),JC=BC([`string`,`string`,`float`],((e,t,n)=>zn(zC(e,`readableOn`),zC(t,`readableOn`),VC(n,`readableOn`,`ratio`,KC)).hex)),YC={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function XC(){let e={};for(let[t,n]of Object.entries(YC)){let r=t;e[n]=BC([`string`,`float`],((e,t)=>{let i={...gn,[r]:VC(t,n,`amount`)};return L.fromRgba(zC(e,n)).applyKey(i).toRgba().hex}))}return e}function ZC(){return{darken:HC,lighten:UC,mix:GC,contrastOn:qC,readableOn:JC,...XC()}}function QC(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:kn(t,e[r+1])});return n}function $C(e){return{color:{fn:(t=>kn(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 or(ar(r),QC(i,e())).at(n).hex}),argTypes:[`float`,`string`],argTypePattern:`alternating`,returnType:`string`}}}function ew(){return{...RC(),...ZC()}}new V({color:`red`,dim:!0});const tw=/^(?:(?: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,nw=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function rw(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(tw);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(nw);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 iw(e){let t=e.match(nw);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 aw(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 ow(e){return e.toLocaleString()}const sw=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],cw=sw.length;function lw(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*(cw-1));o+=sw[t]}return o}function uw(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 dw=ui(),fw=[...mi];function pw(){return{basename:{fn:e=>l(e),argTypes:[`string`]},dirname:{fn:e=>u(e),argTypes:[`string`]},abbreviatePath:{fn:e=>aw(e),argTypes:[`string`]},int:{fn:e=>kC(e),argTypes:[`value`]},string:{fn:e=>OC(e),argTypes:[`value`]},bool:{fn:e=>AC(e),argTypes:[`value`]},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`]},themes:{fn:()=>dw,argTypes:[]},styles:{fn:()=>fw,argTypes:[]},sparkline:{fn:(e,t)=>lw(uw(e),t),argTypes:[`string`,`int`]}}}function mw(e=()=>new Date){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`]},formatInteger:{fn:e=>ow(e),argTypes:[`int`]},round:{fn:e=>Math.round(e),argTypes:[`float`]},formatModelName:{fn:e=>rw(e),argTypes:[`string`]},shortenModelName:{fn:e=>iw(e),argTypes:[`string`]}}}function hw(e,t=()=>new Date){return Pl({fromString:e=>new jr(e),toString:e=>e.plain,isT:e=>e instanceof jr,clock:t,missingKey:`error`,funcs:{...xd(),...Mp(),...cf(),...Af(),...pd(t),...ru(),...Fd(),...ew(),...pw(),...mw(t),...e??{}}})}function gw(e){return _w(e,new Set(e.names()),``)}function _w(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`?vw(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return _w(e,t,a)}})}function vw(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 yw=/\r\n|\r|\n/g,bw=e=>X(e.replace(yw,` `).trim());function xw(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?Q(`regex no-match`):X(n.replace(yw,` `))}}const Sw=e=>{try{return X(JSON.parse(e))}catch(e){return Q(`JSON parse failed: ${e.message}`)}};function Cw(e,t){return t.kind!==`ttl`||t.durationMs>=500?t:(E(`declareShell "${e}": ttl ${t.durationMs}ms below floor 500ms; clamping`),{kind:`ttl`,durationMs:500})}function ww(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 Tw(e,t){return{where:`output of "${e}"`,read:async()=>{let n=await Ee({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 Ew(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await ie(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 Dw(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 Ow=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],kw=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Aw=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],jw=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Mw(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>Ow[e.getMonth()]],[`Monday`,e=>Aw[e.getDay()]],[`Jan`,e=>kw[e.getMonth()]],[`Mon`,e=>jw[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 Nw={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function Pw(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=Nw[t];try{return Rw(r,e)}catch{return zw(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return $v(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return $v(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return $v(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return $v(e.stashCount,0)}}var Fw=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}},Iw=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:se(()=>{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&&(oe(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())oe(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function Lw(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function Rw(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`?OC(e):t===`number`?kC(e):AC(e)}function zw(e){return e===`number`?0:e===`boolean`?!1:``}var Bw=class{inputMetas=new Map;lastErrors=new Map;watchMgr=new Fw;ttlMgr=new Iw;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;abort=new AbortController;engine=hw();gitProvider;ownsGitProvider;sessionState;constructor(e,t=``,n,r){this.store=e,this.defaultEmptyValue=t,n?(this.gitProvider=n,this.ownsGitProvider=!1):(this.gitProvider=new fS({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,DC(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,Tw(t,this.abort.signal),Cw(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,Ew(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,bw,t.default,n);case`regex`:return this.scalarPublisher(e,xw(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=Dw(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,$v(a,i))}}documentPublisher(e,t,n){let r=t===void 0?Z:X(t);return this.store.defineDocument(e,r),i=>{let a=Dw(i,Sw,n);this.noteOutcome(e,a),this.store.setDocument(e,a.kind===`ok`||t===void 0?a:r)}}runSource(e,t,n){if(this.inFlight.has(e))return;let r=t.read().then(n,e=>{if(e!==this.abort.signal.reason)throw e}).finally(()=>this.inFlight.delete(e));this.inFlight.set(e,r)}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=gw(this.store);try{let t=r.evaluate(i).map(e=>e.plain).join(``);return this.lastErrors.delete(e),t}catch(t){return this.recordError(e,t instanceof Error?t.message:String(t)),this.stringInitial(n.varDefault)}}),this.store.read(e)}declareTime(e,t){let n=t.ttlMs??1e3;this.store.defineBox(e,`string`,(e=>{try{return Mw(t.format,e)}catch{return this.stringInitial(t.varDefault)}})(new Date));let r=this.ttlMgr.subscribe(n,()=>{try{this.store.setBox(e,Mw(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=Nw[t.field],r=t.varDefault===void 0?zw(n):Rw(t.varDefault,n);this.store.defineBox(e,n,r);let i=this.gitSubscriptions.get(t.cwd);if(!i){let e=new Map;i={fieldSubs:e,unsubscribe: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,Pw(t,n,i,this.defaultEmptyValue))})})},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})}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=Lw(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,Rw(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`)}})}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.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,TC.reaction)(()=>{let t=gw(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,TC.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,Rw(this.defaultEmptyValue,t))}catch{this.store.setBox(e,zw(t))}}defaultFor(e){try{return Rw(this.defaultEmptyValue,e)}catch{return zw(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`)}};const Vw=new Map,Hw=new Map;function Uw(e){let t=oi(e),n=Vw.get(t);if(n!==void 0)return n;let r=Kn(t);if(r===null)throw Error(`Palette "${e}" (resolved "${t}") did not resolve in the theme registry — allowed names and the registry are inconsistent`);return Vw.set(t,r),r}function Ww(e,t){let n=`${e.name} ${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,r=Hw.get(n);if(r!==void 0)return r;let i=nr(e,t);return Hw.set(n,i),i}function Gw(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=Kw(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e)if(a.style.link){i();let e=Kw([a],t);e.plain.length>0&&n.push(e)}else r.push(a);return i(),n}function Kw(e,t){let n=t!==void 0&&!t.isNull?e.map(e=>qw(e,t)):e,r=jr.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 qw(e,t){let n=e.copy();return n.style=t.add(e.style),n}function Jw(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}function Yw(e,t){let n=jr.fromFragments(e);return n.end=``,n.noWrap=!0,t!==void 0&&!t.isNull&&(n.style=t),n}function Xw(e,t){let{width:n,justify:r,truncate:i,truncateMarker:a=`…`,baseStyle:o,padding:s}=t;if(e.length===0)return[];let c=Yw(e,o).pad(s);return n===`auto`||(c.cellLength>n?c.truncate(n,{mode:i,marker:a}):c.cellLength<n&&c.align(r,n)),[c]}var Zw=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function Qw(e,t,n,r,i,a,o,s,c){let l={segName:t,palette:n,disclosure:r,bg:void 0};e.current=l;let u=$w(o,c),d=u===void 0?i:eT(n,u,`bg`);l.bg=d;let f=$w(s,c),p=f===void 0?a(d):eT(n,f,`fg`);return new V({bgcolor:N.fromRgba(d),color:p===void 0?void 0:N.fromRgba(p)})}function $w(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function eT(e,t,n){try{return kn(e,t)}catch(e){throw e instanceof En?new Zw(t,n,e.message):e}}const tT=new Map([[`palette`,`theme.effective`],[`preset`,`preset.effective`],[`look`,`look.effective`],[`style`,`style.effective`],[`charset`,`charset.effective`],[`colorCompatibility`,`colorCompatibility.effective`],[`autoWrap`,`autoWrap.effective`],[`padding`,`padding.effective`]]);function nT(e,t,n,r){let i=new Map;for(let[a,o]of Object.entries(t))i.set(a,rT(e,a,o,n,r));return i}function rT(e,t,n,r,i){if(Lh(n)){let[a,o]=Rh(n);return iT(r.get(n.persistWhen)??n.persistWhen,n.set,rT(e,t,a,r,i),rT(e,t,o,r,i))}if(`set`in n){let e=r.get(n.set)??n.set;return`to`in n?{kind:`set-literal`,key:n.set,value:n.to,stateVar:e}:`from`in n?{kind:`set-option`,key:n.set,stateVar:e,options:[...Vg(n.from,i)]}:`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=tT.get(n.persist)??n.persist;return`to`in n?{kind:`persist-literal`,key:n.persist,value:n.to,stateVar:e}:`from`in n?{kind:`persist-option`,key:n.persist,stateVar:e,options:[...Vg(n.from,i)]}:`cycle`in n?{kind:`persist-cycle`,key:n.persist,stateVar:e,members:n.cycle}:`removeSegment`in n?{kind:`layout-op`,key:n.persist,op:{op:`remove`,target:n.removeSegment}}:`insertSegment`in n?{kind:`layout-op`,key:n.persist,op:{op:`insert`,segment:n.insertSegment,anchor:n.anchor,relation:n.relation}}:`insertSegmentFrom`in n?{kind:`layout-op-option`,key:n.persist,anchor:n.anchor,relation:n.relation,options:[...Vg(n.insertSegmentFrom,i)]}:{kind:`persist-bounded`,key:n.persist,by:n.by}}return`copy`in n?{kind:`copy`,text:oT(e,n.copy,t)}:`open`in n?{kind:`open`,target:oT(e,n.open,t)}:`reset`in n?{kind:`reset`,key:n.reset}:`doctor`in n?n.doctor===`run`?{kind:`doctor-run`}:{kind:`doctor-fix`,check:n.check}:`undo`in n?{kind:`undo`}:{kind:`redo`}}function iT(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 aT(e,t){return e.kind===`dual`?Ci(sT(t,e.selector))===!0?e.durable:e.session:e}function oT(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function sT(e,t){return e.has(t)?OC(e.read(t)):``}function cT(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function lT(e,t,n,r){let i=new jr(e,{style:V.combine([r,new V({link:t,bold:n})])});return i.noWrap=!0,i.end=``,i}function uT(e,t){return Math.max(e.members.indexOf(sT(t,e.stateVar)),0)}function dT(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=sT(r,e.stateVar);return{effects:[{verb:Av,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=sT(r,e.stateVar);return{effects:[{verb:Av,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=sT(r,e.stateVar);return{effects:[{verb:Av,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(uT(e,r)+1)%e.members.length];return{effects:[{verb:Av,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:jv,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:Mv,args:[cT(e.text,gw(r))]}],active:!1};case`open`:return{effects:[{verb:Nv,args:[cT(e.target,gw(r))]}],active:!1};case`persist-literal`:{let t=sT(r,e.stateVar);return{effects:[{verb:Lv,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=sT(r,e.stateVar);return{effects:[{verb:Lv,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(uT(e,r)+1)%e.members.length];return{effects:[{verb:Lv,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Rv,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:zv,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:Vv,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Hv,args:[i]}],active:!1};case`doctor-run`:return{effects:[{verb:Wv,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Gv,args:[i,e.check]}],active:!1};case`layout-op`:return{effects:[{verb:Bv,args:[i,e.key,om(e.op)]}],active:!1};case`dual`:{let a=aT(e,r),{effects:o,active:s}=dT(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`layout-op-option`:{let r={op:`insert`,segment:n??t,anchor:e.anchor,relation:e.relation};return{effects:[{verb:Bv,args:[i,e.key,om(r)]}],active:!1}}}}function fT(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:gs(`action "${e}"`,n,t.members.length,uT(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 pT(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}=fT(e,aT(r,i),t,i),{effects:s,active:c}=dT(r,a,o,i,sT(i,`session.id`));return lT(a,Jv(s),c)}function mT(e){return{action:{fn:(t,...n)=>pT(t,n,e),argTypes:[`string`,`string`],returnType:`T`}}}function hT(e,t){return new V({bgcolor:N.fromRgba(t),color:N.fromRgba(ns(e,t))})}function gT(e,t){return hT(e.palette,cs(e.palette,e.disclosure,[t]))}function _T(){return{current:null}}function vT(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 yT(e){return new jr(e).cellLength}function bT(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 xT(e,t){let n=[];for(let t of e)n.length>0&&n.push(new jr(` `)),n.push(t);let r=jr.fromFragments(n);return r.noWrap=t,r.end=``,r}function ST(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 CT(e,t){let n=e.compiled.get(t),r=n&&aT(n,e.store);if(!r||r.kind!==`set-option`&&r.kind!==`persist-option`&&r.kind!==`layout-op-option`)throw Error(`picker 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 ${r?`a ${r.kind} action`:`no such action`}`);return r}function wT(e,t,n,r,i,a,o){let s=CT(a,e),c=a.compiled.get(e),l=a.store,u=sT(l,`session.id`),d=`stateVar`in s?sT(l,s.stateVar):void 0,f=s.options.map(yT),p=i?Math.max(1,kC(l.read(`term.cols`))-pb(a.stripStyle)-2*a.padding):1/0,m=yT(`✕`)+1,h=yT(`←`)+1+yT(`→`)+1,g=bT(f,p,m),_=g.length>1?bT(f,p,m+h):g,v=parseInt(sT(l,t.stateVar),10),y=Number.isInteger(v)?Math.max(0,Math.min(v,_.length-1)):0,b=_[y]??[],x=e=>Jv([{verb:Av,args:[u,t.key,String(e)]}]),S=n.flatMap(([e,t])=>[e,t]),C=Jv([{verb:Av,args:[u,...S]}]),ee=r?[{verb:Av,args:[u,...S]}]:[],te=e=>{let{effects:t}=dT(c,e,e,l,u),n=t.length===1?t[0]:void 0;return n?.verb===`set-state`?Jv([{verb:Av,args:[...n.args,...r?S:[]]}]):Jv([...t,...ee])},ne=[lT(`✕`,C,!1)];y>0&&ne.push(lT(`←`,x(y-1),!1));for(let e of b){let t=s.options[e];ne.push(lT(t,te(t),t===d,o({index:e,count:s.options.length})))}return y<_.length-1&&ne.push(lT(`→`,x(y+1),!1)),xT(ne,i)}function TT(e,t){return{picker:{fn:(n,r,i,a)=>{let o=ST(e,r,`set-int`,`an int action ({ set, int: true })`);return wT(n,{key:o.key,stateVar:o.stateVar},[[o.key,`-1`]],i===!0,a===!0,e,e=>gT(vT(t,`{{ picker }}`),{...e,distribution:Ko(void 0)}))},argTypes:[`string`,`string`,`bool`,`bool`],returnType:`T`}}}const ET=Symbol(`cc-candybar.menuDrop`);function DT(e){return e.flatMap(e=>e[ET]??[])}function OT(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=Fp(i.segName,e,n.key),s=Lp(o),c=Pp(e),l=sT(a.store,o)===c,u=sT(a.store,`session.id`),d=l?ms:c,f=lT(gs(`{{ menu "${e}" }}`,t,2,+!!l),Jv([{verb:Av,args:[u,o,d,s,`0`]}]),!1);return f[ET]=l?[wT(e,{key:s,stateVar:s},[[o,ms],[s,`0`]],n.closeOnPick,n.paged,a,e=>gT(i,{...e,distribution:n.distribution}))]:[],f}const kT=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function AT(e,t){let n=t[t.length-1],r=kT(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:Vp(r??{})}}function jT(e){return{menu:{fn:(t,...n)=>{let{displays:r,options:i}=AT(t,n);return OT(t,r,i,e)},argTypes:[`string`,`value`],returnType:`T`}}}function MT(e){let t={fn:(()=>{let t=vT(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`};return{...$C(()=>vT(e,`{{ color }} / {{ ramp }}`).palette),bgOf:t}}function NT(e){let t=[],n=[];for(let r of e){if(!r.contains(`
162
162
  `)){n.push(r);continue}let e=r.split(`
163
- `);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function ET(e,t){switch(e){case`vertical`:return t.flatMap(e=>e);case`horizontal`:return t.reduce((e,t)=>Math.max(e,t.length),0)===0?[]:[t.flatMap(e=>e[0]??[]),...t.flatMap(e=>e.slice(1))]}}const DT={container:{compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:Po(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,`${t.path}.children[${n}]`))}},render(e,t){return ET(e.direction,e.children.map((n,r)=>t.renderChild(n,t.visible,{index:r,count:e.children.length,distribution:e.distribution})))}},segment:{compile(e,t){return{kind:`segment`,when:t.when,name:e.name,...e.opens!==void 0&&{opens:{open:t.parse(ss(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,`${t.path}.opens.body`)}}}},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(!Bw(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&&Bw(e.opens.open,t.scope),l=e.opens===void 0?[]:t.renderBody(e.opens.body,c,a.disclosure),u=s.length>0||c?a.trigger:a.closed,d={width:r.width??`auto`,justify:r.justify??`left`,truncate:r.truncate??`right`,baseStyle:u,padding:t.padding},f=TT(Lw(o,u)).map(e=>Hw(e,d)),p=s.map(e=>Hw(Lw([e],a.band),{...d,baseStyle:a.band})),m=[...f,...p];return t.perSegmentSink!==void 0&&t.perSegmentSink.set(e.name,m.flat()),[...m,...l]}catch(n){let r=n.message??String(n);return t.onSegmentError?.(e.name,r),[[new jr(`⚠ ${e.name}: ${r}`)]]}}}};function OT(e){return DT[e]}function kT(e){if(`ttl`in e)return{kind:`ttl`,durationMs:gw(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 AT(e,t){switch(Pi(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 jT(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:kT(n.cache),parse:AT(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cache:kT(n.cache),parse:AT(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?gw(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 MT(e,t){let n=dc.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}function NT(e,t,n){let r=n?.cwd??process.cwd(),i={store:t.variableStore,compiled:new Map,stripStyle:`powerline`,padding:1},a=lT(),o={action:i,activeSegment:a},s=Object.keys(e.looks),c=rm(e.presets),l=new Map([...Mg(e),...bh(e)]),u=sw({...oT(i),..._T(i,a),...CT(o),...wT(a),looks:{fn:()=>s,argTypes:[]},presets:{fn:()=>c,argTypes:[]}},n?.clock),d=MT(u,e.helpers),f=e=>u.parse(e,d),p=new Map;for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&!p.has(n.key)&&p.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`&&!p.has(r.key)&&p.set(r.key,`${t}.${e}`);i.compiled=Jw(f,e.actions,p,l);let m=[];for(let[n,i]of Object.entries(e.variables))try{jT(t,n,i,r)}catch(e){m.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{jT(t,`${n}.${e}`,a,r)}catch(t){m.push(`Variable "${n}.${e}": ${t.message??String(t)}`)}let h=Object.create(null);for(let[t,n]of Object.entries(e.segments)){let e=(e,n)=>{try{return f(e)}catch(e){throw Error(`Template parse error in segments.${t}.${n}: ${e.message}`,{cause:e})}};h[t]={when:n.when===void 0?void 0:e(n.when,`when`),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:Fw(n.palette)}}let g=(e,t,n)=>{try{return f(e)}catch(e){throw Error(`Template parse error in ${t}.${n}: ${e.message}`,{cause:e})}},_=(e,t)=>{let n={path:t,when:e.when===void 0?void 0:g(e.when,t,`when`),parse:(e,n)=>g(e,t,n),compileChild:_};return OT(e.kind).compile(e,n)},v=new Map;for(let t of c){let{node:n,path:r}=om(e,t);v.set(t,_(n,r))}return{segments:h,roots:v,activeSegment:a,menuRuntime:o,loadWarnings:m}}function PT(e,t,n,r,i,a,o,s,c){let{perSegmentSink:l,onSegmentError:u}=s??{},{look:d=gn,preset:f=tm}=c??{};r.applyInput({...i,term:{cols:o.width}}),t.menuRuntime.action.stripStyle=o.style,t.menuRuntime.action.padding=o.padding;let p=cw(n),m=Iw(a,d);l?.clear();let h=n=>{let r=e.segments[n],i=t.segments[n];return r!==void 0&&i!==void 0?{seg:r,compiled:i}:void 0},g=(e,n,r,i,a)=>{let{tint:o,text:s,disclosure:c}=ts(n,r),l=Ww(t.activeSegment,e,n,c,o,s,i,a,p),u=Jo(n,c);return{closed:l,trigger:sT(n,u.state),band:sT(n,u.plane),disclosure:c}},_=e=>(t.activeSegment.current=null,yT(e)),v=(e,t,n)=>{let r=t&&Bw(e.when,p),i={scope:p,palette:m,visible:r,padding:o.padding,region:n,perSegmentSink:l,onSegmentError:u,enterSegment:g,exitSegment:_,lookupSegment:h,renderChild:(e,t,r)=>v(e,t,Qo(n,r)),renderBody:(e,t,n)=>v(e,r&&t,$o(n))};return OT(e.kind).render(e,i)},y=t.roots.get(f);if(y===void 0)throw Error(`Preset "${f}" has no compiled layout — registerDslConfig compiles one per declared preset and effectivePresetName collapses unknown names to "${tm}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);return v(y,!0,Zo).map(e=>ob(e,o)).join(`
164
- `)}var FT=class{kind=`box`;cell;lastSetAt;constructor(e,t,n){this.name=e,this.type=t,zT(e,t,n,`initial value`),this.cell=_C.observable.box(n,{deep:!1}),this.lastSetAt=Date.now()}read(){return this.cell.get()}set(e){zT(this.name,this.type,e,`set value`),this.cell.set(e),this.lastSetAt=Date.now()}lastUpdatedMs(){return this.lastSetAt}},IT=class{kind=`computed`;cell;constructor(e,t,n){this.name=e,this.type=t,this.cell=(0,_C.computed)(()=>{let e=n();return zT(this.name,this.type,e,`computed result`),e},{keepAlive:!0})}read(){return this.cell.get()}lastUpdatedMs(){return null}},LT=class{kind=`document`;cell;lastSetAt;constructor(e,t){this.name=e,this.cell=_C.observable.box(RT(t),{deep:!1}),this.lastSetAt=Date.now()}read(){return this.cell.get()}set(e){this.cell.set(RT(e)),this.lastSetAt=Date.now()}lastUpdatedMs(){return this.lastSetAt}};function RT(e){return e.kind===`ok`?{kind:`ok`,value:vC(e.value)}:e}function zT(e,t,n,r){let i=yC(n);if(i!==t)throw TypeError(`Variable "${e}": ${r} type ${i} does not match declared type ${t}`)}var BT=class{nodes=new Map;defineBox(e,t,n){this.assertNotDefined(e),this.nodes.set(e,new FT(e,t,n))}defineDocument(e,t){this.assertNotDefined(e),this.nodes.set(e,new LT(e,t))}defineComputed(e,t,n){this.assertNotDefined(e);let r=e=>this.read(e);this.nodes.set(e,new IT(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,_C.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,_C.runInAction)(()=>n.set(t))}runInAction(e){(0,_C.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);return t.kind===`document`?JSON.stringify(t.read()):String(t.read())}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 VT(e,t,n){return e+`\0`+t+`\0`+(n??``)}function HT(e,t){return new Set(rm(e.presets).filter(n=>om(e,n).path===`root`?t.root!==void 0:t.presets?.[n]?.root!==void 0))}function UT(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 WT(e,t){let n=new Map;for(let t of u_(e.projectDir,e.cwd,e.configFile)){let{dir:e,name:r}=UT(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 GT(e){return e.filter(Boolean).join(`
165
- `)||null}var KT=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=VT(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=f_(e,t,n),i=r.kind===`file`?r.path:null,a=[g_(e,t),m_(r)],o;try{o=this.buildState(t,i)}catch(e){return{resolvedPath:i,warning:GT(a),state:null,error:e instanceof Di||e instanceof Error?e.message:String(e)}}return{resolvedPath:i,warning:GT([...a,...o.compiled.loadWarnings]),state:o,error:null}}buildState(e,t){let{config:n,raw:r,source:i}=__(t,mC),a=v_(n,t??`<default>`,i),o=new BT,s=new Mw(o,a.globals.default_empty_value??``,this.deps.gitService,this.deps.sessionState),c,l=[];try{c=NT(a,s,{cwd:e});for(let{key:e,spec:t}of fx(a))l.push(ax(e,t));for(let{key:e,spec:t}of Jb(a))l.push(Yb(e,t))}catch(e){for(let e of l)e();throw s.dispose(),e}return{config:a,store:o,registry:s,compiled:c,neededInputPaths:ZS(a),lastRenderCellsBySegment:new Map,validatorDisposers:l,authoredRoots:HT(n,r)}}refreshWatcher(e,t){e.configFilePath=t;let n=WT(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 qT=16384;var JT=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<qT){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%qT}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:Uv,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 YT={load:()=>({}),save:()=>{},flush:()=>{}};function XT(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,new Map(Object.entries(r)));return t}var ZT=class{sessions;storage;atom=(0,_C.createAtom)(`SessionState`);constructor(e=YT,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=XT(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,_C.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,_C.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,_C.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 QT=(e,t)=>E(t);function $T(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 eE=class{timer=null;pending=null;constructor(e,t=500,n=QT){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 $T(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}`)}}},tE=class extends Error{constructor(e,t){super(`${e} (at offset ${t})`),this.offset=t,this.name=`Json5EditError`}};const nE=/[A-Za-z_$\p{L}]/u,rE=/[A-Za-z0-9_$\u200C\u200D\p{L}\p{N}]/u,iE=/[A-Za-z0-9_$.+\-\p{L}\p{N}]/u,aE=/[\t\n\v\f\r \u00A0\uFEFF\u2028\u2029\p{Zs}]/u;var oE=class{pos=0;constructor(e){this.text=e}peek(){return this.text[this.pos]??``}fail(e){throw new tE(e,this.pos)}skipTrivia(){for(;;){let e=this.peek();if(e===``)return;if(aE.test(e))this.pos++;else if(e===`/`&&this.text[this.pos+1]===`/`){let e=this.text.indexOf(`
166
- `,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&&iE.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 Ze.default.parse(this.text.slice(e.start,e.end))}catch(t){throw new tE(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
163
+ `);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function PT(e,t){switch(e){case`vertical`:return t.flatMap(e=>e);case`horizontal`:return t.reduce((e,t)=>Math.max(e,t.length),0)===0?[]:[t.flatMap(e=>e[0]??[]),...t.flatMap(e=>e.slice(1))]}}const FT={container:{compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:Ko(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,`${t.path}.children[${n}]`))}},render(e,t){return PT(e.direction,e.children.map((n,r)=>t.renderChild(n,t.visible,{index:r,count:e.children.length,distribution:e.distribution})))}},segment:{compile(e,t){return{kind:`segment`,when:t.when,name:e.name,...e.opens!==void 0&&{opens:{open:t.parse(ys(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,`${t.path}.opens.body`)}}}},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(!Jw(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&&Jw(e.opens.open,t.scope),l=e.opens===void 0?[]:t.renderBody(e.opens.body,c,a.disclosure),u=s.length>0||c?a.trigger:a.closed,d={width:r.width??`auto`,justify:r.justify??`left`,truncate:r.truncate??`right`,baseStyle:u,padding:t.padding},f=NT(Gw(o,u)).map(e=>Xw(e,d)),p=s.map(e=>Xw(Gw([e],a.band),{...d,baseStyle:a.band})),m=[...f,...p];return t.perSegmentSink!==void 0&&t.perSegmentSink.set(e.name,m.flat()),[...m,...l]}catch(n){let r=n.message??String(n);return t.onSegmentError?.(e.name,r),[[new jr(`⚠ ${e.name}: ${r}`)]]}}}};function IT(e){return FT[e]}function LT(e){if(`ttl`in e)return{kind:`ttl`,durationMs:ww(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 RT(e,t){switch(Pi(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 zT(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:LT(n.cache),parse:RT(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cache:LT(n.cache),parse:RT(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?ww(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 BT(e,t){let n=xc.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}function VT(e,t,n){let r=n?.cwd??process.cwd(),i={store:t.variableStore,compiled:new Map,stripStyle:`powerline`,padding:1},a=_T(),o={action:i,activeSegment:a},s=Object.keys(e.looks),c=dm(e.presets),l=new Map([...zg(e),...Mm(e)]),u=hw({...mT(i),...TT(i,a),...jT(o),...MT(a),looks:{fn:()=>s,argTypes:[]},presets:{fn:()=>c,argTypes:[]}},n?.clock),d=BT(u,e.helpers),f=e=>u.parse(e,d),p=new Map;for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&!p.has(n.key)&&p.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`&&!p.has(r.key)&&p.set(r.key,`${t}.${e}`);i.compiled=nT(f,e.actions,p,l);let m=[];for(let[n,i]of Object.entries(e.variables))try{zT(t,n,i,r)}catch(e){m.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{zT(t,`${n}.${e}`,a,r)}catch(t){m.push(`Variable "${n}.${e}": ${t.message??String(t)}`)}let h=Object.create(null);for(let[t,n]of Object.entries(e.segments)){let e=(e,n)=>{try{return f(e)}catch(e){throw Error(`Template parse error in segments.${t}.${n}: ${e.message}`,{cause:e})}};h[t]={when:n.when===void 0?void 0:e(n.when,`when`),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:Uw(n.palette)}}let g=(e,t,n)=>{try{return f(e)}catch(e){throw Error(`Template parse error in ${t}.${n}: ${e.message}`,{cause:e})}},_=(e,t)=>{let n={path:t,when:e.when===void 0?void 0:g(e.when,t,`when`),parse:(e,n)=>g(e,t,n),compileChild:_};return IT(e.kind).compile(e,n)},v=new Map;for(let t of c){let{node:n,path:r}=mm(e,t);v.set(t,_(n,r))}return{segments:h,roots:v,activeSegment:a,menuRuntime:o,loadWarnings:m}}function HT(e,t,n,r,i,a,o,s,c){let{perSegmentSink:l,onSegmentError:u}=s??{},{look:d=gn,preset:f=lm}=c??{};r.applyInput({...i,term:{cols:o.width}}),t.menuRuntime.action.stripStyle=o.style,t.menuRuntime.action.padding=o.padding;let p=gw(n),m=Ww(a,d);l?.clear();let h=n=>{let r=e.segments[n],i=t.segments[n];return r!==void 0&&i!==void 0?{seg:r,compiled:i}:void 0},g=(e,n,r,i,a)=>{let{tint:o,text:s,disclosure:c}=ps(n,r),l=Qw(t.activeSegment,e,n,c,o,s,i,a,p),u=os(n,c);return{closed:l,trigger:hT(n,u.state),band:hT(n,u.plane),disclosure:c}},_=e=>(t.activeSegment.current=null,DT(e)),v=(e,t,n)=>{let r=t&&Jw(e.when,p),i={scope:p,palette:m,visible:r,padding:o.padding,region:n,perSegmentSink:l,onSegmentError:u,enterSegment:g,exitSegment:_,lookupSegment:h,renderChild:(e,t,r)=>v(e,t,us(n,r)),renderBody:(e,t,n)=>v(e,r&&t,ds(n))};return IT(e.kind).render(e,i)},y=t.roots.get(f);if(y===void 0)throw Error(`Preset "${f}" has no compiled layout — registerDslConfig compiles one per declared preset and effectivePresetName collapses unknown names to "${lm}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);return v(y,!0,ls).map(e=>mb(e,o)).join(`
164
+ `)}var UT=class{kind=`box`;cell;lastSetAt;constructor(e,t,n){this.name=e,this.type=t,qT(e,t,n,`initial value`),this.cell=TC.observable.box(n,{deep:!1}),this.lastSetAt=Date.now()}read(){return this.cell.get()}set(e){qT(this.name,this.type,e,`set value`),this.cell.set(e),this.lastSetAt=Date.now()}lastUpdatedMs(){return this.lastSetAt}},WT=class{kind=`computed`;cell;constructor(e,t,n){this.name=e,this.type=t,this.cell=(0,TC.computed)(()=>{let e=n();return qT(this.name,this.type,e,`computed result`),e},{keepAlive:!0})}read(){return this.cell.get()}lastUpdatedMs(){return null}},GT=class{kind=`document`;cell;lastSetAt;constructor(e,t){this.name=e,this.cell=TC.observable.box(KT(t),{deep:!1}),this.lastSetAt=Date.now()}read(){return this.cell.get()}set(e){this.cell.set(KT(e)),this.lastSetAt=Date.now()}lastUpdatedMs(){return this.lastSetAt}};function KT(e){return e.kind===`ok`?{kind:`ok`,value:EC(e.value)}:e}function qT(e,t,n,r){let i=DC(n);if(i!==t)throw TypeError(`Variable "${e}": ${r} type ${i} does not match declared type ${t}`)}var JT=class{nodes=new Map;defineBox(e,t,n){this.assertNotDefined(e),this.nodes.set(e,new UT(e,t,n))}defineDocument(e,t){this.assertNotDefined(e),this.nodes.set(e,new GT(e,t))}defineComputed(e,t,n){this.assertNotDefined(e);let r=e=>this.read(e);this.nodes.set(e,new WT(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,TC.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,TC.runInAction)(()=>n.set(t))}runInAction(e){(0,TC.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);return t.kind===`document`?JSON.stringify(t.read()):String(t.read())}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 YT(e,t,n){return e+`\0`+t+`\0`+(n??``)}function XT(e,t){return new Set(dm(e.presets).filter(n=>mm(e,n).path===`root`?t.root!==void 0:t.presets?.[n]?.root!==void 0))}function ZT(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 QT(e,t){let n=new Map;for(let t of __(e.projectDir,e.cwd,e.configFile)){let{dir:e,name:r}=ZT(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 $T(e){return e.filter(Boolean).join(`
165
+ `)||null}var eE=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=YT(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=y_(e,t,n),i=r.kind===`file`?r.path:null,a=[C_(e,t),x_(r)],o;try{o=this.buildState(t,i)}catch(e){return{resolvedPath:i,warning:$T(a),state:null,error:e instanceof Di||e instanceof Error?e.message:String(e)}}return{resolvedPath:i,warning:$T([...a,...o.compiled.loadWarnings]),state:o,error:null}}buildState(e,t){let{config:n,raw:r,source:i}=w_(t,SC),a=T_(n,t??`<default>`,i),o=new JT,s=new Bw(o,a.globals.default_empty_value??``,this.deps.gitService,this.deps.sessionState),c,l=[];try{c=VT(a,s,{cwd:e});for(let{key:e,spec:t}of bx(a))l.push(px(e,t));for(let{key:e,spec:t}of nx(a))l.push(rx(e,t))}catch(e){for(let e of l)e();throw s.dispose(),e}return{config:a,store:o,registry:s,compiled:c,neededInputPaths:aC(a),lastRenderCellsBySegment:new Map,validatorDisposers:l,authoredRoots:XT(n,r)}}refreshWatcher(e,t){e.configFilePath=t;let n=QT(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 tE=16384;var nE=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<tE){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%tE}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:Zv,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 rE={load:()=>({}),save:()=>{},flush:()=>{}};function iE(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,new Map(Object.entries(r)));return t}var aE=class{sessions;storage;atom=(0,TC.createAtom)(`SessionState`);constructor(e=rE,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=iE(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,TC.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,TC.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,TC.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 oE=(e,t)=>E(t);function sE(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 cE=class{timer=null;pending=null;constructor(e,t=500,n=oE){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 sE(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}`)}}},lE=class extends Error{constructor(e,t){super(`${e} (at offset ${t})`),this.offset=t,this.name=`Json5EditError`}};const uE=/[A-Za-z_$\p{L}]/u,dE=/[A-Za-z0-9_$\u200C\u200D\p{L}\p{N}]/u,fE=/[A-Za-z0-9_$.+\-\p{L}\p{N}]/u,pE=/[\t\n\v\f\r \u00A0\uFEFF\u2028\u2029\p{Zs}]/u;var mE=class{pos=0;constructor(e){this.text=e}peek(){return this.text[this.pos]??``}fail(e){throw new lE(e,this.pos)}skipTrivia(){for(;;){let e=this.peek();if(e===``)return;if(pE.test(e))this.pos++;else if(e===`/`&&this.text[this.pos+1]===`/`){let e=this.text.indexOf(`
166
+ `,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&&fE.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 Ze.default.parse(this.text.slice(e.start,e.end))}catch(t){throw new lE(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
167
167
  `,this.pos+1);this.pos+=e?3:2;continue}if(this.pos++,n===t)return{start:e,end:this.pos};n===`
168
- `&&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(nE.test(e)||this.fail(`expected an object key`);this.pos<this.text.length&&rE.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 tE(`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 sE(e){let t=new oE(e),n=t.value();return t.skipTrivia(),t.pos!==e.length&&t.fail(`trailing content after the document`),n}function cE(e,t){return e.kind===`object`?e.entries.find(e=>e.key===t):void 0}function lE(e,t){let n=e;for(let e of t)n=n===void 0?void 0:cE(n,e)?.value;return n}function uE(e,t){return e.slice(t.span.start,t.span.end)}const dE=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function fE(e){return dE.test(e)?e:JSON.stringify(e)}const pE={key:fE,trailingComma:`,`,parse:e=>Ze.default.parse(e)},mE={key:e=>JSON.stringify(e),trailingComma:``,parse:e=>JSON.parse(e)};function hE(e){if(Array.isArray(e))return e.length===0?`[]`:`[\n${e.map(e=>` ${_E(hE(e),` `,`
168
+ `&&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(uE.test(e)||this.fail(`expected an object key`);this.pos<this.text.length&&dE.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 lE(`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 hE(e){let t=new mE(e),n=t.value();return t.skipTrivia(),t.pos!==e.length&&t.fail(`trailing content after the document`),n}function gE(e,t){return e.kind===`object`?e.entries.find(e=>e.key===t):void 0}function _E(e,t){let n=e;for(let e of t)n=n===void 0?void 0:gE(n,e)?.value;return n}function vE(e,t){return e.slice(t.span.start,t.span.end)}const yE=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function bE(e){return yE.test(e)?e:JSON.stringify(e)}const xE={key:bE,trailingComma:`,`,parse:e=>Ze.default.parse(e)},SE={key:e=>JSON.stringify(e),trailingComma:``,parse:e=>JSON.parse(e)};function CE(e){if(Array.isArray(e))return e.length===0?`[]`:`[\n${e.map(e=>` ${TE(CE(e),` `,`
169
169
  `)},`).join(`
170
- `)}\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])=>` ${fE(e)}: ${_E(hE(t),` `,`
170
+ `)}\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])=>` ${bE(e)}: ${TE(CE(t),` `,`
171
171
  `)},`).join(`
172
- `)}\n}`}return JSON.stringify(e)}function gE(e){return e.includes(`\r
172
+ `)}\n}`}return JSON.stringify(e)}function wE(e){return e.includes(`\r
173
173
  `)?`\r
174
174
  `:`
175
- `}function _E(e,t,n){return e.split(`
176
- `).join(`${n}${t}`)}function vE(e,t,n){let[r,...i]=e,a=i.length===0?t:`{\n ${_E(vE(i,t,n),` `,`
177
- `)}${n.trailingComma}\n}`;return`${n.key(r)}: ${a}`}function yE(e,t,n,r){return e.slice(0,t)+r+e.slice(n)}function bE(e,t){return e.lastIndexOf(`
178
- `,t-1)+1}function xE(e){return/^[ \t]*$/.test(e)}function SE(e,t){let n=bE(e,t);return/^[ \t]*/.exec(e.slice(n))[0]}function CE(e,t){return xE(e.slice(bE(e,t),t))}const wE=/(?:\/\/[^\n]*?)?(\r\n|\n|$)/y;function TE(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++;wE.lastIndex=n;let i=wE.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 EE(e,t){let{commaEnd:n,line:r}=TE(e,t.end);if(CE(e,t.start)&&r!==null)return yE(e,bE(e,t.start),r.next,``);if(n!==-1){let r=n;for(;r<e.length&&e[r]===` `;)r++;return yE(e,t.start,r,``)}let i=t.start;for(;i>0&&(e[i-1]===` `||e[i-1]===` `);)i--;return e[i-1]===`,`?yE(e,i-1,t.end,``):yE(e,t.start,t.end,``)}function DE(e,t,n,r,i){let a=n.commaEnd!==-1,o=a?e:yE(e,t.end,t.end,`,`),s=n.line.at+ +!a,c=gE(e);return yE(o,s,s,`${c}${i}${_E(r,i,c)}${a?`,`:``}`)}function OE(e,t,n,r){let i=t.kind===`object`?t.entries:t.elements,a=i[i.length-1],o=SE(e,t.span.start);if(a===void 0){let i=o+` `,a=gE(e);return yE(e,t.span.start+1,t.span.end-1,`${a}${i}${_E(n,i,a)}${r.trailingComma}${a}${o}`)}let{commaEnd:s,line:c}=TE(e,a.span.end);if(CE(e,a.span.start)&&c!==null){let t=e.slice(bE(e,a.span.start),a.span.start);return DE(e,a.span,{commaEnd:s,line:c},n,t)}let l=s===-1?a.span.end:s;return yE(e,l,l,`${s===-1?`, `:` `}${n}${s===-1?``:`,`}`)}function kE(e,t,n,r){if(t.length===0)throw new tE(`setValue needs a non-empty path`,0);if(/^\s*$/.test(e)){let i=gE(e);return`{${i} ${_E(vE(t,n,r),` `,i)}${r.trailingComma}${i}}${i}`}let i=sE(e);for(let a=0;a<t.length;a++){if(i.kind!==`object`)throw new tE(`cannot set ${t.join(`.`)}: ${t.slice(0,a).join(`.`)||`the document`} is not an object`,i.span.start);let o=cE(i,t[a]);if(o===void 0)return OE(e,i,vE(t.slice(a),n,r),r);if(a===t.length-1){let t=SE(e,o.keySpan.start);return yE(e,o.value.span.start,o.value.span.end,_E(n,t,gE(e)))}i=o.value}throw new tE(`unreachable: path exhausted`,0)}function AE(e,t){if(t.length===0)throw new tE(`deleteValue needs a non-empty path`,0);if(/^\s*$/.test(e))return e;let n=lE(sE(e),t.slice(0,-1)),r=n===void 0?void 0:cE(n,t[t.length-1]);return r===void 0?e:EE(e,r.span)}const jE=[`h`,`v`,`children`];function ME(e){if(e.kind===`string`)return e.value;if(e.kind!==`object`)return;let t=cE(e,`seg`)?.value;if(t?.kind===`string`)return t.value;let n=cE(e,`kind`)?.value,r=cE(e,`name`)?.value;return n?.kind===`string`&&n.value===`segment`&&r?.kind===`string`?r.value:void 0}function NE(e){return e.kind===`object`?jE.map(t=>cE(e,t)?.value).filter(e=>e?.kind===`array`):[]}function PE(e){let t=cE(e,`rows`)?.value;return t?.kind===`object`?t.entries:null}function FE(e){if(e.kind!==`object`)return!0;let t=PE(e);return t===null||t.length>0||e.entries.some(e=>e.key!==`rows`)}function*IE(e,t){yield{node:e,bareAt:t};for(let t of NE(e))for(let e of t.elements)yield*IE(e,null);for(let n of PE(e)??[])yield*IE(n.value,t===null?null:[...t,`rows`,n.key])}function LE(e,t){for(let{node:n}of IE(e,null))if(ME(n)===t)return!0;return!1}function RE(e,t,n){let r=lE(sE(e),t);if(r===void 0)return null;for(let{node:i,bareAt:a}of IE(r,t))if(ME(i)===n)return a===null?{text:e,ref:i}:RE(kE(e,a,`{ h: [${uE(e,i)}] }`,pE),t,n);return null}function zE(e,t,n){let r=RE(e,t,n);return r===null?null:EE(r.text,r.ref.span)}function BE(e,t,n,r,i){let a=RE(e,t,r);if(a===null)return null;let{text:o,ref:s}=a,c=JSON.stringify(n),{commaEnd:l,line:u}=TE(o,s.span.end);if(CE(o,s.span.start)&&u!==null){let e=o.slice(bE(o,s.span.start),s.span.start);return i===`after`?DE(o,s.span,{commaEnd:l,line:u},c,e):yE(o,s.span.start,s.span.start,`${c},${gE(o)}${e}`)}let d=uE(o,s),f=i===`before`?`${c}, ${d}`:`${d}, ${c}`;return yE(o,s.span.start,s.span.end,f)}const VE={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`},HE=new Set([`1`,`true`]),UE=new Set([`0`,`false`,``]);function WE(e,t){let n=gD(e),r=n.scope===`globals`?VE[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(HE.has(t))return`true`;if(UE.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function GE(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function KE(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(c.dirname(e),{recursive:!0}),Ae(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function qE(e){return/^\s*$/.test(e)?null:sE(e)}function JE(e,t){return e!==null&&lE(e,t)!==void 0}function YE(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(YE),...i}}return e}function XE(e){if(!ga(e))return YE(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,YE(t)])),...n}}function ZE(e){return{...e.root!==void 0&&{root:XE(e.root)},...e.globals!==void 0&&{globals:e.globals}}}const QE=fC,$E=QE.segments,eD=QE.presets,tD=QE.root;function nD(e,t,n,r){if(JE(e,t))return{source:`file`};if(n===void 0)throw new $(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`);return{source:`bundled`,decl:n}}function rD(e,t,n){return e.source===`file`?null:{path:t,value:n(e.decl)}}function iD(e,t){if(t.scope===`globals`)return{path:fm(t),unit:null};let n=fm(t),r=[`segments`,t.segment];return{path:n,unit:rD(nD(e,r,$E[t.segment],n.join(`.`)),r,e=>e)}}function aD(e){return sE(hE(e))}function oD(){return Object.entries(tD.rows).map(([e,t])=>{let n=YE(t);return{path:[`root`],fragment:aD({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function sD(e,t){let n=e===null?void 0:lE(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function cD(e,t){let n=[`presets`,t],r=[...n,`root`],i=nD(e,n,eD[t],r.join(`.`)),a=i.source===`file`?void 0:i.decl.root,o=i.source===`file`?sD(e,r):a===void 0?null:{path:r,fragment:aD(XE(a)),unit:{path:n,value:ZE(i.decl)}};return o!==null&&FE(o.fragment)?o:null}function lD(e,t){let n=PE(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 uD(e,t){return[...oD(),sD(e,[`root`]),cD(e,t)].filter(e=>e!==null).reduce(lD,new Map)}function dD(e,t,n){for(let{node:r,...i}of uD(e,t).values())if(LE(r,n))return i;throw new $(`${fD(e,t).join(`.`)} holds no segment "${n}" — the bar you clicked is stale; it reloads on the next render`)}function fD(e,t){return cD(e,t)?.path??[`root`]}function pD(e,t){return t.scope===`preset-root`?fD(e,t.preset):fm(t)}function mD(e,{unit:t}){return t===null?e:kE(e,t.path,hE(t.value),pE)}function hD(e){let t=dm(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function gD(e){let t=hD(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function _D(e,t){let n=gD(t),r=qE(GE(e)??``),i=r===null?void 0:lE(r,fm(n));return i!==void 0&&`value`in i?i.value:void 0}function vD(e,t,n,r){let i=gD(n),a=GE(t),o=iD(qE(a??``),i);OD(e,t,{before:a,after:kE(mD(a??``,o),o.path,WE(n,r),pE)})}function yD(e,t,n){let r=hD(n),i=GE(t);if(i===null)return;let a=AE(i,pD(qE(i),r));a!==i&&OD(e,t,{before:i,after:a})}function bD(e,t,n,r){let i=hD(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=GE(t),o=r.op===`remove`?r.target:r.anchor,s=dD(qE(a??``),i.preset,o),c=mD(a??``,s),l=r.op===`remove`?zE(c,s.path,r.target):BE(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`);OD(e,t,{before:a,after:l})}const xD={past:[],future:[]};function SD(e){if(typeof e!=`object`||!e)return!1;let t=e;return(t.before===null||typeof t.before==`string`)&&typeof t.after==`string`}function CD(e){if(typeof e!=`object`||!e)return!1;let t=e;return Array.isArray(t.past)&&t.past.every(SD)&&Array.isArray(t.future)&&t.future.every(SD)}function wD(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(CD))return e}catch{}return e.logger(`warn`,`config-edit-history load: unexpected shape, starting empty`),{}}function TD(e,t){try{r.mkdirSync(c.dirname(e.historyPath),{recursive:!0}),Ae(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 ED(e,t){let n=[...e,t];return n.length>50?n.slice(-50):n}function DD(e,t,n,r,i){KE(t,n,e.logger);try{TD(e,r)}catch(e){throw Error(`${i} landed in ${t} but recording it failed — it is not undoable: ${e.message}`)}}function OD(e,t,n){let r=wD(e),{past:i}=r[t]??xD;DD(e,t,n.after,{...r,[t]:{past:ED(i,n),future:[]}},`edit`)}function kD(e,t){let n=wD(e),{past:r,future:i}=n[t]??xD,a=r[r.length-1];return a===void 0?null:(jD(t,a.after,`undo`),DD(e,t,a.before,{...n,[t]:{past:r.slice(0,-1),future:ED(i,a)}},`undo`),a)}function AD(e,t){let n=wD(e),{past:r,future:i}=n[t]??xD,a=i[i.length-1];return a===void 0?null:(jD(t,a.before,`redo`),DD(e,t,a.after,{...n,[t]:{past:ED(r,a),future:i.slice(0,-1)}},`redo`),a)}function jD(e,t,n){if(GE(e)!==t)throw new $(`${n}: ${e} has changed since that edit — refusing to overwrite it`)}function MD(e){let t=De({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 ND(){return{probeTmux:MD,claudeSettingsPath:Wv()}}function PD(e){return r.existsSync(e.claudeSettingsPath)?r.readFileSync(e.claudeSettingsPath,`utf8`):``}function FD(e){if(/^\s*$/.test(e))return{};let t=mE.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 ID(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,termfeatures:e.probeTmux(t)}}function LD(e){try{return FD(PD(e))}catch(t){throw Error(`cannot read ${e.claudeSettingsPath}: ${t instanceof Error?t.message:String(t)}`,{cause:t})}}function RD(e,t){return{tmux:ID(e,t),claudeSettingsEnv:LD(e)}}function zD(e,t,n){switch(t.kind){case`claude-settings-env`:{let i=kE(PD(e),[`env`,t.name],JSON.stringify(t.value),mE);return r.mkdirSync(c.dirname(e.claudeSettingsPath),{recursive:!0}),Ae(e.claudeSettingsPath,i),{...n,claudeSettingsEnv:LD(e)}}default:return t.kind}}function BD(e){if(!e)throw new $(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new $(`invalid session id "${e}"`);return e}function VD(e){return HD(()=>decodeURIComponent(e))}function HD(e){try{return e()}catch(e){throw e instanceof URIError?new $(`malformed wire encoding: ${e.message}`):e}}function UD(e,t){let n=De({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 WD=(e,t)=>UD(VD(e),t),GD=(e,t)=>{let n=De({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,VD(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`})`)}},KD=(e,t)=>UD(VD(e),t),qD=(e,t)=>UD(VD(e),t),JD=(e,t)=>{let n=BD(VD(e));t.sessionState.get(n,`toolbar-expanded`)?t.sessionState.clear(n,`toolbar-expanded`):t.sessionState.set(n,`toolbar-expanded`,`1`)},YD=(e,t)=>{let[n=``,...r]=HD(()=>zv(e)),i=BD(n);if(r.length===0)throw new $(`set-state: <key>/<value> is required (have keys: ${ix().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: ${ix().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=ox(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})`)},XD=/^-?\d+$/;function ZD(e,t,n){return e>n?t:e<t?n:e}function QD(e,t){if(!e)return null;if(!ix().includes(e))throw new $(`${t}: unknown session key "${e}" to release (have: ${ix().join(`, `)})`);return e}function $D(e,t,n,r){e!==null&&(n.sessionState.clear(t,e),n.dlog(`info`,`${r}: released session key ${e} (session=${t})`))}const eO=(e,t)=>{let[n=``,r=``,i=``]=HD(()=>zv(e)),a=BD(n);if(!r)throw new $(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!XD.test(i))throw new $(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=sx(r);if(!s)throw new $(`step-state: key "${r}" is not a bounded (range) state key (have keys: ${ix().join(`, `)})`);let c=t.sessionState.get(a,r),l=c&&XD.test(c)?Math.max(s.min,Math.min(s.max,parseInt(c,10))):s.seed,u=ZD(l+o,s.min,s.max),d=ox(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})`)},tO=`render-origin`;function nO(e){return JSON.stringify(e)}function rO(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 iO(e,t){let n=e.sessionState.get(t,tO);if(n===null)throw new $(`session ${t} has not rendered yet — no config file to write`);let r=rO(n);return p_(r.projectDir,r.cwd,r.configFile??void 0)}function aO(e){return{historyPath:Be(),logger:e.dlog}}const oO=(e,t)=>{let[n=``,r=``,i=``,a=``]=HD(()=>zv(e)),o=BD(n);if(!r)throw new $(`set-config: <key>/<value> is required (have keys: ${Bb().join(`, `)})`);let s=Vb(r,i);if(!s.ok)throw new $(`set-config: ${s.reason}`);let c=QD(a,`set-config`),l=iO(t,o);vD(aO(t),l,r,s.value),t.dlog(`info`,`set-config: ${r}=${s.value} → ${l} (session=${o})`),$D(c,o,t,`set-config`)},sO=(e,t)=>{let[n=``,r=``,i=``,a=``]=HD(()=>zv(e)),o=BD(n);if(!r)throw new $(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!XD.test(i))throw new $(`step-config: delta must be an integer, got "${i}"`);let s=parseInt(i,10),c=QD(a,`step-config`),l=Hb(r);if(!l)throw new $(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${Bb().join(`, `)})`);let u=iO(t,o),d=_D(u,r),f=typeof d==`number`?Math.max(l.min,Math.min(l.max,d)):l.seed,p=ZD(f+s,l.min,l.max),m=Vb(r,String(p));if(!m.ok)throw new $(`step-config: ${m.reason}`);vD(aO(t),u,r,m.value),t.dlog(`info`,`step-config: ${r} ${f}→${m.value} (by ${s}) → ${u} (session=${o})`),$D(c,o,t,`step-config`)},cO=(e,t)=>{let[n=``,r=``]=HD(()=>zv(e)),i=BD(n);if(!r||!Bb().includes(r))throw new $(`reset-config: unknown config key "${r}" (have: ${Bb().join(`, `)})`);let a=iO(t,i);yD(aO(t),a,r),t.dlog(`info`,`reset-config: ${r} ← ${a} (session=${i})`)},lO=(e,t)=>{let[n=``,r=``,i=``]=HD(()=>zv(e)),a=BD(n);if(!r)throw new $(`apply-layout-op: <key>/<op> is required (have: ${Bb().join(`, `)})`);let o=Vb(r,i);if(!o.ok)throw new $(`apply-layout-op: ${o.reason}`);let s=$p(o.value);if(s===null)throw new $(`apply-layout-op: "${o.value}" is not a layout op token`);let c=iO(t,a);bD(aO(t),c,r,s),t.dlog(`info`,`apply-layout-op: ${r} ${o.value} → ${c} (session=${a})`)},uO=(e,t)=>{let[n=``]=HD(()=>zv(e)),r=BD(n),i=iO(t,r);if(kD(aO(t),i)===null)throw new $(`undo: history is empty, nothing to undo`);t.dlog(`info`,`undo: ${i} (session=${r})`)},dO=(e,t)=>{let[n=``]=HD(()=>zv(e)),r=BD(n),i=iO(t,r);if(AD(aO(t),i)===null)throw new $(`redo: nothing to redo`);t.dlog(`info`,`redo: ${i} (session=${r})`)},fO=(e,t)=>{BD(VD(e)),t.applyUpdate()},pO=`client-hints`;function mO(e,t){let n=e.sessionState.get(t,pO);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 C_(r)}function hO(e,t,n){let r=wm(n);e.sessionState.setBatch(t,Dm(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed`}`).join(` `)} (session=${t})`)}const gO=(e,t)=>{let n=BD(VD(e));hO(t,n,RD(t.doctor,mO(t,n).tmux))},_O=(e,t)=>{let[n=``,r=``]=HD(()=>zv(e)),i=BD(n),a=Tm(r);if(a===void 0)throw new $(`doctor-fix: unknown check "${r}"`);let o=RD(t.doctor,mO(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=zD(t.doctor,s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.name}=${s.fix.value} (session=${i})`),hO(t,i,c)},vO=`config-override`,yO=new Map([[wv,WD],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new $(`load-config: expected <sessionId>/<path> (missing separator)`);let r=BD(HD(()=>decodeURIComponent(e.slice(0,n)))),i=HD(()=>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,vO),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,vO,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[Tv,GD],[Sv,YD],[Cv,eO],[kv,oO],[Av,sO],[jv,cO],[Mv,lO],[Nv,uO],[Pv,dO],[Dv,KD],[Ov,qD],[Ev,JD],[Fv,fO],[Iv,gO],[Lv,_O]]),bO=new Set([Sv,Cv,kv,Av,jv,Mv,Nv,Pv,Ev,Fv,Iv,Lv]),xO=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Vv(e)){if(!i&&bO.has(a)){let e=zv(o);e.length>0&&e[0]&&(i=e[0])}let e=yO.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(`
179
- `));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new $(e)}},SO=new Map([...yO,[xv,xO]]);Object.freeze([...SO.keys()]);const CO=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`]),wO=[[`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 TO(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of wO){let i=DO(n,e);if(i==null)t.missingRequired.push(e);else{let n=EO(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let e of Object.keys(n))CO.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function EO(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function DO(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 OO(e,t){switch(e){case`vars`:return{what:e,vars:kO(t)};case`segments`:return{what:e,segments:PO(t)};case`config`:return{what:e,config:LO(t)}}}function kO(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=MO(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,...AO(r),lastError:a===void 0?null:{timestampMs:a.timestamp,message:a.message},ageMs:jO(r.lastUpdatedMs())})}return o}function AO(e){if(e.kind!==`document`)return{type:e.type,value:e.read()};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 jO(e){return e===null?null:Math.max(0,Date.now()-e)}function MO(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,NO(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}`,NO(i));return t}function NO(e){return e.kind}function PO(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=FO(n),o=[];for(let e of a){let t=n.segments[e];t&&o.push({name:e,template:t.template,referencedVars:IO(t.template,i),lastRender:r.get(e)??null})}return o}function FO(e){let t=[],n=new Set;for(let r of Mi(ya(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 IO(e,t){let n=new Set;for(let r of Rg(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 LO(e){return e===null?null:e.config}const RO=[`vars`,`segments`,`config`];function zO(e){return typeof e==`string`&&RO.includes(e)}function BO(e){return Math.max(1,e-2)}var VO=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 E(`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);E(`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{E(`Calculating context tokens from transcript: ${e}`);let n=await bS(e);if(n.length===0)return E(`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,E(`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 E(`Most recent main chain context: ${n} tokens (limit: ${t})`),X({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return E(`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)}};function HO(e){let t=e.type||e.message?.role||e.message?.type,n=e.type===`user`&&e.message?.firstContentType===`tool_result`;return t===`user`&&!n}var UO=class{state=new Map;calculateLastResponseTime(e){if(e.length===0)return null;let t=null,n=null;for(let r of e){let e=r.type||r.message?.role||r.message?.type;if(HO(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}async foldMetrics(e,t){let n=this.state.get(e),r=cS(t);if(n&&r!==0&&n.cursor.mtimeMs===r)return this.state.delete(e),this.state.set(e,n),{kind:`ok`,value:{messageCount:n.messageCount,recent:[...n.recent]}};let i=await wS(t,n?.cursor);if(i.kind===`failed`)return i;if(i.kind===`absent`)return{kind:`ok`,value:{messageCount:n?.messageCount??0,recent:[...n?.recent??[]]}};let{entries:a,cursor:o,reset:s}=i.value,c=n&&!s?n:void 0,l=c?.messageCount??0,u=c?[...c.recent]:[];for(let e of a)e.isSidechain||(HO(e)&&l++,u.push(e));for(u.length>20&&(u=u.slice(-20)),this.state.delete(e),this.state.set(e,{cursor:o,messageCount:l,recent:u});this.state.size>256;){let e=this.state.keys().next().value;if(e===void 0)break;this.state.delete(e)}return{kind:`ok`,value:{messageCount:l,recent:[...u]}}}async getMetricsInfo(e,t){if(E(`Getting metrics from hook data for session: ${e}`),!t.cost)return Z;let n=await this.foldMetrics(e,t.transcript_path);return n.kind===`failed`?Q(`metrics (${e}): ${n.reason}`):X({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:this.calculateLastResponseTime(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 WO=new Map;function GO(e){if(!e)return``;let t=e.indexOf(`,`);return t<0?e:e.slice(0,t)}var KO=class{async getSessionId(){if(!process.env.TMUX_PANE)return Z;let e=GO(process.env.TMUX),t=WO.get(e);if(t!==void 0)return t;E(`Getting tmux session ID, TMUX_PANE: ${process.env.TMUX_PANE}`);let n=await Ee({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 WO.set(e,r),r}isInTmux(){return!!process.env.TMUX_PANE}},qO=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 JO=new JT;we(JO.launchStats);const YO=new Zx({counters:JO,logger:Y}),XO=new iS({watchers:YO,logger:Y}),ZO=new IS,QO=new ZT,$O=new qO(Ge()),ek=new VO,tk=new UO,nk=new KO,rk=new KT({gitService:XO,sessionState:QO,watchers:YO},{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)}`)}}),ik=60*1e3;function ak(){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),xk(0);return}}catch(e){Y(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,ik),a.unref())},checkNow:o}}const ok=ak(),sk=Dx({entryUrl:import.meta.url,intervalMs:ik,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>ok.checkNow(),log:Y});let ck=null,lk=null,uk=0;function dk(){t.on(`uncaughtException`,e=>{Y(`error`,`uncaughtException: ${e.stack||e.message}`),xk(1)}),t.on(`unhandledRejection`,e=>{Y(`error`,`unhandledRejection: ${String(e)}`),xk(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{Y(`info`,`received ${e}, shutting down`),xk(0)});try{uk=Q_(t.env)}catch(e){Y(`error`,`refusing to boot: ${e.message}`),xk(1);return}ck=Fy(t.pid);let e=Gy(qy(ck));if(!e.decision.allow){Y(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),xk(1);return}lk=e.registryPath,r.mkdirSync(Ne(),{recursive:!0}),Ie(Pe()),QO.useStorage(new eE(ze(),500,Y)),Ry({anchor:Ly(t.env),isAlive:zy,onOrphaned:e=>{Y(`info`,`parent watchdog: ${e}; shutting down`),xk(0)}}),fk(g.createServer({allowHalfOpen:!1},e=>{Sk(e)}),Pe(),!1)}function fk(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){Y(`error`,`server error: ${i.message}`),xk(1);return}if(r){Y(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}pk(e,n)}),e.listen(n,()=>mk(n))}function pk(e,n){let i=Ty(Ey(Le(n)),(e,t)=>Py(e,t,{readStartTime:Ny,pidAlive:zy}));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}`),xk(1);return}}fk(e,n,!0)}function mk(e){let n=ky(e);if(n.kind!==`present`){Y(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),xk(0);return}vk(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(uk/1048576)}MB`),uv();let i=$O.reset();i!==null&&Y(`warn`,`diagnostic dump wipe failed: ${i}`),ok.arm(),sk.arm(),_k(),hk(e,n.identity)}function hk(e,n){My({bound:n,myPid:t.pid,readIdentity:()=>ky(e),readLease:()=>Ey(Le(e)),shutdown:e=>xk(e),log:Y}).arm()}let gk=null;function _k(){gk=$_(tv(JO.startedAt.getTime(),e=>xk(e),{rssLimitBytes:uk})),gk.arm()}function vk(e){let n=Dy(Le(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:ck});n!==null&&Y(`warn`,`lease write failed: ${n}`)}let yk=0,bk=!1;function xk(e){if(!bk){bk=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{XO.close()}catch(e){Y(`warn`,`gitService close failed: ${e.message}`)}try{ZO.close()}catch(e){Y(`warn`,`usageStore close failed: ${e.message}`)}try{YO.closeAll()}catch(e){Y(`warn`,`watcherRegistry close failed: ${e.message}`)}try{QO.flush()}catch(e){Y(`warn`,`sessionState flush failed: ${e.message}`)}Oy(Re(),t.pid),lk!==null&&Ky(lk,t.pid,Uy,e=>r.unlinkSync(e)),t.exit(e)}}function Sk(e){yk++,JO.inFlight=yk;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:()=>xk(r);try{e.end(A_(n),i)}catch(e){Y(`warn`,`response write failed: ${e.message}`),i?.()}},r=setTimeout(()=>{JO.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),i=j_(e=>{wk(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),yk=Math.max(0,yk-1),JO.inFlight=yk})}const Ck=e=>({resp:e,exitAfterFlush:null});async function wk(e){if(!e||typeof e!=`object`||typeof e.v!=`number`)return Ck({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 Ck({ok:!0,stats:JO.snapshot({gitCache:XO.getStats(),usageCache:ZO.getStats(),renderCacheSize:rk.size,watchersActive:YO.size(),nextRestartReason:gk?.describeNextRestart()??null})});if(e.kind===`render`){JO.requestsTotal++;let t=Date.now();try{let{report:n}=TO(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 JO.requestsErrored++,Y(`warn`,`BAD_REQUEST: ${r.join(`; `)}`),Ck({ok:!1,error:`malformed hookData: ${r.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3});let i=e.hookData.workspace.project_dir,{configFile:a,unknownFlagsError:o}=Tk(e.args),s=e.hookData.session_id,c=C_(e),l=JSON.stringify(c);QO.get(s,`client-hints`)!==l&&QO.set(s,pO,l);let u=QO.get(s,`config-override`)??a??c.configEnv,d=rk.getOrCreate(i,e.cwd,u),f=nO({projectDir:i,cwd:e.cwd,configFile:u??null});QO.get(s,`render-origin`)!==f&&QO.set(s,tO,f);let p=c.termCols,m=BO(p??120),h=sb(c.termRows),g={...Dk,width:m},{authoredRoots:_}=d.state,v=HS(d.state.config,t=>QO.get(e.hookData.session_id,t),e=>_.has(e)),y=await tC(e.hookData,jk,e.cwd,d.state.neededInputPaths,v,c),b=Fw(v.theme);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=PT(d.state.config,d.state.compiled,d.state.store,d.state.registry,y,b,g,{perSegmentSink:d.state.lastRenderCellsBySegment},{look:pi(d.state.config.looks,v.look),preset:v.preset}),S=QO.get(e.hookData.session_id,`click.error`);S&&QO.clear(e.hookData.session_id,`click.error`);let ee=[o,d.lastError,S].filter(Boolean).join(`
180
- `),te=sk.notice({sessionId:s,dismissed:QO.get(s,px),enabled:v.updateNotice}),ne=d.lastError===null?null:d.configFilePath,re=fb(ee,te,d.lastWarning??``),ie=$O.sync(s,re===null?null:mb(re));ie!==null&&Y(`warn`,`diagnostic dump failed: ${ie}`);let C=hb(x,re,{fullText:ie===null?{kind:`file`,path:$O.pathFor(s)}:{kind:`unavailable`,reason:ie},failedConfigFile:ne},{width:m,rowCap:h,colorCompatibility:v.colorCompatibility}),ae=Date.now()-t,w=XO.getStats(),T=ZO.getStats();return Y(`info`,`render sid=${e.hookData.session_id??`?`} took=${ae}ms termCols=${p??`?`} termRows=${c.termRows??`?`} width=${m} git=${w.size}/${w.hits}h/${w.misses}m usage=${T.size}/${T.hits}h/${T.misses}m err=${ee?`Y`:`N`} upd=${te.length} warn=${d.lastWarning?`Y`:`N`}`),Ck({ok:!0,output:C+`
181
- `})}catch(e){throw JO.requestsErrored++,e}}if(e.kind===`click`)return Ck(await Mk(e.verb,e.value));if(e.kind===`debug`){if(!zO(e.what))return Ck({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${RO.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=rk.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?Ak(t.lastRenderCellsBySegment,t.config.globals.charset??`unicode`,t.config.globals.colorCompatibility??`truecolor`):kk};return Ck({ok:!0,debug:OO(e.what,n)})}return Ck({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function Tk(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:w_(t.config),unknownFlagsError:r.length>0?`Unknown flags: ${r.join(`, `)}`:null}}const Ek={sessionState:QO,dlog:Y,applyUpdate:()=>sk.act(),doctor:ND()},Dk={style:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,charset:`unicode`},Ok={...Dk,width:1/0},kk=new Map;function Ak(e,t,n){let r=new Map;for(let[i,a]of e)r.set(i,ob(a,{...Ok,charset:t,colorCompatibility:n}));return r}const jk={gitProvider:XO,usageStore:ZO,contextProvider:ek,metricsProvider:tk,tmuxService:nk,log:Y,clock:()=>new Date};function Mk(e,t){let n=SO.get(e);if(!n)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return n(t,Ek),{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 Nk={connectMs:200,budgetMs:500};async function Pk(e){let n=e.includes(`--json`),r=await Fk();if(r.kind!==`ok`&&(t.stderr.write(`daemon-stats: ${z_(r)}\n`),t.exit(1)),n){t.stdout.write(JSON.stringify(r.value,null,2)+`
182
- `);return}t.stdout.write(zk(r.value))}function Fk(){return N_({kind:`stats`},Nk,e=>`stats`in e?e.stats:void 0)}function Ik(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/1024/1024).toFixed(1)}MB`}function Lk(e,t){let n=e+t;return n===0?`n/a`:`${(e/n*100).toFixed(1)}%`}function Rk(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 zk(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 ${Rk(e.uptimeSec)}`),t.push(` rss ${Ik(e.rssBytes)}`),t.push(` heapUsed ${Ik(e.heapUsedBytes)}`),t.push(` heapTotal ${Ik(e.heapTotalBytes)}`),t.push(` external ${Ik(e.externalBytes)}`),t.push(` arrayBuffers ${Ik(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 ${Lk(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 ${Lk(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(`
175
+ `}function TE(e,t,n){return e.split(`
176
+ `).join(`${n}${t}`)}function EE(e,t,n){let[r,...i]=e,a=i.length===0?t:`{\n ${TE(EE(i,t,n),` `,`
177
+ `)}${n.trailingComma}\n}`;return`${n.key(r)}: ${a}`}function DE(e,t,n,r){return e.slice(0,t)+r+e.slice(n)}function OE(e,t){return e.lastIndexOf(`
178
+ `,t-1)+1}function kE(e){return/^[ \t]*$/.test(e)}function AE(e,t){let n=OE(e,t);return/^[ \t]*/.exec(e.slice(n))[0]}function jE(e,t){return kE(e.slice(OE(e,t),t))}const ME=/(?:\/\/[^\n]*?)?(\r\n|\n|$)/y;function NE(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++;ME.lastIndex=n;let i=ME.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 PE(e,t){let{commaEnd:n,line:r}=NE(e,t.end);if(jE(e,t.start)&&r!==null)return DE(e,OE(e,t.start),r.next,``);if(n!==-1){let r=n;for(;r<e.length&&e[r]===` `;)r++;return DE(e,t.start,r,``)}let i=t.start;for(;i>0&&(e[i-1]===` `||e[i-1]===` `);)i--;return e[i-1]===`,`?DE(e,i-1,t.end,``):DE(e,t.start,t.end,``)}function FE(e,t,n,r,i){let a=n.commaEnd!==-1,o=a?e:DE(e,t.end,t.end,`,`),s=n.line.at+ +!a,c=wE(e);return DE(o,s,s,`${c}${i}${TE(r,i,c)}${a?`,`:``}`)}function IE(e,t,n,r){let i=t.kind===`object`?t.entries:t.elements,a=i[i.length-1],o=AE(e,t.span.start);if(a===void 0){let i=o+` `,a=wE(e);return DE(e,t.span.start+1,t.span.end-1,`${a}${i}${TE(n,i,a)}${r.trailingComma}${a}${o}`)}let{commaEnd:s,line:c}=NE(e,a.span.end);if(jE(e,a.span.start)&&c!==null){let t=e.slice(OE(e,a.span.start),a.span.start);return FE(e,a.span,{commaEnd:s,line:c},n,t)}let l=s===-1?a.span.end:s;return DE(e,l,l,`${s===-1?`, `:` `}${n}${s===-1?``:`,`}`)}function LE(e,t,n,r){if(t.length===0)throw new lE(`setValue needs a non-empty path`,0);if(/^\s*$/.test(e)){let i=wE(e);return`{${i} ${TE(EE(t,n,r),` `,i)}${r.trailingComma}${i}}${i}`}let i=hE(e);for(let a=0;a<t.length;a++){if(i.kind!==`object`)throw new lE(`cannot set ${t.join(`.`)}: ${t.slice(0,a).join(`.`)||`the document`} is not an object`,i.span.start);let o=gE(i,t[a]);if(o===void 0)return IE(e,i,EE(t.slice(a),n,r),r);if(a===t.length-1){let t=AE(e,o.keySpan.start);return DE(e,o.value.span.start,o.value.span.end,TE(n,t,wE(e)))}i=o.value}throw new lE(`unreachable: path exhausted`,0)}function RE(e,t){if(t.length===0)throw new lE(`deleteValue needs a non-empty path`,0);if(/^\s*$/.test(e))return e;let n=t.slice(0,-1),r=_E(hE(e),n),i=r===void 0?void 0:gE(r,t[t.length-1]);if(i===void 0||r?.kind!==`object`)return e;let a=PE(e,i.span);return n.length>0&&r.entries.length===1?RE(a,n):a}const zE=[`h`,`v`,`children`];function BE(e){if(e.kind===`string`)return e.value;if(e.kind!==`object`)return;let t=gE(e,`seg`)?.value;if(t?.kind===`string`)return t.value;let n=gE(e,`kind`)?.value,r=gE(e,`name`)?.value;return n?.kind===`string`&&n.value===`segment`&&r?.kind===`string`?r.value:void 0}function VE(e){return e.kind===`object`?zE.map(t=>gE(e,t)?.value).filter(e=>e?.kind===`array`):[]}function HE(e){let t=gE(e,`rows`)?.value;return t?.kind===`object`?t.entries:null}function UE(e){if(e.kind!==`object`)return!0;let t=HE(e);return t===null||t.length>0||e.entries.some(e=>e.key!==`rows`)}function*WE(e,t){yield{node:e,bareAt:t};for(let t of VE(e))for(let e of t.elements)yield*WE(e,null);for(let n of HE(e)??[])yield*WE(n.value,t===null?null:[...t,`rows`,n.key])}function GE(e,t){for(let{node:n}of WE(e,null))if(BE(n)===t)return!0;return!1}function KE(e,t,n){let r=_E(hE(e),t);if(r===void 0)return null;for(let{node:i,bareAt:a}of WE(r,t))if(BE(i)===n)return a===null?{text:e,ref:i}:KE(LE(e,a,`{ h: [${vE(e,i)}] }`,xE),t,n);return null}function qE(e,t,n){let r=KE(e,t,n);return r===null?null:PE(r.text,r.ref.span)}function JE(e,t,n,r,i){let a=KE(e,t,r);if(a===null)return null;let{text:o,ref:s}=a,c=JSON.stringify(n),{commaEnd:l,line:u}=NE(o,s.span.end);if(jE(o,s.span.start)&&u!==null){let e=o.slice(OE(o,s.span.start),s.span.start);return i===`after`?FE(o,s.span,{commaEnd:l,line:u},c,e):DE(o,s.span.start,s.span.start,`${c},${wE(o)}${e}`)}let d=vE(o,s),f=i===`before`?`${c}, ${d}`:`${d}, ${c}`;return DE(o,s.span.start,s.span.end,f)}const YE={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`},XE=new Set([`1`,`true`]),ZE=new Set([`0`,`false`,``]);function QE(e,t){let n=CD(e),r=n.scope===`globals`?YE[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(XE.has(t))return`true`;if(ZE.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function $E(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function eD(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(c.dirname(e),{recursive:!0}),Ae(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function tD(e){return/^\s*$/.test(e)?null:hE(e)}function nD(e,t){return e!==null&&_E(e,t)!==void 0}function rD(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(rD),...i}}return e}function iD(e){if(!ga(e))return rD(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,rD(t)])),...n}}const aD=bC,oD=aD.segments,sD=aD.presets,cD=aD.root;function lD(e,t,n,r){if(!nD(e,t)&&n===void 0)throw new $(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function uD(e,t){let n=bm(t);return t.scope===`segment-palette`&&lD(e,[`segments`,t.segment],oD[t.segment],n.join(`.`)),n}function dD(e){return hE(CE(e))}function fD(){return Object.entries(cD.rows).map(([e,t])=>{let n=rD(t);return{path:[`root`],fragment:dD({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function pD(e,t){let n=e===null?void 0:_E(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function mD(e,t){if(t===void 0)return null;let n=iD(t);return{path:e,fragment:dD(n),unit:{path:e,value:n}}}function hD(e,t){let n=[`presets`,t],r=[...n,`root`],i=sD[t];lD(e,n,i,r.join(`.`));let a=pD(e,r)??mD(r,i?.root);return a!==null&&UE(a.fragment)?a:null}function gD(e,t){let n=HE(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 _D(e,t){return[...fD(),pD(e,[`root`]),hD(e,t)].filter(e=>e!==null).reduce(gD,new Map)}function vD(e,t,n){for(let{node:r,...i}of _D(e,t).values())if(GE(r,n))return i;throw new $(`${yD(e,t).join(`.`)} holds no segment "${n}" — the bar you clicked is stale; it reloads on the next render`)}function yD(e,t){return hD(e,t)?.path??[`root`]}function bD(e,t){return t.scope===`preset-root`?yD(e,t.preset):bm(t)}function xD(e,{unit:t}){return t===null?e:LE(e,t.path,CE(t.value),xE)}function SD(e){let t=ym(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function CD(e){let t=SD(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function wD(e,t){let n=CD(t),r=tD($E(e)??``),i=r===null?void 0:_E(r,bm(n));return i!==void 0&&`value`in i?i.value:void 0}function TD(e,t,n,r){let i=CD(n),a=$E(t);FD(e,t,{before:a,after:LE(a??``,uD(tD(a??``),i),QE(n,r),xE)})}function ED(e,t,n){let r=SD(n),i=$E(t);if(i===null)return;let a=RE(i,bD(tD(i),r));a!==i&&FD(e,t,{before:i,after:a})}function DD(e,t,n,r){let i=SD(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=$E(t),o=r.op===`remove`?r.target:r.anchor,s=vD(tD(a??``),i.preset,o),c=xD(a??``,s),l=r.op===`remove`?qE(c,s.path,r.target):JE(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`);FD(e,t,{before:a,after:l})}const OD={past:[],future:[]};function kD(e){if(typeof e!=`object`||!e)return!1;let t=e;return(t.before===null||typeof t.before==`string`)&&typeof t.after==`string`}function AD(e){if(typeof e!=`object`||!e)return!1;let t=e;return Array.isArray(t.past)&&t.past.every(kD)&&Array.isArray(t.future)&&t.future.every(kD)}function jD(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(AD))return e}catch{}return e.logger(`warn`,`config-edit-history load: unexpected shape, starting empty`),{}}function MD(e,t){try{r.mkdirSync(c.dirname(e.historyPath),{recursive:!0}),Ae(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 ND(e,t){let n=[...e,t];return n.length>50?n.slice(-50):n}function PD(e,t,n,r,i){eD(t,n,e.logger);try{MD(e,r)}catch(e){throw Error(`${i} landed in ${t} but recording it failed — it is not undoable: ${e.message}`)}}function FD(e,t,n){let r=jD(e),{past:i}=r[t]??OD;PD(e,t,n.after,{...r,[t]:{past:ND(i,n),future:[]}},`edit`)}function ID(e,t){let n=jD(e),{past:r,future:i}=n[t]??OD,a=r[r.length-1];return a===void 0?null:(RD(t,a.after,`undo`),PD(e,t,a.before,{...n,[t]:{past:r.slice(0,-1),future:ND(i,a)}},`undo`),a)}function LD(e,t){let n=jD(e),{past:r,future:i}=n[t]??OD,a=i[i.length-1];return a===void 0?null:(RD(t,a.before,`redo`),PD(e,t,a.after,{...n,[t]:{past:ND(r,a),future:i.slice(0,-1)}},`redo`),a)}function RD(e,t,n){if($E(e)!==t)throw new $(`${n}: ${e} has changed since that edit — refusing to overwrite it`)}function zD(e){let t=De({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 BD(){return{probeTmux:zD,claudeSettingsPath:Qv()}}function VD(e){return r.existsSync(e.claudeSettingsPath)?r.readFileSync(e.claudeSettingsPath,`utf8`):``}function HD(e){if(/^\s*$/.test(e))return{};let t=SE.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 UD(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,termfeatures:e.probeTmux(t)}}function WD(e){try{return HD(VD(e))}catch(t){throw Error(`cannot read ${e.claudeSettingsPath}: ${t instanceof Error?t.message:String(t)}`,{cause:t})}}function GD(e,t){return{tmux:UD(e,t),claudeSettingsEnv:WD(e)}}function KD(e,t,n){switch(t.kind){case`claude-settings-env`:{let i=LE(VD(e),[`env`,t.name],JSON.stringify(t.value),SE);return r.mkdirSync(c.dirname(e.claudeSettingsPath),{recursive:!0}),Ae(e.claudeSettingsPath,i),{...n,claudeSettingsEnv:WD(e)}}default:return t.kind}}function qD(e){if(!e)throw new $(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new $(`invalid session id "${e}"`);return e}function JD(e){return YD(()=>decodeURIComponent(e))}function YD(e){try{return e()}catch(e){throw e instanceof URIError?new $(`malformed wire encoding: ${e.message}`):e}}function XD(e,t){let n=De({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 ZD=(e,t)=>XD(JD(e),t),QD=(e,t)=>{let n=De({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,JD(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`})`)}},$D=(e,t)=>XD(JD(e),t),eO=(e,t)=>XD(JD(e),t),tO=(e,t)=>{let n=qD(JD(e));t.sessionState.get(n,`toolbar-expanded`)?t.sessionState.clear(n,`toolbar-expanded`):t.sessionState.set(n,`toolbar-expanded`,`1`)},nO=(e,t)=>{let[n=``,...r]=YD(()=>qv(e)),i=qD(n);if(r.length===0)throw new $(`set-state: <key>/<value> is required (have keys: ${fx().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: ${fx().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=mx(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})`)},rO=/^-?\d+$/;function iO(e,t,n){return e>n?t:e<t?n:e}function aO(e,t){if(!e)return null;if(!fx().includes(e))throw new $(`${t}: unknown session key "${e}" to release (have: ${fx().join(`, `)})`);return e}function oO(e,t,n,r){e!==null&&(n.sessionState.clear(t,e),n.dlog(`info`,`${r}: released session key ${e} (session=${t})`))}const sO=(e,t)=>{let[n=``,r=``,i=``]=YD(()=>qv(e)),a=qD(n);if(!r)throw new $(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!rO.test(i))throw new $(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=hx(r);if(!s)throw new $(`step-state: key "${r}" is not a bounded (range) state key (have keys: ${fx().join(`, `)})`);let c=t.sessionState.get(a,r),l=c&&rO.test(c)?Math.max(s.min,Math.min(s.max,parseInt(c,10))):s.seed,u=iO(l+o,s.min,s.max),d=mx(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})`)},cO=`render-origin`;function lO(e){return JSON.stringify(e)}function uO(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 dO(e,t){let n=e.sessionState.get(t,cO);if(n===null)throw new $(`session ${t} has not rendered yet — no config file to write`);let r=uO(n);return b_(r.projectDir,r.cwd,r.configFile??void 0)}function fO(e){return{historyPath:Be(),logger:e.dlog}}const pO=(e,t)=>{let[n=``,r=``,i=``,a=``]=YD(()=>qv(e)),o=qD(n);if(!r)throw new $(`set-config: <key>/<value> is required (have keys: ${Jb().join(`, `)})`);let s=Yb(r,i);if(!s.ok)throw new $(`set-config: ${s.reason}`);let c=aO(a,`set-config`),l=dO(t,o);TD(fO(t),l,r,s.value),t.dlog(`info`,`set-config: ${r}=${s.value} → ${l} (session=${o})`),oO(c,o,t,`set-config`)},mO=(e,t)=>{let[n=``,r=``,i=``,a=``]=YD(()=>qv(e)),o=qD(n);if(!r)throw new $(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!rO.test(i))throw new $(`step-config: delta must be an integer, got "${i}"`);let s=parseInt(i,10),c=aO(a,`step-config`),l=Xb(r);if(!l)throw new $(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${Jb().join(`, `)})`);let u=dO(t,o),d=wD(u,r),f=typeof d==`number`?Math.max(l.min,Math.min(l.max,d)):l.seed,p=iO(f+s,l.min,l.max),m=Yb(r,String(p));if(!m.ok)throw new $(`step-config: ${m.reason}`);TD(fO(t),u,r,m.value),t.dlog(`info`,`step-config: ${r} ${f}→${m.value} (by ${s}) → ${u} (session=${o})`),oO(c,o,t,`step-config`)},hO=(e,t)=>{let[n=``,r=``]=YD(()=>qv(e)),i=qD(n);if(!r||!Jb().includes(r))throw new $(`reset-config: unknown config key "${r}" (have: ${Jb().join(`, `)})`);let a=dO(t,i);ED(fO(t),a,r),t.dlog(`info`,`reset-config: ${r} ← ${a} (session=${i})`)},gO=(e,t)=>{let[n=``,r=``,i=``]=YD(()=>qv(e)),a=qD(n);if(!r)throw new $(`apply-layout-op: <key>/<op> is required (have: ${Jb().join(`, `)})`);let o=Yb(r,i);if(!o.ok)throw new $(`apply-layout-op: ${o.reason}`);let s=sm(o.value);if(s===null)throw new $(`apply-layout-op: "${o.value}" is not a layout op token`);let c=dO(t,a);DD(fO(t),c,r,s),t.dlog(`info`,`apply-layout-op: ${r} ${o.value} → ${c} (session=${a})`)},_O=(e,t)=>{let[n=``]=YD(()=>qv(e)),r=qD(n),i=dO(t,r);if(ID(fO(t),i)===null)throw new $(`undo: history is empty, nothing to undo`);t.dlog(`info`,`undo: ${i} (session=${r})`)},vO=(e,t)=>{let[n=``]=YD(()=>qv(e)),r=qD(n),i=dO(t,r);if(LD(fO(t),i)===null)throw new $(`redo: nothing to redo`);t.dlog(`info`,`redo: ${i} (session=${r})`)},yO=(e,t)=>{qD(JD(e)),t.applyUpdate()},bO=`client-hints`;function xO(e,t){let n=e.sessionState.get(t,bO);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 j_(r)}function SO(e,t,n){let r=Wm(n);e.sessionState.setBatch(t,qm(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed`}`).join(` `)} (session=${t})`)}const CO=(e,t)=>{let n=qD(JD(e));SO(t,n,GD(t.doctor,xO(t,n).tmux))},wO=(e,t)=>{let[n=``,r=``]=YD(()=>qv(e)),i=qD(n),a=Gm(r);if(a===void 0)throw new $(`doctor-fix: unknown check "${r}"`);let o=GD(t.doctor,xO(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=KD(t.doctor,s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.name}=${s.fix.value} (session=${i})`),SO(t,i,c)},TO=`config-override`,EO=new Map([[Mv,ZD],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new $(`load-config: expected <sessionId>/<path> (missing separator)`);let r=qD(YD(()=>decodeURIComponent(e.slice(0,n)))),i=YD(()=>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,TO),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,TO,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[Nv,QD],[Av,nO],[jv,sO],[Lv,pO],[Rv,mO],[zv,hO],[Bv,gO],[Vv,_O],[Hv,vO],[Fv,$D],[Iv,eO],[Pv,tO],[Uv,yO],[Wv,CO],[Gv,wO]]),DO=new Set([Av,jv,Lv,Rv,zv,Bv,Vv,Hv,Pv,Uv,Wv,Gv]),OO=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Yv(e)){if(!i&&DO.has(a)){let e=qv(o);e.length>0&&e[0]&&(i=e[0])}let e=EO.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(`
179
+ `));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new $(e)}},kO=new Map([...EO,[kv,OO]]);Object.freeze([...kO.keys()]);const AO=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`]),jO=[[`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 MO(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of jO){let i=PO(n,e);if(i==null)t.missingRequired.push(e);else{let n=NO(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let e of Object.keys(n))AO.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function NO(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function PO(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 FO(e,t){switch(e){case`vars`:return{what:e,vars:IO(t)};case`segments`:return{what:e,segments:VO(t)};case`config`:return{what:e,config:WO(t)}}}function IO(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=zO(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,...LO(r),lastError:a===void 0?null:{timestampMs:a.timestamp,message:a.message},ageMs:RO(r.lastUpdatedMs())})}return o}function LO(e){if(e.kind!==`document`)return{type:e.type,value:e.read()};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 RO(e){return e===null?null:Math.max(0,Date.now()-e)}function zO(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,BO(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}`,BO(i));return t}function BO(e){return e.kind}function VO(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=HO(n),o=[];for(let e of a){let t=n.segments[e];t&&o.push({name:e,template:t.template,referencedVars:UO(t.template,i),lastRender:r.get(e)??null})}return o}function HO(e){let t=[],n=new Set;for(let r of Mi(ya(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 UO(e,t){let n=new Set;for(let r of Gg(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 WO(e){return e===null?null:e.config}const GO=[`vars`,`segments`,`config`];function KO(e){return typeof e==`string`&&GO.includes(e)}function qO(e){return Math.max(1,e-2)}var JO=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 E(`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);E(`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{E(`Calculating context tokens from transcript: ${e}`);let n=await OS(e);if(n.length===0)return E(`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,E(`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 E(`Most recent main chain context: ${n} tokens (limit: ${t})`),X({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return E(`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)}};function YO(e){let t=e.type||e.message?.role||e.message?.type,n=e.type===`user`&&e.message?.firstContentType===`tool_result`;return t===`user`&&!n}var XO=class{state=new Map;calculateLastResponseTime(e){if(e.length===0)return null;let t=null,n=null;for(let r of e){let e=r.type||r.message?.role||r.message?.type;if(YO(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}async foldMetrics(e,t){let n=this.state.get(e),r=gS(t);if(n&&r!==0&&n.cursor.mtimeMs===r)return this.state.delete(e),this.state.set(e,n),{kind:`ok`,value:{messageCount:n.messageCount,recent:[...n.recent]}};let i=await MS(t,n?.cursor);if(i.kind===`failed`)return i;if(i.kind===`absent`)return{kind:`ok`,value:{messageCount:n?.messageCount??0,recent:[...n?.recent??[]]}};let{entries:a,cursor:o,reset:s}=i.value,c=n&&!s?n:void 0,l=c?.messageCount??0,u=c?[...c.recent]:[];for(let e of a)e.isSidechain||(YO(e)&&l++,u.push(e));for(u.length>20&&(u=u.slice(-20)),this.state.delete(e),this.state.set(e,{cursor:o,messageCount:l,recent:u});this.state.size>256;){let e=this.state.keys().next().value;if(e===void 0)break;this.state.delete(e)}return{kind:`ok`,value:{messageCount:l,recent:[...u]}}}async getMetricsInfo(e,t){if(E(`Getting metrics from hook data for session: ${e}`),!t.cost)return Z;let n=await this.foldMetrics(e,t.transcript_path);return n.kind===`failed`?Q(`metrics (${e}): ${n.reason}`):X({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:this.calculateLastResponseTime(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 ZO=new Map;function QO(e){if(!e)return``;let t=e.indexOf(`,`);return t<0?e:e.slice(0,t)}var $O=class{async getSessionId(){if(!process.env.TMUX_PANE)return Z;let e=QO(process.env.TMUX),t=ZO.get(e);if(t!==void 0)return t;E(`Getting tmux session ID, TMUX_PANE: ${process.env.TMUX_PANE}`);let n=await Ee({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 ZO.set(e,r),r}isInTmux(){return!!process.env.TMUX_PANE}},ek=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 tk=new nE;we(tk.launchStats);const nk=new aS({counters:tk,logger:Y}),rk=new fS({watchers:nk,logger:Y}),ik=new WS,ak=new aE,ok=new ek(Ge()),sk=new JO,ck=new XO,lk=new $O,uk=new eE({gitService:rk,sessionState:ak,watchers:nk},{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)}`)}}),dk=60*1e3;function fk(){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),Ok(0);return}}catch(e){Y(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,dk),a.unref())},checkNow:o}}const pk=fk(),mk=Fx({entryUrl:import.meta.url,intervalMs:dk,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>pk.checkNow(),log:Y});let hk=null,gk=null,_k=0;function vk(){t.on(`uncaughtException`,e=>{Y(`error`,`uncaughtException: ${e.stack||e.message}`),Ok(1)}),t.on(`unhandledRejection`,e=>{Y(`error`,`unhandledRejection: ${String(e)}`),Ok(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{Y(`info`,`received ${e}, shutting down`),Ok(0)});try{_k=ov(t.env)}catch(e){Y(`error`,`refusing to boot: ${e.message}`),Ok(1);return}hk=Uy(t.pid);let e=$y(tb(hk));if(!e.decision.allow){Y(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),Ok(1);return}gk=e.registryPath,r.mkdirSync(Ne(),{recursive:!0}),Ie(Pe()),ak.useStorage(new cE(ze(),500,Y)),Ky({anchor:Gy(t.env),isAlive:qy,onOrphaned:e=>{Y(`info`,`parent watchdog: ${e}; shutting down`),Ok(0)}}),yk(g.createServer({allowHalfOpen:!1},e=>{kk(e)}),Pe(),!1)}function yk(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){Y(`error`,`server error: ${i.message}`),Ok(1);return}if(r){Y(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}bk(e,n)}),e.listen(n,()=>xk(n))}function bk(e,n){let i=Ny(Py(Le(n)),(e,t)=>Hy(e,t,{readStartTime:Vy,pidAlive:qy}));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}`),Ok(1);return}}yk(e,n,!0)}function xk(e){let n=Ly(e);if(n.kind!==`present`){Y(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),Ok(0);return}Tk(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(_k/1048576)}MB`),vv();let i=ok.reset();i!==null&&Y(`warn`,`diagnostic dump wipe failed: ${i}`),pk.arm(),mk.arm(),wk(),Sk(e,n.identity)}function Sk(e,n){By({bound:n,myPid:t.pid,readIdentity:()=>Ly(e),readLease:()=>Py(Le(e)),shutdown:e=>Ok(e),log:Y}).arm()}let Ck=null;function wk(){Ck=sv(lv(tk.startedAt.getTime(),e=>Ok(e),{rssLimitBytes:_k})),Ck.arm()}function Tk(e){let n=Fy(Le(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:hk});n!==null&&Y(`warn`,`lease write failed: ${n}`)}let Ek=0,Dk=!1;function Ok(e){if(!Dk){Dk=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{rk.close()}catch(e){Y(`warn`,`gitService close failed: ${e.message}`)}try{ik.close()}catch(e){Y(`warn`,`usageStore close failed: ${e.message}`)}try{nk.closeAll()}catch(e){Y(`warn`,`watcherRegistry close failed: ${e.message}`)}try{ak.flush()}catch(e){Y(`warn`,`sessionState flush failed: ${e.message}`)}Iy(Re(),t.pid),gk!==null&&eb(gk,t.pid,Zy,e=>r.unlinkSync(e)),t.exit(e)}}function kk(e){Ek++,tk.inFlight=Ek;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:()=>Ok(r);try{e.end(R_(n),i)}catch(e){Y(`warn`,`response write failed: ${e.message}`),i?.()}},r=setTimeout(()=>{tk.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),i=z_(e=>{jk(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),Ek=Math.max(0,Ek-1),tk.inFlight=Ek})}const Ak=e=>({resp:e,exitAfterFlush:null});async function jk(e){if(!e||typeof e!=`object`||typeof e.v!=`number`)return Ak({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 Ak({ok:!0,stats:tk.snapshot({gitCache:rk.getStats(),usageCache:ik.getStats(),renderCacheSize:uk.size,watchersActive:nk.size(),nextRestartReason:Ck?.describeNextRestart()??null})});if(e.kind===`render`){tk.requestsTotal++;let t=Date.now();try{let{report:n}=MO(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 tk.requestsErrored++,Y(`warn`,`BAD_REQUEST: ${r.join(`; `)}`),Ak({ok:!1,error:`malformed hookData: ${r.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3});let i=e.hookData.workspace.project_dir,{configFile:a,unknownFlagsError:o}=Mk(e.args),s=e.hookData.session_id,c=j_(e),l=JSON.stringify(c);ak.get(s,`client-hints`)!==l&&ak.set(s,bO,l);let u=ak.get(s,`config-override`)??a??c.configEnv,d=uk.getOrCreate(i,e.cwd,u),f=lO({projectDir:i,cwd:e.cwd,configFile:u??null});ak.get(s,`render-origin`)!==f&&ak.set(s,cO,f);let p=c.termCols,m=qO(p??120),h=hb(c.termRows),g={...Pk,width:m},{authoredRoots:_}=d.state,v=XS(d.state.config,t=>ak.get(e.hookData.session_id,t),e=>_.has(e)),y=await lC(e.hookData,Rk,e.cwd,d.state.neededInputPaths,v,c),b=Uw(v.theme);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=HT(d.state.config,d.state.compiled,d.state.store,d.state.registry,y,b,g,{perSegmentSink:d.state.lastRenderCellsBySegment},{look:pi(d.state.config.looks,v.look),preset:v.preset}),S=ak.get(e.hookData.session_id,`click.error`);S&&ak.clear(e.hookData.session_id,`click.error`);let C=[o,d.lastError,S].filter(Boolean).join(`
180
+ `),ee=mk.notice({sessionId:s,dismissed:ak.get(s,xx),enabled:v.updateNotice}),te=d.lastError===null?null:d.configFilePath,ne=bb(C,ee,d.lastWarning??``),re=ok.sync(s,ne===null?null:Sb(ne));re!==null&&Y(`warn`,`diagnostic dump failed: ${re}`);let ie=Cb(x,ne,{fullText:re===null?{kind:`file`,path:ok.pathFor(s)}:{kind:`unavailable`,reason:re},failedConfigFile:te},{width:m,rowCap:h,colorCompatibility:v.colorCompatibility}),ae=Date.now()-t,w=rk.getStats(),T=ik.getStats();return Y(`info`,`render sid=${e.hookData.session_id??`?`} took=${ae}ms termCols=${p??`?`} termRows=${c.termRows??`?`} width=${m} git=${w.size}/${w.hits}h/${w.misses}m usage=${T.size}/${T.hits}h/${T.misses}m err=${C?`Y`:`N`} upd=${ee.length} warn=${d.lastWarning?`Y`:`N`}`),Ak({ok:!0,output:ie+`
181
+ `})}catch(e){throw tk.requestsErrored++,e}}if(e.kind===`click`)return Ak(await zk(e.verb,e.value));if(e.kind===`debug`){if(!KO(e.what))return Ak({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${GO.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=uk.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?Lk(t.lastRenderCellsBySegment,t.config.globals.charset??`unicode`,t.config.globals.colorCompatibility??`truecolor`):Ik};return Ak({ok:!0,debug:FO(e.what,n)})}return Ak({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function Mk(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:M_(t.config),unknownFlagsError:r.length>0?`Unknown flags: ${r.join(`, `)}`:null}}const Nk={sessionState:ak,dlog:Y,applyUpdate:()=>mk.act(),doctor:BD()},Pk={style:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,charset:`unicode`},Fk={...Pk,width:1/0},Ik=new Map;function Lk(e,t,n){let r=new Map;for(let[i,a]of e)r.set(i,mb(a,{...Fk,charset:t,colorCompatibility:n}));return r}const Rk={gitProvider:rk,usageStore:ik,contextProvider:sk,metricsProvider:ck,tmuxService:lk,log:Y,clock:()=>new Date};function zk(e,t){let n=kO.get(e);if(!n)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return n(t,Nk),{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 Bk={connectMs:200,budgetMs:500};async function Vk(e){let n=e.includes(`--json`),r=await Hk();if(r.kind!==`ok`&&(t.stderr.write(`daemon-stats: ${q_(r)}\n`),t.exit(1)),n){t.stdout.write(JSON.stringify(r.value,null,2)+`
182
+ `);return}t.stdout.write(Kk(r.value))}function Hk(){return V_({kind:`stats`},Bk,e=>`stats`in e?e.stats:void 0)}function Uk(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/1024/1024).toFixed(1)}MB`}function Wk(e,t){let n=e+t;return n===0?`n/a`:`${(e/n*100).toFixed(1)}%`}function Gk(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 Kk(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 ${Gk(e.uptimeSec)}`),t.push(` rss ${Uk(e.rssBytes)}`),t.push(` heapUsed ${Uk(e.heapUsedBytes)}`),t.push(` heapTotal ${Uk(e.heapTotalBytes)}`),t.push(` external ${Uk(e.externalBytes)}`),t.push(` arrayBuffers ${Uk(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 ${Wk(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 ${Wk(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(`
183
183
  `)+`
184
- `}const Bk={connectMs:200,budgetMs:500};async function Vk(e,n){let r=n.includes(`--json`),i=await Hk(e);if(i.kind!==`ok`&&(t.stderr.write(`${e}: ${z_(i)}\n`),t.exit(1)),r){t.stdout.write(JSON.stringify(i.value,null,2)+`
185
- `);return}t.stdout.write(Uk(i.value))}function Hk(e){return N_({kind:`debug`,what:e},Bk,e=>`debug`in e?e.debug:void 0)}function Uk(e){switch(e.what){case`vars`:return Wk(e.vars);case`segments`:return Gk(e.segments);case`config`:return Kk(e.config);default:return e}}function Wk(e){if(e.length===0)return`no variables (DSL not active)
186
- `;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?``:` ${Jk(a.ageMs)}`,o=a.lastError?` ✗ ${a.lastError.message}`:``;t.push(` ${a.name.padEnd(n)} ${(a.source??`—`).padEnd(r)} ${a.type.padEnd(i)} ${qk(a.value)}${e}${o}`)}return t.join(`
184
+ `}const qk={connectMs:200,budgetMs:500};async function Jk(e,n){let r=n.includes(`--json`),i=await Yk(e);if(i.kind!==`ok`&&(t.stderr.write(`${e}: ${q_(i)}\n`),t.exit(1)),r){t.stdout.write(JSON.stringify(i.value,null,2)+`
185
+ `);return}t.stdout.write(Xk(i.value))}function Yk(e){return V_({kind:`debug`,what:e},qk,e=>`debug`in e?e.debug:void 0)}function Xk(e){switch(e.what){case`vars`:return Zk(e.vars);case`segments`:return Qk(e.segments);case`config`:return $k(e.config);default:return e}}function Zk(e){if(e.length===0)return`no variables (DSL not active)
186
+ `;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?``:` ${tA(a.ageMs)}`,o=a.lastError?` ✗ ${a.lastError.message}`:``;t.push(` ${a.name.padEnd(n)} ${(a.source??`—`).padEnd(r)} ${a.type.padEnd(i)} ${eA(a.value)}${e}${o}`)}return t.join(`
187
187
  `)+`
188
- `}function Gk(e){if(e.length===0)return`no segments (DSL not active)
188
+ `}function Qk(e){if(e.length===0)return`no segments (DSL not active)
189
189
  `;let t=[`segments (${e.length})`,``];for(let n of e)t.push(` ${n.name}`),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(`
190
190
  `)+`
191
- `}function Kk(e){return e===null?`config: DSL not active
191
+ `}function $k(e){return e===null?`config: DSL not active
192
192
  `:JSON.stringify(e,null,2)+`
193
- `}function qk(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function Jk(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function Yk(){let e=Zk();return e===null?null:r.readFileSync(e,`utf-8`)}function Xk(){let e;try{e=Yk()}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 Zk(){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 Qk(e){let t=e.CC_CANDYBAR_CONFIG??``;return t===``?void 0:t}const $k=5e3;function eA(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},theme:{effective:e.theme},look:{effective:e.look},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}}}function tA(e,t){let n=f_(e,e),r=m_(n);return r!==null&&t.push(r),n.kind===`file`?n.path:null}async function nA(e,n=t.cwd()){let i=[],a=e===void 0?tA(n,i):c.resolve(l_(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=g_(n,n);o!==null&&i.push(o);try{return{kind:`clean`,configPath:a,warnings:i,rendered:await rA(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}:{kind:`fatal`,configPath:a,message:e instanceof Di||e instanceof Error?e.message:String(e),warnings:i}}}async function rA(e,t,n){let{config:r,source:i}=__(e,mC),a=v_(r,e??`<default>`,i),o=new BT,s=new Mw(o,a.globals.default_empty_value??``,void 0,new ZT);try{let e=NT(a,s,{cwd:t});n.push(...e.loadWarnings);let r=await s.settled($k);r.length>0&&n.push(`source${r.length===1?``:`s`} still running after ${$k} ms, rendered with fallback values: ${r.join(`, `)}`),fx(a);let i=HS(a,()=>null,()=>!1),c=t=>{let n=new Map;return{rendered:PT(a,e,o,s,eA(t),Fw(t.theme),{style:t.style,separator:t.separator,width:200,colorCompatibility:t.colorCompatibility,wrap:t.autoWrap,padding:t.padding,charset:t.charset},{onSegmentError:(e,t)=>n.set(e,t)},{look:pi(a.looks,t.look),preset:t.preset}),segmentErrors:n}},l=c(i),u=c({...i,presetCustomized:!0}),d=[...[...l.segmentErrors].map(([e,t])=>`segment "${e}": ${t}`),...[...u.segmentErrors].filter(([e])=>!l.segmentErrors.has(e)).map(([e,t])=>`segment "${e}": ${t} (under .preset.customized = true)`)];if(d.length>0)throw Error(`config renders with ${d.length} segment error${d.length===1?``:`s`} (the daemon would render ⚠ error cells):\n`+d.map(e=>` ${e}`).join(`
194
- `));return l.rendered}finally{s.dispose()}}function iA(e){return e.map(e=>`warning: ${e}\n`).join(``)}function aA(e){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`,stderr:iA(e.warnings),code:0};case`fatal`:return{stdout:``,stderr:iA(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}}}async function oA(e){(e.length>1||e[0]===``)&&(t.stderr.write(`check: expected at most one non-empty path
193
+ `}function eA(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function tA(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function nA(){let e=iA();return e===null?null:r.readFileSync(e,`utf-8`)}function rA(){let e;try{e=nA()}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 iA(){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 aA(e){let t=e.CC_CANDYBAR_CONFIG??``;return t===``?void 0:t}const oA=5e3;function sA(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},theme:{effective:e.theme},look:{effective:e.look},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}}}function cA(e,t){let n=y_(e,e),r=x_(n);return r!==null&&t.push(r),n.kind===`file`?n.path:null}async function lA(e,n=t.cwd()){let i=[],a=e===void 0?cA(n,i):c.resolve(g_(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=C_(n,n);o!==null&&i.push(o);try{return{kind:`clean`,configPath:a,warnings:i,rendered:await uA(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}:{kind:`fatal`,configPath:a,message:e instanceof Di||e instanceof Error?e.message:String(e),warnings:i}}}async function uA(e,t,n){let{config:r,source:i}=w_(e,SC),a=T_(r,e??`<default>`,i),o=new JT,s=new Bw(o,a.globals.default_empty_value??``,void 0,new aE);try{let e=VT(a,s,{cwd:t});n.push(...e.loadWarnings);let r=await s.settled(oA);r.length>0&&n.push(`source${r.length===1?``:`s`} still running after ${oA} ms, rendered with fallback values: ${r.join(`, `)}`),bx(a);let i=XS(a,()=>null,()=>!1),c=t=>{let n=new Map;return{rendered:HT(a,e,o,s,sA(t),Uw(t.theme),{style:t.style,separator:t.separator,width:200,colorCompatibility:t.colorCompatibility,wrap:t.autoWrap,padding:t.padding,charset:t.charset},{onSegmentError:(e,t)=>n.set(e,t)},{look:pi(a.looks,t.look),preset:t.preset}),segmentErrors:n}},l=c(i),u=c({...i,presetCustomized:!0}),d=[...[...l.segmentErrors].map(([e,t])=>`segment "${e}": ${t}`),...[...u.segmentErrors].filter(([e])=>!l.segmentErrors.has(e)).map(([e,t])=>`segment "${e}": ${t} (under .preset.customized = true)`)];if(d.length>0)throw Error(`config renders with ${d.length} segment error${d.length===1?``:`s`} (the daemon would render ⚠ error cells):\n`+d.map(e=>` ${e}`).join(`
194
+ `));return l.rendered}finally{s.dispose()}}function dA(e){return e.map(e=>`warning: ${e}\n`).join(``)}function fA(e){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`,stderr:dA(e.warnings),code:0};case`fatal`:return{stdout:``,stderr:dA(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}}}async function pA(e){(e.length>1||e[0]===``)&&(t.stderr.write(`check: expected at most one non-empty path
195
195
  Usage: cc-candybar check [config-file]
196
- `),t.exit(2));let n=aA(await nA(e[0]??Qk(t.env)));t.stdout.write(n.stdout),t.stderr.write(n.stderr),t.exit(n.code)}const sA=`${Qy}${Zy}`;function cA(e){return`${sA}⚠ cc-candybar: ${lA(e)}\n`}function lA(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: ${Xy(e.message,60)}`;case`render_failed`:return`render failed: ${Xy(e.message,60)}`;case`malformed_response`:return`malformed daemon response: ${Xy(e.message,60)}`}}function uA(e){switch(e.kind){case`ok`:return{output:e.value,kick:!1,debug:null};case`transient`:return{output:`
197
- `,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:cA(e),kick:!1,debug:`daemon refused request (permanent: ${e.cause}) — not kicking`}}}function dA(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}function fA({check:e,verdict:t}){return t.ok?`✓ ${e.label}\n`:`✗ ${e.label} — ${t.reason}${t.fix===void 0?``:` (fix: click ☰ 🧰 tools ▸ 🩺 doctor, then [fix] on the bar)`}\n`}function pA(e,t){let n;try{n=RD(e,xm(t))}catch(e){return{stdout:``,stderr:`doctor: ${e instanceof Error?e.message:String(e)}\n`,code:2}}let r=wm(n);return{stdout:r.map(fA).join(``),stderr:``,code:+!r.every(e=>e.verdict.ok)}}function mA(e){e.length>0&&(t.stderr.write(`doctor: takes no arguments
196
+ `),t.exit(2));let n=fA(await lA(e[0]??aA(t.env)));t.stdout.write(n.stdout),t.stderr.write(n.stderr),t.exit(n.code)}const mA=`${ob}${ab}`;function hA(e){return`${mA}⚠ cc-candybar: ${gA(e)}\n`}function gA(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: ${ib(e.message,60)}`;case`render_failed`:return`render failed: ${ib(e.message,60)}`;case`malformed_response`:return`malformed daemon response: ${ib(e.message,60)}`}}function _A(e){switch(e.kind){case`ok`:return{output:e.value,kick:!1,debug:null};case`transient`:return{output:`
197
+ `,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:hA(e),kick:!1,debug:`daemon refused request (permanent: ${e.cause}) — not kicking`}}}function vA(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}function yA({check:e,verdict:t}){return t.ok?`✓ ${e.label}\n`:`✗ ${e.label} — ${t.reason}${t.fix===void 0?``:` (fix: click ☰ 🧰 tools ▸ 🩺 doctor, then [fix] on the bar)`}\n`}function bA(e,t){let n;try{n=GD(e,Vm(t))}catch(e){return{stdout:``,stderr:`doctor: ${e instanceof Error?e.message:String(e)}\n`,code:2}}let r=Wm(n);return{stdout:r.map(yA).join(``),stderr:``,code:+!r.every(e=>e.verdict.ok)}}function xA(e){e.length>0&&(t.stderr.write(`doctor: takes no arguments
198
198
  Usage: cc-candybar doctor
199
- `),t.exit(2));let n=pA(ND(),t.env);t.stdout.write(n.stdout),t.stderr.write(n.stderr),t.exit(n.code)}function hA(){return dA(t.env.COLUMNS,t.stderr.columns)}function gA(){return dA(t.env.LINES,t.stderr.rows)}const _A=[`SSH_CONNECTION`,`SSH_CLIENT`,`SSH_TTY`],vA=e=>e.some(e=>t.argv.includes(e));function yA(){return _A.some(e=>(t.env[e]??``)!==``)}function bA(){console.log(ym)}async function xA(){try{vA(gm.help)&&(bA(),t.exit(0)),vA(gm.version)&&(console.log(`cc-candybar ${Uv}`),t.exit(0));let e=t.argv[2];if(e===`install`&&(await Cy(t.argv.slice(3)),t.exit(0)),e===`install-url-handler`&&(vy(),t.exit(0)),e===`url-handle`){await by(t.argv[3]);return}if(e===`daemon`){dk();return}if(e===`daemon-stats`&&(await Pk(t.argv.slice(3)),t.exit(0)),e===`check`||e===`lint`){await oA(t.argv.slice(3));return}if(e===`schema`){Xk();return}if(e===`doctor`){mA(t.argv.slice(3));return}zO(e)&&(await Vk(e,t.argv.slice(3)),t.exit(0)),t.stdin.isTTY===!0&&(console.error(`Error: This tool requires input from Claude Code
199
+ `),t.exit(2));let n=bA(BD(),t.env);t.stdout.write(n.stdout),t.stderr.write(n.stderr),t.exit(n.code)}function SA(){return vA(t.env.COLUMNS,t.stderr.columns)}function CA(){return vA(t.env.LINES,t.stderr.rows)}const wA=[`SSH_CONNECTION`,`SSH_CLIENT`,`SSH_TTY`],TA=e=>e.some(e=>t.argv.includes(e));function EA(){return wA.some(e=>(t.env[e]??``)!==``)}function DA(){console.log(Dm)}async function OA(){try{TA(wm.help)&&(DA(),t.exit(0)),TA(wm.version)&&(console.log(`cc-candybar ${Zv}`),t.exit(0));let e=t.argv[2];if(e===`install`&&(await jy(t.argv.slice(3)),t.exit(0)),e===`install-url-handler`&&(Ey(),t.exit(0)),e===`url-handle`){await Oy(t.argv[3]);return}if(e===`daemon`){vk();return}if(e===`daemon-stats`&&(await Vk(t.argv.slice(3)),t.exit(0)),e===`check`||e===`lint`){await pA(t.argv.slice(3));return}if(e===`schema`){rA();return}if(e===`doctor`){xA(t.argv.slice(3));return}KO(e)&&(await Jk(e,t.argv.slice(3)),t.exit(0)),t.stdin.isTTY===!0&&(console.error(`Error: This tool requires input from Claude Code
200
200
 
201
201
  cc-candybar is designed to be used as a Claude Code statusLine command.
202
202
  It reads hook data from stdin and outputs formatted statusline.
@@ -212,4 +212,4 @@ Add to ~/.claude/settings.json:
212
212
  Run with --help for more options.
213
213
 
214
214
  To test output manually:
215
- 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)),E(`Working directory: ${t.cwd()}`),E(`Process args:`,t.argv);let r=await n(t.stdin);E(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),bA(),t.exit(1));let i=uA(await U_(r,t.argv,t.cwd(),{termCols:hA(),termRows:gA(),ssh:yA(),tmux:xm(t.env),configEnv:Qk(t.env)}));i.debug!==null&&E(i.debug),i.kick&&nv(),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)}}xA();export{};
215
+ 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)),E(`Working directory: ${t.cwd()}`),E(`Process args:`,t.argv);let r=await n(t.stdin);E(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),DA(),t.exit(1));let i=_A(await Z_(r,t.argv,t.cwd(),{termCols:SA(),termRows:CA(),ssh:EA(),tmux:Vm(t.env),configEnv:aA(t.env)}));i.debug!==null&&E(i.debug),i.kick&&uv(),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)}}OA();export{};