@promptctl/cc-candybar 1.133.0 → 1.135.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,5 +1,5 @@
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,realpathSync as o,statSync as s,watch as c}from"node:fs";import l,{basename as u,dirname as d,isAbsolute as f,join as p,sep as m}from"node:path";import h,{homedir as g}from"node:os";import{spawn as _,spawnSync as v}from"node:child_process";import{inspect as y,parseArgs as b,types as x}from"node:util";import S from"node:net";import C from"node:v8";import{URL as ee,URLSearchParams as te,fileURLToPath as ne,pathToFileURL as re}from"node:url";import ie,{createHash as ae,randomUUID as w}from"node:crypto";import{open as T,readFile as oe,readdir as E,stat as se}from"node:fs/promises";import{clearInterval as ce,setInterval as le}from"node:timers";import{get as ue}from"node:https";import{setTimeout as de}from"node:timers/promises";import{createInterface as fe}from"node:readline";var pe=Object.create,me=Object.defineProperty,he=Object.getOwnPropertyDescriptor,ge=Object.getOwnPropertyNames,_e=Object.getPrototypeOf,ve=Object.prototype.hasOwnProperty,ye=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),be=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ge(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ve.call(e,s)&&s!==n&&me(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=he(t,s))||r.enumerable});return e},xe=(e,t,n)=>(n=e==null?{}:pe(_e(e)),be(t||!e||!e.__esModule?me(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}function Se(e,t){return x.isNativeError(e)?e.code===`ENOENT`&&t!==void 0&&!a(t)?`working directory does not exist: ${t}`:e.message:String(e)}const Ce={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3,"doctor.font":1e3,"doctor.process":1e3,"claude-input.type":1e3},we=new Map;function Te(e){let t=Ce[e];if(t===void 0)return{allowed:!0};let n=we.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 Ee(e){we.set(e,Date.now())}function De(e){return e.env??process.env}function Oe(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 ke=null;function Ae(e){ke=e}function je(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Me(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();return ke?.onStart(e.category),new Promise(t=>{let r;try{r=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){ke?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(r,e.cwd)});return}let i=``,a=``,o=!1,s=null,c=null,l=null,u=()=>m(`aborted`),d=t=>{o||(o=!0,s&&clearTimeout(s),c&&clearTimeout(c),e.signal?.removeEventListener(`abort`,u),ke?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{je(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)})}},m=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`,t=>{f({ok:!1,reason:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:null,error:Se(t,e.cwd)})}),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(()=>m(`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 Ne(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=v(e.bin,e.args??[],{cwd:e.cwd,env:De(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});ke?.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:Se(t.error,e.cwd)};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 ke?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}}function Pe(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=Fe(e);return ke?.onEnd(e.category,Date.now()-n),r}function Fe(e){let t;try{t=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),detached:!0,stdio:`ignore`})}catch(t){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}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 Ie(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 Le(e,t){let n=e[t];return n&&n.length>0?n:void 0}function Re(e=process.env){let t=Le(e,`XDG_STATE_HOME`)??l.join(h.homedir(),`.local`,`state`);return l.join(t,`cc-candybar`)}function ze(){let e=Le(process.env,`XDG_CACHE_HOME`)??l.join(h.homedir(),`.cache`);return l.join(e,`cc-candybar`)}function Be(){return Re()}function Ve(){return process.env.CC_CANDYBAR_SOCKET||He()}function He(){let e=h.userInfo().uid;return l.join(`/tmp`,`cc-candybar-${e}`,`socket`)}function Ue(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=h.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 We(e){Ue(l.dirname(e));for(let t of[e,Ge(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function Ge(e){return`${e}.lease`}function Ke(){return Ge(Ve())}function qe(){return l.join(Re(),`session-state.json`)}function Je(){return l.join(Re(),`settings-history.json`)}function Ye(){let e=process.env.CC_CANDYBAR_DAEMON_REGISTRY_DIR;if(e)return e;let t=h.userInfo().uid;return l.join(`/tmp`,`cc-candybar-${t}`,`daemons`)}function Xe(){return l.join(Re(),`spawn.lock`)}function Ze(){return l.join(Re(),`spawn.cooldown`)}function Qe(){return l.join(Re(),`spawn.backoff`)}function $e(){return l.join(Re(),`diagnostics`)}function et(e=process.env){return l.join(Re(e),`daemon.log`)}const tt=[`MEMENTO_CONFIG_HOME`,`XDG_CONFIG_HOME`];function nt(e,t){return Object.fromEntries(tt.flatMap(n=>{let r=e[n]??``;return r===``?[]:[[n,l.resolve(t,r)]]}))}const rt=[`TERM_PROGRAM`,`TERM_PROGRAM_VERSION`,`TERM`,`ITERM_PROFILE`,`XDG_CONFIG_HOME`];function it(e){return Object.fromEntries(rt.flatMap(t=>{let n=e[t]??``;return n===``?[]:[[t,n]]}))}const at=Object.keys({termCols:!0,termRows:!0,ssh:!0,tmux:!0,configEnv:!0,claudeConfigDir:!0,mementoEnv:!0,terminalEnv:!0});function ot(e){let t=pt(e.termCols),n=pt(e.termRows),r=mt(e.ssh),i=ft(e.tmux),a=dt(e.configEnv),o=dt(e.claudeConfigDir),s=lt(e.mementoEnv),c=ut(e.terminalEnv);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},...o!==void 0&&{claudeConfigDir:o},...s!==void 0&&{mementoEnv:s},...c!==void 0&&{terminalEnv:c}}}function st(e,t){return at.filter(n=>e[n]!==void 0&&t[n]===void 0).map(t=>({hint:t,sent:e[t]}))}function ct(e){return e.length===0?null:`Client hints refused: ${e.map(({hint:e,sent:t})=>`${e}=${JSON.stringify(t)}`).join(`, `)} — is the statusline client older than the daemon? Reinstall it (\`cc-candybar install\`, or \`just install-rust\` in a checkout).`}function lt(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e,n=tt.filter(e=>t[e]!==void 0);return n.every(e=>dt(t[e])!==void 0)?Object.fromEntries(n.map(e=>[e,t[e]])):void 0}function ut(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e,n=rt.filter(e=>t[e]!==void 0);return n.every(e=>typeof t[e]==`string`&&t[e]!==``)?Object.fromEntries(n.map(e=>[e,t[e]])):void 0}function dt(e){return typeof e==`string`&&l.isAbsolute(e)?e:void 0}function ft(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 O=1e4;function pt(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>O?O:t}function mt(e){return typeof e==`boolean`?e:void 0}function ht(e){return typeof e==`string`&&e!==``&&e.length<=64?e:null}var gt=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function k(e){let t=Buffer.from(JSON.stringify(e),`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function _t(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 gt(`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 gt(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function vt(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=_t(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(k(t))})}async function yt(e,t,n){let r=null;try{r=await wt(Ve(),t.connectMs);let i=await vt(r,{v:3,...e},t.budgetMs);return St(e.kind,i,n)}catch(e){return Ct(e)}finally{r&&r.destroy()}}function bt(e,t){return typeof e==`string`?e:t}function xt(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function St(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=bt(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:xt(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 Ct(e){if(e instanceof gt||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 wt(e,t){return new Promise((n,r)=>{let i=S.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 Tt(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 Et=`1.133.0`,Dt={connectMs:50,budgetMs:150},Ot={connectMs:50,budgetMs:200};function kt(e){let t=e.output;return typeof t==`string`?t:void 0}function At(e,t,n,r){return yt({kind:`render`,hookData:e,args:t,cwd:n,...r},Dt,kt)}function jt(e,t){return yt({kind:`click`,verb:e,value:t,clientVersion:Et},Ot,kt)}let Mt=null;function Nt(e){if(Mt!==null)return Mt;r.mkdirSync(l.dirname(e),{recursive:!0});try{Mt=r.statSync(e).size}catch{Mt=0}return Mt}function Pt(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{}Mt=0}const Ft=(e,t)=>D(t);function A(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=et(),t=Nt(e);r.appendFileSync(e,n),Mt=t+Buffer.byteLength(n,`utf8`),Mt>=5242880&&Pt(e)}catch(e){Mt=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}function It(e){let t=[];for(let n of e){let e=n.read();if(e.kind===`text`)return`# memory report from: ${n.name}\n${e.text}`;t.push(`# ${n.name}: unavailable — ${e.reason}`)}return[`# memory report: no probe answered`,...t.length>0?t:[`# no probe is known for this platform`]].join(`
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,realpathSync as o,statSync as s,watch as c}from"node:fs";import l,{basename as u,dirname as d,isAbsolute as f,join as p,sep as m}from"node:path";import h,{homedir as g}from"node:os";import{spawn as _,spawnSync as v}from"node:child_process";import{inspect as y,parseArgs as b,types as x}from"node:util";import S from"node:net";import C from"node:v8";import{URL as ee,URLSearchParams as te,fileURLToPath as ne,pathToFileURL as re}from"node:url";import ie,{createHash as ae,randomUUID as w}from"node:crypto";import{open as T,readFile as oe,readdir as E,stat as se}from"node:fs/promises";import{clearInterval as ce,setInterval as le}from"node:timers";import{get as ue}from"node:https";import{setTimeout as de}from"node:timers/promises";import{createInterface as fe}from"node:readline";var pe=Object.create,me=Object.defineProperty,he=Object.getOwnPropertyDescriptor,ge=Object.getOwnPropertyNames,_e=Object.getPrototypeOf,ve=Object.prototype.hasOwnProperty,ye=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),be=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ge(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ve.call(e,s)&&s!==n&&me(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=he(t,s))||r.enumerable});return e},xe=(e,t,n)=>(n=e==null?{}:pe(_e(e)),be(t||!e||!e.__esModule?me(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}function Se(e,t){return x.isNativeError(e)?e.code===`ENOENT`&&t!==void 0&&!a(t)?`working directory does not exist: ${t}`:e.message:String(e)}const Ce={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3,"doctor.font":1e3,"doctor.process":1e3,"claude-input.type":1e3},we=new Map;function Te(e){let t=Ce[e];if(t===void 0)return{allowed:!0};let n=we.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 Ee(e){we.set(e,Date.now())}function De(e){return e.env??process.env}function Oe(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 ke=null;function Ae(e){ke=e}function je(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Me(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();return ke?.onStart(e.category),new Promise(t=>{let r;try{r=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){ke?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(r,e.cwd)});return}let i=``,a=``,o=!1,s=null,c=null,l=null,u=()=>m(`aborted`),d=t=>{o||(o=!0,s&&clearTimeout(s),c&&clearTimeout(c),e.signal?.removeEventListener(`abort`,u),ke?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{je(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)})}},m=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`,t=>{f({ok:!1,reason:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:null,error:Se(t,e.cwd)})}),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(()=>m(`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 Ne(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=v(e.bin,e.args??[],{cwd:e.cwd,env:De(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});ke?.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:Se(t.error,e.cwd)};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 ke?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}}function Pe(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=Fe(e);return ke?.onEnd(e.category,Date.now()-n),r}function Fe(e){let t;try{t=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),detached:!0,stdio:`ignore`})}catch(t){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}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 Ie(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 Le(e,t){let n=e[t];return n&&n.length>0?n:void 0}function Re(e=process.env){let t=Le(e,`XDG_STATE_HOME`)??l.join(h.homedir(),`.local`,`state`);return l.join(t,`cc-candybar`)}function ze(){let e=Le(process.env,`XDG_CACHE_HOME`)??l.join(h.homedir(),`.cache`);return l.join(e,`cc-candybar`)}function Be(){return Re()}function Ve(){return process.env.CC_CANDYBAR_SOCKET||He()}function He(){let e=h.userInfo().uid;return l.join(`/tmp`,`cc-candybar-${e}`,`socket`)}function Ue(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=h.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 We(e){Ue(l.dirname(e));for(let t of[e,Ge(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function Ge(e){return`${e}.lease`}function Ke(){return Ge(Ve())}function qe(){return l.join(Re(),`session-state.json`)}function Je(){return l.join(Re(),`settings-history.json`)}function Ye(){let e=process.env.CC_CANDYBAR_DAEMON_REGISTRY_DIR;if(e)return e;let t=h.userInfo().uid;return l.join(`/tmp`,`cc-candybar-${t}`,`daemons`)}function Xe(){return l.join(Re(),`spawn.lock`)}function Ze(){return l.join(Re(),`spawn.cooldown`)}function Qe(){return l.join(Re(),`spawn.backoff`)}function $e(){return l.join(Re(),`diagnostics`)}function et(e=process.env){return l.join(Re(e),`daemon.log`)}const tt=[`MEMENTO_CONFIG_HOME`,`XDG_CONFIG_HOME`];function nt(e,t){return Object.fromEntries(tt.flatMap(n=>{let r=e[n]??``;return r===``?[]:[[n,l.resolve(t,r)]]}))}const rt=[`TERM_PROGRAM`,`TERM_PROGRAM_VERSION`,`TERM`,`ITERM_PROFILE`,`XDG_CONFIG_HOME`];function it(e){return Object.fromEntries(rt.flatMap(t=>{let n=e[t]??``;return n===``?[]:[[t,n]]}))}const at=Object.keys({termCols:!0,termRows:!0,ssh:!0,tmux:!0,configEnv:!0,claudeConfigDir:!0,mementoEnv:!0,terminalEnv:!0});function ot(e){let t=pt(e.termCols),n=pt(e.termRows),r=mt(e.ssh),i=ft(e.tmux),a=dt(e.configEnv),o=dt(e.claudeConfigDir),s=lt(e.mementoEnv),c=ut(e.terminalEnv);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},...o!==void 0&&{claudeConfigDir:o},...s!==void 0&&{mementoEnv:s},...c!==void 0&&{terminalEnv:c}}}function st(e,t){return at.filter(n=>e[n]!==void 0&&t[n]===void 0).map(t=>({hint:t,sent:e[t]}))}function ct(e){return e.length===0?null:`Client hints refused: ${e.map(({hint:e,sent:t})=>`${e}=${JSON.stringify(t)}`).join(`, `)} — is the statusline client older than the daemon? Reinstall it (\`cc-candybar install\`, or \`just install-rust\` in a checkout).`}function lt(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e,n=tt.filter(e=>t[e]!==void 0);return n.every(e=>dt(t[e])!==void 0)?Object.fromEntries(n.map(e=>[e,t[e]])):void 0}function ut(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e,n=rt.filter(e=>t[e]!==void 0);return n.every(e=>typeof t[e]==`string`&&t[e]!==``)?Object.fromEntries(n.map(e=>[e,t[e]])):void 0}function dt(e){return typeof e==`string`&&l.isAbsolute(e)?e:void 0}function ft(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 O=1e4;function pt(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>O?O:t}function mt(e){return typeof e==`boolean`?e:void 0}function ht(e){return typeof e==`string`&&e!==``&&e.length<=64?e:null}var gt=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function k(e){let t=Buffer.from(JSON.stringify(e),`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function _t(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 gt(`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 gt(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function vt(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=_t(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(k(t))})}async function yt(e,t,n){let r=null;try{r=await wt(Ve(),t.connectMs);let i=await vt(r,{v:3,...e},t.budgetMs);return St(e.kind,i,n)}catch(e){return Ct(e)}finally{r&&r.destroy()}}function bt(e,t){return typeof e==`string`?e:t}function xt(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function St(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=bt(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:xt(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 Ct(e){if(e instanceof gt||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 wt(e,t){return new Promise((n,r)=>{let i=S.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 Tt(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 Et=`1.135.0`,Dt={connectMs:50,budgetMs:150},Ot={connectMs:50,budgetMs:200};function kt(e){let t=e.output;return typeof t==`string`?t:void 0}function At(e,t,n,r){return yt({kind:`render`,hookData:e,args:t,cwd:n,...r},Dt,kt)}function jt(e,t){return yt({kind:`click`,verb:e,value:t,clientVersion:Et},Ot,kt)}let Mt=null;function Nt(e){if(Mt!==null)return Mt;r.mkdirSync(l.dirname(e),{recursive:!0});try{Mt=r.statSync(e).size}catch{Mt=0}return Mt}function Pt(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{}Mt=0}const Ft=(e,t)=>D(t);function A(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=et(),t=Nt(e);r.appendFileSync(e,n),Mt=t+Buffer.byteLength(n,`utf8`),Mt>=5242880&&Pt(e)}catch(e){Mt=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}function It(e){let t=[];for(let n of e){let e=n.read();if(e.kind===`text`)return`# memory report from: ${n.name}\n${e.text}`;t.push(`# ${n.name}: unavailable — ${e.reason}`)}return[`# memory report: no probe answered`,...t.length>0?t:[`# no probe is known for this platform`]].join(`
3
3
  `)}function Lt(e,t){return e===`darwin`?[Rt(`footprint`,[`-p`,String(t)]),Rt(`vmmap`,[`--summary`,String(t)])]:e===`linux`?[zt(`/proc/self/smaps_rollup`),zt(`/proc/self/status`)]:[]}function Rt(e,t){return{name:`${e} ${t.join(` `)}`,read:()=>{let n=Ne({bin:e,args:[...t],timeoutMs:5e3,category:`limits.memory-report`});return n.ok?n.stdout.trim().length>0?{kind:`text`,text:n.stdout}:{kind:`unavailable`,reason:`exited 0 but printed nothing`}:{kind:`unavailable`,reason:`${n.reason}${n.error===void 0?``:`: ${n.error}`}${Bt(n.stderr)}`}}}}function zt(e){return{name:e,read:()=>{try{let t=r.readFileSync(e,`utf8`);return t.trim().length>0?{kind:`text`,text:t}:{kind:`unavailable`,reason:`empty file`}}catch(e){return{kind:`unavailable`,reason:e.message}}}}}function Bt(e){let t=e.split(`
4
4
  `).map(e=>e.trim()).find(e=>e.length>0);return t===void 0?``:` (${t})`}const Vt=`CC_CANDYBAR_RSS_LIMIT_MB`;function Ht(e){let t=e[Vt];if(t===void 0)return 512;let n=/^\d+$/.test(t)?Number(t):NaN;if(!Number.isSafeInteger(n)||n<=0)throw Error(`${Vt} must be a positive integer (MB), got ${JSON.stringify(t)}`);return n}function Ut(e){return Ht(e)*2}const j=1024*1024;function Wt(e){return Ht(e)*j}const Gt={memoryReport:{prefix:`memory-`,suffix:`.txt`},heapSnapshot:{prefix:`heap-`,suffix:`.heapsnapshot`}};function Kt(e,t,n){let{prefix:r,suffix:i}=Gt[t];return l.join(e,`${r}${n}${i}`)}function qt(e){for(let t of Object.keys(Gt)){let{prefix:n,suffix:r}=Gt[t];if(e.startsWith(n)&&e.endsWith(r))return t}return null}function Jt(e){let t=e.rssLimitBytes??512*j,n=e.snapshotsKeep??3,r=!1;function i(){if(r)return!0;let{rss:i,heapTotal:a}=e.memoryBytes();if(i<=t)return!1;r=!0,e.log(`warn`,`RSS ${i} > limit ${t} (v8 heap ${a}); recording memory then shutting down`);let o=`${new Date(e.now()).toISOString().replace(/[:.]/g,`-`)}-${e.pid}`;return Yt(e.log,`memory report`,()=>{let t=Kt(e.snapshotDir,`memoryReport`,o);e.writeMemoryReport(t,e.captureMemoryReport()),e.log(`info`,`memory report written: ${t}`)}),Yt(e.log,`heap snapshot`,()=>{let t=Kt(e.snapshotDir,`heapSnapshot`,o);e.log(`info`,`heap snapshot written: ${e.writeHeapSnapshot(t)}`)}),Yt(e.log,`artifact rotation`,()=>{Xt(e.listArtifacts(),n,e.removeFile)}),e.shutdown(0),!0}function a(){let{rss:n,heapTotal:r}=e.memoryBytes();return n>t*.75?`rss ${n} approaching limit ${t} (v8 heap ${r})`:null}function o(e=6e4){let t=setInterval(()=>{i()},e);return t.unref(),{disarm:()=>clearInterval(t)}}return{checkRss:i,describeNextRestart:a,arm:o}}function Yt(e,t,n){try{n()}catch(n){e(`warn`,`${t} failed: ${n.message}`)}}function M(e){let t=e.slice(e.lastIndexOf(`/`)+1),n=qt(t);if(n===null)return t;let{prefix:r,suffix:i}=Gt[n];return t.slice(r.length,t.length-i.length)}function Xt(e,t,n){let r=new Map;for(let t of e){let e=M(t),n=r.get(e);n===void 0?r.set(e,[t]):n.push(t)}let i=[...r.keys()].sort((e,t)=>t.localeCompare(e));for(let e of i.slice(t))for(let t of r.get(e)??[])try{n(t)}catch{}}function Zt(e,t,n={}){let i=Be();return{now:()=>Date.now(),pid:process.pid,snapshotDir:i,log:A,memoryBytes:()=>{let e=process.memoryUsage();return{rss:e.rss,heapTotal:e.heapTotal}},captureMemoryReport:()=>It(Lt(process.platform,process.pid)),writeMemoryReport:(e,t)=>r.writeFileSync(e,t,{mode:384}),writeHeapSnapshot:e=>C.writeHeapSnapshot(e),listArtifacts:()=>{try{return r.readdirSync(i).filter(e=>qt(e)!==null).map(e=>l.join(i,e))}catch{return[]}},removeFile:e=>r.unlinkSync(e),shutdown:t,startedAtMs:e,...n}}function Qt(e={}){if(hn()!==null)return;let n=e.spawn??gn,r=fn();if(r.kind===`contended`){let e=en();e!==null&&e>2e3&&(t.stderr.write(`cc-candybar: spawn-lock held ${e}ms (likely crashed holder) — spawning unlocked\n`),$t(n));return}if(r.kind===`error`){t.stderr.write(`cc-candybar: spawn-lock unavailable (${r.reason}) — spawning unlocked\n`),$t(n);return}try{$t(n)}finally{mn()}}function $t(e){cn()&&tn(e)}function en(){try{let e=r.statSync(Xe());return Date.now()-e.mtimeMs}catch{return null}}function tn(e){try{e()||t.stderr.write(`cc-candybar: daemon spawn returned false (unable to resolve script path?)
5
5
  `)}catch(e){t.stderr.write(`cc-candybar: daemon spawn failed: ${e.message}\n`)}}function nn(e,t){return e===null?{kind:`allow`}:e<-1e4?{kind:`allow-future-garbage`,futureMs:-e}:e<t?{kind:`deny`}:{kind:`allow`}}function rn(e){return Math.min(3e3*2**Math.min(Math.max(e,0),5),6e4)}function an(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 on(e,n){try{r.mkdirSync(l.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 sn(){try{r.unlinkSync(Qe())}catch(e){e.code!==`ENOENT`&&t.stderr.write(`cc-candybar: could not reset spawn.backoff: ${e.message}\n`)}}function cn(){let e=Ze(),n=Qe(),r=an(n),i=nn(ln(e),rn(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`),un(e),on(n,Math.min(r+1,5)),!0)}function ln(e){try{return Date.now()-r.statSync(e).mtimeMs}catch{return null}}function un(e){try{r.mkdirSync(l.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 dn=null;function fn(){let e=Xe();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 dn={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(!pn(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 pn(e){try{let t=r.statSync(e);return Date.now()-t.mtimeMs>1e4}catch{return!0}}function mn(){if(!dn)return;let{fd:e,path:t}=dn;dn=null;try{r.closeSync(e)}catch{}try{r.unlinkSync(t)}catch{}}function hn(){try{return r.mkdirSync(Be(),{recursive:!0}),null}catch(e){return`mkdir ${Be()}: ${e.message}`}}function gn(){let e=t.execPath,n=t.argv[1];return n?Pe({bin:e,args:[`--max-old-space-size=${Ut(t.env)}`,n,`daemon`],category:`daemon-spawn`}).ok:!1}const _n=`cc-candybar`,vn=`dispatch`,yn=`set-state`,N=`step-state`,bn=`copy`,xn=`open-vscode`,Sn=`toolbar-toggle`,Cn=`show-config-error`,wn=`show-config-warning`,P=`set-config`,Tn=`step-config`,En=`save`,Dn=`save-preset`,On=`save-theme-default`,kn=`delete-preset`,An=`reset-config`,jn=`apply-layout-op`,Mn=`undo`,Nn=`redo`,Pn=`back`,Fn=`rewind`,In=`apply-update`,Ln=`doctor-run`,Rn=`doctor-fix`,zn=`doctor-mark`,Bn=`doctor-probe`,Vn=`ceiling`,Hn=`slash`;function Un(e){return e.map(encodeURIComponent).join(`/`)}function Wn(e){return e.length===0?[]:e.split(`/`).map(decodeURIComponent)}function Gn(e){return`${_n}://${vn}/${e.map(e=>`e=${encodeURIComponent(`${e.verb}/${Un(e.args)}`)}`).join(`&`)}`}function Kn(e){return new te(e).getAll(`e`).map(Xn)}const qn=new Set([yn,An]);function Jn(e){return e.reduce((e,t)=>{let n=e.at(-1),r=n&&Yn(n,t);return r?[...e.slice(0,-1),r]:[...e,t]},[])}function Yn(e,t){if(e.verb!==t.verb||!qn.has(e.verb))return;let[n,r]=[Xn(e.value),Xn(t.value)];return n.verb===r.verb?{verb:e.verb,value:`${n.verb}/${n.value}/${r.value}`}:void 0}function Xn(e){let t=e.indexOf(`/`);return t===-1?{verb:e,value:``}:{verb:e.slice(0,t),value:e.slice(t+1)}}const Zn=`closed`,Qn=`🍫`;function $n(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 er(e,t,n,r){let i=$n(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function tr(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function nr(e,t,n,r,i){return{kind:`segment`,name:e,opens:{ref:t,body:n,placement:r},...i!==void 0&&{when:i}}}function rr(e,...t){return`{{ and ${[e,...t].map(ir).join(` `)} }}`}function ir(e){return`(eq .${e.variable} "${tr(e.member)}")`}function ar(e,t,n){return`{{ ${or(e,sr(t),sr(n))} }}`}function or(e,t,n){return`action "${e}" ${t} ${n}`}function sr(e){return`"${tr(e)}"`}function cr(e,t){return{kind:`state`,key:e,default:t}}function lr(e,t){return{set:e,cycle:[Zn,t]}}const ur=/^[A-Za-z0-9_./,:@%+-][A-Za-z0-9_./,:@%+=-]*$/;function dr(e){return`'${e.replaceAll(`'`,`'\\''`)}'`}function fr(e){return ur.test(e)?e:dr(e)}var pr=ye(((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]/})),mr=ye(((e,t)=>{let n=pr();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)}}})),hr=ye(((e,t)=>{let n=mr(),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===`
@@ -38,46 +38,46 @@ import{createRequire as e}from"node:module";import t from"node:process";import{j
38
38
  Restart Claude Code to pick up the new statusline.
39
39
  Tip: every bar carries a settings menu — click it (${Qn} by\n default) for quick actions, preset switching, edit mode, and clickable\n theme/style/variation/shade/endcaps/wrap/padding controls.\n`}async function Yi(e){let t=e.includes(`--force`),n=e.filter(e=>e!==`--force`),r=n.length>0?n:[...Ei],i=Vi();process.platform===`darwin`?Ui(i.distPath):process.stdout.write(`Skipping URL handler (cmd-click verbs are macOS-only).
40
40
  `),Xi(i.binPath,r,t),process.stdout.write(Ji());let a=wi(xi,Ci(Et,await Si(xi,fetch,`https://registry.npmjs.org`)));process[a.stream].write(a.text)}function Xi(e,t,n,i){let a=i??ui(li(ci(process.env,process.cwd())));r.mkdirSync(l.dirname(a),{recursive:!0});let o=pi(a).statusLine,s=mi(o)?o.command:void 0,c=[e,fr(e),dr(e)],u=typeof s==`string`&&(s.startsWith(`pnpm dlx @promptctl/cc-candybar@`)||c.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}let d=Oi(e,t);Ie(a,(mi(o)?[[[`statusLine`,`type`],`command`],[[`statusLine`,`command`],d]]:[[[`statusLine`],{type:`command`,command:d}]]).reduce((e,[t,n])=>Jr(e,t,JSON.stringify(n,null,2),Nr),fi(a))),process.stdout.write(`Updated ${a}\n`)}function Zi(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 Qi(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 $i(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 ea(e,t){let n=Qi(e);if(n.kind===`owned`&&n.pid===t)try{r.unlinkSync(e)}catch{}}function ta(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 na(e,t,n,r){let i=ra(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 ra(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 ia(e){let t=!1;function n(){let n=na(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 aa(e,t=Ne){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 oa(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 sa(e,t=aa){let n=t(e);return n.kind===`start`?n.token:null}const ca=`CC_CANDYBAR_PARENT_PID`;function la(e){let t=e[ca];if(t===void 0)return{kind:`outlives-nobody`};let n=Number.parseInt(t,10);if(!Number.isInteger(n)||n<=0)throw Error(`${ca} must be a positive integer pid, got ${JSON.stringify(t)}`);return{kind:`anchored`,pid:n}}function ua(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 da(e){try{return t.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function fa(){let e=Number(process.env.CC_CANDYBAR_DAEMON_CEILING??``);return Number.isInteger(e)&&e>0?e:16}function pa(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 ma(e){try{return r.readdirSync(e).filter(e=>e.endsWith(`.json`)).map(t=>l.join(e,t))}catch{return[]}}function ha(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 ga(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 _a(e){if(!e.isolated)return{decision:pa(!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=pa(!0,ga(t,e.isSameLiveProcess,e.removeFile),e.ceiling);if(!n.allow)return{decision:n,registryPath:null};let r=l.join(e.registryDir,`pid-${e.pid}.json`);return e.writeEntry(r,{pid:e.pid,startTime:e.startTime}),{decision:n,registryPath:r}}function va(e,t,n,r){let i=n(e);if(i!==null&&i.pid===t)try{r(e)}catch{}}function ya(e,t={}){return{isolated:!!process.env.CC_CANDYBAR_SOCKET,registryDir:Ye(),ceiling:fa(),pid:process.pid,startTime:e,isSameLiveProcess:(e,t)=>oa(e,t,{readStartTime:aa,pidAlive:da}),listFiles:ma,readEntry:ha,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?Ue:e=>{Ue(l.dirname(e)),Ue(e)},...t}}const ba={theme:{configKey:`palette`,sessionKey:`theme`,effectiveVar:`theme.effective`,label:`🎨 theme`},preset:{configKey:`preset`,sessionKey:`preset`,effectiveVar:`preset.effective`,label:`▦`},style:{configKey:`style`,sessionKey:`style`,effectiveVar:`style.effective`,label:`◐`},effect:{configKey:`effect`,sessionKey:`effect`,effectiveVar:`effect.effective`,label:`✨`},endcaps:{configKey:`endcaps`,sessionKey:`endcaps`,effectiveVar:`endcaps.effective`,label:`✦`},variation:{configKey:`variation`,sessionKey:`variation`,effectiveVar:`variation.effective`,label:`🎼`},shade:{configKey:`shade`,sessionKey:`shade`,effectiveVar:`shade.effective`,label:`🔆`},transitions:{configKey:`transitions`,sessionKey:`transitions`,effectiveVar:`transitions.effective`,label:`fade in/out`},autoWrap:{configKey:`autoWrap`,sessionKey:`autoWrap`,effectiveVar:`autoWrap.effective`,label:`wrap`},padding:{configKey:`padding`,sessionKey:`padding`,effectiveVar:`padding.effective`,label:`padding`},updateNotice:{configKey:`updateNotice`,sessionKey:`updateNotice`,effectiveVar:`updateNotice.effective`,label:`update notice`}},xa=Object.values(ba),Sa=[{configKey:`charset`,effectiveVar:`charset.effective`},{configKey:`colorCompatibility`,effectiveVar:`colorCompatibility.effective`}],Ca=new Set(Sa.map(e=>e.configKey)),wa=new Map([...xa,...Sa].map(e=>[e.configKey,e.effectiveVar])),Ta=new Map(xa.map(e=>[e.sessionKey,e.effectiveVar]));function Ea(e){return Object.fromEntries(Object.keys(ba).map(t=>[t,e(t)]))}const Da=new Map(Object.keys(ba).map(e=>[ba[e].sessionKey,e]));function Oa({onlyFirst:e=!1}={}){return RegExp(`(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]`,e?void 0:`g`)}const ka=Oa();function Aa(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return!e.includes(`\x1B`)&&!e.includes(`›`)?e:e.replace(ka,``)}const ja=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],Ma=[12288,12288,65281,65376,65504,65510],Na=[8361,8361,65377,65470,65474,65479,65482,65487,65490,65495,65498,65500,65512,65518],Pa=[32,126,162,163,165,166,172,172,175,175,10214,10221,10629,10630],Fa=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],Ia=(e,t)=>{let n=0,r=Math.floor(e.length/2)-1;for(;n<=r;){let i=Math.floor((n+r)/2),a=i*2;if(t<e[a])r=i-1;else if(t>e[a+1])n=i+1;else return!0}return!1},La=ja[0],Ra=ja.at(-1),za=Ma[0],Ba=Ma.at(-1);Na[0],Na.at(-1),Pa[0],Pa.at(-1);const Va=Fa[0],Ha=Fa.at(-1),Ua=19968,[Wa,Ga]=Ka(Fa);function Ka(e){let t=e[0],n=e[1];for(let r=0;r<e.length;r+=2){let i=e[r],a=e[r+1];if(Ua>=i&&Ua<=a)return[i,a];a-i>n-t&&(t=i,n=a)}return[t,n]}const qa=e=>e<La||e>Ra?!1:Ia(ja,e),Ja=e=>e<za||e>Ba?!1:Ia(Ma,e),Ya=e=>e>=Wa&&e<=Ga?!0:e<Va||e>Ha?!1:Ia(Fa,e);function Xa(e){if(!Number.isSafeInteger(e))throw TypeError(`Expected a code point, got \`${typeof e}\`.`)}function Za(e,{ambiguousAsWide:t=!1}={}){return Xa(e),Ja(e)||Ya(e)||t&&qa(e)?2:1}const Qa=new Intl.Segmenter,$a=RegExp(`[^\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Nonspacing_Mark}\\p{Enclosing_Mark}\\p{Surrogate}]`,`v`),eo=RegExp(`\\p{Spacing_Mark}`,`v`),to=RegExp(`^\\p{RGI_Emoji}$`,`v`),no=/^[\d#*]\u20E3$/,ro=/\p{Extended_Pictographic}/gu;function io(e){if(e.length>50)return!1;if(no.test(e))return!0;if(e.includes(`‍`)){let t=e.match(ro);return t!==null&&t.length>=2}return!1}function ao(e){let t=e.search($a);return t===-1?void 0:e.slice(t)}function oo(e){return e>=4352&&e<=4447||e>=43360&&e<=43388}function so(e){return e>=4448&&e<=4519||e>=55216&&e<=55238}function co(e){return e>=4520&&e<=4607||e>=55243&&e<=55291}function lo(e){return oo(e)||so(e)||co(e)}function uo(e,t){let n=[];for(let t of e)$a.test(t)&&n.push(t.codePointAt(0));if(n.length===0)return;let r=0;for(let e=0;e<n.length;e++){let i=n[e];if(!lo(i)){if(r===0)return;for(let i=e;i<n.length;i++)r+=Za(n[i],t);return r}if(oo(i)&&so(n[e+1])){r+=2,e+=co(n[e+2])?2:1;continue}r+=Za(i,t)}return r}function fo(e,t){let n=0,r=!0;for(let i of e){if(r){r=!1;continue}(eo.test(i)||i>=`＀`&&i<=`￯`)&&(n+=Za(i.codePointAt(0),t))}return n}function po(e,t={}){if(typeof e!=`string`||e.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:r=!1}=t,i=e;if(!r&&(i.includes(`\x1B`)||i.includes(`›`))&&(i=Aa(i)),i.length===0)return 0;if(/^[\u0020-\u007E]*$/.test(i))return i.length;let a=0,o={ambiguousAsWide:!n};for(let{segment:e}of Qa.segment(i)){let t=ao(e);if(t===void 0)continue;if(to.test(e)||io(e)){a+=2;continue}let n=uo(t,o);if(n!==void 0){a+=n;continue}let r=t.codePointAt(0);a+=Za(r,o),a+=fo(t,o)}return a}var mo=class{entries=new Map;get size(){return this.entries.size}get(e,t){let n=this.entries.get(e);if(n!==void 0)return n;let r=t(e);return this.entries.size>=4096&&this.entries.clear(),this.entries.set(e,r),r}};const ho=new mo;function R(e){return e.length===0?0:e.length<=64?ho.get(e,po):po(e)}function go(e){return e}function _o(e){return e}function vo(e){return e>0?Math.floor(e):0}function yo(e,t){if(t<=0)return[``,e];if(t>=R(e))return[e,``];let n=Do(e,t);return[n+` `.repeat(t-R(n)),e.slice(n.length)]}function bo(e,t){let n=Do(e,t),r=t-R(n),[i=``]=r>0?Eo(e,_o(n.length)):[];return[n+` `.repeat(r),` `.repeat(R(i)-r)+e.slice(n.length+i.length)]}function xo(e,t){if(t<=0||e.length===0)return[e];let n=[],r=_o(0);for(;r<e.length;){let i=jo(e,r,t);n.push(e.slice(r,i)),r=i}return n}let So,Co;function wo(e){return Co?.text!==e&&(So??=new Intl.Segmenter(void 0,{granularity:`grapheme`}),Co={text:e,segments:So.segment(e)}),Co.segments}function To(e){return Array.from(Eo(e,_o(0)))}function*Eo(e,t){let n=wo(e);for(let r=t,i=n.containing(r);i;i=n.containing(r)){let t=i.index+i.segment.length;yield e.slice(r,t),r=_o(t)}}function Do(e,t){return e.slice(0,ko(Eo(e,_o(0)),t))}function Oo(e,t){return e.slice(e.length-ko(To(e).reverse(),t))}function ko(e,t){let n=0,r=0;for(let i of e){let e=R(i);if(n+e>t)break;n+=e,r+=i.length}return r}function Ao(e,t,n){return _o(t+ko(Eo(e,t),n))}function jo(e,t,n){let[r=``]=Eo(e,t);return _o(Math.max(Ao(e,t,n),t+r.length))}function Mo(e){if(!Number.isInteger(e)||e<1)throw RangeError(`tabSize must be a positive integer, got ${e}`);return e}function No(e,t){let[n,...r]=e.split(` `),i=[],a=[],o=(e,t)=>{let n=e.lastIndexOf(`
41
- `);return(n<0?t:0)+R(e.slice(n+1))},s=n,c=n,l=0,u=n.length,d=0;for(let e of r){l=o(c,l);let n=t-l%t;d+=n-1,i.push(u),a.push(d),s+=` `.repeat(n)+e,l+=n,c=e,u+=1+e.length}return{text:s,offsetOf:e=>{let t=0,n=i.length;for(;t<n;){let r=t+n>>1;i[r]<e?t=r+1:n=r}return e+(t===0?0:a[t-1])}}}var Po=class{name;dark;vars;constructor(e,t,n){this.name=e,this.dark=t;let r=n.get(`background`),i=r===void 0?Io(e):Fo(e,r);this.vars=new Map([...n].map(([e,t])=>[e,i(t,e)]))}get(e){return this.vars.get(e)}};function Fo(e,t){if(t.alpha!==1)throw RangeError(`palette ${JSON.stringify(e)}: background is the surface its translucent colours are drawn on, so it must be opaque; got ${t.hex}`);return e=>e.alpha===0?e:e.compositeOver(t)}function Io(e){return(t,n)=>{if(t.alpha!==1&&t.alpha!==0)throw RangeError(`palette ${JSON.stringify(e)}: ${n} is translucent (${t.hex}) but the palette has no "background" to draw it on`);return t}}function Lo(e){return e.toString(16).padStart(2,`0`)}function Ro(e){return Number.isInteger(e)&&e>=0&&e<=255}function zo(e,t){if(!Ro(t))throw RangeError(`ColorRgba.${e} must be an integer in [0, 255]; got ${t}`)}var z=class e{red;green;blue;alpha;constructor(e,t,n,r=1){if(this.red=e,this.green=t,this.blue=n,this.alpha=r,zo(`red`,e),zo(`green`,t),zo(`blue`,n),!Number.isFinite(r)||r<0||r>1)throw RangeError(`ColorRgba.alpha must be a finite number in [0, 1]; got ${r}`)}get hex(){let e=`#`+Lo(this.red)+Lo(this.green)+Lo(this.blue);return this.alpha===1?e:e+Lo(Math.round(this.alpha*255))}get rgb(){return this.alpha===1?`rgb(${this.red},${this.green},${this.blue})`:`rgba(${this.red},${this.green},${this.blue},${this.alpha})`}get normalized(){return[this.red/255,this.green/255,this.blue/255,this.alpha]}compositeOver(t){if(this.alpha===1)return this;let n=this.alpha;return new e(Math.round(t.red+(this.red-t.red)*n),Math.round(t.green+(this.green-t.green)*n),Math.round(t.blue+(this.blue-t.blue)*n),1)}};const Bo=new z(0,0,0);function Vo(e){let t=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*t(e.red)+.7152*t(e.green)+.0722*t(e.blue)}function Ho(e,t){return Uo(Vo(e),Vo(t))}function Uo(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function Wo(e,t){let n=e.red-t.red,r=e.green-t.green,i=e.blue-t.blue;return n*n+r*r+i*i}var Go=class{colors;firstIndex;matchMemo=new mo;readableMemo=new mo;constructor(e,t=0){this.colors=e,this.firstIndex=t}get(e){return this.colors[e-this.firstIndex]}luminanceCache;luminances(){return this.luminanceCache??=this.colors.map(Vo),this.luminanceCache}get size(){return this.colors.length}match(e){let t=`${e.red},${e.green},${e.blue},${e.alpha}`;return this.matchMemo.get(t,()=>this.nearest(e))}nearest(e){let t=0,n=1/0;for(let r=0;r<this.colors.length;r++){let i=this.colors[r],a=Wo(i,e);a<n&&(n=a,t=r)}return this.firstIndex+t}matchReadable(e,t,n){let r=`${e.red},${e.green},${e.blue}|${t.red},${t.green},${t.blue}|${n}`;return this.readableMemo.get(r,()=>this.nearestReadable(e,t,n))}nearestReadable(e,t,n){let r=Vo(t),i=0,a=!1,o=-1/0;for(let t=0;t<this.colors.length;t++){let s=this.colors[t],c=this.luminances()[t],l=Uo(c,r),u=l>=n,d=u?-Wo(s,e):l;(u&&!a||u===a&&d>o)&&(i=t,a=u,o=d)}return this.firstIndex+i}matchWhere(e,t){let n=this.colors.map(t=>Wo(t,e)),r=[...n.keys()].sort((e,t)=>n[e]-n[t]).find(e=>t(this.colors[e],this.firstIndex+e));return r===void 0?void 0:this.firstIndex+r}},B;(function(e){e[e.DEFAULT=0]=`DEFAULT`,e[e.STANDARD=1]=`STANDARD`,e[e.EIGHT_BIT=2]=`EIGHT_BIT`,e[e.TRUECOLOR=3]=`TRUECOLOR`,e[e.WINDOWS=4]=`WINDOWS`})(B||={});function Ko(e){switch(e){case B.DEFAULT:return 0;case B.STANDARD:case B.WINDOWS:return 1;case B.EIGHT_BIT:return 2;case B.TRUECOLOR:return 3}}const qo={truecolor:B.TRUECOLOR,256:B.EIGHT_BIT,ansi:B.STANDARD,none:null},Jo=new Map([[`0`,null],[`false`,null],[`1`,B.STANDARD],[`true`,B.STANDARD],[`2`,B.EIGHT_BIT],[`3`,B.TRUECOLOR],[`iTerm.app`,B.TRUECOLOR],[`Apple_Terminal`,B.EIGHT_BIT],[`vscode`,B.TRUECOLOR],[`Tabby`,B.TRUECOLOR],[`xterm-kitty`,B.TRUECOLOR],[`xterm-ghostty`,B.TRUECOLOR],[`wezterm`,B.TRUECOLOR],[`alacritty`,B.TRUECOLOR],[`foot`,B.TRUECOLOR],[`contour`,B.TRUECOLOR]]);function Yo(e={}){let t=Zo(e).NO_COLOR;if(t!==void 0&&t!==``)return null;let n=Xo(Zo(e));return n===void 0?$o(e):n}function Xo(e){let t=e.FORCE_COLOR;if(t===void 0||t===``)return;let n=Jo.get(t);return n===void 0?B.STANDARD:n}function Zo(e){return e.env??(typeof process<`u`?process.env:{})}function Qo(e){let t=e.TERM;return t===`dumb`||t===`unknown`}function $o(e){let t=Zo(e);if(!(e.isTTY??(typeof process<`u`?process.stdout?.isTTY??!1:!1))||Qo(t))return null;let n=t.TERM??``,r=t.COLORTERM;if(r===`truecolor`||r===`24bit`)return B.TRUECOLOR;let i=Jo.get(n);if(i!==void 0)return i;let a=t.TERM_PROGRAM;if(a!==void 0){let e=Jo.get(a);if(e!==void 0)return e}return/-256(color)?$/i.test(n)?B.EIGHT_BIT:/-truecolor$/i.test(n)?B.TRUECOLOR:(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(n),B.STANDARD)}function es(e,t){return e===`auto`?{colorSystem:Yo(t),hyperlinks:(Xo(Zo(t??{}))??null)!==null||$o(t??{})!==null}:{colorSystem:typeof e==`string`?ts(e):e,hyperlinks:!0}}function ts(e,t){if(e===`auto`)return Yo(t);if(Object.hasOwn(qo,e))return qo[e];throw new ns(`Unknown color system name: ${JSON.stringify(e)} (expected "auto", "truecolor", "256", "ansi", or "none")`)}var ns=class extends Error{constructor(e){super(e),this.name=`ColorParseError`}};const rs=new mo;var V=class e{name;type;number;value;downgradeCache=new Map;constructor(e,t,n,r){this.name=e,this.type=t,this.number=n,this.value=r}get isDefault(){return this.type===B.DEFAULT}get fixedValue(){switch(this.type){case B.TRUECOLOR:return this.value;case B.EIGHT_BIT:return this.number<16?void 0:Ts.get(this.number);case B.DEFAULT:case B.STANDARD:case B.WINDOWS:return}}get isSystemDefined(){return this.type===B.STANDARD||this.type===B.WINDOWS}getAnsiCodes(e=!0){switch(this.type){case B.DEFAULT:return[e?`39`:`49`];case B.STANDARD:{let t=this.number;return e?t<8?[`${30+t}`]:[`${90+t-8}`]:t<8?[`${40+t}`]:[`${100+t-8}`]}case B.EIGHT_BIT:return[e?`38`:`48`,`5`,`${this.number}`];case B.TRUECOLOR:{let t=this.value;return[e?`38`:`48`,`2`,`${t.red}`,`${t.green}`,`${t.blue}`]}case B.WINDOWS:{let t=this.number;return e?t<8?[`${30+t}`]:[`${90+t-8}`]:t<8?[`${40+t}`]:[`${100+t-8}`]}}}flattenAlpha(t){if(this.type!==B.TRUECOLOR||!this.value)return this;let n=this.value.compositeOver(t);return n===this.value?this:e.fromRgba(n)}downgrade(e){if(this.type===B.DEFAULT||this.type===e||Ko(this.type)<Ko(e))return this;let t=this.downgradeCache.get(e);if(t)return t;let n=this.performDowngrade(e);return this.downgradeCache.set(e,n),n}getTruecolor(e,t=!0){switch(this.type){case B.TRUECOLOR:return this.value;case B.EIGHT_BIT:return this.number<16?As(e,this.type).ansiColors.get(this.number):Ts.get(this.number);case B.STANDARD:case B.WINDOWS:return As(e,this.type).ansiColors.get(this.number);case B.DEFAULT:{let n=As(e,this.type);return t?n.foregroundColor:n.backgroundColor}}}static default(){return new e(`default`,B.DEFAULT)}static fromAnsi(t){let n=t<16?B.STANDARD:B.EIGHT_BIT;return new e(`color(${t})`,n,t)}static fromRgba(t){return new e(t.hex,B.TRUECOLOR,void 0,t)}static fromRgb(t,n,r){return e.fromRgba(new z(t,n,r))}static blend(t,n,r){for(let e of[t,n]){if(e.isDefault)throw new ns(`A blend cannot mix "default", which is no colour`);if(e.value!==void 0&&e.value.alpha<1)throw new ns(`A blend's ends are opaque; "${e.name}" is translucent`)}if(!(r>=0&&r<=1))throw new ns(`A blend's fraction is in [0, 1]; got ${r}`);let i=t.fixedValue,a=n.fixedValue;return i!==void 0&&a!==void 0?e.fromRgba(ys(i,a,r)):r===0?t:r===1?n:t.type===n.type&&(t.number===void 0?t.name===n.name:t.number===n.number)?t:new ss(t,n,r)}static matchOn(t,n,r,i){if(t.alpha<1)throw RangeError(`matchOn rounds an opaque colour; got alpha ${t.alpha}`);if(n===B.TRUECOLOR)return e.fromRgba(t);if(n===B.DEFAULT)return e.default();let a=r.ansiColors.match(t);return[[e.default(),i?r.foregroundColor:r.backgroundColor],[new e(`color(${a})`,n===B.WINDOWS?n:B.STANDARD,a),r.ansiColors.get(a)],...n===B.EIGHT_BIT?[is(t)]:[]].reduce((e,n)=>Wo(n[1],t)<Wo(e[1],t)?n:e)[0]}static matchMove(t,n,r,i,a){let o=e.matchOn(n,r,i,a);return Wo(t,n)<=Wo(o.getTruecolor(i,a),n)?void 0:o}static parse(e){return rs.get(e.toLowerCase().trim(),fs)}performDowngrade(t){let n=this.getTruecolor(As(void 0,t));switch(t){case B.EIGHT_BIT:return e.fromAnsi(js(t).match(n));case B.STANDARD:case B.WINDOWS:{let r=this.number!==void 0&&this.number<16?this.number:js(t).match(n);return new e(`color(${r})`,t,r)}case B.TRUECOLOR:return this;case B.DEFAULT:return e.default()}}};function is(e){let t=Es.match(e);return[V.fromAnsi(t),Es.get(t)]}function as(e,t,n,r){return ys(e.getTruecolor(r),t.getTruecolor(r),n)}function os(e){return e.fixedValue?.hex??(e.number===void 0?e.name:`color(${e.number})`)}var ss=class extends V{from;to;t;constructor(e,t,n){super(`blend(${os(e)},${os(t)},${n})`,B.TRUECOLOR,void 0,as(e,t,n)),this.from=e,this.to=t,this.t=n}get fixedValue(){}getTruecolor(e){return as(this.from,this.to,this.t,e)}};const cs=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,ls=/^color\((\d+)\)$/,us=/^blend\((.*)\)$/,ds=/^\s*(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?\s*$/;function fs(e){if(e===`default`||e===``)return V.default();let t=Ns[e];if(t!==void 0)return new V(e,t<16?B.STANDARD:B.EIGHT_BIT,t);if(e.startsWith(`#`))return new V(e,B.TRUECOLOR,void 0,vs(e));let n=cs.exec(e);if(n){let t=ms(e,n[1],`red`),r=ms(e,n[2],`green`),i=ms(e,n[3],`blue`);return new V(e,B.TRUECOLOR,void 0,new z(t,r,i))}let r=ls.exec(e);if(r){let t=ms(e,r[1],`number`);return new V(e,t<16?B.STANDARD:B.EIGHT_BIT,t)}let i=us.exec(e);if(i){let t=ps(i[1]),n=t[2]??``;if(t.length!==3||!ds.test(n))throw new ns(`ColorSpec "${e}": a blend is blend(<color>,<color>,<fraction>)`);return V.blend(V.parse(t[0]),V.parse(t[1]),Number(n))}throw new ns(`Failed to parse color: "${e}"`)}function ps(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`(`?n++:a===`)`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i)),r=i+1)}return t.push(e.slice(r)),t}function ms(e,t,n){let r=parseInt(t,10);if(!Ro(r))throw new ns(`ColorSpec "${e}": ${n} ${t} is out of range (0-255)`);return r}const hs=/^[0-9a-fA-F]+$/,gs={6:`RRGGBB`,8:`RRGGBBAA`};function _s(e,t,n,r){if(!r.includes(n.length)||!hs.test(n)){let n=r.map(e=>t+gs[e]).join(` or `);throw new ns(`Invalid hex colour ${JSON.stringify(e)} (expected ${n})`)}let i=e=>parseInt(n.slice(e,e+2),16);return new z(i(0),i(2),i(4),n.length===8?i(6)/255:1)}function vs(e){return _s(e,`#`,e.startsWith(`#`)?e.slice(1):``,[6,8])}function ys(e,t,n=.5){return new z(Math.round(e.red+(t.red-e.red)*n),Math.round(e.green+(t.green-e.green)*n),Math.round(e.blue+(t.blue-e.blue)*n),e.alpha+(t.alpha-e.alpha)*n)}var bs=class{backgroundColor;foregroundColor;ansiColors;palette;constructor(e,t,n,r){if(this.backgroundColor=e,this.foregroundColor=t,this.ansiColors=n,this.palette=r,n.firstIndex!==0||n.size!==16)throw RangeError(`a TerminalTheme's ansiColors are the sixteen ANSI colours, indices 0–15; got ${n.size} from index ${n.firstIndex}`)}};function xs(){return[new z(0,0,0),new z(128,0,0),new z(0,128,0),new z(128,128,0),new z(0,0,128),new z(128,0,128),new z(0,128,128),new z(192,192,192),new z(128,128,128),new z(255,0,0),new z(0,255,0),new z(255,255,0),new z(0,0,255),new z(255,0,255),new z(0,255,255),new z(255,255,255)]}function Ss(){let e=xs(),t=[0,95,135,175,215,255];for(let n=0;n<6;n++)for(let r=0;r<6;r++)for(let i=0;i<6;i++)e.push(new z(t[n],t[r],t[i]));for(let t=0;t<24;t++){let n=8+10*t;e.push(new z(n,n,n))}return e}function Cs(){return[new z(12,12,12),new z(197,15,31),new z(19,161,14),new z(193,156,0),new z(0,55,218),new z(136,23,152),new z(58,150,221),new z(204,204,204),new z(118,118,118),new z(231,72,86),new z(22,198,12),new z(249,241,165),new z(59,120,255),new z(180,0,158),new z(97,214,214),new z(242,242,242)]}const ws=new Go(xs()),Ts=new Go(Ss()),Es=new Go(Ss().slice(16),16),Ds=new Go(Cs()),Os=new bs(new z(0,0,0),new z(255,255,255),ws,new Po(`default`,!0,new Map)),ks=new bs(Ds.get(0),Ds.get(7),Ds,new Po(`windows`,!0,new Map));function As(e,t){return e??(t===B.WINDOWS?ks:Os)}function js(e){switch(e){case B.EIGHT_BIT:return Es;case B.STANDARD:return ws;case B.WINDOWS:return Ds}}function Ms(e){let t=Object.entries(e).filter(([e])=>e.includes(`grey`)).map(([e,t])=>[e.replace(`grey`,`gray`),t]);return{...e,...Object.fromEntries(t)}}const Ns=Ms({black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,bright_black:8,bright_red:9,bright_green:10,bright_yellow:11,bright_blue:12,bright_magenta:13,bright_cyan:14,bright_white:15,grey0:16,navy_blue:17,dark_blue:18,blue3:19,blue2:20,blue1:21,dark_green:22,deep_sky_blue4:23,deep_sky_blue5:24,deep_sky_blue6:25,dodger_blue3:26,dodger_blue2:27,green4:28,spring_green4:29,turquoise4:30,deep_sky_blue3:31,deep_sky_blue7:32,dodger_blue1:33,green3:34,spring_green3:35,dark_cyan:36,light_sea_green:37,deep_sky_blue2:38,deep_sky_blue1:39,green5:40,spring_green5:41,spring_green2:42,cyan3:43,dark_turquoise:44,turquoise2:45,green1:46,spring_green6:47,spring_green1:48,medium_spring_green:49,cyan2:50,cyan1:51,dark_red:52,deep_pink4:53,purple4:54,purple5:55,purple3:56,blue_violet:57,orange4:58,grey37:59,medium_purple4:60,slate_blue3:61,slate_blue4:62,royal_blue1:63,chartreuse4:64,dark_sea_green4:65,pale_turquoise4:66,steel_blue:67,steel_blue3:68,cornflower_blue:69,chartreuse3:70,dark_sea_green5:71,cadet_blue:72,cadet_blue2:73,sky_blue3:74,steel_blue1:75,chartreuse5:76,pale_green3:77,sea_green3:78,aquamarine3:79,medium_turquoise:80,steel_blue2:81,chartreuse2:82,sea_green2:83,sea_green1:84,sea_green4:85,aquamarine1:86,dark_slate_gray2:87,dark_red2:88,deep_pink5:89,dark_magenta:90,dark_magenta2:91,dark_violet:92,purple2:93,orange5:94,light_pink4:95,plum4:96,medium_purple3:97,medium_purple5:98,slate_blue1:99,yellow4:100,wheat4:101,grey53:102,light_slate_grey:103,medium_purple:104,light_slate_blue:105,yellow5:106,dark_olive_green3:107,dark_sea_green:108,light_sky_blue3:109,light_sky_blue4:110,sky_blue2:111,chartreuse6:112,dark_olive_green4:113,pale_green4:114,dark_sea_green3:115,dark_slate_gray3:116,sky_blue1:117,chartreuse1:118,light_green:119,light_green2:120,pale_green1:121,aquamarine2:122,dark_slate_gray1:123,red3:124,deep_pink6:125,medium_violet_red:126,magenta3:127,dark_violet2:128,purple:129,dark_orange3:130,indian_red:131,hot_pink3:132,medium_orchid3:133,medium_orchid:134,medium_purple2:135,dark_goldenrod:136,light_salmon3:137,rosy_brown:138,grey63:139,medium_purple6:140,medium_purple1:141,gold3:142,dark_khaki:143,navajo_white3:144,grey69:145,light_steel_blue3:146,light_steel_blue:147,yellow3:148,dark_olive_green5:149,dark_sea_green6:150,dark_sea_green2:151,light_cyan3:152,light_sky_blue1:153,green_yellow:154,dark_olive_green2:155,pale_green2:156,dark_sea_green7:157,dark_sea_green1:158,pale_turquoise1:159,red4:160,deep_pink3:161,deep_pink8:162,magenta4:163,magenta5:164,magenta2:165,dark_orange4:166,indian_red2:167,hot_pink4:168,hot_pink2:169,orchid:170,medium_orchid1:171,orange3:172,light_salmon4:173,light_pink3:174,pink3:175,plum3:176,violet:177,gold4:178,light_goldenrod3:179,tan:180,misty_rose3:181,thistle3:182,plum2:183,yellow6:184,khaki3:185,light_goldenrod2:186,light_yellow3:187,grey84:188,light_steel_blue1:189,yellow2:190,dark_olive_green1:191,dark_olive_green6:192,dark_sea_green8:193,honeydew2:194,light_cyan1:195,red1:196,deep_pink2:197,deep_pink1:198,deep_pink9:199,magenta6:200,magenta1:201,orange_red1:202,indian_red1:203,indian_red3:204,hot_pink5:205,hot_pink:206,medium_orchid2:207,dark_orange:208,salmon1:209,light_coral:210,pale_violet_red1:211,orchid2:212,orchid1:213,orange1:214,sandy_brown:215,light_salmon1:216,light_pink1:217,pink1:218,plum1:219,gold1:220,light_goldenrod4:221,light_goldenrod5:222,navajo_white1:223,misty_rose1:224,thistle1:225,yellow1:226,light_goldenrod1:227,khaki1:228,wheat1:229,cornsilk1:230,grey100:231,grey3:232,grey7:233,grey11:234,grey15:235,grey19:236,grey23:237,grey27:238,grey30:239,grey35:240,grey39:241,grey42:242,grey46:243,grey50:244,grey54:245,grey58:246,grey62:247,grey66:248,grey70:249,grey74:250,grey78:251,grey82:252,grey85:253,grey89:254,grey93:255}),Ps=[`default`,...Object.keys(Ns)];var Fs;const Is=[`l`,`c`,`h`,`alpha`],Ls=Object.freeze({hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:0});Object.freeze({hueShift:0,chromaScale:1,lightnessScale:-1,lightnessShift:1});function Rs(e){return e.hueShift%360==0&&e.chromaScale===1&&e.lightnessScale===1&&e.lightnessShift===0}function zs(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Bs(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function Vs(e){return e<0?0:e>1?1:e}const Hs=1e-4,Us=1e-7,Ws=(e,t)=>e<Us?0:t,Gs=(e,t,n)=>e*(1-n)+t*n,Ks=e=>{let t=e%360;return t<0?t+360:t};function qs(e,t,n){return e>=-Hs&&e<=1+Hs&&t>=-Hs&&t<=1+Hs&&n>=-Hs&&n<=1+Hs}var Js=class{l;c;h;alpha;constructor(e,t,n,r=1){if(this.l=e,this.c=t,this.h=n,this.alpha=r,!Number.isFinite(e))throw RangeError(`Oklch.l must be finite; got ${e}`);if(!Number.isFinite(t))throw RangeError(`Oklch.c must be finite; got ${t}`);if(!Number.isFinite(n))throw RangeError(`Oklch.h must be finite; got ${n}`);if(!Number.isFinite(r)||r<0||r>1)throw RangeError(`Oklch.alpha must be a finite number in [0,1]; got ${r}`)}static fromRgba(e){let[t,n,r,i]=e.normalized,a=zs(t),o=zs(n),s=zs(r),c=.4122214708*a+.5363325363*o+.0514459929*s,l=.2119034982*a+.6806995451*o+.1073969566*s,u=.0883024619*a+.2817188376*o+.6299787005*s,d=Math.cbrt(c),f=Math.cbrt(l),p=Math.cbrt(u),m=.2104542553*d+.793617785*f-.0040720468*p,h=1.9779984951*d-2.428592205*f+.4505937099*p,g=.0259040371*d+.7827717662*f-.808675766*p,_=Math.sqrt(h*h+g*g),v=Ks(180/Math.PI*Math.atan2(g,h));return new Fs(m,_,Ws(_,v),i)}toRgba(){let e=Vs(this.l),t=Math.max(0,this.c),n=this.findInGamutChroma(e,t,this.h),{r,g:i,b:a}=this.toLinearRgb(e,n,this.h);return new z(Math.round(Vs(Bs(r))*255),Math.round(Vs(Bs(i))*255),Math.round(Vs(Bs(a))*255),this.alpha)}applyKey(e){if(Rs(e))return this;let t=Vs(this.l*e.lightnessScale+e.lightnessShift),n=Math.max(0,this.c*e.chromaScale),r=Ks(this.h+e.hueShift);return new Fs(t,n,Ws(n,r),this.alpha)}mix(e,t){if(!(t>=0&&t<=1))throw RangeError(`Oklch.mix: t must be in [0, 1]; got ${t}`);return this.#e(e,t,t,t,t)}mixAxes(e,t){for(let e of Is){let n=t[e];if(!(n>=0&&n<=1))throw RangeError(`Oklch.mixAxes: ${e} weight must be in [0, 1]; got ${n}`)}return this.#e(e,t.l,t.c,t.h,t.alpha)}#e(e,t,n,r,i){let a=this.c>=Us,o=e.c>=Us,s=Ks(a?this.h:o?e.h:0),c=Ks(o?e.h:s),l=c-s,u=l<-180?s-360:s,d=l>180?c-360:c,f=Gs(this.c,e.c,n);return new Fs(Gs(this.l,e.l,t),f,Ws(f,Ks(Gs(u,d,r))),Gs(this.alpha,e.alpha,i))}deltaE(e){let t=this.h*Math.PI/180,n=e.h*Math.PI/180;return Math.hypot(this.l-e.l,this.c*Math.cos(t)-e.c*Math.cos(n),this.c*Math.sin(t)-e.c*Math.sin(n))}toLinearRgb(e,t,n){let r=Math.PI/180*n,i=t*Math.cos(r),a=t*Math.sin(r),o=e+.3963377774*i+.2158037573*a,s=e-.1055613458*i-.0638541728*a,c=e-.0894841775*i-1.291485548*a,l=o*o*o,u=s*s*s,d=c*c*c;return{r:4.0767416621*l-3.3077115913*u+.2309699292*d,g:-1.2684380046*l+2.6097574011*u-.3413193965*d,b:-.0041960863*l-.7034186147*u+1.707614701*d}}findInGamutChroma(e,t,n){let r=this.toLinearRgb(e,t,n);if(qs(r.r,r.g,r.b))return t;let i=0,a=t;for(let t=0;t<24;t++){let t=(i+a)/2,r=this.toLinearRgb(e,t,n);qs(r.r,r.g,r.b)?i=t:a=t}return i}};Fs=Js;var Ys=class extends Error{ref;constructor(e,t,n){super(`color reference ${JSON.stringify(e)} did not resolve — ${t}`,n),this.ref=e,this.name=`ColorRefError`}};function Xs(e,t){let n=t.trim();if(n.startsWith(`#`))try{return vs(n)}catch(e){throw e instanceof ns?new Ys(t,e.message,{cause:e}):e}let r=e.get(n);if(r===void 0)throw new Ys(t,`no such variable in palette ${JSON.stringify(e.name)}`+Zs(e,n));return r}function Zs(e,t){let n=t.split(`-`),r=[...e.vars.keys()].filter(e=>n.some(t=>t!==``&&e.includes(t))).slice(0,8);return r.length===0?``:`; did you mean: ${r.join(`, `)}`}function Qs(e){let t=e.red/255,n=e.green/255,r=e.blue/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=(i+a)/2,s=i-a;if(s===0)return{h:0,s:0,l:o};let c=s/(o>.5?2-i-a:i+a),l;return l=i===t?(n-r)/s%6:i===n?(r-t)/s+2:(t-n)/s+4,l=(l*60+360)%360,{h:l,s:c,l:o}}function $s(e){let t=Math.round(e);return t<0?0:t>255?255:t}function ec(e){let{h:t,s:n,l:r}=e;if(n===0){let e=$s(r*255);return new z(e,e,e)}let i=(1-Math.abs(2*r-1))*n,a=t/60,o=i*(1-Math.abs(a%2-1)),s=0,c=0,l=0;a<1?[s,c,l]=[i,o,0]:a<2?[s,c,l]=[o,i,0]:a<3?[s,c,l]=[0,i,o]:a<4?[s,c,l]=[0,o,i]:a<5?[s,c,l]=[o,0,i]:[s,c,l]=[i,0,o];let u=r-i/2;return new z($s((s+u)*255),$s((c+u)*255),$s((l+u)*255))}function tc(e){return e<0?0:e>1?1:e}function nc(e,t){let n=Qs(e);return n.l=tc(n.l-.1*t),ec(n)}function rc(e,t,n){return ys(t,e,tc(n))}function ic(e,t=Bo){return Vo(lc(e,t))>.179?new z(0,0,0):new z(255,255,255)}function ac(e,t,n=4.5,r=B.TRUECOLOR,i=Bo,a){let o=lc(t,i),s=dc(e,o,n,ic(o)),c=uc(r,a);if(c===void 0)return s;let l=cc(c,o);return Ho(cc(c,s),l)>=n?s:c.written.get(c.shown.matchReadable(e.compositeOver(o),l,n))}function oc(e,t,n,r=Bo,i){let a=lc(e,r),o=uc(t,i),s=e=>cc(o,lc(e,r));if(n(s(a),s))return a;let c=o?.shown.matchWhere(a,e=>n(e,s));return c===void 0?void 0:o.written.get(c)}function sc(e,t,n=Bo,r){return cc(uc(t,r),lc(e,n))}function cc(e,t){return e===void 0?t:V.fromRgba(t).downgrade(e.depth).getTruecolor(e.terminal)}function lc(e,t){if(t.alpha!==1)throw RangeError(`a contrast substrate is the opaque surface under a translucent background; got ${t.hex}`);return e.compositeOver(t)}function uc(e,t){let n=As(t,e);switch(e){case B.EIGHT_BIT:return{depth:e,terminal:n,written:js(e),shown:js(e)};case B.STANDARD:case B.WINDOWS:return{depth:e,terminal:n,written:js(e),shown:n.ansiColors};case B.TRUECOLOR:case B.DEFAULT:return}}function dc(e,t,n,r){let i=e.compositeOver(t);if(Ho(i,t)>=n)return i;let a=Js.fromRgba(i),o=+(Vo(r)>.179);if(Ho(new Js(o,a.c,a.h,a.alpha).toRgba(),t)<n)return ic(t);let s=a.l,c=o;for(let e=0;e<20;e++){let e=(s+c)/2;Ho(new Js(e,a.c,a.h,a.alpha).toRgba(),t)>=n?c=e:s=e}return new Js(c,a.c,a.h,a.alpha).toRgba()}const fc=.7,pc=[`primary`,`secondary`,`accent`,`success`,`warning`,`error`];function mc(e,t,n){let r=Fo(e,n.background),i=t=>{let i=n[t];if(i.alpha===0)throw RangeError(`palette ${JSON.stringify(e)}: ${t} is fully transparent (${i.hex}), so there is no colour to derive the palette from`);return r(i)},a={primary:i(`primary`),secondary:i(`secondary`),accent:i(`accent`),success:i(`success`),warning:i(`warning`),error:i(`error`),background:n.background,foreground:i(`foreground`)},o=new Map;o.set(`background`,a.background),o.set(`foreground`,a.foreground);for(let e of pc)o.set(e,a[e]);o.set(`foreground-muted`,ys(a.foreground,a.background,fc)),o.set(`background-muted`,ys(a.background,a.foreground,fc)),o.set(`surface`,ys(a.background,a.foreground,.05));let s=ic(a.background);for(let e of pc){let t=a[e],n=ys(t,a.background,fc);o.set(`${e}-muted`,n),o.set(`text-${e}`,hc(rc(t,s,.66),n,a.background)),o.set(`on-${e}`,ic(t))}return new Po(e,t,o)}function hc(e,t,n){return dc(e,t,4.5,ic(n))}const gc={name:`atom-one-dark`,dark:!0,ansi:{black:`#282C34`,red:`#E06C75`,green:`#98C379`,yellow:`#E5C07B`,blue:`#61AFEF`,magenta:`#C678DD`,cyan:`#56B6C2`,white:`#DCDFE4`,brightBlack:`#5D677A`,brightRed:`#E06C75`,brightGreen:`#98C379`,brightYellow:`#E5C07B`,brightBlue:`#61AFEF`,brightMagenta:`#C678DD`,brightCyan:`#56B6C2`,brightWhite:`#DCDFE4`},vars:{accent:`#A378C2`,"accent-darken-1":`#8E65AD`,"accent-darken-2":`#7A5299`,"accent-darken-3":`#674085`,"accent-lighten-1":`#B78BD6`,"accent-lighten-2":`#CC9FEC`,"accent-lighten-3":`#E2B3FF`,"accent-muted":`#4C425E`,background:`#282C34`,"background-darken-1":`#181C23`,"background-darken-2":`#050A14`,"background-darken-3":`#000000`,"background-lighten-1":`#383C44`,"background-lighten-2":`#494D56`,"background-lighten-3":`#5B5F68`,"block-cursor-background":`#61AFEF`,"block-cursor-blurred-background":`#61AFEF4C`,"block-cursor-blurred-foreground":`#ABB2BF`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#61AFEF`,"border-blurred":`#353B47`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#ABB2BF`,error:`#EF6262`,"error-darken-1":`#D84D50`,"error-darken-2":`#C1373E`,"error-darken-3":`#AA1F2E`,"error-lighten-1":`#FF7674`,"error-lighten-2":`#FF8B87`,"error-lighten-3":`#FFA09B`,"error-muted":`#643C41`,"footer-background":`#4F5666`,"footer-description-background":`#00000000`,"footer-description-foreground":`#ABB2BF`,"footer-foreground":`#ABB2BF`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#A378C2`,foreground:`#ABB2BF`,"foreground-darken-1":`#979DAA`,"foreground-darken-2":`#838A96`,"foreground-darken-3":`#707783`,"foreground-disabled":`#ABB2BF60`,"foreground-lighten-1":`#BFC6D3`,"foreground-lighten-2":`#D4DBE8`,"foreground-lighten-3":`#E9F0FE`,"foreground-muted":`#ABB2BF99`,"input-cursor-background":`#ABB2BF`,"input-cursor-foreground":`#282C34`,"input-selection-background":`#77C3FF66`,"link-background":`#00000000`,"link-background-hover":`#61AFEF`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#61AFEF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#61AFEF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#61AFEF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#ABB2BF`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#ABB2BF`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#ABB2BF99`,panel:`#4F5666`,"panel-darken-1":`#3D4453`,"panel-darken-2":`#2C3342`,"panel-darken-3":`#1C2331`,"panel-lighten-1":`#616878`,"panel-lighten-2":`#737A8B`,"panel-lighten-3":`#868E9F`,primary:`#61AFEF`,"primary-background":`#4F5B6A`,"primary-background-darken-1":`#3F4D5D`,"primary-background-darken-2":`#303F50`,"primary-background-darken-3":`#303F50`,"primary-background-lighten-1":`#5E6A77`,"primary-background-lighten-2":`#6E7884`,"primary-background-lighten-3":`#7D8791`,"primary-darken-1":`#489BD9`,"primary-darken-2":`#2C87C4`,"primary-darken-3":`#0074AF`,"primary-lighten-1":`#77C3FF`,"primary-lighten-2":`#8ED8FF`,"primary-lighten-3":`#A4EDFF`,"primary-muted":`#39536C`,scrollbar:`#355674`,"scrollbar-active":`#61AFEF`,"scrollbar-background":`#181C23`,"scrollbar-background-active":`#181C23`,"scrollbar-background-hover":`#181C23`,"scrollbar-corner-color":`#181C23`,"scrollbar-hover":`#3C6589`,secondary:`#C678DD`,"secondary-background":`#5B5567`,"secondary-background-darken-1":`#4D465A`,"secondary-background-darken-2":`#3F374D`,"secondary-background-darken-3":`#3F374D`,"secondary-background-lighten-1":`#6A6475`,"secondary-background-lighten-2":`#787382`,"secondary-background-lighten-3":`#87828F`,"secondary-darken-1":`#B064C7`,"secondary-darken-2":`#9B50B3`,"secondary-darken-3":`#873D9E`,"secondary-lighten-1":`#DB8CF2`,"secondary-lighten-2":`#F1A0FF`,"secondary-lighten-3":`#FFB5FF`,"secondary-muted":`#574266`,success:`#62F062`,"success-darken-1":`#48DA4D`,"success-darken-2":`#29C438`,"success-darken-3":`#00AF22`,"success-lighten-1":`#7AFF76`,"success-lighten-2":`#91FF8A`,"success-lighten-3":`#A8FF9F`,"success-muted":`#396641`,surface:`#3B414D`,"surface-active":`#484E5B`,"surface-darken-1":`#2A303B`,"surface-darken-2":`#1A202B`,"surface-darken-3":`#09101B`,"surface-lighten-1":`#4C525E`,"surface-lighten-2":`#5E6471`,"surface-lighten-3":`#707684`,text:`#FFFFFFDD`,"text-accent":`#C2A5D6`,"text-disabled":`#FFFFFF60`,"text-error":`#F59797`,"text-muted":`#FFFFFF99`,"text-primary":`#96CAF4`,"text-secondary":`#D9A5E8`,"text-success":`#97F597`,"text-warning":`#E9CC92`,warning:`#DDB25B`,"warning-darken-1":`#C79D47`,"warning-darken-2":`#B28A34`,"warning-darken-3":`#9C7721`,"warning-lighten-1":`#F4C66E`,"warning-lighten-2":`#FFDB82`,"warning-lighten-3":`#FFF096`,"warning-muted":`#5E543F`}},_c={name:`atom-one-light`,dark:!1,ansi:{black:`#383A42`,red:`#E45649`,green:`#50A14F`,yellow:`#C18401`,blue:`#0184BC`,magenta:`#A626A4`,cyan:`#0997B3`,white:`#BABABA`,brightBlack:`#4F525E`,brightRed:`#E06C75`,brightGreen:`#98C379`,brightYellow:`#D8B36E`,brightBlue:`#61AFEF`,brightMagenta:`#C678DD`,brightCyan:`#56B6C2`,brightWhite:`#FFFFFF`},vars:{accent:`#BE9232`,"accent-darken-1":`#A97E1D`,"accent-darken-2":`#936B01`,"accent-darken-3":`#7E5900`,"accent-lighten-1":`#D5A545`,"accent-lighten-2":`#EBB959`,"accent-lighten-3":`#FFCE6C`,"accent-muted":`#E8DABE`,background:`#FAFAFA`,"background-darken-1":`#E4E4E4`,"background-darken-2":`#CFCFCF`,"background-darken-3":`#BABABA`,"background-lighten-1":`#FFFFFF`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#4078F2`,"block-cursor-blurred-background":`#4078F24C`,"block-cursor-blurred-foreground":`#383A42`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#4078F2`,"border-blurred":`#D8D8D8`,"button-color-foreground":`#000000DD`,"button-foreground":`#383A42`,error:`#F13F3F`,"error-darken-1":`#D9232D`,"error-darken-2":`#C1001D`,"error-darken-3":`#A9000D`,"error-lighten-1":`#FF5650`,"error-lighten-2":`#FF6C62`,"error-lighten-3":`#FF8275`,"error-muted":`#F7C1C1`,"footer-background":`#CCCCCC`,"footer-description-background":`#00000000`,"footer-description-foreground":`#383A42`,"footer-foreground":`#383A42`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#BF9232`,foreground:`#383A42`,"foreground-darken-1":`#272931`,"foreground-darken-2":`#181A21`,"foreground-darken-3":`#040612`,"foreground-disabled":`#383A4260`,"foreground-lighten-1":`#494B53`,"foreground-lighten-2":`#5A5C65`,"foreground-lighten-3":`#6D6F78`,"foreground-muted":`#383A4299`,"input-cursor-background":`#383A42`,"input-cursor-foreground":`#FAFAFA`,"input-selection-background":`#5C8AFF66`,"link-background":`#00000000`,"link-background-hover":`#4078F2`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#4078F2`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#4078F2`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#4078F2`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#383A42`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#383A42`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#383A4299`,panel:`#CCCCCC`,"panel-darken-1":`#B7B7B7`,"panel-darken-2":`#A3A3A3`,"panel-darken-3":`#8F8F8F`,"panel-lighten-1":`#E1E1E1`,"panel-lighten-2":`#F6F6F6`,"panel-lighten-3":`#FFFFFF`,primary:`#4078F2`,"primary-background":`#4078F2`,"primary-background-darken-1":`#1865DC`,"primary-background-darken-2":`#0053C6`,"primary-background-darken-3":`#0043B1`,"primary-background-lighten-1":`#5C8AFF`,"primary-background-lighten-2":`#759EFF`,"primary-background-lighten-3":`#8DB2FF`,"primary-darken-1":`#1865DC`,"primary-darken-2":`#0053C6`,"primary-darken-3":`#0043B1`,"primary-lighten-1":`#5C8AFF`,"primary-lighten-2":`#759EFF`,"primary-lighten-3":`#8DB2FF`,"primary-muted":`#C2D3F7`,scrollbar:`#A2B8E9`,"scrollbar-active":`#4078F2`,"scrollbar-background":`#E4E4E4`,"scrollbar-background-active":`#E4E4E4`,"scrollbar-background-hover":`#E4E4E4`,"scrollbar-corner-color":`#E4E4E4`,"scrollbar-hover":`#92AEEB`,secondary:`#A626A4`,"secondary-background":`#A626A4`,"secondary-background-darken-1":`#90008F`,"secondary-background-darken-2":`#7B007C`,"secondary-background-darken-3":`#670069`,"secondary-background-lighten-1":`#BB3EB8`,"secondary-background-lighten-2":`#D154CD`,"secondary-background-lighten-3":`#E769E2`,"secondary-darken-1":`#90008F`,"secondary-darken-2":`#7B007C`,"secondary-darken-3":`#670069`,"secondary-lighten-1":`#BB3EB8`,"secondary-lighten-2":`#D154CD`,"secondary-lighten-3":`#E769E2`,"secondary-muted":`#E0BAE0`,success:`#6BF23F`,"success-darken-1":`#52DC25`,"success-darken-2":`#36C600`,"success-darken-3":`#05B100`,"success-lighten-1":`#83FF55`,"success-lighten-2":`#9BFF6B`,"success-lighten-3":`#B2FF80`,"success-muted":`#CFF7C1`,surface:`#E0E0E0`,"surface-active":`#F1F1F1`,"surface-darken-1":`#CACACA`,"surface-darken-2":`#B6B6B6`,"surface-darken-3":`#A2A2A2`,"surface-lighten-1":`#F5F5F5`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#7E6021`,"text-disabled":`#00000060`,"text-error":`#9F2929`,"text-muted":`#00000099`,"text-primary":`#2A4F9F`,"text-secondary":`#6D196C`,"text-success":`#479F29`,"text-warning":`#8E8F24`,warning:`#D7D938`,"warning-darken-1":`#C1C41C`,"warning-darken-2":`#ABAF00`,"warning-darken-3":`#969B00`,"warning-lighten-1":`#EEEE4E`,"warning-lighten-2":`#FFFF64`,"warning-lighten-3":`#FFFF79`,"warning-muted":`#EFF0BF`}},vc={name:`catppuccin-frappe`,dark:!0,ansi:{black:`#51576D`,red:`#E78284`,green:`#A6D189`,yellow:`#E5C890`,blue:`#8CAAEE`,magenta:`#F4B8E4`,cyan:`#81C8BE`,white:`#B5BFE2`,brightBlack:`#626880`,brightRed:`#EDA0A2`,brightGreen:`#B9DBA2`,brightYellow:`#ECD7AE`,brightBlue:`#ADC2F3`,brightMagenta:`#F38ED8`,brightCyan:`#98D2CA`,brightWhite:`#A5ADCE`},vars:{accent:`#F4B8E4`,"accent-darken-1":`#DEA3CE`,"accent-darken-2":`#C98FBA`,"accent-darken-3":`#B47BA5`,"accent-lighten-1":`#FFCCF9`,"accent-lighten-2":`#FFE2FF`,"accent-lighten-3":`#FFF7FF`,"accent-muted":`#6A5B75`,background:`#303446`,"background-darken-1":`#1F2435`,"background-darken-2":`#101424`,"background-darken-3":`#000016`,"background-lighten-1":`#404457`,"background-lighten-2":`#525669`,"background-lighten-3":`#64687C`,"block-cursor-background":`#CA9EE6`,"block-cursor-blurred-background":`#CA9EE64C`,"block-cursor-blurred-foreground":`#C6D0F5`,"block-cursor-foreground":`#292C3C`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#BABBF1`,"border-blurred":`#838BA7`,"button-color-foreground":`#303446`,"button-foreground":`#C6D0F5`,error:`#E68284`,"error-darken-1":`#D06E71`,"error-darken-2":`#BA5A5E`,"error-darken-3":`#A4474C`,"error-lighten-1":`#FD9697`,"error-lighten-2":`#FFAAAB`,"error-lighten-3":`#FFBFBF`,"error-muted":`#664B58`,"footer-background":`#51576D`,"footer-description-background":`#00000000`,"footer-description-foreground":`#C6D0F5`,"footer-foreground":`#C6D0F5`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#F4B8E4`,foreground:`#C6D0F5`,"foreground-darken-1":`#B1BBDF`,"foreground-darken-2":`#9CA7CA`,"foreground-darken-3":`#8993B5`,"foreground-disabled":`#C6D0F560`,"foreground-lighten-1":`#DBE5FF`,"foreground-lighten-2":`#F0FAFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#C6D0F599`,"input-cursor-background":`#F2D5CF`,"input-cursor-foreground":`#232634`,"input-selection-background":`#949CBB4C`,"link-background":`#00000000`,"link-background-hover":`#CA9EE6`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#CA9EE6`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#CA9EE6`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#CA9EE6`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#C6D0F5`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#C6D0F5`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#C6D0F599`,panel:`#51576D`,"panel-darken-1":`#3F455A`,"panel-darken-2":`#2E3448`,"panel-darken-3":`#1D2437`,"panel-lighten-1":`#63697F`,"panel-lighten-2":`#767B93`,"panel-lighten-3":`#898FA7`,primary:`#CA9EE6`,"primary-background":`#625F76`,"primary-background-darken-1":`#54516A`,"primary-background-darken-2":`#47435E`,"primary-background-darken-3":`#47435E`,"primary-background-lighten-1":`#706D82`,"primary-background-lighten-2":`#7E7B8E`,"primary-background-lighten-3":`#8C899A`,"primary-darken-1":`#B58AD0`,"primary-darken-2":`#A076BB`,"primary-darken-3":`#8C63A7`,"primary-lighten-1":`#DFB2FB`,"primary-lighten-2":`#F4C7FF`,"primary-lighten-3":`#FFDCFF`,"primary-muted":`#5E5376`,scrollbar:`#63547B`,"scrollbar-active":`#CA9EE6`,"scrollbar-background":`#1F2435`,"scrollbar-background-active":`#1F2435`,"scrollbar-background-hover":`#1F2435`,"scrollbar-corner-color":`#1F2435`,"scrollbar-hover":`#74618D`,secondary:`#EE9F76`,"secondary-background":`#666067`,"secondary-background-darken-1":`#59525A`,"secondary-background-darken-2":`#4C444D`,"secondary-background-darken-3":`#4C444D`,"secondary-background-lighten-1":`#746E75`,"secondary-background-lighten-2":`#817C82`,"secondary-background-lighten-3":`#8F8A8F`,"secondary-darken-1":`#D88B63`,"secondary-darken-2":`#C27750`,"secondary-darken-3":`#AC643E`,"secondary-lighten-1":`#FFB389`,"secondary-lighten-2":`#FFC89D`,"secondary-lighten-3":`#FFDDB1`,"secondary-muted":`#695454`,success:`#A6D189`,"success-darken-1":`#91BC75`,"success-darken-2":`#7DA762`,"success-darken-3":`#6A9350`,"success-lighten-1":`#BAE69C`,"success-lighten-2":`#CFFBB1`,"success-lighten-3":`#E5FFC5`,"success-muted":`#53635A`,surface:`#414559`,"surface-active":`#4F5267`,"surface-darken-1":`#303447`,"surface-darken-2":`#1F2436`,"surface-darken-3":`#101526`,"surface-lighten-1":`#52566B`,"surface-lighten-2":`#64687E`,"surface-lighten-3":`#777B91`,text:`#FFFFFFDD`,"text-accent":`#F7D0ED`,"text-disabled":`#FFFFFF60`,"text-error":`#EFACAD`,"text-muted":`#FFFFFF99`,"text-primary":`#DCBEEE`,"text-secondary":`#F4BFA4`,"text-success":`#C4E0B1`,"text-warning":`#EDDAB5`,warning:`#E4C890`,"warning-darken-1":`#CFB37C`,"warning-darken-2":`#BA9F69`,"warning-darken-3":`#A58B56`,"warning-lighten-1":`#FADCA4`,"warning-lighten-2":`#FFF2B8`,"warning-lighten-3":`#FFFFCD`,"warning-muted":`#66605C`}},yc={name:`catppuccin-latte`,dark:!1,ansi:{black:`#BCC0CC`,red:`#D20F39`,green:`#40A02B`,yellow:`#DF8E1D`,blue:`#1E66F5`,magenta:`#EA76CB`,cyan:`#179299`,white:`#5C5F77`,brightBlack:`#ACB0BE`,brightRed:`#E7103F`,brightGreen:`#46B02F`,brightYellow:`#E49931`,brightBlue:`#3878F6`,brightMagenta:`#EF95D7`,brightCyan:`#19A1A8`,brightWhite:`#6C6F85`},vars:{accent:`#FD640B`,"accent-darken-1":`#E54F00`,"accent-darken-2":`#CC3900`,"accent-darken-3":`#B42200`,"accent-lighten-1":`#FF7825`,"accent-lighten-2":`#FF8D3A`,"accent-lighten-3":`#FFA24F`,"accent-muted":`#F3C6AE`,background:`#EFF1F5`,"background-darken-1":`#D9DBDF`,"background-darken-2":`#C4C6CA`,"background-darken-3":`#B0B2B5`,"background-lighten-1":`#FFFFFF`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#8839EF`,"block-cursor-blurred-background":`#8839EF4C`,"block-cursor-blurred-foreground":`#4C4F69`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#8839EF`,"border-blurred":`#DEE1E7`,"button-color-foreground":`#EFF1F5`,"button-foreground":`#4C4F69`,error:`#D10F39`,"error-darken-1":`#BA0028`,"error-darken-2":`#A20019`,"error-darken-3":`#8A0008`,"error-lighten-1":`#EA324A`,"error-lighten-2":`#FF4B5B`,"error-lighten-3":`#FF626E`,"error-muted":`#E6ADBC`,"footer-background":`#CCD0DA`,"footer-description-background":`#00000000`,"footer-description-foreground":`#4C4F69`,"footer-foreground":`#4C4F69`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FE640B`,foreground:`#4C4F69`,"foreground-darken-1":`#3A3D56`,"foreground-darken-2":`#292D45`,"foreground-darken-3":`#191D34`,"foreground-disabled":`#4C4F6960`,"foreground-lighten-1":`#5E607B`,"foreground-lighten-2":`#70738F`,"foreground-lighten-3":`#8386A2`,"foreground-muted":`#4C4F6999`,"input-cursor-background":`#4C4F69`,"input-cursor-foreground":`#EFF1F5`,"input-selection-background":`#9E4DFF66`,"link-background":`#00000000`,"link-background-hover":`#8839EF`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#8839EF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#8839EF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#8839EF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#4C4F69`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#4C4F69`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#4C4F6999`,panel:`#CCD0DA`,"panel-darken-1":`#B7BBC5`,"panel-darken-2":`#A3A6B0`,"panel-darken-3":`#8F939C`,"panel-lighten-1":`#E1E5EF`,"panel-lighten-2":`#F6FAFF`,"panel-lighten-3":`#FFFFFF`,primary:`#8839EF`,"primary-background":`#8839EF`,"primary-background-darken-1":`#7122D9`,"primary-background-darken-2":`#5901C3`,"primary-background-darken-3":`#4000AE`,"primary-background-lighten-1":`#9E4DFF`,"primary-background-lighten-2":`#B562FF`,"primary-background-lighten-3":`#CC76FF`,"primary-darken-1":`#7122D9`,"primary-darken-2":`#5901C3`,"primary-darken-3":`#4000AE`,"primary-lighten-1":`#9E4DFF`,"primary-lighten-2":`#B562FF`,"primary-lighten-3":`#CC76FF`,"primary-muted":`#D0B9F3`,scrollbar:`#B89AE5`,"scrollbar-active":`#8839EF`,"scrollbar-background":`#D9DBDF`,"scrollbar-background-active":`#D9DBDF`,"scrollbar-background-hover":`#D9DBDF`,"scrollbar-corner-color":`#D9DBDF`,"scrollbar-hover":`#B08AE7`,secondary:`#DB8A78`,"secondary-background":`#DB8A78`,"secondary-background-darken-1":`#C57665`,"secondary-background-darken-2":`#B06353`,"secondary-background-darken-3":`#9A5041`,"secondary-background-lighten-1":`#F29D8B`,"secondary-background-lighten-2":`#FFB29E`,"secondary-background-lighten-3":`#FFC7B3`,"secondary-darken-1":`#C57665`,"secondary-darken-2":`#B06353`,"secondary-darken-3":`#9A5041`,"secondary-lighten-1":`#F29D8B`,"secondary-lighten-2":`#FFB29E`,"secondary-lighten-3":`#FFC7B3`,"secondary-muted":`#E9D2CF`,success:`#40A02B`,"success-darken-1":`#278B14`,"success-darken-2":`#007800`,"success-darken-3":`#006400`,"success-lighten-1":`#56B43F`,"success-lighten-2":`#6BC952`,"success-lighten-3":`#81DE66`,"success-muted":`#BAD8B8`,surface:`#E6E9EF`,"surface-active":`#F7FAFF`,"surface-darken-1":`#D0D3D9`,"surface-darken-2":`#BCBFC4`,"surface-darken-3":`#A7AAB0`,"surface-lighten-1":`#FBFEFF`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#A74207`,"text-disabled":`#00000060`,"text-error":`#8A0925`,"text-muted":`#00000099`,"text-primary":`#59259D`,"text-secondary":`#915B4F`,"text-success":`#2A691C`,"text-warning":`#935D13`,warning:`#DE8E1D`,"warning-darken-1":`#C77A00`,"warning-darken-2":`#B06700`,"warning-darken-3":`#9A5500`,"warning-lighten-1":`#F6A134`,"warning-lighten-2":`#FFB648`,"warning-lighten-3":`#FFCA5D`,"warning-muted":`#EAD3B4`}},bc={name:`catppuccin-macchiato`,dark:!0,ansi:{black:`#494D64`,red:`#ED8796`,green:`#A6DA95`,yellow:`#EED49F`,blue:`#8AADF4`,magenta:`#F5BDE6`,cyan:`#8BD5CA`,white:`#B8C0E0`,brightBlack:`#5B6078`,brightRed:`#F2A7B2`,brightGreen:`#BDE3B0`,brightYellow:`#F4E3C1`,brightBlue:`#ADC5F7`,brightMagenta:`#F493DA`,brightCyan:`#A5DED6`,brightWhite:`#A5ADCB`},vars:{accent:`#F5BDE6`,"accent-darken-1":`#DFA8D0`,"accent-darken-2":`#CA94BC`,"accent-darken-3":`#B580A7`,"accent-lighten-1":`#FFD1FB`,"accent-lighten-2":`#FFE7FF`,"accent-lighten-3":`#FFFCFF`,"accent-muted":`#62546D`,background:`#24273A`,"background-darken-1":`#141729`,"background-darken-2":`#00021A`,"background-darken-3":`#000007`,"background-lighten-1":`#34374B`,"background-lighten-2":`#45485C`,"background-lighten-3":`#57596F`,"block-cursor-background":`#C6A0F6`,"block-cursor-blurred-background":`#C6A0F64C`,"block-cursor-blurred-foreground":`#CAD3F5`,"block-cursor-foreground":`#1E2030`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#B7BDF8`,"border-blurred":`#737994`,"button-color-foreground":`#24273A`,"button-foreground":`#CAD3F5`,error:`#ED8796`,"error-darken-1":`#D67382`,"error-darken-2":`#C05F6F`,"error-darken-3":`#AB4C5D`,"error-lighten-1":`#FF9BA9`,"error-lighten-2":`#FFAFBE`,"error-lighten-3":`#FFC4D3`,"error-muted":`#604355`,"footer-background":`#494D64`,"footer-description-background":`#00000000`,"footer-description-foreground":`#CAD3F5`,"footer-foreground":`#CAD3F5`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#F5BDE6`,foreground:`#CAD3F5`,"foreground-darken-1":`#B5BEDF`,"foreground-darken-2":`#A0A9CA`,"foreground-darken-3":`#8C95B5`,"foreground-disabled":`#CAD3F560`,"foreground-lighten-1":`#DFE8FF`,"foreground-lighten-2":`#F4FDFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#CAD3F599`,"input-cursor-background":`#F4DBD6`,"input-cursor-foreground":`#181926`,"input-selection-background":`#838BA74C`,"link-background":`#00000000`,"link-background-hover":`#C6A0F6`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#C6A0F6`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#C6A0F6`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#C6A0F6`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#CAD3F5`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#CAD3F5`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#CAD3F599`,panel:`#494D64`,"panel-darken-1":`#373B51`,"panel-darken-2":`#262B40`,"panel-darken-3":`#161C2F`,"panel-lighten-1":`#5A5E76`,"panel-lighten-2":`#6D7189`,"panel-lighten-3":`#80849D`,primary:`#C6A0F6`,"primary-background":`#59566F`,"primary-background-darken-1":`#4A4762`,"primary-background-darken-2":`#3C3956`,"primary-background-darken-3":`#3C3956`,"primary-background-lighten-1":`#67657C`,"primary-background-lighten-2":`#767488`,"primary-background-lighten-3":`#858395`,"primary-darken-1":`#B08CE0`,"primary-darken-2":`#9C78CB`,"primary-darken-3":`#8865B6`,"primary-lighten-1":`#DBB4FF`,"primary-lighten-2":`#F1C9FF`,"primary-lighten-3":`#FFDEFF`,"primary-muted":`#544B72`,scrollbar:`#5B4D7B`,"scrollbar-active":`#C6A0F6`,"scrollbar-background":`#141729`,"scrollbar-background-active":`#141729`,"scrollbar-background-hover":`#141729`,"scrollbar-corner-color":`#141729`,"scrollbar-hover":`#6D5B8F`,secondary:`#F4A97F`,"secondary-background":`#5F5760`,"secondary-background-darken-1":`#514852`,"secondary-background-darken-2":`#433A44`,"secondary-background-darken-3":`#433A44`,"secondary-background-lighten-1":`#6D666E`,"secondary-background-lighten-2":`#7B757C`,"secondary-background-lighten-3":`#89838A`,"secondary-darken-1":`#DE946B`,"secondary-darken-2":`#C88159`,"secondary-darken-3":`#B26E47`,"secondary-lighten-1":`#FFBD92`,"secondary-lighten-2":`#FFD2A6`,"secondary-lighten-3":`#FFE7BB`,"secondary-muted":`#624E4E`,success:`#A6DA95`,"success-darken-1":`#91C481`,"success-darken-2":`#7DB06E`,"success-darken-3":`#6A9C5B`,"success-lighten-1":`#BAEFA9`,"success-lighten-2":`#CFFFBD`,"success-lighten-3":`#E5FFD2`,"success-muted":`#4B5C55`,surface:`#363A4F`,"surface-active":`#43475D`,"surface-darken-1":`#25293D`,"surface-darken-2":`#151A2D`,"surface-darken-3":`#03061D`,"surface-lighten-1":`#474B60`,"surface-lighten-2":`#595C73`,"surface-lighten-3":`#6B6F86`,text:`#FFFFFFDD`,"text-accent":`#F8D3EE`,"text-disabled":`#FFFFFF60`,"text-error":`#F3AFB9`,"text-muted":`#FFFFFF99`,"text-primary":`#D9C0F9`,"text-secondary":`#F8C6AA`,"text-success":`#C4E6B9`,"text-warning":`#F3E2BF`,warning:`#EED49F`,"warning-darken-1":`#D8BF8B`,"warning-darken-2":`#C3AA77`,"warning-darken-3":`#AE9664`,"warning-lighten-1":`#FFE9B3`,"warning-lighten-2":`#FFFEC7`,"warning-lighten-3":`#FFFFDD`,"warning-muted":`#605A58`}},xc={name:`catppuccin-mocha`,dark:!0,ansi:{black:`#45475A`,red:`#F38BA8`,green:`#A6E3A1`,yellow:`#F9E2AF`,blue:`#89B4FA`,magenta:`#F5C2E7`,cyan:`#94E2D5`,white:`#BAC2DE`,brightBlack:`#585B70`,brightRed:`#F7AEC2`,brightGreen:`#C2ECBF`,brightYellow:`#FCD682`,brightBlue:`#AECCFC`,brightMagenta:`#F398DA`,brightCyan:`#B1EAE1`,brightWhite:`#A6ADC8`},vars:{accent:`#F9B387`,"accent-darken-1":`#E39E73`,"accent-darken-2":`#CD8A60`,"accent-darken-3":`#B7774E`,"accent-lighten-1":`#FFC79A`,"accent-lighten-2":`#FFDCAE`,"accent-lighten-3":`#FFF2C3`,"accent-muted":`#5B4642`,background:`#181825`,"background-darken-1":`#040216`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#272735`,"background-lighten-2":`#373746`,"background-lighten-3":`#484857`,"block-cursor-background":`#F5C2E7`,"block-cursor-blurred-background":`#F5C2E74C`,"block-cursor-blurred-foreground":`#CDD6F4`,"block-cursor-foreground":`#1E1E2E`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#B4BEFE`,"border-blurred":`#585B70`,"button-color-foreground":`#181825`,"button-foreground":`#CDD6F4`,error:`#F28FAD`,"error-darken-1":`#DB7A99`,"error-darken-2":`#C66785`,"error-darken-3":`#B05372`,"error-lighten-1":`#FFA3C1`,"error-lighten-2":`#FFB8D6`,"error-lighten-3":`#FFCDEB`,"error-muted":`#593B4D`,"footer-background":`#45475A`,"footer-description-background":`#00000000`,"footer-description-foreground":`#CDD6F4`,"footer-foreground":`#CDD6F4`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FAB387`,foreground:`#CDD6F4`,"foreground-darken-1":`#B8C1DE`,"foreground-darken-2":`#A3ACC9`,"foreground-darken-3":`#8F98B4`,"foreground-disabled":`#CDD6F460`,"foreground-lighten-1":`#E2EBFF`,"foreground-lighten-2":`#F7FFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#CDD6F499`,"input-cursor-background":`#F5E0DC`,"input-cursor-foreground":`#11111B`,"input-selection-background":`#9399B24C`,"link-background":`#00000000`,"link-background-hover":`#F5C2E7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#F5C2E7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#F5C2E7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#F5C2E7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#CDD6F4`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#CDD6F4`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#CDD6F499`,panel:`#45475A`,"panel-darken-1":`#333648`,"panel-darken-2":`#232637`,"panel-darken-3":`#131627`,"panel-lighten-1":`#56586C`,"panel-lighten-2":`#696A7F`,"panel-lighten-3":`#7B7D92`,primary:`#F5C2E7`,"primary-background":`#564F5E`,"primary-background-darken-1":`#474050`,"primary-background-darken-2":`#393142`,"primary-background-darken-3":`#393142`,"primary-background-lighten-1":`#655F6C`,"primary-background-lighten-2":`#746E7A`,"primary-background-lighten-3":`#837E88`,"primary-darken-1":`#DFADD1`,"primary-darken-2":`#CA99BD`,"primary-darken-3":`#B585A8`,"primary-lighten-1":`#FFD6FC`,"primary-lighten-2":`#FFECFF`,"primary-lighten-3":`#FFFFFF`,"primary-muted":`#5A4B5F`,scrollbar:`#644E69`,"scrollbar-active":`#F5C2E7`,"scrollbar-background":`#040216`,"scrollbar-background-active":`#040216`,"scrollbar-background-hover":`#040216`,"scrollbar-corner-color":`#040216`,"scrollbar-hover":`#7C627E`,secondary:`#CBA6F7`,"secondary-background":`#504C60`,"secondary-background-darken-1":`#413C52`,"secondary-background-darken-2":`#322D44`,"secondary-background-darken-3":`#322D44`,"secondary-background-lighten-1":`#605C6E`,"secondary-background-lighten-2":`#6F6C7C`,"secondary-background-lighten-3":`#7E7B8A`,"secondary-darken-1":`#B592E1`,"secondary-darken-2":`#A17ECC`,"secondary-darken-3":`#8C6BB7`,"secondary-lighten-1":`#E0BAFF`,"secondary-lighten-2":`#F6CFFF`,"secondary-lighten-3":`#FFE4FF`,"secondary-muted":`#4D4264`,success:`#ABE9B3`,"success-darken-1":`#96D39E`,"success-darken-2":`#82BE8B`,"success-darken-3":`#6EAA77`,"success-lighten-1":`#BFFEC7`,"success-lighten-2":`#D5FFDC`,"success-lighten-3":`#EAFFF2`,"success-muted":`#44564F`,surface:`#313244`,"surface-active":`#3E3F51`,"surface-darken-1":`#202233`,"surface-darken-2":`#111223`,"surface-darken-3":`#000014`,"surface-lighten-1":`#414255`,"surface-lighten-2":`#535467`,"surface-lighten-3":`#65667A`,text:`#FFFFFFDD`,"text-accent":`#FBCCAF`,"text-disabled":`#FFFFFF60`,"text-error":`#F6B5C8`,"text-muted":`#FFFFFF99`,"text-primary":`#F8D6EF`,"text-secondary":`#DCC4F9`,"text-success":`#C7F0CC`,"text-warning":`#FBECCA`,warning:`#FAE3B0`,"warning-darken-1":`#E4CD9B`,"warning-darken-2":`#CEB988`,"warning-darken-3":`#B9A574`,"warning-lighten-1":`#FFF8C4`,"warning-lighten-2":`#FFFFD9`,"warning-lighten-3":`#FFFFEF`,"warning-muted":`#5B544E`}},Sc=[`black`,`red`,`green`,`yellow`,`blue`,`magenta`,`cyan`,`white`,`brightBlack`,`brightRed`,`brightGreen`,`brightYellow`,`brightBlue`,`brightMagenta`,`brightCyan`,`brightWhite`],Cc=Object.fromEntries(Sc.map((e,t)=>[e,ws.get(t).hex])),wc={black:`#1A1A1A`,red:`#F4005F`,green:`#98E024`,yellow:`#FD971F`,blue:`#9D65FF`,magenta:`#F4005F`,cyan:`#58D1EB`,white:`#C4C5B5`,brightBlack:`#625E4C`,brightRed:`#F4005F`,brightGreen:`#98E024`,brightYellow:`#E0D561`,brightBlue:`#9D65FF`,brightMagenta:`#F4005F`,brightCyan:`#58D1EB`,brightWhite:`#F6F6EF`},Tc={"atom-one-dark":gc,"atom-one-light":_c,"catppuccin-frappe":vc,"catppuccin-latte":yc,"catppuccin-macchiato":bc,"catppuccin-mocha":xc,cyberpunk:{name:`cyberpunk`,dark:!0,ansi:wc,vars:{background:`#070714`,"background-darken-1":`#03030A`,"background-darken-2":`#000003`,"background-darken-3":`#000000`,"background-lighten-1":`#11111E`,"background-lighten-2":`#1A1A2B`,"background-lighten-3":`#25253A`,foreground:`#E2E2FF`,"foreground-darken-1":`#CACAE4`,"foreground-darken-2":`#B3B3CC`,"foreground-darken-3":`#9C9CB5`,"foreground-disabled":`#E2E2FF60`,"foreground-lighten-1":`#EEEEFF`,"foreground-lighten-2":`#F6F6FF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E2E2FF99`,primary:`#00E5FFD9`,"primary-darken-1":`#00CCE6D9`,"primary-darken-2":`#00B2CCD9`,"primary-darken-3":`#0099B3D9`,"primary-lighten-1":`#1AF0FFD9`,"primary-lighten-2":`#33F5FFD9`,"primary-lighten-3":`#4DFAFFD9`,"primary-muted":`#054A5BF4`,"primary-background":`#0A3340`,"primary-background-darken-1":`#072833`,"primary-background-darken-2":`#051E27`,"primary-background-darken-3":`#051E27`,"primary-background-lighten-1":`#0F404F`,"primary-background-lighten-2":`#154E5F`,"primary-background-lighten-3":`#1A5C6F`,secondary:`#FF1E8ECC`,"secondary-darken-1":`#E60A76CC`,"secondary-darken-2":`#CC005FCC`,"secondary-darken-3":`#B20048CC`,"secondary-lighten-1":`#FF3CA2CC`,"secondary-lighten-2":`#FF5AB6CC`,"secondary-lighten-3":`#FF78CACC`,"secondary-muted":`#510E39EF`,"secondary-background":`#3A0A28`,"secondary-background-darken-1":`#2E071F`,"secondary-background-darken-2":`#220517`,"secondary-background-darken-3":`#220517`,"secondary-background-lighten-1":`#470D33`,"secondary-background-lighten-2":`#54103F`,"secondary-background-lighten-3":`#61134B`,accent:`#EEFF00CC`,"accent-darken-1":`#D6E600CC`,"accent-darken-2":`#BECC00CC`,"accent-darken-3":`#A5B200CC`,"accent-lighten-1":`#FFFF26CC`,"accent-lighten-2":`#FFFF4DCC`,"accent-lighten-3":`#FFFF73CC`,"accent-muted":`#4C510EEF`,success:`#39FF14BF`,"success-darken-1":`#23E60ABF`,"success-darken-2":`#0FCC00BF`,"success-darken-3":`#00B200BF`,"success-lighten-1":`#4DFF32BF`,"success-lighten-2":`#69FF5ABF`,"success-lighten-3":`#87FF82BF`,"success-muted":`#164D14F0`,warning:`#FF6E00CC`,"warning-darken-1":`#E65800CC`,"warning-darken-2":`#CC4300CC`,"warning-darken-3":`#B23000CC`,"warning-lighten-1":`#FF8C26CC`,"warning-lighten-2":`#FFA54DCC`,"warning-lighten-3":`#FFBE73CC`,"warning-muted":`#51260EEF`,error:`#FF1133BF`,"error-darken-1":`#E6051EBF`,"error-darken-2":`#CC000CBF`,"error-darken-3":`#B20000BF`,"error-lighten-1":`#FF3758BF`,"error-lighten-2":`#FF5A78BF`,"error-lighten-3":`#FF7D96BF`,"error-muted":`#510A1DF0`,surface:`#0F0F22`,"surface-active":`#161630`,"surface-darken-1":`#08081A`,"surface-darken-2":`#040411`,"surface-darken-3":`#020209`,"surface-lighten-1":`#17172E`,"surface-lighten-2":`#1F1F3C`,"surface-lighten-3":`#28284A`,panel:`#0C0C1E`,"panel-darken-1":`#060614`,"panel-darken-2":`#03030C`,"panel-darken-3":`#010108`,"panel-lighten-1":`#14142C`,"panel-lighten-2":`#1C1C3A`,"panel-lighten-3":`#242448`,scrollbar:`#151535`,"scrollbar-active":`#00E5FFD9`,"scrollbar-background":`#040412`,"scrollbar-background-active":`#040412`,"scrollbar-background-hover":`#040412`,"scrollbar-corner-color":`#040412`,"scrollbar-hover":`#1F1F48`,"block-cursor-background":`#00E5FF`,"block-cursor-blurred-background":`#00E5FF4C`,"block-cursor-blurred-foreground":`#E2E2FF`,"block-cursor-foreground":`#070714`,"block-hover-background":`#00E5FF19`,boost:`#00E5FF0A`,"boost-darken-1":`#00CCE60A`,"boost-darken-2":`#00B2CC0A`,"boost-darken-3":`#0099B30A`,"boost-lighten-1":`#00E5FF0A`,"boost-lighten-2":`#00E5FF0A`,"boost-lighten-3":`#00E5FF0A`,border:`#00E5FFD9`,"border-blurred":`#1A1A35`,"button-color-foreground":`#070714`,"button-foreground":`#E2E2FF`,"footer-background":`#0C0C1E`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E2E2FF`,"footer-foreground":`#E2E2FF`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#00E5FFD9`,"input-cursor-background":`#E2E2FF`,"input-cursor-foreground":`#070714`,"input-selection-background":`#00E5FF40`,"link-background":`#00000000`,"link-background-hover":`#00E5FFD9`,"link-color":`#E2E2FFDD`,"link-color-hover":`#070714`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#00E5FFD9`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#00E5FFD9`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#FF1E8ECC`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E2E2FF`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E2E2FF`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E2E2FF99`,text:`#E2E2FFDD`,"text-accent":`#F4FF66CC`,"text-disabled":`#E2E2FF60`,"text-error":`#FF6677BF`,"text-muted":`#E2E2FF99`,"text-primary":`#66F0FFD9`,"text-secondary":`#FF80B0CC`,"text-success":`#80FF55BF`,"text-warning":`#FFB055CC`}},default:{name:`default`,dark:!0,ansi:Cc,vars:{accent:`#006FB8`,"accent-darken-1":`#005CA3`,"accent-darken-2":`#004B8F`,"accent-darken-3":`#003A7B`,"accent-lighten-1":`#3081CC`,"accent-lighten-2":`#4C95E2`,"accent-lighten-3":`#64A8F7`,"accent-muted":`#002137`,background:`#000000`,"background-darken-1":`#000000`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#161616`,"background-lighten-2":`#252525`,"background-lighten-3":`#353535`,"block-cursor-background":`#006FB8`,"block-cursor-blurred-background":`#006FB84C`,"block-cursor-blurred-foreground":`#FFFFFF`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#006FB8`,"border-blurred":`#191919`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#FFFFFF`,error:`#7F0000`,"error-darken-1":`#6A0000`,"error-darken-2":`#560000`,"error-darken-3":`#450000`,"error-lighten-1":`#961E12`,"error-lighten-2":`#AD3423`,"error-lighten-3":`#C44934`,"error-muted":`#260000`,"footer-background":`#242E35`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FFFFFF`,"footer-foreground":`#FFFFFF`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#006FB8`,foreground:`#FFFFFF`,"foreground-darken-1":`#E9E9E9`,"foreground-darken-2":`#D4D4D4`,"foreground-darken-3":`#BFBFBF`,"foreground-disabled":`#FFFFFF60`,"foreground-lighten-1":`#FFFFFF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#FFFFFF99`,"input-cursor-background":`#FFFFFF`,"input-cursor-foreground":`#000000`,"input-selection-background":`#3081CC66`,"link-background":`#00000000`,"link-background-hover":`#006FB8`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#006FB8`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#006FB8`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#006FB8`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#FFFFFF`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#FFFFFF`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#FFFFFF99`,panel:`#242E35`,"panel-darken-1":`#141E24`,"panel-darken-2":`#000D15`,"panel-darken-3":`#000000`,"panel-lighten-1":`#343E45`,"panel-lighten-2":`#454F57`,"panel-lighten-3":`#566169`,primary:`#006FB8`,"primary-background":`#26333D`,"primary-background-darken-1":`#13212C`,"primary-background-darken-2":`#00101B`,"primary-background-darken-3":`#00101B`,"primary-background-lighten-1":`#39454E`,"primary-background-lighten-2":`#4C575F`,"primary-background-lighten-3":`#5F6970`,"primary-darken-1":`#005CA3`,"primary-darken-2":`#004B8F`,"primary-darken-3":`#003A7B`,"primary-lighten-1":`#3081CC`,"primary-lighten-2":`#4C95E2`,"primary-lighten-3":`#64A8F7`,"primary-muted":`#002137`,scrollbar:`#002C49`,"scrollbar-active":`#006FB8`,"scrollbar-background":`#000000`,"scrollbar-background-active":`#000000`,"scrollbar-background-hover":`#000000`,"scrollbar-corner-color":`#000000`,"scrollbar-hover":`#00375C`,secondary:`#762671`,"secondary-background":`#342A33`,"secondary-background-darken-1":`#221721`,"secondary-background-darken-2":`#110510`,"secondary-background-darken-3":`#110510`,"secondary-background-lighten-1":`#463D45`,"secondary-background-lighten-2":`#585057`,"secondary-background-lighten-3":`#6A6269`,"secondary-darken-1":`#620F5E`,"secondary-darken-2":`#4E004C`,"secondary-darken-3":`#3B003A`,"secondary-lighten-1":`#8A3984`,"secondary-lighten-2":`#9E4C97`,"secondary-lighten-3":`#B360AB`,"secondary-muted":`#230B21`,success:`#008000`,"success-darken-1":`#006C00`,"success-darken-2":`#005900`,"success-darken-3":`#004600`,"success-lighten-1":`#29931C`,"success-lighten-2":`#42A832`,"success-lighten-3":`#58BD46`,"success-muted":`#002600`,surface:`#1E1E1E`,"surface-active":`#2A2A2A`,"surface-darken-1":`#0D0D0D`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2D2D2D`,"surface-lighten-2":`#3E3E3E`,"surface-lighten-3":`#4F4F4F`,text:`#FFFFFFDD`,"text-accent":`#569FD0`,"text-disabled":`#FFFFFF60`,"text-error":`#AB5656`,"text-muted":`#FFFFFF99`,"text-primary":`#569FD0`,"text-secondary":`#A46FA1`,"text-success":`#56AB56`,"text-warning":`#ABAB56`,warning:`#7F8000`,"warning-darken-1":`#6B6D00`,"warning-darken-2":`#575A00`,"warning-darken-3":`#454900`,"warning-lighten-1":`#94931E`,"warning-lighten-2":`#A9A734`,"warning-lighten-3":`#BFBB48`,"warning-muted":`#262600`}},dracula:{name:`dracula`,dark:!0,ansi:{black:`#21222C`,red:`#FF5555`,green:`#50FA7B`,yellow:`#F1FA8C`,blue:`#BD93F9`,magenta:`#FF79C6`,cyan:`#8BE9FD`,white:`#F8F8F2`,brightBlack:`#6272A4`,brightRed:`#FF6E6E`,brightGreen:`#69FF94`,brightYellow:`#FFFFA5`,brightBlue:`#D6ACFF`,brightMagenta:`#FF92DF`,brightCyan:`#A4FFFF`,brightWhite:`#FFFFFF`},vars:{accent:`#FF79C6`,"accent-darken-1":`#E864B1`,"accent-darken-2":`#D24F9D`,"accent-darken-3":`#BC3989`,"accent-lighten-1":`#FF8DDA`,"accent-lighten-2":`#FFA3F0`,"accent-lighten-3":`#FFB8FF`,"accent-muted":`#684161`,background:`#282A36`,"background-darken-1":`#181A25`,"background-darken-2":`#050716`,"background-darken-3":`#000000`,"background-lighten-1":`#383A46`,"background-lighten-2":`#494B58`,"background-lighten-3":`#5B5D6A`,"block-cursor-background":`#BD93F9`,"block-cursor-blurred-background":`#BD93F94C`,"block-cursor-blurred-foreground":`#F8F8F2`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#BD93F9`,"border-blurred":`#252835`,"button-color-foreground":`#282A36`,"button-foreground":`#F8F8F2`,error:`#FE5555`,"error-darken-1":`#E63E43`,"error-darken-2":`#CE2332`,"error-darken-3":`#B70022`,"error-lighten-1":`#FF6A67`,"error-lighten-2":`#FF807A`,"error-lighten-3":`#FF958D`,"error-muted":`#68363F`,"footer-background":`#313442`,"footer-description-background":`#00000000`,"footer-description-foreground":`#F8F8F2`,"footer-foreground":`#F8F8F2`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FF79C6`,foreground:`#F8F8F2`,"foreground-darken-1":`#E2E2DC`,"foreground-darken-2":`#CDCDC7`,"foreground-darken-3":`#B8B8B3`,"foreground-disabled":`#F8F8F260`,"foreground-lighten-1":`#FFFFFF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#F8F8F299`,"input-cursor-background":`#F8F8F2`,"input-cursor-foreground":`#282A36`,"input-selection-background":`#D2A7FF66`,"link-background":`#00000000`,"link-background-hover":`#BD93F9`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#BD93F9`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#BD93F9`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#BD93F9`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#F8F8F2`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#F8F8F2`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#F8F8F299`,panel:`#313442`,"panel-darken-1":`#202431`,"panel-darken-2":`#111421`,"panel-darken-3":`#000012`,"panel-lighten-1":`#414453`,"panel-lighten-2":`#535665`,"panel-lighten-3":`#656878`,primary:`#BD93F9`,"primary-background":`#5A566C`,"primary-background-darken-1":`#4C475F`,"primary-background-darken-2":`#3E3953`,"primary-background-darken-3":`#3E3953`,"primary-background-lighten-1":`#696579`,"primary-background-lighten-2":`#777486`,"primary-background-lighten-3":`#868393`,"primary-darken-1":`#A77FE3`,"primary-darken-2":`#936CCE`,"primary-darken-3":`#7E59B9`,"primary-lighten-1":`#D2A7FF`,"primary-lighten-2":`#E8BBFF`,"primary-lighten-3":`#FED0FF`,"primary-muted":`#544970`,scrollbar:`#5A4A79`,"scrollbar-active":`#BD93F9`,"scrollbar-background":`#181A25`,"scrollbar-background-active":`#181A25`,"scrollbar-background-hover":`#181A25`,"scrollbar-corner-color":`#181A25`,"scrollbar-hover":`#6A568F`,secondary:`#6272A4`,"secondary-background":`#4F5261`,"secondary-background-darken-1":`#3F4353`,"secondary-background-darken-2":`#303446`,"secondary-background-darken-3":`#303446`,"secondary-background-lighten-1":`#5E616F`,"secondary-background-lighten-2":`#6E707D`,"secondary-background-lighten-3":`#7D808B`,"secondary-darken-1":`#4E5F90`,"secondary-darken-2":`#3B4D7C`,"secondary-darken-3":`#283C69`,"secondary-lighten-1":`#7584B8`,"secondary-lighten-2":`#8998CD`,"secondary-lighten-3":`#9DACE2`,"secondary-muted":`#393F57`,success:`#50FA7B`,"success-darken-1":`#2FE467`,"success-darken-2":`#00CE53`,"success-darken-3":`#00B83F`,"success-lighten-1":`#6AFF8F`,"success-lighten-2":`#83FFA3`,"success-lighten-3":`#9BFFB8`,"success-muted":`#34684A`,surface:`#2B2E3B`,"surface-active":`#383B48`,"surface-darken-1":`#1B1E2A`,"surface-darken-2":`#0A0D1B`,"surface-darken-3":`#000009`,"surface-lighten-1":`#3B3E4C`,"surface-lighten-2":`#4C4F5D`,"surface-lighten-3":`#5E6170`,text:`#FFFFFFDD`,"text-accent":`#FFA6D9`,"text-disabled":`#FFFFFF60`,"text-error":`#FF8E8E`,"text-muted":`#FFFFFF99`,"text-primary":`#D3B7FB`,"text-secondary":`#97A1C2`,"text-success":`#8BFBA7`,"text-warning":`#FFD09D`,warning:`#FEB86C`,"warning-darken-1":`#E8A358`,"warning-darken-2":`#D18F45`,"warning-darken-3":`#BB7C33`,"warning-lighten-1":`#FFCC7F`,"warning-lighten-2":`#FFE193`,"warning-lighten-3":`#FFF7A7`,"warning-muted":`#685446`}},flexoki:{name:`flexoki`,dark:!0,ansi:{black:`#100F0F`,red:`#D14D41`,green:`#879A39`,yellow:`#D0A215`,blue:`#4385BE`,magenta:`#CE5D97`,cyan:`#3AA99F`,white:`#878580`,brightBlack:`#575653`,brightRed:`#AF3029`,brightGreen:`#66800B`,brightYellow:`#AD8301`,brightBlue:`#205EA6`,brightMagenta:`#A02F6F`,brightCyan:`#24837B`,brightWhite:`#CECDC3`},vars:{accent:`#9B76C8`,"accent-darken-1":`#8663B3`,"accent-darken-2":`#72509E`,"accent-darken-3":`#5F3E8B`,"accent-lighten-1":`#AF89DD`,"accent-lighten-2":`#C49DF2`,"accent-lighten-3":`#D9B1FF`,"accent-muted":`#392D46`,background:`#100F0F`,"background-darken-1":`#000000`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#1F1F1F`,"background-lighten-2":`#2F2E2E`,"background-lighten-3":`#403F3F`,"block-cursor-background":`#205EA6`,"block-cursor-blurred-background":`#205EA64C`,"block-cursor-blurred-foreground":`#FFFCF0`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#205EA6`,"border-blurred":`#171614`,"button-color-foreground":`#FFFCF0`,"button-foreground":`#FFFCF0`,error:`#AE3029`,"error-darken-1":`#981818`,"error-darken-2":`#810007`,"error-darken-3":`#6B0000`,"error-lighten-1":`#C64539`,"error-lighten-2":`#DD594B`,"error-lighten-3":`#F46D5D`,"error-muted":`#3F1816`,"footer-background":`#282726`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FFFCF0`,"footer-foreground":`#FFFCF0`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#9B76C8`,foreground:`#FFFCF0`,"foreground-darken-1":`#E9E6DA`,"foreground-darken-2":`#D4D1C5`,"foreground-darken-3":`#BFBCB1`,"foreground-disabled":`#FFFCF060`,"foreground-lighten-1":`#FFFFFF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#FFFCF099`,"input-cursor-background":`#FFFCF0`,"input-cursor-foreground":`#5E409D`,"input-selection-background":`#6F6E6959`,"link-background":`#00000000`,"link-background-hover":`#205EA6`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#205EA6`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#205EA6`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#205EA6`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#FFFCF0`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#FFFCF0`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#FFFCF099`,panel:`#282726`,"panel-darken-1":`#181716`,"panel-darken-2":`#040200`,"panel-darken-3":`#000000`,"panel-lighten-1":`#383736`,"panel-lighten-2":`#494846`,"panel-lighten-3":`#5A5958`,primary:`#205EA6`,"primary-background":`#353C45`,"primary-background-darken-1":`#232B35`,"primary-background-darken-2":`#121A25`,"primary-background-darken-3":`#121A25`,"primary-background-lighten-1":`#474D56`,"primary-background-lighten-2":`#595E66`,"primary-background-lighten-3":`#6A6F76`,"primary-darken-1":`#004C91`,"primary-darken-2":`#003B7E`,"primary-darken-3":`#002B6B`,"primary-lighten-1":`#3C70BA`,"primary-lighten-2":`#5383CF`,"primary-lighten-3":`#6996E4`,"primary-muted":`#14263C`,scrollbar:`#0C2542`,"scrollbar-active":`#205EA6`,"scrollbar-background":`#000000`,"scrollbar-background-active":`#000000`,"scrollbar-background-hover":`#000000`,"scrollbar-corner-color":`#000000`,"scrollbar-hover":`#102F53`,secondary:`#24837B`,"secondary-background":`#364140`,"secondary-background-darken-1":`#24302F`,"secondary-background-darken-2":`#13201F`,"secondary-background-darken-3":`#13201F`,"secondary-background-lighten-1":`#485251`,"secondary-background-lighten-2":`#596262`,"secondary-background-lighten-3":`#6B7373`,"secondary-darken-1":`#006F68`,"secondary-darken-2":`#005D56`,"secondary-darken-3":`#004A44`,"secondary-lighten-1":`#3C968E`,"secondary-lighten-2":`#52AAA1`,"secondary-lighten-3":`#67BFB6`,"secondary-muted":`#16312F`,success:`#65800B`,"success-darken-1":`#526D00`,"success-darken-2":`#3E5A00`,"success-darken-3":`#2D4800`,"success-lighten-1":`#7A9324`,"success-lighten-2":`#8EA738`,"success-lighten-3":`#A3BB4C`,"success-muted":`#29300D`,surface:`#1C1B1A`,"surface-active":`#282726`,"surface-darken-1":`#0A0806`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2B2A29`,"surface-lighten-2":`#3B3A39`,"surface-lighten-3":`#4D4B4A`,text:`#FFFFFFDD`,"text-accent":`#BDA4DA`,"text-disabled":`#FFFFFF60`,"text-error":`#CA7671`,"text-muted":`#FFFFFF99`,"text-primary":`#6B94C4`,"text-secondary":`#6EADA7`,"text-success":`#9AAB5D`,"text-warning":`#C8AD57`,warning:`#AC8301`,"warning-darken-1":`#977000`,"warning-darken-2":`#815D00`,"warning-darken-3":`#6C4C00`,"warning-lighten-1":`#C39621`,"warning-lighten-2":`#D9AA37`,"warning-lighten-3":`#F0BE4B`,"warning-muted":`#3F310A`}},gruvbox:{name:`gruvbox`,dark:!0,ansi:{black:`#282828`,red:`#CC241D`,green:`#98971A`,yellow:`#D79921`,blue:`#458588`,magenta:`#B16286`,cyan:`#689D6A`,white:`#A89984`,brightBlack:`#928374`,brightRed:`#FB4934`,brightGreen:`#B8BB26`,brightYellow:`#FABD2F`,brightBlue:`#83A598`,brightMagenta:`#D3869B`,brightCyan:`#8EC07C`,brightWhite:`#EBDBB2`},vars:{accent:`#F9BD2F`,"accent-darken-1":`#E2A811`,"accent-darken-2":`#CB9400`,"accent-darken-3":`#B48100`,"accent-lighten-1":`#FFD146`,"accent-lighten-2":`#FFE65B`,"accent-lighten-3":`#FFFC70`,"accent-muted":`#67542A`,background:`#282828`,"background-darken-1":`#181818`,"background-darken-2":`#040404`,"background-darken-3":`#000000`,"background-lighten-1":`#383838`,"background-lighten-2":`#494949`,"background-lighten-3":`#5A5A5A`,"block-cursor-background":`#85A598`,"block-cursor-blurred-background":`#85A5984C`,"block-cursor-blurred-foreground":`#FBF1C7`,"block-cursor-foreground":`#FBF1C7`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#85A598`,"border-blurred":`#363230`,"button-color-foreground":`#282828`,"button-foreground":`#FBF1C7`,error:`#FA4934`,"error-darken-1":`#E23022`,"error-darken-2":`#C90D10`,"error-darken-3":`#B10000`,"error-lighten-1":`#FF5F45`,"error-lighten-2":`#FF7558`,"error-lighten-3":`#FF8B6B`,"error-muted":`#67312B`,"footer-background":`#504945`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FBF1C7`,"footer-foreground":`#FBF1C7`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FABD2F`,foreground:`#FBF1C7`,"foreground-darken-1":`#E5DBB2`,"foreground-darken-2":`#D0C69E`,"foreground-darken-3":`#BBB28A`,"foreground-disabled":`#FBF1C760`,"foreground-lighten-1":`#FFFFDC`,"foreground-lighten-2":`#FFFFF1`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#FBF1C799`,"input-cursor-background":`#FBF1C7`,"input-cursor-foreground":`#282828`,"input-selection-background":`#689D6A40`,"link-background":`#00000000`,"link-background-hover":`#85A598`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#85A598`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#85A598`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#85A598`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#FBF1C7`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#FBF1C7`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#FBF1C799`,panel:`#504945`,"panel-darken-1":`#3E3834`,"panel-darken-2":`#2E2724`,"panel-darken-3":`#1E1815`,"panel-lighten-1":`#615A56`,"panel-lighten-2":`#746C68`,"panel-lighten-3":`#877F7B`,primary:`#85A598`,"primary-background":`#535755`,"primary-background-darken-1":`#444846`,"primary-background-darken-2":`#353A38`,"primary-background-darken-3":`#353A38`,"primary-background-lighten-1":`#626664`,"primary-background-lighten-2":`#717573`,"primary-background-lighten-3":`#808382`,"primary-darken-1":`#719184`,"primary-darken-2":`#5F7D71`,"primary-darken-3":`#4C6A5F`,"primary-lighten-1":`#98B9AB`,"primary-lighten-2":`#ACCEC0`,"primary-lighten-3":`#C1E3D5`,"primary-muted":`#434D49`,scrollbar:`#43504B`,"scrollbar-active":`#85A598`,"scrollbar-background":`#181818`,"scrollbar-background-active":`#181818`,"scrollbar-background-hover":`#181818`,"scrollbar-corner-color":`#181818`,"scrollbar-hover":`#4E5E58`,secondary:`#A89A85`,"secondary-background":`#585653`,"secondary-background-darken-1":`#494744`,"secondary-background-darken-2":`#3B3935`,"secondary-background-darken-3":`#3B3935`,"secondary-background-lighten-1":`#676562`,"secondary-background-lighten-2":`#757471`,"secondary-background-lighten-3":`#848380`,"secondary-darken-1":`#938671`,"secondary-darken-2":`#80735F`,"secondary-darken-3":`#6D604D`,"secondary-lighten-1":`#BCAE98`,"secondary-lighten-2":`#D1C2AC`,"secondary-lighten-3":`#E6D7C1`,"secondary-muted":`#4E4A43`,success:`#B7BB26`,"success-darken-1":`#A2A601`,"success-darken-2":`#8C9300`,"success-darken-3":`#777F00`,"success-lighten-1":`#CDCF3D`,"success-lighten-2":`#E4E453`,"success-lighten-3":`#FAFA68`,"success-muted":`#535427`,surface:`#3C3836`,"surface-active":`#494543`,"surface-darken-1":`#2B2725`,"surface-darken-2":`#1C1816`,"surface-darken-3":`#0A0300`,"surface-lighten-1":`#4D4846`,"surface-lighten-2":`#5F5A58`,"surface-lighten-3":`#716C6A`,text:`#FFFFFFDD`,"text-accent":`#FBD375`,"text-disabled":`#FFFFFF60`,"text-error":`#FC8679`,"text-muted":`#FFFFFF99`,"text-primary":`#AEC3BB`,"text-secondary":`#C5BCAE`,"text-success":`#D0D26F`,"text-warning":`#FEAB67`,warning:`#FD8019`,"warning-darken-1":`#E56C00`,"warning-darken-2":`#CD5800`,"warning-darken-3":`#B54500`,"warning-lighten-1":`#FF9430`,"warning-lighten-2":`#FFA845`,"warning-lighten-3":`#FFBD5A`,"warning-muted":`#684223`}},monokai:{name:`monokai`,dark:!0,ansi:{black:`#333333`,red:`#C4265E`,green:`#86B42B`,yellow:`#B3B42B`,blue:`#6A7EC8`,magenta:`#8C6BC8`,cyan:`#56ADBC`,white:`#E3E3DD`,brightBlack:`#666666`,brightRed:`#F92672`,brightGreen:`#A6E22E`,brightYellow:`#E2E22E`,brightBlue:`#819AFF`,brightMagenta:`#AE81FF`,brightCyan:`#66D9EF`,brightWhite:`#F8F8F2`},vars:{accent:`#66D9EF`,"accent-darken-1":`#4DC3D9`,"accent-darken-2":`#31AFC4`,"accent-darken-3":`#009BB0`,"accent-lighten-1":`#7DEEFF`,"accent-lighten-2":`#94FFFF`,"accent-lighten-3":`#AAFFFF`,"accent-muted":`#395D5F`,background:`#272822`,"background-darken-1":`#171812`,"background-darken-2":`#020400`,"background-darken-3":`#000000`,"background-lighten-1":`#373831`,"background-lighten-2":`#484942`,"background-lighten-3":`#595A54`,"block-cursor-background":`#AE81FF`,"block-cursor-blurred-background":`#AE81FF4C`,"block-cursor-blurred-foreground":`#D6D6D6`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#AE81FF`,"border-blurred":`#282828`,"button-color-foreground":`#272822`,"button-foreground":`#D6D6D6`,error:`#F82672`,"error-darken-1":`#E1005F`,"error-darken-2":`#C9004E`,"error-darken-3":`#B1003D`,"error-lighten-1":`#FF4484`,"error-lighten-2":`#FF5D98`,"error-lighten-3":`#FF75AC`,"error-muted":`#66273A`,"footer-background":`#3E3D32`,"footer-description-background":`#00000000`,"footer-description-foreground":`#D6D6D6`,"footer-foreground":`#D6D6D6`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#66D9EF`,foreground:`#D6D6D6`,"foreground-darken-1":`#C1C1C1`,"foreground-darken-2":`#ACACAC`,"foreground-darken-3":`#989898`,"foreground-disabled":`#D6D6D660`,"foreground-lighten-1":`#EBEBEB`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#797979`,"input-cursor-background":`#D6D6D6`,"input-cursor-foreground":`#272822`,"input-selection-background":`#575B6190`,"link-background":`#00000000`,"link-background-hover":`#AE81FF`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#AE81FF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#AE81FF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#AE81FF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#D6D6D6`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#D6D6D6`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#797979`,panel:`#3E3D32`,"panel-darken-1":`#2D2C22`,"panel-darken-2":`#1D1C12`,"panel-darken-3":`#0D0B00`,"panel-lighten-1":`#4F4E42`,"panel-lighten-2":`#616054`,"panel-lighten-3":`#737266`,primary:`#AE81FF`,"primary-background":`#58535F`,"primary-background-darken-1":`#494451`,"primary-background-darken-2":`#3B3543`,"primary-background-darken-3":`#3B3543`,"primary-background-lighten-1":`#67626D`,"primary-background-lighten-2":`#75717B`,"primary-background-lighten-3":`#848089`,"primary-darken-1":`#986DE9`,"primary-darken-2":`#835AD3`,"primary-darken-3":`#6E48BE`,"primary-lighten-1":`#C394FF`,"primary-lighten-2":`#D9A9FF`,"primary-lighten-3":`#EFBDFF`,"primary-muted":`#4F4264`,scrollbar:`#534270`,"scrollbar-active":`#AE81FF`,"scrollbar-background":`#171812`,"scrollbar-background-active":`#171812`,"scrollbar-background-hover":`#171812`,"scrollbar-corner-color":`#171812`,"scrollbar-hover":`#624C88`,secondary:`#F82672`,"secondary-background":`#61474D`,"secondary-background-darken-1":`#53373D`,"secondary-background-darken-2":`#46272E`,"secondary-background-darken-3":`#46272E`,"secondary-background-lighten-1":`#6F575D`,"secondary-background-lighten-2":`#7D676C`,"secondary-background-lighten-3":`#8B787C`,"secondary-darken-1":`#E1005F`,"secondary-darken-2":`#C9004E`,"secondary-darken-3":`#B1003D`,"secondary-lighten-1":`#FF4484`,"secondary-lighten-2":`#FF5D98`,"secondary-lighten-3":`#FF75AC`,"secondary-muted":`#66273A`,success:`#A5E22E`,"success-darken-1":`#90CC09`,"success-darken-2":`#7AB700`,"success-darken-3":`#64A300`,"success-lighten-1":`#BBF746`,"success-lighten-2":`#D2FF5D`,"success-lighten-3":`#E8FF72`,"success-muted":`#4D5F25`,surface:`#2E2E2E`,"surface-active":`#3B3B3B`,"surface-darken-1":`#1E1E1E`,"surface-darken-2":`#0D0D0D`,"surface-darken-3":`#000000`,"surface-lighten-1":`#3E3E3E`,"surface-lighten-2":`#4F4F4F`,"surface-lighten-3":`#616161`,text:`#FFFFFFDD`,"text-accent":`#9AE5F4`,"text-disabled":`#FFFFFF60`,"text-error":`#FB6FA1`,"text-muted":`#FFFFFF99`,"text-primary":`#C9ABFF`,"text-secondary":`#FB6FA1`,"text-success":`#C4EB75`,"text-warning":`#FDBA6B`,warning:`#FC971F`,"warning-darken-1":`#E58300`,"warning-darken-2":`#CD6F00`,"warning-darken-3":`#B65D00`,"warning-lighten-1":`#FFAB36`,"warning-lighten-2":`#FFBF4C`,"warning-lighten-3":`#FFD460`,"warning-muted":`#674921`}},nord:{name:`nord`,dark:!0,ansi:{black:`#3B4252`,red:`#BF616A`,green:`#A3BE8C`,yellow:`#EBCB8B`,blue:`#81A1C1`,magenta:`#B48EAD`,cyan:`#88C0D0`,white:`#E5E9F0`,brightBlack:`#596377`,brightRed:`#BF616A`,brightGreen:`#A3BE8C`,brightYellow:`#EBCB8B`,brightBlue:`#81A1C1`,brightMagenta:`#B48EAD`,brightCyan:`#8FBCBB`,brightWhite:`#ECEFF4`},vars:{accent:`#B48EAD`,"accent-darken-1":`#9F7A98`,"accent-darken-2":`#8B6785`,"accent-darken-3":`#785572`,"accent-lighten-1":`#C8A1C1`,"accent-lighten-2":`#DDB6D6`,"accent-lighten-3":`#F3CAEB`,"accent-muted":`#564F60`,background:`#2E3440`,"background-darken-1":`#1E242F`,"background-darken-2":`#0E141F`,"background-darken-3":`#000010`,"background-lighten-1":`#3E4451`,"background-lighten-2":`#505663`,"background-lighten-3":`#626875`,"block-cursor-background":`#88C0D0`,"block-cursor-blurred-background":`#88C0D04C`,"block-cursor-blurred-foreground":`#D8DEE9`,"block-cursor-foreground":`#2E3440`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#88C0D0`,"border-blurred":`#353C4C`,"button-color-foreground":`#2E3440`,"button-foreground":`#D8DEE9`,error:`#BE616A`,"error-darken-1":`#A94D57`,"error-darken-2":`#933A46`,"error-darken-3":`#7E2735`,"error-lighten-1":`#D4747C`,"error-lighten-2":`#EB8890`,"error-lighten-3":`#FF9CA3`,"error-muted":`#59414C`,"footer-background":`#434C5E`,"footer-description-background":`#00000000`,"footer-description-foreground":`#D8DEE9`,"footer-foreground":`#D8DEE9`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#88C0D0`,foreground:`#D8DEE9`,"foreground-darken-1":`#C3C9D3`,"foreground-darken-2":`#AEB4BF`,"foreground-darken-3":`#9AA0AA`,"foreground-disabled":`#D8DEE960`,"foreground-lighten-1":`#EDF3FE`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#D8DEE999`,"input-cursor-background":`#D8DEE9`,"input-cursor-foreground":`#2E3440`,"input-selection-background":`#81A1C159`,"link-background":`#00000000`,"link-background-hover":`#88C0D0`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#88C0D0`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#88C0D0`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#88C0D0`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#D8DEE9`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#D8DEE9`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#D8DEE999`,panel:`#434C5E`,"panel-darken-1":`#313A4C`,"panel-darken-2":`#212A3A`,"panel-darken-3":`#111B2A`,"panel-lighten-1":`#545D70`,"panel-lighten-2":`#677083`,"panel-lighten-3":`#798396`,primary:`#88C0D0`,"primary-background":`#58646E`,"primary-background-darken-1":`#495661`,"primary-background-darken-2":`#3B4955`,"primary-background-darken-3":`#3B4955`,"primary-background-lighten-1":`#67717B`,"primary-background-lighten-2":`#757F88`,"primary-background-lighten-3":`#848D94`,"primary-darken-1":`#73ABBB`,"primary-darken-2":`#5F97A6`,"primary-darken-3":`#4B8393`,"primary-lighten-1":`#9CD4E5`,"primary-lighten-2":`#B1EAFA`,"primary-lighten-3":`#C6FFFF`,"primary-muted":`#495E6B`,scrollbar:`#48626F`,"scrollbar-active":`#88C0D0`,"scrollbar-background":`#1E242F`,"scrollbar-background-active":`#1E242F`,"scrollbar-background-hover":`#1E242F`,"scrollbar-corner-color":`#1E242F`,"scrollbar-hover":`#53727F`,secondary:`#81A1C1`,"secondary-background":`#57606C`,"secondary-background-darken-1":`#48525F`,"secondary-background-darken-2":`#3A4453`,"secondary-background-darken-3":`#3A4453`,"secondary-background-lighten-1":`#666E79`,"secondary-background-lighten-2":`#757C86`,"secondary-background-lighten-3":`#838A93`,"secondary-darken-1":`#6D8DAC`,"secondary-darken-2":`#597A98`,"secondary-darken-3":`#466784`,"secondary-lighten-1":`#95B5D5`,"secondary-lighten-2":`#A9C9EB`,"secondary-lighten-3":`#BEDEFF`,"secondary-muted":`#465466`,success:`#A3BE8C`,"success-darken-1":`#8FA978`,"success-darken-2":`#7B9565`,"success-darken-3":`#688253`,"success-lighten-1":`#B7D29F`,"success-lighten-2":`#CCE8B4`,"success-lighten-3":`#E1FDC8`,"success-muted":`#515D56`,surface:`#3B4252`,"surface-active":`#484F60`,"surface-darken-1":`#2A3140`,"surface-darken-2":`#1A212F`,"surface-darken-3":`#0A1120`,"surface-lighten-1":`#4C5364`,"surface-lighten-2":`#5E6576`,"surface-lighten-3":`#707889`,text:`#FFFFFFDD`,"text-accent":`#CDB4C8`,"text-disabled":`#FFFFFF60`,"text-error":`#D4969C`,"text-muted":`#FFFFFF99`,"text-primary":`#B0D5DF`,"text-secondary":`#ABC0D6`,"text-success":`#C2D4B3`,"text-warning":`#F1DCB2`,warning:`#EACB8B`,"warning-darken-1":`#D5B677`,"warning-darken-2":`#BFA264`,"warning-darken-3":`#AA8E51`,"warning-lighten-1":`#FFE09E`,"warning-lighten-2":`#FFF5B3`,"warning-lighten-3":`#FFFFC8`,"warning-muted":`#666156`}},"rose-pine":{name:`rose-pine`,dark:!0,ansi:{black:`#26233A`,red:`#EB6F92`,green:`#31748F`,yellow:`#F6C177`,blue:`#9CCFD8`,magenta:`#C4A7E7`,cyan:`#EBBCBA`,white:`#E0DEF4`,brightBlack:`#6E6A86`,brightRed:`#EB6F92`,brightGreen:`#31748F`,brightYellow:`#F6C177`,brightBlue:`#9CCFD8`,brightMagenta:`#C4A7E7`,brightCyan:`#EBBCBA`,brightWhite:`#E0DEF4`},vars:{accent:`#EBBCBA`,"accent-darken-1":`#D5A7A5`,"accent-darken-2":`#C09391`,"accent-darken-3":`#AB807E`,"accent-lighten-1":`#FFD0CE`,"accent-lighten-2":`#FFE5E3`,"accent-lighten-3":`#FFFBF9`,"accent-muted":`#584851`,background:`#191724`,"background-darken-1":`#060015`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#282634`,"background-lighten-2":`#383644`,"background-lighten-3":`#4A4756`,"block-cursor-background":`#C4A7E7`,"block-cursor-blurred-background":`#C4A7E74C`,"block-cursor-blurred-foreground":`#E0DEF4`,"block-cursor-foreground":`#191724`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#524F67`,"border-blurred":`#6E6A86`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#E0DEF4`,error:`#EA6F92`,"error-darken-1":`#D45A7E`,"error-darken-2":`#BE466B`,"error-darken-3":`#A83159`,"error-lighten-1":`#FF83A5`,"error-lighten-2":`#FF98BA`,"error-lighten-3":`#FFADCE`,"error-muted":`#583145`,"footer-background":`#26233A`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0DEF4`,"footer-foreground":`#E0DEF4`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#EBBCBA`,foreground:`#E0DEF4`,"foreground-darken-1":`#CAC9DE`,"foreground-darken-2":`#B6B4C9`,"foreground-darken-3":`#A2A0B4`,"foreground-disabled":`#E0DEF460`,"foreground-lighten-1":`#F5F3FF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E0DEF499`,"input-cursor-background":`#F4EDE8`,"input-cursor-foreground":`#191724`,"input-selection-background":`#403D52`,"link-background":`#00000000`,"link-background-hover":`#C4A7E7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#C4A7E7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#C4A7E7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#C4A7E7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0DEF4`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0DEF4`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E0DEF499`,panel:`#26233A`,"panel-darken-1":`#161329`,"panel-darken-2":`#04001A`,"panel-darken-3":`#000008`,"panel-lighten-1":`#36324B`,"panel-lighten-2":`#47435D`,"panel-lighten-3":`#59556F`,primary:`#C4A7E7`,"primary-background":`#504B5D`,"primary-background-darken-1":`#413B4F`,"primary-background-darken-2":`#322C41`,"primary-background-darken-3":`#322C41`,"primary-background-lighten-1":`#605B6B`,"primary-background-lighten-2":`#6F6B7A`,"primary-background-lighten-3":`#7E7B88`,"primary-darken-1":`#AF93D1`,"primary-darken-2":`#9A7FBC`,"primary-darken-3":`#866CA8`,"primary-lighten-1":`#D9BBFC`,"primary-lighten-2":`#EED0FF`,"primary-lighten-3":`#FFE5FF`,"primary-muted":`#4C425E`,scrollbar:`#524269`,"scrollbar-active":`#C4A7E7`,"scrollbar-background":`#060015`,"scrollbar-background-active":`#060015`,"scrollbar-background-hover":`#060015`,"scrollbar-corner-color":`#060015`,"scrollbar-hover":`#65537E`,secondary:`#31748F`,"secondary-background":`#3E4452`,"secondary-background-darken-1":`#2D3443`,"secondary-background-darken-2":`#1C2434`,"secondary-background-darken-3":`#1C2434`,"secondary-background-lighten-1":`#4F5561`,"secondary-background-lighten-2":`#606570`,"secondary-background-lighten-3":`#717680`,"secondary-darken-1":`#17617B`,"secondary-darken-2":`#004F68`,"secondary-darken-3":`#003E56`,"secondary-lighten-1":`#4687A2`,"secondary-lighten-2":`#5B9AB7`,"secondary-lighten-3":`#70AECB`,"secondary-muted":`#203244`,success:`#9CCFD8`,"success-darken-1":`#87BAC3`,"success-darken-2":`#73A5AE`,"success-darken-3":`#60929A`,"success-lighten-1":`#B0E4ED`,"success-lighten-2":`#C5F9FF`,"success-lighten-3":`#DAFFFF`,"success-muted":`#404E5A`,surface:`#1F1D2E`,"surface-active":`#2B293B`,"surface-darken-1":`#100B1E`,"surface-darken-2":`#00000E`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2F2C3E`,"surface-lighten-2":`#3F3D4F`,"surface-lighten-3":`#514E61`,text:`#FFFFFFDD`,"text-accent":`#F1D2D1`,"text-disabled":`#FFFFFF60`,"text-error":`#F19FB7`,"text-muted":`#FFFFFF99`,"text-primary":`#D8C4EF`,"text-secondary":`#77A3B5`,"text-success":`#BDDFE5`,"text-warning":`#F9D6A5`,warning:`#F5C177`,"warning-darken-1":`#DFAC63`,"warning-darken-2":`#C99850`,"warning-darken-3":`#B3853E`,"warning-lighten-1":`#FFD58A`,"warning-lighten-2":`#FFEB9E`,"warning-lighten-3":`#FFFFB3`,"warning-muted":`#5B4A3C`}},"rose-pine-dawn":{name:`rose-pine-dawn`,dark:!1,ansi:{black:`#F2E9E1`,red:`#B4637A`,green:`#286983`,yellow:`#EA9D34`,blue:`#56949F`,magenta:`#907AA9`,cyan:`#D7827E`,white:`#575279`,brightBlack:`#9893A5`,brightRed:`#B4637A`,brightGreen:`#286983`,brightYellow:`#EA9D34`,brightBlue:`#56949F`,brightMagenta:`#907AA9`,brightCyan:`#D7827E`,brightWhite:`#575279`},vars:{accent:`#D6827E`,"accent-darken-1":`#C16E6B`,"accent-darken-2":`#AB5B58`,"accent-darken-3":`#964847`,"accent-lighten-1":`#ED9591`,"accent-lighten-2":`#FFAAA5`,"accent-lighten-3":`#FFBEB9`,"accent-muted":`#EFD1CB`,background:`#FAF4ED`,"background-darken-1":`#E4DED7`,"background-darken-2":`#CFC9C2`,"background-darken-3":`#BAB5AE`,"background-lighten-1":`#FFFFFF`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#575279`,"block-cursor-blurred-background":`#907AA94C`,"block-cursor-blurred-foreground":`#575279`,"block-cursor-foreground":`#FAF4ED`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#CECACD`,"border-blurred":`#9893A5`,"button-color-foreground":`#000000DD`,"button-foreground":`#575279`,error:`#B4637A`,"error-darken-1":`#9E5067`,"error-darken-2":`#8A3D55`,"error-darken-3":`#752A43`,"error-lighten-1":`#C9768D`,"error-lighten-2":`#DF8AA0`,"error-lighten-3":`#F59EB5`,"error-muted":`#E5C8CA`,"footer-background":`#F2E9E1`,"footer-description-background":`#00000000`,"footer-description-foreground":`#575279`,"footer-foreground":`#575279`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#D7827E`,foreground:`#575279`,"foreground-darken-1":`#444066`,"foreground-darken-2":`#332F53`,"foreground-darken-3":`#222042`,"foreground-disabled":`#57527960`,"foreground-lighten-1":`#69648C`,"foreground-lighten-2":`#7C76A0`,"foreground-lighten-3":`#9089B4`,"foreground-muted":`#57527999`,"input-cursor-background":`#575279`,"input-cursor-foreground":`#FAF4ED`,"input-selection-background":`#DFDAD9`,"link-background":`#00000000`,"link-background-hover":`#907AA9`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#907AA9`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#907AA9`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#907AA9`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#575279`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#575279`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#57527999`,panel:`#F2E9E1`,"panel-darken-1":`#DCD3CB`,"panel-darken-2":`#C7BFB7`,"panel-darken-3":`#B3AAA3`,"panel-lighten-1":`#FFFEF6`,"panel-lighten-2":`#FFFFFF`,"panel-lighten-3":`#FFFFFF`,primary:`#907AA9`,"primary-background":`#907AA9`,"primary-background-darken-1":`#7C6795`,"primary-background-darken-2":`#695481`,"primary-background-darken-3":`#56436E`,"primary-background-lighten-1":`#A48DBD`,"primary-background-lighten-2":`#B8A1D2`,"primary-background-lighten-3":`#CDB5E7`,"primary-darken-1":`#7C6795`,"primary-darken-2":`#695481`,"primary-darken-3":`#56436E`,"primary-lighten-1":`#A48DBD`,"primary-lighten-2":`#B8A1D2`,"primary-lighten-3":`#CDB5E7`,"primary-muted":`#DACFD8`,scrollbar:`#C2B6C4`,"scrollbar-active":`#907AA9`,"scrollbar-background":`#E4DED7`,"scrollbar-background-active":`#E4DED7`,"scrollbar-background-hover":`#E4DED7`,"scrollbar-corner-color":`#E4DED7`,"scrollbar-hover":`#BAACC0`,secondary:`#286983`,"secondary-background":`#286983`,"secondary-background-darken-1":`#0A566F`,"secondary-background-darken-2":`#00455D`,"secondary-background-darken-3":`#00344B`,"secondary-background-lighten-1":`#3E7B96`,"secondary-background-lighten-2":`#538FAA`,"secondary-background-lighten-3":`#67A2BE`,"secondary-darken-1":`#0A566F`,"secondary-darken-2":`#00455D`,"secondary-darken-3":`#00344B`,"secondary-lighten-1":`#3E7B96`,"secondary-lighten-2":`#538FAA`,"secondary-lighten-3":`#67A2BE`,"secondary-muted":`#BBCACD`,success:`#56949F`,"success-darken-1":`#41808B`,"success-darken-2":`#2D6D78`,"success-darken-3":`#155B65`,"success-lighten-1":`#6AA7B3`,"success-lighten-2":`#7EBCC7`,"success-lighten-3":`#92D1DC`,"success-muted":`#C8D7D5`,surface:`#FFFAF3`,"surface-active":`#FFFFFF`,"surface-darken-1":`#E9E4DD`,"surface-darken-2":`#D4CFC8`,"surface-darken-3":`#BFBAB4`,"surface-lighten-1":`#FFFFFF`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#8D5553`,"text-disabled":`#00000060`,"text-error":`#764150`,"text-muted":`#00000099`,"text-primary":`#5F506F`,"text-secondary":`#1A4556`,"text-success":`#386168`,"text-warning":`#9A6722`,warning:`#E99D34`,"warning-darken-1":`#D2891D`,"warning-darken-2":`#BC7600`,"warning-darken-3":`#A56300`,"warning-lighten-1":`#FFB148`,"warning-lighten-2":`#FFC55C`,"warning-lighten-3":`#FFDA70`,"warning-muted":`#F5D9B5`}},"rose-pine-moon":{name:`rose-pine-moon`,dark:!0,ansi:{black:`#393552`,red:`#EB6F92`,green:`#3E8FB0`,yellow:`#F6C177`,blue:`#9CCFD8`,magenta:`#C4A7E7`,cyan:`#EA9A97`,white:`#E0DEF4`,brightBlack:`#6E6A86`,brightRed:`#EB6F92`,brightGreen:`#3E8FB0`,brightYellow:`#F6C177`,brightBlue:`#9CCFD8`,brightMagenta:`#C4A7E7`,brightCyan:`#EA9A97`,brightWhite:`#E0DEF4`},vars:{accent:`#EA9A97`,"accent-darken-1":`#D48683`,"accent-darken-2":`#BE7270`,"accent-darken-3":`#A95F5E`,"accent-lighten-1":`#FFAEAA`,"accent-lighten-2":`#FFC3BF`,"accent-lighten-3":`#FFD8D4`,"accent-muted":`#5E4553`,background:`#232136`,"background-darken-1":`#131125`,"background-darken-2":`#000017`,"background-darken-3":`#000001`,"background-lighten-1":`#333046`,"background-lighten-2":`#444158`,"background-lighten-3":`#56526A`,"block-cursor-background":`#C4A7E7`,"block-cursor-blurred-background":`#C4A7E74C`,"block-cursor-blurred-foreground":`#E0DEF4`,"block-cursor-foreground":`#232136`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#56526E`,"border-blurred":`#6E6A86`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#E0DEF4`,error:`#EA6F92`,"error-darken-1":`#D45A7E`,"error-darken-2":`#BE466B`,"error-darken-3":`#A83159`,"error-lighten-1":`#FF83A5`,"error-lighten-2":`#FF98BA`,"error-lighten-3":`#FFADCE`,"error-muted":`#5F3851`,"footer-background":`#393552`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0DEF4`,"footer-foreground":`#E0DEF4`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#EA9A97`,foreground:`#E0DEF4`,"foreground-darken-1":`#CAC9DE`,"foreground-darken-2":`#B6B4C9`,"foreground-darken-3":`#A2A0B4`,"foreground-disabled":`#E0DEF460`,"foreground-lighten-1":`#F5F3FF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E0DEF499`,"input-cursor-background":`#F4EDE8`,"input-cursor-foreground":`#232136`,"input-selection-background":`#44415A`,"link-background":`#00000000`,"link-background-hover":`#C4A7E7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#C4A7E7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#C4A7E7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#C4A7E7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0DEF4`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0DEF4`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E0DEF499`,panel:`#393552`,"panel-darken-1":`#282440`,"panel-darken-2":`#17152F`,"panel-darken-3":`#080020`,"panel-lighten-1":`#4A4564`,"panel-lighten-2":`#5C5776`,"panel-lighten-3":`#6F6989`,primary:`#C4A7E7`,"primary-background":`#58536A`,"primary-background-darken-1":`#49445D`,"primary-background-darken-2":`#3B3550`,"primary-background-darken-3":`#3B3550`,"primary-background-lighten-1":`#676277`,"primary-background-lighten-2":`#757184`,"primary-background-lighten-3":`#848091`,"primary-darken-1":`#AF93D1`,"primary-darken-2":`#9A7FBC`,"primary-darken-3":`#866CA8`,"primary-lighten-1":`#D9BBFC`,"primary-lighten-2":`#EED0FF`,"primary-lighten-3":`#FFE5FF`,"primary-muted":`#53496B`,scrollbar:`#594D72`,"scrollbar-active":`#C4A7E7`,"scrollbar-background":`#131125`,"scrollbar-background-active":`#131125`,"scrollbar-background-hover":`#131125`,"scrollbar-corner-color":`#131125`,"scrollbar-hover":`#6B5C86`,secondary:`#3E8FB0`,"secondary-background":`#474F63`,"secondary-background-darken-1":`#374055`,"secondary-background-darken-2":`#273148`,"secondary-background-darken-3":`#273148`,"secondary-background-lighten-1":`#575F71`,"secondary-background-lighten-2":`#676E7E`,"secondary-background-lighten-3":`#787E8C`,"secondary-darken-1":`#237B9B`,"secondary-darken-2":`#006888`,"secondary-darken-3":`#005674`,"secondary-lighten-1":`#54A2C4`,"secondary-lighten-2":`#6AB7D9`,"secondary-lighten-3":`#80CBEE`,"secondary-muted":`#2B425A`,success:`#9CCFD8`,"success-darken-1":`#87BAC3`,"success-darken-2":`#73A5AE`,"success-darken-3":`#60929A`,"success-lighten-1":`#B0E4ED`,"success-lighten-2":`#C5F9FF`,"success-lighten-3":`#DAFFFF`,"success-muted":`#475566`,surface:`#2A273F`,"surface-active":`#37334C`,"surface-darken-1":`#19172E`,"surface-darken-2":`#0A021E`,"surface-darken-3":`#00000F`,"surface-lighten-1":`#3A3750`,"surface-lighten-2":`#4C4862`,"surface-lighten-3":`#5E5975`,text:`#FFFFFFDD`,"text-accent":`#F1BCBA`,"text-disabled":`#FFFFFF60`,"text-error":`#F19FB7`,"text-muted":`#FFFFFF99`,"text-primary":`#D8C4EF`,"text-secondary":`#7FB5CA`,"text-success":`#BDDFE5`,"text-warning":`#F9D6A5`,warning:`#F5C177`,"warning-darken-1":`#DFAC63`,"warning-darken-2":`#C99850`,"warning-darken-3":`#B3853E`,"warning-lighten-1":`#FFD58A`,"warning-lighten-2":`#FFEB9E`,"warning-lighten-3":`#FFFFB3`,"warning-muted":`#625149`}},"solarized-dark":{name:`solarized-dark`,dark:!0,ansi:{black:`#073642`,red:`#DC322F`,green:`#859900`,yellow:`#B58900`,blue:`#268BD2`,magenta:`#D33682`,cyan:`#2AA198`,white:`#EEE8D5`,brightBlack:`#335E69`,brightRed:`#CB4B16`,brightGreen:`#586E75`,brightYellow:`#657B83`,brightBlue:`#839496`,brightMagenta:`#6C71C4`,brightCyan:`#93A1A1`,brightWhite:`#FDF6E3`},vars:{accent:`#6C71C4`,"accent-darken-1":`#575EAF`,"accent-darken-2":`#424C9A`,"accent-darken-3":`#2D3B87`,"accent-lighten-1":`#8083D9`,"accent-lighten-2":`#9597EE`,"accent-lighten-3":`#AAABFF`,"accent-muted":`#204060`,background:`#002B36`,"background-darken-1":`#001B25`,"background-darken-2":`#000A17`,"background-darken-3":`#000000`,"background-lighten-1":`#143B46`,"background-lighten-2":`#274C58`,"background-lighten-3":`#3A5E6A`,"block-cursor-background":`#268BD2`,"block-cursor-blurred-background":`#268BD24C`,"block-cursor-blurred-foreground":`#839496`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#268BD2`,"border-blurred":`#00303C`,"button-color-foreground":`#FDF6E3`,"button-foreground":`#839496`,error:`#DB322F`,"error-darken-1":`#C3121E`,"error-darken-2":`#AB000D`,"error-darken-3":`#940000`,"error-lighten-1":`#F44940`,"error-lighten-2":`#FF6052`,"error-lighten-3":`#FF7564`,"error-muted":`#422D33`,"footer-background":`#268BD2`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FDF6E3`,"footer-foreground":`#839496`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FDF6E3`,foreground:`#839496`,"foreground-darken-1":`#6F8082`,"foreground-darken-2":`#5D6D6F`,"foreground-darken-3":`#4B5B5D`,"foreground-disabled":`#83949660`,"foreground-lighten-1":`#96A7A9`,"foreground-lighten-2":`#AABCBE`,"foreground-lighten-3":`#BED0D3`,"foreground-muted":`#83949699`,"input-cursor-background":`#839496`,"input-cursor-foreground":`#002B36`,"input-selection-background":`#073642`,"link-background":`#00000000`,"link-background-hover":`#268BD2`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#268BD2`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#268BD2`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#268BD2`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#839496`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#839496`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#83949699`,panel:`#073642`,"panel-darken-1":`#002531`,"panel-darken-2":`#001721`,"panel-darken-3":`#000112`,"panel-lighten-1":`#1D4653`,"panel-lighten-2":`#305865`,"panel-lighten-3":`#436A78`,primary:`#268BD2`,"primary-background":`#2A5667`,"primary-background-darken-1":`#17475A`,"primary-background-darken-2":`#05394D`,"primary-background-darken-3":`#05394D`,"primary-background-lighten-1":`#3D6575`,"primary-background-lighten-2":`#507482`,"primary-background-lighten-3":`#62838F`,"primary-darken-1":`#0077BD`,"primary-darken-2":`#0065A8`,"primary-darken-3":`#005394`,"primary-lighten-1":`#459EE7`,"primary-lighten-2":`#5FB2FD`,"primary-lighten-3":`#77C7FF`,"primary-muted":`#0B4764`,scrollbar:`#0F476A`,"scrollbar-active":`#268BD2`,"scrollbar-background":`#001B25`,"scrollbar-background-active":`#001B25`,"scrollbar-background-hover":`#001B25`,"scrollbar-corner-color":`#001B25`,"scrollbar-hover":`#13537B`,secondary:`#2AA198`,"secondary-background":`#2B5960`,"secondary-background-darken-1":`#184A52`,"secondary-background-darken-2":`#063C44`,"secondary-background-darken-3":`#063C44`,"secondary-background-lighten-1":`#3E676E`,"secondary-background-lighten-2":`#50767C`,"secondary-background-lighten-3":`#63858A`,"secondary-darken-1":`#008C84`,"secondary-darken-2":`#007971`,"secondary-darken-3":`#00665F`,"secondary-lighten-1":`#44B5AB`,"secondary-lighten-2":`#5BCAC0`,"secondary-lighten-3":`#72DFD5`,"secondary-muted":`#0C4E53`,success:`#849900`,"success-darken-1":`#708500`,"success-darken-2":`#5B7200`,"success-darken-3":`#485F00`,"success-lighten-1":`#99AC22`,"success-lighten-2":`#AFC139`,"success-lighten-3":`#C4D64E`,"success-muted":`#274C25`,surface:`#073642`,"surface-active":`#19434F`,"surface-darken-1":`#002531`,"surface-darken-2":`#001721`,"surface-darken-3":`#000112`,"surface-lighten-1":`#1D4653`,"surface-lighten-2":`#305865`,"surface-lighten-3":`#436A78`,text:`#FFFFFFDD`,"text-accent":`#9DA1D8`,"text-disabled":`#FFFFFF60`,"text-error":`#E77775`,"text-muted":`#FFFFFF99`,"text-primary":`#6FB2E1`,"text-secondary":`#72C0BB`,"text-success":`#AEBB56`,"text-warning":`#DC8865`,warning:`#CA4B16`,"warning-darken-1":`#B33600`,"warning-darken-2":`#9C2000`,"warning-darken-3":`#850100`,"warning-lighten-1":`#E25F29`,"warning-lighten-2":`#FA733C`,"warning-lighten-3":`#FF874E`,"warning-muted":`#3C342C`}},"solarized-light":{name:`solarized-light`,dark:!1,ansi:{black:`#073642`,red:`#DC322F`,green:`#859900`,yellow:`#B58900`,blue:`#268BD2`,magenta:`#D33682`,cyan:`#2AA198`,white:`#BBB5A2`,brightBlack:`#002B36`,brightRed:`#CB4B16`,brightGreen:`#586E75`,brightYellow:`#657B83`,brightBlue:`#839496`,brightMagenta:`#6C71C4`,brightCyan:`#93A1A1`,brightWhite:`#FDF6E3`},vars:{accent:`#6C71C4`,"accent-darken-1":`#575EAF`,"accent-darken-2":`#424C9A`,"accent-darken-3":`#2D3B87`,"accent-lighten-1":`#8083D9`,"accent-lighten-2":`#9597EE`,"accent-lighten-3":`#AAABFF`,"accent-muted":`#D1CED9`,background:`#FDF6E3`,"background-darken-1":`#E7E0CD`,"background-darken-2":`#D2CBB9`,"background-darken-3":`#BDB6A4`,"background-lighten-1":`#FFFFF8`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#268BD2`,"block-cursor-blurred-background":`#268BD24C`,"block-cursor-blurred-foreground":`#586E75`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#268BD2`,"border-blurred":`#E6E0CE`,"button-color-foreground":`#FDF6E3`,"button-foreground":`#586E75`,error:`#DB322F`,"error-darken-1":`#C3121E`,"error-darken-2":`#AB000D`,"error-darken-3":`#940000`,"error-lighten-1":`#F44940`,"error-lighten-2":`#FF6052`,"error-lighten-3":`#FF7564`,"error-muted":`#F3BBAD`,"footer-background":`#268BD2`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FDF6E3`,"footer-foreground":`#586E75`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FDF6E3`,foreground:`#586E75`,"foreground-darken-1":`#465B62`,"foreground-darken-2":`#344950`,"foreground-darken-3":`#23383F`,"foreground-disabled":`#586E7560`,"foreground-lighten-1":`#6A8088`,"foreground-lighten-2":`#7D949B`,"foreground-lighten-3":`#91A8AF`,"foreground-muted":`#586E7599`,"input-cursor-background":`#586E75`,"input-cursor-foreground":`#FDF6E3`,"input-selection-background":`#459EE766`,"link-background":`#00000000`,"link-background-hover":`#268BD2`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#268BD2`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#268BD2`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#268BD2`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#586E75`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#586E75`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#586E7599`,panel:`#EEE8D5`,"panel-darken-1":`#D8D2C0`,"panel-darken-2":`#C3BEAB`,"panel-darken-3":`#AFA997`,"panel-lighten-1":`#FFFDEA`,"panel-lighten-2":`#FFFFFF`,"panel-lighten-3":`#FFFFFF`,primary:`#268BD2`,"primary-background":`#268BD2`,"primary-background-darken-1":`#0077BD`,"primary-background-darken-2":`#0065A8`,"primary-background-darken-3":`#005394`,"primary-background-lighten-1":`#459EE7`,"primary-background-lighten-2":`#5FB2FD`,"primary-background-lighten-3":`#77C7FF`,"primary-darken-1":`#0077BD`,"primary-darken-2":`#0065A8`,"primary-darken-3":`#005394`,"primary-lighten-1":`#459EE7`,"primary-lighten-2":`#5FB2FD`,"primary-lighten-3":`#77C7FF`,"primary-muted":`#BCD5DD`,scrollbar:`#99BECF`,"scrollbar-active":`#268BD2`,"scrollbar-background":`#E7E0CD`,"scrollbar-background-active":`#E7E0CD`,"scrollbar-background-hover":`#E7E0CD`,"scrollbar-corner-color":`#E7E0CD`,"scrollbar-hover":`#86B5CF`,secondary:`#2AA198`,"secondary-background":`#2AA198`,"secondary-background-darken-1":`#008C84`,"secondary-background-darken-2":`#007971`,"secondary-background-darken-3":`#00665F`,"secondary-background-lighten-1":`#44B5AB`,"secondary-background-lighten-2":`#5BCAC0`,"secondary-background-lighten-3":`#72DFD5`,"secondary-darken-1":`#008C84`,"secondary-darken-2":`#007971`,"secondary-darken-3":`#00665F`,"secondary-lighten-1":`#44B5AB`,"secondary-lighten-2":`#5BCAC0`,"secondary-lighten-3":`#72DFD5`,"secondary-muted":`#BDDCCC`,success:`#849900`,"success-darken-1":`#708500`,"success-darken-2":`#5B7200`,"success-darken-3":`#485F00`,"success-lighten-1":`#99AC22`,"success-lighten-2":`#AFC139`,"success-lighten-3":`#C4D64E`,"success-muted":`#D9DA9E`,surface:`#EEE8D5`,"surface-active":`#FFF9E5`,"surface-darken-1":`#D8D2C0`,"surface-darken-2":`#C3BEAB`,"surface-darken-3":`#AFA997`,"surface-lighten-1":`#FFFDEA`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#474A81`,"text-disabled":`#00000060`,"text-error":`#91211F`,"text-muted":`#00000099`,"text-primary":`#195B8A`,"text-secondary":`#1B6A64`,"text-success":`#576400`,"text-warning":`#85310E`,warning:`#CA4B16`,"warning-darken-1":`#B33600`,"warning-darken-2":`#9C2000`,"warning-darken-3":`#850100`,"warning-lighten-1":`#E25F29`,"warning-lighten-2":`#FA733C`,"warning-lighten-3":`#FF874E`,"warning-muted":`#EEC2A5`}},"svg-export":{name:`svg-export`,dark:!0,ansi:{black:`#4B4E55`,red:`#CC555A`,green:`#98A84B`,yellow:`#D0B344`,blue:`#608AB1`,magenta:`#98729F`,cyan:`#68A0B3`,white:`#C5C8C6`,brightBlack:`#9A9B99`,brightRed:`#FF2627`,brightGreen:`#00823D`,brightYellow:`#D08442`,brightBlue:`#1984E9`,brightMagenta:`#FF2C7A`,brightCyan:`#398280`,brightWhite:`#FDFDC5`},vars:{accent:`#56B6C2`,"accent-darken-1":`#3EA1AD`,"accent-darken-2":`#238D99`,"accent-darken-3":`#007A85`,"accent-lighten-1":`#6CCAD6`,"accent-lighten-2":`#81DFEC`,"accent-lighten-3":`#97F5FF`,"accent-muted":`#365356`,background:`#292929`,"background-darken-1":`#191919`,"background-darken-2":`#050505`,"background-darken-3":`#000000`,"background-lighten-1":`#393939`,"background-lighten-2":`#4A4A4A`,"background-lighten-3":`#5C5C5C`,"block-cursor-background":`#61AFEF`,"block-cursor-blurred-background":`#61AFEF4C`,"block-cursor-blurred-foreground":`#C5C8C6`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#61AFEF`,"border-blurred":`#191919`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#C5C8C6`,error:`#CB555A`,"error-darken-1":`#B54048`,"error-darken-2":`#9F2C37`,"error-darken-3":`#891427`,"error-lighten-1":`#E2686C`,"error-lighten-2":`#F97D7F`,"error-lighten-3":`#FF9192`,"error-muted":`#593637`,"footer-background":`#2C343A`,"footer-description-background":`#00000000`,"footer-description-foreground":`#C5C8C6`,"footer-foreground":`#C5C8C6`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#56B6C2`,foreground:`#C5C8C6`,"foreground-darken-1":`#B0B3B1`,"foreground-darken-2":`#9C9F9D`,"foreground-darken-3":`#888B89`,"foreground-disabled":`#C5C8C660`,"foreground-lighten-1":`#D9DCDA`,"foreground-lighten-2":`#EFF2F0`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#C5C8C699`,"input-cursor-background":`#C5C8C6`,"input-cursor-foreground":`#292929`,"input-selection-background":`#77C3FF66`,"link-background":`#00000000`,"link-background-hover":`#61AFEF`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#61AFEF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#61AFEF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#61AFEF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#C5C8C6`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#C5C8C6`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#C5C8C699`,panel:`#2C343A`,"panel-darken-1":`#1C2429`,"panel-darken-2":`#0C141A`,"panel-darken-3":`#000007`,"panel-lighten-1":`#3C444B`,"panel-lighten-2":`#4D565C`,"panel-lighten-3":`#5F686F`,primary:`#61AFEF`,"primary-background":`#4F5A61`,"primary-background-darken-1":`#404B53`,"primary-background-darken-2":`#313D46`,"primary-background-darken-3":`#313D46`,"primary-background-lighten-1":`#5F686F`,"primary-background-lighten-2":`#6E777D`,"primary-background-lighten-3":`#7E858B`,"primary-darken-1":`#489BD9`,"primary-darken-2":`#2C87C4`,"primary-darken-3":`#0074AF`,"primary-lighten-1":`#77C3FF`,"primary-lighten-2":`#8ED8FF`,"primary-lighten-3":`#A4EDFF`,"primary-muted":`#395164`,scrollbar:`#35556E`,"scrollbar-active":`#61AFEF`,"scrollbar-background":`#191919`,"scrollbar-background-active":`#191919`,"scrollbar-background-hover":`#191919`,"scrollbar-corner-color":`#191919`,"scrollbar-hover":`#3D6484`,secondary:`#C678DD`,"secondary-background":`#5C5260`,"secondary-background-darken-1":`#4E4352`,"secondary-background-darken-2":`#403444`,"secondary-background-darken-3":`#403444`,"secondary-background-lighten-1":`#6A616E`,"secondary-background-lighten-2":`#79707C`,"secondary-background-lighten-3":`#87808A`,"secondary-darken-1":`#B064C7`,"secondary-darken-2":`#9B50B3`,"secondary-darken-3":`#873D9E`,"secondary-lighten-1":`#DB8CF2`,"secondary-lighten-2":`#F1A0FF`,"secondary-lighten-3":`#FFB5FF`,"secondary-muted":`#58405F`,success:`#98C379`,"success-darken-1":`#83AE65`,"success-darken-2":`#709A53`,"success-darken-3":`#5C8641`,"success-lighten-1":`#ACD78C`,"success-lighten-2":`#C1EDA0`,"success-lighten-3":`#D6FFB4`,"success-muted":`#4A5741`,surface:`#1E1E1E`,"surface-active":`#2A2A2A`,"surface-darken-1":`#0D0D0D`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2D2D2D`,"surface-lighten-2":`#3E3E3E`,"surface-lighten-3":`#4F4F4F`,text:`#FFFFFFDD`,"text-accent":`#8FCED6`,"text-disabled":`#FFFFFF60`,"text-error":`#DD8E92`,"text-muted":`#FFFFFF99`,"text-primary":`#96CAF4`,"text-secondary":`#D9A5E8`,"text-success":`#BBD7A6`,"text-warning":`#EDD5A7`,warning:`#E4C07B`,"warning-darken-1":`#CFAB67`,"warning-darken-2":`#B99754`,"warning-darken-3":`#A48442`,"warning-lighten-1":`#FBD48E`,"warning-lighten-2":`#FFE9A2`,"warning-lighten-3":`#FFFFB7`,"warning-muted":`#615641`}},"textual-ansi":{name:`textual-ansi`,dark:!0,ansi:Cc,vars:{accent:`#0000FF`,"accent-darken-1":`#0000FF`,"accent-darken-2":`#0000FF`,"accent-darken-3":`#0000FF`,"accent-lighten-1":`#0000FF`,"accent-lighten-2":`#0000FF`,"accent-lighten-3":`#0000FF`,"accent-muted":`#0178D4`,background:`#121212`,"background-darken-1":`#121212`,"background-darken-2":`#121212`,"background-darken-3":`#121212`,"background-lighten-1":`#121212`,"background-lighten-2":`#121212`,"background-lighten-3":`#121212`,"block-cursor-background":`#000080`,"block-cursor-blurred-background":`#0000804C`,"block-cursor-blurred-foreground":`#E0E0E0`,"block-cursor-foreground":`#E0E0E0`,"block-hover-background":`#00000019`,boost:`#0178D4`,"boost-darken-1":`#0178D4`,"boost-darken-2":`#0178D4`,"boost-darken-3":`#0178D4`,"boost-lighten-1":`#0178D4`,"boost-lighten-2":`#0178D4`,"boost-lighten-3":`#0178D4`,border:`#0000FF`,"border-blurred":`#000080`,"button-color-foreground":`#E0E0E0`,"button-foreground":`#E0E0E0`,error:`#800000`,"error-darken-1":`#800000`,"error-darken-2":`#800000`,"error-darken-3":`#800000`,"error-lighten-1":`#800000`,"error-lighten-2":`#800000`,"error-lighten-3":`#800000`,"error-muted":`#0178D4`,"footer-background":`#121212`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0E0E0`,"footer-foreground":`#E0E0E0`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#0000FF`,foreground:`#E0E0E0`,"foreground-darken-1":`#E0E0E0`,"foreground-darken-2":`#E0E0E0`,"foreground-darken-3":`#E0E0E0`,"foreground-disabled":`#00000060`,"foreground-lighten-1":`#E0E0E0`,"foreground-lighten-2":`#E0E0E0`,"foreground-lighten-3":`#E0E0E0`,"foreground-muted":`#00000099`,"input-cursor-background":`#121212`,"input-cursor-foreground":`#E0E0E0`,"input-selection-background":`#000080`,"link-background":`#00000000`,"link-background-hover":`#000080`,"link-color":`#E0E0E0`,"link-color-hover":`#0178D4`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#000080`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#000080`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#000080`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0E0E0`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0E0E0`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#00000099`,panel:`#121212`,"panel-darken-1":`#121212`,"panel-darken-2":`#121212`,"panel-darken-3":`#121212`,"panel-lighten-1":`#121212`,"panel-lighten-2":`#121212`,"panel-lighten-3":`#121212`,primary:`#000080`,"primary-background":`#000080`,"primary-background-darken-1":`#000080`,"primary-background-darken-2":`#000080`,"primary-background-darken-3":`#000080`,"primary-background-lighten-1":`#000080`,"primary-background-lighten-2":`#000080`,"primary-background-lighten-3":`#000080`,"primary-darken-1":`#000080`,"primary-darken-2":`#000080`,"primary-darken-3":`#000080`,"primary-lighten-1":`#000080`,"primary-lighten-2":`#000080`,"primary-lighten-3":`#000080`,"primary-muted":`#0178D4`,scrollbar:`#000080`,"scrollbar-active":`#000080`,"scrollbar-background":`#121212`,"scrollbar-background-active":`#121212`,"scrollbar-background-hover":`#121212`,"scrollbar-corner-color":`#E0E0E0`,"scrollbar-hover":`#000040`,secondary:`#008080`,"secondary-background":`#008080`,"secondary-background-darken-1":`#008080`,"secondary-background-darken-2":`#008080`,"secondary-background-darken-3":`#008080`,"secondary-background-lighten-1":`#008080`,"secondary-background-lighten-2":`#008080`,"secondary-background-lighten-3":`#008080`,"secondary-darken-1":`#008080`,"secondary-darken-2":`#008080`,"secondary-darken-3":`#008080`,"secondary-lighten-1":`#008080`,"secondary-lighten-2":`#008080`,"secondary-lighten-3":`#008080`,"secondary-muted":`#0178D4`,success:`#008000`,"success-darken-1":`#008000`,"success-darken-2":`#008000`,"success-darken-3":`#008000`,"success-lighten-1":`#008000`,"success-lighten-2":`#008000`,"success-lighten-3":`#008000`,"success-muted":`#0178D4`,surface:`#121212`,"surface-active":`#131313`,"surface-darken-1":`#121212`,"surface-darken-2":`#121212`,"surface-darken-3":`#121212`,"surface-lighten-1":`#121212`,"surface-lighten-2":`#121212`,"surface-lighten-3":`#121212`,text:`#E0E0E0`,"text-accent":`#5656FF`,"text-disabled":`#E0E0E0`,"text-error":`#AB5656`,"text-muted":`#E0E0E0`,"text-primary":`#5656AB`,"text-secondary":`#56ABAB`,"text-success":`#56AB56`,"text-warning":`#ABAB56`,warning:`#808000`,"warning-darken-1":`#808000`,"warning-darken-2":`#808000`,"warning-darken-3":`#808000`,"warning-lighten-1":`#808000`,"warning-lighten-2":`#808000`,"warning-lighten-3":`#808000`,"warning-muted":`#0178D4`}},"textual-dark":{name:`textual-dark`,dark:!0,ansi:wc,vars:{accent:`#FEA62B`,"accent-darken-1":`#E7920D`,"accent-darken-2":`#CF7E00`,"accent-darken-3":`#B86B00`,"accent-lighten-1":`#FFBA41`,"accent-lighten-2":`#FFCF56`,"accent-lighten-3":`#FFE46B`,"accent-muted":`#593E19`,background:`#121212`,"background-darken-1":`#000000`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#212121`,"background-lighten-2":`#313131`,"background-lighten-3":`#414141`,"block-cursor-background":`#0178D4`,"block-cursor-blurred-background":`#0178D44C`,"block-cursor-blurred-foreground":`#E0E0E0`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#0178D4`,"border-blurred":`#191919`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#E0E0E0`,error:`#B93C5B`,"error-darken-1":`#A32549`,"error-darken-2":`#8D0638`,"error-darken-3":`#780028`,"error-lighten-1":`#D0506D`,"error-lighten-2":`#E76580`,"error-lighten-3":`#FE7993`,"error-muted":`#441E27`,"footer-background":`#242F38`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0E0E0`,"footer-foreground":`#E0E0E0`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FFA62B`,foreground:`#E0E0E0`,"foreground-darken-1":`#CACACA`,"foreground-darken-2":`#B6B6B6`,"foreground-darken-3":`#A2A2A2`,"foreground-disabled":`#E0E0E060`,"foreground-lighten-1":`#F5F5F5`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E0E0E099`,"input-cursor-background":`#E0E0E0`,"input-cursor-foreground":`#121212`,"input-selection-background":`#368AE966`,"link-background":`#00000000`,"link-background-hover":`#0178D4`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#0178D4`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#0178D4`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#0178D4`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0E0E0`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0E0E0`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E0E0E099`,panel:`#242F38`,"panel-darken-1":`#141F27`,"panel-darken-2":`#000F18`,"panel-darken-3":`#000003`,"panel-lighten-1":`#343F49`,"panel-lighten-2":`#45505A`,"panel-lighten-3":`#57626D`,primary:`#0178D4`,"primary-background":`#33424E`,"primary-background-darken-1":`#21313E`,"primary-background-darken-2":`#0F212F`,"primary-background-darken-3":`#0F212F`,"primary-background-lighten-1":`#45525D`,"primary-background-lighten-2":`#57636D`,"primary-background-lighten-3":`#69747D`,"primary-darken-1":`#0065BE`,"primary-darken-2":`#0053AA`,"primary-darken-3":`#004295`,"primary-lighten-1":`#368AE9`,"primary-lighten-2":`#539EFF`,"primary-lighten-3":`#6DB2FF`,"primary-muted":`#0C304C`,scrollbar:`#003054`,"scrollbar-active":`#0178D4`,"scrollbar-background":`#000000`,"scrollbar-background-active":`#000000`,"scrollbar-background-hover":`#000000`,"scrollbar-corner-color":`#000000`,"scrollbar-hover":`#003C6A`,secondary:`#004578`,"secondary-background":`#333B42`,"secondary-background-darken-1":`#212A31`,"secondary-background-darken-2":`#0F1921`,"secondary-background-darken-3":`#0F1921`,"secondary-background-lighten-1":`#454C52`,"secondary-background-lighten-2":`#575E63`,"secondary-background-lighten-3":`#696F74`,"secondary-darken-1":`#003465`,"secondary-darken-2":`#002452`,"secondary-darken-3":`#001541`,"secondary-lighten-1":`#23568B`,"secondary-lighten-2":`#3B689F`,"secondary-lighten-3":`#507BB3`,"secondary-muted":`#0C2130`,success:`#4EBF71`,"success-darken-1":`#36AA5E`,"success-darken-2":`#18954B`,"success-darken-3":`#008139`,"success-lighten-1":`#64D484`,"success-lighten-2":`#7AE998`,"success-lighten-3":`#8FFFAC`,"success-muted":`#24452E`,surface:`#1E1E1E`,"surface-active":`#2A2A2A`,"surface-darken-1":`#0D0D0D`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2D2D2D`,"surface-lighten-2":`#3E3E3E`,"surface-lighten-3":`#4F4F4F`,text:`#FFFFFFDD`,"text-accent":`#FFC473`,"text-disabled":`#FFFFFF60`,"text-error":`#D17E92`,"text-muted":`#FFFFFF99`,"text-primary":`#57A5E2`,"text-secondary":`#5684A5`,"text-success":`#8AD4A1`,"text-warning":`#FFC473`,warning:`#FEA62B`,"warning-darken-1":`#E7920D`,"warning-darken-2":`#CF7E00`,"warning-darken-3":`#B86B00`,"warning-lighten-1":`#FFBA41`,"warning-lighten-2":`#FFCF56`,"warning-lighten-3":`#FFE46B`,"warning-muted":`#593E19`}},"textual-light":{name:`textual-light`,dark:!1,ansi:{black:`#000000`,red:`#AA3731`,green:`#448C27`,yellow:`#CB9000`,blue:`#325CC0`,magenta:`#7A3E9D`,cyan:`#0083B2`,white:`#F7F7F7`,brightBlack:`#777777`,brightRed:`#F05050`,brightGreen:`#60CB00`,brightYellow:`#FFBC5D`,brightBlue:`#007ACC`,brightMagenta:`#E64CE6`,brightCyan:`#00AACB`,brightWhite:`#F7F7F7`},vars:{accent:`#FEA62B`,"accent-darken-1":`#E7920D`,"accent-darken-2":`#CF7E00`,"accent-darken-3":`#B86B00`,"accent-lighten-1":`#FFBA41`,"accent-lighten-2":`#FFCF56`,"accent-lighten-3":`#FFE46B`,"accent-muted":`#E9CEA9`,background:`#E0E0E0`,"background-darken-1":`#CACACA`,"background-darken-2":`#B6B6B6`,"background-darken-3":`#A2A2A2`,"background-lighten-1":`#F5F5F5`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#004578`,"block-cursor-blurred-background":`#0045784C`,"block-cursor-blurred-foreground":`#1F1F1F`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#004578`,"border-blurred":`#D0D1D0`,"button-color-foreground":`#000000DD`,"button-foreground":`#1F1F1F`,error:`#B93C5B`,"error-darken-1":`#A32549`,"error-darken-2":`#8D0638`,"error-darken-3":`#780028`,"error-lighten-1":`#D0506D`,"error-lighten-2":`#E76580`,"error-lighten-3":`#FE7993`,"error-muted":`#D4AEB8`,"footer-background":`#D0D0D0`,"footer-description-background":`#00000000`,"footer-description-foreground":`#1F1F1F`,"footer-foreground":`#1F1F1F`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#0178D4`,foreground:`#1F1F1F`,"foreground-darken-1":`#0E0E0E`,"foreground-darken-2":`#000000`,"foreground-darken-3":`#000000`,"foreground-disabled":`#1F1F1F60`,"foreground-lighten-1":`#2E2E2E`,"foreground-lighten-2":`#3F3F3F`,"foreground-lighten-3":`#505050`,"foreground-muted":`#1F1F1F99`,"input-cursor-background":`#1F1F1F`,"input-cursor-foreground":`#E0E0E0`,"input-selection-background":`#23568B66`,"link-background":`#00000000`,"link-background-hover":`#004578`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#004578`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#004578`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#004578`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#1F1F1F`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#1F1F1F`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#1F1F1F99`,panel:`#D0D0D0`,"panel-darken-1":`#BBBBBB`,"panel-darken-2":`#A6A6A6`,"panel-darken-3":`#939393`,"panel-lighten-1":`#E5E5E5`,"panel-lighten-2":`#FAFAFA`,"panel-lighten-3":`#FFFFFF`,primary:`#004578`,"primary-background":`#004578`,"primary-background-darken-1":`#003465`,"primary-background-darken-2":`#002452`,"primary-background-darken-3":`#001541`,"primary-background-lighten-1":`#23568B`,"primary-background-lighten-2":`#3B689F`,"primary-background-lighten-3":`#507BB3`,"primary-darken-1":`#003465`,"primary-darken-2":`#002452`,"primary-darken-3":`#001541`,"primary-lighten-1":`#23568B`,"primary-lighten-2":`#3B689F`,"primary-lighten-3":`#507BB3`,"primary-muted":`#9CB1C0`,scrollbar:`#7994A9`,"scrollbar-active":`#004578`,"scrollbar-background":`#CACACA`,"scrollbar-background-active":`#CACACA`,"scrollbar-background-hover":`#CACACA`,"scrollbar-corner-color":`#CACACA`,"scrollbar-hover":`#6587A1`,secondary:`#0178D4`,"secondary-background":`#0178D4`,"secondary-background-darken-1":`#0065BE`,"secondary-background-darken-2":`#0053AA`,"secondary-background-darken-3":`#004295`,"secondary-background-lighten-1":`#368AE9`,"secondary-background-lighten-2":`#539EFF`,"secondary-background-lighten-3":`#6DB2FF`,"secondary-darken-1":`#0065BE`,"secondary-darken-2":`#0053AA`,"secondary-darken-3":`#004295`,"secondary-lighten-1":`#368AE9`,"secondary-lighten-2":`#539EFF`,"secondary-lighten-3":`#6DB2FF`,"secondary-muted":`#9DC0DC`,success:`#4EBF71`,"success-darken-1":`#36AA5E`,"success-darken-2":`#18954B`,"success-darken-3":`#008139`,"success-lighten-1":`#64D484`,"success-lighten-2":`#7AE998`,"success-lighten-3":`#8FFFAC`,"success-muted":`#B4D6BE`,surface:`#D8D8D8`,"surface-active":`#E8E8E8`,"surface-darken-1":`#C3C3C3`,"surface-darken-2":`#AEAEAE`,"surface-darken-3":`#9A9A9A`,"surface-lighten-1":`#EDEDED`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#A86D1C`,"text-disabled":`#00000060`,"text-error":`#7A273C`,"text-muted":`#00000099`,"text-primary":`#002D4F`,"text-secondary":`#004F8B`,"text-success":`#337E4A`,"text-warning":`#A86D1C`,warning:`#FEA62B`,"warning-darken-1":`#E7920D`,"warning-darken-2":`#CF7E00`,"warning-darken-3":`#B86B00`,"warning-lighten-1":`#FFBA41`,"warning-lighten-2":`#FFCF56`,"warning-lighten-3":`#FFE46B`,"warning-muted":`#E9CEA9`}},"tokyo-night":{name:`tokyo-night`,dark:!0,ansi:{black:`#15161E`,red:`#F7768E`,green:`#9ECE6A`,yellow:`#E0AF68`,blue:`#7AA2F7`,magenta:`#BB9AF7`,cyan:`#7DCFFF`,white:`#A9B1D6`,brightBlack:`#414868`,brightRed:`#F7768E`,brightGreen:`#9ECE6A`,brightYellow:`#E0AF68`,brightBlue:`#7AA2F7`,brightMagenta:`#BB9AF7`,brightCyan:`#7DCFFF`,brightWhite:`#C0CAF5`},vars:{accent:`#FE9E64`,"accent-darken-1":`#E78A51`,"accent-darken-2":`#D0763E`,"accent-darken-3":`#BA632C`,"accent-lighten-1":`#FFB277`,"accent-lighten-2":`#FFC78A`,"accent-lighten-3":`#FFDC9E`,"accent-muted":`#5E4238`,background:`#1A1B26`,"background-darken-1":`#070817`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#292A36`,"background-lighten-2":`#3A3A47`,"background-lighten-3":`#4B4B58`,"block-cursor-background":`#BB9AF7`,"block-cursor-blurred-background":`#BB9AF74C`,"block-cursor-blurred-foreground":`#A9B1D6`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#BB9AF7`,"border-blurred":`#1E2235`,"button-color-foreground":`#24283B`,"button-foreground":`#A9B1D6`,error:`#F6768E`,"error-darken-1":`#E0617A`,"error-darken-2":`#C94D68`,"error-darken-3":`#B33856`,"error-lighten-1":`#FF8AA1`,"error-lighten-2":`#FF9FB5`,"error-lighten-3":`#FFB4CA`,"error-muted":`#5C3645`,"footer-background":`#414868`,"footer-description-background":`#00000000`,"footer-description-foreground":`#A9B1D6`,"footer-foreground":`#A9B1D6`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FF9E64`,foreground:`#A9B1D6`,"foreground-darken-1":`#949CC1`,"foreground-darken-2":`#8189AC`,"foreground-darken-3":`#6D7698`,"foreground-disabled":`#A9B1D660`,"foreground-lighten-1":`#BDC5EB`,"foreground-lighten-2":`#D2DAFF`,"foreground-lighten-3":`#E7EFFF`,"foreground-muted":`#A9B1D699`,"input-cursor-background":`#A9B1D6`,"input-cursor-foreground":`#1A1B26`,"input-selection-background":`#D0AEFF66`,"link-background":`#00000000`,"link-background-hover":`#BB9AF7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#BB9AF7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#BB9AF7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#BB9AF7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#A9B1D6`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#A9B1D6`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#A9B1D699`,panel:`#414868`,"panel-darken-1":`#2F3755`,"panel-darken-2":`#1E2744`,"panel-darken-3":`#0C1733`,"panel-lighten-1":`#53597A`,"panel-lighten-2":`#656B8E`,"panel-lighten-3":`#787EA1`,primary:`#BB9AF7`,"primary-background":`#504D60`,"primary-background-darken-1":`#413D52`,"primary-background-darken-2":`#322E45`,"primary-background-darken-3":`#322E45`,"primary-background-lighten-1":`#605D6E`,"primary-background-lighten-2":`#6F6C7C`,"primary-background-lighten-3":`#7E7C8A`,"primary-darken-1":`#A686E1`,"primary-darken-2":`#9173CC`,"primary-darken-3":`#7D60B7`,"primary-lighten-1":`#D0AEFF`,"primary-lighten-2":`#E5C2FF`,"primary-lighten-3":`#FBD7FF`,"primary-muted":`#4A4164`,scrollbar:`#4F4270`,"scrollbar-active":`#BB9AF7`,"scrollbar-background":`#070817`,"scrollbar-background-active":`#070817`,"scrollbar-background-hover":`#070817`,"scrollbar-corner-color":`#070817`,"scrollbar-hover":`#615187`,secondary:`#7AA2F7`,"secondary-background":`#484E60`,"secondary-background-darken-1":`#383E52`,"secondary-background-darken-2":`#282F45`,"secondary-background-darken-3":`#282F45`,"secondary-background-lighten-1":`#585D6E`,"secondary-background-lighten-2":`#686D7C`,"secondary-background-lighten-3":`#787D8A`,"secondary-darken-1":`#648EE1`,"secondary-darken-2":`#4D7BCC`,"secondary-darken-3":`#3468B7`,"secondary-lighten-1":`#8FB6FF`,"secondary-lighten-2":`#A5CAFF`,"secondary-lighten-3":`#BBDFFF`,"secondary-muted":`#364364`,success:`#9ECE6A`,"success-darken-1":`#89B956`,"success-darken-2":`#75A443`,"success-darken-3":`#619030`,"success-lighten-1":`#B2E37D`,"success-lighten-2":`#C8F891`,"success-lighten-3":`#DDFFA6`,"success-muted":`#41503A`,surface:`#24283B`,"surface-active":`#313448`,"surface-darken-1":`#14182A`,"surface-darken-2":`#00031B`,"surface-darken-3":`#000009`,"surface-lighten-1":`#34384C`,"surface-lighten-2":`#45495E`,"surface-lighten-3":`#575A70`,text:`#FFFFFFDD`,"text-accent":`#FFBE98`,"text-disabled":`#FFFFFF60`,"text-error":`#F9A4B4`,"text-muted":`#FFFFFF99`,"text-primary":`#D2BCF9`,"text-secondary":`#A7C1F9`,"text-success":`#BEDE9C`,"text-warning":`#EACA9B`,warning:`#DFAF68`,"warning-darken-1":`#C99A55`,"warning-darken-2":`#B48742`,"warning-darken-3":`#9E7430`,"warning-lighten-1":`#F6C37B`,"warning-lighten-2":`#FFD88F`,"warning-lighten-3":`#FFEDA3`,"warning-muted":`#554739`}}},Ec=Object.freeze(Object.keys(Tc).sort()),Dc=new Map;function Oc(){return Ec}function kc(e){if(!Ac(e))return null;let t=Dc.get(e);if(t!==void 0)return t;let n=Nc(Tc[e]);return Dc.set(e,n),n}function Ac(e){return Object.hasOwn(Tc,e)}function jc(e){let t=Tc[e],n=Mc(t,`background`),r=Fo(t.name,n),i=e=>r(Mc(t,e));return{name:t.name,dark:t.dark,bg:n,fg:i(`foreground`),primary:i(`primary`),secondary:i(`secondary`),accent:i(`accent`),success:i(`success`),warning:i(`warning`),error:i(`error`),ansi:new Go(Sc.map(e=>Fc(t.ansi[e],t.name,`ansi.${e}`)))}}function Mc(e,t){let n=e.vars[t];if(n===void 0)throw Error(`Theme ${e.name}: required base var "${t}" missing from data file`);return Pc(n,e.name,t)}function Nc(e){let t=new Map;for(let[n,r]of Object.entries(e.vars))t.set(n,Pc(r,e.name,`var ${n}`));for(let n of pc){let r=Mc(e,`text-${n}`);t.set(`text-${n}`,hc(r,Mc(e,`${n}-muted`),Mc(e,`background`)))}return new Po(e.name,e.dark,t)}function Pc(e,t,n){try{return vs(e)}catch(e){throw e instanceof ns?Error(`Theme ${t}: ${n}: ${e.message}`,{cause:e}):e}}function Fc(e,t,n){let r=Pc(e,t,n);if(r.alpha!==1)throw Error(`Theme ${t}: ${n} has alpha in ${JSON.stringify(e)} (expected #RRGGBB)`);return r}function Ic(e){return new bs(e.bg,e.fg,e.ansi,mc(e.name,e.dark,{primary:e.primary,secondary:e.secondary,accent:e.accent,success:e.success,warning:e.warning,error:e.error,background:e.bg,foreground:e.fg}))}const Lc=Ic(jc(`default`));Ic(jc(`svg-export`)),Ic(jc(`monokai`)),Ic(jc(`nord`)),Ic(jc(`gruvbox`)),Ic(jc(`dracula`)),Ic(jc(`tokyo-night`)),Ic(jc(`flexoki`)),Ic(jc(`cyberpunk`)),Ic(jc(`catppuccin-mocha`)),Ic(jc(`catppuccin-latte`)),Ic(jc(`catppuccin-frappe`)),Ic(jc(`catppuccin-macchiato`)),Ic(jc(`solarized-dark`)),Ic(jc(`solarized-light`)),Ic(jc(`rose-pine`)),Ic(jc(`rose-pine-moon`)),Ic(jc(`rose-pine-dawn`)),Ic(jc(`atom-one-dark`)),Ic(jc(`atom-one-light`)),Ic(jc(`textual-dark`)),Ic(jc(`textual-light`)),Ic(jc(`textual-ansi`));const Rc=new Set([`error`,`success`,`warning`]);function zc(e){let t=e.indexOf(`-`);return t===-1?e:e.slice(0,t)}function Bc(e){return Rc.has(zc(e))}function Vc(e,t,n){if(Rs(t))return new Po(n??e.name,e.dark,e.vars);let r={...t,hueShift:0},i=new Map;for(let[n,a]of e.vars){let e=Bc(n)?r:t;i.set(n,Js.fromRgba(a).applyKey(e).toRgba())}let a=i.get(`background`);if(a===void 0)throw Error(`transposePalette: palette "${e.name}" has no "background" var; cannot derive the dark flag without a background color.`);let o=Js.fromRgba(a).l<.5;return new Po(n??e.name,o,i)}var Hc=class{ease;stops;constructor(e,t){if(this.ease=e,this.stops=t,t.length===0)throw RangeError(`a ColorRamp needs at least one stop`);for(let[e,n]of t.entries()){if(!Number.isFinite(n.at))throw RangeError(`ColorRamp stop ${e} has a non-finite position ${n.at}`);let r=t[e-1];if(r!==void 0&&n.at<r.at)throw RangeError(`ColorRamp stops must be in ascending position order; stop ${e} at ${n.at} follows stop ${e-1} at ${r.at}`)}}at(e){if(!Number.isFinite(e))throw RangeError(`ColorRamp.at needs a finite value, got ${e}`);let t=this.stops,n=-1;for(;n+1<t.length&&t[n+1].at<=e;)n++;if(n<0)return t[0].color;let r=t[n];if(n===t.length-1)return r.color;let i=t[n+1],a=this.ease((e-r.at)/(i.at-r.at));return a<=0?r.color:a>=1?i.color:Js.fromRgba(r.color).mix(Js.fromRgba(i.color),a).toRgba()}};function Uc(e,t,n,r){for(let[i,a]of[[`x1`,e],[`y1`,t],[`x2`,n],[`y2`,r]])if(!Number.isFinite(a))throw RangeError(`cubicBezier ${i} must be finite, got ${a}`);if(e<0||e>1||n<0||n>1)throw RangeError(`cubicBezier x1 and x2 must lie in [0, 1], got ${e} and ${n}`);let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c,u=e=>((o*e+a)*e+i)*e,d=e=>((l*e+c)*e+s)*e,f=e=>(3*o*e+2*a)*e+i,p=1e-9,m=e=>{let t=e;for(let n=0;n<8;n++){let n=u(t)-e;if(Math.abs(n)<p)return t;let r=f(t);if(Math.abs(r)<1e-6)break;t-=n/r}let n=0,r=1;for(t=e;r-n>p;)u(t)<e?n=t:r=t,t=(n+r)/2;return t};return e=>d(m(Math.min(1,Math.max(0,e))))}function Wc(e,t=`jump-end`){let n=t===`jump-none`?2:1;if(!Number.isInteger(e)||e<n)throw RangeError(`steps(${e}, "${t}") needs a whole number of steps ≥ ${n}`);let r=t===`jump-start`||t===`start`||t===`jump-both`,i={"jump-start":e,start:e,"jump-end":e,end:e,"jump-both":e+1,"jump-none":e-1}[t],a=+!!r;return t=>Math.min(i,Math.floor(Math.min(1,Math.max(0,t))*e)+a)/i}const Gc=e=>e,Kc=Wc(1,`jump-end`),qc={linear:Gc,ease:Uc(.25,.1,.25,1),"ease-in":Uc(.42,0,1,1),"ease-out":Uc(0,0,.58,1),"ease-in-out":Uc(.42,0,.58,1),"step-start":Wc(1,`jump-start`),"step-end":Kc,step:Kc,sine:e=>(1-Math.cos(Math.PI*e))/2};function Jc(e){if(!Object.hasOwn(qc,e))throw RangeError(`unknown ease ${JSON.stringify(e)}; expected one of `+Object.keys(qc).map(e=>JSON.stringify(e)).join(`, `));return qc[e]}function Yc(e,t){if(!Number.isFinite(t)||t<=0)throw RangeError(`${e} must be a positive number of seconds, got ${t}`)}const Xc={once(e,t){if(!Number.isFinite(e))throw RangeError(`Phase.once start must be finite, got ${e}`);return Yc(`Phase.once duration`,t),n=>Math.min(1,Math.max(0,(n-e)/t))},loop(e){return Yc(`Phase.loop period`,e),t=>(t%e+e)%e/e},pingPong(e){Yc(`Phase.pingPong period`,e);let t=Xc.loop(e);return e=>1-Math.abs(2*t(e)-1)}};function Zc(e,t){return{owner:e.owner,row:e.row,col:e.col+t,inner:e.inner&&Zc(e.inner,t)}}function Qc(e,t){for(let n=e;n;n=n.inner)if(n.owner===t)return!0;return!1}const $c=[`bold`,`dim`,`italic`,`underline`,`blink`,`blink2`,`reverse`,`conceal`,`strike`,`underline2`,`frame`,`encircle`,`overline`],el={bold:1,dim:2,italic:3,underline:4,blink:5,blink2:6,reverse:7,conceal:8,strike:9,underline2:21,frame:51,encircle:52,overline:53},tl={b:`bold`,d:`dim`,i:`italic`,u:`underline`,s:`strike`,r:`reverse`,o:`overline`,uu:`underline2`};var nl=class extends Error{constructor(e,t){super(e,t),this.name=`StyleSyntaxError`}};const rl=new mo;var H=class e{color;bgcolor;bold;dim;italic;underline;blink;blink2;reverse;conceal;strike;underline2;frame;encircle;overline;link;meta;anchor;constructor(e={}){this.color=pl(e.color),this.bgcolor=ml(e.bgcolor),this.bold=e.bold,this.dim=e.dim,this.italic=e.italic,this.underline=e.underline,this.blink=e.blink,this.blink2=e.blink2,this.reverse=e.reverse,this.conceal=e.conceal,this.strike=e.strike,this.underline2=e.underline2,this.frame=e.frame,this.encircle=e.encircle,this.overline=e.overline,this.link=e.link,this.meta=e.meta,this.anchor=e.anchor}get isNull(){return this.color===void 0&&this.bgcolor===void 0&&this.bold===void 0&&this.dim===void 0&&this.italic===void 0&&this.underline===void 0&&this.blink===void 0&&this.blink2===void 0&&this.reverse===void 0&&this.conceal===void 0&&this.strike===void 0&&this.underline2===void 0&&this.frame===void 0&&this.encircle===void 0&&this.overline===void 0&&this.link===void 0&&this.meta===void 0&&this.anchor===void 0}get transparentBackground(){return this.bgcolor===void 0||this.bgcolor.isDefault}get backgroundStyle(){return new e({bgcolor:this.bgcolor})}with(t){return new e({...this,...t})}get withoutColor(){return this.with({color:void 0,bgcolor:void 0})}withLink(e){return this.with({link:e})}clearMetaAndLinks(){return this.with({link:void 0,meta:void 0})}withAnchor(e){return this.with({anchor:e})}shiftedBy(e){return this.anchor?this.withAnchor(Zc(this.anchor,e)):this}add(t){return!t||t.isNull?this:this.isNull?t:new e({color:t.color??this.color,bgcolor:t.bgcolor??this.bgcolor,bold:t.bold??this.bold,dim:t.dim??this.dim,italic:t.italic??this.italic,underline:t.underline??this.underline,blink:t.blink??this.blink,blink2:t.blink2??this.blink2,reverse:t.reverse??this.reverse,conceal:t.conceal??this.conceal,strike:t.strike??this.strike,underline2:t.underline2??this.underline2,frame:t.frame??this.frame,encircle:t.encircle??this.encircle,overline:t.overline??this.overline,link:t.link??this.link,meta:t.meta&&this.meta?{...this.meta,...t.meta}:t.meta??this.meta,anchor:t.anchor??this.anchor})}equals(e){return this===e?!0:this.color?.name===e.color?.name&&this.bgcolor?.name===e.bgcolor?.name&&this.bold===e.bold&&this.dim===e.dim&&this.italic===e.italic&&this.underline===e.underline&&this.blink===e.blink&&this.blink2===e.blink2&&this.reverse===e.reverse&&this.conceal===e.conceal&&this.strike===e.strike&&this.underline2===e.underline2&&this.frame===e.frame&&this.encircle===e.encircle&&this.overline===e.overline&&this.link===e.link&&_l(this.anchor,e.anchor)}drawnColors(e){let t=Bo,n=this.bgcolor?.flattenAlpha(t),r=n?.getTruecolor(void 0,!1)??t,i=this.color?.flattenAlpha(r),a=t=>e===void 0?t:t.downgrade(e);return{color:i===void 0?void 0:a(i),bgcolor:n===void 0?void 0:a(n)}}toSgrCodes(e){if(this.isNull)return``;let t=this.drawnColors(e);return[...$c.filter(e=>this[e]===!0).map(e=>`${el[e]}`),...t.color?.getAnsiCodes(!0)??[],...t.bgcolor?.getAnsiCodes(!1)??[]].join(`;`)}toString(){if(this.isNull)return`none`;let e=[];for(let t of $c)this[t]===!1&&e.push(`not ${t}`);for(let t of $c)this[t]===!0&&e.push(t);return this.color&&e.push(this.color.name),this.bgcolor&&e.push(`on ${this.bgcolor.name}`),this.link&&e.push(`link ${this.link}`),e.join(` `)||`none`}static null(){return U}static fromColor(t,n){return new e({color:t,bgcolor:n})}static fromMeta(t){return new e({meta:t})}static pickFirst(...e){for(let t of e)if(t!==void 0)return t;throw Error(`All arguments are undefined`)}static combine(e){let t=U;for(let n of e)n&&(t=t.add(n));return t}static chain(...t){return e.combine(t)}static normalize(e){return e.trim().replace(/\s+/g,` `)}static parse(t){let n=e.normalize(t);return n===``||n===`none`?U:rl.get(n,fl)}};const U=new H,il=/^[a-z][a-z0-9._-]*$/;function al(e,t){return e instanceof H?e.add(t):e===``?t:typeof e==`string`?{under:e,over:t}:{under:e.under,over:e.over.add(t)}}var ol=class{styles;constructor(e={},t){if(this.styles=new Map,t?.inherit!==!1)for(let[e,t]of Object.entries(hl))this.styles.set(e,t);for(let[t,n]of Object.entries(e)){if(!il.test(t))throw Error(`Invalid style name: "${t}" (must be lowercase, start with letter, contain only letters, digits, ".", "-", "_")`);this.styles.set(t,H.parse(n))}}get(e){return this.styles.get(e)}resolve(e){return e instanceof H?e:typeof e==`string`?this.styles.get(e)??H.parse(e):this.resolve(e.under).add(e.over)}has(e){return this.styles.has(e)}};const sl=new Set($c),cl=[`not`,`on`,`link`,...$c,...Ps];function ll(e,t){let n=[],r=Array.from({length:t.length+1},(e,t)=>t);for(let i=1;i<=e.length;i++){let a=[i];for(let o=1;o<=t.length;o++){let s=i>1&&o>1&&e[i-1]===t[o-2]&&e[i-2]===t[o-1];a[o]=Math.min(r[o]+1,a[o-1]+1,r[o-1]+Number(e[i-1]!==t[o-1]),s?n[o-2]+1:1/0)}[n,r]=[r,a]}return r[t.length]}function ul(e,t){let n=e.toLowerCase(),r=Math.max(1,Math.floor(n.length/3)),i=t.filter(e=>Math.abs(e.length-n.length)<=r).map(e=>({name:e,distance:ll(n,e)})),a=Math.min(r,...i.map(e=>e.distance)),o=i.filter(e=>e.distance===a).map(e=>`"${e.name}"`).sort();return o.length===0?``:` (did you mean ${o.join(` or `)}?)`}function dl(e,t,n){try{return V.parse(e)}catch(r){throw new nl(`${t} "${e}"${ul(e,n)}: ${String(r)}`,{cause:r})}}function fl(e){let t=e.split(/\s+/),n={},r=0;for(;r<t.length;){let e=t[r];if(e===`not`){r++;let e=t[r];if(!e)throw new nl(`Expected attribute after "not" in style definition`);let i=tl[e]??e;if(!sl.has(i))throw new nl(`Invalid attribute: "${e}"${ul(e,$c)}`);n[i]=!1,r++;continue}if(e===`on`){r++;let e=t[r];if(!e)throw new nl(`Expected color after "on" in style definition`);n.bgcolor=dl(e,`Invalid background color`,Ps),r++;continue}if(e===`link`){r++;let e=t[r];e&&(n.link=e),r++;continue}let i=tl[e]??e;if(sl.has(i)){n[i]=!0,r++;continue}n.color=dl(e,`Invalid style definition`,cl),r++}return new H(n)}function pl(e){if(e!==void 0)return e instanceof V?e:V.parse(e)}function ml(e){let t=pl(e);return t?.value?.alpha===0?void 0:t}const hl={none:U,reset:new H({color:V.default(),bgcolor:V.default(),bold:!1,dim:!1,italic:!1,underline:!1,blink:!1,blink2:!1,reverse:!1,conceal:!1,strike:!1,underline2:!1,frame:!1,encircle:!1,overline:!1}),bold:new H({bold:!0}),dim:new H({dim:!0}),italic:new H({italic:!0}),underline:new H({underline:!0}),blink:new H({blink:!0}),blink2:new H({blink2:!0}),reverse:new H({reverse:!0}),conceal:new H({conceal:!0}),strike:new H({strike:!0}),underline2:new H({underline2:!0}),frame:new H({frame:!0}),encircle:new H({encircle:!0}),overline:new H({overline:!0}),"table.header":new H({bold:!0}),"table.footer":new H({bold:!0}),"table.cell":U,"table.title":new H({italic:!0}),"table.caption":new H({italic:!0,dim:!0}),"repr.ellipsis":H.parse(`yellow`),"repr.indent":H.parse(`dim green`),"repr.error":H.parse(`bold red`),"repr.str":H.parse(`not bold not italic green`),"repr.brace":H.parse(`bold`),"repr.comma":H.parse(`bold`),"repr.ipv4":H.parse(`bold bright_green`),"repr.ipv6":H.parse(`bold bright_green`),"repr.eui48":H.parse(`bold bright_green`),"repr.eui64":H.parse(`bold bright_green`),"repr.tag_start":H.parse(`bold`),"repr.tag_name":H.parse(`bold bright_magenta`),"repr.tag_contents":H.parse(`default`),"repr.tag_end":H.parse(`bold`),"repr.attrib_name":H.parse(`not italic yellow`),"repr.attrib_equal":H.parse(`bold`),"repr.attrib_value":H.parse(`not italic magenta`),"repr.number":H.parse(`bold not italic cyan`),"repr.number_complex":H.parse(`bold not italic cyan`),"repr.bool_true":H.parse(`italic bright_green`),"repr.bool_false":H.parse(`italic bright_red`),"repr.none":H.parse(`italic magenta`),"repr.url":H.parse(`not bold not italic underline bright_blue`),"repr.uuid":H.parse(`not bold bright_yellow`),"repr.call":H.parse(`bold magenta`),"repr.path":H.parse(`magenta`),"repr.filename":H.parse(`bright_magenta`),"log.time":H.parse(`cyan dim`),"log.message":U,"log.path":H.parse(`dim`),"log.line_no":H.parse(`cyan`),"log.level":U,"rule.line":H.parse(`bright_green`),"rule.text":U,"strip.separator":H.parse(`bright_black`),"strip.rail":H.parse(`bright_black`),"json.brace":H.parse(`bold`),"json.bool_true":H.parse(`italic bright_green`),"json.bool_false":H.parse(`italic bright_red`),"json.key":H.parse(`bold blue`),"json.null":H.parse(`italic magenta`),"json.number":H.parse(`bold not italic cyan`),"json.str":H.parse(`not bold not italic green`),"syntax.keyword":H.parse(`bold magenta`),"syntax.constant":H.parse(`italic bright_magenta`),"syntax.string":H.parse(`green`),"syntax.number":H.parse(`cyan`),"syntax.comment":H.parse(`dim italic`),"syntax.line_number":H.parse(`dim`),"syntax.line_number.highlight":H.parse(`bold grey93 on grey27`),"markdown.h1":H.parse(`bold underline`),"markdown.h2":H.parse(`bold`),"markdown.h3":H.parse(`bold dim`),"markdown.h4":H.parse(`bold dim italic`),"markdown.code":H.parse(`bold dark_turquoise on grey11`),"markdown.hr":H.parse(`yellow`),"markdown.link":H.parse(`bright_blue`),"markdown.link_url":H.parse(`blue`),"progress.description":U,"progress.percentage":H.parse(`magenta`),"progress.remaining":H.parse(`cyan`),"progress.elapsed":H.parse(`yellow`),"progress.spinner":H.parse(`green`),"progress.download":H.parse(`green`),"progress.filesize":H.parse(`green`),"progress.filesize.total":H.parse(`green`),"progress.data.speed":H.parse(`red`),"bar.back":H.parse(`grey23`),"bar.complete":H.parse(`rgb(249,38,114)`),"bar.finished":H.parse(`rgb(114,156,31)`),"bar.pulse":H.parse(`rgb(249,38,114)`),"scrollbar.thumb":U,"scrollbar.track":H.parse(`grey37`),tree:U,"tree.guide":U,"status.spinner":H.parse(`green`),"status.message":U,prompt:U,"prompt.choices":H.parse(`bold magenta`),"prompt.default":H.parse(`bold cyan`),"prompt.invalid":H.parse(`red`),"prompt.invalid.choice":H.parse(`red`),"inspect.attr":H.parse(`yellow italic`),"inspect.attr.dunder":H.parse(`yellow italic dim`),"inspect.callable":H.parse(`bold magenta`),"inspect.error":H.parse(`bold red`),"inspect.help":H.parse(`cyan`),"inspect.doc":H.parse(`dim`),"inspect.value.border":H.parse(`green`),"traceback.border":H.parse(`red`),"traceback.text":H.parse(`red`),"traceback.title":H.parse(`bold red`),"traceback.exc_type":H.parse(`bold bright_red`),"traceback.exc_value":U,"traceback.offset":H.parse(`bold bright_red`),"scope.border":H.parse(`blue`),"scope.key":H.parse(`italic`),"scope.key.special":H.parse(`dim italic`),pretty:U,"iso8601.date":H.parse(`blue`),"iso8601.time":H.parse(`magenta`),"iso8601.timezone":H.parse(`yellow`),"iso8601.year":U,"iso8601.month":U,"iso8601.day":U,"iso8601.week":U,"iso8601.hour":U,"iso8601.minute":U,"iso8601.second":U,"iso8601.frac":U,"iso8601.ms":U,"iso8601.hyphen":U},gl=new ol;function _l(e,t){return e===t?!0:!e||!t?!1:e.owner===t.owner&&e.row===t.row&&e.col===t.col&&_l(e.inner,t.inner)}var vl;(function(e){e.BELL=`bell`,e.CARRIAGE_RETURN=`carriage_return`,e.HOME=`home`,e.CLEAR=`clear`,e.SHOW_CURSOR=`show_cursor`,e.HIDE_CURSOR=`hide_cursor`,e.ENABLE_ALT_SCREEN=`enable_alt_screen`,e.DISABLE_ALT_SCREEN=`disable_alt_screen`,e.CURSOR_UP=`cursor_up`,e.CURSOR_DOWN=`cursor_down`,e.CURSOR_FORWARD=`cursor_forward`,e.CURSOR_BACKWARD=`cursor_backward`,e.CURSOR_MOVE_TO_COLUMN=`cursor_move_to_column`,e.CURSOR_MOVE_TO=`cursor_move_to`,e.ERASE_IN_LINE=`erase_in_line`,e.SET_WINDOW_TITLE=`set_window_title`})(vl||={});var W=class e{text;style;control;constructor(e,t,n){this.text=e,this.style=t,this.control=n}get cellLength(){return this.control?0:R(this.text)}get hasText(){return this.text.length>0}get isControl(){return this.control!==void 0}splitCells(t){if(t>=this.cellLength)return[this,new e(``)];if(t<=0)return[new e(``),this];let[n,r]=bo(this.text,t);return[new e(n,this.style),new e(r,this.style?.shiftedBy(t))]}static _line;static line(){return e._line??=new e(`
42
- `)}static anchorLines(t,n,r=0){return t.map((t,i)=>{let a=r+i,o=0;return t.map(t=>{if(t.isControl)return t;let r=t.style??H.null(),i=new e(t.text,r.withAnchor({owner:n,row:a,col:o,inner:r.anchor}));return o+=t.cellLength,i})})}static anchorAt(e,t,n){if(!Number.isInteger(t)||t<0)return;let r=0;for(let i of e[n]??[]){let e=r+i.cellLength;if(t<e){let e=i.style?.anchor;return e&&Zc(e,t-r)}r=e}}static*applyStyle(t,n,r){if(!n&&!r){yield*t;return}for(let i of t){if(i.isControl){yield i;continue}let t=i.style;n&&(t=n.add(t)),r&&(t=t?t.add(r):r),yield new e(i.text,t,i.control)}}static*filterControl(e,t){for(let n of e)n.isControl===t&&(yield n)}static splitLines(t){let n=[],r=[];for(let i of t){if(i.isControl){r.push(i);continue}let t=i.text;if(!t.includes(`
41
+ `);return(n<0?t:0)+R(e.slice(n+1))},s=n,c=n,l=0,u=n.length,d=0;for(let e of r){l=o(c,l);let n=t-l%t;d+=n-1,i.push(u),a.push(d),s+=` `.repeat(n)+e,l+=n,c=e,u+=1+e.length}return{text:s,offsetOf:e=>{let t=0,n=i.length;for(;t<n;){let r=t+n>>1;i[r]<e?t=r+1:n=r}return e+(t===0?0:a[t-1])}}}var Po=class{name;dark;vars;constructor(e,t,n){this.name=e,this.dark=t;let r=n.get(`background`),i=r===void 0?Io(e):Fo(e,r);this.vars=new Map([...n].map(([e,t])=>[e,i(t,e)]))}get(e){return this.vars.get(e)}};function Fo(e,t){if(t.alpha!==1)throw RangeError(`palette ${JSON.stringify(e)}: background is the surface its translucent colours are drawn on, so it must be opaque; got ${t.hex}`);return e=>e.alpha===0?e:e.compositeOver(t)}function Io(e){return(t,n)=>{if(t.alpha!==1&&t.alpha!==0)throw RangeError(`palette ${JSON.stringify(e)}: ${n} is translucent (${t.hex}) but the palette has no "background" to draw it on`);return t}}function Lo(e){return e.toString(16).padStart(2,`0`)}function Ro(e){return Number.isInteger(e)&&e>=0&&e<=255}function zo(e,t){if(!Ro(t))throw RangeError(`ColorRgba.${e} must be an integer in [0, 255]; got ${t}`)}var z=class e{red;green;blue;alpha;constructor(e,t,n,r=1){if(this.red=e,this.green=t,this.blue=n,this.alpha=r,zo(`red`,e),zo(`green`,t),zo(`blue`,n),!Number.isFinite(r)||r<0||r>1)throw RangeError(`ColorRgba.alpha must be a finite number in [0, 1]; got ${r}`)}get hex(){let e=`#`+Lo(this.red)+Lo(this.green)+Lo(this.blue);return this.alpha===1?e:e+Lo(Math.round(this.alpha*255))}get rgb(){return this.alpha===1?`rgb(${this.red},${this.green},${this.blue})`:`rgba(${this.red},${this.green},${this.blue},${this.alpha})`}get normalized(){return[this.red/255,this.green/255,this.blue/255,this.alpha]}compositeOver(t){if(this.alpha===1)return this;let n=this.alpha;return new e(Math.round(t.red+(this.red-t.red)*n),Math.round(t.green+(this.green-t.green)*n),Math.round(t.blue+(this.blue-t.blue)*n),1)}};const Bo=new z(0,0,0);function Vo(e){let t=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*t(e.red)+.7152*t(e.green)+.0722*t(e.blue)}function Ho(e,t){return Uo(Vo(e),Vo(t))}function Uo(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function Wo(e,t){let n=e.red-t.red,r=e.green-t.green,i=e.blue-t.blue;return n*n+r*r+i*i}var Go=class{colors;firstIndex;matchMemo=new mo;readableMemo=new mo;constructor(e,t=0){this.colors=e,this.firstIndex=t}get(e){return this.colors[e-this.firstIndex]}luminanceCache;luminances(){return this.luminanceCache??=this.colors.map(Vo),this.luminanceCache}get size(){return this.colors.length}match(e){let t=`${e.red},${e.green},${e.blue},${e.alpha}`;return this.matchMemo.get(t,()=>this.nearest(e))}nearest(e){let t=0,n=1/0;for(let r=0;r<this.colors.length;r++){let i=this.colors[r],a=Wo(i,e);a<n&&(n=a,t=r)}return this.firstIndex+t}matchReadable(e,t,n){let r=`${e.red},${e.green},${e.blue}|${t.red},${t.green},${t.blue}|${n}`;return this.readableMemo.get(r,()=>this.nearestReadable(e,t,n))}nearestReadable(e,t,n){let r=Vo(t),i=0,a=!1,o=-1/0;for(let t=0;t<this.colors.length;t++){let s=this.colors[t],c=this.luminances()[t],l=Uo(c,r),u=l>=n,d=u?-Wo(s,e):l;(u&&!a||u===a&&d>o)&&(i=t,a=u,o=d)}return this.firstIndex+i}matchWhere(e,t){let n=this.colors.map(t=>Wo(t,e)),r=[...n.keys()].sort((e,t)=>n[e]-n[t]).find(e=>t(this.colors[e],this.firstIndex+e));return r===void 0?void 0:this.firstIndex+r}},B;(function(e){e[e.DEFAULT=0]=`DEFAULT`,e[e.STANDARD=1]=`STANDARD`,e[e.EIGHT_BIT=2]=`EIGHT_BIT`,e[e.TRUECOLOR=3]=`TRUECOLOR`,e[e.WINDOWS=4]=`WINDOWS`})(B||={});function Ko(e){switch(e){case B.DEFAULT:return 0;case B.STANDARD:case B.WINDOWS:return 1;case B.EIGHT_BIT:return 2;case B.TRUECOLOR:return 3}}const qo={truecolor:B.TRUECOLOR,256:B.EIGHT_BIT,ansi:B.STANDARD,none:null},Jo=new Map([[`0`,null],[`false`,null],[`1`,B.STANDARD],[`true`,B.STANDARD],[`2`,B.EIGHT_BIT],[`3`,B.TRUECOLOR],[`iTerm.app`,B.TRUECOLOR],[`Apple_Terminal`,B.EIGHT_BIT],[`vscode`,B.TRUECOLOR],[`Tabby`,B.TRUECOLOR],[`xterm-kitty`,B.TRUECOLOR],[`xterm-ghostty`,B.TRUECOLOR],[`wezterm`,B.TRUECOLOR],[`alacritty`,B.TRUECOLOR],[`foot`,B.TRUECOLOR],[`contour`,B.TRUECOLOR]]);function Yo(e={}){let t=Zo(e).NO_COLOR;if(t!==void 0&&t!==``)return null;let n=Xo(Zo(e));return n===void 0?$o(e):n}function Xo(e){let t=e.FORCE_COLOR;if(t===void 0||t===``)return;let n=Jo.get(t);return n===void 0?B.STANDARD:n}function Zo(e){return e.env??(typeof process<`u`?process.env:{})}function Qo(e){let t=e.TERM;return t===`dumb`||t===`unknown`}function $o(e){let t=Zo(e);if(!(e.isTTY??(typeof process<`u`?process.stdout?.isTTY??!1:!1))||Qo(t))return null;let n=t.TERM??``,r=t.COLORTERM;if(r===`truecolor`||r===`24bit`)return B.TRUECOLOR;let i=Jo.get(n);if(i!==void 0)return i;let a=t.TERM_PROGRAM;if(a!==void 0){let e=Jo.get(a);if(e!==void 0)return e}return/-256(color)?$/i.test(n)?B.EIGHT_BIT:/-truecolor$/i.test(n)?B.TRUECOLOR:(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(n),B.STANDARD)}function es(e,t){return e===`auto`?{colorSystem:Yo(t),hyperlinks:(Xo(Zo(t??{}))??null)!==null||$o(t??{})!==null}:{colorSystem:typeof e==`string`?ts(e):e,hyperlinks:!0}}function ts(e,t){if(e===`auto`)return Yo(t);if(Object.hasOwn(qo,e))return qo[e];throw new ns(`Unknown color system name: ${JSON.stringify(e)} (expected "auto", "truecolor", "256", "ansi", or "none")`)}var ns=class extends Error{constructor(e){super(e),this.name=`ColorParseError`}};const rs=new mo;var V=class e{name;type;number;value;downgradeCache=new Map;constructor(e,t,n,r){this.name=e,this.type=t,this.number=n,this.value=r}get isDefault(){return this.type===B.DEFAULT}get fixedValue(){switch(this.type){case B.TRUECOLOR:return this.value;case B.EIGHT_BIT:return this.number<16?void 0:Ds.get(this.number);case B.DEFAULT:case B.STANDARD:case B.WINDOWS:return}}get isSystemDefined(){return this.type===B.STANDARD||this.type===B.WINDOWS}getAnsiCodes(e=!0){switch(this.type){case B.DEFAULT:return[e?`39`:`49`];case B.STANDARD:{let t=this.number;return e?t<8?[`${30+t}`]:[`${90+t-8}`]:t<8?[`${40+t}`]:[`${100+t-8}`]}case B.EIGHT_BIT:return[e?`38`:`48`,`5`,`${this.number}`];case B.TRUECOLOR:{let t=this.value;return[e?`38`:`48`,`2`,`${t.red}`,`${t.green}`,`${t.blue}`]}case B.WINDOWS:{let t=this.number;return e?t<8?[`${30+t}`]:[`${90+t-8}`]:t<8?[`${40+t}`]:[`${100+t-8}`]}}}flattenAlpha(t){if(this.type!==B.TRUECOLOR||!this.value)return this;let n=this.value.compositeOver(t);return n===this.value?this:e.fromRgba(n)}downgrade(e){if(this.type===B.DEFAULT||this.type===e||Ko(this.type)<Ko(e))return this;let t=this.downgradeCache.get(e);if(t)return t;let n=this.performDowngrade(e);return this.downgradeCache.set(e,n),n}getTruecolor(e,t=!0){switch(this.type){case B.TRUECOLOR:return this.value;case B.EIGHT_BIT:return this.number<16?Ms(e,this.type).ansiColors.get(this.number):Ds.get(this.number);case B.STANDARD:case B.WINDOWS:return Ms(e,this.type).ansiColors.get(this.number);case B.DEFAULT:{let n=Ms(e,this.type);return t?n.foregroundColor:n.backgroundColor}}}static default(){return new e(`default`,B.DEFAULT)}static fromAnsi(t){let n=t<16?B.STANDARD:B.EIGHT_BIT;return new e(`color(${t})`,n,t)}static fromRgba(t){return new e(t.hex,B.TRUECOLOR,void 0,t)}static fromRgb(t,n,r){return e.fromRgba(new z(t,n,r))}static blend(t,n,r){for(let e of[t,n]){if(e.isDefault)throw new ns(`A blend cannot mix "default", which is no colour`);if(e.value!==void 0&&e.value.alpha<1)throw new ns(`A blend's ends are opaque; "${e.name}" is translucent`)}if(!(r>=0&&r<=1))throw new ns(`A blend's fraction is in [0, 1]; got ${r}`);let i=t.fixedValue,a=n.fixedValue;return i!==void 0&&a!==void 0?e.fromRgba(xs(i,a,r)):r===0?t:r===1?n:t.type===n.type&&(t.number===void 0?t.name===n.name:t.number===n.number)?t:new ls(t,n,r)}static matchOn(t,n,r,i){if(t.alpha<1)throw RangeError(`matchOn rounds an opaque colour; got alpha ${t.alpha}`);if(n===B.TRUECOLOR)return e.fromRgba(t);if(n===B.DEFAULT)return e.default();let a=r.ansiColors.match(t);return[[e.default(),i?r.foregroundColor:r.backgroundColor],[new e(`color(${a})`,n===B.WINDOWS?n:B.STANDARD,a),r.ansiColors.get(a)],...n===B.EIGHT_BIT?[is(t)]:[]].reduce((e,n)=>Wo(n[1],t)<Wo(e[1],t)?n:e)[0]}static indexed(e,t){let n=as.get(t)??new Map;as.set(t,n);let r=n.get(e)??os(e,t);return n.set(e,r),r}static matchMove(t,n,r,i,a){let o=e.matchOn(n,r,i,a);return Wo(t,n)<=Wo(o.getTruecolor(i,a),n)?void 0:o}static parse(e){return rs.get(e.toLowerCase().trim(),ms)}performDowngrade(t){let n=this.getTruecolor(Ms(void 0,t));switch(t){case B.EIGHT_BIT:return e.fromAnsi(Ns(t).match(n));case B.STANDARD:case B.WINDOWS:{let r=this.number!==void 0&&this.number<16?this.number:Ns(t).match(n);return new e(`color(${r})`,t,r)}case B.TRUECOLOR:return this;case B.DEFAULT:return e.default()}}};function is(e){let t=Os.match(e);return[V.fromAnsi(t),Os.get(t)]}const as=new WeakMap;function os(e,t){let n=()=>Array.from({length:16},(n,r)=>[new V(`color(${r})`,e===B.WINDOWS?e:B.STANDARD,r),t.ansiColors.get(r)]);switch(e){case B.TRUECOLOR:case B.DEFAULT:return[];case B.STANDARD:case B.WINDOWS:return n();case B.EIGHT_BIT:{let{firstIndex:e,size:t}=Os;return[...n(),...Array.from({length:t},(t,n)=>[V.fromAnsi(e+n),Os.get(e+n)])]}}}function ss(e,t,n,r){return xs(e.getTruecolor(r),t.getTruecolor(r),n)}function cs(e){return e.fixedValue?.hex??(e.number===void 0?e.name:`color(${e.number})`)}var ls=class extends V{from;to;t;constructor(e,t,n){super(`blend(${cs(e)},${cs(t)},${n})`,B.TRUECOLOR,void 0,ss(e,t,n)),this.from=e,this.to=t,this.t=n}get fixedValue(){}getTruecolor(e){return ss(this.from,this.to,this.t,e)}};const us=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,ds=/^color\((\d+)\)$/,fs=/^blend\((.*)\)$/,ps=/^\s*(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?\s*$/;function ms(e){if(e===`default`||e===``)return V.default();let t=Fs[e];if(t!==void 0)return new V(e,t<16?B.STANDARD:B.EIGHT_BIT,t);if(e.startsWith(`#`))return new V(e,B.TRUECOLOR,void 0,bs(e));let n=us.exec(e);if(n){let t=gs(e,n[1],`red`),r=gs(e,n[2],`green`),i=gs(e,n[3],`blue`);return new V(e,B.TRUECOLOR,void 0,new z(t,r,i))}let r=ds.exec(e);if(r){let t=gs(e,r[1],`number`);return new V(e,t<16?B.STANDARD:B.EIGHT_BIT,t)}let i=fs.exec(e);if(i){let t=hs(i[1]),n=t[2]??``;if(t.length!==3||!ps.test(n))throw new ns(`ColorSpec "${e}": a blend is blend(<color>,<color>,<fraction>)`);return V.blend(V.parse(t[0]),V.parse(t[1]),Number(n))}throw new ns(`Failed to parse color: "${e}"`)}function hs(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`(`?n++:a===`)`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i)),r=i+1)}return t.push(e.slice(r)),t}function gs(e,t,n){let r=parseInt(t,10);if(!Ro(r))throw new ns(`ColorSpec "${e}": ${n} ${t} is out of range (0-255)`);return r}const _s=/^[0-9a-fA-F]+$/,vs={6:`RRGGBB`,8:`RRGGBBAA`};function ys(e,t,n,r){if(!r.includes(n.length)||!_s.test(n)){let n=r.map(e=>t+vs[e]).join(` or `);throw new ns(`Invalid hex colour ${JSON.stringify(e)} (expected ${n})`)}let i=e=>parseInt(n.slice(e,e+2),16);return new z(i(0),i(2),i(4),n.length===8?i(6)/255:1)}function bs(e){return ys(e,`#`,e.startsWith(`#`)?e.slice(1):``,[6,8])}function xs(e,t,n=.5){return new z(Math.round(e.red+(t.red-e.red)*n),Math.round(e.green+(t.green-e.green)*n),Math.round(e.blue+(t.blue-e.blue)*n),e.alpha+(t.alpha-e.alpha)*n)}var Ss=class{backgroundColor;foregroundColor;ansiColors;palette;constructor(e,t,n,r){if(this.backgroundColor=e,this.foregroundColor=t,this.ansiColors=n,this.palette=r,n.firstIndex!==0||n.size!==16)throw RangeError(`a TerminalTheme's ansiColors are the sixteen ANSI colours, indices 0–15; got ${n.size} from index ${n.firstIndex}`)}};function Cs(){return[new z(0,0,0),new z(128,0,0),new z(0,128,0),new z(128,128,0),new z(0,0,128),new z(128,0,128),new z(0,128,128),new z(192,192,192),new z(128,128,128),new z(255,0,0),new z(0,255,0),new z(255,255,0),new z(0,0,255),new z(255,0,255),new z(0,255,255),new z(255,255,255)]}function ws(){let e=Cs(),t=[0,95,135,175,215,255];for(let n=0;n<6;n++)for(let r=0;r<6;r++)for(let i=0;i<6;i++)e.push(new z(t[n],t[r],t[i]));for(let t=0;t<24;t++){let n=8+10*t;e.push(new z(n,n,n))}return e}function Ts(){return[new z(12,12,12),new z(197,15,31),new z(19,161,14),new z(193,156,0),new z(0,55,218),new z(136,23,152),new z(58,150,221),new z(204,204,204),new z(118,118,118),new z(231,72,86),new z(22,198,12),new z(249,241,165),new z(59,120,255),new z(180,0,158),new z(97,214,214),new z(242,242,242)]}const Es=new Go(Cs()),Ds=new Go(ws()),Os=new Go(ws().slice(16),16),ks=new Go(Ts()),As=new Ss(new z(0,0,0),new z(255,255,255),Es,new Po(`default`,!0,new Map)),js=new Ss(ks.get(0),ks.get(7),ks,new Po(`windows`,!0,new Map));function Ms(e,t){return e??(t===B.WINDOWS?js:As)}function Ns(e){switch(e){case B.EIGHT_BIT:return Os;case B.STANDARD:return Es;case B.WINDOWS:return ks}}function Ps(e){let t=Object.entries(e).filter(([e])=>e.includes(`grey`)).map(([e,t])=>[e.replace(`grey`,`gray`),t]);return{...e,...Object.fromEntries(t)}}const Fs=Ps({black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,bright_black:8,bright_red:9,bright_green:10,bright_yellow:11,bright_blue:12,bright_magenta:13,bright_cyan:14,bright_white:15,grey0:16,navy_blue:17,dark_blue:18,blue3:19,blue2:20,blue1:21,dark_green:22,deep_sky_blue4:23,deep_sky_blue5:24,deep_sky_blue6:25,dodger_blue3:26,dodger_blue2:27,green4:28,spring_green4:29,turquoise4:30,deep_sky_blue3:31,deep_sky_blue7:32,dodger_blue1:33,green3:34,spring_green3:35,dark_cyan:36,light_sea_green:37,deep_sky_blue2:38,deep_sky_blue1:39,green5:40,spring_green5:41,spring_green2:42,cyan3:43,dark_turquoise:44,turquoise2:45,green1:46,spring_green6:47,spring_green1:48,medium_spring_green:49,cyan2:50,cyan1:51,dark_red:52,deep_pink4:53,purple4:54,purple5:55,purple3:56,blue_violet:57,orange4:58,grey37:59,medium_purple4:60,slate_blue3:61,slate_blue4:62,royal_blue1:63,chartreuse4:64,dark_sea_green4:65,pale_turquoise4:66,steel_blue:67,steel_blue3:68,cornflower_blue:69,chartreuse3:70,dark_sea_green5:71,cadet_blue:72,cadet_blue2:73,sky_blue3:74,steel_blue1:75,chartreuse5:76,pale_green3:77,sea_green3:78,aquamarine3:79,medium_turquoise:80,steel_blue2:81,chartreuse2:82,sea_green2:83,sea_green1:84,sea_green4:85,aquamarine1:86,dark_slate_gray2:87,dark_red2:88,deep_pink5:89,dark_magenta:90,dark_magenta2:91,dark_violet:92,purple2:93,orange5:94,light_pink4:95,plum4:96,medium_purple3:97,medium_purple5:98,slate_blue1:99,yellow4:100,wheat4:101,grey53:102,light_slate_grey:103,medium_purple:104,light_slate_blue:105,yellow5:106,dark_olive_green3:107,dark_sea_green:108,light_sky_blue3:109,light_sky_blue4:110,sky_blue2:111,chartreuse6:112,dark_olive_green4:113,pale_green4:114,dark_sea_green3:115,dark_slate_gray3:116,sky_blue1:117,chartreuse1:118,light_green:119,light_green2:120,pale_green1:121,aquamarine2:122,dark_slate_gray1:123,red3:124,deep_pink6:125,medium_violet_red:126,magenta3:127,dark_violet2:128,purple:129,dark_orange3:130,indian_red:131,hot_pink3:132,medium_orchid3:133,medium_orchid:134,medium_purple2:135,dark_goldenrod:136,light_salmon3:137,rosy_brown:138,grey63:139,medium_purple6:140,medium_purple1:141,gold3:142,dark_khaki:143,navajo_white3:144,grey69:145,light_steel_blue3:146,light_steel_blue:147,yellow3:148,dark_olive_green5:149,dark_sea_green6:150,dark_sea_green2:151,light_cyan3:152,light_sky_blue1:153,green_yellow:154,dark_olive_green2:155,pale_green2:156,dark_sea_green7:157,dark_sea_green1:158,pale_turquoise1:159,red4:160,deep_pink3:161,deep_pink8:162,magenta4:163,magenta5:164,magenta2:165,dark_orange4:166,indian_red2:167,hot_pink4:168,hot_pink2:169,orchid:170,medium_orchid1:171,orange3:172,light_salmon4:173,light_pink3:174,pink3:175,plum3:176,violet:177,gold4:178,light_goldenrod3:179,tan:180,misty_rose3:181,thistle3:182,plum2:183,yellow6:184,khaki3:185,light_goldenrod2:186,light_yellow3:187,grey84:188,light_steel_blue1:189,yellow2:190,dark_olive_green1:191,dark_olive_green6:192,dark_sea_green8:193,honeydew2:194,light_cyan1:195,red1:196,deep_pink2:197,deep_pink1:198,deep_pink9:199,magenta6:200,magenta1:201,orange_red1:202,indian_red1:203,indian_red3:204,hot_pink5:205,hot_pink:206,medium_orchid2:207,dark_orange:208,salmon1:209,light_coral:210,pale_violet_red1:211,orchid2:212,orchid1:213,orange1:214,sandy_brown:215,light_salmon1:216,light_pink1:217,pink1:218,plum1:219,gold1:220,light_goldenrod4:221,light_goldenrod5:222,navajo_white1:223,misty_rose1:224,thistle1:225,yellow1:226,light_goldenrod1:227,khaki1:228,wheat1:229,cornsilk1:230,grey100:231,grey3:232,grey7:233,grey11:234,grey15:235,grey19:236,grey23:237,grey27:238,grey30:239,grey35:240,grey39:241,grey42:242,grey46:243,grey50:244,grey54:245,grey58:246,grey62:247,grey66:248,grey70:249,grey74:250,grey78:251,grey82:252,grey85:253,grey89:254,grey93:255}),Is=[`default`,...Object.keys(Fs)];var Ls;const Rs=[`l`,`c`,`h`,`alpha`],zs=Object.freeze({hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:0});Object.freeze({hueShift:0,chromaScale:1,lightnessScale:-1,lightnessShift:1});function Bs(e){return e.hueShift%360==0&&e.chromaScale===1&&e.lightnessScale===1&&e.lightnessShift===0}function Vs(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Hs(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function Us(e){return e<0?0:e>1?1:e}const Ws=1e-4,Gs=1e-7,Ks=(e,t)=>e<Gs?0:t,qs=(e,t,n)=>e*(1-n)+t*n,Js=e=>{let t=e%360;return t<0?t+360:t};function Ys(e,t,n){return e>=-Ws&&e<=1+Ws&&t>=-Ws&&t<=1+Ws&&n>=-Ws&&n<=1+Ws}var Xs=class{l;c;h;alpha;constructor(e,t,n,r=1){if(this.l=e,this.c=t,this.h=n,this.alpha=r,!Number.isFinite(e))throw RangeError(`Oklch.l must be finite; got ${e}`);if(!Number.isFinite(t))throw RangeError(`Oklch.c must be finite; got ${t}`);if(!Number.isFinite(n))throw RangeError(`Oklch.h must be finite; got ${n}`);if(!Number.isFinite(r)||r<0||r>1)throw RangeError(`Oklch.alpha must be a finite number in [0,1]; got ${r}`)}static fromRgba(e){let[t,n,r,i]=e.normalized,a=Vs(t),o=Vs(n),s=Vs(r),c=.4122214708*a+.5363325363*o+.0514459929*s,l=.2119034982*a+.6806995451*o+.1073969566*s,u=.0883024619*a+.2817188376*o+.6299787005*s,d=Math.cbrt(c),f=Math.cbrt(l),p=Math.cbrt(u),m=.2104542553*d+.793617785*f-.0040720468*p,h=1.9779984951*d-2.428592205*f+.4505937099*p,g=.0259040371*d+.7827717662*f-.808675766*p,_=Math.sqrt(h*h+g*g),v=Js(180/Math.PI*Math.atan2(g,h));return new Ls(m,_,Ks(_,v),i)}toRgba(){let e=Us(this.l),t=Math.max(0,this.c),n=this.findInGamutChroma(e,t,this.h),{r,g:i,b:a}=this.toLinearRgb(e,n,this.h);return new z(Math.round(Us(Hs(r))*255),Math.round(Us(Hs(i))*255),Math.round(Us(Hs(a))*255),this.alpha)}applyKey(e){if(Bs(e))return this;let t=Us(this.l*e.lightnessScale+e.lightnessShift),n=Math.max(0,this.c*e.chromaScale),r=Js(this.h+e.hueShift);return new Ls(t,n,Ks(n,r),this.alpha)}mix(e,t){if(!(t>=0&&t<=1))throw RangeError(`Oklch.mix: t must be in [0, 1]; got ${t}`);return this.#e(e,t,t,t,t)}mixAxes(e,t){for(let e of Rs){let n=t[e];if(!(n>=0&&n<=1))throw RangeError(`Oklch.mixAxes: ${e} weight must be in [0, 1]; got ${n}`)}return this.#e(e,t.l,t.c,t.h,t.alpha)}#e(e,t,n,r,i){let a=this.c>=Gs,o=e.c>=Gs,s=Js(a?this.h:o?e.h:0),c=Js(o?e.h:s),l=c-s,u=l<-180?s-360:s,d=l>180?c-360:c,f=qs(this.c,e.c,n);return new Ls(qs(this.l,e.l,t),f,Ks(f,Js(qs(u,d,r))),qs(this.alpha,e.alpha,i))}deltaE(e){let t=this.h*Math.PI/180,n=e.h*Math.PI/180;return Math.hypot(this.l-e.l,this.c*Math.cos(t)-e.c*Math.cos(n),this.c*Math.sin(t)-e.c*Math.sin(n))}toLinearRgb(e,t,n){let r=Math.PI/180*n,i=t*Math.cos(r),a=t*Math.sin(r),o=e+.3963377774*i+.2158037573*a,s=e-.1055613458*i-.0638541728*a,c=e-.0894841775*i-1.291485548*a,l=o*o*o,u=s*s*s,d=c*c*c;return{r:4.0767416621*l-3.3077115913*u+.2309699292*d,g:-1.2684380046*l+2.6097574011*u-.3413193965*d,b:-.0041960863*l-.7034186147*u+1.707614701*d}}findInGamutChroma(e,t,n){let r=this.toLinearRgb(e,t,n);if(Ys(r.r,r.g,r.b))return t;let i=0,a=t;for(let t=0;t<24;t++){let t=(i+a)/2,r=this.toLinearRgb(e,t,n);Ys(r.r,r.g,r.b)?i=t:a=t}return i}};Ls=Xs;var Zs=class extends Error{ref;constructor(e,t,n){super(`color reference ${JSON.stringify(e)} did not resolve — ${t}`,n),this.ref=e,this.name=`ColorRefError`}};function Qs(e,t){let n=t.trim();if(n.startsWith(`#`))try{return bs(n)}catch(e){throw e instanceof ns?new Zs(t,e.message,{cause:e}):e}let r=e.get(n);if(r===void 0)throw new Zs(t,`no such variable in palette ${JSON.stringify(e.name)}`+$s(e,n));return r}function $s(e,t){let n=t.split(`-`),r=[...e.vars.keys()].filter(e=>n.some(t=>t!==``&&e.includes(t))).slice(0,8);return r.length===0?``:`; did you mean: ${r.join(`, `)}`}function ec(e){let t=e.red/255,n=e.green/255,r=e.blue/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=(i+a)/2,s=i-a;if(s===0)return{h:0,s:0,l:o};let c=s/(o>.5?2-i-a:i+a),l;return l=i===t?(n-r)/s%6:i===n?(r-t)/s+2:(t-n)/s+4,l=(l*60+360)%360,{h:l,s:c,l:o}}function tc(e){let t=Math.round(e);return t<0?0:t>255?255:t}function nc(e){let{h:t,s:n,l:r}=e;if(n===0){let e=tc(r*255);return new z(e,e,e)}let i=(1-Math.abs(2*r-1))*n,a=t/60,o=i*(1-Math.abs(a%2-1)),s=0,c=0,l=0;a<1?[s,c,l]=[i,o,0]:a<2?[s,c,l]=[o,i,0]:a<3?[s,c,l]=[0,i,o]:a<4?[s,c,l]=[0,o,i]:a<5?[s,c,l]=[o,0,i]:[s,c,l]=[i,0,o];let u=r-i/2;return new z(tc((s+u)*255),tc((c+u)*255),tc((l+u)*255))}function rc(e){return e<0?0:e>1?1:e}function ic(e,t){let n=ec(e);return n.l=rc(n.l-.1*t),nc(n)}function ac(e,t,n){return xs(t,e,rc(n))}function oc(e,t=Bo){return Vo(dc(e,t))>.179?new z(0,0,0):new z(255,255,255)}function sc(e,t,n=4.5,r=B.TRUECOLOR,i=Bo,a){let o=dc(t,i),s=pc(e,o,n,oc(o)),c=fc(r,a);if(c===void 0)return s;let l=uc(c,o);return Ho(uc(c,s),l)>=n?s:c.written.get(c.shown.matchReadable(e.compositeOver(o),l,n))}function cc(e,t,n,r=Bo,i){let a=dc(e,r),o=fc(t,i),s=e=>uc(o,dc(e,r));if(n(s(a),s))return a;let c=o?.shown.matchWhere(a,e=>n(e,s));return c===void 0?void 0:o.written.get(c)}function lc(e,t,n=Bo,r){return uc(fc(t,r),dc(e,n))}function uc(e,t){return e===void 0?t:V.fromRgba(t).downgrade(e.depth).getTruecolor(e.terminal)}function dc(e,t){if(t.alpha!==1)throw RangeError(`a contrast substrate is the opaque surface under a translucent background; got ${t.hex}`);return e.compositeOver(t)}function fc(e,t){let n=Ms(t,e);switch(e){case B.EIGHT_BIT:return{depth:e,terminal:n,written:Ns(e),shown:Ns(e)};case B.STANDARD:case B.WINDOWS:return{depth:e,terminal:n,written:Ns(e),shown:n.ansiColors};case B.TRUECOLOR:case B.DEFAULT:return}}function pc(e,t,n,r){let i=e.compositeOver(t);if(Ho(i,t)>=n)return i;let a=Xs.fromRgba(i),o=+(Vo(r)>.179);if(Ho(new Xs(o,a.c,a.h,a.alpha).toRgba(),t)<n)return oc(t);let s=a.l,c=o;for(let e=0;e<20;e++){let e=(s+c)/2;Ho(new Xs(e,a.c,a.h,a.alpha).toRgba(),t)>=n?c=e:s=e}return new Xs(c,a.c,a.h,a.alpha).toRgba()}const mc=.7,hc=[`primary`,`secondary`,`accent`,`success`,`warning`,`error`];function gc(e,t,n){let r=Fo(e,n.background),i=t=>{let i=n[t];if(i.alpha===0)throw RangeError(`palette ${JSON.stringify(e)}: ${t} is fully transparent (${i.hex}), so there is no colour to derive the palette from`);return r(i)},a={primary:i(`primary`),secondary:i(`secondary`),accent:i(`accent`),success:i(`success`),warning:i(`warning`),error:i(`error`),background:n.background,foreground:i(`foreground`)},o=new Map;o.set(`background`,a.background),o.set(`foreground`,a.foreground);for(let e of hc)o.set(e,a[e]);o.set(`foreground-muted`,xs(a.foreground,a.background,mc)),o.set(`background-muted`,xs(a.background,a.foreground,mc)),o.set(`surface`,xs(a.background,a.foreground,.05));let s=oc(a.background);for(let e of hc){let t=a[e],n=xs(t,a.background,mc);o.set(`${e}-muted`,n),o.set(`text-${e}`,_c(ac(t,s,.66),n,a.background)),o.set(`on-${e}`,oc(t))}return new Po(e,t,o)}function _c(e,t,n){return pc(e,t,4.5,oc(n))}const vc={name:`atom-one-dark`,dark:!0,ansi:{black:`#282C34`,red:`#E06C75`,green:`#98C379`,yellow:`#E5C07B`,blue:`#61AFEF`,magenta:`#C678DD`,cyan:`#56B6C2`,white:`#DCDFE4`,brightBlack:`#5D677A`,brightRed:`#E06C75`,brightGreen:`#98C379`,brightYellow:`#E5C07B`,brightBlue:`#61AFEF`,brightMagenta:`#C678DD`,brightCyan:`#56B6C2`,brightWhite:`#DCDFE4`},vars:{accent:`#A378C2`,"accent-darken-1":`#8E65AD`,"accent-darken-2":`#7A5299`,"accent-darken-3":`#674085`,"accent-lighten-1":`#B78BD6`,"accent-lighten-2":`#CC9FEC`,"accent-lighten-3":`#E2B3FF`,"accent-muted":`#4C425E`,background:`#282C34`,"background-darken-1":`#181C23`,"background-darken-2":`#050A14`,"background-darken-3":`#000000`,"background-lighten-1":`#383C44`,"background-lighten-2":`#494D56`,"background-lighten-3":`#5B5F68`,"block-cursor-background":`#61AFEF`,"block-cursor-blurred-background":`#61AFEF4C`,"block-cursor-blurred-foreground":`#ABB2BF`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#61AFEF`,"border-blurred":`#353B47`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#ABB2BF`,error:`#EF6262`,"error-darken-1":`#D84D50`,"error-darken-2":`#C1373E`,"error-darken-3":`#AA1F2E`,"error-lighten-1":`#FF7674`,"error-lighten-2":`#FF8B87`,"error-lighten-3":`#FFA09B`,"error-muted":`#643C41`,"footer-background":`#4F5666`,"footer-description-background":`#00000000`,"footer-description-foreground":`#ABB2BF`,"footer-foreground":`#ABB2BF`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#A378C2`,foreground:`#ABB2BF`,"foreground-darken-1":`#979DAA`,"foreground-darken-2":`#838A96`,"foreground-darken-3":`#707783`,"foreground-disabled":`#ABB2BF60`,"foreground-lighten-1":`#BFC6D3`,"foreground-lighten-2":`#D4DBE8`,"foreground-lighten-3":`#E9F0FE`,"foreground-muted":`#ABB2BF99`,"input-cursor-background":`#ABB2BF`,"input-cursor-foreground":`#282C34`,"input-selection-background":`#77C3FF66`,"link-background":`#00000000`,"link-background-hover":`#61AFEF`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#61AFEF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#61AFEF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#61AFEF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#ABB2BF`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#ABB2BF`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#ABB2BF99`,panel:`#4F5666`,"panel-darken-1":`#3D4453`,"panel-darken-2":`#2C3342`,"panel-darken-3":`#1C2331`,"panel-lighten-1":`#616878`,"panel-lighten-2":`#737A8B`,"panel-lighten-3":`#868E9F`,primary:`#61AFEF`,"primary-background":`#4F5B6A`,"primary-background-darken-1":`#3F4D5D`,"primary-background-darken-2":`#303F50`,"primary-background-darken-3":`#303F50`,"primary-background-lighten-1":`#5E6A77`,"primary-background-lighten-2":`#6E7884`,"primary-background-lighten-3":`#7D8791`,"primary-darken-1":`#489BD9`,"primary-darken-2":`#2C87C4`,"primary-darken-3":`#0074AF`,"primary-lighten-1":`#77C3FF`,"primary-lighten-2":`#8ED8FF`,"primary-lighten-3":`#A4EDFF`,"primary-muted":`#39536C`,scrollbar:`#355674`,"scrollbar-active":`#61AFEF`,"scrollbar-background":`#181C23`,"scrollbar-background-active":`#181C23`,"scrollbar-background-hover":`#181C23`,"scrollbar-corner-color":`#181C23`,"scrollbar-hover":`#3C6589`,secondary:`#C678DD`,"secondary-background":`#5B5567`,"secondary-background-darken-1":`#4D465A`,"secondary-background-darken-2":`#3F374D`,"secondary-background-darken-3":`#3F374D`,"secondary-background-lighten-1":`#6A6475`,"secondary-background-lighten-2":`#787382`,"secondary-background-lighten-3":`#87828F`,"secondary-darken-1":`#B064C7`,"secondary-darken-2":`#9B50B3`,"secondary-darken-3":`#873D9E`,"secondary-lighten-1":`#DB8CF2`,"secondary-lighten-2":`#F1A0FF`,"secondary-lighten-3":`#FFB5FF`,"secondary-muted":`#574266`,success:`#62F062`,"success-darken-1":`#48DA4D`,"success-darken-2":`#29C438`,"success-darken-3":`#00AF22`,"success-lighten-1":`#7AFF76`,"success-lighten-2":`#91FF8A`,"success-lighten-3":`#A8FF9F`,"success-muted":`#396641`,surface:`#3B414D`,"surface-active":`#484E5B`,"surface-darken-1":`#2A303B`,"surface-darken-2":`#1A202B`,"surface-darken-3":`#09101B`,"surface-lighten-1":`#4C525E`,"surface-lighten-2":`#5E6471`,"surface-lighten-3":`#707684`,text:`#FFFFFFDD`,"text-accent":`#C2A5D6`,"text-disabled":`#FFFFFF60`,"text-error":`#F59797`,"text-muted":`#FFFFFF99`,"text-primary":`#96CAF4`,"text-secondary":`#D9A5E8`,"text-success":`#97F597`,"text-warning":`#E9CC92`,warning:`#DDB25B`,"warning-darken-1":`#C79D47`,"warning-darken-2":`#B28A34`,"warning-darken-3":`#9C7721`,"warning-lighten-1":`#F4C66E`,"warning-lighten-2":`#FFDB82`,"warning-lighten-3":`#FFF096`,"warning-muted":`#5E543F`}},yc={name:`atom-one-light`,dark:!1,ansi:{black:`#383A42`,red:`#E45649`,green:`#50A14F`,yellow:`#C18401`,blue:`#0184BC`,magenta:`#A626A4`,cyan:`#0997B3`,white:`#BABABA`,brightBlack:`#4F525E`,brightRed:`#E06C75`,brightGreen:`#98C379`,brightYellow:`#D8B36E`,brightBlue:`#61AFEF`,brightMagenta:`#C678DD`,brightCyan:`#56B6C2`,brightWhite:`#FFFFFF`},vars:{accent:`#BE9232`,"accent-darken-1":`#A97E1D`,"accent-darken-2":`#936B01`,"accent-darken-3":`#7E5900`,"accent-lighten-1":`#D5A545`,"accent-lighten-2":`#EBB959`,"accent-lighten-3":`#FFCE6C`,"accent-muted":`#E8DABE`,background:`#FAFAFA`,"background-darken-1":`#E4E4E4`,"background-darken-2":`#CFCFCF`,"background-darken-3":`#BABABA`,"background-lighten-1":`#FFFFFF`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#4078F2`,"block-cursor-blurred-background":`#4078F24C`,"block-cursor-blurred-foreground":`#383A42`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#4078F2`,"border-blurred":`#D8D8D8`,"button-color-foreground":`#000000DD`,"button-foreground":`#383A42`,error:`#F13F3F`,"error-darken-1":`#D9232D`,"error-darken-2":`#C1001D`,"error-darken-3":`#A9000D`,"error-lighten-1":`#FF5650`,"error-lighten-2":`#FF6C62`,"error-lighten-3":`#FF8275`,"error-muted":`#F7C1C1`,"footer-background":`#CCCCCC`,"footer-description-background":`#00000000`,"footer-description-foreground":`#383A42`,"footer-foreground":`#383A42`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#BF9232`,foreground:`#383A42`,"foreground-darken-1":`#272931`,"foreground-darken-2":`#181A21`,"foreground-darken-3":`#040612`,"foreground-disabled":`#383A4260`,"foreground-lighten-1":`#494B53`,"foreground-lighten-2":`#5A5C65`,"foreground-lighten-3":`#6D6F78`,"foreground-muted":`#383A4299`,"input-cursor-background":`#383A42`,"input-cursor-foreground":`#FAFAFA`,"input-selection-background":`#5C8AFF66`,"link-background":`#00000000`,"link-background-hover":`#4078F2`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#4078F2`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#4078F2`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#4078F2`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#383A42`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#383A42`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#383A4299`,panel:`#CCCCCC`,"panel-darken-1":`#B7B7B7`,"panel-darken-2":`#A3A3A3`,"panel-darken-3":`#8F8F8F`,"panel-lighten-1":`#E1E1E1`,"panel-lighten-2":`#F6F6F6`,"panel-lighten-3":`#FFFFFF`,primary:`#4078F2`,"primary-background":`#4078F2`,"primary-background-darken-1":`#1865DC`,"primary-background-darken-2":`#0053C6`,"primary-background-darken-3":`#0043B1`,"primary-background-lighten-1":`#5C8AFF`,"primary-background-lighten-2":`#759EFF`,"primary-background-lighten-3":`#8DB2FF`,"primary-darken-1":`#1865DC`,"primary-darken-2":`#0053C6`,"primary-darken-3":`#0043B1`,"primary-lighten-1":`#5C8AFF`,"primary-lighten-2":`#759EFF`,"primary-lighten-3":`#8DB2FF`,"primary-muted":`#C2D3F7`,scrollbar:`#A2B8E9`,"scrollbar-active":`#4078F2`,"scrollbar-background":`#E4E4E4`,"scrollbar-background-active":`#E4E4E4`,"scrollbar-background-hover":`#E4E4E4`,"scrollbar-corner-color":`#E4E4E4`,"scrollbar-hover":`#92AEEB`,secondary:`#A626A4`,"secondary-background":`#A626A4`,"secondary-background-darken-1":`#90008F`,"secondary-background-darken-2":`#7B007C`,"secondary-background-darken-3":`#670069`,"secondary-background-lighten-1":`#BB3EB8`,"secondary-background-lighten-2":`#D154CD`,"secondary-background-lighten-3":`#E769E2`,"secondary-darken-1":`#90008F`,"secondary-darken-2":`#7B007C`,"secondary-darken-3":`#670069`,"secondary-lighten-1":`#BB3EB8`,"secondary-lighten-2":`#D154CD`,"secondary-lighten-3":`#E769E2`,"secondary-muted":`#E0BAE0`,success:`#6BF23F`,"success-darken-1":`#52DC25`,"success-darken-2":`#36C600`,"success-darken-3":`#05B100`,"success-lighten-1":`#83FF55`,"success-lighten-2":`#9BFF6B`,"success-lighten-3":`#B2FF80`,"success-muted":`#CFF7C1`,surface:`#E0E0E0`,"surface-active":`#F1F1F1`,"surface-darken-1":`#CACACA`,"surface-darken-2":`#B6B6B6`,"surface-darken-3":`#A2A2A2`,"surface-lighten-1":`#F5F5F5`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#7E6021`,"text-disabled":`#00000060`,"text-error":`#9F2929`,"text-muted":`#00000099`,"text-primary":`#2A4F9F`,"text-secondary":`#6D196C`,"text-success":`#479F29`,"text-warning":`#8E8F24`,warning:`#D7D938`,"warning-darken-1":`#C1C41C`,"warning-darken-2":`#ABAF00`,"warning-darken-3":`#969B00`,"warning-lighten-1":`#EEEE4E`,"warning-lighten-2":`#FFFF64`,"warning-lighten-3":`#FFFF79`,"warning-muted":`#EFF0BF`}},bc={name:`catppuccin-frappe`,dark:!0,ansi:{black:`#51576D`,red:`#E78284`,green:`#A6D189`,yellow:`#E5C890`,blue:`#8CAAEE`,magenta:`#F4B8E4`,cyan:`#81C8BE`,white:`#B5BFE2`,brightBlack:`#626880`,brightRed:`#EDA0A2`,brightGreen:`#B9DBA2`,brightYellow:`#ECD7AE`,brightBlue:`#ADC2F3`,brightMagenta:`#F38ED8`,brightCyan:`#98D2CA`,brightWhite:`#A5ADCE`},vars:{accent:`#F4B8E4`,"accent-darken-1":`#DEA3CE`,"accent-darken-2":`#C98FBA`,"accent-darken-3":`#B47BA5`,"accent-lighten-1":`#FFCCF9`,"accent-lighten-2":`#FFE2FF`,"accent-lighten-3":`#FFF7FF`,"accent-muted":`#6A5B75`,background:`#303446`,"background-darken-1":`#1F2435`,"background-darken-2":`#101424`,"background-darken-3":`#000016`,"background-lighten-1":`#404457`,"background-lighten-2":`#525669`,"background-lighten-3":`#64687C`,"block-cursor-background":`#CA9EE6`,"block-cursor-blurred-background":`#CA9EE64C`,"block-cursor-blurred-foreground":`#C6D0F5`,"block-cursor-foreground":`#292C3C`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#BABBF1`,"border-blurred":`#838BA7`,"button-color-foreground":`#303446`,"button-foreground":`#C6D0F5`,error:`#E68284`,"error-darken-1":`#D06E71`,"error-darken-2":`#BA5A5E`,"error-darken-3":`#A4474C`,"error-lighten-1":`#FD9697`,"error-lighten-2":`#FFAAAB`,"error-lighten-3":`#FFBFBF`,"error-muted":`#664B58`,"footer-background":`#51576D`,"footer-description-background":`#00000000`,"footer-description-foreground":`#C6D0F5`,"footer-foreground":`#C6D0F5`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#F4B8E4`,foreground:`#C6D0F5`,"foreground-darken-1":`#B1BBDF`,"foreground-darken-2":`#9CA7CA`,"foreground-darken-3":`#8993B5`,"foreground-disabled":`#C6D0F560`,"foreground-lighten-1":`#DBE5FF`,"foreground-lighten-2":`#F0FAFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#C6D0F599`,"input-cursor-background":`#F2D5CF`,"input-cursor-foreground":`#232634`,"input-selection-background":`#949CBB4C`,"link-background":`#00000000`,"link-background-hover":`#CA9EE6`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#CA9EE6`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#CA9EE6`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#CA9EE6`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#C6D0F5`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#C6D0F5`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#C6D0F599`,panel:`#51576D`,"panel-darken-1":`#3F455A`,"panel-darken-2":`#2E3448`,"panel-darken-3":`#1D2437`,"panel-lighten-1":`#63697F`,"panel-lighten-2":`#767B93`,"panel-lighten-3":`#898FA7`,primary:`#CA9EE6`,"primary-background":`#625F76`,"primary-background-darken-1":`#54516A`,"primary-background-darken-2":`#47435E`,"primary-background-darken-3":`#47435E`,"primary-background-lighten-1":`#706D82`,"primary-background-lighten-2":`#7E7B8E`,"primary-background-lighten-3":`#8C899A`,"primary-darken-1":`#B58AD0`,"primary-darken-2":`#A076BB`,"primary-darken-3":`#8C63A7`,"primary-lighten-1":`#DFB2FB`,"primary-lighten-2":`#F4C7FF`,"primary-lighten-3":`#FFDCFF`,"primary-muted":`#5E5376`,scrollbar:`#63547B`,"scrollbar-active":`#CA9EE6`,"scrollbar-background":`#1F2435`,"scrollbar-background-active":`#1F2435`,"scrollbar-background-hover":`#1F2435`,"scrollbar-corner-color":`#1F2435`,"scrollbar-hover":`#74618D`,secondary:`#EE9F76`,"secondary-background":`#666067`,"secondary-background-darken-1":`#59525A`,"secondary-background-darken-2":`#4C444D`,"secondary-background-darken-3":`#4C444D`,"secondary-background-lighten-1":`#746E75`,"secondary-background-lighten-2":`#817C82`,"secondary-background-lighten-3":`#8F8A8F`,"secondary-darken-1":`#D88B63`,"secondary-darken-2":`#C27750`,"secondary-darken-3":`#AC643E`,"secondary-lighten-1":`#FFB389`,"secondary-lighten-2":`#FFC89D`,"secondary-lighten-3":`#FFDDB1`,"secondary-muted":`#695454`,success:`#A6D189`,"success-darken-1":`#91BC75`,"success-darken-2":`#7DA762`,"success-darken-3":`#6A9350`,"success-lighten-1":`#BAE69C`,"success-lighten-2":`#CFFBB1`,"success-lighten-3":`#E5FFC5`,"success-muted":`#53635A`,surface:`#414559`,"surface-active":`#4F5267`,"surface-darken-1":`#303447`,"surface-darken-2":`#1F2436`,"surface-darken-3":`#101526`,"surface-lighten-1":`#52566B`,"surface-lighten-2":`#64687E`,"surface-lighten-3":`#777B91`,text:`#FFFFFFDD`,"text-accent":`#F7D0ED`,"text-disabled":`#FFFFFF60`,"text-error":`#EFACAD`,"text-muted":`#FFFFFF99`,"text-primary":`#DCBEEE`,"text-secondary":`#F4BFA4`,"text-success":`#C4E0B1`,"text-warning":`#EDDAB5`,warning:`#E4C890`,"warning-darken-1":`#CFB37C`,"warning-darken-2":`#BA9F69`,"warning-darken-3":`#A58B56`,"warning-lighten-1":`#FADCA4`,"warning-lighten-2":`#FFF2B8`,"warning-lighten-3":`#FFFFCD`,"warning-muted":`#66605C`}},xc={name:`catppuccin-latte`,dark:!1,ansi:{black:`#BCC0CC`,red:`#D20F39`,green:`#40A02B`,yellow:`#DF8E1D`,blue:`#1E66F5`,magenta:`#EA76CB`,cyan:`#179299`,white:`#5C5F77`,brightBlack:`#ACB0BE`,brightRed:`#E7103F`,brightGreen:`#46B02F`,brightYellow:`#E49931`,brightBlue:`#3878F6`,brightMagenta:`#EF95D7`,brightCyan:`#19A1A8`,brightWhite:`#6C6F85`},vars:{accent:`#FD640B`,"accent-darken-1":`#E54F00`,"accent-darken-2":`#CC3900`,"accent-darken-3":`#B42200`,"accent-lighten-1":`#FF7825`,"accent-lighten-2":`#FF8D3A`,"accent-lighten-3":`#FFA24F`,"accent-muted":`#F3C6AE`,background:`#EFF1F5`,"background-darken-1":`#D9DBDF`,"background-darken-2":`#C4C6CA`,"background-darken-3":`#B0B2B5`,"background-lighten-1":`#FFFFFF`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#8839EF`,"block-cursor-blurred-background":`#8839EF4C`,"block-cursor-blurred-foreground":`#4C4F69`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#8839EF`,"border-blurred":`#DEE1E7`,"button-color-foreground":`#EFF1F5`,"button-foreground":`#4C4F69`,error:`#D10F39`,"error-darken-1":`#BA0028`,"error-darken-2":`#A20019`,"error-darken-3":`#8A0008`,"error-lighten-1":`#EA324A`,"error-lighten-2":`#FF4B5B`,"error-lighten-3":`#FF626E`,"error-muted":`#E6ADBC`,"footer-background":`#CCD0DA`,"footer-description-background":`#00000000`,"footer-description-foreground":`#4C4F69`,"footer-foreground":`#4C4F69`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FE640B`,foreground:`#4C4F69`,"foreground-darken-1":`#3A3D56`,"foreground-darken-2":`#292D45`,"foreground-darken-3":`#191D34`,"foreground-disabled":`#4C4F6960`,"foreground-lighten-1":`#5E607B`,"foreground-lighten-2":`#70738F`,"foreground-lighten-3":`#8386A2`,"foreground-muted":`#4C4F6999`,"input-cursor-background":`#4C4F69`,"input-cursor-foreground":`#EFF1F5`,"input-selection-background":`#9E4DFF66`,"link-background":`#00000000`,"link-background-hover":`#8839EF`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#8839EF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#8839EF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#8839EF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#4C4F69`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#4C4F69`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#4C4F6999`,panel:`#CCD0DA`,"panel-darken-1":`#B7BBC5`,"panel-darken-2":`#A3A6B0`,"panel-darken-3":`#8F939C`,"panel-lighten-1":`#E1E5EF`,"panel-lighten-2":`#F6FAFF`,"panel-lighten-3":`#FFFFFF`,primary:`#8839EF`,"primary-background":`#8839EF`,"primary-background-darken-1":`#7122D9`,"primary-background-darken-2":`#5901C3`,"primary-background-darken-3":`#4000AE`,"primary-background-lighten-1":`#9E4DFF`,"primary-background-lighten-2":`#B562FF`,"primary-background-lighten-3":`#CC76FF`,"primary-darken-1":`#7122D9`,"primary-darken-2":`#5901C3`,"primary-darken-3":`#4000AE`,"primary-lighten-1":`#9E4DFF`,"primary-lighten-2":`#B562FF`,"primary-lighten-3":`#CC76FF`,"primary-muted":`#D0B9F3`,scrollbar:`#B89AE5`,"scrollbar-active":`#8839EF`,"scrollbar-background":`#D9DBDF`,"scrollbar-background-active":`#D9DBDF`,"scrollbar-background-hover":`#D9DBDF`,"scrollbar-corner-color":`#D9DBDF`,"scrollbar-hover":`#B08AE7`,secondary:`#DB8A78`,"secondary-background":`#DB8A78`,"secondary-background-darken-1":`#C57665`,"secondary-background-darken-2":`#B06353`,"secondary-background-darken-3":`#9A5041`,"secondary-background-lighten-1":`#F29D8B`,"secondary-background-lighten-2":`#FFB29E`,"secondary-background-lighten-3":`#FFC7B3`,"secondary-darken-1":`#C57665`,"secondary-darken-2":`#B06353`,"secondary-darken-3":`#9A5041`,"secondary-lighten-1":`#F29D8B`,"secondary-lighten-2":`#FFB29E`,"secondary-lighten-3":`#FFC7B3`,"secondary-muted":`#E9D2CF`,success:`#40A02B`,"success-darken-1":`#278B14`,"success-darken-2":`#007800`,"success-darken-3":`#006400`,"success-lighten-1":`#56B43F`,"success-lighten-2":`#6BC952`,"success-lighten-3":`#81DE66`,"success-muted":`#BAD8B8`,surface:`#E6E9EF`,"surface-active":`#F7FAFF`,"surface-darken-1":`#D0D3D9`,"surface-darken-2":`#BCBFC4`,"surface-darken-3":`#A7AAB0`,"surface-lighten-1":`#FBFEFF`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#A74207`,"text-disabled":`#00000060`,"text-error":`#8A0925`,"text-muted":`#00000099`,"text-primary":`#59259D`,"text-secondary":`#915B4F`,"text-success":`#2A691C`,"text-warning":`#935D13`,warning:`#DE8E1D`,"warning-darken-1":`#C77A00`,"warning-darken-2":`#B06700`,"warning-darken-3":`#9A5500`,"warning-lighten-1":`#F6A134`,"warning-lighten-2":`#FFB648`,"warning-lighten-3":`#FFCA5D`,"warning-muted":`#EAD3B4`}},Sc={name:`catppuccin-macchiato`,dark:!0,ansi:{black:`#494D64`,red:`#ED8796`,green:`#A6DA95`,yellow:`#EED49F`,blue:`#8AADF4`,magenta:`#F5BDE6`,cyan:`#8BD5CA`,white:`#B8C0E0`,brightBlack:`#5B6078`,brightRed:`#F2A7B2`,brightGreen:`#BDE3B0`,brightYellow:`#F4E3C1`,brightBlue:`#ADC5F7`,brightMagenta:`#F493DA`,brightCyan:`#A5DED6`,brightWhite:`#A5ADCB`},vars:{accent:`#F5BDE6`,"accent-darken-1":`#DFA8D0`,"accent-darken-2":`#CA94BC`,"accent-darken-3":`#B580A7`,"accent-lighten-1":`#FFD1FB`,"accent-lighten-2":`#FFE7FF`,"accent-lighten-3":`#FFFCFF`,"accent-muted":`#62546D`,background:`#24273A`,"background-darken-1":`#141729`,"background-darken-2":`#00021A`,"background-darken-3":`#000007`,"background-lighten-1":`#34374B`,"background-lighten-2":`#45485C`,"background-lighten-3":`#57596F`,"block-cursor-background":`#C6A0F6`,"block-cursor-blurred-background":`#C6A0F64C`,"block-cursor-blurred-foreground":`#CAD3F5`,"block-cursor-foreground":`#1E2030`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#B7BDF8`,"border-blurred":`#737994`,"button-color-foreground":`#24273A`,"button-foreground":`#CAD3F5`,error:`#ED8796`,"error-darken-1":`#D67382`,"error-darken-2":`#C05F6F`,"error-darken-3":`#AB4C5D`,"error-lighten-1":`#FF9BA9`,"error-lighten-2":`#FFAFBE`,"error-lighten-3":`#FFC4D3`,"error-muted":`#604355`,"footer-background":`#494D64`,"footer-description-background":`#00000000`,"footer-description-foreground":`#CAD3F5`,"footer-foreground":`#CAD3F5`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#F5BDE6`,foreground:`#CAD3F5`,"foreground-darken-1":`#B5BEDF`,"foreground-darken-2":`#A0A9CA`,"foreground-darken-3":`#8C95B5`,"foreground-disabled":`#CAD3F560`,"foreground-lighten-1":`#DFE8FF`,"foreground-lighten-2":`#F4FDFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#CAD3F599`,"input-cursor-background":`#F4DBD6`,"input-cursor-foreground":`#181926`,"input-selection-background":`#838BA74C`,"link-background":`#00000000`,"link-background-hover":`#C6A0F6`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#C6A0F6`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#C6A0F6`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#C6A0F6`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#CAD3F5`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#CAD3F5`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#CAD3F599`,panel:`#494D64`,"panel-darken-1":`#373B51`,"panel-darken-2":`#262B40`,"panel-darken-3":`#161C2F`,"panel-lighten-1":`#5A5E76`,"panel-lighten-2":`#6D7189`,"panel-lighten-3":`#80849D`,primary:`#C6A0F6`,"primary-background":`#59566F`,"primary-background-darken-1":`#4A4762`,"primary-background-darken-2":`#3C3956`,"primary-background-darken-3":`#3C3956`,"primary-background-lighten-1":`#67657C`,"primary-background-lighten-2":`#767488`,"primary-background-lighten-3":`#858395`,"primary-darken-1":`#B08CE0`,"primary-darken-2":`#9C78CB`,"primary-darken-3":`#8865B6`,"primary-lighten-1":`#DBB4FF`,"primary-lighten-2":`#F1C9FF`,"primary-lighten-3":`#FFDEFF`,"primary-muted":`#544B72`,scrollbar:`#5B4D7B`,"scrollbar-active":`#C6A0F6`,"scrollbar-background":`#141729`,"scrollbar-background-active":`#141729`,"scrollbar-background-hover":`#141729`,"scrollbar-corner-color":`#141729`,"scrollbar-hover":`#6D5B8F`,secondary:`#F4A97F`,"secondary-background":`#5F5760`,"secondary-background-darken-1":`#514852`,"secondary-background-darken-2":`#433A44`,"secondary-background-darken-3":`#433A44`,"secondary-background-lighten-1":`#6D666E`,"secondary-background-lighten-2":`#7B757C`,"secondary-background-lighten-3":`#89838A`,"secondary-darken-1":`#DE946B`,"secondary-darken-2":`#C88159`,"secondary-darken-3":`#B26E47`,"secondary-lighten-1":`#FFBD92`,"secondary-lighten-2":`#FFD2A6`,"secondary-lighten-3":`#FFE7BB`,"secondary-muted":`#624E4E`,success:`#A6DA95`,"success-darken-1":`#91C481`,"success-darken-2":`#7DB06E`,"success-darken-3":`#6A9C5B`,"success-lighten-1":`#BAEFA9`,"success-lighten-2":`#CFFFBD`,"success-lighten-3":`#E5FFD2`,"success-muted":`#4B5C55`,surface:`#363A4F`,"surface-active":`#43475D`,"surface-darken-1":`#25293D`,"surface-darken-2":`#151A2D`,"surface-darken-3":`#03061D`,"surface-lighten-1":`#474B60`,"surface-lighten-2":`#595C73`,"surface-lighten-3":`#6B6F86`,text:`#FFFFFFDD`,"text-accent":`#F8D3EE`,"text-disabled":`#FFFFFF60`,"text-error":`#F3AFB9`,"text-muted":`#FFFFFF99`,"text-primary":`#D9C0F9`,"text-secondary":`#F8C6AA`,"text-success":`#C4E6B9`,"text-warning":`#F3E2BF`,warning:`#EED49F`,"warning-darken-1":`#D8BF8B`,"warning-darken-2":`#C3AA77`,"warning-darken-3":`#AE9664`,"warning-lighten-1":`#FFE9B3`,"warning-lighten-2":`#FFFEC7`,"warning-lighten-3":`#FFFFDD`,"warning-muted":`#605A58`}},Cc={name:`catppuccin-mocha`,dark:!0,ansi:{black:`#45475A`,red:`#F38BA8`,green:`#A6E3A1`,yellow:`#F9E2AF`,blue:`#89B4FA`,magenta:`#F5C2E7`,cyan:`#94E2D5`,white:`#BAC2DE`,brightBlack:`#585B70`,brightRed:`#F7AEC2`,brightGreen:`#C2ECBF`,brightYellow:`#FCD682`,brightBlue:`#AECCFC`,brightMagenta:`#F398DA`,brightCyan:`#B1EAE1`,brightWhite:`#A6ADC8`},vars:{accent:`#F9B387`,"accent-darken-1":`#E39E73`,"accent-darken-2":`#CD8A60`,"accent-darken-3":`#B7774E`,"accent-lighten-1":`#FFC79A`,"accent-lighten-2":`#FFDCAE`,"accent-lighten-3":`#FFF2C3`,"accent-muted":`#5B4642`,background:`#181825`,"background-darken-1":`#040216`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#272735`,"background-lighten-2":`#373746`,"background-lighten-3":`#484857`,"block-cursor-background":`#F5C2E7`,"block-cursor-blurred-background":`#F5C2E74C`,"block-cursor-blurred-foreground":`#CDD6F4`,"block-cursor-foreground":`#1E1E2E`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#B4BEFE`,"border-blurred":`#585B70`,"button-color-foreground":`#181825`,"button-foreground":`#CDD6F4`,error:`#F28FAD`,"error-darken-1":`#DB7A99`,"error-darken-2":`#C66785`,"error-darken-3":`#B05372`,"error-lighten-1":`#FFA3C1`,"error-lighten-2":`#FFB8D6`,"error-lighten-3":`#FFCDEB`,"error-muted":`#593B4D`,"footer-background":`#45475A`,"footer-description-background":`#00000000`,"footer-description-foreground":`#CDD6F4`,"footer-foreground":`#CDD6F4`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FAB387`,foreground:`#CDD6F4`,"foreground-darken-1":`#B8C1DE`,"foreground-darken-2":`#A3ACC9`,"foreground-darken-3":`#8F98B4`,"foreground-disabled":`#CDD6F460`,"foreground-lighten-1":`#E2EBFF`,"foreground-lighten-2":`#F7FFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#CDD6F499`,"input-cursor-background":`#F5E0DC`,"input-cursor-foreground":`#11111B`,"input-selection-background":`#9399B24C`,"link-background":`#00000000`,"link-background-hover":`#F5C2E7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#F5C2E7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#F5C2E7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#F5C2E7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#CDD6F4`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#CDD6F4`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#CDD6F499`,panel:`#45475A`,"panel-darken-1":`#333648`,"panel-darken-2":`#232637`,"panel-darken-3":`#131627`,"panel-lighten-1":`#56586C`,"panel-lighten-2":`#696A7F`,"panel-lighten-3":`#7B7D92`,primary:`#F5C2E7`,"primary-background":`#564F5E`,"primary-background-darken-1":`#474050`,"primary-background-darken-2":`#393142`,"primary-background-darken-3":`#393142`,"primary-background-lighten-1":`#655F6C`,"primary-background-lighten-2":`#746E7A`,"primary-background-lighten-3":`#837E88`,"primary-darken-1":`#DFADD1`,"primary-darken-2":`#CA99BD`,"primary-darken-3":`#B585A8`,"primary-lighten-1":`#FFD6FC`,"primary-lighten-2":`#FFECFF`,"primary-lighten-3":`#FFFFFF`,"primary-muted":`#5A4B5F`,scrollbar:`#644E69`,"scrollbar-active":`#F5C2E7`,"scrollbar-background":`#040216`,"scrollbar-background-active":`#040216`,"scrollbar-background-hover":`#040216`,"scrollbar-corner-color":`#040216`,"scrollbar-hover":`#7C627E`,secondary:`#CBA6F7`,"secondary-background":`#504C60`,"secondary-background-darken-1":`#413C52`,"secondary-background-darken-2":`#322D44`,"secondary-background-darken-3":`#322D44`,"secondary-background-lighten-1":`#605C6E`,"secondary-background-lighten-2":`#6F6C7C`,"secondary-background-lighten-3":`#7E7B8A`,"secondary-darken-1":`#B592E1`,"secondary-darken-2":`#A17ECC`,"secondary-darken-3":`#8C6BB7`,"secondary-lighten-1":`#E0BAFF`,"secondary-lighten-2":`#F6CFFF`,"secondary-lighten-3":`#FFE4FF`,"secondary-muted":`#4D4264`,success:`#ABE9B3`,"success-darken-1":`#96D39E`,"success-darken-2":`#82BE8B`,"success-darken-3":`#6EAA77`,"success-lighten-1":`#BFFEC7`,"success-lighten-2":`#D5FFDC`,"success-lighten-3":`#EAFFF2`,"success-muted":`#44564F`,surface:`#313244`,"surface-active":`#3E3F51`,"surface-darken-1":`#202233`,"surface-darken-2":`#111223`,"surface-darken-3":`#000014`,"surface-lighten-1":`#414255`,"surface-lighten-2":`#535467`,"surface-lighten-3":`#65667A`,text:`#FFFFFFDD`,"text-accent":`#FBCCAF`,"text-disabled":`#FFFFFF60`,"text-error":`#F6B5C8`,"text-muted":`#FFFFFF99`,"text-primary":`#F8D6EF`,"text-secondary":`#DCC4F9`,"text-success":`#C7F0CC`,"text-warning":`#FBECCA`,warning:`#FAE3B0`,"warning-darken-1":`#E4CD9B`,"warning-darken-2":`#CEB988`,"warning-darken-3":`#B9A574`,"warning-lighten-1":`#FFF8C4`,"warning-lighten-2":`#FFFFD9`,"warning-lighten-3":`#FFFFEF`,"warning-muted":`#5B544E`}},wc=[`black`,`red`,`green`,`yellow`,`blue`,`magenta`,`cyan`,`white`,`brightBlack`,`brightRed`,`brightGreen`,`brightYellow`,`brightBlue`,`brightMagenta`,`brightCyan`,`brightWhite`],Tc=Object.fromEntries(wc.map((e,t)=>[e,Es.get(t).hex])),Ec={black:`#1A1A1A`,red:`#F4005F`,green:`#98E024`,yellow:`#FD971F`,blue:`#9D65FF`,magenta:`#F4005F`,cyan:`#58D1EB`,white:`#C4C5B5`,brightBlack:`#625E4C`,brightRed:`#F4005F`,brightGreen:`#98E024`,brightYellow:`#E0D561`,brightBlue:`#9D65FF`,brightMagenta:`#F4005F`,brightCyan:`#58D1EB`,brightWhite:`#F6F6EF`},Dc={"atom-one-dark":vc,"atom-one-light":yc,"catppuccin-frappe":bc,"catppuccin-latte":xc,"catppuccin-macchiato":Sc,"catppuccin-mocha":Cc,cyberpunk:{name:`cyberpunk`,dark:!0,ansi:Ec,vars:{background:`#070714`,"background-darken-1":`#03030A`,"background-darken-2":`#000003`,"background-darken-3":`#000000`,"background-lighten-1":`#11111E`,"background-lighten-2":`#1A1A2B`,"background-lighten-3":`#25253A`,foreground:`#E2E2FF`,"foreground-darken-1":`#CACAE4`,"foreground-darken-2":`#B3B3CC`,"foreground-darken-3":`#9C9CB5`,"foreground-disabled":`#E2E2FF60`,"foreground-lighten-1":`#EEEEFF`,"foreground-lighten-2":`#F6F6FF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E2E2FF99`,primary:`#00E5FFD9`,"primary-darken-1":`#00CCE6D9`,"primary-darken-2":`#00B2CCD9`,"primary-darken-3":`#0099B3D9`,"primary-lighten-1":`#1AF0FFD9`,"primary-lighten-2":`#33F5FFD9`,"primary-lighten-3":`#4DFAFFD9`,"primary-muted":`#054A5BF4`,"primary-background":`#0A3340`,"primary-background-darken-1":`#072833`,"primary-background-darken-2":`#051E27`,"primary-background-darken-3":`#051E27`,"primary-background-lighten-1":`#0F404F`,"primary-background-lighten-2":`#154E5F`,"primary-background-lighten-3":`#1A5C6F`,secondary:`#FF1E8ECC`,"secondary-darken-1":`#E60A76CC`,"secondary-darken-2":`#CC005FCC`,"secondary-darken-3":`#B20048CC`,"secondary-lighten-1":`#FF3CA2CC`,"secondary-lighten-2":`#FF5AB6CC`,"secondary-lighten-3":`#FF78CACC`,"secondary-muted":`#510E39EF`,"secondary-background":`#3A0A28`,"secondary-background-darken-1":`#2E071F`,"secondary-background-darken-2":`#220517`,"secondary-background-darken-3":`#220517`,"secondary-background-lighten-1":`#470D33`,"secondary-background-lighten-2":`#54103F`,"secondary-background-lighten-3":`#61134B`,accent:`#EEFF00CC`,"accent-darken-1":`#D6E600CC`,"accent-darken-2":`#BECC00CC`,"accent-darken-3":`#A5B200CC`,"accent-lighten-1":`#FFFF26CC`,"accent-lighten-2":`#FFFF4DCC`,"accent-lighten-3":`#FFFF73CC`,"accent-muted":`#4C510EEF`,success:`#39FF14BF`,"success-darken-1":`#23E60ABF`,"success-darken-2":`#0FCC00BF`,"success-darken-3":`#00B200BF`,"success-lighten-1":`#4DFF32BF`,"success-lighten-2":`#69FF5ABF`,"success-lighten-3":`#87FF82BF`,"success-muted":`#164D14F0`,warning:`#FF6E00CC`,"warning-darken-1":`#E65800CC`,"warning-darken-2":`#CC4300CC`,"warning-darken-3":`#B23000CC`,"warning-lighten-1":`#FF8C26CC`,"warning-lighten-2":`#FFA54DCC`,"warning-lighten-3":`#FFBE73CC`,"warning-muted":`#51260EEF`,error:`#FF1133BF`,"error-darken-1":`#E6051EBF`,"error-darken-2":`#CC000CBF`,"error-darken-3":`#B20000BF`,"error-lighten-1":`#FF3758BF`,"error-lighten-2":`#FF5A78BF`,"error-lighten-3":`#FF7D96BF`,"error-muted":`#510A1DF0`,surface:`#0F0F22`,"surface-active":`#161630`,"surface-darken-1":`#08081A`,"surface-darken-2":`#040411`,"surface-darken-3":`#020209`,"surface-lighten-1":`#17172E`,"surface-lighten-2":`#1F1F3C`,"surface-lighten-3":`#28284A`,panel:`#0C0C1E`,"panel-darken-1":`#060614`,"panel-darken-2":`#03030C`,"panel-darken-3":`#010108`,"panel-lighten-1":`#14142C`,"panel-lighten-2":`#1C1C3A`,"panel-lighten-3":`#242448`,scrollbar:`#151535`,"scrollbar-active":`#00E5FFD9`,"scrollbar-background":`#040412`,"scrollbar-background-active":`#040412`,"scrollbar-background-hover":`#040412`,"scrollbar-corner-color":`#040412`,"scrollbar-hover":`#1F1F48`,"block-cursor-background":`#00E5FF`,"block-cursor-blurred-background":`#00E5FF4C`,"block-cursor-blurred-foreground":`#E2E2FF`,"block-cursor-foreground":`#070714`,"block-hover-background":`#00E5FF19`,boost:`#00E5FF0A`,"boost-darken-1":`#00CCE60A`,"boost-darken-2":`#00B2CC0A`,"boost-darken-3":`#0099B30A`,"boost-lighten-1":`#00E5FF0A`,"boost-lighten-2":`#00E5FF0A`,"boost-lighten-3":`#00E5FF0A`,border:`#00E5FFD9`,"border-blurred":`#1A1A35`,"button-color-foreground":`#070714`,"button-foreground":`#E2E2FF`,"footer-background":`#0C0C1E`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E2E2FF`,"footer-foreground":`#E2E2FF`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#00E5FFD9`,"input-cursor-background":`#E2E2FF`,"input-cursor-foreground":`#070714`,"input-selection-background":`#00E5FF40`,"link-background":`#00000000`,"link-background-hover":`#00E5FFD9`,"link-color":`#E2E2FFDD`,"link-color-hover":`#070714`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#00E5FFD9`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#00E5FFD9`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#FF1E8ECC`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E2E2FF`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E2E2FF`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E2E2FF99`,text:`#E2E2FFDD`,"text-accent":`#F4FF66CC`,"text-disabled":`#E2E2FF60`,"text-error":`#FF6677BF`,"text-muted":`#E2E2FF99`,"text-primary":`#66F0FFD9`,"text-secondary":`#FF80B0CC`,"text-success":`#80FF55BF`,"text-warning":`#FFB055CC`}},default:{name:`default`,dark:!0,ansi:Tc,vars:{accent:`#006FB8`,"accent-darken-1":`#005CA3`,"accent-darken-2":`#004B8F`,"accent-darken-3":`#003A7B`,"accent-lighten-1":`#3081CC`,"accent-lighten-2":`#4C95E2`,"accent-lighten-3":`#64A8F7`,"accent-muted":`#002137`,background:`#000000`,"background-darken-1":`#000000`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#161616`,"background-lighten-2":`#252525`,"background-lighten-3":`#353535`,"block-cursor-background":`#006FB8`,"block-cursor-blurred-background":`#006FB84C`,"block-cursor-blurred-foreground":`#FFFFFF`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#006FB8`,"border-blurred":`#191919`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#FFFFFF`,error:`#7F0000`,"error-darken-1":`#6A0000`,"error-darken-2":`#560000`,"error-darken-3":`#450000`,"error-lighten-1":`#961E12`,"error-lighten-2":`#AD3423`,"error-lighten-3":`#C44934`,"error-muted":`#260000`,"footer-background":`#242E35`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FFFFFF`,"footer-foreground":`#FFFFFF`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#006FB8`,foreground:`#FFFFFF`,"foreground-darken-1":`#E9E9E9`,"foreground-darken-2":`#D4D4D4`,"foreground-darken-3":`#BFBFBF`,"foreground-disabled":`#FFFFFF60`,"foreground-lighten-1":`#FFFFFF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#FFFFFF99`,"input-cursor-background":`#FFFFFF`,"input-cursor-foreground":`#000000`,"input-selection-background":`#3081CC66`,"link-background":`#00000000`,"link-background-hover":`#006FB8`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#006FB8`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#006FB8`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#006FB8`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#FFFFFF`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#FFFFFF`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#FFFFFF99`,panel:`#242E35`,"panel-darken-1":`#141E24`,"panel-darken-2":`#000D15`,"panel-darken-3":`#000000`,"panel-lighten-1":`#343E45`,"panel-lighten-2":`#454F57`,"panel-lighten-3":`#566169`,primary:`#006FB8`,"primary-background":`#26333D`,"primary-background-darken-1":`#13212C`,"primary-background-darken-2":`#00101B`,"primary-background-darken-3":`#00101B`,"primary-background-lighten-1":`#39454E`,"primary-background-lighten-2":`#4C575F`,"primary-background-lighten-3":`#5F6970`,"primary-darken-1":`#005CA3`,"primary-darken-2":`#004B8F`,"primary-darken-3":`#003A7B`,"primary-lighten-1":`#3081CC`,"primary-lighten-2":`#4C95E2`,"primary-lighten-3":`#64A8F7`,"primary-muted":`#002137`,scrollbar:`#002C49`,"scrollbar-active":`#006FB8`,"scrollbar-background":`#000000`,"scrollbar-background-active":`#000000`,"scrollbar-background-hover":`#000000`,"scrollbar-corner-color":`#000000`,"scrollbar-hover":`#00375C`,secondary:`#762671`,"secondary-background":`#342A33`,"secondary-background-darken-1":`#221721`,"secondary-background-darken-2":`#110510`,"secondary-background-darken-3":`#110510`,"secondary-background-lighten-1":`#463D45`,"secondary-background-lighten-2":`#585057`,"secondary-background-lighten-3":`#6A6269`,"secondary-darken-1":`#620F5E`,"secondary-darken-2":`#4E004C`,"secondary-darken-3":`#3B003A`,"secondary-lighten-1":`#8A3984`,"secondary-lighten-2":`#9E4C97`,"secondary-lighten-3":`#B360AB`,"secondary-muted":`#230B21`,success:`#008000`,"success-darken-1":`#006C00`,"success-darken-2":`#005900`,"success-darken-3":`#004600`,"success-lighten-1":`#29931C`,"success-lighten-2":`#42A832`,"success-lighten-3":`#58BD46`,"success-muted":`#002600`,surface:`#1E1E1E`,"surface-active":`#2A2A2A`,"surface-darken-1":`#0D0D0D`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2D2D2D`,"surface-lighten-2":`#3E3E3E`,"surface-lighten-3":`#4F4F4F`,text:`#FFFFFFDD`,"text-accent":`#569FD0`,"text-disabled":`#FFFFFF60`,"text-error":`#AB5656`,"text-muted":`#FFFFFF99`,"text-primary":`#569FD0`,"text-secondary":`#A46FA1`,"text-success":`#56AB56`,"text-warning":`#ABAB56`,warning:`#7F8000`,"warning-darken-1":`#6B6D00`,"warning-darken-2":`#575A00`,"warning-darken-3":`#454900`,"warning-lighten-1":`#94931E`,"warning-lighten-2":`#A9A734`,"warning-lighten-3":`#BFBB48`,"warning-muted":`#262600`}},dracula:{name:`dracula`,dark:!0,ansi:{black:`#21222C`,red:`#FF5555`,green:`#50FA7B`,yellow:`#F1FA8C`,blue:`#BD93F9`,magenta:`#FF79C6`,cyan:`#8BE9FD`,white:`#F8F8F2`,brightBlack:`#6272A4`,brightRed:`#FF6E6E`,brightGreen:`#69FF94`,brightYellow:`#FFFFA5`,brightBlue:`#D6ACFF`,brightMagenta:`#FF92DF`,brightCyan:`#A4FFFF`,brightWhite:`#FFFFFF`},vars:{accent:`#FF79C6`,"accent-darken-1":`#E864B1`,"accent-darken-2":`#D24F9D`,"accent-darken-3":`#BC3989`,"accent-lighten-1":`#FF8DDA`,"accent-lighten-2":`#FFA3F0`,"accent-lighten-3":`#FFB8FF`,"accent-muted":`#684161`,background:`#282A36`,"background-darken-1":`#181A25`,"background-darken-2":`#050716`,"background-darken-3":`#000000`,"background-lighten-1":`#383A46`,"background-lighten-2":`#494B58`,"background-lighten-3":`#5B5D6A`,"block-cursor-background":`#BD93F9`,"block-cursor-blurred-background":`#BD93F94C`,"block-cursor-blurred-foreground":`#F8F8F2`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#BD93F9`,"border-blurred":`#252835`,"button-color-foreground":`#282A36`,"button-foreground":`#F8F8F2`,error:`#FE5555`,"error-darken-1":`#E63E43`,"error-darken-2":`#CE2332`,"error-darken-3":`#B70022`,"error-lighten-1":`#FF6A67`,"error-lighten-2":`#FF807A`,"error-lighten-3":`#FF958D`,"error-muted":`#68363F`,"footer-background":`#313442`,"footer-description-background":`#00000000`,"footer-description-foreground":`#F8F8F2`,"footer-foreground":`#F8F8F2`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FF79C6`,foreground:`#F8F8F2`,"foreground-darken-1":`#E2E2DC`,"foreground-darken-2":`#CDCDC7`,"foreground-darken-3":`#B8B8B3`,"foreground-disabled":`#F8F8F260`,"foreground-lighten-1":`#FFFFFF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#F8F8F299`,"input-cursor-background":`#F8F8F2`,"input-cursor-foreground":`#282A36`,"input-selection-background":`#D2A7FF66`,"link-background":`#00000000`,"link-background-hover":`#BD93F9`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#BD93F9`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#BD93F9`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#BD93F9`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#F8F8F2`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#F8F8F2`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#F8F8F299`,panel:`#313442`,"panel-darken-1":`#202431`,"panel-darken-2":`#111421`,"panel-darken-3":`#000012`,"panel-lighten-1":`#414453`,"panel-lighten-2":`#535665`,"panel-lighten-3":`#656878`,primary:`#BD93F9`,"primary-background":`#5A566C`,"primary-background-darken-1":`#4C475F`,"primary-background-darken-2":`#3E3953`,"primary-background-darken-3":`#3E3953`,"primary-background-lighten-1":`#696579`,"primary-background-lighten-2":`#777486`,"primary-background-lighten-3":`#868393`,"primary-darken-1":`#A77FE3`,"primary-darken-2":`#936CCE`,"primary-darken-3":`#7E59B9`,"primary-lighten-1":`#D2A7FF`,"primary-lighten-2":`#E8BBFF`,"primary-lighten-3":`#FED0FF`,"primary-muted":`#544970`,scrollbar:`#5A4A79`,"scrollbar-active":`#BD93F9`,"scrollbar-background":`#181A25`,"scrollbar-background-active":`#181A25`,"scrollbar-background-hover":`#181A25`,"scrollbar-corner-color":`#181A25`,"scrollbar-hover":`#6A568F`,secondary:`#6272A4`,"secondary-background":`#4F5261`,"secondary-background-darken-1":`#3F4353`,"secondary-background-darken-2":`#303446`,"secondary-background-darken-3":`#303446`,"secondary-background-lighten-1":`#5E616F`,"secondary-background-lighten-2":`#6E707D`,"secondary-background-lighten-3":`#7D808B`,"secondary-darken-1":`#4E5F90`,"secondary-darken-2":`#3B4D7C`,"secondary-darken-3":`#283C69`,"secondary-lighten-1":`#7584B8`,"secondary-lighten-2":`#8998CD`,"secondary-lighten-3":`#9DACE2`,"secondary-muted":`#393F57`,success:`#50FA7B`,"success-darken-1":`#2FE467`,"success-darken-2":`#00CE53`,"success-darken-3":`#00B83F`,"success-lighten-1":`#6AFF8F`,"success-lighten-2":`#83FFA3`,"success-lighten-3":`#9BFFB8`,"success-muted":`#34684A`,surface:`#2B2E3B`,"surface-active":`#383B48`,"surface-darken-1":`#1B1E2A`,"surface-darken-2":`#0A0D1B`,"surface-darken-3":`#000009`,"surface-lighten-1":`#3B3E4C`,"surface-lighten-2":`#4C4F5D`,"surface-lighten-3":`#5E6170`,text:`#FFFFFFDD`,"text-accent":`#FFA6D9`,"text-disabled":`#FFFFFF60`,"text-error":`#FF8E8E`,"text-muted":`#FFFFFF99`,"text-primary":`#D3B7FB`,"text-secondary":`#97A1C2`,"text-success":`#8BFBA7`,"text-warning":`#FFD09D`,warning:`#FEB86C`,"warning-darken-1":`#E8A358`,"warning-darken-2":`#D18F45`,"warning-darken-3":`#BB7C33`,"warning-lighten-1":`#FFCC7F`,"warning-lighten-2":`#FFE193`,"warning-lighten-3":`#FFF7A7`,"warning-muted":`#685446`}},flexoki:{name:`flexoki`,dark:!0,ansi:{black:`#100F0F`,red:`#D14D41`,green:`#879A39`,yellow:`#D0A215`,blue:`#4385BE`,magenta:`#CE5D97`,cyan:`#3AA99F`,white:`#878580`,brightBlack:`#575653`,brightRed:`#AF3029`,brightGreen:`#66800B`,brightYellow:`#AD8301`,brightBlue:`#205EA6`,brightMagenta:`#A02F6F`,brightCyan:`#24837B`,brightWhite:`#CECDC3`},vars:{accent:`#9B76C8`,"accent-darken-1":`#8663B3`,"accent-darken-2":`#72509E`,"accent-darken-3":`#5F3E8B`,"accent-lighten-1":`#AF89DD`,"accent-lighten-2":`#C49DF2`,"accent-lighten-3":`#D9B1FF`,"accent-muted":`#392D46`,background:`#100F0F`,"background-darken-1":`#000000`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#1F1F1F`,"background-lighten-2":`#2F2E2E`,"background-lighten-3":`#403F3F`,"block-cursor-background":`#205EA6`,"block-cursor-blurred-background":`#205EA64C`,"block-cursor-blurred-foreground":`#FFFCF0`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#205EA6`,"border-blurred":`#171614`,"button-color-foreground":`#FFFCF0`,"button-foreground":`#FFFCF0`,error:`#AE3029`,"error-darken-1":`#981818`,"error-darken-2":`#810007`,"error-darken-3":`#6B0000`,"error-lighten-1":`#C64539`,"error-lighten-2":`#DD594B`,"error-lighten-3":`#F46D5D`,"error-muted":`#3F1816`,"footer-background":`#282726`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FFFCF0`,"footer-foreground":`#FFFCF0`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#9B76C8`,foreground:`#FFFCF0`,"foreground-darken-1":`#E9E6DA`,"foreground-darken-2":`#D4D1C5`,"foreground-darken-3":`#BFBCB1`,"foreground-disabled":`#FFFCF060`,"foreground-lighten-1":`#FFFFFF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#FFFCF099`,"input-cursor-background":`#FFFCF0`,"input-cursor-foreground":`#5E409D`,"input-selection-background":`#6F6E6959`,"link-background":`#00000000`,"link-background-hover":`#205EA6`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#205EA6`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#205EA6`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#205EA6`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#FFFCF0`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#FFFCF0`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#FFFCF099`,panel:`#282726`,"panel-darken-1":`#181716`,"panel-darken-2":`#040200`,"panel-darken-3":`#000000`,"panel-lighten-1":`#383736`,"panel-lighten-2":`#494846`,"panel-lighten-3":`#5A5958`,primary:`#205EA6`,"primary-background":`#353C45`,"primary-background-darken-1":`#232B35`,"primary-background-darken-2":`#121A25`,"primary-background-darken-3":`#121A25`,"primary-background-lighten-1":`#474D56`,"primary-background-lighten-2":`#595E66`,"primary-background-lighten-3":`#6A6F76`,"primary-darken-1":`#004C91`,"primary-darken-2":`#003B7E`,"primary-darken-3":`#002B6B`,"primary-lighten-1":`#3C70BA`,"primary-lighten-2":`#5383CF`,"primary-lighten-3":`#6996E4`,"primary-muted":`#14263C`,scrollbar:`#0C2542`,"scrollbar-active":`#205EA6`,"scrollbar-background":`#000000`,"scrollbar-background-active":`#000000`,"scrollbar-background-hover":`#000000`,"scrollbar-corner-color":`#000000`,"scrollbar-hover":`#102F53`,secondary:`#24837B`,"secondary-background":`#364140`,"secondary-background-darken-1":`#24302F`,"secondary-background-darken-2":`#13201F`,"secondary-background-darken-3":`#13201F`,"secondary-background-lighten-1":`#485251`,"secondary-background-lighten-2":`#596262`,"secondary-background-lighten-3":`#6B7373`,"secondary-darken-1":`#006F68`,"secondary-darken-2":`#005D56`,"secondary-darken-3":`#004A44`,"secondary-lighten-1":`#3C968E`,"secondary-lighten-2":`#52AAA1`,"secondary-lighten-3":`#67BFB6`,"secondary-muted":`#16312F`,success:`#65800B`,"success-darken-1":`#526D00`,"success-darken-2":`#3E5A00`,"success-darken-3":`#2D4800`,"success-lighten-1":`#7A9324`,"success-lighten-2":`#8EA738`,"success-lighten-3":`#A3BB4C`,"success-muted":`#29300D`,surface:`#1C1B1A`,"surface-active":`#282726`,"surface-darken-1":`#0A0806`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2B2A29`,"surface-lighten-2":`#3B3A39`,"surface-lighten-3":`#4D4B4A`,text:`#FFFFFFDD`,"text-accent":`#BDA4DA`,"text-disabled":`#FFFFFF60`,"text-error":`#CA7671`,"text-muted":`#FFFFFF99`,"text-primary":`#6B94C4`,"text-secondary":`#6EADA7`,"text-success":`#9AAB5D`,"text-warning":`#C8AD57`,warning:`#AC8301`,"warning-darken-1":`#977000`,"warning-darken-2":`#815D00`,"warning-darken-3":`#6C4C00`,"warning-lighten-1":`#C39621`,"warning-lighten-2":`#D9AA37`,"warning-lighten-3":`#F0BE4B`,"warning-muted":`#3F310A`}},gruvbox:{name:`gruvbox`,dark:!0,ansi:{black:`#282828`,red:`#CC241D`,green:`#98971A`,yellow:`#D79921`,blue:`#458588`,magenta:`#B16286`,cyan:`#689D6A`,white:`#A89984`,brightBlack:`#928374`,brightRed:`#FB4934`,brightGreen:`#B8BB26`,brightYellow:`#FABD2F`,brightBlue:`#83A598`,brightMagenta:`#D3869B`,brightCyan:`#8EC07C`,brightWhite:`#EBDBB2`},vars:{accent:`#F9BD2F`,"accent-darken-1":`#E2A811`,"accent-darken-2":`#CB9400`,"accent-darken-3":`#B48100`,"accent-lighten-1":`#FFD146`,"accent-lighten-2":`#FFE65B`,"accent-lighten-3":`#FFFC70`,"accent-muted":`#67542A`,background:`#282828`,"background-darken-1":`#181818`,"background-darken-2":`#040404`,"background-darken-3":`#000000`,"background-lighten-1":`#383838`,"background-lighten-2":`#494949`,"background-lighten-3":`#5A5A5A`,"block-cursor-background":`#85A598`,"block-cursor-blurred-background":`#85A5984C`,"block-cursor-blurred-foreground":`#FBF1C7`,"block-cursor-foreground":`#FBF1C7`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#85A598`,"border-blurred":`#363230`,"button-color-foreground":`#282828`,"button-foreground":`#FBF1C7`,error:`#FA4934`,"error-darken-1":`#E23022`,"error-darken-2":`#C90D10`,"error-darken-3":`#B10000`,"error-lighten-1":`#FF5F45`,"error-lighten-2":`#FF7558`,"error-lighten-3":`#FF8B6B`,"error-muted":`#67312B`,"footer-background":`#504945`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FBF1C7`,"footer-foreground":`#FBF1C7`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FABD2F`,foreground:`#FBF1C7`,"foreground-darken-1":`#E5DBB2`,"foreground-darken-2":`#D0C69E`,"foreground-darken-3":`#BBB28A`,"foreground-disabled":`#FBF1C760`,"foreground-lighten-1":`#FFFFDC`,"foreground-lighten-2":`#FFFFF1`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#FBF1C799`,"input-cursor-background":`#FBF1C7`,"input-cursor-foreground":`#282828`,"input-selection-background":`#689D6A40`,"link-background":`#00000000`,"link-background-hover":`#85A598`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#85A598`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#85A598`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#85A598`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#FBF1C7`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#FBF1C7`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#FBF1C799`,panel:`#504945`,"panel-darken-1":`#3E3834`,"panel-darken-2":`#2E2724`,"panel-darken-3":`#1E1815`,"panel-lighten-1":`#615A56`,"panel-lighten-2":`#746C68`,"panel-lighten-3":`#877F7B`,primary:`#85A598`,"primary-background":`#535755`,"primary-background-darken-1":`#444846`,"primary-background-darken-2":`#353A38`,"primary-background-darken-3":`#353A38`,"primary-background-lighten-1":`#626664`,"primary-background-lighten-2":`#717573`,"primary-background-lighten-3":`#808382`,"primary-darken-1":`#719184`,"primary-darken-2":`#5F7D71`,"primary-darken-3":`#4C6A5F`,"primary-lighten-1":`#98B9AB`,"primary-lighten-2":`#ACCEC0`,"primary-lighten-3":`#C1E3D5`,"primary-muted":`#434D49`,scrollbar:`#43504B`,"scrollbar-active":`#85A598`,"scrollbar-background":`#181818`,"scrollbar-background-active":`#181818`,"scrollbar-background-hover":`#181818`,"scrollbar-corner-color":`#181818`,"scrollbar-hover":`#4E5E58`,secondary:`#A89A85`,"secondary-background":`#585653`,"secondary-background-darken-1":`#494744`,"secondary-background-darken-2":`#3B3935`,"secondary-background-darken-3":`#3B3935`,"secondary-background-lighten-1":`#676562`,"secondary-background-lighten-2":`#757471`,"secondary-background-lighten-3":`#848380`,"secondary-darken-1":`#938671`,"secondary-darken-2":`#80735F`,"secondary-darken-3":`#6D604D`,"secondary-lighten-1":`#BCAE98`,"secondary-lighten-2":`#D1C2AC`,"secondary-lighten-3":`#E6D7C1`,"secondary-muted":`#4E4A43`,success:`#B7BB26`,"success-darken-1":`#A2A601`,"success-darken-2":`#8C9300`,"success-darken-3":`#777F00`,"success-lighten-1":`#CDCF3D`,"success-lighten-2":`#E4E453`,"success-lighten-3":`#FAFA68`,"success-muted":`#535427`,surface:`#3C3836`,"surface-active":`#494543`,"surface-darken-1":`#2B2725`,"surface-darken-2":`#1C1816`,"surface-darken-3":`#0A0300`,"surface-lighten-1":`#4D4846`,"surface-lighten-2":`#5F5A58`,"surface-lighten-3":`#716C6A`,text:`#FFFFFFDD`,"text-accent":`#FBD375`,"text-disabled":`#FFFFFF60`,"text-error":`#FC8679`,"text-muted":`#FFFFFF99`,"text-primary":`#AEC3BB`,"text-secondary":`#C5BCAE`,"text-success":`#D0D26F`,"text-warning":`#FEAB67`,warning:`#FD8019`,"warning-darken-1":`#E56C00`,"warning-darken-2":`#CD5800`,"warning-darken-3":`#B54500`,"warning-lighten-1":`#FF9430`,"warning-lighten-2":`#FFA845`,"warning-lighten-3":`#FFBD5A`,"warning-muted":`#684223`}},monokai:{name:`monokai`,dark:!0,ansi:{black:`#333333`,red:`#C4265E`,green:`#86B42B`,yellow:`#B3B42B`,blue:`#6A7EC8`,magenta:`#8C6BC8`,cyan:`#56ADBC`,white:`#E3E3DD`,brightBlack:`#666666`,brightRed:`#F92672`,brightGreen:`#A6E22E`,brightYellow:`#E2E22E`,brightBlue:`#819AFF`,brightMagenta:`#AE81FF`,brightCyan:`#66D9EF`,brightWhite:`#F8F8F2`},vars:{accent:`#66D9EF`,"accent-darken-1":`#4DC3D9`,"accent-darken-2":`#31AFC4`,"accent-darken-3":`#009BB0`,"accent-lighten-1":`#7DEEFF`,"accent-lighten-2":`#94FFFF`,"accent-lighten-3":`#AAFFFF`,"accent-muted":`#395D5F`,background:`#272822`,"background-darken-1":`#171812`,"background-darken-2":`#020400`,"background-darken-3":`#000000`,"background-lighten-1":`#373831`,"background-lighten-2":`#484942`,"background-lighten-3":`#595A54`,"block-cursor-background":`#AE81FF`,"block-cursor-blurred-background":`#AE81FF4C`,"block-cursor-blurred-foreground":`#D6D6D6`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#AE81FF`,"border-blurred":`#282828`,"button-color-foreground":`#272822`,"button-foreground":`#D6D6D6`,error:`#F82672`,"error-darken-1":`#E1005F`,"error-darken-2":`#C9004E`,"error-darken-3":`#B1003D`,"error-lighten-1":`#FF4484`,"error-lighten-2":`#FF5D98`,"error-lighten-3":`#FF75AC`,"error-muted":`#66273A`,"footer-background":`#3E3D32`,"footer-description-background":`#00000000`,"footer-description-foreground":`#D6D6D6`,"footer-foreground":`#D6D6D6`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#66D9EF`,foreground:`#D6D6D6`,"foreground-darken-1":`#C1C1C1`,"foreground-darken-2":`#ACACAC`,"foreground-darken-3":`#989898`,"foreground-disabled":`#D6D6D660`,"foreground-lighten-1":`#EBEBEB`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#797979`,"input-cursor-background":`#D6D6D6`,"input-cursor-foreground":`#272822`,"input-selection-background":`#575B6190`,"link-background":`#00000000`,"link-background-hover":`#AE81FF`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#AE81FF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#AE81FF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#AE81FF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#D6D6D6`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#D6D6D6`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#797979`,panel:`#3E3D32`,"panel-darken-1":`#2D2C22`,"panel-darken-2":`#1D1C12`,"panel-darken-3":`#0D0B00`,"panel-lighten-1":`#4F4E42`,"panel-lighten-2":`#616054`,"panel-lighten-3":`#737266`,primary:`#AE81FF`,"primary-background":`#58535F`,"primary-background-darken-1":`#494451`,"primary-background-darken-2":`#3B3543`,"primary-background-darken-3":`#3B3543`,"primary-background-lighten-1":`#67626D`,"primary-background-lighten-2":`#75717B`,"primary-background-lighten-3":`#848089`,"primary-darken-1":`#986DE9`,"primary-darken-2":`#835AD3`,"primary-darken-3":`#6E48BE`,"primary-lighten-1":`#C394FF`,"primary-lighten-2":`#D9A9FF`,"primary-lighten-3":`#EFBDFF`,"primary-muted":`#4F4264`,scrollbar:`#534270`,"scrollbar-active":`#AE81FF`,"scrollbar-background":`#171812`,"scrollbar-background-active":`#171812`,"scrollbar-background-hover":`#171812`,"scrollbar-corner-color":`#171812`,"scrollbar-hover":`#624C88`,secondary:`#F82672`,"secondary-background":`#61474D`,"secondary-background-darken-1":`#53373D`,"secondary-background-darken-2":`#46272E`,"secondary-background-darken-3":`#46272E`,"secondary-background-lighten-1":`#6F575D`,"secondary-background-lighten-2":`#7D676C`,"secondary-background-lighten-3":`#8B787C`,"secondary-darken-1":`#E1005F`,"secondary-darken-2":`#C9004E`,"secondary-darken-3":`#B1003D`,"secondary-lighten-1":`#FF4484`,"secondary-lighten-2":`#FF5D98`,"secondary-lighten-3":`#FF75AC`,"secondary-muted":`#66273A`,success:`#A5E22E`,"success-darken-1":`#90CC09`,"success-darken-2":`#7AB700`,"success-darken-3":`#64A300`,"success-lighten-1":`#BBF746`,"success-lighten-2":`#D2FF5D`,"success-lighten-3":`#E8FF72`,"success-muted":`#4D5F25`,surface:`#2E2E2E`,"surface-active":`#3B3B3B`,"surface-darken-1":`#1E1E1E`,"surface-darken-2":`#0D0D0D`,"surface-darken-3":`#000000`,"surface-lighten-1":`#3E3E3E`,"surface-lighten-2":`#4F4F4F`,"surface-lighten-3":`#616161`,text:`#FFFFFFDD`,"text-accent":`#9AE5F4`,"text-disabled":`#FFFFFF60`,"text-error":`#FB6FA1`,"text-muted":`#FFFFFF99`,"text-primary":`#C9ABFF`,"text-secondary":`#FB6FA1`,"text-success":`#C4EB75`,"text-warning":`#FDBA6B`,warning:`#FC971F`,"warning-darken-1":`#E58300`,"warning-darken-2":`#CD6F00`,"warning-darken-3":`#B65D00`,"warning-lighten-1":`#FFAB36`,"warning-lighten-2":`#FFBF4C`,"warning-lighten-3":`#FFD460`,"warning-muted":`#674921`}},nord:{name:`nord`,dark:!0,ansi:{black:`#3B4252`,red:`#BF616A`,green:`#A3BE8C`,yellow:`#EBCB8B`,blue:`#81A1C1`,magenta:`#B48EAD`,cyan:`#88C0D0`,white:`#E5E9F0`,brightBlack:`#596377`,brightRed:`#BF616A`,brightGreen:`#A3BE8C`,brightYellow:`#EBCB8B`,brightBlue:`#81A1C1`,brightMagenta:`#B48EAD`,brightCyan:`#8FBCBB`,brightWhite:`#ECEFF4`},vars:{accent:`#B48EAD`,"accent-darken-1":`#9F7A98`,"accent-darken-2":`#8B6785`,"accent-darken-3":`#785572`,"accent-lighten-1":`#C8A1C1`,"accent-lighten-2":`#DDB6D6`,"accent-lighten-3":`#F3CAEB`,"accent-muted":`#564F60`,background:`#2E3440`,"background-darken-1":`#1E242F`,"background-darken-2":`#0E141F`,"background-darken-3":`#000010`,"background-lighten-1":`#3E4451`,"background-lighten-2":`#505663`,"background-lighten-3":`#626875`,"block-cursor-background":`#88C0D0`,"block-cursor-blurred-background":`#88C0D04C`,"block-cursor-blurred-foreground":`#D8DEE9`,"block-cursor-foreground":`#2E3440`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#88C0D0`,"border-blurred":`#353C4C`,"button-color-foreground":`#2E3440`,"button-foreground":`#D8DEE9`,error:`#BE616A`,"error-darken-1":`#A94D57`,"error-darken-2":`#933A46`,"error-darken-3":`#7E2735`,"error-lighten-1":`#D4747C`,"error-lighten-2":`#EB8890`,"error-lighten-3":`#FF9CA3`,"error-muted":`#59414C`,"footer-background":`#434C5E`,"footer-description-background":`#00000000`,"footer-description-foreground":`#D8DEE9`,"footer-foreground":`#D8DEE9`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#88C0D0`,foreground:`#D8DEE9`,"foreground-darken-1":`#C3C9D3`,"foreground-darken-2":`#AEB4BF`,"foreground-darken-3":`#9AA0AA`,"foreground-disabled":`#D8DEE960`,"foreground-lighten-1":`#EDF3FE`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#D8DEE999`,"input-cursor-background":`#D8DEE9`,"input-cursor-foreground":`#2E3440`,"input-selection-background":`#81A1C159`,"link-background":`#00000000`,"link-background-hover":`#88C0D0`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#88C0D0`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#88C0D0`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#88C0D0`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#D8DEE9`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#D8DEE9`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#D8DEE999`,panel:`#434C5E`,"panel-darken-1":`#313A4C`,"panel-darken-2":`#212A3A`,"panel-darken-3":`#111B2A`,"panel-lighten-1":`#545D70`,"panel-lighten-2":`#677083`,"panel-lighten-3":`#798396`,primary:`#88C0D0`,"primary-background":`#58646E`,"primary-background-darken-1":`#495661`,"primary-background-darken-2":`#3B4955`,"primary-background-darken-3":`#3B4955`,"primary-background-lighten-1":`#67717B`,"primary-background-lighten-2":`#757F88`,"primary-background-lighten-3":`#848D94`,"primary-darken-1":`#73ABBB`,"primary-darken-2":`#5F97A6`,"primary-darken-3":`#4B8393`,"primary-lighten-1":`#9CD4E5`,"primary-lighten-2":`#B1EAFA`,"primary-lighten-3":`#C6FFFF`,"primary-muted":`#495E6B`,scrollbar:`#48626F`,"scrollbar-active":`#88C0D0`,"scrollbar-background":`#1E242F`,"scrollbar-background-active":`#1E242F`,"scrollbar-background-hover":`#1E242F`,"scrollbar-corner-color":`#1E242F`,"scrollbar-hover":`#53727F`,secondary:`#81A1C1`,"secondary-background":`#57606C`,"secondary-background-darken-1":`#48525F`,"secondary-background-darken-2":`#3A4453`,"secondary-background-darken-3":`#3A4453`,"secondary-background-lighten-1":`#666E79`,"secondary-background-lighten-2":`#757C86`,"secondary-background-lighten-3":`#838A93`,"secondary-darken-1":`#6D8DAC`,"secondary-darken-2":`#597A98`,"secondary-darken-3":`#466784`,"secondary-lighten-1":`#95B5D5`,"secondary-lighten-2":`#A9C9EB`,"secondary-lighten-3":`#BEDEFF`,"secondary-muted":`#465466`,success:`#A3BE8C`,"success-darken-1":`#8FA978`,"success-darken-2":`#7B9565`,"success-darken-3":`#688253`,"success-lighten-1":`#B7D29F`,"success-lighten-2":`#CCE8B4`,"success-lighten-3":`#E1FDC8`,"success-muted":`#515D56`,surface:`#3B4252`,"surface-active":`#484F60`,"surface-darken-1":`#2A3140`,"surface-darken-2":`#1A212F`,"surface-darken-3":`#0A1120`,"surface-lighten-1":`#4C5364`,"surface-lighten-2":`#5E6576`,"surface-lighten-3":`#707889`,text:`#FFFFFFDD`,"text-accent":`#CDB4C8`,"text-disabled":`#FFFFFF60`,"text-error":`#D4969C`,"text-muted":`#FFFFFF99`,"text-primary":`#B0D5DF`,"text-secondary":`#ABC0D6`,"text-success":`#C2D4B3`,"text-warning":`#F1DCB2`,warning:`#EACB8B`,"warning-darken-1":`#D5B677`,"warning-darken-2":`#BFA264`,"warning-darken-3":`#AA8E51`,"warning-lighten-1":`#FFE09E`,"warning-lighten-2":`#FFF5B3`,"warning-lighten-3":`#FFFFC8`,"warning-muted":`#666156`}},"rose-pine":{name:`rose-pine`,dark:!0,ansi:{black:`#26233A`,red:`#EB6F92`,green:`#31748F`,yellow:`#F6C177`,blue:`#9CCFD8`,magenta:`#C4A7E7`,cyan:`#EBBCBA`,white:`#E0DEF4`,brightBlack:`#6E6A86`,brightRed:`#EB6F92`,brightGreen:`#31748F`,brightYellow:`#F6C177`,brightBlue:`#9CCFD8`,brightMagenta:`#C4A7E7`,brightCyan:`#EBBCBA`,brightWhite:`#E0DEF4`},vars:{accent:`#EBBCBA`,"accent-darken-1":`#D5A7A5`,"accent-darken-2":`#C09391`,"accent-darken-3":`#AB807E`,"accent-lighten-1":`#FFD0CE`,"accent-lighten-2":`#FFE5E3`,"accent-lighten-3":`#FFFBF9`,"accent-muted":`#584851`,background:`#191724`,"background-darken-1":`#060015`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#282634`,"background-lighten-2":`#383644`,"background-lighten-3":`#4A4756`,"block-cursor-background":`#C4A7E7`,"block-cursor-blurred-background":`#C4A7E74C`,"block-cursor-blurred-foreground":`#E0DEF4`,"block-cursor-foreground":`#191724`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#524F67`,"border-blurred":`#6E6A86`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#E0DEF4`,error:`#EA6F92`,"error-darken-1":`#D45A7E`,"error-darken-2":`#BE466B`,"error-darken-3":`#A83159`,"error-lighten-1":`#FF83A5`,"error-lighten-2":`#FF98BA`,"error-lighten-3":`#FFADCE`,"error-muted":`#583145`,"footer-background":`#26233A`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0DEF4`,"footer-foreground":`#E0DEF4`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#EBBCBA`,foreground:`#E0DEF4`,"foreground-darken-1":`#CAC9DE`,"foreground-darken-2":`#B6B4C9`,"foreground-darken-3":`#A2A0B4`,"foreground-disabled":`#E0DEF460`,"foreground-lighten-1":`#F5F3FF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E0DEF499`,"input-cursor-background":`#F4EDE8`,"input-cursor-foreground":`#191724`,"input-selection-background":`#403D52`,"link-background":`#00000000`,"link-background-hover":`#C4A7E7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#C4A7E7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#C4A7E7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#C4A7E7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0DEF4`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0DEF4`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E0DEF499`,panel:`#26233A`,"panel-darken-1":`#161329`,"panel-darken-2":`#04001A`,"panel-darken-3":`#000008`,"panel-lighten-1":`#36324B`,"panel-lighten-2":`#47435D`,"panel-lighten-3":`#59556F`,primary:`#C4A7E7`,"primary-background":`#504B5D`,"primary-background-darken-1":`#413B4F`,"primary-background-darken-2":`#322C41`,"primary-background-darken-3":`#322C41`,"primary-background-lighten-1":`#605B6B`,"primary-background-lighten-2":`#6F6B7A`,"primary-background-lighten-3":`#7E7B88`,"primary-darken-1":`#AF93D1`,"primary-darken-2":`#9A7FBC`,"primary-darken-3":`#866CA8`,"primary-lighten-1":`#D9BBFC`,"primary-lighten-2":`#EED0FF`,"primary-lighten-3":`#FFE5FF`,"primary-muted":`#4C425E`,scrollbar:`#524269`,"scrollbar-active":`#C4A7E7`,"scrollbar-background":`#060015`,"scrollbar-background-active":`#060015`,"scrollbar-background-hover":`#060015`,"scrollbar-corner-color":`#060015`,"scrollbar-hover":`#65537E`,secondary:`#31748F`,"secondary-background":`#3E4452`,"secondary-background-darken-1":`#2D3443`,"secondary-background-darken-2":`#1C2434`,"secondary-background-darken-3":`#1C2434`,"secondary-background-lighten-1":`#4F5561`,"secondary-background-lighten-2":`#606570`,"secondary-background-lighten-3":`#717680`,"secondary-darken-1":`#17617B`,"secondary-darken-2":`#004F68`,"secondary-darken-3":`#003E56`,"secondary-lighten-1":`#4687A2`,"secondary-lighten-2":`#5B9AB7`,"secondary-lighten-3":`#70AECB`,"secondary-muted":`#203244`,success:`#9CCFD8`,"success-darken-1":`#87BAC3`,"success-darken-2":`#73A5AE`,"success-darken-3":`#60929A`,"success-lighten-1":`#B0E4ED`,"success-lighten-2":`#C5F9FF`,"success-lighten-3":`#DAFFFF`,"success-muted":`#404E5A`,surface:`#1F1D2E`,"surface-active":`#2B293B`,"surface-darken-1":`#100B1E`,"surface-darken-2":`#00000E`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2F2C3E`,"surface-lighten-2":`#3F3D4F`,"surface-lighten-3":`#514E61`,text:`#FFFFFFDD`,"text-accent":`#F1D2D1`,"text-disabled":`#FFFFFF60`,"text-error":`#F19FB7`,"text-muted":`#FFFFFF99`,"text-primary":`#D8C4EF`,"text-secondary":`#77A3B5`,"text-success":`#BDDFE5`,"text-warning":`#F9D6A5`,warning:`#F5C177`,"warning-darken-1":`#DFAC63`,"warning-darken-2":`#C99850`,"warning-darken-3":`#B3853E`,"warning-lighten-1":`#FFD58A`,"warning-lighten-2":`#FFEB9E`,"warning-lighten-3":`#FFFFB3`,"warning-muted":`#5B4A3C`}},"rose-pine-dawn":{name:`rose-pine-dawn`,dark:!1,ansi:{black:`#F2E9E1`,red:`#B4637A`,green:`#286983`,yellow:`#EA9D34`,blue:`#56949F`,magenta:`#907AA9`,cyan:`#D7827E`,white:`#575279`,brightBlack:`#9893A5`,brightRed:`#B4637A`,brightGreen:`#286983`,brightYellow:`#EA9D34`,brightBlue:`#56949F`,brightMagenta:`#907AA9`,brightCyan:`#D7827E`,brightWhite:`#575279`},vars:{accent:`#D6827E`,"accent-darken-1":`#C16E6B`,"accent-darken-2":`#AB5B58`,"accent-darken-3":`#964847`,"accent-lighten-1":`#ED9591`,"accent-lighten-2":`#FFAAA5`,"accent-lighten-3":`#FFBEB9`,"accent-muted":`#EFD1CB`,background:`#FAF4ED`,"background-darken-1":`#E4DED7`,"background-darken-2":`#CFC9C2`,"background-darken-3":`#BAB5AE`,"background-lighten-1":`#FFFFFF`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#575279`,"block-cursor-blurred-background":`#907AA94C`,"block-cursor-blurred-foreground":`#575279`,"block-cursor-foreground":`#FAF4ED`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#CECACD`,"border-blurred":`#9893A5`,"button-color-foreground":`#000000DD`,"button-foreground":`#575279`,error:`#B4637A`,"error-darken-1":`#9E5067`,"error-darken-2":`#8A3D55`,"error-darken-3":`#752A43`,"error-lighten-1":`#C9768D`,"error-lighten-2":`#DF8AA0`,"error-lighten-3":`#F59EB5`,"error-muted":`#E5C8CA`,"footer-background":`#F2E9E1`,"footer-description-background":`#00000000`,"footer-description-foreground":`#575279`,"footer-foreground":`#575279`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#D7827E`,foreground:`#575279`,"foreground-darken-1":`#444066`,"foreground-darken-2":`#332F53`,"foreground-darken-3":`#222042`,"foreground-disabled":`#57527960`,"foreground-lighten-1":`#69648C`,"foreground-lighten-2":`#7C76A0`,"foreground-lighten-3":`#9089B4`,"foreground-muted":`#57527999`,"input-cursor-background":`#575279`,"input-cursor-foreground":`#FAF4ED`,"input-selection-background":`#DFDAD9`,"link-background":`#00000000`,"link-background-hover":`#907AA9`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#907AA9`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#907AA9`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#907AA9`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#575279`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#575279`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#57527999`,panel:`#F2E9E1`,"panel-darken-1":`#DCD3CB`,"panel-darken-2":`#C7BFB7`,"panel-darken-3":`#B3AAA3`,"panel-lighten-1":`#FFFEF6`,"panel-lighten-2":`#FFFFFF`,"panel-lighten-3":`#FFFFFF`,primary:`#907AA9`,"primary-background":`#907AA9`,"primary-background-darken-1":`#7C6795`,"primary-background-darken-2":`#695481`,"primary-background-darken-3":`#56436E`,"primary-background-lighten-1":`#A48DBD`,"primary-background-lighten-2":`#B8A1D2`,"primary-background-lighten-3":`#CDB5E7`,"primary-darken-1":`#7C6795`,"primary-darken-2":`#695481`,"primary-darken-3":`#56436E`,"primary-lighten-1":`#A48DBD`,"primary-lighten-2":`#B8A1D2`,"primary-lighten-3":`#CDB5E7`,"primary-muted":`#DACFD8`,scrollbar:`#C2B6C4`,"scrollbar-active":`#907AA9`,"scrollbar-background":`#E4DED7`,"scrollbar-background-active":`#E4DED7`,"scrollbar-background-hover":`#E4DED7`,"scrollbar-corner-color":`#E4DED7`,"scrollbar-hover":`#BAACC0`,secondary:`#286983`,"secondary-background":`#286983`,"secondary-background-darken-1":`#0A566F`,"secondary-background-darken-2":`#00455D`,"secondary-background-darken-3":`#00344B`,"secondary-background-lighten-1":`#3E7B96`,"secondary-background-lighten-2":`#538FAA`,"secondary-background-lighten-3":`#67A2BE`,"secondary-darken-1":`#0A566F`,"secondary-darken-2":`#00455D`,"secondary-darken-3":`#00344B`,"secondary-lighten-1":`#3E7B96`,"secondary-lighten-2":`#538FAA`,"secondary-lighten-3":`#67A2BE`,"secondary-muted":`#BBCACD`,success:`#56949F`,"success-darken-1":`#41808B`,"success-darken-2":`#2D6D78`,"success-darken-3":`#155B65`,"success-lighten-1":`#6AA7B3`,"success-lighten-2":`#7EBCC7`,"success-lighten-3":`#92D1DC`,"success-muted":`#C8D7D5`,surface:`#FFFAF3`,"surface-active":`#FFFFFF`,"surface-darken-1":`#E9E4DD`,"surface-darken-2":`#D4CFC8`,"surface-darken-3":`#BFBAB4`,"surface-lighten-1":`#FFFFFF`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#8D5553`,"text-disabled":`#00000060`,"text-error":`#764150`,"text-muted":`#00000099`,"text-primary":`#5F506F`,"text-secondary":`#1A4556`,"text-success":`#386168`,"text-warning":`#9A6722`,warning:`#E99D34`,"warning-darken-1":`#D2891D`,"warning-darken-2":`#BC7600`,"warning-darken-3":`#A56300`,"warning-lighten-1":`#FFB148`,"warning-lighten-2":`#FFC55C`,"warning-lighten-3":`#FFDA70`,"warning-muted":`#F5D9B5`}},"rose-pine-moon":{name:`rose-pine-moon`,dark:!0,ansi:{black:`#393552`,red:`#EB6F92`,green:`#3E8FB0`,yellow:`#F6C177`,blue:`#9CCFD8`,magenta:`#C4A7E7`,cyan:`#EA9A97`,white:`#E0DEF4`,brightBlack:`#6E6A86`,brightRed:`#EB6F92`,brightGreen:`#3E8FB0`,brightYellow:`#F6C177`,brightBlue:`#9CCFD8`,brightMagenta:`#C4A7E7`,brightCyan:`#EA9A97`,brightWhite:`#E0DEF4`},vars:{accent:`#EA9A97`,"accent-darken-1":`#D48683`,"accent-darken-2":`#BE7270`,"accent-darken-3":`#A95F5E`,"accent-lighten-1":`#FFAEAA`,"accent-lighten-2":`#FFC3BF`,"accent-lighten-3":`#FFD8D4`,"accent-muted":`#5E4553`,background:`#232136`,"background-darken-1":`#131125`,"background-darken-2":`#000017`,"background-darken-3":`#000001`,"background-lighten-1":`#333046`,"background-lighten-2":`#444158`,"background-lighten-3":`#56526A`,"block-cursor-background":`#C4A7E7`,"block-cursor-blurred-background":`#C4A7E74C`,"block-cursor-blurred-foreground":`#E0DEF4`,"block-cursor-foreground":`#232136`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#56526E`,"border-blurred":`#6E6A86`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#E0DEF4`,error:`#EA6F92`,"error-darken-1":`#D45A7E`,"error-darken-2":`#BE466B`,"error-darken-3":`#A83159`,"error-lighten-1":`#FF83A5`,"error-lighten-2":`#FF98BA`,"error-lighten-3":`#FFADCE`,"error-muted":`#5F3851`,"footer-background":`#393552`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0DEF4`,"footer-foreground":`#E0DEF4`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#EA9A97`,foreground:`#E0DEF4`,"foreground-darken-1":`#CAC9DE`,"foreground-darken-2":`#B6B4C9`,"foreground-darken-3":`#A2A0B4`,"foreground-disabled":`#E0DEF460`,"foreground-lighten-1":`#F5F3FF`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E0DEF499`,"input-cursor-background":`#F4EDE8`,"input-cursor-foreground":`#232136`,"input-selection-background":`#44415A`,"link-background":`#00000000`,"link-background-hover":`#C4A7E7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#C4A7E7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#C4A7E7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#C4A7E7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0DEF4`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0DEF4`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E0DEF499`,panel:`#393552`,"panel-darken-1":`#282440`,"panel-darken-2":`#17152F`,"panel-darken-3":`#080020`,"panel-lighten-1":`#4A4564`,"panel-lighten-2":`#5C5776`,"panel-lighten-3":`#6F6989`,primary:`#C4A7E7`,"primary-background":`#58536A`,"primary-background-darken-1":`#49445D`,"primary-background-darken-2":`#3B3550`,"primary-background-darken-3":`#3B3550`,"primary-background-lighten-1":`#676277`,"primary-background-lighten-2":`#757184`,"primary-background-lighten-3":`#848091`,"primary-darken-1":`#AF93D1`,"primary-darken-2":`#9A7FBC`,"primary-darken-3":`#866CA8`,"primary-lighten-1":`#D9BBFC`,"primary-lighten-2":`#EED0FF`,"primary-lighten-3":`#FFE5FF`,"primary-muted":`#53496B`,scrollbar:`#594D72`,"scrollbar-active":`#C4A7E7`,"scrollbar-background":`#131125`,"scrollbar-background-active":`#131125`,"scrollbar-background-hover":`#131125`,"scrollbar-corner-color":`#131125`,"scrollbar-hover":`#6B5C86`,secondary:`#3E8FB0`,"secondary-background":`#474F63`,"secondary-background-darken-1":`#374055`,"secondary-background-darken-2":`#273148`,"secondary-background-darken-3":`#273148`,"secondary-background-lighten-1":`#575F71`,"secondary-background-lighten-2":`#676E7E`,"secondary-background-lighten-3":`#787E8C`,"secondary-darken-1":`#237B9B`,"secondary-darken-2":`#006888`,"secondary-darken-3":`#005674`,"secondary-lighten-1":`#54A2C4`,"secondary-lighten-2":`#6AB7D9`,"secondary-lighten-3":`#80CBEE`,"secondary-muted":`#2B425A`,success:`#9CCFD8`,"success-darken-1":`#87BAC3`,"success-darken-2":`#73A5AE`,"success-darken-3":`#60929A`,"success-lighten-1":`#B0E4ED`,"success-lighten-2":`#C5F9FF`,"success-lighten-3":`#DAFFFF`,"success-muted":`#475566`,surface:`#2A273F`,"surface-active":`#37334C`,"surface-darken-1":`#19172E`,"surface-darken-2":`#0A021E`,"surface-darken-3":`#00000F`,"surface-lighten-1":`#3A3750`,"surface-lighten-2":`#4C4862`,"surface-lighten-3":`#5E5975`,text:`#FFFFFFDD`,"text-accent":`#F1BCBA`,"text-disabled":`#FFFFFF60`,"text-error":`#F19FB7`,"text-muted":`#FFFFFF99`,"text-primary":`#D8C4EF`,"text-secondary":`#7FB5CA`,"text-success":`#BDDFE5`,"text-warning":`#F9D6A5`,warning:`#F5C177`,"warning-darken-1":`#DFAC63`,"warning-darken-2":`#C99850`,"warning-darken-3":`#B3853E`,"warning-lighten-1":`#FFD58A`,"warning-lighten-2":`#FFEB9E`,"warning-lighten-3":`#FFFFB3`,"warning-muted":`#625149`}},"solarized-dark":{name:`solarized-dark`,dark:!0,ansi:{black:`#073642`,red:`#DC322F`,green:`#859900`,yellow:`#B58900`,blue:`#268BD2`,magenta:`#D33682`,cyan:`#2AA198`,white:`#EEE8D5`,brightBlack:`#335E69`,brightRed:`#CB4B16`,brightGreen:`#586E75`,brightYellow:`#657B83`,brightBlue:`#839496`,brightMagenta:`#6C71C4`,brightCyan:`#93A1A1`,brightWhite:`#FDF6E3`},vars:{accent:`#6C71C4`,"accent-darken-1":`#575EAF`,"accent-darken-2":`#424C9A`,"accent-darken-3":`#2D3B87`,"accent-lighten-1":`#8083D9`,"accent-lighten-2":`#9597EE`,"accent-lighten-3":`#AAABFF`,"accent-muted":`#204060`,background:`#002B36`,"background-darken-1":`#001B25`,"background-darken-2":`#000A17`,"background-darken-3":`#000000`,"background-lighten-1":`#143B46`,"background-lighten-2":`#274C58`,"background-lighten-3":`#3A5E6A`,"block-cursor-background":`#268BD2`,"block-cursor-blurred-background":`#268BD24C`,"block-cursor-blurred-foreground":`#839496`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#268BD2`,"border-blurred":`#00303C`,"button-color-foreground":`#FDF6E3`,"button-foreground":`#839496`,error:`#DB322F`,"error-darken-1":`#C3121E`,"error-darken-2":`#AB000D`,"error-darken-3":`#940000`,"error-lighten-1":`#F44940`,"error-lighten-2":`#FF6052`,"error-lighten-3":`#FF7564`,"error-muted":`#422D33`,"footer-background":`#268BD2`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FDF6E3`,"footer-foreground":`#839496`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FDF6E3`,foreground:`#839496`,"foreground-darken-1":`#6F8082`,"foreground-darken-2":`#5D6D6F`,"foreground-darken-3":`#4B5B5D`,"foreground-disabled":`#83949660`,"foreground-lighten-1":`#96A7A9`,"foreground-lighten-2":`#AABCBE`,"foreground-lighten-3":`#BED0D3`,"foreground-muted":`#83949699`,"input-cursor-background":`#839496`,"input-cursor-foreground":`#002B36`,"input-selection-background":`#073642`,"link-background":`#00000000`,"link-background-hover":`#268BD2`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#268BD2`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#268BD2`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#268BD2`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#839496`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#839496`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#83949699`,panel:`#073642`,"panel-darken-1":`#002531`,"panel-darken-2":`#001721`,"panel-darken-3":`#000112`,"panel-lighten-1":`#1D4653`,"panel-lighten-2":`#305865`,"panel-lighten-3":`#436A78`,primary:`#268BD2`,"primary-background":`#2A5667`,"primary-background-darken-1":`#17475A`,"primary-background-darken-2":`#05394D`,"primary-background-darken-3":`#05394D`,"primary-background-lighten-1":`#3D6575`,"primary-background-lighten-2":`#507482`,"primary-background-lighten-3":`#62838F`,"primary-darken-1":`#0077BD`,"primary-darken-2":`#0065A8`,"primary-darken-3":`#005394`,"primary-lighten-1":`#459EE7`,"primary-lighten-2":`#5FB2FD`,"primary-lighten-3":`#77C7FF`,"primary-muted":`#0B4764`,scrollbar:`#0F476A`,"scrollbar-active":`#268BD2`,"scrollbar-background":`#001B25`,"scrollbar-background-active":`#001B25`,"scrollbar-background-hover":`#001B25`,"scrollbar-corner-color":`#001B25`,"scrollbar-hover":`#13537B`,secondary:`#2AA198`,"secondary-background":`#2B5960`,"secondary-background-darken-1":`#184A52`,"secondary-background-darken-2":`#063C44`,"secondary-background-darken-3":`#063C44`,"secondary-background-lighten-1":`#3E676E`,"secondary-background-lighten-2":`#50767C`,"secondary-background-lighten-3":`#63858A`,"secondary-darken-1":`#008C84`,"secondary-darken-2":`#007971`,"secondary-darken-3":`#00665F`,"secondary-lighten-1":`#44B5AB`,"secondary-lighten-2":`#5BCAC0`,"secondary-lighten-3":`#72DFD5`,"secondary-muted":`#0C4E53`,success:`#849900`,"success-darken-1":`#708500`,"success-darken-2":`#5B7200`,"success-darken-3":`#485F00`,"success-lighten-1":`#99AC22`,"success-lighten-2":`#AFC139`,"success-lighten-3":`#C4D64E`,"success-muted":`#274C25`,surface:`#073642`,"surface-active":`#19434F`,"surface-darken-1":`#002531`,"surface-darken-2":`#001721`,"surface-darken-3":`#000112`,"surface-lighten-1":`#1D4653`,"surface-lighten-2":`#305865`,"surface-lighten-3":`#436A78`,text:`#FFFFFFDD`,"text-accent":`#9DA1D8`,"text-disabled":`#FFFFFF60`,"text-error":`#E77775`,"text-muted":`#FFFFFF99`,"text-primary":`#6FB2E1`,"text-secondary":`#72C0BB`,"text-success":`#AEBB56`,"text-warning":`#DC8865`,warning:`#CA4B16`,"warning-darken-1":`#B33600`,"warning-darken-2":`#9C2000`,"warning-darken-3":`#850100`,"warning-lighten-1":`#E25F29`,"warning-lighten-2":`#FA733C`,"warning-lighten-3":`#FF874E`,"warning-muted":`#3C342C`}},"solarized-light":{name:`solarized-light`,dark:!1,ansi:{black:`#073642`,red:`#DC322F`,green:`#859900`,yellow:`#B58900`,blue:`#268BD2`,magenta:`#D33682`,cyan:`#2AA198`,white:`#BBB5A2`,brightBlack:`#002B36`,brightRed:`#CB4B16`,brightGreen:`#586E75`,brightYellow:`#657B83`,brightBlue:`#839496`,brightMagenta:`#6C71C4`,brightCyan:`#93A1A1`,brightWhite:`#FDF6E3`},vars:{accent:`#6C71C4`,"accent-darken-1":`#575EAF`,"accent-darken-2":`#424C9A`,"accent-darken-3":`#2D3B87`,"accent-lighten-1":`#8083D9`,"accent-lighten-2":`#9597EE`,"accent-lighten-3":`#AAABFF`,"accent-muted":`#D1CED9`,background:`#FDF6E3`,"background-darken-1":`#E7E0CD`,"background-darken-2":`#D2CBB9`,"background-darken-3":`#BDB6A4`,"background-lighten-1":`#FFFFF8`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#268BD2`,"block-cursor-blurred-background":`#268BD24C`,"block-cursor-blurred-foreground":`#586E75`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#268BD2`,"border-blurred":`#E6E0CE`,"button-color-foreground":`#FDF6E3`,"button-foreground":`#586E75`,error:`#DB322F`,"error-darken-1":`#C3121E`,"error-darken-2":`#AB000D`,"error-darken-3":`#940000`,"error-lighten-1":`#F44940`,"error-lighten-2":`#FF6052`,"error-lighten-3":`#FF7564`,"error-muted":`#F3BBAD`,"footer-background":`#268BD2`,"footer-description-background":`#00000000`,"footer-description-foreground":`#FDF6E3`,"footer-foreground":`#586E75`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FDF6E3`,foreground:`#586E75`,"foreground-darken-1":`#465B62`,"foreground-darken-2":`#344950`,"foreground-darken-3":`#23383F`,"foreground-disabled":`#586E7560`,"foreground-lighten-1":`#6A8088`,"foreground-lighten-2":`#7D949B`,"foreground-lighten-3":`#91A8AF`,"foreground-muted":`#586E7599`,"input-cursor-background":`#586E75`,"input-cursor-foreground":`#FDF6E3`,"input-selection-background":`#459EE766`,"link-background":`#00000000`,"link-background-hover":`#268BD2`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#268BD2`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#268BD2`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#268BD2`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#586E75`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#586E75`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#586E7599`,panel:`#EEE8D5`,"panel-darken-1":`#D8D2C0`,"panel-darken-2":`#C3BEAB`,"panel-darken-3":`#AFA997`,"panel-lighten-1":`#FFFDEA`,"panel-lighten-2":`#FFFFFF`,"panel-lighten-3":`#FFFFFF`,primary:`#268BD2`,"primary-background":`#268BD2`,"primary-background-darken-1":`#0077BD`,"primary-background-darken-2":`#0065A8`,"primary-background-darken-3":`#005394`,"primary-background-lighten-1":`#459EE7`,"primary-background-lighten-2":`#5FB2FD`,"primary-background-lighten-3":`#77C7FF`,"primary-darken-1":`#0077BD`,"primary-darken-2":`#0065A8`,"primary-darken-3":`#005394`,"primary-lighten-1":`#459EE7`,"primary-lighten-2":`#5FB2FD`,"primary-lighten-3":`#77C7FF`,"primary-muted":`#BCD5DD`,scrollbar:`#99BECF`,"scrollbar-active":`#268BD2`,"scrollbar-background":`#E7E0CD`,"scrollbar-background-active":`#E7E0CD`,"scrollbar-background-hover":`#E7E0CD`,"scrollbar-corner-color":`#E7E0CD`,"scrollbar-hover":`#86B5CF`,secondary:`#2AA198`,"secondary-background":`#2AA198`,"secondary-background-darken-1":`#008C84`,"secondary-background-darken-2":`#007971`,"secondary-background-darken-3":`#00665F`,"secondary-background-lighten-1":`#44B5AB`,"secondary-background-lighten-2":`#5BCAC0`,"secondary-background-lighten-3":`#72DFD5`,"secondary-darken-1":`#008C84`,"secondary-darken-2":`#007971`,"secondary-darken-3":`#00665F`,"secondary-lighten-1":`#44B5AB`,"secondary-lighten-2":`#5BCAC0`,"secondary-lighten-3":`#72DFD5`,"secondary-muted":`#BDDCCC`,success:`#849900`,"success-darken-1":`#708500`,"success-darken-2":`#5B7200`,"success-darken-3":`#485F00`,"success-lighten-1":`#99AC22`,"success-lighten-2":`#AFC139`,"success-lighten-3":`#C4D64E`,"success-muted":`#D9DA9E`,surface:`#EEE8D5`,"surface-active":`#FFF9E5`,"surface-darken-1":`#D8D2C0`,"surface-darken-2":`#C3BEAB`,"surface-darken-3":`#AFA997`,"surface-lighten-1":`#FFFDEA`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#474A81`,"text-disabled":`#00000060`,"text-error":`#91211F`,"text-muted":`#00000099`,"text-primary":`#195B8A`,"text-secondary":`#1B6A64`,"text-success":`#576400`,"text-warning":`#85310E`,warning:`#CA4B16`,"warning-darken-1":`#B33600`,"warning-darken-2":`#9C2000`,"warning-darken-3":`#850100`,"warning-lighten-1":`#E25F29`,"warning-lighten-2":`#FA733C`,"warning-lighten-3":`#FF874E`,"warning-muted":`#EEC2A5`}},"svg-export":{name:`svg-export`,dark:!0,ansi:{black:`#4B4E55`,red:`#CC555A`,green:`#98A84B`,yellow:`#D0B344`,blue:`#608AB1`,magenta:`#98729F`,cyan:`#68A0B3`,white:`#C5C8C6`,brightBlack:`#9A9B99`,brightRed:`#FF2627`,brightGreen:`#00823D`,brightYellow:`#D08442`,brightBlue:`#1984E9`,brightMagenta:`#FF2C7A`,brightCyan:`#398280`,brightWhite:`#FDFDC5`},vars:{accent:`#56B6C2`,"accent-darken-1":`#3EA1AD`,"accent-darken-2":`#238D99`,"accent-darken-3":`#007A85`,"accent-lighten-1":`#6CCAD6`,"accent-lighten-2":`#81DFEC`,"accent-lighten-3":`#97F5FF`,"accent-muted":`#365356`,background:`#292929`,"background-darken-1":`#191919`,"background-darken-2":`#050505`,"background-darken-3":`#000000`,"background-lighten-1":`#393939`,"background-lighten-2":`#4A4A4A`,"background-lighten-3":`#5C5C5C`,"block-cursor-background":`#61AFEF`,"block-cursor-blurred-background":`#61AFEF4C`,"block-cursor-blurred-foreground":`#C5C8C6`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#61AFEF`,"border-blurred":`#191919`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#C5C8C6`,error:`#CB555A`,"error-darken-1":`#B54048`,"error-darken-2":`#9F2C37`,"error-darken-3":`#891427`,"error-lighten-1":`#E2686C`,"error-lighten-2":`#F97D7F`,"error-lighten-3":`#FF9192`,"error-muted":`#593637`,"footer-background":`#2C343A`,"footer-description-background":`#00000000`,"footer-description-foreground":`#C5C8C6`,"footer-foreground":`#C5C8C6`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#56B6C2`,foreground:`#C5C8C6`,"foreground-darken-1":`#B0B3B1`,"foreground-darken-2":`#9C9F9D`,"foreground-darken-3":`#888B89`,"foreground-disabled":`#C5C8C660`,"foreground-lighten-1":`#D9DCDA`,"foreground-lighten-2":`#EFF2F0`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#C5C8C699`,"input-cursor-background":`#C5C8C6`,"input-cursor-foreground":`#292929`,"input-selection-background":`#77C3FF66`,"link-background":`#00000000`,"link-background-hover":`#61AFEF`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#61AFEF`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#61AFEF`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#61AFEF`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#C5C8C6`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#C5C8C6`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#C5C8C699`,panel:`#2C343A`,"panel-darken-1":`#1C2429`,"panel-darken-2":`#0C141A`,"panel-darken-3":`#000007`,"panel-lighten-1":`#3C444B`,"panel-lighten-2":`#4D565C`,"panel-lighten-3":`#5F686F`,primary:`#61AFEF`,"primary-background":`#4F5A61`,"primary-background-darken-1":`#404B53`,"primary-background-darken-2":`#313D46`,"primary-background-darken-3":`#313D46`,"primary-background-lighten-1":`#5F686F`,"primary-background-lighten-2":`#6E777D`,"primary-background-lighten-3":`#7E858B`,"primary-darken-1":`#489BD9`,"primary-darken-2":`#2C87C4`,"primary-darken-3":`#0074AF`,"primary-lighten-1":`#77C3FF`,"primary-lighten-2":`#8ED8FF`,"primary-lighten-3":`#A4EDFF`,"primary-muted":`#395164`,scrollbar:`#35556E`,"scrollbar-active":`#61AFEF`,"scrollbar-background":`#191919`,"scrollbar-background-active":`#191919`,"scrollbar-background-hover":`#191919`,"scrollbar-corner-color":`#191919`,"scrollbar-hover":`#3D6484`,secondary:`#C678DD`,"secondary-background":`#5C5260`,"secondary-background-darken-1":`#4E4352`,"secondary-background-darken-2":`#403444`,"secondary-background-darken-3":`#403444`,"secondary-background-lighten-1":`#6A616E`,"secondary-background-lighten-2":`#79707C`,"secondary-background-lighten-3":`#87808A`,"secondary-darken-1":`#B064C7`,"secondary-darken-2":`#9B50B3`,"secondary-darken-3":`#873D9E`,"secondary-lighten-1":`#DB8CF2`,"secondary-lighten-2":`#F1A0FF`,"secondary-lighten-3":`#FFB5FF`,"secondary-muted":`#58405F`,success:`#98C379`,"success-darken-1":`#83AE65`,"success-darken-2":`#709A53`,"success-darken-3":`#5C8641`,"success-lighten-1":`#ACD78C`,"success-lighten-2":`#C1EDA0`,"success-lighten-3":`#D6FFB4`,"success-muted":`#4A5741`,surface:`#1E1E1E`,"surface-active":`#2A2A2A`,"surface-darken-1":`#0D0D0D`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2D2D2D`,"surface-lighten-2":`#3E3E3E`,"surface-lighten-3":`#4F4F4F`,text:`#FFFFFFDD`,"text-accent":`#8FCED6`,"text-disabled":`#FFFFFF60`,"text-error":`#DD8E92`,"text-muted":`#FFFFFF99`,"text-primary":`#96CAF4`,"text-secondary":`#D9A5E8`,"text-success":`#BBD7A6`,"text-warning":`#EDD5A7`,warning:`#E4C07B`,"warning-darken-1":`#CFAB67`,"warning-darken-2":`#B99754`,"warning-darken-3":`#A48442`,"warning-lighten-1":`#FBD48E`,"warning-lighten-2":`#FFE9A2`,"warning-lighten-3":`#FFFFB7`,"warning-muted":`#615641`}},"textual-ansi":{name:`textual-ansi`,dark:!0,ansi:Tc,vars:{accent:`#0000FF`,"accent-darken-1":`#0000FF`,"accent-darken-2":`#0000FF`,"accent-darken-3":`#0000FF`,"accent-lighten-1":`#0000FF`,"accent-lighten-2":`#0000FF`,"accent-lighten-3":`#0000FF`,"accent-muted":`#0178D4`,background:`#121212`,"background-darken-1":`#121212`,"background-darken-2":`#121212`,"background-darken-3":`#121212`,"background-lighten-1":`#121212`,"background-lighten-2":`#121212`,"background-lighten-3":`#121212`,"block-cursor-background":`#000080`,"block-cursor-blurred-background":`#0000804C`,"block-cursor-blurred-foreground":`#E0E0E0`,"block-cursor-foreground":`#E0E0E0`,"block-hover-background":`#00000019`,boost:`#0178D4`,"boost-darken-1":`#0178D4`,"boost-darken-2":`#0178D4`,"boost-darken-3":`#0178D4`,"boost-lighten-1":`#0178D4`,"boost-lighten-2":`#0178D4`,"boost-lighten-3":`#0178D4`,border:`#0000FF`,"border-blurred":`#000080`,"button-color-foreground":`#E0E0E0`,"button-foreground":`#E0E0E0`,error:`#800000`,"error-darken-1":`#800000`,"error-darken-2":`#800000`,"error-darken-3":`#800000`,"error-lighten-1":`#800000`,"error-lighten-2":`#800000`,"error-lighten-3":`#800000`,"error-muted":`#0178D4`,"footer-background":`#121212`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0E0E0`,"footer-foreground":`#E0E0E0`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#0000FF`,foreground:`#E0E0E0`,"foreground-darken-1":`#E0E0E0`,"foreground-darken-2":`#E0E0E0`,"foreground-darken-3":`#E0E0E0`,"foreground-disabled":`#00000060`,"foreground-lighten-1":`#E0E0E0`,"foreground-lighten-2":`#E0E0E0`,"foreground-lighten-3":`#E0E0E0`,"foreground-muted":`#00000099`,"input-cursor-background":`#121212`,"input-cursor-foreground":`#E0E0E0`,"input-selection-background":`#000080`,"link-background":`#00000000`,"link-background-hover":`#000080`,"link-color":`#E0E0E0`,"link-color-hover":`#0178D4`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#000080`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#000080`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#000080`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0E0E0`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0E0E0`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#00000099`,panel:`#121212`,"panel-darken-1":`#121212`,"panel-darken-2":`#121212`,"panel-darken-3":`#121212`,"panel-lighten-1":`#121212`,"panel-lighten-2":`#121212`,"panel-lighten-3":`#121212`,primary:`#000080`,"primary-background":`#000080`,"primary-background-darken-1":`#000080`,"primary-background-darken-2":`#000080`,"primary-background-darken-3":`#000080`,"primary-background-lighten-1":`#000080`,"primary-background-lighten-2":`#000080`,"primary-background-lighten-3":`#000080`,"primary-darken-1":`#000080`,"primary-darken-2":`#000080`,"primary-darken-3":`#000080`,"primary-lighten-1":`#000080`,"primary-lighten-2":`#000080`,"primary-lighten-3":`#000080`,"primary-muted":`#0178D4`,scrollbar:`#000080`,"scrollbar-active":`#000080`,"scrollbar-background":`#121212`,"scrollbar-background-active":`#121212`,"scrollbar-background-hover":`#121212`,"scrollbar-corner-color":`#E0E0E0`,"scrollbar-hover":`#000040`,secondary:`#008080`,"secondary-background":`#008080`,"secondary-background-darken-1":`#008080`,"secondary-background-darken-2":`#008080`,"secondary-background-darken-3":`#008080`,"secondary-background-lighten-1":`#008080`,"secondary-background-lighten-2":`#008080`,"secondary-background-lighten-3":`#008080`,"secondary-darken-1":`#008080`,"secondary-darken-2":`#008080`,"secondary-darken-3":`#008080`,"secondary-lighten-1":`#008080`,"secondary-lighten-2":`#008080`,"secondary-lighten-3":`#008080`,"secondary-muted":`#0178D4`,success:`#008000`,"success-darken-1":`#008000`,"success-darken-2":`#008000`,"success-darken-3":`#008000`,"success-lighten-1":`#008000`,"success-lighten-2":`#008000`,"success-lighten-3":`#008000`,"success-muted":`#0178D4`,surface:`#121212`,"surface-active":`#131313`,"surface-darken-1":`#121212`,"surface-darken-2":`#121212`,"surface-darken-3":`#121212`,"surface-lighten-1":`#121212`,"surface-lighten-2":`#121212`,"surface-lighten-3":`#121212`,text:`#E0E0E0`,"text-accent":`#5656FF`,"text-disabled":`#E0E0E0`,"text-error":`#AB5656`,"text-muted":`#E0E0E0`,"text-primary":`#5656AB`,"text-secondary":`#56ABAB`,"text-success":`#56AB56`,"text-warning":`#ABAB56`,warning:`#808000`,"warning-darken-1":`#808000`,"warning-darken-2":`#808000`,"warning-darken-3":`#808000`,"warning-lighten-1":`#808000`,"warning-lighten-2":`#808000`,"warning-lighten-3":`#808000`,"warning-muted":`#0178D4`}},"textual-dark":{name:`textual-dark`,dark:!0,ansi:Ec,vars:{accent:`#FEA62B`,"accent-darken-1":`#E7920D`,"accent-darken-2":`#CF7E00`,"accent-darken-3":`#B86B00`,"accent-lighten-1":`#FFBA41`,"accent-lighten-2":`#FFCF56`,"accent-lighten-3":`#FFE46B`,"accent-muted":`#593E19`,background:`#121212`,"background-darken-1":`#000000`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#212121`,"background-lighten-2":`#313131`,"background-lighten-3":`#414141`,"block-cursor-background":`#0178D4`,"block-cursor-blurred-background":`#0178D44C`,"block-cursor-blurred-foreground":`#E0E0E0`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#0178D4`,"border-blurred":`#191919`,"button-color-foreground":`#FFFFFFDD`,"button-foreground":`#E0E0E0`,error:`#B93C5B`,"error-darken-1":`#A32549`,"error-darken-2":`#8D0638`,"error-darken-3":`#780028`,"error-lighten-1":`#D0506D`,"error-lighten-2":`#E76580`,"error-lighten-3":`#FE7993`,"error-muted":`#441E27`,"footer-background":`#242F38`,"footer-description-background":`#00000000`,"footer-description-foreground":`#E0E0E0`,"footer-foreground":`#E0E0E0`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FFA62B`,foreground:`#E0E0E0`,"foreground-darken-1":`#CACACA`,"foreground-darken-2":`#B6B6B6`,"foreground-darken-3":`#A2A2A2`,"foreground-disabled":`#E0E0E060`,"foreground-lighten-1":`#F5F5F5`,"foreground-lighten-2":`#FFFFFF`,"foreground-lighten-3":`#FFFFFF`,"foreground-muted":`#E0E0E099`,"input-cursor-background":`#E0E0E0`,"input-cursor-foreground":`#121212`,"input-selection-background":`#368AE966`,"link-background":`#00000000`,"link-background-hover":`#0178D4`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#0178D4`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#0178D4`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#0178D4`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#E0E0E0`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#E0E0E0`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#E0E0E099`,panel:`#242F38`,"panel-darken-1":`#141F27`,"panel-darken-2":`#000F18`,"panel-darken-3":`#000003`,"panel-lighten-1":`#343F49`,"panel-lighten-2":`#45505A`,"panel-lighten-3":`#57626D`,primary:`#0178D4`,"primary-background":`#33424E`,"primary-background-darken-1":`#21313E`,"primary-background-darken-2":`#0F212F`,"primary-background-darken-3":`#0F212F`,"primary-background-lighten-1":`#45525D`,"primary-background-lighten-2":`#57636D`,"primary-background-lighten-3":`#69747D`,"primary-darken-1":`#0065BE`,"primary-darken-2":`#0053AA`,"primary-darken-3":`#004295`,"primary-lighten-1":`#368AE9`,"primary-lighten-2":`#539EFF`,"primary-lighten-3":`#6DB2FF`,"primary-muted":`#0C304C`,scrollbar:`#003054`,"scrollbar-active":`#0178D4`,"scrollbar-background":`#000000`,"scrollbar-background-active":`#000000`,"scrollbar-background-hover":`#000000`,"scrollbar-corner-color":`#000000`,"scrollbar-hover":`#003C6A`,secondary:`#004578`,"secondary-background":`#333B42`,"secondary-background-darken-1":`#212A31`,"secondary-background-darken-2":`#0F1921`,"secondary-background-darken-3":`#0F1921`,"secondary-background-lighten-1":`#454C52`,"secondary-background-lighten-2":`#575E63`,"secondary-background-lighten-3":`#696F74`,"secondary-darken-1":`#003465`,"secondary-darken-2":`#002452`,"secondary-darken-3":`#001541`,"secondary-lighten-1":`#23568B`,"secondary-lighten-2":`#3B689F`,"secondary-lighten-3":`#507BB3`,"secondary-muted":`#0C2130`,success:`#4EBF71`,"success-darken-1":`#36AA5E`,"success-darken-2":`#18954B`,"success-darken-3":`#008139`,"success-lighten-1":`#64D484`,"success-lighten-2":`#7AE998`,"success-lighten-3":`#8FFFAC`,"success-muted":`#24452E`,surface:`#1E1E1E`,"surface-active":`#2A2A2A`,"surface-darken-1":`#0D0D0D`,"surface-darken-2":`#000000`,"surface-darken-3":`#000000`,"surface-lighten-1":`#2D2D2D`,"surface-lighten-2":`#3E3E3E`,"surface-lighten-3":`#4F4F4F`,text:`#FFFFFFDD`,"text-accent":`#FFC473`,"text-disabled":`#FFFFFF60`,"text-error":`#D17E92`,"text-muted":`#FFFFFF99`,"text-primary":`#57A5E2`,"text-secondary":`#5684A5`,"text-success":`#8AD4A1`,"text-warning":`#FFC473`,warning:`#FEA62B`,"warning-darken-1":`#E7920D`,"warning-darken-2":`#CF7E00`,"warning-darken-3":`#B86B00`,"warning-lighten-1":`#FFBA41`,"warning-lighten-2":`#FFCF56`,"warning-lighten-3":`#FFE46B`,"warning-muted":`#593E19`}},"textual-light":{name:`textual-light`,dark:!1,ansi:{black:`#000000`,red:`#AA3731`,green:`#448C27`,yellow:`#CB9000`,blue:`#325CC0`,magenta:`#7A3E9D`,cyan:`#0083B2`,white:`#F7F7F7`,brightBlack:`#777777`,brightRed:`#F05050`,brightGreen:`#60CB00`,brightYellow:`#FFBC5D`,brightBlue:`#007ACC`,brightMagenta:`#E64CE6`,brightCyan:`#00AACB`,brightWhite:`#F7F7F7`},vars:{accent:`#FEA62B`,"accent-darken-1":`#E7920D`,"accent-darken-2":`#CF7E00`,"accent-darken-3":`#B86B00`,"accent-lighten-1":`#FFBA41`,"accent-lighten-2":`#FFCF56`,"accent-lighten-3":`#FFE46B`,"accent-muted":`#E9CEA9`,background:`#E0E0E0`,"background-darken-1":`#CACACA`,"background-darken-2":`#B6B6B6`,"background-darken-3":`#A2A2A2`,"background-lighten-1":`#F5F5F5`,"background-lighten-2":`#FFFFFF`,"background-lighten-3":`#FFFFFF`,"block-cursor-background":`#004578`,"block-cursor-blurred-background":`#0045784C`,"block-cursor-blurred-foreground":`#1F1F1F`,"block-cursor-foreground":`#000000DD`,"block-hover-background":`#00000019`,boost:`#0000000A`,"boost-darken-1":`#0000000A`,"boost-darken-2":`#0000000A`,"boost-darken-3":`#0000000A`,"boost-lighten-1":`#1616160A`,"boost-lighten-2":`#2525250A`,"boost-lighten-3":`#3535350A`,border:`#004578`,"border-blurred":`#D0D1D0`,"button-color-foreground":`#000000DD`,"button-foreground":`#1F1F1F`,error:`#B93C5B`,"error-darken-1":`#A32549`,"error-darken-2":`#8D0638`,"error-darken-3":`#780028`,"error-lighten-1":`#D0506D`,"error-lighten-2":`#E76580`,"error-lighten-3":`#FE7993`,"error-muted":`#D4AEB8`,"footer-background":`#D0D0D0`,"footer-description-background":`#00000000`,"footer-description-foreground":`#1F1F1F`,"footer-foreground":`#1F1F1F`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#0178D4`,foreground:`#1F1F1F`,"foreground-darken-1":`#0E0E0E`,"foreground-darken-2":`#000000`,"foreground-darken-3":`#000000`,"foreground-disabled":`#1F1F1F60`,"foreground-lighten-1":`#2E2E2E`,"foreground-lighten-2":`#3F3F3F`,"foreground-lighten-3":`#505050`,"foreground-muted":`#1F1F1F99`,"input-cursor-background":`#1F1F1F`,"input-cursor-foreground":`#E0E0E0`,"input-selection-background":`#23568B66`,"link-background":`#00000000`,"link-background-hover":`#004578`,"link-color":`#000000DD`,"link-color-hover":`#000000DD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#004578`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#004578`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#004578`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#1F1F1F`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#1F1F1F`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#1F1F1F99`,panel:`#D0D0D0`,"panel-darken-1":`#BBBBBB`,"panel-darken-2":`#A6A6A6`,"panel-darken-3":`#939393`,"panel-lighten-1":`#E5E5E5`,"panel-lighten-2":`#FAFAFA`,"panel-lighten-3":`#FFFFFF`,primary:`#004578`,"primary-background":`#004578`,"primary-background-darken-1":`#003465`,"primary-background-darken-2":`#002452`,"primary-background-darken-3":`#001541`,"primary-background-lighten-1":`#23568B`,"primary-background-lighten-2":`#3B689F`,"primary-background-lighten-3":`#507BB3`,"primary-darken-1":`#003465`,"primary-darken-2":`#002452`,"primary-darken-3":`#001541`,"primary-lighten-1":`#23568B`,"primary-lighten-2":`#3B689F`,"primary-lighten-3":`#507BB3`,"primary-muted":`#9CB1C0`,scrollbar:`#7994A9`,"scrollbar-active":`#004578`,"scrollbar-background":`#CACACA`,"scrollbar-background-active":`#CACACA`,"scrollbar-background-hover":`#CACACA`,"scrollbar-corner-color":`#CACACA`,"scrollbar-hover":`#6587A1`,secondary:`#0178D4`,"secondary-background":`#0178D4`,"secondary-background-darken-1":`#0065BE`,"secondary-background-darken-2":`#0053AA`,"secondary-background-darken-3":`#004295`,"secondary-background-lighten-1":`#368AE9`,"secondary-background-lighten-2":`#539EFF`,"secondary-background-lighten-3":`#6DB2FF`,"secondary-darken-1":`#0065BE`,"secondary-darken-2":`#0053AA`,"secondary-darken-3":`#004295`,"secondary-lighten-1":`#368AE9`,"secondary-lighten-2":`#539EFF`,"secondary-lighten-3":`#6DB2FF`,"secondary-muted":`#9DC0DC`,success:`#4EBF71`,"success-darken-1":`#36AA5E`,"success-darken-2":`#18954B`,"success-darken-3":`#008139`,"success-lighten-1":`#64D484`,"success-lighten-2":`#7AE998`,"success-lighten-3":`#8FFFAC`,"success-muted":`#B4D6BE`,surface:`#D8D8D8`,"surface-active":`#E8E8E8`,"surface-darken-1":`#C3C3C3`,"surface-darken-2":`#AEAEAE`,"surface-darken-3":`#9A9A9A`,"surface-lighten-1":`#EDEDED`,"surface-lighten-2":`#FFFFFF`,"surface-lighten-3":`#FFFFFF`,text:`#000000DD`,"text-accent":`#A86D1C`,"text-disabled":`#00000060`,"text-error":`#7A273C`,"text-muted":`#00000099`,"text-primary":`#002D4F`,"text-secondary":`#004F8B`,"text-success":`#337E4A`,"text-warning":`#A86D1C`,warning:`#FEA62B`,"warning-darken-1":`#E7920D`,"warning-darken-2":`#CF7E00`,"warning-darken-3":`#B86B00`,"warning-lighten-1":`#FFBA41`,"warning-lighten-2":`#FFCF56`,"warning-lighten-3":`#FFE46B`,"warning-muted":`#E9CEA9`}},"tokyo-night":{name:`tokyo-night`,dark:!0,ansi:{black:`#15161E`,red:`#F7768E`,green:`#9ECE6A`,yellow:`#E0AF68`,blue:`#7AA2F7`,magenta:`#BB9AF7`,cyan:`#7DCFFF`,white:`#A9B1D6`,brightBlack:`#414868`,brightRed:`#F7768E`,brightGreen:`#9ECE6A`,brightYellow:`#E0AF68`,brightBlue:`#7AA2F7`,brightMagenta:`#BB9AF7`,brightCyan:`#7DCFFF`,brightWhite:`#C0CAF5`},vars:{accent:`#FE9E64`,"accent-darken-1":`#E78A51`,"accent-darken-2":`#D0763E`,"accent-darken-3":`#BA632C`,"accent-lighten-1":`#FFB277`,"accent-lighten-2":`#FFC78A`,"accent-lighten-3":`#FFDC9E`,"accent-muted":`#5E4238`,background:`#1A1B26`,"background-darken-1":`#070817`,"background-darken-2":`#000000`,"background-darken-3":`#000000`,"background-lighten-1":`#292A36`,"background-lighten-2":`#3A3A47`,"background-lighten-3":`#4B4B58`,"block-cursor-background":`#BB9AF7`,"block-cursor-blurred-background":`#BB9AF74C`,"block-cursor-blurred-foreground":`#A9B1D6`,"block-cursor-foreground":`#FFFFFFDD`,"block-hover-background":`#FFFFFF19`,boost:`#FFFFFF0A`,"boost-darken-1":`#E9E9E90A`,"boost-darken-2":`#D4D4D40A`,"boost-darken-3":`#BFBFBF0A`,"boost-lighten-1":`#FFFFFF0A`,"boost-lighten-2":`#FFFFFF0A`,"boost-lighten-3":`#FFFFFF0A`,border:`#BB9AF7`,"border-blurred":`#1E2235`,"button-color-foreground":`#24283B`,"button-foreground":`#A9B1D6`,error:`#F6768E`,"error-darken-1":`#E0617A`,"error-darken-2":`#C94D68`,"error-darken-3":`#B33856`,"error-lighten-1":`#FF8AA1`,"error-lighten-2":`#FF9FB5`,"error-lighten-3":`#FFB4CA`,"error-muted":`#5C3645`,"footer-background":`#414868`,"footer-description-background":`#00000000`,"footer-description-foreground":`#A9B1D6`,"footer-foreground":`#A9B1D6`,"footer-item-background":`#00000000`,"footer-key-background":`#00000000`,"footer-key-foreground":`#FF9E64`,foreground:`#A9B1D6`,"foreground-darken-1":`#949CC1`,"foreground-darken-2":`#8189AC`,"foreground-darken-3":`#6D7698`,"foreground-disabled":`#A9B1D660`,"foreground-lighten-1":`#BDC5EB`,"foreground-lighten-2":`#D2DAFF`,"foreground-lighten-3":`#E7EFFF`,"foreground-muted":`#A9B1D699`,"input-cursor-background":`#A9B1D6`,"input-cursor-foreground":`#1A1B26`,"input-selection-background":`#D0AEFF66`,"link-background":`#00000000`,"link-background-hover":`#BB9AF7`,"link-color":`#FFFFFFDD`,"link-color-hover":`#FFFFFFDD`,"markdown-h1-background":`#00000000`,"markdown-h1-color":`#BB9AF7`,"markdown-h2-background":`#00000000`,"markdown-h2-color":`#BB9AF7`,"markdown-h3-background":`#00000000`,"markdown-h3-color":`#BB9AF7`,"markdown-h4-background":`#00000000`,"markdown-h4-color":`#A9B1D6`,"markdown-h5-background":`#00000000`,"markdown-h5-color":`#A9B1D6`,"markdown-h6-background":`#00000000`,"markdown-h6-color":`#A9B1D699`,panel:`#414868`,"panel-darken-1":`#2F3755`,"panel-darken-2":`#1E2744`,"panel-darken-3":`#0C1733`,"panel-lighten-1":`#53597A`,"panel-lighten-2":`#656B8E`,"panel-lighten-3":`#787EA1`,primary:`#BB9AF7`,"primary-background":`#504D60`,"primary-background-darken-1":`#413D52`,"primary-background-darken-2":`#322E45`,"primary-background-darken-3":`#322E45`,"primary-background-lighten-1":`#605D6E`,"primary-background-lighten-2":`#6F6C7C`,"primary-background-lighten-3":`#7E7C8A`,"primary-darken-1":`#A686E1`,"primary-darken-2":`#9173CC`,"primary-darken-3":`#7D60B7`,"primary-lighten-1":`#D0AEFF`,"primary-lighten-2":`#E5C2FF`,"primary-lighten-3":`#FBD7FF`,"primary-muted":`#4A4164`,scrollbar:`#4F4270`,"scrollbar-active":`#BB9AF7`,"scrollbar-background":`#070817`,"scrollbar-background-active":`#070817`,"scrollbar-background-hover":`#070817`,"scrollbar-corner-color":`#070817`,"scrollbar-hover":`#615187`,secondary:`#7AA2F7`,"secondary-background":`#484E60`,"secondary-background-darken-1":`#383E52`,"secondary-background-darken-2":`#282F45`,"secondary-background-darken-3":`#282F45`,"secondary-background-lighten-1":`#585D6E`,"secondary-background-lighten-2":`#686D7C`,"secondary-background-lighten-3":`#787D8A`,"secondary-darken-1":`#648EE1`,"secondary-darken-2":`#4D7BCC`,"secondary-darken-3":`#3468B7`,"secondary-lighten-1":`#8FB6FF`,"secondary-lighten-2":`#A5CAFF`,"secondary-lighten-3":`#BBDFFF`,"secondary-muted":`#364364`,success:`#9ECE6A`,"success-darken-1":`#89B956`,"success-darken-2":`#75A443`,"success-darken-3":`#619030`,"success-lighten-1":`#B2E37D`,"success-lighten-2":`#C8F891`,"success-lighten-3":`#DDFFA6`,"success-muted":`#41503A`,surface:`#24283B`,"surface-active":`#313448`,"surface-darken-1":`#14182A`,"surface-darken-2":`#00031B`,"surface-darken-3":`#000009`,"surface-lighten-1":`#34384C`,"surface-lighten-2":`#45495E`,"surface-lighten-3":`#575A70`,text:`#FFFFFFDD`,"text-accent":`#FFBE98`,"text-disabled":`#FFFFFF60`,"text-error":`#F9A4B4`,"text-muted":`#FFFFFF99`,"text-primary":`#D2BCF9`,"text-secondary":`#A7C1F9`,"text-success":`#BEDE9C`,"text-warning":`#EACA9B`,warning:`#DFAF68`,"warning-darken-1":`#C99A55`,"warning-darken-2":`#B48742`,"warning-darken-3":`#9E7430`,"warning-lighten-1":`#F6C37B`,"warning-lighten-2":`#FFD88F`,"warning-lighten-3":`#FFEDA3`,"warning-muted":`#554739`}}},Oc=Object.freeze(Object.keys(Dc).sort()),kc=new Map;function Ac(){return Oc}function jc(e){if(!Mc(e))return null;let t=kc.get(e);if(t!==void 0)return t;let n=Fc(Dc[e]);return kc.set(e,n),n}function Mc(e){return Object.hasOwn(Dc,e)}function Nc(e){let t=Dc[e],n=Pc(t,`background`),r=Fo(t.name,n),i=e=>r(Pc(t,e));return{name:t.name,dark:t.dark,bg:n,fg:i(`foreground`),primary:i(`primary`),secondary:i(`secondary`),accent:i(`accent`),success:i(`success`),warning:i(`warning`),error:i(`error`),ansi:new Go(wc.map(e=>Lc(t.ansi[e],t.name,`ansi.${e}`)))}}function Pc(e,t){let n=e.vars[t];if(n===void 0)throw Error(`Theme ${e.name}: required base var "${t}" missing from data file`);return Ic(n,e.name,t)}function Fc(e){let t=new Map;for(let[n,r]of Object.entries(e.vars))t.set(n,Ic(r,e.name,`var ${n}`));for(let n of hc){let r=Pc(e,`text-${n}`);t.set(`text-${n}`,_c(r,Pc(e,`${n}-muted`),Pc(e,`background`)))}return new Po(e.name,e.dark,t)}function Ic(e,t,n){try{return bs(e)}catch(e){throw e instanceof ns?Error(`Theme ${t}: ${n}: ${e.message}`,{cause:e}):e}}function Lc(e,t,n){let r=Ic(e,t,n);if(r.alpha!==1)throw Error(`Theme ${t}: ${n} has alpha in ${JSON.stringify(e)} (expected #RRGGBB)`);return r}function Rc(e){return new Ss(e.bg,e.fg,e.ansi,gc(e.name,e.dark,{primary:e.primary,secondary:e.secondary,accent:e.accent,success:e.success,warning:e.warning,error:e.error,background:e.bg,foreground:e.fg}))}const zc=Rc(Nc(`default`));Rc(Nc(`svg-export`)),Rc(Nc(`monokai`)),Rc(Nc(`nord`)),Rc(Nc(`gruvbox`)),Rc(Nc(`dracula`)),Rc(Nc(`tokyo-night`)),Rc(Nc(`flexoki`)),Rc(Nc(`cyberpunk`)),Rc(Nc(`catppuccin-mocha`)),Rc(Nc(`catppuccin-latte`)),Rc(Nc(`catppuccin-frappe`)),Rc(Nc(`catppuccin-macchiato`)),Rc(Nc(`solarized-dark`)),Rc(Nc(`solarized-light`)),Rc(Nc(`rose-pine`)),Rc(Nc(`rose-pine-moon`)),Rc(Nc(`rose-pine-dawn`)),Rc(Nc(`atom-one-dark`)),Rc(Nc(`atom-one-light`)),Rc(Nc(`textual-dark`)),Rc(Nc(`textual-light`)),Rc(Nc(`textual-ansi`));const Bc=new Set([`error`,`success`,`warning`]);function Vc(e){let t=e.indexOf(`-`);return t===-1?e:e.slice(0,t)}function Hc(e){return Bc.has(Vc(e))}function Uc(e,t,n){if(Bs(t))return new Po(n??e.name,e.dark,e.vars);let r={...t,hueShift:0},i=new Map;for(let[n,a]of e.vars){let e=Hc(n)?r:t;i.set(n,Xs.fromRgba(a).applyKey(e).toRgba())}let a=i.get(`background`);if(a===void 0)throw Error(`transposePalette: palette "${e.name}" has no "background" var; cannot derive the dark flag without a background color.`);let o=Xs.fromRgba(a).l<.5;return new Po(n??e.name,o,i)}var Wc=class{ease;stops;constructor(e,t){if(this.ease=e,this.stops=t,t.length===0)throw RangeError(`a ColorRamp needs at least one stop`);for(let[e,n]of t.entries()){if(!Number.isFinite(n.at))throw RangeError(`ColorRamp stop ${e} has a non-finite position ${n.at}`);let r=t[e-1];if(r!==void 0&&n.at<r.at)throw RangeError(`ColorRamp stops must be in ascending position order; stop ${e} at ${n.at} follows stop ${e-1} at ${r.at}`)}}at(e){if(!Number.isFinite(e))throw RangeError(`ColorRamp.at needs a finite value, got ${e}`);let t=this.stops,n=-1;for(;n+1<t.length&&t[n+1].at<=e;)n++;if(n<0)return t[0].color;let r=t[n];if(n===t.length-1)return r.color;let i=t[n+1],a=this.ease((e-r.at)/(i.at-r.at));return a<=0?r.color:a>=1?i.color:Xs.fromRgba(r.color).mix(Xs.fromRgba(i.color),a).toRgba()}};function Gc(e,t,n,r){for(let[i,a]of[[`x1`,e],[`y1`,t],[`x2`,n],[`y2`,r]])if(!Number.isFinite(a))throw RangeError(`cubicBezier ${i} must be finite, got ${a}`);if(e<0||e>1||n<0||n>1)throw RangeError(`cubicBezier x1 and x2 must lie in [0, 1], got ${e} and ${n}`);let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c,u=e=>((o*e+a)*e+i)*e,d=e=>((l*e+c)*e+s)*e,f=e=>(3*o*e+2*a)*e+i,p=1e-9,m=e=>{let t=e;for(let n=0;n<8;n++){let n=u(t)-e;if(Math.abs(n)<p)return t;let r=f(t);if(Math.abs(r)<1e-6)break;t-=n/r}let n=0,r=1;for(t=e;r-n>p;)u(t)<e?n=t:r=t,t=(n+r)/2;return t};return e=>d(m(Math.min(1,Math.max(0,e))))}function Kc(e,t=`jump-end`){let n=t===`jump-none`?2:1;if(!Number.isInteger(e)||e<n)throw RangeError(`steps(${e}, "${t}") needs a whole number of steps ≥ ${n}`);let r=t===`jump-start`||t===`start`||t===`jump-both`,i={"jump-start":e,start:e,"jump-end":e,end:e,"jump-both":e+1,"jump-none":e-1}[t],a=+!!r;return t=>Math.min(i,Math.floor(Math.min(1,Math.max(0,t))*e)+a)/i}const qc=e=>e,Jc=Kc(1,`jump-end`),Yc={linear:qc,ease:Gc(.25,.1,.25,1),"ease-in":Gc(.42,0,1,1),"ease-out":Gc(0,0,.58,1),"ease-in-out":Gc(.42,0,.58,1),"step-start":Kc(1,`jump-start`),"step-end":Jc,step:Jc,sine:e=>(1-Math.cos(Math.PI*e))/2};function Xc(e){if(!Object.hasOwn(Yc,e))throw RangeError(`unknown ease ${JSON.stringify(e)}; expected one of `+Object.keys(Yc).map(e=>JSON.stringify(e)).join(`, `));return Yc[e]}function Zc(e,t){if(!Number.isFinite(t)||t<=0)throw RangeError(`${e} must be a positive number of seconds, got ${t}`)}function Qc(e,t,n){if(!Number.isFinite(t))throw RangeError(`${e} needs a finite t, got ${t}`);let r=t%n;if(r>=0)return r;let i=r+n;return i>=n?0:i}const $c=new Float64Array(1);new BigUint64Array($c.buffer);const el={once(e,t){if(!Number.isFinite(e))throw RangeError(`Phase.once start must be finite, got ${e}`);return Zc(`Phase.once duration`,t),n=>Math.min(1,Math.max(0,(n-e)/t))},loop(e){return Zc(`Phase.loop period`,e),t=>Qc(`Phase.loop`,t,e)/e},pingPong(e){Zc(`Phase.pingPong period`,e);let t=el.loop(e);return e=>1-Math.abs(2*t(e)-1)}};function tl(e,t){return{owner:e.owner,row:e.row,col:e.col+t,inner:e.inner&&tl(e.inner,t)}}function nl(e,t){for(let n=e;n;n=n.inner)if(n.owner===t)return!0;return!1}const rl=[`bold`,`dim`,`italic`,`underline`,`blink`,`blink2`,`reverse`,`conceal`,`strike`,`underline2`,`frame`,`encircle`,`overline`],il={bold:1,dim:2,italic:3,underline:4,blink:5,blink2:6,reverse:7,conceal:8,strike:9,underline2:21,frame:51,encircle:52,overline:53},al={b:`bold`,d:`dim`,i:`italic`,u:`underline`,s:`strike`,r:`reverse`,o:`overline`,uu:`underline2`};var ol=class extends Error{constructor(e,t){super(e,t),this.name=`StyleSyntaxError`}};const sl=new mo;var H=class e{color;bgcolor;bold;dim;italic;underline;blink;blink2;reverse;conceal;strike;underline2;frame;encircle;overline;link;meta;anchor;nextChange;constructor(e={}){let t=e.nextChange??1/0;if(!(t>-1/0))throw RangeError(`Style nextChange must be a time in seconds or Infinity, got ${t}`);this.nextChange=t,this.color=_l(e.color),this.bgcolor=vl(e.bgcolor),this.bold=e.bold,this.dim=e.dim,this.italic=e.italic,this.underline=e.underline,this.blink=e.blink,this.blink2=e.blink2,this.reverse=e.reverse,this.conceal=e.conceal,this.strike=e.strike,this.underline2=e.underline2,this.frame=e.frame,this.encircle=e.encircle,this.overline=e.overline,this.link=e.link,this.meta=e.meta,this.anchor=e.anchor}get isNull(){return this.color===void 0&&this.bgcolor===void 0&&this.bold===void 0&&this.dim===void 0&&this.italic===void 0&&this.underline===void 0&&this.blink===void 0&&this.blink2===void 0&&this.reverse===void 0&&this.conceal===void 0&&this.strike===void 0&&this.underline2===void 0&&this.frame===void 0&&this.encircle===void 0&&this.overline===void 0&&this.link===void 0&&this.meta===void 0&&this.anchor===void 0&&this.nextChange===1/0}get transparentBackground(){return this.bgcolor===void 0||this.bgcolor.isDefault}get backgroundStyle(){return new e({bgcolor:this.bgcolor})}with(t){return new e({...this,...t})}get withoutColor(){return this.with({color:void 0,bgcolor:void 0})}withLink(e){return this.with({link:e})}clearMetaAndLinks(){return this.with({link:void 0,meta:void 0})}withAnchor(e){return this.with({anchor:e})}shiftedBy(e){return this.anchor?this.withAnchor(tl(this.anchor,e)):this}add(t){return!t||t.isNull?this:this.isNull?t:new e({color:t.color??this.color,bgcolor:t.bgcolor??this.bgcolor,bold:t.bold??this.bold,dim:t.dim??this.dim,italic:t.italic??this.italic,underline:t.underline??this.underline,blink:t.blink??this.blink,blink2:t.blink2??this.blink2,reverse:t.reverse??this.reverse,conceal:t.conceal??this.conceal,strike:t.strike??this.strike,underline2:t.underline2??this.underline2,frame:t.frame??this.frame,encircle:t.encircle??this.encircle,overline:t.overline??this.overline,link:t.link??this.link,meta:t.meta&&this.meta?{...this.meta,...t.meta}:t.meta??this.meta,anchor:t.anchor??this.anchor,nextChange:Math.min(this.nextChange,t.nextChange)})}equals(e){return this===e?!0:this.color?.name===e.color?.name&&this.bgcolor?.name===e.bgcolor?.name&&this.bold===e.bold&&this.dim===e.dim&&this.italic===e.italic&&this.underline===e.underline&&this.blink===e.blink&&this.blink2===e.blink2&&this.reverse===e.reverse&&this.conceal===e.conceal&&this.strike===e.strike&&this.underline2===e.underline2&&this.frame===e.frame&&this.encircle===e.encircle&&this.overline===e.overline&&this.link===e.link&&xl(this.anchor,e.anchor)&&this.nextChange===e.nextChange}drawnColors(e){let t=Bo,n=this.bgcolor?.flattenAlpha(t),r=n?.getTruecolor(void 0,!1)??t,i=this.color?.flattenAlpha(r),a=t=>e===void 0?t:t.downgrade(e);return{color:i===void 0?void 0:a(i),bgcolor:n===void 0?void 0:a(n)}}toSgrCodes(e){if(this.isNull)return``;let t=this.drawnColors(e);return[...rl.filter(e=>this[e]===!0).map(e=>`${il[e]}`),...t.color?.getAnsiCodes(!0)??[],...t.bgcolor?.getAnsiCodes(!1)??[]].join(`;`)}toString(){if(this.isNull)return`none`;let e=[];for(let t of rl)this[t]===!1&&e.push(`not ${t}`);for(let t of rl)this[t]===!0&&e.push(t);return this.color&&e.push(this.color.name),this.bgcolor&&e.push(`on ${this.bgcolor.name}`),this.link&&e.push(`link ${this.link}`),e.join(` `)||`none`}static null(){return U}static fromColor(t,n){return new e({color:t,bgcolor:n})}static fromMeta(t){return new e({meta:t})}static pickFirst(...e){for(let t of e)if(t!==void 0)return t;throw Error(`All arguments are undefined`)}static combine(e){let t=U;for(let n of e)n&&(t=t.add(n));return t}static chain(...t){return e.combine(t)}static normalize(e){return e.trim().replace(/\s+/g,` `)}static parse(t){let n=e.normalize(t);return n===``||n===`none`?U:sl.get(n,gl)}};const U=new H,cl=/^[a-z][a-z0-9._-]*$/;function ll(e,t){return e instanceof H?e.add(t):e===``?t:typeof e==`string`?{under:e,over:t}:{under:e.under,over:e.over.add(t)}}var ul=class{styles;constructor(e={},t){if(this.styles=new Map,t?.inherit!==!1)for(let[e,t]of Object.entries(yl))this.styles.set(e,t);for(let[t,n]of Object.entries(e)){if(!cl.test(t))throw Error(`Invalid style name: "${t}" (must be lowercase, start with letter, contain only letters, digits, ".", "-", "_")`);this.styles.set(t,H.parse(n))}}get(e){return this.styles.get(e)}resolve(e){return e instanceof H?e:typeof e==`string`?this.styles.get(e)??H.parse(e):this.resolve(e.under).add(e.over)}has(e){return this.styles.has(e)}};const dl=new Set(rl),fl=[`not`,`on`,`link`,...rl,...Is];function pl(e,t){let n=[],r=Array.from({length:t.length+1},(e,t)=>t);for(let i=1;i<=e.length;i++){let a=[i];for(let o=1;o<=t.length;o++){let s=i>1&&o>1&&e[i-1]===t[o-2]&&e[i-2]===t[o-1];a[o]=Math.min(r[o]+1,a[o-1]+1,r[o-1]+Number(e[i-1]!==t[o-1]),s?n[o-2]+1:1/0)}[n,r]=[r,a]}return r[t.length]}function ml(e,t){let n=e.toLowerCase(),r=Math.max(1,Math.floor(n.length/3)),i=t.filter(e=>Math.abs(e.length-n.length)<=r).map(e=>({name:e,distance:pl(n,e)})),a=Math.min(r,...i.map(e=>e.distance)),o=i.filter(e=>e.distance===a).map(e=>`"${e.name}"`).sort();return o.length===0?``:` (did you mean ${o.join(` or `)}?)`}function hl(e,t,n){try{return V.parse(e)}catch(r){throw new ol(`${t} "${e}"${ml(e,n)}: ${String(r)}`,{cause:r})}}function gl(e){let t=e.split(/\s+/),n={},r=0;for(;r<t.length;){let e=t[r];if(e===`not`){r++;let e=t[r];if(!e)throw new ol(`Expected attribute after "not" in style definition`);let i=al[e]??e;if(!dl.has(i))throw new ol(`Invalid attribute: "${e}"${ml(e,rl)}`);n[i]=!1,r++;continue}if(e===`on`){r++;let e=t[r];if(!e)throw new ol(`Expected color after "on" in style definition`);n.bgcolor=hl(e,`Invalid background color`,Is),r++;continue}if(e===`link`){r++;let e=t[r];e&&(n.link=e),r++;continue}let i=al[e]??e;if(dl.has(i)){n[i]=!0,r++;continue}n.color=hl(e,`Invalid style definition`,fl),r++}return new H(n)}function _l(e){if(e!==void 0)return e instanceof V?e:V.parse(e)}function vl(e){let t=_l(e);return t?.value?.alpha===0?void 0:t}const yl={none:U,reset:new H({color:V.default(),bgcolor:V.default(),bold:!1,dim:!1,italic:!1,underline:!1,blink:!1,blink2:!1,reverse:!1,conceal:!1,strike:!1,underline2:!1,frame:!1,encircle:!1,overline:!1}),bold:new H({bold:!0}),dim:new H({dim:!0}),italic:new H({italic:!0}),underline:new H({underline:!0}),blink:new H({blink:!0}),blink2:new H({blink2:!0}),reverse:new H({reverse:!0}),conceal:new H({conceal:!0}),strike:new H({strike:!0}),underline2:new H({underline2:!0}),frame:new H({frame:!0}),encircle:new H({encircle:!0}),overline:new H({overline:!0}),"table.header":new H({bold:!0}),"table.footer":new H({bold:!0}),"table.cell":U,"table.title":new H({italic:!0}),"table.caption":new H({italic:!0,dim:!0}),"repr.ellipsis":H.parse(`yellow`),"repr.indent":H.parse(`dim green`),"repr.error":H.parse(`bold red`),"repr.str":H.parse(`not bold not italic green`),"repr.brace":H.parse(`bold`),"repr.comma":H.parse(`bold`),"repr.ipv4":H.parse(`bold bright_green`),"repr.ipv6":H.parse(`bold bright_green`),"repr.eui48":H.parse(`bold bright_green`),"repr.eui64":H.parse(`bold bright_green`),"repr.tag_start":H.parse(`bold`),"repr.tag_name":H.parse(`bold bright_magenta`),"repr.tag_contents":H.parse(`default`),"repr.tag_end":H.parse(`bold`),"repr.attrib_name":H.parse(`not italic yellow`),"repr.attrib_equal":H.parse(`bold`),"repr.attrib_value":H.parse(`not italic magenta`),"repr.number":H.parse(`bold not italic cyan`),"repr.number_complex":H.parse(`bold not italic cyan`),"repr.bool_true":H.parse(`italic bright_green`),"repr.bool_false":H.parse(`italic bright_red`),"repr.none":H.parse(`italic magenta`),"repr.url":H.parse(`not bold not italic underline bright_blue`),"repr.uuid":H.parse(`not bold bright_yellow`),"repr.call":H.parse(`bold magenta`),"repr.path":H.parse(`magenta`),"repr.filename":H.parse(`bright_magenta`),"log.time":H.parse(`cyan dim`),"log.message":U,"log.path":H.parse(`dim`),"log.line_no":H.parse(`cyan`),"log.level":U,"rule.line":H.parse(`bright_green`),"rule.text":U,"strip.separator":H.parse(`bright_black`),"strip.rail":H.parse(`bright_black`),"json.brace":H.parse(`bold`),"json.bool_true":H.parse(`italic bright_green`),"json.bool_false":H.parse(`italic bright_red`),"json.key":H.parse(`bold blue`),"json.null":H.parse(`italic magenta`),"json.number":H.parse(`bold not italic cyan`),"json.str":H.parse(`not bold not italic green`),"syntax.keyword":H.parse(`bold magenta`),"syntax.constant":H.parse(`italic bright_magenta`),"syntax.string":H.parse(`green`),"syntax.number":H.parse(`cyan`),"syntax.comment":H.parse(`dim italic`),"syntax.line_number":H.parse(`dim`),"syntax.line_number.highlight":H.parse(`bold grey93 on grey27`),"markdown.h1":H.parse(`bold underline`),"markdown.h2":H.parse(`bold`),"markdown.h3":H.parse(`bold dim`),"markdown.h4":H.parse(`bold dim italic`),"markdown.code":H.parse(`bold dark_turquoise on grey11`),"markdown.hr":H.parse(`yellow`),"markdown.link":H.parse(`bright_blue`),"markdown.link_url":H.parse(`blue`),"markdown.table.border":H.parse(`cyan`),"markdown.table.header":H.parse(`not bold cyan`),"progress.description":U,"progress.percentage":H.parse(`magenta`),"progress.remaining":H.parse(`cyan`),"progress.elapsed":H.parse(`yellow`),"progress.spinner":H.parse(`green`),"progress.download":H.parse(`green`),"progress.filesize":H.parse(`green`),"progress.filesize.total":H.parse(`green`),"progress.data.speed":H.parse(`red`),"bar.back":H.parse(`grey23`),"bar.complete":H.parse(`rgb(249,38,114)`),"bar.finished":H.parse(`rgb(114,156,31)`),"bar.pulse":H.parse(`rgb(249,38,114)`),"scrollbar.thumb":U,"scrollbar.track":H.parse(`grey37`),tree:U,"tree.guide":U,"status.spinner":H.parse(`green`),"status.message":U,prompt:U,"prompt.choices":H.parse(`bold magenta`),"prompt.default":H.parse(`bold cyan`),"prompt.invalid":H.parse(`red`),"prompt.invalid.choice":H.parse(`red`),"inspect.attr":H.parse(`yellow italic`),"inspect.attr.dunder":H.parse(`yellow italic dim`),"inspect.callable":H.parse(`bold magenta`),"inspect.error":H.parse(`bold red`),"inspect.help":H.parse(`cyan`),"inspect.doc":H.parse(`dim`),"inspect.value.border":H.parse(`green`),"traceback.border":H.parse(`red`),"traceback.text":H.parse(`red`),"traceback.title":H.parse(`bold red`),"traceback.exc_type":H.parse(`bold bright_red`),"traceback.exc_value":U,"traceback.offset":H.parse(`bold bright_red`),"scope.border":H.parse(`blue`),"scope.key":H.parse(`italic`),"scope.key.special":H.parse(`dim italic`),pretty:U,"iso8601.date":H.parse(`blue`),"iso8601.time":H.parse(`magenta`),"iso8601.timezone":H.parse(`yellow`),"iso8601.year":U,"iso8601.month":U,"iso8601.day":U,"iso8601.week":U,"iso8601.hour":U,"iso8601.minute":U,"iso8601.second":U,"iso8601.frac":U,"iso8601.ms":U,"iso8601.hyphen":U},bl=new ul;function xl(e,t){return e===t?!0:!e||!t?!1:e.owner===t.owner&&e.row===t.row&&e.col===t.col&&xl(e.inner,t.inner)}var Sl;(function(e){e.BELL=`bell`,e.CARRIAGE_RETURN=`carriage_return`,e.HOME=`home`,e.CLEAR=`clear`,e.SHOW_CURSOR=`show_cursor`,e.HIDE_CURSOR=`hide_cursor`,e.ENABLE_ALT_SCREEN=`enable_alt_screen`,e.DISABLE_ALT_SCREEN=`disable_alt_screen`,e.CURSOR_UP=`cursor_up`,e.CURSOR_DOWN=`cursor_down`,e.CURSOR_FORWARD=`cursor_forward`,e.CURSOR_BACKWARD=`cursor_backward`,e.CURSOR_MOVE_TO_COLUMN=`cursor_move_to_column`,e.CURSOR_MOVE_TO=`cursor_move_to`,e.ERASE_IN_LINE=`erase_in_line`,e.SET_WINDOW_TITLE=`set_window_title`})(Sl||={});var W=class e{text;style;control;constructor(e,t,n){this.text=e,this.style=t,this.control=n}get cellLength(){return this.control?0:R(this.text)}get hasText(){return this.text.length>0}get isControl(){return this.control!==void 0}splitCells(t){if(t>=this.cellLength)return[this,new e(``)];if(t<=0)return[new e(``),this];let[n,r]=bo(this.text,t);return[new e(n,this.style),new e(r,this.style?.shiftedBy(t))]}static _line;static line(){return e._line??=new e(`
42
+ `)}static anchorLines(t,n,r=0){return t.map((t,i)=>{let a=r+i,o=0;return t.map(t=>{if(t.isControl)return t;let r=t.style??H.null(),i=new e(t.text,r.withAnchor({owner:n,row:a,col:o,inner:r.anchor}));return o+=t.cellLength,i})})}static nextChange(e){let t=1/0;for(let n of e)t=Math.min(t,n.style?.nextChange??1/0);return t}static anchorAt(e,t,n){if(!Number.isInteger(t)||t<0)return;let r=0;for(let i of e[n]??[]){let e=r+i.cellLength;if(t<e){let e=i.style?.anchor;return e&&tl(e,t-r)}r=e}}static*applyStyle(t,n,r){if(!n&&!r){yield*t;return}for(let i of t){if(i.isControl){yield i;continue}let t=i.style;n&&(t=n.add(t)),r&&(t=t?t.add(r):r),yield new e(i.text,t,i.control)}}static*filterControl(e,t){for(let n of e)n.isControl===t&&(yield n)}static splitLines(t){let n=[],r=[];for(let i of t){if(i.isControl){r.push(i);continue}let t=i.text;if(!t.includes(`
43
43
  `)){r.push(i);continue}let a=t.split(`
44
44
  `);for(let t=0;t<a.length;t++){t>0&&(n.push(r),r=[]);let o=a[t];o.length>0&&r.push(new e(o,i.style))}}return r.length>0&&n.push(r),n}static adjustLineLength(t,n,r,i=!0){let a=e.getLineLength(t);if(a===n)return t;if(a<n)return i?[...t,new e(` `.repeat(n-a),r)]:t;let o=[],s=n;for(let e of t){if(e.isControl){o.push(e);continue}let t=e.cellLength;if(t<=s)o.push(e),s-=t;else{let[t]=e.splitCells(go(s));o.push(t),s=0;break}}return o}static*cropLines(t,n){let r=Math.max(0,n),i=0;for(let n of t){if(n.isControl){yield n;continue}let t=n.text.split(`
45
45
  `);for(let e=0;e<t.length;e++){e>0&&(i=0);let[n]=yo(t[e],go(r-i));i+=R(n),t[e]=n}let a=t.join(`
46
- `);yield a===n.text?n:new e(a,n.style)}}static splitAndCropLines(t,n){return e.splitLines(t).map(t=>e.adjustLineLength(t,n))}static getLineLength(e){let t=0;for(let n of e)n.isControl||(t+=n.cellLength);return t}static getShape(t){if(t.length===0)return[0,0];let n=0;for(let r of t){let t=e.getLineLength(r);t>n&&(n=t)}return[n,t.length]}static*mergeHorizontal(t,n=0){let r=0;for(let e of t)e.lines.length>r&&(r=e.lines.length);let i=n>0?[new e(` `.repeat(n))]:[];for(let n=0;n<r;n++){for(let r=0;r<t.length;r++){r>0&&(yield*i);let a=t[r];yield*e.adjustLineLength(a.lines[n]??[],a.width)}yield e.line()}}static*simplify(t){let n;for(let r of t){if(!n){n=r;continue}yl(n.style,r.style)&&!r.isControl&&!n.isControl?n=new e(n.text+r.text,n.style):(yield n,n=r)}n&&(yield n)}static*stripLinks(t){for(let n of t)n.style?.link?yield new e(n.text,n.style.clearMetaAndLinks(),n.control):yield n}static*stripStyles(t){for(let n of t)yield new e(n.text,void 0,n.control)}static*removeColor(t){for(let n of t)n.style?yield new e(n.text,n.style.withoutColor,n.control):yield n}static divide(e,t){if(t.length===0)return[e];let n=[],r=0,i=0,a=e[r];for(let o of t){let t=[];for(;a&&i+a.cellLength<=o;)t.push(a),i+=a.cellLength,r++,a=e[r];if(a&&!a.isControl&&i<o){let e=go(o-i),[n,r]=a.splitCells(e);n.hasText&&t.push(n),i+=n.cellLength,a=r}n.push(t)}let o=[];for(a?.hasText&&o.push(a),r++;r<e.length;)o.push(e[r]),r++;return o.length>0&&n.push(o),n}static alignTop(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)];for(;a.length<r;)a.push([...o]);return a.slice(0,r)}static alignBottom(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)],s=Math.max(0,r-a.length),c=[];for(let e=0;e<s;e++)c.push([...o]);return c.push(...a),c.slice(0,r)}static alignMiddle(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)],s=Math.max(0,Math.floor((r-a.length)/2)),c=[];for(let e=0;e<s;e++)c.push([...o]);for(c.push(...a);c.length<r;)c.push([...o]);return c.slice(0,r)}static setShape(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)];for(;a.length<r;)a.push([...o]);return a.slice(0,r)}};function yl(e,t){return e===t?!0:!e||!t?!1:e.equals(t)}const bl=e=>/^[\x00-\x7F]*$/.test(e);function xl(e,t,n,r=String){return e.asciiOnly===!0&&!bl(r(t))?n:t}function Sl(e,t){return(e.theme??gl).resolve(t)}function Cl(e){return{...e,maxWidth:vo(e.maxWidth)}}function wl(e){return{...e,onDraw:void 0}}function Tl(e,t){let n=Cl(e);if(Number.isFinite(n.maxWidth))return n;let r=t.measure(wl(n)).maximum;if(!Number.isFinite(r))throw RangeError(`maxWidth is unbounded and this renderable has no natural width to fall back on: its content does not implement measure(), or something inside it asked for an unbounded width of its own. Render it at a finite width, or give the content a measure() that reports a finite maximum.`);return{...n,maxWidth:vo(r)}}function El(e){return typeof e==`object`&&!!e&&`measure`in e&&typeof e.measure==`function`}var Dl=class e{minimum;maximum;constructor(e,t){this.minimum=e,this.maximum=t}get span(){return this.maximum-this.minimum}normalize(){let t=e=>Number.isNaN(e)?0:e;return new e(Math.max(0,Math.min(t(this.minimum),t(this.maximum))),Math.max(0,t(this.maximum)))}withMaximum(t){return new e(Math.min(this.minimum,t),Math.min(this.maximum,t))}withMinimum(t){let n=Math.max(this.minimum,t);return new e(n,Math.max(this.maximum,n))}clamp(t,n){return new e(Math.min(Math.max(this.minimum,t),n),Math.min(Math.max(this.maximum,t),n))}static get(t,n){if(t.maxWidth<1)return new e(0,0);if(!El(n))return new e(0,t.maxWidth);let{minimum:r,maximum:i}=n.measure(wl(t));return new e(r,Math.min(i,t.maxWidth)).normalize()}};function*Ol(e){let t=/\s*\S+\s*/y;for(let n=t.exec(e);n!==null;n=t.exec(e))yield n[0]}function kl(e){return R(e.trimEnd())}function Al(e){return Array.from(Ol(e),kl)}function jl(e,t){let n=xo(e,t);return R(n[0])>t?[``,...n]:n}function Ml(e,t,n){if(t<=0)return[];let r=[],i=e=>{e>0&&r.push(go(e))},a=0,o=0;for(let r of Ol(e)){let e=kl(r);if(t-a>=e)a+=R(r);else if(n.fold&&e>t){let e=jl(r,t),n=o;for(let t=0;t<e.length;t+=1){i(n);let r=e[t];t===e.length-1?a=R(r):n+=R(r)}}else i(o),a=R(r);o+=R(r)}return r}const Nl=new TextEncoder;function Pl(e){let t=2166136261;for(let n of Nl.encode(e))t=Math.imul(t^n,16777619);return(t>>>0).toString(16).padStart(8,`0`)}const Fl=`\\x1b\\x07\\x9c`,Il=RegExp(`[${Fl}]`,`g`);function Ll(e){return e.replace(Il,``)}function Rl(e){let t=Ll(e);return`\x1b]8;id=${Pl(t)};${t}\x1b\\`}const zl=RegExp(`\\x1b\\]8;([^;${Fl}]*);([^${Fl}]*)(?:\\x1b\\\\|\\x07|\\x9c)`);new RegExp(zl.source,`g`);const Bl=/[\x00-\x08\x0B-\x1F\x7F]/g;function Vl(e){return e.replace(Bl,``)}const Hl=/\s+$/;function Ul(e){return e.map(e=>e.text).join(``)}function Wl(e){return R(Hl.exec(Ul(e))?.[0]??``)}function Gl(e){let t=e.link;if(!t)return e;let n=Ll(t);return n===t?e:e.withLink(n)}function Kl(e){return typeof e==`string`?e:e instanceof H?ql(e):{under:e.under,over:ql(e.over)}}function ql(e){return Gl(e.anchor?e.withAnchor(void 0):e)}function Jl(e){return e instanceof H?e.isNull:e===``}function Yl(e,t){return Gl(t instanceof H?t:typeof t==`string`?Xl(e,t):Xl(e,t.under).add(t.over))}function Xl(e,t){try{return Sl(e,t)}catch(n){if(!(n instanceof nl))throw n;return e.onStyleError?.(n,t),U}}var Zl=class e{start;end;style;constructor(e,t,n){this.start=e,this.end=t,this.style=n}get hasLength(){return this.end>this.start}toString(){return`Span(${this.start}, ${this.end})`}split(t){return t<=this.start||t>=this.end?[this,void 0]:[new e(this.start,t,this.style),new e(t,this.end,this.style)]}move(t){return new e(this.start+t,this.end+t,this.style)}rightCrop(t){return t>=this.end?this:new e(this.start,Math.min(this.end,t),this.style)}extend(t){return new e(this.start,this.end+t,this.style)}},G=class e{_text;_spans;_style;_justify;_overflow;_end;_tabSize;_noWrap;constructor(e,t){this._text=e?Vl(e):``,this._spans=[],this._style=Kl(t?.style??U),this._justify=t?.justify,this._overflow=t?.overflow,this._end=t?.end??`
47
- `,this._tabSize=Mo(t?.tabSize??8),this._noWrap=t?.noWrap??!1}get plain(){return this._text}set plain(e){let t=Vl(e);this._text=t;let n=t.length;this._spans=this._spans.map(e=>e.end>n?new Zl(e.start,Math.min(e.end,n),e.style):e).filter(e=>e.start<n)}get length(){return this._text.length}get cellLength(){return R(No(this._text,this._tabSize).text)}get hasContent(){return this._text.length>0}get style(){return this._style}set style(e){this._style=Kl(e)}get justify(){return this._justify}set justify(e){this._justify=e}get overflow(){return this._overflow}set overflow(e){this._overflow=e}get end(){return this._end}set end(e){this._end=e}get noWrap(){return this._noWrap}set noWrap(e){this._noWrap=e}get spans(){return this._spans}resolvedStyle(e){return Yl(e,this._style)}edgeStyle(e,t){let n=this.resolvedStyle(t);if(this._text.length===0)return n;let r=e===`left`?0:this._text.length-1,i=n;for(let e of this._spans)e.start<=r&&r<e.end&&(i=i.add(Yl(t,e.style)));return i}append(t,n){if(t instanceof e){if(n!==void 0)throw Error(`Style argument must not be provided when appending RichText`);let e=this._text.length;this._text+=t._text,this._addSpan(e,this._text.length,t._style);for(let n of t._spans)this._spans.push(n.move(e));return this}let r=Vl(t),i=this._text.length;return this._text+=r,this._addSpan(i,this._text.length,n??``),this}contains(t){let n=t instanceof e?t._text:t;return this._text.includes(n)}at(t){let n=t<0?this._text.length+t:t;return this._text[n]===void 0?new e(``):this.slice(n,n+1)}slice(e,t){let n=this._text,r=n.length,i=e??0,a=t??r,o=i<0?Math.max(0,r+i):Math.min(i,r),s=a<0?Math.max(0,r+a):Math.min(a,r);if(o>=s)return this.blankCopy();let c=n.slice(o,s),l=this.blankCopy(c);for(let e of this._spans){let t=Math.max(e.start,o)-o,n=Math.min(e.end,s)-o;t<n&&l._spans.push(new Zl(t,n,e.style))}return l}_addSpan(e,t,n){let r=Kl(n);Jl(r)||this._spans.push(new Zl(e,t,r))}stylize(e,t,n){let r=this._text.length,i=t===void 0?0:t<0?r+t:t,a=n===void 0?r:n<0?r+n:n;if(i>=a||i>=r||a<=0)return this;let o=Math.max(0,i),s=Math.min(r,a);return this._addSpan(o,s,e),this}highlightRegex(e,t){let n=this._text,r=0,i=e.flags.includes(`g`)?e.flags:e.flags+`g`,a=new RegExp(e.source,i),o;for(;(o=a.exec(n))!==null;){if(o[0].length===0){a.lastIndex++;continue}if(o.groups){let e=0;for(let[t,n]of Object.entries(o.groups))if(n!==void 0){let r=o[0].indexOf(n,e);if(r>=0){let i=o.index+r;this._addSpan(i,i+n.length,t),e=r+n.length}}r++;continue}this._addSpan(o.index,o.index+o[0].length,t??``),r++}return r}highlightWords(e,t,n){let r=n?.caseSensitive!==!1,i=0;for(let n of e){if(n.length===0)continue;let e=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),a=r?`g`:`gi`,o=RegExp(`\\b${e}\\b`,a),s;for(;(s=o.exec(this._text))!==null;)this._addSpan(s.index,s.index+s[0].length,t),i++}return i}copy(){let t=new e(this._text,{style:this._style,justify:this._justify,overflow:this._overflow,end:this._end,tabSize:this._tabSize,noWrap:this._noWrap});return t._spans=this._spans.slice(),t}blankCopy(t){return new e(t??``,{style:this._style,justify:this._justify,overflow:this._overflow,end:this._end,tabSize:this._tabSize,noWrap:this._noWrap})}split(e){let t=e??`
48
- `,n=this._text,r=[],i=0;for(;;){let e=n.indexOf(t,i);if(e===-1){r.push(this.slice(i));break}r.push(this.slice(i,e)),i=e+t.length}return r}divide(e){if(e.length===0)return[this.copy()];let t=[],n=0;for(let r of e)t.push(this.slice(n,r)),n=r;return t.push(this.slice(n)),t}rstrip(){let e=this._text.replace(/\s+$/,``);return e.length<this._text.length&&(this.plain=e),this}pad(e,t){let n=(t??` `).repeat(e);return this._spans=this._spans.map(t=>t.move(e)),this._text=n+this._text+n,this}expandTabs(){let e=No(this._text,this._tabSize);return this._spans=this._spans.map(t=>new Zl(e.offsetOf(t.start),e.offsetOf(t.end),t.style)),this._text=e.text,this}padLeft(e,t){let n=t??` `;return this._spans=this._spans.map(t=>t.move(e)),this._text=n.repeat(e)+this._text,this}padRight(e,t){let n=t??` `;return this._text+=n.repeat(e),this}setLength(e){return this._text.length<e?this._text+=` `.repeat(e-this._text.length):this._text.length>e&&(this.plain=this._text.slice(0,e)),this}extendStyle(e){let t=this._text.length;return this._text+=` `.repeat(e),this._spans=this._spans.map(n=>n.end===t?n.extend(e):n),this}truncate(e,t){if(this.cellLength<=e)return this;this.expandTabs();let n=t?.mode??`right`,r=vo(e),i=Do(t?.marker??`…`,r),a=go(r-R(i));if(n===`right`)return this._cropRightTo(a),i&&(this._text+=i),this;if(n===`left`)return this._cropLeftTo(a),i&&(this._spans=this._spans.map(e=>e.move(i.length)),this._text=i+this._text),this;let o=go(Math.floor(a/2)),s=go(a-o),c=Do(this._text,o).length,l=this._text.length-Oo(this._text,s).length,u=this._text.slice(0,c),d=this._text.slice(l),f=c,p=l,m=i.length-(p-f),h=[];for(let e of this._spans)e.end<=f?h.push(e):e.start>=p?h.push(e.move(m)):(e.start<f&&h.push(new Zl(e.start,f,e.style)),e.end>p&&h.push(new Zl(p+m,e.end+m,e.style)));return this._text=u+i+d,this._spans=h,this}_cropRightTo(e){this.plain=Do(this._text,e)}_cropLeftTo(e){let t=this._text.length-Oo(this._text,e).length,n=-t;this._spans=this._spans.map(e=>{if(!(e.end<=t))return new Zl(Math.max(0,e.start+n),e.end+n,e.style)}).filter(e=>e!==void 0),this._text=this._text.slice(t)}align(e,t){let n=this.cellLength;if(n>=t)return this;this.expandTabs();let r=t-n;switch(e){case`left`:this.padRight(r);break;case`right`:this.padLeft(r);break;case`center`:{let e=Math.floor(r/2),t=r-e;this.padLeft(e),this.padRight(t);break}}return this}removeSuffix(e){return this._text.endsWith(e)&&(this.plain=this._text.slice(0,-e.length)),this}appendTokens(e){for(let[t,n]of e)this.append(t,n);return this}static assemble(t,n){let r=new e(``,{style:n?.style});for(let n of t)if(typeof n==`string`)r.append(n);else if(n instanceof e)r.append(n);else{let[e,t]=n;r.append(e,t)}return r}static styled(t,n){let r=new e(t);return r.stylize(n),r}static fromFragments(t,n){let r=new e(``,{end:n?.end??``});for(let e of t)r.append(e);return r}*render(e){let t=No(this._text,this._tabSize),n=this.resolvedStyle(e),{segments:r,covered:i}=this._buildSegments(t,n,e),a=Ql(r,i);r.push(W.line());let o=W.splitLines(r),s=vo(Tl(e,this).maxWidth),c=this._overflow??e.overflow??`fold`,l=this._noWrap||(e.noWrap??!1),u=c===`ignore`?vo(1/0):s,d=l?vo(1/0):u,f=c===`ignore`?void 0:this._justify??e.justify,p=xl(e,`…`,`.`);for(let e=0;e<o.length;e+=1){let t=o[e],r=a[e],i=e<o.length-1,l=Ml(Ul(t),d,{fold:c===`fold`}),m=W.divide(t,l),h=this._justifyLines(m.map((e,t)=>({segments:[...this._fitLine(e,u,c,p)],free:e=>r(t===0?e:l[t-1]+e)})),s,n,f);for(let e=0;e<h.length;e+=1)yield*h[e],(e<h.length-1||i)&&(yield W.line())}this._end&&(yield new W(this._end))}measure(e){let t=No(this._text,this._tabSize).text.split(`
49
- `),n=t.reduce((e,t)=>Math.max(e,R(t)),0),r=t.flatMap(Al),i=r.length>0?r.reduce((e,t)=>Math.max(e,t),0):n,a=vo(e.maxWidth);return{minimum:Math.min(i,a),maximum:Math.min(n,a)}}_buildSegments({text:e,offsetOf:t},n,r){let i=n=>Math.max(0,Math.min(t(n),e.length)),a=new Set;for(let e of this._spans)a.add(i(e.start)),a.add(i(e.end));a.delete(0),a.delete(e.length);let o=[0,...[...a].sort((e,t)=>e-t),e.length],s=new Map(o.map((e,t)=>[e,t]).reverse()),c=o.slice(0,-1).map(()=>n),l=c.map(()=>!1);for(let e of this._spans){let t=i(e.end),n=Yl(r,e.style),a=s.get(i(e.start));for(let e=a;o[e]<t;e++)c[e]=c[e].add(n),l[e]=!0}return{segments:c.map((t,n)=>new W(e.slice(o[n],o[n+1]),t.isNull?void 0:t)),covered:l}}_justifyLines(e,t,n,r){return r===`full`?e.map(({segments:r},i)=>i===e.length-1?r:this._fillLine(r,t,n)):e.map(e=>[...this._justifyLine(e,t,n,r)])}*_justifyLine({segments:e,free:t},n,r,i){let a=r.isNull?void 0:r;switch(i){case`center`:case`right`:{let r=W.adjustLineLength(e,W.getLineLength(e)-Wl(e),void 0,!1),o=Math.max(n-W.getLineLength(r),0),s=i===`center`?Math.floor(o/2):o;yield*$l(r,t,s,o-s,a);break}case`left`:yield*$l(e,t,0,Math.max(n-W.getLineLength(e),0),a);break;default:yield*e;break}}_fillLine(e,t,n){let r=Ul(e),i=r.split(` `);r.endsWith(` `)&&i.pop();let a=i.length-1,o=Array(a).fill(1),s=i.reduce((e,t)=>e+R(t),0)+a;for(let e=0;s<t&&a>0;e=(e+1)%a)o[a-1-e]+=1,s+=1;let c=[],l=0;for(let e=0;e<i.length;e+=1)l+=R(i[e]),c.push(l),l+=1,e<a&&c.push(l);let u=W.divide(e,c),d=(e,t)=>e.filter(e=>e.hasText).at(t)?.style??n,f=[];for(let e=0;e<i.length;e+=1)if(f.push(...u[e*2]),e<a){let t=d(u[e*2],-1),r=d(u[e*2+2],0),i=t.equals(r)?t:n;f.push(new W(` `.repeat(o[e]),i.isNull?void 0:i))}return f}*_fitLine(e,t,n,r){let i=W.getLineLength(e);if(i-Wl(e)<=t){yield*W.adjustLineLength(e,Math.min(i,t),void 0,!1);return}if(n===`ellipsis`&&t>0){yield*W.adjustLineLength(e,t-1,void 0,!1),yield new W(r);return}yield*W.adjustLineLength(e,t,void 0,!1)}};function Ql(e,t){let n=[[]];return e.forEach((e,r)=>{e.text.split(`
50
- `).forEach((e,i)=>{i>0&&n.push([]);let a=n.at(-1);a.push({end:(a.at(-1)?.end??0)+R(e),free:!t[r]})})}),n.map(e=>t=>{let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i].end<=t?n=i+1:r=i}return e[n].free})}function*$l(e,t,n,r,i){if(n+r===0)return yield*e;let a=e.filter(e=>e.text!==``),o=e=>` `.repeat(e),s=W.getLineLength(a);if(s===0)return yield new W(o(n+r),i);let c=a.length-1,l=n>0&&a[0].cellLength>0&&t(0),u=r>0&&a[c].cellLength>0&&t(s-1),d=+!!l,f=u?c:c+1;if(d>f){yield new W(o(n)+a[0].text+o(r),i);return}n>0&&(yield new W(o(n)+(l?a[0].text:``),i)),yield*a.slice(d,f),r>0&&(yield new W((u?a[c].text:``)+o(r),i))}const eu=Object.freeze({name:`join`});var tu=class{fg;bg;constructor(e,t){this.fg=e,this.bg=t}};function nu(e,t){for(let n=e;n;n=n.inner){if(t.has(n.owner))return{fg:!0,bg:!0};if(n.owner instanceof tu){let{fg:e,bg:r}=n.owner;return{fg:e!==null&&t.has(e),bg:r!==null&&t.has(r)}}}return{fg:!1,bg:!1}}function ru(e,t,n,r){let i=e.join(t,n,r);return{render:e=>W.anchorLines([[...i.render(e)]],eu)[0]}}function iu(e){return{render:t=>W.anchorLines([[...e.render(t)]],e)[0]}}var au=class{items;joiner;constructor(e,t){this.items=e,this.joiner=t}*render(e){let t=this.items;if(t.length===0)return;let n={...e,justify:void 0};yield*ru(this.joiner,null,t[0],{index:0}).render(n);for(let e=0;e<t.length;e++){let r=t[e];yield*iu(r).render(n);let i=e+1<t.length?t[e+1]:null;yield*ru(this.joiner,r,i,{index:e+1}).render(n)}yield W.line()}measure(e){let t=0;for(let n of this.render(e))t+=n.cellLength;return{minimum:t,maximum:t}}};const ou=[`seam`,`divider`,`lead`,`tail`];function*su(e){yield e,`mix`in e&&(yield*su(e.mix[0]),yield*su(e.mix[1]))}const cu=e=>typeof e.glyph==`string`?[e.glyph]:e.glyph.oneOf,lu=(e,t,n,r)=>{let i=cu(e);return i[Math.floor(parseInt(Pl(`${t}:${n}:${r}`),16)/2**32*i.length)]},uu=e=>R(cu(e)[0]??``),du=e=>e.reduce((e,t)=>e+uu(t),0);function fu(e,t,n){if(e===`ground`)return n(`mixes ground, whose colour is unknown`);let r=typeof e==`object`&&e?e:{};if((r.edge===`left`||r.edge===`right`)&&(r.part===`bg`||r.part===`fg`))return r.edge===t&&n(`names the ${t} neighbour, which this part is drawn without`),Object.freeze({edge:r.edge,part:r.part});if(typeof r.role==`string`)return Object.freeze({role:r.role});if(Array.isArray(r.mix)&&r.mix.length===3){let[e,i,a]=r.mix;return(typeof a!=`number`||!(a>=0&&a<=1))&&n(`mixes at ${String(a)}, outside 0..1`),Object.freeze({mix:Object.freeze([fu(e,t,n),fu(i,t,n),a])})}return n(`has a colour that is not a Paint: ${JSON.stringify(e)}`)}const pu=(e,t,n)=>e===`ground`?e:fu(e,t,n),mu={seam:void 0,divider:void 0,lead:`left`,tail:`right`};function hu(e,t){if(!Array.isArray(e))throw Error(`CellJoiner: ${t} is not a list of cells`);return e.map((e,n)=>{if(typeof e!=`object`||!e)throw Error(`CellJoiner: ${t}[${n}] is not a cell`);return e})}function gu(e,t){let n=n=>Object.freeze(hu(e[n],`${t} ${n}`).map((e,r)=>{let i=e=>{throw Error(`CellJoiner: ${t} ${n}[${r}] ${e}`)},a=e.glyph,o=typeof a==`object`&&a?a.oneOf:void 0;typeof a!=`string`&&!(Array.isArray(o)&&o.every(e=>typeof e==`string`))&&i(`has a glyph that is neither a string nor a oneOf of strings: ${JSON.stringify(a)}`),e.fg===`ground`&&e.bg===`ground`&&i(`has ground on both sides`);let s=cu(e);return s.length===0&&i(`has an empty oneOf`),s.some(t=>R(t)!==uu(e))&&i(`has oneOf members of different widths`),t===`ascii`&&!s.every(bl)&&i(`is not ASCII`),Object.freeze({glyph:typeof e.glyph==`string`?e.glyph:Object.freeze({oneOf:Object.freeze([...s])}),fg:pu(e.fg,mu[n],i),bg:pu(e.bg,mu[n],i)})})),r=n(`seam`),i=e.divider===e.seam?r:n(`divider`);if(du(i)!==du(r))throw Error(`CellJoiner: ${t} divider is not the width of the seam`);return Object.freeze({seam:r,divider:i,lead:n(`lead`),tail:n(`tail`)})}const _u=(e,t)=>ou.flatMap(t=>e[t]).some(e=>[e.fg,e.bg].some(e=>e!==`ground`&&[...su(e)].some(e=>`edge`in e&&e.edge===t&&e.part===`bg`)));function vu(e){return{shape:e,reads:{left:_u(e,`left`),right:_u(e,`right`)}}}function yu(e){return e!==void 0&&!e.isDefault?e:void 0}function bu(e){return e.flattenAlpha(Bo)}function xu(e,t){if(e.reverse)return!1;let{color:n,bgcolor:r}=e.drawnColors(t??B.TRUECOLOR);if(n===void 0||r===void 0)return!1;let i=n.fixedValue,a=r.fixedValue;return i!==void 0&&a!==void 0?Js.fromRgba(i).deltaE(Js.fromRgba(a))<.04:n.number===void 0?n.name===r.name:n.number===r.number}function Su(e,t,n){if(`edge`in e){let n=t[e.edge];if(e.part===`fg`)return n?.color;let r=yu(n?.bgcolor);return r&&bu(r)}if(`role`in e)return Sl(n,e.role).color;let[r,i,a]=e.mix,o=Su(r,t,n),s=Su(i,t,n);return o&&s&&V.blend(o,s,a)}function Cu(e,t,n){return e.fg===`ground`?new H({color:e.bg===`ground`?void 0:Su(e.bg,t,n),reverse:!0}):new H({color:Su(e.fg,t,n),bgcolor:e.bg===`ground`?void 0:Su(e.bg,t,n)})}const wu=e=>ou.flatMap(t=>e[t].flatMap(cu)).join(``);var Tu=class{shape;ascii;_forms;constructor(e,t){this.shape=gu(e,`glyph`),this.ascii=gu(t,`ascii`),this._forms={glyph:vu(this.shape),ascii:vu(this.ascii)}}join(e,t,{index:n}){let r=this._forms;return{*render(i){let{shape:a,reads:o}=xl(i,r.glyph,r.ascii,e=>wu(e.shape)),s={left:e?.edgeStyle(`right`,i),right:t?.edgeStyle(`left`,i)},c=yu(s.left?.bgcolor),l=yu(s.right?.bgcolor),u=e!==null&&(!o.left||c!==void 0),d=t!==null&&(!o.right||l!==void 0),f={left:e,right:t},p=e=>e!==`ground`&&`edge`in e?f[e.edge]:null,m=e=>a[e].map((t,r)=>{let a=new tu(p(t.fg),p(t.bg));return new W(lu(t,e,n,r),Cu(t,s,i).withAnchor({owner:a,row:0,col:0,inner:void 0}))});if(!u||!d){(u||d)&&(yield*m(d?`lead`:`tail`));return}let h=m(`seam`);yield*a.divider!==a.seam&&h.every(e=>e.style!==void 0&&xu(e.style,i.colorSystem))?m(`divider`):h}}}};const Eu={edge:`left`,part:`bg`},Du={edge:`right`,part:`bg`},Ou={edge:`left`,part:`fg`},ku={mix:[Eu,Du,1/2]},Au=`ground`;function ju(e,t){return{seam:[{glyph:e,fg:Eu,bg:Du}],divider:[{glyph:t,fg:Ou,bg:Eu}],lead:[{glyph:e,fg:Au,bg:Du}],tail:[{glyph:e,fg:Eu,bg:Au}]}}function Mu(e,t){let n=e=>({mix:[Eu,Du,e]}),r={glyph:` `,fg:Ou,bg:Eu};return{...ju(e,t),seam:[{glyph:e,fg:Eu,bg:n(1/3)},{glyph:e,fg:n(1/3),bg:n(2/3)},{glyph:e,fg:n(2/3),bg:Du}],divider:[r,{glyph:t,fg:Ou,bg:Eu},r]}}const Nu=(e,t,n,r,i)=>new Tu(e(t,n),{...e(r,i),lead:[]});function Pu(e,t,n){let r=[{glyph:t,fg:Eu,bg:Au},...n,{glyph:e,fg:Du,bg:Au}];return{seam:r,divider:r,lead:[{glyph:e,fg:Du,bg:Au}],tail:[{glyph:t,fg:Eu,bg:Au}]}}const Fu=(e,t)=>Pu(e,t,[{glyph:` `,fg:Ou,bg:Au}]),Iu=(e,t,n)=>Pu(e,t,[{glyph:n,fg:{role:`strip.rail`},bg:Au}]);function Lu(e,t){let n=[{glyph:e,fg:t,bg:ku}];return{seam:n,divider:n,lead:[],tail:[]}}function Ru(e){return{...Lu({oneOf:e},Eu),divider:[{glyph:{oneOf:e},fg:Ou,bg:ku}]}}const zu=[{glyph:` | `,fg:{role:`strip.separator`},bg:Au}],Bu={seam:zu,divider:zu,lead:[],tail:[]},Vu=Object.freeze({powerline:Nu(ju,``,``,`>`,`>`),prism:Nu(Mu,``,``,`>`,`>`),slant:Nu(ju,``,``,`/`,`/`),backslant:Nu(ju,``,``,`\\`,`\\`),flame:Nu(ju,``,``,`}`,`}`),pixel:Nu(ju,``,``,`#`,`>`),ice:Nu(ju,``,``,`]`,`>`),bubble:Nu(ju,``,``,`)`,`)`),capsule:new Tu(Fu(``,``),Fu(`(`,`)`)),wrapper:new Tu(Pu(``,``,[]),Pu(`<`,`>`,[])),metro:new Tu(Iu(``,``,`──`),Iu(`(`,`)`,`--`)),stitch:new Tu(Lu(`┊`,Ou),Lu(`:`,Ou)),torn:new Tu(Ru([`▚▞`,`▞▚`,`▘▗`,`▝▖`,`▖▝`,`▗▘`]),Ru([`/\\`,`\\/`])),plain:new Tu(Bu,Bu)});function Hu(e,t){if(e.isControl)return``;let{text:n,style:r}=e;if(n.length===0||r===void 0)return n;let i=t.colorSystem===null?``:r.toSgrCodes(t.colorSystem),a=i.length>0?`\x1b[${i}m${n}\x1b[0m`:n,o=t.hyperlinks?r.link:void 0;return o===void 0?a:`${Rl(o)}${a}]8;;\\`}function Uu(e,t){let n=[];for(let r of e)n.push(Hu(r,t));return n.join(``)}function Wu(e,t){let n=t?.width??80,r={};t?.env!==void 0&&(r.env=t.env),t?.isTTY!==void 0&&(r.isTTY=t.isTTY);let i=t?.colorSystem,a=es(i===void 0?B.TRUECOLOR:i,r),o={colorSystem:t?.noColor?null:a.colorSystem,hyperlinks:t?.hyperlinks??a.hyperlinks},s={maxWidth:n,isTerminal:!1,asciiOnly:t?.asciiOnly??!1,theme:t?.theme,onStyleError:t?.onStyleError,highlight:t?.highlight,highlighter:t?.highlighter,colorSystem:o.colorSystem};return Uu(e.render(s),o)}var Gu=class{renderable;effect;t;key;theme;constructor(e,t,n){if(this.renderable=e,this.effect=t,!Number.isFinite(n.t))throw RangeError(`Effected needs a finite t, got ${n.t}`);this.t=n.t,this.key=n.key,this.theme=n.theme}*render(e){let t=this.renderable.render(e);if(e.colorSystem===null){yield*t;return}let n=e.colorSystem??B.TRUECOLOR,r=qu(t,n,this.theme),i=this.effect(this.t,Ju(r,n,this.theme)),a=0,o=0;for(let{segment:e,look:t}of r){if(t===void 0){yield e;continue}let{style:r,wire:s,slots:c,pair:l}=t,{terminal:u}=l,d={fg:l.fg,bg:l.bg},f=[],p=0;for(let t of To(e.text)){let e=c;if(t===`
51
- `)a++,o=0;else{let n=r.anchor&&Zc(r.anchor,p);e=Xu(i(d,{row:a,col:o,seed:this.seed(a,o),terminal:u,anchor:n}),l.reverse),o+=R(t)}p+=R(t);let m=f[f.length-1],h=m!==void 0&&td(m.colors,e)?m.drawn:this.respec(s,c,e,n);m!==void 0&&Qu(m.drawn,h)?(m.text+=t,m.cells+=R(t),m.colors=e):f.push({text:t,cells:R(t),colors:e,drawn:h})}if(f.every(e=>Qu(e.drawn,s))){yield e;continue}let m=0;for(let e of f){let t=r.shiftedBy(m),n=Qu(e.drawn,s)?t:t.add(H.fromColor(e.drawn.color,e.drawn.bgcolor));yield new W(e.text,n),m+=e.cells}}}measure(e){return Dl.get(e,this.renderable)}static shows(e,t,n,r){let i=Xu(e,e.reverse),a=Zu(i,Xu(t,e.reverse),n,r);return Xu({fg:a.fg?.getTruecolor(r,!0)??i.fg,bg:a.bg?.getTruecolor(r,!1)??i.bg},e.reverse)}respec(e,t,n,r){let i=Zu(t,n,r,this.theme);return{color:i.fg??e.color,bgcolor:i.bg??e.bgcolor}}seed(e,t){return Number.parseInt(Pl(`${this.key}:${e}:${t}`),16)/4294967296}};const Ku=V.default();function qu(e,t,n){return[...e].map(e=>{if(e.isControl)return{segment:e,look:void 0};let r=e.style??H.null(),i=r.drawnColors(t),a={fg:(i.color??Ku).getTruecolor(n,!0),bg:(i.bgcolor??Ku).getTruecolor(n,!1)},o=r.reverse===!0,s=Xu({fg:i.color?.isDefault??!0,bg:i.bgcolor?.isDefault??!0},o);return{segment:e,look:{style:r,wire:i,slots:a,pair:{...Xu(a,o),terminal:s,reverse:o}}}})}function Ju(e,t,n){let r=e.flatMap(({segment:e,look:t})=>t!==void 0&&e.text.trim()!==``&&!Qc(t.style.anchor,eu)?[t.pair]:[]),i=[...new Map(r.map(e=>[`${e.fg.hex}/${e.bg.hex}/${e.terminal.fg}/${e.terminal.bg}/${e.reverse}`,e])).values()],a=e=>i.flatMap(t=>t.terminal[e]?[]:[t[e].hex]);return{pairs:i,colors:new Set([...a(`fg`),...a(`bg`)]),fills:new Set(a(`bg`)),depth:t,theme:n}}function Yu(e,...t){let n=new Set(t);return(t,r)=>{let i=e(t,r);return(e,t)=>{let r=nu(t.anchor,n);if(!r.fg&&!r.bg)return e;let a=i(e,t);return{fg:r.fg?a.fg:e.fg,bg:r.bg?a.bg:e.bg}}}}function Xu(e,t){return t?{fg:e.bg,bg:e.fg}:e}function Zu(e,t,n,r){let i=t.bg.compositeOver(Bo),a=t.fg.compositeOver(i);return{fg:V.matchMove(e.fg,a,n,r,!0),bg:V.matchMove(e.bg,i,n,r,!1)}}function Qu(e,t){return $u(e.color,t.color,!0)&&$u(e.bgcolor,t.bgcolor,!1)}function $u(e,t,n){return e===t||ed(e,n)===ed(t,n)}function ed(e,t){return e?.getAnsiCodes(t).join(`;`)??``}function td(e,t){return nd(e.fg,t.fg)&&nd(e.bg,t.bg)}function nd(e,t){return e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha}const rd=(()=>{let e=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];return[...e,...e]})(),id=e=>e*e*e*(e*(e*6-15)+10),ad=(e,t,n)=>e+n*(t-e);function od(e,t,n,r){let i=e&15,a=i<8?t:n,o=i<4?n:i===12||i===14?t:r;return(i&1?-a:a)+(i&2?-o:o)}function sd(e,t,n){let r=Math.floor(e),i=Math.floor(t),a=Math.floor(n),o=r&255,s=i&255,c=a&255;e-=r,t-=i,n-=a;let l=id(e),u=id(t),d=id(n),f=rd[o]+s,p=rd[f]+c,m=rd[f+1]+c,h=rd[o+1]+s,g=rd[h]+c,_=rd[h+1]+c;return ad(ad(ad(od(rd[p],e,t,n),od(rd[g],e-1,t,n),l),ad(od(rd[m],e,t-1,n),od(rd[_],e-1,t-1,n),l),u),ad(ad(od(rd[p+1],e,t,n-1),od(rd[g+1],e-1,t,n-1),l),ad(od(rd[m+1],e,t-1,n-1),od(rd[_+1],e-1,t-1,n-1),l),u),d)}function cd(e,t,n,r){let i=0,a=1,o=0;for(let s=0;s<r;s++){let r=2**s;i+=a*sd(e*r,t*r,n*r),o+=a,a/=2}return i/o}function ld(e,t){let n=Math.sin(e*12.9898+t*78.233)*43758.5453;return n-Math.floor(n)}function ud(e,t,n){let r=Math.min(1,Math.max(0,(n-e)/(t-e)));return r*r*(3-2*r)}const dd=Array.from({length:48},(e,t)=>(t+1)/48),fd=[`fg`,`bg`];function pd({pairs:e,depth:t,theme:n},r,i){let a=(e,t)=>e.terminal[t]?void 0:e[t].hex,o=new Map(e.flatMap(e=>fd.flatMap(t=>{let n=a(e,t);return n===void 0?[]:[[n,e[t]]]}))),s=t===B.TRUECOLOR?.01:0,c=new Map([...r].filter(e=>!o.has(e)).map(e=>[e,1])),l=e=>Js.fromRgba(o.get(e)).l;for(let u of[...r].filter(e=>o.has(e)).sort((e,t)=>l(t)-l(e))){let r=e.flatMap(e=>{let t=fd.find(t=>a(e,t)===u);if(t===void 0)return[];let n=a(e,t===`fg`?`bg`:`fg`);return[[e,t,n===void 0?0:c.get(n)??0]]}),o=e=>r.every(([r,a,o])=>{let c=Math.min(Ho(r.fg,r.bg),4.5)-s,l=(t,n)=>gd(i,r[t],(t===a?e:o)*n);return dd.every(e=>{let i=Gu.shows(r,{fg:l(`fg`,e),bg:l(`bg`,e)},t,n);return Ho(i.fg,i.bg)>=c})}),[l,d]=o(1)?[1,1]:[0,1];for(let e=0;e<20&&d-l>.001;e++){let e=(l+d)/2;[l,d]=o(e)?[e,d]:[l,e]}c.set(u,l)}return c}function md(e,t){let n=new WeakMap;return hd(e,r=>{let i=t??r.colors,a=[r.depth,...r.pairs.map(({fg:e,bg:t,terminal:n,reverse:r})=>`${e.hex}/${t.hex}/${n.fg}/${n.bg}/${r}`),`|`,...i].join(` `),o=n.get(r.theme)??new mo;return n.set(r.theme,o),o.get(a,()=>pd(r,i,e.touch))})}function hd(e,t){return(n,r)=>{let i=t(r),a=e.field(n);return({fg:t,bg:n},r)=>{let o=Math.round(bd(a(r))*48)/48,s=(t,n)=>gd(e.touch,t,(n?0:i.get(t.hex)??0)*o);return{fg:s(t,r.terminal.fg),bg:s(n,r.terminal.bg)}}}}function gd(e,t,n){return n===0?t:e(t,n)}function _d(e){if(!(Number.isFinite(e.seconds)&&e.seconds>0))throw RangeError(`curve: seconds must be a positive number of seconds, got ${e.seconds}`);if(!(e.swing>=0&&e.swing<=1))throw RangeError(`curve: swing must be in [0, 1], got ${e.swing}`)}const vd={shimmer:{seconds:109,ease:qc.linear,swing:.9},pulse:{seconds:43,ease:qc.linear,swing:.85},sparkle:{seconds:139,ease:qc.linear,swing:.95},wheel:{seconds:907,ease:qc.linear,swing:1},fade:{seconds:20,ease:qc[`ease-in-out`],swing:1},dissolve:{seconds:30,ease:qc[`ease-in-out`],swing:1}},yd={sun:new z(255,228,176),firefly:new z(222,245,140)},bd=e=>Math.min(1,Math.max(0,e));function xd(e,t,n){if(!(n>=0&&n<=1))throw RangeError(`blend: w must be in [0, 1]; got ${n}`);let r=Math.PI/180,i=(1-n)*e.c*Math.cos(e.h*r)+n*t.c*Math.cos(t.h*r),a=(1-n)*e.c*Math.sin(e.h*r)+n*t.c*Math.sin(t.h*r);return new Js((1-n)*e.l+n*t.l,Math.hypot(i,a),Math.atan2(a,i)/r,e.alpha)}function Sd(e){let t=Js.fromRgba(e);return(e,n)=>{let r=Js.fromRgba(e);return xd(r,new Js(Math.max(r.l,t.l),t.c,t.h,t.alpha),n).toRgba()}}const Cd=(e,t)=>t*e[e.length-1][0];function wd(e,t,n){let r=t/n,i=e.findIndex(([e])=>r<e);if(!(r>0)||i<0)return 0;let[a,o]=i===0?[0,0]:e[i-1],[s,c]=e[i];return n*(o+(c-o)*(1-Math.cos(Math.PI*(r-a)/(s-a)))/2)}function Td(e,t,n){let r=Cd(e,n),i=t=>{let r=0;for(let i=0;i<24;i++)r+=wd(e,(i+.5)/24*t,n);return r*t};return i(Math.min(Math.max(t,0),r))/i(r)}const Ed=[[.24,1],[.6,0]];function Dd(e,t,n){_d(e);let r=.9+.2*ld(n,3.1),i=t=>.1*sd(t/(3*e.seconds),.5,.5+n),a=i(0);return{touch:Sd(t),field:t=>{let o=r*t/e.seconds+i(t)-a,s=Math.floor(o),c=.7+.3*ud(-.5,.5,sd(s*.37,2.1,n)),l=.5-.5*Math.cos(2*Math.PI*(o-s)),u=e.swing*e.ease(c*l);return()=>u}}}const Od=e=>Math.abs(e)>=1?0:(1-e*e)**3;function kd(e,t,n,r,i){_d(e);let a=e.seconds,o=t+2*n,s=a/2,c=e=>ud(-.4,.4,sd(e/7,3.3,5.5+i)),l=.7,u=.51,d=.4,f=l+(u+d)*a*o/80/s,p=(e,t)=>{let r=c(e),f=(ld(e,7.5+i)<.35+.6*r)*(.3+.7*r*(.6+.4*ld(e,8.5+i))),p=a*o/80*(u+d*ld(e,5.5+i)),m=bd((t-(e+l*ld(e,6.5+i))*s)/p);return{strength:f,centre:m*o-n+.06*o*Math.sin(Math.PI*m)*sd(m,2.7,e+i)}},m=e=>{let t=Math.floor(e/s),n=[];for(let r=Math.max(0,Math.ceil(t-f));r<=t;r++)n.push(p(r,e));return n},h=(e,t,n)=>Math.exp(-((sd(e,t,n)/.8)**2));return{touch:Sd(r),field:t=>{let r=m(t);return a=>{let o=0;for(let{strength:e,centre:t}of r)o=Math.max(o,e*Od((a.col-t)/n));let s=a.row+i,c=.8*sd(a.col*.05,s*.3+1.3,t*.02),l=(h(a.col*.21+c,s*.9,t*.022)*h(a.col*.33+9.1-c,s*.7,t*.018+4.2))**2;return e.swing*e.ease(o*(.1+.6*l))}}}}function Ad(e,t,n,r){_d(e);let i=Math.max(3,Math.round(t/8)),a=e.seconds,o=Array.from({length:i},(e,n)=>({home:(n+.5+.7*sd(n*1.7+.2,.3,.5+r))*(t/i),z:n*4.9+.3+r,offset:ld(n,.7+r)*a})),s=e=>o.map(t=>{let n=e+t.offset,r=Math.floor(n/a),i=ld(r,t.z+1)<.15?0:1,o=.5+.5*ld(r,t.z+2),s=ld(r,t.z+3)*(1-Cd(Ed,o)),c=n/a-r-s;return{x:t.home+5*(2*ld(r,t.z+4)-1)+5*o*(2*ld(r,t.z+5)-1)*Td(Ed,c,o)+1.5*sd(t.z,.1,e*.035),y:.6*sd(t.z,2.2,e*.035),glow:i*wd(Ed,c,o)}});return{touch:Sd(n),field:t=>{let n=s(t);return t=>{let r=0;for(let e of n)r=Math.max(r,e.glow*Od(Math.hypot(t.col-e.x,2*(t.row-e.y))/5));return e.swing*e.ease(r)}}}}function jd(e,t){return(n,{theme:r})=>{let i=e(n),a=Js.fromRgba(r.backgroundColor);return(e,n)=>{let r=t*(1-bd(i(n)));if(r===0)return e;let o=xd(Js.fromRgba(e.bg),a,r);return{fg:xd(Js.fromRgba(e.fg),o,r).toRgba(),bg:o.toRgba()}}}}function Md(e){let t=new Map;return n=>{let r=`${n.row}:${n.col}`,i=t.get(r)??bd(.5+1.1*cd(n.col*.09+1.4*sd(n.col*.035,n.row*.2+2.6,e+.5),n.row*.45,e,3));return t.set(r,i),i}}function Nd(e,t){return{effect:t,done:t=>t>=e.seconds}}function Pd(e,t){let n=e.seconds*.45,r=Xc.once(0,n);return i=>a=>r(i-t(a)*(e.seconds-n))}function Fd(e,t){_d(e);let n=Pd(e,Md(1.7+t));return Nd(e,jd(t=>{let r=n(t);return t=>e.ease(r(t))},e.swing))}const Id={depth:.4,from:.5,to:.95,maskFrom:.35,maskTo:.75,late:.6};function Ld(e,t){_d(e);let n=Md(4.2+t),r=Md(9.3+t),i=Pd(e,n),{depth:a,from:o,to:s,maskFrom:c,maskTo:l,late:u}=Id;return Nd(e,jd(t=>{let d=i(t);return t=>{let i=e.ease(d(t)),f=bd((i-o)/(s-o)),p=a*ud(c,l,r(t))*(1-u+u*n(t))*Math.sin(Math.PI*f)**2;return 1-i+p}},e.swing))}const Rd=[211,337];function zd(e,t){_d(e);let n=e.seconds,r=e=>ld(Number.parseInt(e.slice(1),16)*1e-4,17.3+t),i=(e,n)=>sd(n/Rd[0],5.9+97*e,t)+.5*sd(n/Rd[1],2.3+89*e,t+7.1),a=(t,a)=>{let o=r(t);return 360*a/n+e.swing*180*((i(o,a)-i(o,0))/1.5)};return(e,{colors:t,fills:n})=>(r,i)=>{let o={fg:!i.terminal.fg&&t.has(r.fg.hex),bg:!i.terminal.bg&&t.has(r.bg.hex)},s=(t,r,i,o)=>r?Js.fromRgba(t).applyKey({...Ls,hueShift:a(n.has(t.hex)||!o?t.hex:i.hex,e)}).toRgba():t;return{fg:s(r.fg,o.fg,r.bg,o.bg),bg:s(r.bg,o.bg,r.fg,o.fg)}}}const Bd={loops:{shimmer:(e,t=vd.shimmer)=>md(kd(t,e.span,24,yd.sun,e.z)),pulse:(e,t=vd.pulse)=>md(Dd(t,yd.sun,e.z)),sparkle:(e,t=vd.sparkle)=>md(Ad(t,e.span,yd.firefly,e.z)),wheel:(e,t=vd.wheel)=>zd(t,e.z)},transitions:{fade:(e,t=vd.fade)=>Fd(t,e.z),dissolve:(e,t=vd.dissolve)=>Ld(t,e.z)}};function Vd(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const Hd={segments:[],width:0},Ud={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Wd(e,t){return Ud[e](t)}function Gd(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 Kd=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=>Vd(iu(t),e)),o=n=>i?Vd(ru(i,null,t[n],{index:n}),e):Hd,s=n=>i?Vd(ru(i,t[n],null,{index:n+1}),e):Hd,c=(n,r)=>i?Vd(ru(i,t[n],t[r],{index:r}),e):Hd,l=[],u=null,d=r>0?{segments:[new W(` `.repeat(r))],width:r}:Hd;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=Wd(p,i),o=Gd(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new W(` `.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 W(` `.repeat(e)))}yield*t.blocks[e].segments}yield W.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=Vd(t[i],e).width,o=this.joiner?Vd(ru(this.joiner,null,t[i],{index:i}),e).width:0,s=this.joiner?Vd(ru(this.joiner,t[i],null,{index:i+1}),e).width:0;n=Math.max(n,a+o+s),r+=a,i>0&&(r+=this.gap*2,this.joiner&&(r+=Vd(ru(this.joiner,t[i-1],t[i],{index:i}),e).width))}return this.joiner&&(r+=Vd(ru(this.joiner,null,t[0],{index:0}),e).width,r+=Vd(ru(this.joiner,t[t.length-1],null,{index:t.length}),e).width),{minimum:n,maximum:r}}};function qd(e){return e<32||e===127||e>=128&&e<=159}function Jd(e){let t=``;for(let n of e)t+=qd(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function Yd(e,t){let n=Jd(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const Xd=`\x1B[38;2;255;255;255m`,Zd=`\x1B[48;2;200;40;40m`;function Qd(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 $d={fg:Qd(Xd),bg:Qd(Zd)},ef={fg:Qd(`\x1B[38;2;0;0;0m`),bg:Qd(`\x1B[48;2;220;160;40m`)};function tf(){let e=new WeakMap;return(t,n,r)=>{let i=e.get(t);i===void 0&&(i=new Map,e.set(t,i));let a=i.get(n);if(a!==void 0)return a;let o=r();return i.set(n,o),o}}const nf=[`primary`,`secondary`,`accent`],rf=[`darken-3`,`darken-2`,`darken-1`,`base`,`lighten-1`,`lighten-2`,`lighten-3`],af={"darken-3":`-darken-3`,"darken-2":`-darken-2`,"darken-1":`-darken-1`,base:``,"lighten-1":`-lighten-1`,"lighten-2":`-lighten-2`,"lighten-3":`-lighten-3`,muted:`-muted`},of=(e,t)=>`${e}${af[t]}`,sf=(e,t,n,r)=>Bf(e,n,r),cf=(e,t,n,r)=>Hf(e,Af(e,`text-${t}`),n,r),lf=e=>({tones:[rf[e],rf[e+2],rf[e+1]],text:sf}),uf={muted:{tones:[`muted`],text:cf},deepest:lf(0),deeper:lf(1),middle:lf(2),brighter:lf(3),brightest:lf(4)},df=1/0,ff={accent:{hues:[`secondary`,`accent`],run:df},duo:{hues:[`primary`,`secondary`],run:df},mono:{hues:[`primary`],run:df},alt:{hues:[`secondary`,`accent`],run:3}},pf=e=>e.variation.hues.flatMap(t=>e.shade.tones.map(e=>({hue:t,shade:e}))),mf=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},hf=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],gf=e=>typeof e==`string`&&hf.includes(e),_f={"van-der-corput":mf,"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},vf=e=>_f[e??`van-der-corput`];function yf(e){let t=0,n=1;for(let{index:r,count:i,distribution:a}of e)t+=a(r,i)*n,n*=.37;return t%1}const bf=(e,t)=>Math.floor(e*t),xf=(e,t)=>Math.round(e*t)%t;function Sf(e){return e===void 0?0:e.distribution(e.index,e.count)}function Cf(e,t,n){let r=e[n(Sf(t),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function wf(e){let t=e.findIndex(e=>e.axis===`cell`),n=t===-1?e:e.slice(0,t);return{row:n.at(-1),cell:e[n.length]}}const Tf=(e,t)=>bf(Sf(t),e.hues.length);function Ef(e,t){let{row:n,cell:r}=wf(t);return Df(e,n,r)}function Df(e,t,n){let{hues:r,run:i}=e.variation,a=n===void 0?0:Math.floor(n.index/i),o=r[(Tf(e.variation,t)+a)%r.length];if(o===void 0)throw Error(`decorEntryFor: empty variation`);return{hue:o,shade:Cf(e.shade.tones,n,xf)}}function Of(e,t){let{row:n,cell:r}=wf(t),i=r===void 0?[void 0]:Array.from({length:r.count},(e,t)=>({...r,index:t}));return[...new Map(i.map(t=>Df(e,n,t)).map(e=>[of(e.hue,e.shade),e])).values()].sort((e,t)=>nf.indexOf(e.hue)-nf.indexOf(t.hue)||kf.indexOf(e.shade)-kf.indexOf(t.shade))}const kf=[...rf,`muted`];function Af(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}const jf=(e,t)=>Af(e,of(t.hue,t.shade)),Mf=2.2,Nf=(e,t)=>t.map(t=>jf(e,t)),Pf=e=>t=>sc(t,e),Ff=Pf(B.TRUECOLOR);function If(e,t,n,r){return Lf(e,`${t}|${n.map(e=>e.hex).join(`+`)}|${r}`,()=>Rf(e,t,n,r))}const Lf=tf();function Rf(e,t,n,r){let i=n.map(Ff),a=Af(e,t),o=new z(0,0,0),s=new z(255,255,255),c=(e,t)=>Js.fromRgba(a).mixAxes(Js.fromRgba(e),{l:t,c:0,h:0,alpha:0}).toRgba(),l=e=>Array.from({length:12},(t,n)=>c(e,(n+1)/12)),u=l(o),d=[a,...l(s).flatMap((e,t)=>[e,u[t]])],f=e=>{let t=Pf(e),n=i.map(t);return e=>Math.min(1/0,...n.map(n=>Ho(t(e),n)))},p=f(B.TRUECOLOR),m=f(r),h=e=>oc(e,r,(e,t)=>i.every(n=>Ho(e,t(n))>=Mf)),g=e=>p(e)>=2.2&&h(e)!==void 0,_=(e,t)=>{let n=n=>Ho(Ff(n),e)-Ho(Ff(n),t),r=n(a)<0?o:s,i=r===o?1:-1,[l,u]=[0,1];for(let e=0;e<40;e++){let e=(l+u)/2;i*n(c(r,e))>0?u=e:l=e}return[c(r,l),c(r,u)]},v=()=>{let e=[...i].sort((e,t)=>Vo(e)-Vo(t));return e.slice(1).flatMap((t,n)=>_(t,e[n]))},y=d.find(g)??[...d,...v()].reduce((e,t)=>m(t)>m(e)?t:e),b=h(y)??y,x=m(b);return{anchor:y,state:b,short:x>=2.2?null:x}}const zf=4.5;function Bf(e,t,n){return Vf(e,`${t.hex}|${n}`,()=>{let r=ic(t);return Hf(e,[`background`,`foreground`].map(t=>Af(e,t)).reduce((e,t)=>Ho(r,t)<Ho(r,e)?t:e),t,n)})}const Vf=tf();function Hf(e,t,n,r){return Uf(e,`${t.hex}|${n.hex}|${r}`,()=>ac(t,n,zf,r))}const Uf=tf();function Wf(e,t,n){return t.depth===0?Nf(e,t.ground):Gf(e,t,n)}const Gf=(e,t,n)=>t.depth===0?[]:[np(e,{...t,depth:t.depth-1},n).plane],Kf=(e,{short:t},n)=>t===null?[]:[`theme "${e.name}": no open-trigger colour stands ${Mf}:1 off every cell beside it — the nearest stands ${t.toFixed(2)}:1 as drawn at depth ${B[n]}; another shade or variation clears it`],qf=(e,t,n)=>t>=Zf.triggerPlane?[]:[`theme "${e.name}": an open band's plane stands ΔE ${t.toFixed(3)} off the trigger that opened it as drawn at depth ${B[n]}, under the ${Zf.triggerPlane} that tells them apart; another style clears it`],Jf={base:.42,perDepth:.14,cap:.75},Yf={floor:.12,span:.8};function Xf(e,t){return nf[(nf.indexOf(e)+t)%nf.length]}const Zf={triggerPlane:.1,nestedPlane:.035};function Qf(e,t,n){return $f(e,`${ep(t)}|${n}`,()=>{let r=If(e,Xf(t.hue,t.depth),Wf(e,t,n),n),{state:i}=r,a=op(e,t,i,n),o=oc(np(e,t,n).plane,n,(e,t)=>a.every(n=>n(e,t)));if(o===void 0)throw Error(`palette "${e.name}": the ${t.hue} band at depth ${t.depth} cannot keep its floors on the colours drawn at depth ${B[n]}`);let s=Pf(n);return{state:i,plane:o,shortfalls:n===B.DEFAULT?[]:[...Kf(e,r,n),...qf(e,tp(s(i),s(o)),n)]}})}const $f=tf(),ep=({hue:e,depth:t,ground:n})=>`${e}|${t}|${n.map(e=>of(e.hue,e.shade)).join(`+`)}`,tp=(e,t)=>Js.fromRgba(e).deltaE(Js.fromRgba(t));function np(e,t,n){return rp(e,`${ep(t)}|${n}`,()=>ip(e,t,n))}const rp=tf();function ip(e,t,n){let{anchor:r}=If(e,Xf(t.hue,t.depth),Wf(e,t,n),n),i=Math.min(Jf.cap,Jf.base+Jf.perDepth*t.depth),a=(t,n)=>ys(r,Af(e,t),n),o=Gf(e,t,n),s=e=>tp(Ff(r),Ff(e))>=Zf.triggerPlane&&o.every(t=>tp(Ff(t),Ff(e))>=Zf.nestedPlane),c=a(`background`,i);return{state:r,plane:[c,a(`foreground`,i),a(`background`,Jf.cap),a(`foreground`,Jf.cap),...ap.toSorted((e,t)=>Math.abs(e-i)-Math.abs(t-i)).flatMap(e=>[a(`background`,e),a(`foreground`,e)])].find(s)??c}}const ap=Array.from({length:12},(e,t)=>(t+1)/12);function op(e,t,n,r){let{hue:i,depth:a,ground:o}=t,s=t=>np(e,{hue:i,depth:t,ground:o},r).state,c=t=>np(e,{hue:i,depth:t,ground:o},r).plane,l=c(a),u=(e,t)=>tp(Ff(l),Ff(t))>=e?e:0,d=If(e,Xf(i,a+1),Wf(e,{hue:i,depth:a+1,ground:o},r),r),f=Ho(Ff(l),Ff(d.anchor))>=2.2?Mf:0,p=(e,t)=>(n,r)=>tp(n,r(e))>=t;return[p(n,u(Zf.triggerPlane,s(a))),(e,t)=>Ho(e,t(d.state))>=f,...a>0?[p(Qf(e,{hue:i,depth:a-1,ground:o},r).plane,u(Zf.nestedPlane,c(a-1)))]:[]]}function sp(e,t,n,r){let i=Qf(e,t,r),a=np(e,t,r),o=e=>ys(a.plane,a.state,e),s=Yf.floor+Yf.span*yf(n),c=Yf.floor+Yf.span/2,l=(e,t)=>e.hex!==t(i.plane).hex&&e.hex!==t(i.state).hex;for(let e=0;e<=12;e++){let t=oc(o(s+(c-s)*e/12),r,l);if(t!==void 0)return t}return o(s)}const cp=e=>({kind:`bar`,decor:e,address:[]}),lp=(e,t)=>({...e,address:[...e.address,t]}),up=e=>({kind:`band`,band:e,address:[]});function dp(e,t,n){switch(t.kind){case`bar`:{let{decor:r,address:i}=t,a=Ef(r,i),o=jf(e,a),s;return{tint:o,text:r.shade.text(e,a.hue,o,n),disclosure:{hue:`accent`,depth:0,get ground(){return s??=Of(r,i)}}}}case`band`:{let{band:r,address:i}=t,a=sp(e,r,i,n);return{tint:a,text:Bf(e,a,n),disclosure:{...r,depth:r.depth+1}}}}}const fp=new Map([[`dark`,`textual-dark`],[`light`,`textual-light`]]);function pp(e){let t=typeof e==`string`?fp.get(e):void 0;return t===void 0?``:` — "${e}" was retired; write "${t}", the same palette`}const mp=`textual-dark`;function hp(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function gp(){return Oc()}function _p(){return[`bar`,...gp()]}let vp;function yp(e){return vp??=new Set(_p()),vp.has(e)}function bp(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return hp(e===void 0?null:a(e),t,a(n??r),r,a)}const xp=[`style`,`palette`,`effect`];function Sp(e){return e!==void 0&&e.includes(`{{`)}function Cp(e,t,n,r,i){let a=Sp(n)?{kind:`expression`,source:n}:i(n??r.name);return hp(e===void 0?null:i(e),t,a,r,i)}function wp(e,t){return e.kind===`decided`?e:t(e.source)}const Tp=`none`;function Ep(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function Dp(e,t){return Ep(e,t)??Ep(`none`,t)??{kind:`decided`,name:`none`,value:Ls}}function Op(e,t,n,r){return Cp(e,t,n,Dp(Tp,r),e=>Ep(e,r))}const kp=`none`,Ap={style:Tp,palette:mp,effect:kp};function jp(e,t,n){return`${e} rendered "${Ap[t]}": ${n}`}const Mp=Object.freeze([kp,...Object.keys(Bd.loops)]),Np=Object.freeze([`bar`,...Mp]);function Pp(e){let t=Mp.find(t=>t===e);return t===void 0?null:{kind:`decided`,name:e,value:t}}function Fp(e){return Pp(e)??{kind:`decided`,name:`none`,value:`none`}}function Ip(e,t,n){return Cp(e,t,n,Fp(kp),Pp)}const Lp=Object.freeze(Object.keys(Vu));function Rp(e){return Lp.includes(e)}const zp=[`powerline`,`capsule`,`plain`];function Bp(e){return zp.includes(e)}function Vp(e,t,n){return hp(e,t,n,`powerline`,e=>Rp(e)?e:null)}const Hp=[`unicode`,`ascii`];function Up(e){return[...e].every(e=>e.codePointAt(0)<=127)}const Wp=`unicode`,Gp=[`truecolor`,`256`,`ansi`,`none`];function Kp(e){return ts(e)??B.DEFAULT}const qp=Object.keys(ff);function Jp(e){return qp.includes(e)}function Yp(e,t,n){return hp(e,t,n,`accent`,e=>Jp(e)?e:null)}const Xp=Object.keys(uf);function Zp(e){return Xp.includes(e)}function Qp(e,t,n){return hp(e,t,n,`middle`,e=>Zp(e)?e:null)}const $p=`true`,em=`false`,tm=[$p,em],nm={min:0,max:16};function rm(e){return e===`true`?!0:e===`false`?!1:null}function im(e,t){let n=Number(e);return Number.isInteger(n)&&String(n)===e&&n>=t.min&&n<=t.max?n:null}function am(e){return im(e,nm)}function om(e,t,n){return hp(e,t,n,!0,rm)}function sm(e,t,n){return hp(e,t,n,!0,rm)}function cm(e,t,n){return hp(e,t,n,!1,rm)}function lm(e,t,n){return hp(e,t,n,1,am)}const um=new ol({"strip.separator":`default`,"strip.rail":`default`});function dm(e){return um.resolve(e)}const fm=RegExp(`\\x1b\\[[0-9;]*m|${zl.source}`,`g`),pm={kind:`still`},mm=Symbol(`bar`);function hm(e){return e.name!==kp}function gm(e){return(t,n)=>{let r=e.map(({t:e,effect:t})=>t(e,n));return(e,t)=>r.reduce((e,n)=>n(e,t),e)}}const _m=Lc;function vm(e,t){let n=new bs(t,_m.foregroundColor,_m.ansiColors,_m.palette);return(t,r)=>e(t,{...r,theme:n})}function ym(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return t/4294967296}const bm=4096;var xm=class{inForce=null;placements=new Map;made=new Map;drawn=null;frame={effect:kp,t:0,made:0,reused:0,own:[],basis:`off`,revision:0,fades:[],leaves:[]};constructor(e){this.key=e}lastFrame(){return this.frame}get heldCount(){let e=[...this.drawn?.placements.values()??[]].filter(({passage:e})=>e!==null).length;return[...this.made.values()].reduce((e,t)=>e+t.size,e)}motion(e,t,n){let r=this.inForce?.name===e?this.inForce:{name:e,since:t},i={scope:mm,name:e,t:t-r.since},a=this.placements,o=new Map,s=this.made,c=new Map,l=[],u=this.drawn,d=n.transitions?u!==null&&u.source.config===n.source.config&&u.source.preset===n.source.preset&&u.source.revision===n.source.revision&&u.source.width===n.source.width?`compared`:`fresh`:`off`,f=d===`compared`?u.placements:null,p=new Map,m=[],h=[],g={effect:e,t:i.t,made:0,reused:0,own:l,basis:d,revision:n.source.revision,fades:m,leaves:h},_=(e,n,{ground:r})=>{let i=Bd.transitions[e]({span:0,z:ym(`${this.key}@${n}`)*bm});return{name:e,since:t,transition:{effect:vm(i.effect,r),done:e=>i.done(e)}}},v=({since:e,transition:n})=>n.done(t-e),y=(e,t,n)=>({drawing:t,passage:f===null?null:n===void 0||n.passage?.name===`dissolve`?_(`fade`,e,t):n.passage!==null&&!v(n.passage)?n.passage:null}),b=(e,t)=>{if(t===void 0||t.drawing.own.length===0)return;if(t.passage?.name===`dissolve`)return v(t.passage)?void 0:t;let r={...t.drawing,own:t.drawing.own.map(n.hold)};return{drawing:r,passage:_(`dissolve`,e,r)}},x=(e,r)=>{if(p.has(e))throw Error(`placement "${e}" was reached twice in one frame`);let i=f?.get(e),{drawing:a,deeper:o}=n.returned(e,r),s=a===null?b(e,i):y(e,a,i);return s===void 0?r:(p.set(e,s),s.passage!==null&&(s.passage.name===`fade`?m:h).push({placement:e,t:t-s.passage.since}),a===null?[...s.drawing.own,...o]:r)},S=(e,n)=>{let r=o.get(e)??a.get(e),i=r?.name===n?r:{name:n,since:t},s=t-i.since;return o.has(e)||(o.set(e,i),l.push({placement:e,effect:n,t:s})),{scope:e,name:n,t:s}},C=(e,t,n)=>{let r=c.get(e)??new Map;c.set(e,r);let i=r.get(t.scope);if(i!==void 0)return i.effect;let a=s.get(e)?.get(t.scope),o=a?.name===t.name&&a.span===n,l=ym(t.scope===mm?e:`${e}@${t.scope}`),u=o?a.effect:Bd.loops[t.name]({span:n,z:l*bm});return g[o?`reused`:`made`]++,r.set(t.scope,{name:t.name,span:n,effect:u}),u},ee=e=>{let t=new Map;for(let{owner:n,placement:r}of e){let e=r.effect===`bar`?i:S(r.id,r.effect),a=t.get(e.scope);a===void 0?t.set(e.scope,{...e,owners:[n]}):a.owners.push(n)}return[...t.values()]},te=e=>{let n=new Map;for(let{owner:t,placement:r}of e){let e=n.get(r.id);e===void 0?n.set(r.id,[t]):e.push(t)}return[...n].flatMap(([e,n])=>{let r=p.get(e)?.passage??null;return r===null?[]:[{t:t-r.since,effect:Yu(r.transition.effect,...n)}]})};return{placed:d===`off`?(e,t)=>t:x,row:(e,t)=>{let n=(t.some(e=>e.placement.effect!==`bar`)?ee(t):[{...i,owners:void 0}]).filter(hm),r=te(t);if(n.length===0&&r.length===0)return pm;let a=`${this.key}#${e}`;return{kind:`moving`,wrap:(e,t)=>new Gu(e,gm([...n.map(e=>{let n=C(a,e,t);return{t:e.t,effect:e.owners===void 0?n:Yu(n,...e.owners)}}),...r]),{t:i.t,key:a,theme:_m})}},drawn:()=>{this.inForce=r,this.placements=o,this.made=c,this.drawn=d===`off`?null:{source:n.source,placements:p},this.frame=g}}}},Sm=class{sessions=new Map;constructor(e=256){this.maxSessions=e}of(e){let t=this.sessions.get(e)??new xm(e);this.sessions.delete(e),this.sessions.set(e,t);for(let e of this.sessions.keys()){if(this.sessions.size<=this.maxSessions)break;this.sessions.delete(e)}return t}getStats(){let e=0;for(let t of this.sessions.values())e+=t.heldCount;return{sessions:this.sessions.size,effects:e}}};function Cm(e){return Math.max(0,...e.split(`
52
- `).map(e=>R(e.replace(fm,``))))}function wm(e,t){return Wu(e,{...t,theme:um,onStyleError:e=>{throw e}})}const Tm=new Map;function Em(e){let t=Tm.get(e);if(t!==void 0)return t;let n=t=>{let n=t.seam.map(t=>({...t,glyph:e}));return{...t,seam:n,divider:n}},{shape:r,ascii:i}=Vu.plain,a=new Tu(n(r),Up(e)?n(i):i);return Tm.set(e,a),a}function Dm(e,t){return e===`plain`&&t!==void 0?Em(t):Vu[e]}const Om=e=>({asciiOnly:e===`ascii`}),km=new Map;function Am(e){let t=JSON.stringify([e.endcaps,e.charset,e.separator??null]),n=km.get(t);if(n!==void 0)return n;let r=Dm(e.endcaps,e.separator),i=e=>new G(`x`,{end:``,overflow:`ignore`,style:new H({bgcolor:e})}),a=t=>new G(wm(new au(t,r),{colorSystem:null,...Om(e.charset)}).replace(/\n$/,``)).cellLength,o=a([i(`#101010`)]),s={chrome:o-1,seam:a([i(`#101010`),i(`#202020`)])-o-1};return km.set(t,s),s}function jm(e){return Am(e).chrome}function Mm(e){return Am(e).seam}const Nm=/[\u{E000}-\u{F8FF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu;function Pm(e){return[...new Set(e.match(Nm)??[])].join(``)}function Fm(e){let t=Dm(e.endcaps,e.separator),n=e=>new G(`x`,{end:``,style:new H({bgcolor:e})});return Pm(wm(new au([n(`#101010`),n(`#202020`),n(`#202020`)],t),{colorSystem:null,...Om(e.charset)}))}function Im(e,t,n=pm){if(e.length===0)return``;let r=Dm(t.endcaps,t.separator),i=t.wrap&&Number.isFinite(t.width),a={colorSystem:t.colorCompatibility,...Om(t.charset),...i?{width:t.width}:{}},o=i?new Kd([...e],{joiner:r}):new au([...e],r),s=n.kind===`still`?wm(o,a):wm(n.wrap(o,Cm(wm(o,a))),a);if(!s.endsWith(`
53
- `))throw Error(`renderStripCells: rich-js strip output did not end its last line`);return s.slice(0,-1)}function Lm(e){return Math.min(20,e??20)}const Rm={heading:`ERROR`,glyph:`⚠`,colors:$d},zm={heading:`WARNING`,glyph:`⚠`,colors:ef},Bm={heading:`UPDATE`,glyph:`⬆`,colors:ef};function Vm(e,t){return{text:Jd(e),link:t}}function Hm(e,t,n){let[r,...i]=[Um(e,Rm,Cn),t,Um(n,zm,wn)].flat();return r===void 0?null:{channels:[r,...i]}}function Um(e,t,n){let r=Gn([{verb:n,args:[e]}]),[i,...a]=e.split(/\r\n|\r|\n/).map(e=>Vm(e,r)).filter(e=>e.text!==``).map(e=>[e]);return i===void 0?[]:[{severity:t,message:e,lines:[i,...a]}]}function Wm(e){return e.channels.map(e=>`${e.severity.heading}\n${e.message}\n`).join(`
54
- `)}function Gm(e,t,n,r){if(t===null)return e;let i=Km(r),a=t.channels.flatMap(e=>qm(e,i)),o=n.failedConfigFile!==null||a.length>r.rowCap,s=a.slice(0,r.rowCap-Number(o)),c=o?[Jm(t,n,a.length-s.length,i)]:[],l=[...s,...c].join(`
55
- `);return e?`${l}\n${e}`:l}function Km(e){return{endcaps:`plain`,separator:``,width:e.width,wrap:!0,padding:0,charset:`unicode`,colorCompatibility:e.colorCompatibility}}function qm(e,t){let n=new H({bgcolor:e.severity.colors.bg,color:e.severity.colors.fg}),r=go(Math.max(2,t.width-1)),i=(e,t)=>new G(`${e} `,{style:t,end:``,overflow:`ignore`});return e.lines.flatMap((a,o)=>Im([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=>xo(e,r)).map(e=>i(e,t))})],t).split(`
56
- `))}function Jm(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new H({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new G(e,{style:t,end:``,overflow:`ignore`}),l=n>0?[c(`${n} more rows · `,s),a.kind===`file`?c(`open full text`,s.withLink(re(a.path).href)):c(`full text unavailable: ${Jd(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(Jd(o),s.withLink(re(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=G.fromFragments([...d,...p]).truncate(r.width);return m.overflow=`ignore`,Im([m],r)}const Ym=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function Xm(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function Zm(e,t){return r.readdirSync(t).filter(Ym).sort().flatMap(n=>{let i=l.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?Zm(e,i):[[l.relative(e,i).split(l.sep).join(`/`),Xm(i,a)]]})}function Qm(e){let t=ie.createHash(`sha256`);for(let[n,r]of Zm(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const $m=e=>e.slice(0,7);function eh(e){return l.dirname(l.dirname(e))}function th(){return{version:Et,digest:`0483a2bce61e3008d6eb6339b9acde3868543415558ce41f95656e79bca851d7`}}function nh(e){let t=JSON.parse(r.readFileSync(l.join(e,`package.json`),`utf8`)),n=typeof t==`object`&&t?t.version:void 0;if(typeof n!=`string`)throw Error(`${l.join(e,`package.json`)} has no version string`);return n}function rh(e,t){try{let n=eh(ne(e)),i=l.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=Qm(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:nh(n),digest:o},running:a}}catch(e){return{kind:`unchecked`,reason:e.message}}}var K=class extends Error{constructor(e){super(e),this.name=`BadVerbArgs`}};const ih=new Map;function ah(e){let t=sh(e);if(t===null)throw Error(`Palette "${e}" did not resolve in the theme registry — allowed names and the registry are inconsistent`);return t}function oh(e,t){return e===`bar`?t:ah(e)}function sh(e){let t=ih.get(e);if(t!==void 0)return t;let n=kc(e);return n===null?null:(ih.set(e,n),n)}function ch(e,t){return lh(e,`${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,()=>Vc(e,t))}const lh=tf();function uh(e){let t=sh(e);return t===null?null:{kind:`decided`,name:e,value:t}}function dh(e,t,n){let r=uh(e);return r===null?(n(jp(t,`palette`,`"${e}" names no installed theme${pp(e)}`)),ph()):r}function fh(e,t,n){return Cp(e,t,n,ph(),uh)}function ph(){return{kind:`decided`,name:mp,value:ah(mp)}}const mh=[`vertical`,`horizontal`],hh={vertical:`row`,horizontal:`cell`};function gh(e){return e.id??e.name}function _h(e){return[...bh(e)].flatMap(e=>e.kind===`segment`?[gh(e)]:[])}function vh(e,t){if(!t.has(e))return e;let n=2;for(;t.has(`${e}-${n}`);)n++;return`${e}-${n}`}function yh(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*bh(e){yield e;for(let t of wh(e))yield*bh(t)}const xh=(e,t)=>`${e}.children[${t}]`,Sh=e=>`${e}.opens.body`;function*Ch(e,t){if(yield[e,t],e.kind===`container`)for(let[n,r]of e.children.entries())yield*Ch(r,xh(t,n));else e.opens!==void 0&&(yield*Ch(e.opens.body,Sh(t)))}function wh(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}const Th=[`shade`,`variation`,`style`];function Eh(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const Dh=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function Oh(e){return e.kind===`file`||e.kind===`shell`}const kh=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],Ah=`theme`,jh=`effect`,Mh=[Ah,jh];function Nh(e){return{...e.settings,[Ah]:{label:Ah,domain:`theme`,default:e.palette??`bar`},[jh]:{label:jh,domain:Np,default:`bar`}}}function Ph(e){let t=e?.domain;return typeof t==`object`&&`min`in t?t:void 0}function Fh(e,t){return Object.entries(e).flatMap(([n,r])=>{let i=Ph(r)?.atLeast;if(i===void 0)return[];let a=t[n],o=t[i];return a>=o?[]:[{setting:n,message:`"${n}" (${a}) is below "${i}" (${o}) — ${r.label} must be at least ${e[i].label}`}]})}function Ih(e,t){let{domain:n}=e;return n===`bool`?typeof t==`boolean`:n===`theme`?typeof t==`string`&&yp(t):`min`in n?typeof t==`number`&&Number.isInteger(t)&&t>=n.min&&t<=n.max:typeof t==`string`&&n.includes(t)}function Lh(e){return String(e)}function Rh(e,t){let{domain:n}=e;if(typeof n==`object`&&`min`in n)return im(t,n)??void 0;let r=n===`bool`?t===`true`?!0:t===`false`?!1:t:t;return Ih(e,r)?r:void 0}function zh(e,t,n,r){let i=e.settings?.[t]??n.default,a=e.drafts?.[t],o=a===void 0?null:r(a);return(o===null?void 0:Rh(n,o))??i}function Bh(e){let{domain:t}=e;return t===`bool`?`true or false`:t===`theme`?`"bar" (the bar's own theme) or an installed theme name`:`min`in t?`an integer from ${t.min} to ${t.max}`:`one of ${t.map(e=>JSON.stringify(e)).join(`, `)}`}const Vh=[`left`,`center`,`right`],Hh=[`right`,`left`,`middle`],Uh=/^[A-Za-z_][A-Za-z0-9_]*$/;function Wh(e){return`#${e+1}`}const Gh={rows:{}};function Kh(e){return`rows`in e}function qh(e){return Object.fromEntries(e.map((e,t)=>[Wh(t),e]))}function Jh(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:qh(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:qh([n])}}function Yh(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function Xh(e){return Kh(e)?Yh(e):e}function*Zh(e,t){if(!Kh(e)){yield*Ch(e,t);return}yield[Yh(e),t];for(let[n,r]of Object.entries(e.rows))yield*Ch(r,`${t}.rows.${n}`)}function Qh(e,t){return Kh(e)?{...t,...e,rows:{...t.rows,...e.rows}}:Jh(e)}function $h(e){if(!Kh(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}const eg=`default`,tg={};function ng(e){return[...new Set([eg,...Object.keys(e)])]}function rg(e,t,n){return bp(void 0,e,t,eg,n)}function ig(e,t){let n={[eg]:tg,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${eg}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function ag(e,t){let n=ig(e.presets,t).root??Gh;return{node:Yh(Qh(n,e.root)),path:$h(n)?`presets.${t}.root`:`root`}}function og(e,t){return{...e.globals,...ig(e.presets,t).globals}}const sg=new Map;function cg(e,t,n){sg.set(e,{permanent:!0,resolve:t,paletteOf:n})}cg(`themes`,()=>gp(),e=>ah(e));const lg=`placementThemes`;cg(lg,_p,(e,t)=>oh(e,t.palette)),cg(`endcaps`,()=>Lp),cg(`variations`,()=>qp),cg(`shades`,()=>Xp),cg(`charsets`,()=>Hp),cg(`colorCompatibilities`,()=>Gp);function ug(e){return new Map([[`styles`,{members:Object.keys(e.styles),paletteOf:(t,n)=>ch(n.basePalette,e.styles[t])}],[`presets`,{members:ng(e.presets)}]])}function dg(e){return[...new Set([...sg.keys(),...e.keys()])]}function fg(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=sg.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(mg(e,t))}const pg=new Map([[`looks`,`styles`],[`progressions`,`variations`]]);function mg(e,t){let n=pg.get(e);return`unknown option domain "${e}"${n===void 0?``:` — it was renamed "${n}"; write from: "${n}"`} (have: ${dg(t).join(`, `)})`}const hg=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g;function*gg(e){let t=e.indexOf(`{{`);for(;t!==-1;){let n=``,r=t+2;for(;r<e.length&&!e.startsWith(`}}`,r);){if(e.startsWith(`/*`,r)){let t=e.indexOf(`*/`,r+2);r=t===-1?e.length:t+2;continue}let t=r,i=e[r];if(r+=1,i===`"`||i===`'`||i==="`"){for(;r<e.length&&e[r]!==i;)r+=e[r]===`\\`&&i!=="`"?2:1;r+=1}n+=e.slice(t,r)}if(r>=e.length)return;yield n,t=e.indexOf(`{{`,r+2)}}const _g=`[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*`,vg=RegExp(`^(?:(\\$)(?:\\.(${_g}))?|\\.(${_g})?)(?=[\\s)]|$)`);function yg(e,t,n){let r=vg.exec(e.trimStart());if(r===null)return null;let[i,a]=r[1]===void 0?[t,r[3]]:[n,r[2]];return i===null?null:a===void 0?i:`${i}${a}.`}const bg=/^(\w+)\b\s*([\s\S]*)$/;function*xg(e,t){let n=[t];for(let r of gg(e)){let e=r.replace(/^-(?=\s)/,``).trim(),[,i=``,a=``]=bg.exec(e)??[],o=n[n.length-1],s=n.length>1?n[n.length-2]:o;if(i===`end`){n.length>1&&n.pop();continue}if(i===`else`){yield{code:e,dot:s};let r=/^with\b([\s\S]*)$/.exec(a);n[n.length-1]=r===null?s:yg(r[1],s,t);continue}yield{code:e,dot:o},i===`if`&&n.push(o),i===`with`&&n.push(yg(a,o,t)),(i===`range`||i===`define`||i===`block`)&&n.push(null)}}const Sg=/(?<![.$])\btemplate\s+$/;function*Cg(e,t,n){let r=0;for(let i of[...e.matchAll(hg)]){let a=i.index+i[0].length;Sg.test(e.slice(r,i.index))&&(yield{name:i[0].slice(1,-1),at:yg(e.slice(a),t,n)}),r=a}}function*wg(e,t){let n=new Set;function*r(e,i,a,o){for(let{code:s,dot:c}of[...xg(e,i)]){yield{code:s,dot:c,root:i,via:a};for(let e of[...Cg(s,c,i)]){let i=Object.hasOwn(t,e.name)?t[e.name]:void 0,a=`${e.name}\0${e.at??`\0`}`;i===void 0||o.has(e.name)||n.has(a)||(n.add(a),yield*r(i,e.at,e.name,new Set([...o,e.name])))}}}yield*r(e,``,null,new Set)}const Tg=RegExp(`(?<![A-Za-z0-9_)$])(\\$?)\\.(${_g})`,`g`);function*Eg({code:e,dot:t,root:n}){let r=e.replace(hg,``);for(let e of[...r.matchAll(Tg)]){let r=e[1]===`$`?n:t;r!==null&&(yield`${r}${e[2]}`)}}function Dg(e,t){let n=new Map;for(let r of wg(e,t))for(let e of Eg(r))n.has(e)||n.set(e,r.via);return n}const Og=/(?<![.$])\b(action|picker|menu|carousel|swatches|swatch|themePreview)\s+$/,kg={action:1,picker:2,menu:1,carousel:2,swatch:1,swatches:2,themePreview:1};function*Ag(e){let t=0,n=0,r=0,i=`action`;for(let a of[...e.matchAll(hg)]){let o=e.slice(t,a.index),s=Og.exec(o);if(s!==null)n=kg[s[1]],r=0,i=s[1]===`action`?`action`:`options`;else for(let e of o)e===`(`&&r++,e===`)`&&r--,(r<0||e===`|`&&r===0)&&(n=0);n>0&&r===0&&(yield{name:a[0].slice(1,-1),site:i},n--),t=a.index+a[0].length}}function jg(e,t){let n=new Map;for(let{code:r,via:i}of wg(e,t))for(let{name:e,site:t}of Ag(r)){let r=`${e}\0${i??`\0`}`;n.has(r)||n.set(r,{name:e,site:t,via:i})}return[...n.values()]}function Mg(e,t){return new Set([...Ng(e,t)].filter(e=>Object.hasOwn(t,e)))}function Ng(e,t){let n=new Set;for(let{code:r,dot:i,root:a}of wg(e,t))for(let{name:e}of Cg(r,i,a))n.add(e);return n}function Pg(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}function Fg(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),Ig(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,helpers:e.helpers}}function Ig(e){return e.kind===`dropped`||(e.kind===`shell`||e.kind===`file`)&&Eh(e.parse)===`json`}function Lg(e){let t=l.basename(e),n=l.dirname(e);for(;;){let r=Rg(n);if(r!==null)return{dir:r,name:t,leaf:n===l.dirname(e)};t=l.basename(n),n=l.dirname(n)}}function Rg(e){try{return r.statSync(e).isDirectory()?r.realpathSync(e):null}catch{return null}}var zg=ye((e=>{function t(e,...t){throw Error(`[MobX] minified error nr: ${e}${t.length?` `+t.map(String).join(`,`):``}. See mobx.js.org/errors`)}function n(e){let t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}function r(e){return typeof e==`function`}function i(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function a(e){return typeof e==`object`&&!!e}function o(e){if(!a(e))return!1;let t=Object.getPrototypeOf(e);if(t==null)return!0;let n=p(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===Bt}function s(e){let t=e?.constructor;return!!t&&(t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`)}function c(e,t,n){It(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function l(e,t){let n=`isMobX`+e;return t.prototype[n]=!0,function(e){return a(e)&&!0===e[n]}}function u(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function d(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function f(e){return e===null?null:typeof e==`object`?``+e:e}function p(e,t){return Lt.hasOwnProperty.call(e,t)}function m(e,t){return!!(e&t)}function h(e,t,n){return n?e|=t:e&=~t,e}function g(e,t=Vt,n=Vt){let r=new Wt(e);return t!==Vt&&(r.onBOL=new Set([t])),n!==Vt&&(r.onBUOL=new Set([n])),r}function _(e,t){return At(e,t)}function v(e,t,n){return e===null||typeof e!=`object`&&typeof e!=`function`||tt(e)?e:Array.isArray(e)?sn.array(e,{name:n}):o(e)?sn.object(e,void 0,{name:n}):u(e)?sn.map(e,{name:n}):d(e)?sn.set(e,{name:n}):typeof e!=`function`||We(e)||Qe(e)?e:s(e)?Wn(e):In(n,e)}function y(e){return e}function b(e,t){return{t:e,i:t,o:x,u:S}}function x(e,t,n,r){var i;return(i=this.i)!=null&&i.bound?this.u(e,t,n,!1)===null?0:1:r===e.h?this.u(e,t,n,!1)===null?0:2:We(n.value)?1:(It(r,t,ee(e,this,t,n,!1)),2)}function S(e,t,n,r){let i=ee(e,this,t,n);return e.l(t,i,r)}function C(e,n,r){let{kind:i,name:a,addInitializer:o}=r,s=e,c=e=>{var t;return ye(s.i?.name??a.toString(),e,(t=s.i?.autoAction)!=null&&t)};return i==`field`?function(e){var t;let n=e;return We(n)||(n=c(n)),(t=s.i)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n}:i==`method`?(We(n)||(n=c(n)),(l=s.i)!=null&&l.bound&&o(function(){let e=this,t=e[a].bind(e);t.isMobxAction=!0,e[a]=t}),n):void t(43,s.t,String(a),i);var l}function ee(e,t,n,r,i=P.safeDescriptors){var a,o,s;let{value:c}=r;return(a=t.i)!=null&&a.bound&&(c=c.bind(e.v??e.h)),{value:ye(t.i?.name??n.toString(),c,(o=t.i?.autoAction)!=null&&o,(s=t.i)!=null&&s.bound?e.v??e.h:void 0),configurable:!i||e.p,enumerable:!1,writable:!i}}function te(e,t){return{t:e,i:t,o:ne,u:re}}function ne(e,t,n,r){var i;return r===e.h?this.u(e,t,n,!1)===null?0:2:(i=this.i)!=null&&i.bound&&(!p(e.h,t)||!Qe(e.h[t]))&&this.u(e,t,n,!1)===null?0:Qe(n.value)?1:(It(r,t,ae(e,0,0,n,!1,!1)),2)}function re(e,t,n,r){let i=ae(e,0,0,n,this.i?.bound);return e.l(t,i,r)}function ie(e,t,n){var r;let{name:i,addInitializer:a}=n;return Qe(t)||(t=Wn(t)),(r=e.i)!=null&&r.bound&&a(function(){let e=this,t=e[i].bind(e);t.isMobXFlow=!0,e[i]=t}),t}function ae(e,t,n,r,i,a=P.safeDescriptors){let{value:o}=r;return Qe(o)||(o=Wn(o)),i&&(o=o.bind(e.v??e.h),o.isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function w(e,t){return{t:e,i:t,o:T,u:oe}}function T(e,t,n){return this.u(e,t,n,!1)===null?0:1}function oe(e,t,n,r){return e.m(t,Ft({},this.i,{get:n.get,set:n.set}),r)}function E(e,t,n){function r(e){let n=Ft({},i.i,{get:t,context:e});return n.name||=`ObservableObject.${a.toString()}`,new yn(n)}let i=e,{name:a,addInitializer:o}=n,s;return o(function(){let e=Ct(this)[j],n=this,i=e.j.get(a);i instanceof yn&&i.derivation!==t&&e.j.delete(a),(e.O??=new Map).set(a,()=>r(n))}),function(){let e=this[j],n=e.j.get(a);if(n instanceof yn&&n.derivation!==t){let e=s?.get(this);return e||(e=r(this),(s??=new WeakMap).set(this,e)),e.get()}return e._(a)}}function se(e,t){return{t:e,i:t,o:ce,u:le}}function ce(e,t,n){return this.u(e,t,n,!1)===null?0:1}function le(e,t,n,r){return e.S(t,n.value,this.i?.A??v,r)}function ue(e,t,n){function r(e,t){let n=Ct(e)[j];return(n.V??=new Map).set(o,()=>new _n(t,i.i?.A??v,`ObservableObject.${o.toString()}`,!1)),n}let i=e,{kind:a,name:o}=n;if(a===`accessor`)return{get(){return(this[j]??r(this,t.get.call(this)))._(o)},set(e){return(this[j]??r(this,e)).M(o,e)},init(e){return r(this,e),e}}}function de(e){return{t:Jt,i:e,o:fe,u:pe}}function fe(e,t,n,r){var i,a,o;if(n.get)return dn.o(e,t,n,r);if(n.set){let i=We(n.set)?n.set:ye(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!P.safeDescriptors||e.p,set:i})===null?0:2:(It(r,t,{configurable:!0,set:i}),2)}if(r!==e.h&&typeof n.value==`function`)return s(n.value)?((o=this.i)!=null&&o.autoBind?Gn:Wn).o(e,t,n,r):((a=this.i)!=null&&a.autoBind?Rn:In).o(e,t,n,r);let c=!1===this.i?.deep?nn:sn;return typeof n.value==`function`&&(i=this.i)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),c.o(e,t,n,r)}function pe(e,t,n,r){var i;return n.get?dn.u(e,t,n,r):n.set?e.l(t,{configurable:!P.safeDescriptors||e.p,set:ye(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.i)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),(!1===this.i?.deep?nn:sn).u(e,t,n,r))}function me(e,t){return Ft(function(n,r){if(r&&typeof r.kind==`string`)return t(e,n,r)},e)}function he(e){return e||Xt}function ge(e){return me(e,ue)}function _e(e){return!0===e.deep?v:!1===e.deep?y:(t=e.defaultDecorator)&&(n=(r=t.i)?.A)!=null?n:v;var t,n,r}function ve(e){return me(e,E)}function ye(e,t,n=!1,r){function i(){return be(0,n,t,r||this,arguments)}return i.isMobxAction=!0,i.toString=()=>t.toString(),hn&&(gn.value=e,It(i,`name`,gn)),i}function be(e,t,n,r,i){let a=xe(0,t);try{return n.apply(r,i)}catch(e){throw a.N=e,e}finally{D(a)}}function xe(e,t){let n=P.trackingDerivation,r=!t||!n;Pe();let i=P.allowStateChanges;r&&Oe();let a={R:r,k:n,C:i,I:P.allowStateReads,P:!1,T:0,B:mn++,D:pn};return pn=a.B,a}function D(e){pn!==e.B&&t(30),pn=e.D,e.N!==void 0&&(P.suppressReactionErrors=!0),Fe(),e.R&&ke(e.k),P.suppressReactionErrors=!1}function Se(e,t){let n=function(e){let t=P.allowStateChanges;return P.allowStateChanges=e,t}(e);try{return t()}finally{(function(e){P.allowStateChanges=e})(n)}}function Ce(e){return e instanceof bn}function we(e){switch(e.K){case 0:return!1;case-1:case 2:return!0;case 1:{let t=Oe(),n=e.L,r=n.length;for(let i=0;i<r;i++){let r=n[i];if(N(r)){if(P.disableErrorBoundaries)r.get();else try{r.get()}catch{return ke(t),!0}if(e.K===2)return ke(t),!0}}return Ae(e),ke(t),!1}}}function Te(e,t,n){Ae(e),e.$=Array(e.U===0?100:e.L.length),e.W=0,e.U=++P.runId;let r=P.trackingDerivation,i;if(P.trackingDerivation=e,P.inBatch++,!0===P.disableErrorBoundaries)i=t.call(n);else try{i=t.call(n)}catch(e){i=new bn(e)}return P.inBatch--,P.trackingDerivation=r,function(e){let t=e.L,n=e.L=e.$,r=0,i=0,a=e.W;for(let e=0;e<a;e++){let t=n[e];t.diffValue===0&&(t.diffValue=1,i!==e&&(n[i]=t),i++),t.K>r&&(r=t.K)}for(n.length=i,e.$=null,a=t.length;a--;){let n=t[a];n.diffValue===0&&Me(n,e),n.diffValue=0}for(;i--;){let t=n[i];t.diffValue===1&&(t.diffValue=0,je(t,e))}r!==0&&(e.K=r,e.q())}(e),i}function Ee(e){let t=e.L;e.L=[];let n=t.length;for(;n--;)Me(t[n],e);e.K=-1}function De(e){let t=Oe();try{return e()}finally{ke(t)}}function Oe(){let e=P.trackingDerivation;return P.trackingDerivation=null,e}function ke(e){P.trackingDerivation=e}function Ae(e){if(e.K===0)return;e.K=0;let t=e.L,n=t.length;for(;n--;)t[n].F=0}function je(e,t){(e.H??=new Set).add(t),e.F>t.K&&(e.F=t.K)}function Me(e,t){let n=e.H;n&&(n.delete(t),n.size===0&&Ne(e))}function Ne(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,P.pendingUnobservations.push(e))}function Pe(){P.inBatch++}function Fe(){--P.inBatch===0&&(ze(),!P.isRunningUnobservations&&P.pendingUnobservations.length>0&&function(){P.isRunningUnobservations=!0;try{let e=P.pendingUnobservations;for(let t=0;t<e.length;t++){let n=e[t];n.isPendingUnobservation=!1,n.H&&n.H.size!==0||(n.H=null,n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof yn&&n.G())}P.pendingUnobservations=[]}finally{P.isRunningUnobservations=!1}}())}function Ie(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.L)==null||t.forEach(Ie))}function Le(e){let t=P.trackingDerivation;return t===null?((!e.H||e.H.size===0)&&P.inBatch>0&&Ne(e),!1):(t.U!==e.J&&(e.J=t.U,t.$[t.W++]=e,!e.isBeingObserved&&P.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function Re(e){var t;e.F!==2&&(e.F=2,(t=e.H)==null||t.forEach(e=>{e.K===0&&e.q(),e.K=2}))}function ze(){P.inBatch>0||P.isRunningReactions||Dn(Be)}function Be(){P.isRunningReactions=!0;let e=P.pendingReactions,t=0;for(;e.length>0;){++t===En&&(console.error(`[mobx] cycle in reaction: ${e[0]}`),e.splice(0));let n=e.splice(0);for(let e=0,t=n.length;e<t;e++)n[e].X()}P.isRunningReactions=!1}function Ve(e){return me(e,C)}function He(e){return function(t,n){return n&&typeof n.kind==`string`?C(e?Nn:jn,t,n):r(t)?ye(t.name||`<unnamed action>`,t,e):r(n)?ye(t,n,e):i(t)?Ve(b(e?An:kn,{name:t,autoAction:e})):void 0}}function Ue(e){return be(0,!1,e,this,void 0)}function We(e){return r(e)&&!0===e.isMobxAction}function Ge(e,t=zt){function n(){e(a)}var r;let i=t?.name??`Autorun`,a;if(t.scheduler||t.delay){let e=Ke(t),r=!1;a=new Tn(i,()=>{r||(r=!0,e(()=>{r=!1,a.isDisposed||a.track(n)}))},t.onError,t.requiresObservable)}else a=new Tn(i,function(){this.track(n)},t.onError,t.requiresObservable);return t!=null&&(r=t.signal)!=null&&r.aborted||a.Y(),a.Z(t?.signal)}function Ke(e){return e.scheduler?e.scheduler:e.delay?t=>setTimeout(t,e.delay):zn}function qe(e,t,n,i){let a=typeof i==`function`?Et(t,n):Et(t),o=r(i)?i:n,s=`${e}L`;return a[s]?a[s].add(o):a[s]=new Set([o]),function(){let e=a[s];e&&(e.delete(o),e.size===0&&delete a[s])}}function Je(e,t,n,r){let i=Ut(t);return kt(()=>{let t=Ct(e,r)[j];Ht(i).forEach(e=>{t.u(e,i[e],!n||!(e in n)||n[e])})}),e}function Ye(e){let t={name:e.tt};var n;return e.L&&e.L.length>0&&(t.dependencies=(n=e.L,Array.from(new Set(n))).map(Ye)),t}function Xe(e){let t={name:e.tt};return function(e){return!!e.H&&e.H.size>0}(e)&&(t.observers=Array.from(function(e){return e.H??new Set}(e),Xe)),t}function Ze(e){r(e.cancel)&&e.cancel()}function Qe(e){return!0===e?.isMobXFlow}function $e(e,t){var n;if(t===void 0)return N(e);if(!1===Tt(e))return!1;let r=e[j];return(n=r.O)!=null&&n.has(t)?!0:r.j.has(t)?N(Et(e,t)):!1}function et(e,t){if(!e)return!1;if(t!==void 0){if(Tt(e)){var n,r;let i=e[j];return i.j.has(t)||!((n=i.O)==null||!n.has(t))||!((r=i.V)==null||!r.has(t))}return!1}return Tt(e)||!!e[j]||Gt(e)||On(e)||N(e)}function tt(e){return et(e)}function nt(e){return Tt(e)?e[j].nt():rr(e)||or(e)?Array.from(e.keys()):bt(e)?e.map((e,t)=>t):void t(5)}function rt(e,n){return Tt(e)?e[j].et(n):rr(e)||or(e)?e.has(n):bt(e)?n>=0&&n<e.length:void t(10)}function it(e){if(Tt(e))return e[j].it();t(38)}function at(e,t,n){if(N(e)){let r,i=!0;return Ge(()=>{let a=e.get();if(!i||n){let n=Oe();t({observableKind:`computed`,debugObjectName:e.tt,type:Yn,object:e,newValue:a,oldValue:r}),ke(n)}i=!1,r=a})}return n&&t({observableKind:`value`,debugObjectName:e.tt,object:e,type:Yn,newValue:e.rt,oldValue:void 0}),mt(e,t)}function ot(e,t,n){return e.set(t,n),n}function st(e,t){if(typeof e!=`object`||!e||e instanceof Date||!tt(e))return e;if(vn(e)||N(e))return st(e.get(),t);if(t.has(e))return t.get(e);if(bt(e)){let n=ot(t,e,Array(e.length));return e.forEach((e,r)=>{n[r]=st(e,t)}),n}if(or(e)){let n=ot(t,e,new Set);return e.forEach(e=>{n.add(st(e,t))}),n}if(rr(e)){let n=ot(t,e,new Map);return e.forEach((e,r)=>{n.set(r,st(e,t))}),n}{let n=ot(t,e,{});return it(e).forEach(r=>{Lt.propertyIsEnumerable.call(e,r)&&(n[r]=st(e[r],t))}),n}}function ct(e,t){Pe();try{return e.apply(t)}finally{Fe()}}function lt(e,t,n){let r;if(typeof n.timeout==`number`){let e=Error(`WHEN_TIMEOUT`);r=setTimeout(()=>{if(!a[j].isDisposed){if(a(),!n.onError)throw e;n.onError(e)}},n.timeout)}n.name=`When`;let i=ye(`When-effect`,t);var a=Ge(t=>{Se(!1,e)&&(t.dispose(),r&&clearTimeout(r),i())},n);return a}function ut(e){return e[j]}function dt(e){return e.st!==void 0&&e.st.length>0}function ft(e,t){let r=e.st;return r?r.push(t):r=e.st=[t],n(()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)})}function O(e,n){let r=Oe();try{let r=[...e.st||[]];for(let e=0,i=r.length;e<i&&((n=r[e](n))&&!n.type&&t(14),n);e++);return n}finally{ke(r)}}function pt(e){return e.ot!==void 0&&e.ot.length>0}function mt(e,t){let r=e.ot;return r?r.push(t):r=e.ot=[t],n(()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)})}function ht(e,t){let n=Oe(),r=e.ot;if(r){r=r.slice();for(let e=0,n=r.length;e<n;e++)r[e](t);ke(n)}}function gt(e,n,r){if(!0===r&&(r=e.ut),!1===r)return;n in e.h||t(1,r.t,`${e.tt}.${n.toString()}`);let i=e.h;for(;i&&i!==Lt;){let t=A(i,n);if(t){let a=r.o(e,n,t,i);if(a===0)return;if(a===1)break}i=Object.getPrototypeOf(i)}}function k(e,t){typeof Array.prototype[e]==`function`&&(Qn[e]=t(e))}function _t(e){return function(){let t=this[j];t.ct.reportObserved();let n=t.ht(t.j);return n[e].apply(n,arguments)}}function vt(e){return function(t,n){let r=this[j];return r.ct.reportObserved(),r.ht(r.j)[e]((e,r)=>t.call(n,e,r,this))}}function yt(e){return function(){let t=this[j];t.ct.reportObserved();let n=t.ht(t.j),r=arguments[0];return arguments[0]=(e,t,n)=>r(e,t,n,this),n[e].apply(n,arguments)}}function bt(e){return a(e)&&$n(e[j])}function xt(e){return e[Symbol.toStringTag]=`MapIterator`,Nt(e)}function St(e){return e[Symbol.toStringTag]=`SetIterator`,Nt(e)}function Ct(e,t){if(p(e,j))return e;let n=t?.name??`ObservableObject`;return c(e,j,new lr(e,new Map,String(n),function(e){return e?e.defaultDecorator??function(e){let t=!1!==e.deep,n=!!e.autoBind,r=!t|(n?2:0);return M[r]??(M[r]=de({deep:t,autoBind:n}))}(e):void 0}(t))),e}function wt(e){return sr[e]||(sr[e]={get(){return this[j]._(e)},set(t){return this[j].M(e,t)}})}function Tt(e){return!!a(e)&&ur(e[j])}function Et(e,n){if(typeof e==`object`&&e){if(bt(e))return n!==void 0&&t(23),e[j].ct;if(or(e))return e.ct;if(rr(e)){if(n===void 0)return e.lt;let r=e.ft.get(n)||e.dt.get(n);return r||t(25,n,Ot(e)),r}if(Tt(e)){if(!n)return t(26);let r=e[j],i=r.j.get(n)??r.vt(n)??r.bt(n);return i||t(27,n,Ot(e)),i}if(Gt(e)||N(e)||On(e))return e}else if(r(e)&&On(e[j]))return e[j];t(28)}function Dt(e,n){return e||t(29),n===void 0?Gt(e)||N(e)||On(e)||rr(e)||or(e)?e:e[j]?e[j]:void t(24,e):Dt(Et(e,n))}function Ot(e,t){let n;if(t!==void 0)n=Et(e,t);else{if(We(e))return e.name;n=Tt(e)||rr(e)||or(e)?Dt(e):Et(e)}return n.tt}function kt(e){let t=Oe();Pe();try{return e()}finally{Fe(),ke(t)}}function At(e,t,n=-1){return jt(e,t,n)}function jt(e,t,n,i,a){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return!1;if(e!=e)return t!=t;let o=typeof e;if(o!==`function`&&o!==`object`&&typeof t!=`object`)return!1;let s=dr.call(e);if(s!==dr.call(t))return!1;switch(s){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++}e=Mt(e),t=Mt(t);let c=s===`[object Array]`;if(!c){if(typeof e!=`object`||typeof t!=`object`)return!1;let n=e.constructor,i=t.constructor;if(n!==i&&!(r(n)&&n instanceof n&&r(i)&&i instanceof i)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),a||=[];let l=(i||=[]).length;for(;l--;)if(i[l]===e)return a[l]===t;if(i.push(e),a.push(t),c){if(l=e.length,l!==t.length)return!1;for(;l--;)if(!jt(e[l],t[l],n-1,i,a))return!1}else{let r=Object.keys(e),o=r.length;if(Object.keys(t).length!==o)return!1;for(let s=0;s<o;s++){let o=r[s];if(!p(t,o)||!jt(e[o],t[o],n-1,i,a))return!1}}return i.pop(),a.pop(),!0}function Mt(e){return bt(e)?e.slice():u(e)||rr(e)||d(e)||or(e)?Array.from(e.entries()):e}function Nt(e){return e[Symbol.iterator]=Pt,Ft(Object.create(fr),e)}function Pt(){return this}Object.defineProperty(e,`__esModule`,{value:!0});let Ft=Object.assign,A=Object.getOwnPropertyDescriptor,It=Object.defineProperty,Lt=Object.prototype,Rt=[];Object.freeze(Rt);let zt={};Object.freeze(zt);let Bt=Object.toString(),Vt=()=>{},Ht=Reflect.ownKeys,Ut=Object.getOwnPropertyDescriptors,j=Symbol(`mobx administration`);var Wt=class{constructor(e=`Atom`){this.tt=void 0,this.yt=0,this.H=null,this.J=0,this.F=-1,this.onBOL=void 0,this.onBUOL=void 0,this.tt=e}get isBeingObserved(){return m(this.yt,1)}set isBeingObserved(e){this.yt=h(this.yt,1,e)}get isPendingUnobservation(){return m(this.yt,2)}set isPendingUnobservation(e){this.yt=h(this.yt,2,e)}get diffValue(){return+!!m(this.yt,4)}set diffValue(e){this.yt=h(this.yt,4,e===1)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}reportObserved(){return Le(this)}reportChanged(){Pe(),Re(this),Fe()}toString(){return this.tt}};let Gt=l(`Atom`,Wt),Kt=Object.is,qt={t:`override`,o:function(){return 0},u:function(){t(44,this.t)}},Jt=`true`,Yt=de(),M=[Yt],Xt={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Xt);let Zt=se(`observable`),Qt=se(`observable.ref`,{A:y}),$t=se(`observable.shallow`,{A:function(e,t,n){return e==null||Tt(e)||bt(e)||rr(e)||or(e)?e:Array.isArray(e)?sn.array(e,{name:n,deep:!1}):o(e)?sn.object(e,void 0,{name:n,deep:!1}):u(e)?sn.map(e,{name:n,deep:!1}):d(e)?sn.set(e,{name:n,deep:!1}):void 0}}),en=se(`observable.struct`,{A:function(e,t){return At(e,t)?t:e}}),tn={box(e,t){let n=he(t);return new _n(e,_e(n),n.name,!0,n.equals)},array(e,t){let n=he(t);return function(e,t,n=`ObservableArray`,r=!1){return kt(()=>{let i=new Zn(n,t,r);It(i.j,j,{enumerable:!1,writable:!1,configurable:!0,value:i});let a=new Proxy(i.j,Xn);return i.v=a,e&&e.length&&i.wt(0,0,e),a})}(e,_e(n),n.name)},map(e,t){let n=he(t);return new nr(e,_e(n),n.name)},set(e,t){let n=he(t);return new ar(e,_e(n),n.name)},object:(e,t,n)=>kt(()=>Je(function(e,t){var n;return(n=(e=Ct(e,t))[j]).v??(n.v=new Proxy(e,Kn))}({},n),e,t))},nn=ge(Qt),rn=ge($t),an=ge(Zt),on=ge(en);var sn=Ft(function(e,t,n){return t&&typeof t.kind==`string`?ue(Zt,e,t):tt(e)?e:o(e)?sn.object(e,t,n):Array.isArray(e)?sn.array(e,t):u(e)?sn.map(e,t):d(e)?sn.set(e,t):typeof e==`object`&&e?e:sn.box(e,t)},Zt,tn);let cn=`computed`,ln=w(cn),un=ve(w(`computed.struct`,{equals:_})),dn=function(e,t){if(t&&typeof t.kind==`string`)return E(ln,e,t);if(o(e))return ve(w(cn,e));let n=o(t)?t:{};return n.get=e,n.name||=e.name||``,new yn(n)};var fn;Ft(dn,ln);let pn=0,mn=1,hn=(fn=A(()=>{},`name`)?.configurable)!=null&&fn,gn={value:`action`,configurable:!0,writable:!1,enumerable:!1};var _n=class extends Wt{constructor(e,t,n=`ObservableValue`,r=!0,i=Kt){super(n),this.A=void 0,this.tt=void 0,this.xt=void 0,this.gt=!1,this.st=void 0,this.ot=void 0,this.rt=void 0,this.dehancer=void 0,this.A=t,this.tt=n,this.xt=i,this.rt=t(e,void 0,n)}dehanceValue(e){return this.dehancer===void 0?e:this.dehancer(e)}set(e){(e=this.jt(e))!==P.UNCHANGED&&this.Ot(e)}jt(e){if(dt(this)){let t=O(this,{object:this,type:Yn,newValue:e});if(!t)return P.UNCHANGED;e=t.newValue}return e=this.A(e,this.rt,this.tt),this.xt(this.rt,e)?P.UNCHANGED:e}Ot(e){let t=this.rt;this.rt=e,this.reportChanged(),pt(this)&&ht(this,{type:Yn,object:this,newValue:e,oldValue:t})}get(){return this.reportObserved(),this.dehanceValue(this.rt)}raw(){return this.rt}toJSON(){return this.get()}toString(){return`${this.tt}[${this.rt}]`}valueOf(){return f(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let vn=l(`ObservableValue`,_n);var yn=class{constructor(e){this.K=-1,this.L=[],this.$=null,this.H=null,this.U=0,this.J=0,this.F=0,this.W=0,this.rt=new bn(null),this.tt=void 0,this._t=void 0,this.yt=0,this.derivation=void 0,this.St=void 0,this.At=void 0,this.xt=void 0,this.Vt=void 0,this.Mt=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.St=ye(`ComputedValue-setter`,e.set)),this.xt=e.equals||Kt,this.At=e.context,this.Vt=e.requiresReaction,this.Mt=!!e.keepAlive}q(){(function(e){var t;e.F===0&&(e.F=1,(t=e.H)==null||t.forEach(e=>{e.K===0&&(e.K=1,e.q())}))})(this)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}get isComputing(){return m(this.yt,1)}set isComputing(e){this.yt=h(this.yt,1,e)}get isRunningSetter(){return m(this.yt,2)}set isRunningSetter(e){this.yt=h(this.yt,2,e)}get isBeingObserved(){return m(this.yt,4)}set isBeingObserved(e){this.yt=h(this.yt,4,e)}get isPendingUnobservation(){return m(this.yt,8)}set isPendingUnobservation(e){this.yt=h(this.yt,8,e)}get diffValue(){return+!!m(this.yt,16)}set diffValue(e){this.yt=h(this.yt,16,e===1)}get(){if(this.isComputing&&t(32,this.tt,this.derivation),P.inBatch!==0||this.H&&this.H.size!==0||this.Mt){let e=this.isBeingObserved;if(Le(this),we(this)){let e=P.trackingContext;e||!this.Mt&&!this.isBeingObserved||(P.trackingContext=this),this.trackAndCompute()&&function(e){var t;e.F!==2&&(e.F=2,(t=e.H)==null||t.forEach(t=>{t.K===1?t.K=2:t.K===0&&(e.F=0)}))}(this),P.trackingContext=e}else !e&&this.isBeingObserved&&this.L.forEach(Ie)}else we(this)&&(this.Nt(),Pe(),this.rt=this.Rt(!1),Fe());let e=this.rt;if(Ce(e))throw e.cause;return e}set(e){if(this.St){this.isRunningSetter&&t(33,this.tt),this.isRunningSetter=!0;try{this.St.call(this.At,e)}finally{this.isRunningSetter=!1}}else t(34,this.tt)}trackAndCompute(){let e=this.rt,t=this.K===-1,n=this.Rt(!0),r=t||Ce(e)||Ce(n)||!this.xt(e,n);return r&&(this.rt=n),r}Rt(e){let t;if(this.isComputing=!0,e)t=Te(this,this.derivation,this.At);else if(!0===P.disableErrorBoundaries)t=this.derivation.call(this.At);else try{t=this.derivation.call(this.At)}catch(e){t=new bn(e)}return this.isComputing=!1,t}G(){this.Mt||(Ee(this),this.rt=void 0)}Nt(){}toString(){return`${this.tt}[${this.derivation.toString()}]`}valueOf(){return f(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let N=l(`ComputedValue`,yn);var bn=class{constructor(e){this.cause=void 0,this.cause=e}};let xn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`];var Sn=class{constructor(){this.version=7,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.isRunningUnobservations=!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.safeDescriptors=!0}};let Cn=!0,wn=!1,P=function(){let e=globalThis;return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Cn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==7&&(Cn=!1),Cn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Sn):(setTimeout(()=>{wn||t(35)},1),new Sn)}();var Tn=class{constructor(e=`Reaction`,t,n,r){this.tt=void 0,this.Et=void 0,this.kt=void 0,this.Ct=void 0,this.L=[],this.$=[],this.K=-1,this.U=0,this.W=0,this.yt=0,this.It=void 0,this.tt=e,this.Et=t,this.kt=n,this.Ct=r}get isDisposed(){return m(this.yt,1)}set isDisposed(e){this.yt=h(this.yt,1,e)}get isScheduled(){return m(this.yt,2)}set isScheduled(e){this.yt=h(this.yt,2,e)}get isTrackPending(){return m(this.yt,4)}set isTrackPending(e){this.yt=h(this.yt,4,e)}get isRunning(){return m(this.yt,8)}set isRunning(e){this.yt=h(this.yt,8,e)}get diffValue(){return+!!m(this.yt,16)}set diffValue(e){this.yt=h(this.yt,16,e===1)}q(){this.Y()}Y(){this.isScheduled||(this.isScheduled=!0,P.pendingReactions.push(this),ze())}X(){if(!this.isDisposed){Pe(),this.isScheduled=!1;let e=P.trackingContext;if(P.trackingContext=this,we(this)){this.isTrackPending=!0;try{this.Et()}catch(e){this.Pt(e)}}P.trackingContext=e,Fe()}}track(e){if(this.isDisposed)return;Pe(),this.isRunning=!0;let t=P.trackingContext;P.trackingContext=this;let n=Te(this,e,void 0);P.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Ee(this),Ce(n)&&this.Pt(n.cause),Fe()}Pt(e){if(this.kt)this.kt(e,this);else{if(P.disableErrorBoundaries)throw e;P.suppressReactionErrors||console.error(`[mobx] uncaught error in '${this}'`,e),P.globalReactionErrorHandlers.forEach(t=>t(e,this))}}dispose(){var e;this.isDisposed||(this.isDisposed=!0,(e=this.It)==null||e.call(this),this.isRunning||(Pe(),Ee(this),Fe()))}Z(e){let t=()=>this.dispose();return e!=null&&e.addEventListener&&!this.isDisposed&&(e.addEventListener(`abort`,t),this.It=()=>e.removeEventListener==null?void 0:e.removeEventListener(`abort`,t)),t[j]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(t[Symbol.dispose]=t),t}toString(){return`Reaction[${this.tt}]`}};let En=100,Dn=e=>e(),On=l(`Reaction`,Tn),kn=`action`,An=`autoAction`,jn=b(kn),Mn=b(`action.bound`,{bound:!0}),Nn=b(An,{autoAction:!0}),Pn=b(`autoAction.bound`,{autoAction:!0,bound:!0}),Fn=He(!1);Ft(Fn,jn);let In=He(!0);Ft(In,Nn);let Ln=Ve(Mn),Rn=Ve(Pn),zn=e=>e(),Bn=`always`;var Vn=class extends Error{constructor(){super(`FLOW_CANCELLED`),Object.setPrototypeOf(this,new.target.prototype),this.name=`FlowCancellationError`}toString(){return`Error: ${this.message}`}};let Hn=te(`flow`),Un=te(`flow.bound`,{bound:!0}),Wn=Ft(function(e,t){if(t&&typeof t.kind==`string`)return ie(Hn,e,t);let n=e,i=n.name||`flow`,a=function(){let e=arguments,t=Fn(i,n).apply(this,e),a,o,s=new Promise(function(e,n){function s(e){let r;o=void 0;try{r=Fn(i,t.next).call(t,e)}catch(e){return n(e)}l(r)}function c(e){let r;o=void 0;try{r=Fn(i,t.throw).call(t,e)}catch(e){return n(e)}l(r)}function l(t){if(!r(t?.then))return t.done?e(t.value):(o=Promise.resolve(t.value),o.then(s,c));t.then(l,n)}a=n,s(void 0)});return s.cancel=Fn(i,function(){try{o&&Ze(o);let e=t.return(void 0),n=Promise.resolve(e.value);n.then(Vt,Vt),Ze(n),a(new Vn)}catch(e){a(e)}}),s};return a.isMobXFlow=!0,a},Hn),Gn=me(Un,ie),Kn={has:(e,t)=>ut(e).et(t),get:(e,t)=>ut(e).Tt(t),set(e,t,n){var r;return!!i(t)&&((r=ut(e).Bt(t,n,!0))==null||r)},deleteProperty(e,t){var n;return!!i(t)&&((n=ut(e).Dt(t,!0))==null||n)},defineProperty(e,t,n){var r;return(r=ut(e).l(t,n))==null||r},ownKeys:e=>ut(e).it(),preventExtensions(e){t(13)}},qn=Symbol(`mobx-keys`),Jn=`splice`,Yn=`update`,Xn={get(e,t){let n=e[j];return t===j?n:t===`length`?n.Kt():typeof t!=`string`||isNaN(t)?p(Qn,t)?Qn[t]:e[t]:n.Tt(parseInt(t))},set(e,t,n){let r=e[j];return t===`length`?r.Lt(n):typeof t==`symbol`||isNaN(t)?e[t]=n:r.Bt(parseInt(t),n),!0},preventExtensions(){t(15)}};var Zn=class{constructor(e=`ObservableArray`,t,n){this.$t=void 0,this.ct=void 0,this.j=[],this.st=void 0,this.ot=void 0,this.A=void 0,this.dehancer=void 0,this.v=void 0,this.Ut=0,this.$t=n,this.ct=new Wt(e),this.A=(e,n)=>t(e,n,`ObservableArray[..]`)}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}ht(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e}Kt(){return this.ct.reportObserved(),this.j.length}Lt(e){(!Number.isInteger(e)||e<0)&&t(40,e);let n=this.j.length;if(e!==n)if(e>n){let t=Array.from({length:e-n});this.wt(n,0,t)}else this.wt(e,n-e)}zt(e,n){e!==this.Ut&&t(16),this.Ut+=n}wt(e,t,n){let r=this.j.length;if(e===void 0?e=0:e>r?e=r:e<0&&(e=Math.max(0,r+e)),t=arguments.length===1?r-e:t==null?0:Math.max(0,Math.min(t,r-e)),n===void 0&&(n=Rt),dt(this)){let r=O(this,{object:this.v,type:Jn,index:e,removedCount:t,added:n});if(!r)return Rt;t=r.removedCount,n=r.added}n=n.length===0?n:n.map(e=>this.A(e,void 0));let i=this.qt(e,t,n);return t===0&&n.length===0||this.Ft(e,n,i),this.ht(i)}qt(e,t,n){if(n.length<1e4)return this.j.splice(e,t,...n);{let r=this.j.slice(e,e+t),i=this.j.slice(e+t);this.j.length+=n.length-t;for(let t=0;t<n.length;t++)this.j[e+t]=n[t];for(let t=0;t<i.length;t++)this.j[e+n.length+t]=i[t];return r}}Ht(e,t,n){let r=pt(this),i=r?{observableKind:`array`,object:this.v,type:Yn,debugObjectName:this.ct.tt,index:e,newValue:t,oldValue:n}:null;this.ct.reportChanged(),r&&ht(this,i)}Ft(e,t,n){let r=pt(this),i=r?{observableKind:`array`,object:this.v,debugObjectName:this.ct.tt,type:Jn,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.ct.reportChanged(),r&&ht(this,i)}Tt(e){return this.ct.reportObserved(),this.Wt(this.j[e])}Bt(e,t){let n=this.j;if(e<n.length){let r=n[e];if(dt(this)){let n=O(this,{type:Yn,object:this.v,index:e,newValue:t});if(!n)return;t=n.newValue}(t=this.A(t,r))!==r&&(n[e]=t,this.Ht(e,t,r))}else{let r=Array.from({length:e+1-n.length});r[r.length-1]=t,this.wt(n.length,0,r)}}},Qn={clear(){return this.splice(0)},replace(e){let t=this[j];return t.wt(0,t.j.length,e)},toJSON(){return this.slice()},splice(e,t,...n){let r=this[j];switch(arguments.length){case 0:return[];case 1:return r.wt(e);case 2:return r.wt(e,t)}return r.wt(e,t,n)},spliceWithArray(e,t,n){return this[j].wt(e,t,n)},push(...e){let t=this[j];return t.wt(t.j.length,0,e),t.j.length},pop(){return this.splice(Math.max(this[j].j.length-1,0),1)[0]},shift(){return this.splice(0,1)[0]},unshift(...e){let t=this[j];return t.wt(0,0,e),t.j.length},reverse(){return P.trackingDerivation&&t(37,`reverse`),this.replace(this.slice().reverse()),this},sort(){P.trackingDerivation&&t(37,`sort`);let e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove(e){let t=this[j],n=t.ht(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};k(`at`,_t),k(`concat`,_t),k(`flat`,_t),k(`includes`,_t),k(`indexOf`,_t),k(`join`,_t),k(`lastIndexOf`,_t),k(`slice`,_t),k(`toString`,_t),k(`toLocaleString`,_t),k(`toSorted`,_t),k(`toSpliced`,_t),k(`with`,_t),k(`every`,vt),k(`filter`,vt),k(`find`,vt),k(`findIndex`,vt),k(`findLast`,vt),k(`findLastIndex`,vt),k(`flatMap`,vt),k(`forEach`,vt),k(`map`,vt),k(`some`,vt),k(`toReversed`,vt),k(`reduce`,yt),k(`reduceRight`,yt);let $n=l(`ObservableArrayAdministration`,Zn),er={},tr=`delete`;var nr=class{constructor(e,t=v,n=`ObservableMap`){this.A=void 0,this.tt=void 0,this[j]=er,this.ft=void 0,this.dt=void 0,this.lt=void 0,this.st=void 0,this.ot=void 0,this.dehancer=void 0,this.A=t,this.tt=n,kt(()=>{this.lt=g(`ObservableMap.keys()`),this.ft=new Map,this.dt=new Map,e&&this.merge(e)})}et(e){return this.ft.has(e)}has(e){if(!P.trackingDerivation)return this.et(e);let t=this.dt.get(e);if(!t){let n=t=new _n(this.et(e),y,`ObservableMap.key?`,!1);this.dt.set(e,n),n.onBUOL=new Set([()=>this.dt.delete(e)])}return t.get()}set(e,t){let n=this.et(e);if(dt(this)){let r=O(this,{type:n?Yn:`add`,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.Gt(e,t):this.Jt(e,t),this}delete(e){if(dt(this)&&!O(this,{type:tr,object:this,name:e}))return!1;if(this.et(e)){let t=pt(this),n=t?{observableKind:`map`,debugObjectName:this.tt,type:tr,object:this,oldValue:this.ft.get(e).rt,name:e}:null;return ct(()=>{var t;this.lt.reportChanged(),(t=this.dt.get(e))==null||t.Ot(!1),this.ft.get(e).Ot(void 0),this.ft.delete(e)}),t&&ht(this,n),!0}return!1}Gt(e,t){let n=this.ft.get(e);if((t=n.jt(t))!==P.UNCHANGED){let r=pt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:Yn,object:this,oldValue:n.rt,name:e,newValue:t}:null;n.Ot(t),r&&ht(this,i)}}Jt(e,t){ct(()=>{var n;let r=new _n(t,this.A,`ObservableMap.key`,!1);this.ft.set(e,r),t=r.rt,(n=this.dt.get(e))==null||n.Ot(!0),this.lt.reportChanged()});let n=pt(this);n&&ht(this,n?{observableKind:`map`,debugObjectName:this.tt,type:`add`,object:this,name:e,newValue:t}:null)}get(e){return this.has(e)?this.Wt(this.ft.get(e).get()):this.Wt(void 0)}getOrInsert(e,t){return this.has(e)||this.set(e,t),this.get(e)}getOrInsertComputed(e,t){return this.has(e)||this.set(e,t(e)),this.get(e)}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}keys(){return this.lt.reportObserved(),this.ft.keys()}values(){let e=this,t=this.keys();return xt({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:e.get(r)}}})}entries(){let e=this,t=this.keys();return xt({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:[r,e.get(r)]}}})}[Symbol.iterator](){return this.entries()}forEach(e,t){for(let[n,r]of this)e.call(t,r,n,this)}merge(e){return rr(e)&&(e=new Map(e)),ct(()=>{o(e)?function(e){let t=Object.keys(e),n=Object.getOwnPropertySymbols(e);return n.length?[...t,...n.filter(t=>Lt.propertyIsEnumerable.call(e,t))]:t}(e).forEach(t=>this.set(t,e[t])):Array.isArray(e)?e.forEach(([e,t])=>this.set(e,t)):u(e)?(function(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}(e)||t(19,e),e.forEach((e,t)=>this.set(t,e))):e!=null&&t(20,e)}),this}clear(){ct(()=>{De(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return ct(()=>{let n=function(e){if(u(e)||rr(e))return e;if(Array.isArray(e))return new Map(e);if(o(e)){let t=new Map;for(let n in e)t.set(n,e[n]);return t}return t(21,e)}(e),r=new Map,i=!1;for(let e of this.ft.keys())if(!n.has(e))if(this.delete(e))i=!0;else{let t=this.ft.get(e);r.set(e,t)}for(let[e,t]of n.entries()){let n=this.ft.has(e);if(this.set(e,t),this.ft.has(e)){let t=this.ft.get(e);r.set(e,t),n||(i=!0)}}if(!i)if(this.ft.size!==r.size)this.lt.reportChanged();else{let e=this.ft.keys(),t=r.keys(),n=e.next(),i=t.next();for(;!n.done;){if(n.value!==i.value){this.lt.reportChanged();break}n=e.next(),i=t.next()}}this.ft=r}),this}get size(){return this.lt.reportObserved(),this.ft.size}toString(){return`[object ObservableMap]`}toJSON(){return Array.from(this)}get[Symbol.toStringTag](){return`Map`}},rr=l(`ObservableMap`,nr);let ir={};var ar=class{constructor(e,t=v,n=`ObservableSet`){this.tt=void 0,this[j]=ir,this.ft=new Set,this.ct=void 0,this.ot=void 0,this.st=void 0,this.dehancer=void 0,this.A=void 0,this.tt=n,this.A=(e,r)=>t(e,r,n),kt(()=>{this.ct=g(this.tt),e&&this.replace(e)})}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}clear(){ct(()=>{De(()=>{for(let e of this.ft.values())this.delete(e)})})}forEach(e,t){for(let n of this)e.call(t,n,n,this)}get size(){return this.ct.reportObserved(),this.ft.size}add(e){if(dt(this)){let t=O(this,{type:`add`,object:this,newValue:e});if(!t)return this;e=t.newValue}if(!this.has(e)){ct(()=>{e=this.A(e,void 0),this.ft.add(e),this.ct.reportChanged()});let t=pt(this);t&&ht(this,t?{observableKind:`set`,debugObjectName:this.tt,type:`add`,object:this,newValue:e}:null)}return this}delete(e){if(dt(this)&&!O(this,{type:tr,object:this,oldValue:e}))return!1;if(this.has(e)){let t=pt(this),n=t?{observableKind:`set`,debugObjectName:this.tt,type:tr,object:this,oldValue:e}:null;return ct(()=>{this.ct.reportChanged(),this.ft.delete(e)}),t&&ht(this,n),!0}return!1}has(e){return this.ct.reportObserved(),this.ft.has(this.Wt(e))}entries(){let e=this.values();return St({next(){let{value:t,done:n}=e.next();return n?{value:void 0,done:n}:{value:[t,t],done:n}}})}keys(){return this.values()}values(){this.ct.reportObserved();let e=this,t=this.ft.values();return St({next(){let{value:n,done:r}=t.next();return r?{value:void 0,done:r}:{value:e.Wt(n),done:r}}})}intersection(e){return new Set(this).intersection(e)}union(e){return new Set(this).union(e)}difference(e){return new Set(this).difference(e)}symmetricDifference(e){return new Set(this).symmetricDifference(e)}isSubsetOf(e){return new Set(this).isSubsetOf(e)}isSupersetOf(e){return new Set(this).isSupersetOf(e)}isDisjointFrom(e){return new Set(this).isDisjointFrom(e)}replace(e){return or(e)&&(e=new Set(e)),Array.isArray(e)||d(e)?ct(()=>{let t=d(e)?e:new Set(e);if(t.size!==0)if(this.ft.size!==0){for(let e of this.ft.values())t.has(this.Wt(e))||this.delete(e);t.forEach(e=>this.add(e))}else t.forEach(e=>this.add(e));else this.clear()}):e!=null&&t(41,e),this}toJSON(){return Array.from(this)}toString(){return`[object ObservableSet]`}[Symbol.iterator](){return this.values()}get[Symbol.toStringTag](){return`Set`}},or=l(`ObservableSet`,ar);let sr=Object.create(null),cr=`remove`;var lr=class{constructor(e,t=new Map,n,r=Yt){this.h=void 0,this.j=void 0,this.tt=void 0,this.ut=void 0,this.lt=void 0,this.ot=void 0,this.st=void 0,this.v=void 0,this.p=void 0,this.Xt=void 0,this.Qt=void 0,this.O=void 0,this.V=void 0,this.h=e,this.j=t,this.tt=n,this.ut=r,this.lt=new Wt(`ObservableObject.keys`),this.p=o(this.h)}_(e){return(this.j.get(e)??this.vt(e)??this.bt(e)).get()}vt(e){let t=this.O?.get(e);if(!t)return;this.O.delete(e),this.O.size===0&&(this.O=void 0);let n=t();return this.j.set(e,n),n}bt(e){let t=this.V?.get(e);if(!t)return;this.V.delete(e),this.V.size===0&&(this.V=void 0);let n=t();return this.j.set(e,n),n}M(e,t){let n=this.j.get(e)??this.vt(e)??this.bt(e);if(n instanceof yn)return n.set(t),!0;if(dt(this)){let n=O(this,{type:Yn,object:this.v||this.h,name:e,newValue:t});if(!n)return null;t=n.newValue}if((t=n.jt(t))!==P.UNCHANGED){let r=pt(this),i=r?{type:Yn,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.rt,name:e,newValue:t}:null;n.Ot(t),r&&ht(this,i)}return!0}Tt(e){return P.trackingDerivation&&!p(this.h,e)&&this.et(e),this.h[e]}Bt(e,t,n=!1){return p(this.h,e)?this.j.has(e)?this.M(e,t):n?Reflect.set(this.h,e,t):(this.h[e]=t,!0):this.u(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.ut,n)}et(e){if(!P.trackingDerivation)return e in this.h;this.Qt||=new Map;let t=this.Qt.get(e);return t||(t=new _n(e in this.h,y,`ObservableObject.key?`,!1),this.Qt.set(e,t)),t.get()}u(e,t,n,r=!1){return!0===n&&(n=this.ut),!1===n?this.l(e,t,r):n.u(this,e,t,r)}l(e,t,n=!1){try{Pe();let r=this.Dt(e);if(!r)return r;if(dt(this)){let n=O(this,{object:this.v||this.h,name:e,type:`add`,newValue:t.value});if(!n)return null;let{newValue:r}=n;t.value!==r&&(t=Ft({},t,{value:r}))}if(n){if(!Reflect.defineProperty(this.h,e,t))return!1}else It(this.h,e,t);this.Yt(e,t.value)}finally{Fe()}return!0}S(e,t,n,r=!1){try{Pe();let i=this.Dt(e);if(!i)return i;if(dt(this)){let n=O(this,{object:this.v||this.h,name:e,type:`add`,newValue:t});if(!n)return null;t=n.newValue}let a=wt(e),o={configurable:!P.safeDescriptors||this.p,enumerable:!0,get:a.get,set:a.set};if(r){if(!Reflect.defineProperty(this.h,e,o))return!1}else It(this.h,e,o);let s=new _n(t,n,`ObservableObject.key`,!1);this.j.set(e,s),this.Yt(e,s.rt)}finally{Fe()}return!0}m(e,t,n=!1){try{Pe();let r=this.Dt(e);if(!r)return r;if(dt(this)&&!O(this,{object:this.v||this.h,name:e,type:`add`,newValue:void 0}))return null;t.name||=`ObservableObject.key`,t.context=this.v||this.h;let i=wt(e),a={configurable:!P.safeDescriptors||this.p,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.h,e,a))return!1}else It(this.h,e,a);this.j.set(e,new yn(t)),this.Yt(e,void 0)}finally{Fe()}return!0}Dt(e,t=!1){if(!p(this.h,e))return!0;if(dt(this)&&!O(this,{object:this.v||this.h,name:e,type:cr}))return null;try{var n;Pe();let r=pt(this),i=this.j.get(e),a;if(i||!r||(a=A(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 _n&&(a=i.rt),Re(i)),this.lt.reportChanged(),(n=this.Qt)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&ht(this,{type:cr,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{Fe()}return!0}Yt(e,t){var n;let r=pt(this);r&&r&&ht(this,r?{type:`add`,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,name:e,newValue:t}:null),(n=this.Qt)==null||(n=n.get(e))==null||n.set(!0),this.lt.reportChanged()}it(){return this.lt.reportObserved(),Ht(this.h)}nt(){return this.lt.reportObserved(),Object.keys(this.h)}};let ur=l(`ObservableObjectAdministration`,lr),dr=Lt.toString,fr=globalThis.Iterator?.prototype||{};e.$mobx=j,e.FlowCancellationError=Vn,e.ObservableMap=nr,e.ObservableSet=ar,e.Reaction=Tn,e._allowStateChanges=Se,e._allowStateChangesInsideComputed=Ue,e._allowStateReadsEnd=function(e){P.allowStateReads=e},e._allowStateReadsStart=function(e){let t=P.allowStateReads;return P.allowStateReads=e,t},e._autoAction=In,e._autoActionBound=Rn,e._endAction=D,e._getAdministration=Dt,e._getGlobalState=function(){return P},e._interceptReads=function(e,t,n){let r;return rr(e)||bt(e)||vn(e)?r=Dt(e):Tt(e)&&(r=Dt(e,t)),r.dehancer=typeof t==`function`?t:n,()=>{r.dehancer=void 0}},e._isComputingDerivation=function(){return P.trackingDerivation!==null},e._resetGlobalState=function(){let e=new Sn;for(let t in e)xn.indexOf(t)===-1&&(P[t]=e[t]);P.allowStateChanges=!P.enforceActions},e._startAction=xe,e.action=Fn,e.actionBound=Ln,e.autorun=Ge,e.compareDefault=Kt,e.compareIdentity=function(e,t){return e===t},e.compareShallow=function(e,t){return At(e,t,1)},e.compareStructural=_,e.computed=dn,e.computedStruct=un,e.configure=function(e){!0===e.isolateGlobalState&&function(){if((P.pendingReactions.length||P.inBatch||P.isRunningReactions)&&t(36),wn=!0,Cn){let e=globalThis;--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),P=new Sn}}();let{enforceActions:n}=e;if(n!==void 0){let e=n===Bn?Bn:n===`observed`;P.enforceActions=e,P.allowStateChanges=!0!==e&&e!==Bn}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(t=>{t in e&&(P[t]=!!e[t])}),P.allowStateReads=!P.observableRequiresReaction,e.reactionScheduler&&function(e){let t=Dn;Dn=n=>e(()=>t(n))}(e.reactionScheduler)},e.createAtom=g,e.defineProperty=function(e,n,r){if(Tt(e))return e[j].l(n,r);t(39)},e.entries=function(e){return Tt(e)?nt(e).map(t=>[t,e[t]]):rr(e)?nt(e).map(t=>[t,e.get(t)]):or(e)?Array.from(e.entries()):bt(e)?e.map((e,t)=>[t,e]):void t(7)},e.extendObservable=Je,e.flow=Wn,e.flowBound=Gn,e.flowResult=function(e){return e},e.get=function(e,n){if(rt(e,n))return Tt(e)?e[j].Tt(n):rr(e)?e.get(n):bt(e)?e[n]:void t(11)},e.getAtom=Et,e.getDebugName=Ot,e.getDependencyTree=function(e,t){return Ye(Et(e,t))},e.getObserverTree=function(e,t){return Xe(Et(e,t))},e.has=rt,e.intercept=function(e,t,n){return r(n)?function(e,t,n){return ft(Dt(e,t),n)}(e,t,n):function(e,t){return ft(Dt(e),t)}(e,t)},e.isAction=We,e.isBoxedObservable=vn,e.isComputed=function(e){return $e(e)},e.isComputedProp=function(e,t){return $e(e,t)},e.isFlow=Qe,e.isFlowCancellationError=function(e){return e instanceof Vn},e.isObservable=tt,e.isObservableArray=bt,e.isObservableMap=rr,e.isObservableObject=Tt,e.isObservableProp=function(e,t){return et(e,t)},e.isObservableSet=or,e.keys=nt,e.makeAutoObservable=function(e,t,n){return o(e)?Je(e,e,t,n):(kt(()=>{let r=Ct(e,n)[j];if(!e[qn]){let t=Object.getPrototypeOf(e),n=new Set([...Ht(e),...Ht(t)]);n.delete(`constructor`),n.delete(j),c(t,qn,n)}e[qn].forEach(e=>gt(r,e,!t||!(e in t)||t[e]))}),e)},e.makeObservable=function(e,t,n){return kt(()=>{let r=Ct(e,n)[j];Ht(t).forEach(e=>gt(r,e,t[e]))}),e},e.observable=sn,e.observableDeep=an,e.observableRef=nn,e.observableShallow=rn,e.observableStruct=on,e.observe=function(e,t,n,i){return r(n)?function(e,t,n,r){return at(Dt(e,t),n,r)}(e,t,n,i):function(e,t,n){let r=Dt(e);if(bt(e))n&&t({observableKind:`array`,object:r.v,debugObjectName:r.ct.tt,type:`splice`,index:0,added:r.j.slice(),addedCount:r.j.length,removed:[],removedCount:0});else if(!rr(e)&&!or(e)&&!Tt(e))return at(r,t,n);return mt(r,t)}(e,t,n)},e.onBecomeObserved=function(e,t,n){return qe(`onBO`,e,t,n)},e.onBecomeUnobserved=function(e,t,n){return qe(`onBUO`,e,t,n)},e.onReactionError=function(e){return P.globalReactionErrorHandlers.push(e),()=>{let t=P.globalReactionErrorHandlers.indexOf(e);t>=0&&P.globalReactionErrorHandlers.splice(t,1)}},e.override=qt,e.ownKeys=it,e.reaction=function(e,t,n=zt){function r(){if(p=!1,h.isDisposed)return;let t=!1,r=d;h.track(()=>{let n=Se(!1,()=>e(h));t=f||!m(d,n),d=n}),(f&&n.fireImmediately||!f&&t)&&o(d,r,h),f=!1}var i;let a=n.name??`Reaction`,o=Fn(a,n.onError?(s=n.onError,c=t,function(){try{return c.apply(this,arguments)}catch(e){s.call(this,e)}}):t);var s,c;let l=!n.scheduler&&!n.delay,u=Ke(n),d,f=!0,p=!1,m=n.equals||Kt,h=new Tn(a,()=>{f||l?r():p||(p=!0,u(r))},n.onError,n.requiresObservable);return n!=null&&(i=n.signal)!=null&&i.aborted||h.Y(),h.Z(n?.signal)},e.remove=function(e,n){Tt(e)?e[j].Dt(n):rr(e)||or(e)?e.delete(n):bt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=Ue,e.set=function e(n,r,i){if(arguments.length===2&&!or(n)){Pe();let t=r;try{for(let r in t)e(n,r,t[r])}finally{Fe()}return}Tt(n)?n[j].Bt(r,i):rr(n)?n.set(r,i):or(n)?n.add(r):bt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(42,r),Pe(),r>=n.length&&(n.length=r+1),n[r]=i,Fe()):t(8)},e.spy=function(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}},e.toJS=function(e){return st(e,new Map)},e.transaction=ct,e.untracked=De,e.values=function(e){return Tt(e)?nt(e).map(t=>e[t]):rr(e)?nt(e).map(t=>e.get(t)):or(e)?Array.from(e.values()):bt(e)?e.slice():void t(6)},e.when=function(e,t,n){return arguments.length===1||t&&typeof t==`object`?function(e,t){var n;if(t!=null&&(n=t.signal)!=null&&n.aborted)return Ft(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:()=>null});let r,i,a=new Promise((n,a)=>{var o;let s=lt(e,n,Ft({},t,{onError:a}));r=()=>{s(),a(Error(`WHEN_CANCELLED`))},i=()=>{s(),a(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,i)}).finally(()=>{var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,i)});return a.cancel=r,a}(e,t):lt(e,t,n||{})}})),Bg=ye((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t={0:`Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,1(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.`,19(e){return`Cannot initialize from classes that inherit from Map: `+e.constructor.name},20(e){return`Cannot initialize map from `+e},21(e){return`Cannot convert to map from '${e}'`},23:`It is not possible to get index atoms from arrays`,24(e){return`Cannot obtain administration from `+e},25(e,t){return`the entry '${e}' does not exist in the observable map '${t}'`},26:`please specify a property`,27(e,t){return`no observable property '${e.toString()}' found on the observable object '${t}'`},28(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(e,t){return`Cycle detected in computation ${e}: ${t}`},33(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(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(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`,40(e){return`Out of range: `+e},41(e){return`Cannot initialize set from `+e},42(e){return`Invalid index: '${e}'`},43(e,t,n){return`Cannot apply '${e}' to '${t}' (kind: ${n}):\n'${e}' can only be used on properties with a function value.`},44(e){return`'${e}' can only be used with 'makeObservable'`}};function n(e,...n){{let r=typeof e==`string`?e:t[e];throw typeof r==`function`&&(r=r.apply(null,n)),Error(`[MobX] ${r}`)}}let r=Object.assign,i=Object.getOwnPropertyDescriptor,a=Object.defineProperty,o=Object.prototype,s=[];Object.freeze(s);let c={};Object.freeze(c);let l=Object.toString();function u(){return++M.mobxGuid}function d(e){let t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}let f=()=>{};function p(e){return typeof e==`function`}function m(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function h(e){return typeof e==`object`&&!!e}function g(e){if(!h(e))return!1;let t=Object.getPrototypeOf(e);if(t==null)return!0;let n=ie(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===l}function _(e){let t=e?.constructor;return t?t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`:!1}function v(e,t,n){a(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function y(e,t,n){a(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function b(e,t){let n=`isMobX`+e;return t.prototype[n]=!0,function(e){return h(e)&&e[n]===!0}}function x(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function S(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function C(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function ee(e){let t=Object.keys(e),n=Object.getOwnPropertySymbols(e);return n.length?[...t,...n.filter(t=>o.propertyIsEnumerable.call(e,t))]:t}let te=Reflect.ownKeys;function ne(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function re(e){return e===null?null:typeof e==`object`?``+e:e}function ie(e,t){return o.hasOwnProperty.call(e,t)}let ae=Object.getOwnPropertyDescriptors;function w(e,t){return!!(e&t)}function T(e,t,n){return n?e|=t:e&=~t,e}function oe(e,t){t.includes(e.kind)||n(`The decorator applied to '${String(e.name)}' cannot be used on a ${e.kind} element`)}let E=Symbol(`mobx administration`);var se=class{constructor(e=`Atom@`+u()){this.name_=void 0,this.flags_=0,this.observers_=null,this.lastAccessedBy_=0,this.lowestObserverState_=-1,this.onBOL=void 0,this.onBUOL=void 0,this.name_=e}get isBeingObserved(){return w(this.flags_,1)}set isBeingObserved(e){this.flags_=T(this.flags_,1,e)}get isPendingUnobservation(){return w(this.flags_,2)}set isPendingUnobservation(e){this.flags_=T(this.flags_,2,e)}get diffValue(){return+!!w(this.flags_,4)}set diffValue(e){this.flags_=T(this.flags_,4,e===1)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}reportObserved(){return ln(this)}reportChanged(){an(),un(this),on()}toString(){return this.name_}};let ce=b(`Atom`,se);function le(e,t=f,n=f){let r=new se(e);return t!==f&&(r.onBOL=new Set([t])),n!==f&&(r.onBUOL=new Set([n])),r}function ue(e,t){return e===t}function de(e,t){return Pi(e,t)}function fe(e,t){return Pi(e,t,1)}let pe=Object.is;function me(e,t,n){return e===null||typeof e!=`object`&&typeof e!=`function`||br(e)?e:Array.isArray(e)?O.array(e,{name:n}):g(e)?O.object(e,void 0,{name:n}):x(e)?O.map(e,{name:n}):C(e)?O.set(e,{name:n}):typeof e==`function`&&!Rn(e)&&!dr(e)?_(e)?sr(e):Pn(n,e):e}function he(e,t,r){if(e==null||Ei(e)||fi(e)||F(e)||vi(e))return e;if(Array.isArray(e))return O.array(e,{name:r,deep:!1});if(g(e))return O.object(e,void 0,{name:r,deep:!1});if(x(e))return O.map(e,{name:r,deep:!1});if(C(e))return O.set(e,{name:r,deep:!1});n(`The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets`)}function ge(e){return e}function _e(e,t){return br(e)&&n(`observable.struct should not be used with observable values`),Pi(e,t)?t:e}let ve=`override`,ye={annotationType_:ve,make_:xe,extend_:D};function be(e){return e.annotationType_===ve}function xe(e,t){return e.isPlainObject_&&n(`Cannot apply '${this.annotationType_}' to '${e.name_}.${t.toString()}':\n'${this.annotationType_}' cannot be used on plain objects.`),ie(e.appliedAnnotations_,t)||n(`'${e.name_}.${t.toString()}' is annotated with '${this.annotationType_}', but no such annotated member was found on prototype.`),0}function D(e,t,r,i){n(44,this.annotationType_)}function Se(e,t){return{annotationType_:e,options_:t,make_:Ce,extend_:we}}function Ce(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:Rn(n.value)?1:(a(r,t,De(e,this,t,n,!1)),2)}function we(e,t,n,r){let i=De(e,this,t,n);return e.defineProperty_(t,i,r)}function Te(e,t,r){oe(r,[`method`,`field`]);let{kind:i,name:a,addInitializer:o}=r,s=e,c=e=>xt(s.options_?.name??a.toString(),e,s.options_?.autoAction??!1);if(i==`field`)return function(e){var t;let n=e;return Rn(n)||(n=c(n)),(t=s.options_)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n};if(i==`method`){var l;return Rn(t)||(t=c(t)),(l=s.options_)!=null&&l.bound&&o(function(){let e=this,t=e[a].bind(e);t.isMobxAction=!0,e[a]=t}),t}n(43,s.annotationType_,String(a),i)}function Ee(e,{annotationType_:t},r,{value:i}){p(i)||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' can only be used on properties with a function value.`)}function De(e,t,n,r,i=M.safeDescriptors){var a,o;Ee(e,t,n,r);let{value:s}=r;return(a=t.options_)!=null&&a.bound&&(s=s.bind(e.proxy_??e.target_)),{value:xt(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 Oe(e,t){return{annotationType_:e,options_:t,make_:ke,extend_:Ae}}function ke(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&&(!ie(e.target_,t)||!dr(e.target_[t]))&&this.extend_(e,t,n,!1)===null?0:dr(n.value)?1:(a(r,t,Ne(e,this,t,n,!1,!1)),2)}function Ae(e,t,n,r){let i=Ne(e,this,t,n,this.options_?.bound);return e.defineProperty_(t,i,r)}function je(e,t,n){var r;oe(n,[`method`]);let{name:i,addInitializer:a}=n;return dr(t)||(t=sr(t)),(r=e.options_)!=null&&r.bound&&a(function(){let e=this,t=e[i].bind(e);t.isMobXFlow=!0,e[i]=t}),t}function Me(e,{annotationType_:t},r,{value:i}){p(i)||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' can only be used on properties with a generator function value.`)}function Ne(e,t,n,r,i,a=M.safeDescriptors){Me(e,t,n,r);let{value:o}=r;return dr(o)||(o=sr(o)),i&&(o=o.bind(e.proxy_??e.target_),o.isMobXFlow=!0),{value:o,configurable:a?e.isPlainObject_:!0,enumerable:!1,writable:!a}}function Pe(e,t){return{annotationType_:e,options_:t,make_:Fe,extend_:Ie}}function Fe(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Ie(e,t,n,i){return Re(e,this,t,n),e.defineComputedProperty_(t,r({},this.options_,{get:n.get,set:n.set}),i)}function Le(e,t,n){oe(n,[`getter`]);let i=e,{name:a,addInitializer:o}=n,s;function c(e,n){let o=r({},i.options_,{get:t,context:e});return o.name||=`${n.name_}.${a.toString()}`,new At(o)}return o(function(){let e=Ci(this)[E],n=this,r=e.values_.get(a);r instanceof At&&r.derivation!==t&&e.values_.delete(a),(e.lazyComputedKeys_??=new Map).set(a,()=>c(n,e))}),function(){let e=this[E],n=e.values_.get(a);if(n instanceof At&&n.derivation!==t){let t=s?.get(this);return t||(t=c(this,e),(s??=new WeakMap).set(this,t)),t.get()}return e.getObservablePropValue_(a)}}function Re(e,{annotationType_:t},r,{get:i}){i||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' can only be used on getter(+setter) properties.`)}function ze(e,t){return{annotationType_:e,options_:t,make_:Be,extend_:Ve}}function Be(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Ve(e,t,n,r){return Ue(e,this,t,n),e.defineObservableProperty_(t,n.value,this.options_?.enhancer_??me,r)}function He(e,t,r){if(r.kind===`field`)throw n(`Please use \`@observable accessor ${String(r.name)}\` instead of \`@observable ${String(r.name)}\``);oe(r,[`accessor`]);let i=e,{kind:a,name:o}=r;if(a!==`accessor`)return;function s(e,t){let n=Ci(e)[E];return(n.lazyObservableKeys_??=new Map).set(o,()=>new Ot(t,i.options_?.enhancer_??me,`${n.name_}.${o.toString()}`,!1)),n}return{get(){return(this[E]??s(this,t.get.call(this))).getObservablePropValue_(o)},set(e){return(this[E]??s(this,e)).setObservablePropValue_(o,e)},init(e){return s(this,e),e}}}function Ue(e,{annotationType_:t},r,i){`value`in i||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' cannot be used on getter/setter properties`)}let We=Ge();function Ge(e){return{annotationType_:`true`,options_:e,make_:Je,extend_:Ye}}let Ke=[We];function qe(e){let t=e.deep!==!1,n=!!e.autoBind,r=!t|(n?2:0);return Ke[r]??(Ke[r]=Ge({deep:t,autoBind:n}))}function Je(e,t,n,r){var i;if(n.get)return k.make_(e,t,n,r);if(n.set){let i=Rn(n.set)?n.set:xt(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:M.safeDescriptors?e.isPlainObject_:!0,set:i})===null?0:2:(a(r,t,{configurable:!0,set:i}),2)}if(r!==e.target_&&typeof n.value==`function`){var o;if(_(n.value)){var s;return((s=this.options_)!=null&&s.autoBind?cr:sr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?In:Pn).make_(e,t,n,r)}let c=this.options_?.deep===!1?lt:O;return typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),c.make_(e,t,n,r)}function Ye(e,t,n,r){var i;return n.get?k.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:M.safeDescriptors?e.isPlainObject_:!0,set:xt(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?lt:O).extend_(e,t,n,r))}function Xe(e,t){return r(function(r,i){if(i&&typeof i.kind==`string`)return t(e,r,i);n(`Invalid arguments for \`${e.annotationType_}\``)},e)}let Ze={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Ze);function Qe(e){return e||Ze}let $e=ze(`observable`),et=ze(`observable.ref`,{enhancer_:ge}),tt=ze(`observable.shallow`,{enhancer_:he}),nt=ze(`observable.struct`,{enhancer_:_e});function rt(e){return Xe(e,He)}function it(e){return e.deep===!0?me:e.deep===!1?ge:ot(e.defaultDecorator)}function at(e){return e?e.defaultDecorator??qe(e):void 0}function ot(e){return e?e.options_?.enhancer_??me:me}function st(e,t,n){return t&&typeof t.kind==`string`?He($e,e,t):br(e)?e:g(e)?O.object(e,t,n):Array.isArray(e)?O.array(e,t):x(e)?O.map(e,t):C(e)?O.set(e,t):typeof e==`object`&&e?e:O.box(e,t)}let ct={box(e,t){let n=Qe(t);return new Ot(e,it(n),n.name,!0,n.equals)},array(e,t){let n=Qe(t);return ai(e,it(n),n.name)},map(e,t){let n=Qe(t);return new hi(e,it(n),n.name)},set(e,t){let n=Qe(t);return new _i(e,it(n),n.name)},object(e,t,n){return Mi(()=>Yn(Wr({},n),e,t))}},lt=rt(et),ut=rt(tt),dt=rt($e),ft=rt(nt);var O=r(st,$e,ct);let pt=`computed`;function mt(e){return Xe(e,Le)}let ht=Pe(pt),gt=mt(Pe(`computed.struct`,{equals:de})),k=function(e,t){if(t&&typeof t.kind==`string`)return Le(ht,e,t);if(g(e))return mt(Pe(pt,e));p(e)||n("First argument to `computed` should be an expression."),p(t)&&n("A setter as second argument is no longer supported, use `{ set: fn }` option instead");let r=g(t)?t:{};return r.get=e,r.name||=e.name||``,new At(r)};r(k,ht);let _t=0,vt=1,yt=i(()=>{},`name`)?.configurable??!1,bt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function xt(e,t,r=!1,i){p(t)||n("`action` can only be invoked on functions"),(typeof e!=`string`||!e)&&n(`actions should have valid names, got: '${e}'`);function o(){return St(e,r,t,i||this,arguments)}return o.isMobxAction=!0,o.toString=()=>t.toString(),yt&&(bt.value=e,a(o,`name`,bt)),o}function St(e,t,n,r,i){let a=Ct(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{wt(a)}}function Ct(e,t,n,r){let i=N()&&!!e,a=0;i&&(a=Date.now(),xn({type:P,name:e,object:n,arguments:r?Array.from(r):s}));let o=M.trackingDerivation,c=!t||!o;an();let l=M.allowStateChanges;c&&(Ht(),l=Et(!0));let u=M.allowStateReads;j(!0);let d={runAsAction_:c,prevDerivation_:o,prevAllowStateChanges_:l,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:vt++,parentActionId_:_t};return _t=d.actionId_,d}function wt(e){_t!==e.actionId_&&n(30),_t=e.parentActionId_,e.error_!==void 0&&(M.suppressReactionErrors=!0),Dt(e.prevAllowStateChanges_),Wt(e.prevAllowStateReads_),on(),e.runAsAction_&&Ut(e.prevDerivation_),e.notifySpy_&&Cn({time:Date.now()-e.startTime_}),M.suppressReactionErrors=!1}function Tt(e,t){let n=Et(e);try{return t()}finally{Dt(n)}}function Et(e){let t=M.allowStateChanges;return M.allowStateChanges=e,t}function Dt(e){M.allowStateChanges=e}var Ot=class extends se{constructor(e,t,n=`ObservableValue@`+u(),r=!0,i=pe){super(n),this.enhancer_=void 0,this.name_=void 0,this.equals_=void 0,this.hasUnreportedChange_=!1,this.interceptors_=void 0,this.changeListeners_=void 0,this.value_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=n,this.equals_=i,this.value_=t(e,void 0,n),r&&N()&&bn({type:`create`,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:this.value_})}dehanceValue(e){return this.dehancer===void 0?e:this.dehancer(e)}set(e){let t=this.value_;if(e=this.prepareNewValue_(e),e!==M.UNCHANGED){let n=N();n&&xn({type:ni,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Cn()}}prepareNewValue_(e){if(A(this),Gr(this)){let t=qr(this,{object:this,type:ni,newValue:e});if(!t)return M.UNCHANGED;e=t.newValue}return e=this.enhancer_(e,this.value_,this.name_),this.equals_(this.value_,e)?M.UNCHANGED:e}setNewValue_(e){let t=this.value_;this.value_=e,this.reportChanged(),Jr(this)&&Xr(this,{type:ni,object:this,newValue:e,oldValue:t})}get(){return this.reportObserved(),this.dehanceValue(this.value_)}raw(){return this.value_}toJSON(){return this.get()}toString(){return`${this.name_}[${this.value_}]`}valueOf(){return re(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let kt=b(`ObservableValue`,Ot);var At=class{constructor(e){this.dependenciesState_=-1,this.observing_=[],this.newObserving_=null,this.observers_=null,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=0,this.unboundDepsCount_=0,this.value_=new Mt(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,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@`+u(),e.set&&(this.setter_=xt(this.name_+`-setter`,e.set)),this.equals_=e.equals||pe,this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}onBecomeStale_(){fn(this)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}get isComputing(){return w(this.flags_,1)}set isComputing(e){this.flags_=T(this.flags_,1,e)}get isRunningSetter(){return w(this.flags_,2)}set isRunningSetter(e){this.flags_=T(this.flags_,2,e)}get isBeingObserved(){return w(this.flags_,4)}set isBeingObserved(e){this.flags_=T(this.flags_,4,e)}get isPendingUnobservation(){return w(this.flags_,8)}set isPendingUnobservation(e){this.flags_=T(this.flags_,8,e)}get diffValue(){return+!!w(this.flags_,16)}set diffValue(e){this.flags_=T(this.flags_,16,e===1)}get(){if(this.isComputing&&n(32,this.name_,this.derivation),M.inBatch===0&&(!this.observers_||this.observers_.size===0)&&!this.keepAlive_)Pt(this)&&(this.warnAboutUntrackedRead_(),an(),this.value_=this.computeValue_(!1),on());else{let e=this.isBeingObserved;if(ln(this),Pt(this)){let e=M.trackingContext;!e&&(this.keepAlive_||this.isBeingObserved)&&(M.trackingContext=this),this.trackAndCompute()&&dn(this),M.trackingContext=e}else !e&&this.isBeingObserved&&this.observing_.forEach(cn)}let e=this.value_;if(Nt(e))throw e.cause;return e}set(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_)}trackAndCompute(){let e=this.value_,t=this.dependenciesState_===-1,n=this.computeValue_(!0),r=t||Nt(e)||Nt(n)||!this.equals_(e,n);return r&&(this.value_=n,N()&&bn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r}computeValue_(e){this.isComputing=!0;let t=Et(!1),n;if(e)n=Lt(this,this.derivation,this.scope_);else if(M.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new Mt(e)}return Dt(t),this.isComputing=!1,n}suspend_(){this.keepAlive_||(Bt(this),this.value_=void 0)}warnAboutUntrackedRead_(){(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:M.computedRequiresReaction)&&console.warn(`[mobx] Computed value '${this.name_}' is being read outside a reactive context. Doing a full recompute.`)}toString(){return`${this.name_}[${this.derivation.toString()}]`}valueOf(){return re(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let jt=b(`ComputedValue`,At);var Mt=class{constructor(e){this.cause=void 0,this.cause=e}};function Nt(e){return e instanceof Mt}function Pt(e){switch(e.dependenciesState_){case 0:return!1;case-1:case 2:return!0;case 1:{let t=j(!0),n=Ht(),r=e.observing_,i=r.length;for(let a=0;a<i;a++){let i=r[a];if(jt(i)){if(M.disableErrorBoundaries)i.get();else try{i.get()}catch{return Ut(n),Wt(t),!0}if(e.dependenciesState_===2)return Ut(n),Wt(t),!0}}return Gt(e),Ut(n),Wt(t),!1}}}function Ft(){return M.trackingDerivation!==null}function A(e){let t=!!e.observers_&&e.observers_.size>0;!M.allowStateChanges&&(t||M.enforceActions===`always`)&&console.warn(`[MobX] `+(M.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 It(e){!M.allowStateReads&&M.observableRequiresReaction&&console.warn(`[mobx] Observable '${e.name_}' being read outside a reactive context.`)}function Lt(e,t,n){let r=j(!0);Gt(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++M.runId;let i=M.trackingDerivation;M.trackingDerivation=e,M.inBatch++;let a;if(M.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new Mt(e)}return M.inBatch--,M.trackingDerivation=i,zt(e),Rt(e),Wt(r),a}function Rt(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:M.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '${e.name_}' is created/updated without reading any observable value.`)}function zt(e){let t=e.observing_,n=e.observing_=e.newObserving_,r=0,i=0,a=e.unboundDepsCount_;for(let e=0;e<a;e++){let t=n[e];t.diffValue===0&&(t.diffValue=1,i!==e&&(n[i]=t),i++),t.dependenciesState_>r&&(r=t.dependenciesState_)}for(n.length=i,e.newObserving_=null,a=t.length;a--;){let n=t[a];n.diffValue===0&&nn(n,e),n.diffValue=0}for(;i--;){let t=n[i];t.diffValue===1&&(t.diffValue=0,tn(t,e))}r!==0&&(e.dependenciesState_=r,e.onBecomeStale_())}function Bt(e){let t=e.observing_;e.observing_=[];let n=t.length;for(;n--;)nn(t[n],e);e.dependenciesState_=-1}function Vt(e){let t=Ht();try{return e()}finally{Ut(t)}}function Ht(){let e=M.trackingDerivation;return M.trackingDerivation=null,e}function Ut(e){M.trackingDerivation=e}function j(e){let t=M.allowStateReads;return M.allowStateReads=e,t}function Wt(e){M.allowStateReads=e}function Gt(e){if(e.dependenciesState_===0)return;e.dependenciesState_=0;let t=e.observing_,n=t.length;for(;n--;)t[n].lowestObserverState_=0}let Kt=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`];var qt=class{constructor(){this.version=7,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.isRunningUnobservations=!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.safeDescriptors=!0}};let Jt=!0,Yt=!1,M=function(){let e=globalThis;return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Jt=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==7&&(Jt=!1),Jt?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new qt):(setTimeout(()=>{Yt||n(35)},1),new qt)}();function Xt(){if((M.pendingReactions.length||M.inBatch||M.isRunningReactions)&&n(36),Yt=!0,Jt){let e=globalThis;--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),M=new qt}}function Zt(){return M}function Qt(){let e=new qt;for(let t in e)Kt.indexOf(t)===-1&&(M[t]=e[t]);M.allowStateChanges=!M.enforceActions}function $t(e){return!!e.observers_&&e.observers_.size>0}function en(e){return e.observers_??new Set}function tn(e,t){(e.observers_??=new Set).add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function nn(e,t){let n=e.observers_;n&&(n.delete(t),n.size===0&&rn(e))}function rn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,M.pendingUnobservations.push(e))}function an(){M.inBatch++}function on(){--M.inBatch===0&&(gn(),!M.isRunningUnobservations&&M.pendingUnobservations.length>0&&sn())}function sn(){M.isRunningUnobservations=!0;try{let e=M.pendingUnobservations;for(let t=0;t<e.length;t++){let n=e[t];n.isPendingUnobservation=!1,(!n.observers_||n.observers_.size===0)&&(n.observers_=null,n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof At&&n.suspend_())}M.pendingUnobservations=[]}finally{M.isRunningUnobservations=!1}}function cn(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.observing_)==null||t.forEach(cn))}function ln(e){It(e);let t=M.trackingDerivation;return t===null?((!e.observers_||e.observers_.size===0)&&M.inBatch>0&&rn(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&M.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function un(e){var t;e.lowestObserverState_!==2&&(e.lowestObserverState_=2,(t=e.observers_)==null||t.forEach(e=>{e.dependenciesState_===0&&e.onBecomeStale_(),e.dependenciesState_=2}))}function dn(e){var t;e.lowestObserverState_!==2&&(e.lowestObserverState_=2,(t=e.observers_)==null||t.forEach(t=>{t.dependenciesState_===1?t.dependenciesState_=2:t.dependenciesState_===0&&(e.lowestObserverState_=0)}))}function fn(e){var t;e.lowestObserverState_===0&&(e.lowestObserverState_=1,(t=e.observers_)==null||t.forEach(e=>{e.dependenciesState_===0&&(e.dependenciesState_=1,e.onBecomeStale_())}))}var pn=class{constructor(e=`Reaction@`+u(),t,n,r){this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=-1,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.removeAbortListener_=void 0,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}get isDisposed(){return w(this.flags_,1)}set isDisposed(e){this.flags_=T(this.flags_,1,e)}get isScheduled(){return w(this.flags_,2)}set isScheduled(e){this.flags_=T(this.flags_,2,e)}get isTrackPending(){return w(this.flags_,4)}set isTrackPending(e){this.flags_=T(this.flags_,4,e)}get isRunning(){return w(this.flags_,8)}set isRunning(e){this.flags_=T(this.flags_,8,e)}get diffValue(){return+!!w(this.flags_,16)}set diffValue(e){this.flags_=T(this.flags_,16,e===1)}onBecomeStale_(){this.schedule_()}schedule_(){this.isScheduled||(this.isScheduled=!0,M.pendingReactions.push(this),gn())}runReaction_(){if(!this.isDisposed){an(),this.isScheduled=!1;let e=M.trackingContext;if(M.trackingContext=this,Pt(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&N()&&bn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}M.trackingContext=e,on()}}track(e){if(this.isDisposed)return;an();let t=N(),n;t&&(n=Date.now(),xn({name:this.name_,type:`reaction`})),this.isRunning=!0;let r=M.trackingContext;M.trackingContext=this;let i=Lt(this,e,void 0);M.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Bt(this),Nt(i)&&this.reportExceptionInDerivation_(i.cause),t&&Cn({time:Date.now()-n}),on()}reportExceptionInDerivation_(e){if(this.errorHandler_){this.errorHandler_(e,this);return}if(M.disableErrorBoundaries)throw e;let t=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '${this}'`;M.suppressReactionErrors?console.warn(`[mobx] (error in reaction '${this.name_}' suppressed, fix error of causing action below)`):console.error(t,e),N()&&bn({type:`error`,name:this.name_,message:t,error:``+e}),M.globalReactionErrorHandlers.forEach(t=>t(e,this))}dispose(){if(!this.isDisposed){var e;this.isDisposed=!0,(e=this.removeAbortListener_)==null||e.call(this),this.isRunning||(an(),Bt(this),on())}}getDisposer_(e){let t=()=>this.dispose();return e!=null&&e.addEventListener&&!this.isDisposed&&(e.addEventListener(`abort`,t),this.removeAbortListener_=()=>e.removeEventListener==null?void 0:e.removeEventListener(`abort`,t)),t[E]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(t[Symbol.dispose]=t),t}toString(){return`Reaction[${this.name_}]`}};function mn(e){return M.globalReactionErrorHandlers.push(e),()=>{let t=M.globalReactionErrorHandlers.indexOf(e);t>=0&&M.globalReactionErrorHandlers.splice(t,1)}}let hn=e=>e();function gn(){M.inBatch>0||M.isRunningReactions||hn(_n)}function _n(){M.isRunningReactions=!0;let e=M.pendingReactions,t=0;for(;e.length>0;){++t===100&&(console.error(`Reaction doesn't converge to a stable state after 100 iterations. Probably there is a cycle in the reactive function: ${e[0]}`),e.splice(0));let n=e.splice(0);for(let e=0,t=n.length;e<t;e++)n[e].runReaction_()}M.isRunningReactions=!1}let vn=b(`Reaction`,pn);function yn(e){let t=hn;hn=n=>e(()=>t(n))}function N(){return!!M.spyListeners.length}function bn(e){if(!M.spyListeners.length)return;let t=M.spyListeners;for(let n=0,r=t.length;n<r;n++)t[n](e)}function xn(e){bn(r({},e,{spyReportStart:!0}))}let Sn={type:`report-end`,spyReportEnd:!0};function Cn(e){bn(e?r({},e,{type:`report-end`,spyReportEnd:!0}):Sn)}function wn(e){return M.spyListeners.push(e),d(()=>{M.spyListeners=M.spyListeners.filter(t=>t!==e)})}let P=`action`,Tn=`autoAction`,En=`<unnamed action>`,Dn=Se(P),On=Se(`action.bound`,{bound:!0}),kn=Se(Tn,{autoAction:!0}),An=Se(`autoAction.bound`,{autoAction:!0,bound:!0});function jn(e){return Xe(e,Te)}function Mn(e){return function(t,r){if(r&&typeof r.kind==`string`)return Te(e?kn:Dn,t,r);if(p(t))return xt(t.name||En,t,e);if(p(r))return xt(t,r,e);if(m(t))return jn(Se(e?Tn:P,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}let Nn=Mn(!1);r(Nn,Dn);let Pn=Mn(!0);r(Pn,kn);let Fn=jn(On),In=jn(An);function Ln(e){return St(e.name||En,!1,e,this,void 0)}function Rn(e){return p(e)&&e.isMobxAction===!0}function zn(e,t=c){var r;p(e)||n(`Autorun expects a function as first argument`),Rn(e)&&n(`Autorun does not accept actions since actions are untrackable`);let i=t?.name??(e.name||`Autorun@`+u()),a=!t.scheduler&&!t.delay,o;if(a)o=new pn(i,function(){this.track(s)},t.onError,t.requiresObservable);else{let e=Vn(t),n=!1;o=new pn(i,()=>{n||(n=!0,e(()=>{n=!1,o.isDisposed||o.track(s)}))},t.onError,t.requiresObservable)}function s(){e(o)}return t!=null&&(r=t.signal)!=null&&r.aborted||o.schedule_(),o.getDisposer_(t?.signal)}let Bn=e=>e();function Vn(e){return e.scheduler?e.scheduler:e.delay?t=>setTimeout(t,e.delay):Bn}function Hn(e,t,r=c){var i;(!p(e)||!p(t))&&n(`First and second argument to reaction should be functions`),g(r)||n(`Third argument of reactions should be an object`);let a=r.name??`Reaction@`+u(),o=Nn(a,r.onError?Un(r.onError,t):t),s=!r.scheduler&&!r.delay,l=Vn(r),d=!0,f=!1,m,h=r.equals||pe,_=new pn(a,()=>{d||s?v():f||(f=!0,l(v))},r.onError,r.requiresObservable);function v(){if(f=!1,_.isDisposed)return;let t=!1,n=m;_.track(()=>{let n=Tt(!1,()=>e(_));t=d||!h(m,n),m=n}),(d&&r.fireImmediately||!d&&t)&&o(m,n,_),d=!1}return r!=null&&(i=r.signal)!=null&&i.aborted||_.schedule_(),_.getDisposer_(r?.signal)}function Un(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}function Wn(e,t,n){return Kn(`onBO`,e,t,n)}function Gn(e,t,n){return Kn(`onBUO`,e,t,n)}function Kn(e,t,n,r){let i=typeof r==`function`?ki(t,n):ki(t),a=p(r)?r:n,o=`${e}L`;return i[o]?i[o].add(a):i[o]=new Set([a]),function(){let e=i[o];e&&(e.delete(a),e.size===0&&delete i[o])}}let qn=`always`;function Jn(e){e.isolateGlobalState===!0&&Xt();let{enforceActions:t}=e;if(t!==void 0){let e=t===qn?qn:t===`observed`;M.enforceActions=e,M.allowStateChanges=!(e===!0||e===qn)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(t=>{t in e&&(M[t]=!!e[t])}),M.allowStateReads=!M.observableRequiresReaction,M.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&yn(e.reactionScheduler)}function Yn(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),F(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),g(t)||n(`'extendObservable' only accepts plain objects as second argument`),(br(t)||br(r))&&n(`Extending an object with another observable (object) is not supported`);let a=ae(t);return Mi(()=>{let t=Ci(e,i)[E];te(a).forEach(e=>{t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function Xn(e,t){return Zn(ki(e,t))}function Zn(e){let t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=er(e.observing_).map(Zn)),t}function Qn(e,t){return $n(ki(e,t))}function $n(e){let t={name:e.name_};return $t(e)&&(t.observers=Array.from(en(e),$n)),t}function er(e){return Array.from(new Set(e))}let tr=0;var nr=class extends Error{constructor(){super(`FLOW_CANCELLED`),Object.setPrototypeOf(this,new.target.prototype),this.name=`FlowCancellationError`}toString(){return`Error: ${this.message}`}};function rr(e){return e instanceof nr}function ir(e){return Xe(e,je)}let ar=Oe(`flow`),or=Oe(`flow.bound`,{bound:!0}),sr=r(function(e,t){if(t&&typeof t.kind==`string`)return je(ar,e,t);arguments.length!==1&&n(`Flow expects single argument with generator function`);let r=e,i=r.name||`<unnamed flow>`,a=function(){let e=this,t=arguments,n=++tr,a=Nn(`${i} - runid: ${n} - init`,r).apply(e,t),o,s,c=new Promise(function(e,t){let r=0;o=t;function c(e){s=void 0;let o;try{o=Nn(`${i} - runid: ${n} - yield ${r++}`,a.next).call(a,e)}catch(e){return t(e)}u(o)}function l(e){s=void 0;let o;try{o=Nn(`${i} - runid: ${n} - yield ${r++}`,a.throw).call(a,e)}catch(e){return t(e)}u(o)}function u(n){if(p(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=Nn(`${i} - runid: ${n} - cancel`,function(){try{s&&lr(s);let e=a.return(void 0),t=Promise.resolve(e.value);t.then(f,f),lr(t),o(new nr)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},ar),cr=ir(or);function lr(e){p(e.cancel)&&e.cancel()}function ur(e){return e}function dr(e){return e?.isMobXFlow===!0}function fr(e,t,r){let i;if(F(e)||fi(e)||kt(e))i=Ai(e);else if(Ei(e)){if(!m(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=Ai(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,()=>{i.dehancer=void 0}):n(`An intercept reader was already established`)}function pr(e,t,n){return p(n)?hr(e,t,n):mr(e,t)}function mr(e,t){return Kr(Ai(e),t)}function hr(e,t,n){return Kr(Ai(e,t),n)}function gr(e,t){var n;if(t===void 0)return jt(e);if(Ei(e)===!1)return!1;let r=e[E];return(n=r.lazyComputedKeys_)!=null&&n.has(t)?!0:r.values_.has(t)?jt(ki(e,t)):!1}function _r(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):gr(e)}function vr(e,t){return m(t)?gr(e,t):n(`isComputed expected a property name as second argument`)}function yr(e,t){if(!e)return!1;if(t!==void 0){if(F(e)||fi(e))return n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`);if(Ei(e)){var r,i;let n=e[E];return n.values_.has(t)||!!((r=n.lazyComputedKeys_)!=null&&r.has(t))||!!((i=n.lazyObservableKeys_)!=null&&i.has(t))}return!1}return Ei(e)||!!e[E]||ce(e)||vn(e)||jt(e)}function br(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),yr(e)}function xr(e,t){return m(t)?yr(e,t):n(`expected a property name as second argument`)}function Sr(e){if(Ei(e))return e[E].keys_();if(F(e)||vi(e))return Array.from(e.keys());if(fi(e))return e.map((e,t)=>t);n(5)}function Cr(e){if(Ei(e))return Sr(e).map(t=>e[t]);if(F(e))return Sr(e).map(t=>e.get(t));if(vi(e))return Array.from(e.values());if(fi(e))return e.slice();n(6)}function wr(e){if(Ei(e))return Sr(e).map(t=>[t,e[t]]);if(F(e))return Sr(e).map(t=>[t,e.get(t)]);if(vi(e))return Array.from(e.entries());if(fi(e))return e.map((e,t)=>[t,e]);n(7)}function Tr(e,t,r){if(arguments.length===2&&!vi(e)){an();let n=t;try{for(let t in n)Tr(e,t,n[t])}finally{on()}return}Ei(e)?e[E].set_(t,r):F(e)?e.set(t,r):vi(e)?e.add(t):fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(42,t),an(),t>=e.length&&(e.length=t+1),e[t]=r,on()):n(8)}function Er(e,t){Ei(e)?e[E].delete_(t):F(e)||vi(e)?e.delete(t):fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function Dr(e,t){if(Ei(e))return e[E].has_(t);if(F(e)||vi(e))return e.has(t);if(fi(e))return t>=0&&t<e.length;n(10)}function Or(e,t){if(Dr(e,t)){if(Ei(e))return e[E].get_(t);if(F(e))return e.get(t);if(fi(e))return e[t];n(11)}}function kr(e,t,r){if(Ei(e))return e[E].defineProperty_(t,r);n(39)}function Ar(e){if(Ei(e))return e[E].ownKeys_();n(38)}function jr(e,t,n,r){return p(n)?Nr(e,t,n,r):Mr(e,t,n)}function Mr(e,t,r){let i=Ai(e);if(fi(e))r&&t({observableKind:`array`,object:i.proxy_,debugObjectName:i.atom_.name_,type:`splice`,index:0,added:i.values_.slice(),addedCount:i.values_.length,removed:[],removedCount:0});else if(F(e))r===!0&&n("`observe` doesn't support fireImmediately=true in combination with maps.");else if(vi(e))r===!0&&n("`observe` doesn't support fireImmediately=true in combination with sets.");else if(Ei(e))r===!0&&n("`observe` doesn't support the fire immediately property for observable objects.");else return Pr(i,t,r);return Yr(i,t)}function Nr(e,t,n,r){return Pr(Ai(e,t),n,r)}function Pr(e,t,n){if(jt(e)){let r=!0,i;return zn(()=>{let a=e.get();if(!r||n){let n=Ht();t({observableKind:`computed`,debugObjectName:e.name_,type:ni,object:e,newValue:a,oldValue:i}),Ut(n)}r=!1,i=a})}return n&&t({observableKind:`value`,debugObjectName:e.name_,object:e,type:ni,newValue:e.value_,oldValue:void 0}),Yr(e,t)}function Fr(e,t,n){return e.set(t,n),n}function Ir(e,t){if(typeof e!=`object`||!e||e instanceof Date||!br(e))return e;if(kt(e)||jt(e))return Ir(e.get(),t);if(t.has(e))return t.get(e);if(fi(e)){let n=Fr(t,e,Array(e.length));return e.forEach((e,r)=>{n[r]=Ir(e,t)}),n}if(vi(e)){let n=Fr(t,e,new Set);return e.forEach(e=>{n.add(Ir(e,t))}),n}if(F(e)){let n=Fr(t,e,new Map);return e.forEach((e,r)=>{n.set(r,Ir(e,t))}),n}else{let n=Fr(t,e,{});return Ar(e).forEach(r=>{o.propertyIsEnumerable.call(e,r)&&(n[r]=Ir(e[r],t))}),n}}function Lr(e,t){return t&&n(`toJS no longer supports options`),Ir(e,new Map)}function Rr(e,t=void 0){an();try{return e.apply(t)}finally{on()}}function zr(e,t,n){return arguments.length===1||t&&typeof t==`object`?Vr(e,t):Br(e,t,n||{})}function Br(e,t,n){let r;if(typeof n.timeout==`number`){let e=Error(`WHEN_TIMEOUT`);r=setTimeout(()=>{if(!a[E].isDisposed)if(a(),n.onError)n.onError(e);else throw e},n.timeout)}n.name=n.name||`When@`+u();let i=xt(n.name+`-effect`,t);var a=zn(t=>{Tt(!1,e)&&(t.dispose(),r&&clearTimeout(r),i())},n);return a}function Vr(e,t){var i;if(t&&t.onError)return n(`the options 'onError' and 'promise' cannot be combined`);if(t!=null&&(i=t.signal)!=null&&i.aborted)return r(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:()=>null});let a,o,s=new Promise((n,i)=>{var s;let c=Br(e,n,r({},t,{onError:i}));a=()=>{c(),i(Error(`WHEN_CANCELLED`))},o=()=>{c(),i(Error(`WHEN_ABORTED`))},t==null||(s=t.signal)==null||s.addEventListener==null||s.addEventListener(`abort`,o)}).finally(()=>{var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,o)});return s.cancel=a,s}function Hr(e){return e[E]}let Ur={has(e,t){return Hr(e).has_(t)},get(e,t){return Hr(e).get_(t)},set(e,t,n){return m(t)?Hr(e).set_(t,n,!0)??!0:!1},deleteProperty(e,t){return m(t)?Hr(e).delete_(t,!0)??!0:!1},defineProperty(e,t,n){return Hr(e).defineProperty_(t,n)??!0},ownKeys(e){return Hr(e).ownKeys_()},preventExtensions(e){n(13)}};function Wr(e,t){var n;return e=Ci(e,t),(n=e[E]).proxy_??(n.proxy_=new Proxy(e,Ur))}function Gr(e){return e.interceptors_!==void 0&&e.interceptors_.length>0}function Kr(e,t){let n=e.interceptors_;return n?n.push(t):n=e.interceptors_=[t],d(()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function qr(e,t){let r=Ht();try{let r=[...e.interceptors_||[]];for(let e=0,i=r.length;e<i&&(t=r[e](t),t&&!t.type&&n(14),t);e++);return t}finally{Ut(r)}}function Jr(e){return e.changeListeners_!==void 0&&e.changeListeners_.length>0}function Yr(e,t){let n=e.changeListeners_;return n?n.push(t):n=e.changeListeners_=[t],d(()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function Xr(e,t){let n=Ht(),r=e.changeListeners_;if(r){r=r.slice();for(let e=0,n=r.length;e<n;e++)r[e](t);Ut(n)}}function Zr(e,t,n){return Mi(()=>{let r=Ci(e,n)[E];te(t).forEach(e=>ei(r,e,t[e]))}),e}let Qr=Symbol(`mobx-keys`);function $r(e,t,r){return!g(e)&&!g(Object.getPrototypeOf(e))&&n(`'makeAutoObservable' can only be used for classes that don't have a superclass`),Ei(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),g(e)?Yn(e,e,t,r):(Mi(()=>{let n=Ci(e,r)[E];if(!e[Qr]){let t=Object.getPrototypeOf(e),n=new Set([...te(e),...te(t)]);n.delete(`constructor`),n.delete(E),v(t,Qr,n)}e[Qr].forEach(e=>ei(n,e,t&&e in t?t[e]:!0))}),e)}function ei(e,t,r){if(r===!0&&(r=e.defaultAnnotation_),r===!1)return;Oi(e,r,t),t in e.target_||n(1,r.annotationType_,`${e.name_}.${t.toString()}`);let a=e.target_;for(;a&&a!==o;){let n=i(a,t);if(n){let i=r.make_(e,t,n,a);if(i===0)return;if(i===1)break}a=Object.getPrototypeOf(a)}Di(e,r,t)}let ti=`splice`,ni=`update`,ri={get(e,t){let n=e[E];return t===E?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):ie(oi,t)?oi[t]:e[t]},set(e,t,n){let r=e[E];return t===`length`?r.setArrayLength_(n):typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions(){n(15)}};var ii=class{constructor(e=`ObservableArray@`+u(),t,n){this.owned_=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.atom_=new se(e),this.enhancer_=(n,r)=>t(n,r,e+`[..]`)}dehanceValue_(e){return this.dehancer===void 0?e:this.dehancer(e)}dehanceValues_(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e}getArrayLength_(){return this.atom_.reportObserved(),this.values_.length}setArrayLength_(e){(!Number.isInteger(e)||e<0)&&n(40,e);let t=this.values_.length;if(e!==t)if(e>t){let n=Array.from({length:e-t});this.spliceWithArray_(t,0,n)}else this.spliceWithArray_(e,t-e)}updateArrayLength_(e,t){e!==this.lastKnownLength_&&n(16),this.lastKnownLength_+=t}spliceWithArray_(e,t,n){A(this.atom_);let r=this.values_.length;if(e===void 0?e=0:e>r?e=r:e<0&&(e=Math.max(0,r+e)),t=arguments.length===1?r-e:t==null?0:Math.max(0,Math.min(t,r-e)),n===void 0&&(n=s),Gr(this)){let r=qr(this,{object:this.proxy_,type:ti,index:e,removedCount:t,added:n});if(!r)return s;t=r.removedCount,n=r.added}n=n.length===0?n:n.map(e=>this.enhancer_(e,void 0));{let e=n.length-t;this.updateArrayLength_(r,e)}let i=this.spliceItemsIntoValues_(e,t,n);return(t!==0||n.length!==0)&&this.notifyArraySplice_(e,n,i),this.dehanceValues_(i)}spliceItemsIntoValues_(e,t,n){if(n.length<1e4)return this.values_.splice(e,t,...n);{let r=this.values_.slice(e,e+t),i=this.values_.slice(e+t);this.values_.length+=n.length-t;for(let t=0;t<n.length;t++)this.values_[e+t]=n[t];for(let t=0;t<i.length;t++)this.values_[e+n.length+t]=i[t];return r}}notifyArrayChildUpdate_(e,t,n){let r=!this.owned_&&N(),i=Jr(this),a=i||r?{observableKind:`array`,object:this.proxy_,type:ni,debugObjectName:this.atom_.name_,index:e,newValue:t,oldValue:n}:null;r&&xn(a),this.atom_.reportChanged(),i&&Xr(this,a),r&&Cn()}notifyArraySplice_(e,t,n){let r=!this.owned_&&N(),i=Jr(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&&xn(a),this.atom_.reportChanged(),i&&Xr(this,a),r&&Cn()}get_(e){return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e])}set_(e,t){let n=this.values_;if(e<n.length){A(this.atom_);let r=n[e];if(Gr(this)){let n=qr(this,{type:ni,object:this.proxy_,index:e,newValue:t});if(!n)return;t=n.newValue}t=this.enhancer_(t,r),t!==r&&(n[e]=t,this.notifyArrayChildUpdate_(e,t,r))}else{let r=Array.from({length:e+1-n.length});r[r.length-1]=t,this.spliceWithArray_(n.length,0,r)}}};function ai(e,t,n=`ObservableArray@`+u(),r=!1){return Mi(()=>{let i=new ii(n,t,r);y(i.values_,E,i);let a=new Proxy(i.values_,ri);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var oi={clear(){return this.splice(0)},replace(e){let t=this[E];return t.spliceWithArray_(0,t.values_.length,e)},toJSON(){return this.slice()},splice(e,t,...n){let r=this[E];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(e,t,n){return this[E].spliceWithArray_(e,t,n)},push(...e){let t=this[E];return t.spliceWithArray_(t.values_.length,0,e),t.values_.length},pop(){return this.splice(Math.max(this[E].values_.length-1,0),1)[0]},shift(){return this.splice(0,1)[0]},unshift(...e){let t=this[E];return t.spliceWithArray_(0,0,e),t.values_.length},reverse(){return M.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort(){M.trackingDerivation&&n(37,`sort`);let e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove(e){let t=this[E],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};si(`at`,ci),si(`concat`,ci),si(`flat`,ci),si(`includes`,ci),si(`indexOf`,ci),si(`join`,ci),si(`lastIndexOf`,ci),si(`slice`,ci),si(`toString`,ci),si(`toLocaleString`,ci),si(`toSorted`,ci),si(`toSpliced`,ci),si(`with`,ci),si(`every`,li),si(`filter`,li),si(`find`,li),si(`findIndex`,li),si(`findLast`,li),si(`findLastIndex`,li),si(`flatMap`,li),si(`forEach`,li),si(`map`,li),si(`some`,li),si(`toReversed`,li),si(`reduce`,ui),si(`reduceRight`,ui);function si(e,t){typeof Array.prototype[e]==`function`&&(oi[e]=t(e))}function ci(e){return function(){let t=this[E];t.atom_.reportObserved();let n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function li(e){return function(t,n){let r=this[E];return r.atom_.reportObserved(),r.dehanceValues_(r.values_)[e]((e,r)=>t.call(n,e,r,this))}}function ui(e){return function(){let t=this[E];t.atom_.reportObserved();let n=t.dehanceValues_(t.values_),r=arguments[0];return arguments[0]=(e,t,n)=>r(e,t,n,this),n[e].apply(n,arguments)}}let di=b(`ObservableArrayAdministration`,ii);function fi(e){return h(e)&&di(e[E])}let pi={},mi=`delete`;var hi=class{constructor(e,t=me,n=`ObservableMap@`+u()){this.enhancer_=void 0,this.name_=void 0,this[E]=pi,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_=n,Mi(()=>{this.keysAtom_=le(`${this.name_}.keys()`),this.data_=new Map,this.hasMap_=new Map,e&&this.merge(e)})}has_(e){return this.data_.has(e)}has(e){if(!M.trackingDerivation)return this.has_(e);let t=this.hasMap_.get(e);if(!t){let n=t=new Ot(this.has_(e),ge,`${this.name_}.${ne(e)}?`,!1);this.hasMap_.set(e,n),n.onBUOL=new Set([()=>this.hasMap_.delete(e)])}return t.get()}set(e,t){let n=this.has_(e);if(Gr(this)){let r=qr(this,{type:n?ni:`add`,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this}delete(e){if(A(this.keysAtom_),Gr(this)&&!qr(this,{type:mi,object:this,name:e}))return!1;if(this.has_(e)){let t=N(),n=Jr(this),r=n||t?{observableKind:`map`,debugObjectName:this.name_,type:mi,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return t&&xn(r),Rr(()=>{var t;this.keysAtom_.reportChanged(),(t=this.hasMap_.get(e))==null||t.setNewValue_(!1),this.data_.get(e).setNewValue_(void 0),this.data_.delete(e)}),n&&Xr(this,r),t&&Cn(),!0}return!1}updateValue_(e,t){let n=this.data_.get(e);if(t=n.prepareNewValue_(t),t!==M.UNCHANGED){let r=N(),i=Jr(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:ni,object:this,oldValue:n.value_,name:e,newValue:t}:null;r&&xn(a),n.setNewValue_(t),i&&Xr(this,a),r&&Cn()}}addValue_(e,t){A(this.keysAtom_),Rr(()=>{var n;let r=new Ot(t,this.enhancer_,`${this.name_}.${ne(e)}`,!1);this.data_.set(e,r),t=r.value_,(n=this.hasMap_.get(e))==null||n.setNewValue_(!0),this.keysAtom_.reportChanged()});let n=N(),r=Jr(this),i=r||n?{observableKind:`map`,debugObjectName:this.name_,type:`add`,object:this,name:e,newValue:t}:null;n&&xn(i),r&&Xr(this,i),n&&Cn()}get(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)}getOrInsert(e,t){return this.has(e)||this.set(e,t),this.get(e)}getOrInsertComputed(e,t){return this.has(e)||this.set(e,t(e)),this.get(e)}dehanceValue_(e){return this.dehancer===void 0?e:this.dehancer(e)}keys(){return this.keysAtom_.reportObserved(),this.data_.keys()}values(){let e=this,t=this.keys();return I({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:e.get(r)}}})}entries(){let e=this,t=this.keys();return I({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:[r,e.get(r)]}}})}[Symbol.iterator](){return this.entries()}forEach(e,t){for(let[n,r]of this)e.call(t,r,n,this)}merge(e){return F(e)&&(e=new Map(e)),Rr(()=>{g(e)?ee(e).forEach(t=>this.set(t,e[t])):Array.isArray(e)?e.forEach(([e,t])=>this.set(e,t)):x(e)?(S(e)||n(19,e),e.forEach((e,t)=>this.set(t,e))):e!=null&&n(20,e)}),this}clear(){Rr(()=>{Vt(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return Rr(()=>{let t=L(e),n=new Map,r=!1;for(let e of this.data_.keys())if(!t.has(e))if(this.delete(e))r=!0;else{let t=this.data_.get(e);n.set(e,t)}for(let[e,i]of t.entries()){let t=this.data_.has(e);if(this.set(e,i),this.data_.has(e)){let i=this.data_.get(e);n.set(e,i),t||(r=!0)}}if(!r)if(this.data_.size!==n.size)this.keysAtom_.reportChanged();else{let e=this.data_.keys(),t=n.keys(),r=e.next(),i=t.next();for(;!r.done;){if(r.value!==i.value){this.keysAtom_.reportChanged();break}r=e.next(),i=t.next()}}this.data_=n}),this}get size(){return this.keysAtom_.reportObserved(),this.data_.size}toString(){return`[object ObservableMap]`}toJSON(){return Array.from(this)}get[Symbol.toStringTag](){return`Map`}},F=b(`ObservableMap`,hi);function I(e){return e[Symbol.toStringTag]=`MapIterator`,Ri(e)}function L(e){if(x(e)||F(e))return e;if(Array.isArray(e))return new Map(e);if(g(e)){let t=new Map;for(let n in e)t.set(n,e[n]);return t}else return n(21,e)}let gi={};var _i=class{constructor(e,t=me,n=`ObservableSet@`+u()){this.name_=void 0,this[E]=gi,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_=n,this.enhancer_=(e,r)=>t(e,r,n),Mi(()=>{this.atom_=le(this.name_),e&&this.replace(e)})}dehanceValue_(e){return this.dehancer===void 0?e:this.dehancer(e)}clear(){Rr(()=>{Vt(()=>{for(let e of this.data_.values())this.delete(e)})})}forEach(e,t){for(let n of this)e.call(t,n,n,this)}get size(){return this.atom_.reportObserved(),this.data_.size}add(e){if(A(this.atom_),Gr(this)){let t=qr(this,{type:`add`,object:this,newValue:e});if(!t)return this;e=t.newValue}if(!this.has(e)){Rr(()=>{e=this.enhancer_(e,void 0),this.data_.add(e),this.atom_.reportChanged()});let t=N(),n=Jr(this),r=n||t?{observableKind:`set`,debugObjectName:this.name_,type:`add`,object:this,newValue:e}:null;t&&xn(r),n&&Xr(this,r),t&&Cn()}return this}delete(e){if(Gr(this)&&!qr(this,{type:mi,object:this,oldValue:e}))return!1;if(this.has(e)){let t=N(),n=Jr(this),r=n||t?{observableKind:`set`,debugObjectName:this.name_,type:mi,object:this,oldValue:e}:null;return t&&xn(r),Rr(()=>{this.atom_.reportChanged(),this.data_.delete(e)}),n&&Xr(this,r),t&&Cn(),!0}return!1}has(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))}entries(){let e=this.values();return yi({next(){let{value:t,done:n}=e.next();return n?{value:void 0,done:n}:{value:[t,t],done:n}}})}keys(){return this.values()}values(){this.atom_.reportObserved();let e=this,t=this.data_.values();return yi({next(){let{value:n,done:r}=t.next();return r?{value:void 0,done:r}:{value:e.dehanceValue_(n),done:r}}})}intersection(e){return new Set(this).intersection(e)}union(e){return new Set(this).union(e)}difference(e){return new Set(this).difference(e)}symmetricDifference(e){return new Set(this).symmetricDifference(e)}isSubsetOf(e){return new Set(this).isSubsetOf(e)}isSupersetOf(e){return new Set(this).isSupersetOf(e)}isDisjointFrom(e){return new Set(this).isDisjointFrom(e)}replace(e){return vi(e)&&(e=new Set(e)),Array.isArray(e)||C(e)?Rr(()=>{let t=C(e)?e:new Set(e);if(t.size===0){this.clear();return}if(this.data_.size===0){t.forEach(e=>this.add(e));return}for(let e of this.data_.values())t.has(this.dehanceValue_(e))||this.delete(e);t.forEach(e=>this.add(e))}):e!=null&&n(41,e),this}toJSON(){return Array.from(this)}toString(){return`[object ObservableSet]`}[Symbol.iterator](){return this.values()}get[Symbol.toStringTag](){return`Set`}},vi=b(`ObservableSet`,_i);function yi(e){return e[Symbol.toStringTag]=`SetIterator`,Ri(e)}let bi=Object.create(null),xi=`remove`;var Si=class{constructor(e,t=new Map,r,i=We){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.lazyComputedKeys_=void 0,this.lazyObservableKeys_=void 0,this.target_=e,this.values_=t,this.name_=r,this.defaultAnnotation_=i,this.keysAtom_=new se(`${this.name_}.keys`),this.isPlainObject_=g(this.target_),Bi(this.defaultAnnotation_)||n(`defaultAnnotation must be valid annotation`),this.appliedAnnotations_={}}getObservablePropValue_(e){return(this.values_.get(e)??this.materializeLazyComputed_(e)??this.materializeLazyObservable_(e)).get()}materializeLazyComputed_(e){let t=this.lazyComputedKeys_?.get(e);if(!t)return;this.lazyComputedKeys_.delete(e),this.lazyComputedKeys_.size===0&&(this.lazyComputedKeys_=void 0);let n=t();return this.values_.set(e,n),n}materializeLazyObservable_(e){let t=this.lazyObservableKeys_?.get(e);if(!t)return;this.lazyObservableKeys_.delete(e),this.lazyObservableKeys_.size===0&&(this.lazyObservableKeys_=void 0);let n=t();return this.values_.set(e,n),n}setObservablePropValue_(e,t){let n=this.values_.get(e)??this.materializeLazyComputed_(e)??this.materializeLazyObservable_(e);if(n instanceof At)return n.set(t),!0;if(Gr(this)){let n=qr(this,{type:ni,object:this.proxy_||this.target_,name:e,newValue:t});if(!n)return null;t=n.newValue}if(t=n.prepareNewValue_(t),t!==M.UNCHANGED){let r=Jr(this),i=N(),a=r||i?{type:ni,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:n.value_,name:e,newValue:t}:null;i&&xn(a),n.setNewValue_(t),r&&Xr(this,a),i&&Cn()}return!0}get_(e){return M.trackingDerivation&&!ie(this.target_,e)&&this.has_(e),this.target_[e]}set_(e,t,n=!1){return ie(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)}has_(e){if(!M.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;let t=this.pendingKeys_.get(e);return t||(t=new Ot(e in this.target_,ge,`${this.name_}.${ne(e)}?`,!1),this.pendingKeys_.set(e,t)),t.get()}extend_(e,t,n,r=!1){if(n===!0&&(n=this.defaultAnnotation_),n===!1)return this.defineProperty_(e,t,r);Oi(this,n,e);let i=n.extend_(this,e,t,r);return i&&Di(this,n,e),i}defineProperty_(e,t,n=!1){A(this.keysAtom_);try{an();let i=this.delete_(e);if(!i)return i;if(Gr(this)){let n=qr(this,{object:this.proxy_||this.target_,name:e,type:`add`,newValue:t.value});if(!n)return null;let{newValue:i}=n;t.value!==i&&(t=r({},t,{value:i}))}if(n){if(!Reflect.defineProperty(this.target_,e,t))return!1}else a(this.target_,e,t);this.notifyPropertyAddition_(e,t.value)}finally{on()}return!0}defineObservableProperty_(e,t,n,r=!1){A(this.keysAtom_);try{an();let i=this.delete_(e);if(!i)return i;if(Gr(this)){let n=qr(this,{object:this.proxy_||this.target_,name:e,type:`add`,newValue:t});if(!n)return null;t=n.newValue}let o=Ti(e),s={configurable:M.safeDescriptors?this.isPlainObject_:!0,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.target_,e,s))return!1}else a(this.target_,e,s);let c=new Ot(t,n,`${this.name_}.${e.toString()}`,!1);this.values_.set(e,c),this.notifyPropertyAddition_(e,c.value_)}finally{on()}return!0}defineComputedProperty_(e,t,n=!1){A(this.keysAtom_);try{an();let r=this.delete_(e);if(!r)return r;if(Gr(this)&&!qr(this,{object:this.proxy_||this.target_,name:e,type:`add`,newValue:void 0}))return null;t.name||=`${this.name_}.${e.toString()}`,t.context=this.proxy_||this.target_;let i=Ti(e),o={configurable:M.safeDescriptors?this.isPlainObject_:!0,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.target_,e,o))return!1}else a(this.target_,e,o);this.values_.set(e,new At(t)),this.notifyPropertyAddition_(e,void 0)}finally{on()}return!0}delete_(e,t=!1){if(A(this.keysAtom_),!ie(this.target_,e))return!0;if(Gr(this)&&!qr(this,{object:this.proxy_||this.target_,name:e,type:xi}))return null;try{var n;an();let r=Jr(this),a=N(),o=this.values_.get(e),s;if(!o&&(r||a)&&(s=i(this.target_,e)?.value),t){if(!Reflect.deleteProperty(this.target_,e))return!1}else delete this.target_[e];if(delete this.appliedAnnotations_[e],o&&(this.values_.delete(e),o instanceof Ot&&(s=o.value_),un(o)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||a){let t={type:xi,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};a&&xn(t),r&&Xr(this,t),a&&Cn()}}finally{on()}return!0}notifyPropertyAddition_(e,t){var n;let r=Jr(this),i=N();if(r||i){let n=r||i?{type:`add`,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&xn(n),r&&Xr(this,n),i&&Cn()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()}ownKeys_(){return this.keysAtom_.reportObserved(),te(this.target_)}keys_(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)}};function Ci(e,t){if(t&&Ei(e)&&n(`Options can't be provided for already observable objects.`),ie(e,E))return Ai(e)instanceof Si||n(`Cannot convert '${ji(e)}' into observable object:\nThe target is already observable of different type.\nExtending builtins is not supported.`),e;Object.isExtensible(e)||n(`Cannot make the designated object observable; it is not extensible`);let r=t?.name??`${g(e)?`ObservableObject`:e.constructor.name}@${u()}`;return v(e,E,new Si(e,new Map,String(r),at(t))),e}let wi=b(`ObservableObjectAdministration`,Si);function Ti(e){return bi[e]||(bi[e]={get(){return this[E].getObservablePropValue_(e)},set(t){return this[E].setObservablePropValue_(e,t)}})}function Ei(e){return h(e)?wi(e[E]):!1}function Di(e,t,n){e.appliedAnnotations_[n]=t}function Oi(e,t,r){if(Bi(t)||n(`Cannot annotate '${e.name_}.${r.toString()}': Invalid annotation.`),!be(t)&&ie(e.appliedAnnotations_,r)){let i=`${e.name_}.${r.toString()}`,a=e.appliedAnnotations_[r].annotationType_,o=t.annotationType_;n(`Cannot apply '${o}' to '${i}':\nThe field is already annotated with '${a}'.\nRe-annotating fields is not allowed.\nUse 'override' annotation for methods overridden by subclass.`)}}function ki(e,t){if(typeof e==`object`&&e){if(fi(e))return t!==void 0&&n(23),e[E].atom_;if(vi(e))return e.atom_;if(F(e)){if(t===void 0)return e.keysAtom_;let r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,ji(e)),r}if(Ei(e)){if(!t)return n(26);let r=e[E],i=r.values_.get(t)??r.materializeLazyComputed_(t)??r.materializeLazyObservable_(t);return i||n(27,t,ji(e)),i}if(ce(e)||jt(e)||vn(e))return e}else if(p(e)&&vn(e[E]))return e[E];n(28)}function Ai(e,t){if(e||n(29),t!==void 0)return Ai(ki(e,t));if(ce(e)||jt(e)||vn(e)||F(e)||vi(e))return e;if(e[E])return e[E];n(24,e)}function ji(e,t){let n;if(t!==void 0)n=ki(e,t);else if(Rn(e))return e.name;else n=Ei(e)||F(e)||vi(e)?Ai(e):ki(e);return n.name_}function Mi(e){let t=Ht(),n=Et(!0);an();try{return e()}finally{on(),Dt(n),Ut(t)}}let Ni=o.toString;function Pi(e,t,n=-1){return Fi(e,t,n)}function Fi(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;let a=typeof e;if(a!==`function`&&a!==`object`&&typeof t!=`object`)return!1;let o=Ni.call(e);if(o!==Ni.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=Ii(e),t=Ii(t);let s=o===`[object Array]`;if(!s){if(typeof e!=`object`||typeof t!=`object`)return!1;let n=e.constructor,r=t.constructor;if(n!==r&&!(p(n)&&n instanceof n&&p(r)&&r instanceof r)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),r||=[],i||=[];let c=r.length;for(;c--;)if(r[c]===e)return i[c]===t;if(r.push(e),i.push(t),s){if(c=e.length,c!==t.length)return!1;for(;c--;)if(!Fi(e[c],t[c],n-1,r,i))return!1}else{let a=Object.keys(e),o=a.length;if(Object.keys(t).length!==o)return!1;for(let s=0;s<o;s++){let o=a[s];if(!(ie(t,o)&&Fi(e[o],t[o],n-1,r,i)))return!1}}return r.pop(),i.pop(),!0}function Ii(e){return fi(e)?e.slice():x(e)||F(e)||C(e)||vi(e)?Array.from(e.entries()):e}let Li=globalThis.Iterator?.prototype||{};function Ri(e){return e[Symbol.iterator]=zi,r(Object.create(Li),e)}function zi(){return this}function Bi(e){return e instanceof Object&&typeof e.annotationType_==`string`&&p(e.make_)&&p(e.extend_)}{let e=globalThis;[`Symbol`,`Map`,`Set`,`Proxy`].forEach(t=>{e[t]===void 0&&n(`MobX requires global '${t}' to be available or polyfilled`)})}typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:wn,extras:{getDebugName:ji},$mobx:E}),e.$mobx=E,e.FlowCancellationError=nr,e.ObservableMap=hi,e.ObservableSet=_i,e.Reaction=pn,e._allowStateChanges=Tt,e._allowStateChangesInsideComputed=Ln,e._allowStateReadsEnd=Wt,e._allowStateReadsStart=j,e._autoAction=Pn,e._autoActionBound=In,e._endAction=wt,e._getAdministration=Ai,e._getGlobalState=Zt,e._interceptReads=fr,e._isComputingDerivation=Ft,e._resetGlobalState=Qt,e._startAction=Ct,e.action=Nn,e.actionBound=Fn,e.autorun=zn,e.compareDefault=pe,e.compareIdentity=ue,e.compareShallow=fe,e.compareStructural=de,e.computed=k,e.computedStruct=gt,e.configure=Jn,e.createAtom=le,e.defineProperty=kr,e.entries=wr,e.extendObservable=Yn,e.flow=sr,e.flowBound=cr,e.flowResult=ur,e.get=Or,e.getAtom=ki,e.getDebugName=ji,e.getDependencyTree=Xn,e.getObserverTree=Qn,e.has=Dr,e.intercept=pr,e.isAction=Rn,e.isBoxedObservable=kt,e.isComputed=_r,e.isComputedProp=vr,e.isFlow=dr,e.isFlowCancellationError=rr,e.isObservable=br,e.isObservableArray=fi,e.isObservableMap=F,e.isObservableObject=Ei,e.isObservableProp=xr,e.isObservableSet=vi,e.keys=Sr,e.makeAutoObservable=$r,e.makeObservable=Zr,e.observable=O,e.observableDeep=dt,e.observableRef=lt,e.observableShallow=ut,e.observableStruct=ft,e.observe=jr,e.onBecomeObserved=Wn,e.onBecomeUnobserved=Gn,e.onReactionError=mn,e.override=ye,e.ownKeys=Ar,e.reaction=Hn,e.remove=Er,e.runInAction=Ln,e.set=Tr,e.spy=wn,e.toJS=Lr,e.transaction=Rr,e.untracked=Vt,e.values=Cr,e.when=zr})),Vg=ye(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=zg():t.exports=Bg()}))();function Hg(e){if(Array.isArray(e))return Object.freeze(e.map(Hg));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]=Hg(r);return Object.freeze(t)}return e}function Ug(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 Wg(e){return typeof e==`string`?e:String(e)}function Gg(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 Kg(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")`)}var qg=class extends Error{constructor(e,t){super(t),this.variable=e}};function Jg(e){return e instanceof qg||e instanceof Error&&e.cause!==void 0&&Jg(e.cause)}var Yg=class extends Error{name=`TemplateError`;kind=`EvalError`;pos;source;constructor(e,t,n={}){super(e,{cause:n.cause}),this.pos=t,this.source=n.source}get sourceSnippet(){return this.source?i_(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}},Xg=class extends Yg{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},Zg=class extends Yg{name=`EvalError`;kind=`EvalError`},Qg=class extends Zg{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=a_(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}},$g=class extends Zg{name=`ArgCountError`;kind=`ArgCountError`;funcName;accepted;got;constructor(e,t,n,r,i={}){let a=t.minimum===t.maximum?`${t.minimum}`:`at least ${t.minimum}`;super(`wrong number of args for ${e}: want ${a} got ${n}`,r,i),this.funcName=e,this.accepted=t,this.got=n}},e_=class extends Zg{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}},t_=class extends e_{constructor(e,t,n,r,i={}){super(e,t,`integer`,String(n),r,i),this.message=Number.isInteger(Number(n))?`integer out of range: ${String(n)}`:`expected integer; found ${String(n)}`}},n_=class extends Zg{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},r_=class extends Zg{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function i_(e,t){let n=e.split(`
46
+ `);yield a===n.text?n:new e(a,n.style)}}static splitAndCropLines(t,n){return e.splitLines(t).map(t=>e.adjustLineLength(t,n))}static getLineLength(e){let t=0;for(let n of e)n.isControl||(t+=n.cellLength);return t}static getShape(t){if(t.length===0)return[0,0];let n=0;for(let r of t){let t=e.getLineLength(r);t>n&&(n=t)}return[n,t.length]}static*mergeHorizontal(t,n=0){let r=0;for(let e of t)e.lines.length>r&&(r=e.lines.length);let i=n>0?[new e(` `.repeat(n))]:[];for(let n=0;n<r;n++){for(let r=0;r<t.length;r++){r>0&&(yield*i);let a=t[r];yield*e.adjustLineLength(a.lines[n]??[],a.width)}yield e.line()}}static*simplify(t){let n;for(let r of t){if(!n){n=r;continue}Cl(n.style,r.style)&&!r.isControl&&!n.isControl?n=new e(n.text+r.text,n.style):(yield n,n=r)}n&&(yield n)}static*stripLinks(t){for(let n of t)n.style?.link?yield new e(n.text,n.style.clearMetaAndLinks(),n.control):yield n}static*stripStyles(t){for(let n of t)yield new e(n.text,void 0,n.control)}static*removeColor(t){for(let n of t)n.style?yield new e(n.text,n.style.withoutColor,n.control):yield n}static divide(e,t){if(t.length===0)return[e];let n=[],r=0,i=0,a=e[r];for(let o of t){let t=[];for(;a&&i+a.cellLength<=o;)t.push(a),i+=a.cellLength,r++,a=e[r];if(a&&!a.isControl&&i<o){let e=go(o-i),[n,r]=a.splitCells(e);n.hasText&&t.push(n),i+=n.cellLength,a=r}n.push(t)}let o=[];for(a?.hasText&&o.push(a),r++;r<e.length;)o.push(e[r]),r++;return o.length>0&&n.push(o),n}static alignTop(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)];for(;a.length<r;)a.push([...o]);return a.slice(0,r)}static alignBottom(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)],s=Math.max(0,r-a.length),c=[];for(let e=0;e<s;e++)c.push([...o]);return c.push(...a),c.slice(0,r)}static alignMiddle(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)],s=Math.max(0,Math.floor((r-a.length)/2)),c=[];for(let e=0;e<s;e++)c.push([...o]);for(c.push(...a);c.length<r;)c.push([...o]);return c.slice(0,r)}static setShape(t,n,r,i){let a=t.map(t=>e.adjustLineLength(t,n,i)),o=[new e(` `.repeat(n),i)];for(;a.length<r;)a.push([...o]);return a.slice(0,r)}};function Cl(e,t){return e===t?!0:!e||!t?!1:e.equals(t)}const wl=e=>/^[\x00-\x7F]*$/.test(e);function Tl(e,t,n,r=String){return e.asciiOnly===!0&&!wl(r(t))?n:t}function El(e,t){return(e.theme??bl).resolve(t)}function Dl(e){return{...e,maxWidth:vo(e.maxWidth)}}function Ol(e){return{...e,onDraw:void 0}}function kl(e,t){let n=Dl(e);if(Number.isFinite(n.maxWidth))return n;let r=t.measure(Ol(n)).maximum;if(!Number.isFinite(r))throw RangeError(`maxWidth is unbounded and this renderable has no natural width to fall back on: its content does not implement measure(), or something inside it asked for an unbounded width of its own. Render it at a finite width, or give the content a measure() that reports a finite maximum.`);return{...n,maxWidth:vo(r)}}function Al(e){return typeof e==`object`&&!!e&&`measure`in e&&typeof e.measure==`function`}var jl=class e{minimum;maximum;constructor(e,t){this.minimum=e,this.maximum=t}get span(){return this.maximum-this.minimum}normalize(){let t=e=>Number.isNaN(e)?0:e;return new e(Math.max(0,Math.min(t(this.minimum),t(this.maximum))),Math.max(0,t(this.maximum)))}withMaximum(t){return new e(Math.min(this.minimum,t),Math.min(this.maximum,t))}withMinimum(t){let n=Math.max(this.minimum,t);return new e(n,Math.max(this.maximum,n))}clamp(t,n){return new e(Math.min(Math.max(this.minimum,t),n),Math.min(Math.max(this.maximum,t),n))}static get(t,n){if(t.maxWidth<1)return new e(0,0);if(!Al(n))return new e(0,t.maxWidth);let{minimum:r,maximum:i}=n.measure(Ol(t));return new e(r,Math.min(i,t.maxWidth)).normalize()}};function*Ml(e){let t=/\s*\S+\s*/y;for(let n=t.exec(e);n!==null;n=t.exec(e))yield n[0]}function Nl(e){return R(e.trimEnd())}function Pl(e){return Array.from(Ml(e),Nl)}function Fl(e,t){let n=xo(e,t);return R(n[0])>t?[``,...n]:n}function Il(e,t,n){if(t<=0)return[];let r=[],i=e=>{e>0&&r.push(go(e))},a=0,o=0;for(let r of Ml(e)){let e=Nl(r);if(t-a>=e)a+=R(r);else if(n.fold&&e>t){let e=Fl(r,t),n=o;for(let t=0;t<e.length;t+=1){i(n);let r=e[t];t===e.length-1?a=R(r):n+=R(r)}}else i(o),a=R(r);o+=R(r)}return r}const Ll=new TextEncoder;function Rl(e){let t=2166136261;for(let n of Ll.encode(e))t=Math.imul(t^n,16777619);return(t>>>0).toString(16).padStart(8,`0`)}const zl=`\\x1b\\x07\\x9c`,Bl=RegExp(`[${zl}]`,`g`);function Vl(e){return e.replace(Bl,``)}function Hl(e){let t=Vl(e);return`\x1b]8;id=${Rl(t)};${t}\x1b\\`}const Ul=RegExp(`\\x1b\\]8;([^;${zl}]*);([^${zl}]*)(?:\\x1b\\\\|\\x07|\\x9c)`);new RegExp(Ul.source,`g`);const Wl=/[\x00-\x08\x0B-\x1F\x7F]/g;function Gl(e){return e.replace(Wl,``)}const Kl=/\s+$/;function ql(e){return e.map(e=>e.text).join(``)}function Jl(e){return R(Kl.exec(ql(e))?.[0]??``)}function Yl(e){let t=e.link;if(!t)return e;let n=Vl(t);return n===t?e:e.withLink(n)}function Xl(e){return typeof e==`string`?e:e instanceof H?Zl(e):{under:e.under,over:Zl(e.over)}}function Zl(e){return Yl(e.anchor?e.withAnchor(void 0):e)}function Ql(e){return e instanceof H?e.isNull:e===``}function $l(e,t){return Yl(t instanceof H?t:typeof t==`string`?eu(e,t):eu(e,t.under).add(t.over))}function eu(e,t){try{return El(e,t)}catch(n){if(!(n instanceof ol))throw n;return e.onStyleError?.(n,t),U}}var tu=class e{start;end;style;constructor(e,t,n){this.start=e,this.end=t,this.style=n}get hasLength(){return this.end>this.start}toString(){return`Span(${this.start}, ${this.end})`}split(t){return t<=this.start||t>=this.end?[this,void 0]:[new e(this.start,t,this.style),new e(t,this.end,this.style)]}move(t){return new e(this.start+t,this.end+t,this.style)}rightCrop(t){return t>=this.end?this:new e(this.start,Math.min(this.end,t),this.style)}extend(t){return new e(this.start,this.end+t,this.style)}},G=class e{_text;_spans;_style;_justify;_overflow;_end;_tabSize;_noWrap;constructor(e,t){this._text=e?Gl(e):``,this._spans=[],this._style=Xl(t?.style??U),this._justify=t?.justify,this._overflow=t?.overflow,this._end=t?.end??`
47
+ `,this._tabSize=Mo(t?.tabSize??8),this._noWrap=t?.noWrap??!1}get plain(){return this._text}set plain(e){let t=Gl(e);this._text=t;let n=t.length;this._spans=this._spans.map(e=>e.end>n?new tu(e.start,Math.min(e.end,n),e.style):e).filter(e=>e.start<n)}get length(){return this._text.length}get cellLength(){return R(No(this._text,this._tabSize).text)}get hasContent(){return this._text.length>0}get style(){return this._style}set style(e){this._style=Xl(e)}get justify(){return this._justify}set justify(e){this._justify=e}get overflow(){return this._overflow}set overflow(e){this._overflow=e}get end(){return this._end}set end(e){this._end=e}get noWrap(){return this._noWrap}set noWrap(e){this._noWrap=e}get spans(){return this._spans}resolvedStyle(e){return $l(e,this._style)}edgeStyle(e,t){let n=this.resolvedStyle(t);if(this._text.length===0)return n;let r=e===`left`?0:this._text.length-1,i=n;for(let e of this._spans)e.start<=r&&r<e.end&&(i=i.add($l(t,e.style)));return i}append(t,n){if(t instanceof e){if(n!==void 0)throw Error(`Style argument must not be provided when appending RichText`);let e=this._text.length;this._text+=t._text,this._addSpan(e,this._text.length,t._style);for(let n of t._spans)this._spans.push(n.move(e));return this}let r=Gl(t),i=this._text.length;return this._text+=r,this._addSpan(i,this._text.length,n??``),this}contains(t){let n=t instanceof e?t._text:t;return this._text.includes(n)}at(t){let n=t<0?this._text.length+t:t;return this._text[n]===void 0?new e(``):this.slice(n,n+1)}slice(e,t){let n=this._text,r=n.length,i=e??0,a=t??r,o=i<0?Math.max(0,r+i):Math.min(i,r),s=a<0?Math.max(0,r+a):Math.min(a,r);if(o>=s)return this.blankCopy();let c=n.slice(o,s),l=this.blankCopy(c);for(let e of this._spans){let t=Math.max(e.start,o)-o,n=Math.min(e.end,s)-o;t<n&&l._spans.push(new tu(t,n,e.style))}return l}_addSpan(e,t,n){let r=Xl(n);Ql(r)||this._spans.push(new tu(e,t,r))}stylize(e,t,n){let r=this._text.length,i=t===void 0?0:t<0?r+t:t,a=n===void 0?r:n<0?r+n:n;if(i>=a||i>=r||a<=0)return this;let o=Math.max(0,i),s=Math.min(r,a);return this._addSpan(o,s,e),this}highlightRegex(e,t){let n=this._text,r=0,i=e.flags.includes(`g`)?e.flags:e.flags+`g`,a=new RegExp(e.source,i),o;for(;(o=a.exec(n))!==null;){if(o[0].length===0){a.lastIndex++;continue}if(o.groups){let e=0;for(let[t,n]of Object.entries(o.groups))if(n!==void 0){let r=o[0].indexOf(n,e);if(r>=0){let i=o.index+r;this._addSpan(i,i+n.length,t),e=r+n.length}}r++;continue}this._addSpan(o.index,o.index+o[0].length,t??``),r++}return r}highlightWords(e,t,n){let r=n?.caseSensitive!==!1,i=0;for(let n of e){if(n.length===0)continue;let e=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),a=r?`g`:`gi`,o=RegExp(`\\b${e}\\b`,a),s;for(;(s=o.exec(this._text))!==null;)this._addSpan(s.index,s.index+s[0].length,t),i++}return i}copy(){let t=new e(this._text,{style:this._style,justify:this._justify,overflow:this._overflow,end:this._end,tabSize:this._tabSize,noWrap:this._noWrap});return t._spans=this._spans.slice(),t}blankCopy(t){return new e(t??``,{style:this._style,justify:this._justify,overflow:this._overflow,end:this._end,tabSize:this._tabSize,noWrap:this._noWrap})}split(e){let t=e??`
48
+ `,n=this._text,r=[],i=0;for(;;){let e=n.indexOf(t,i);if(e===-1){r.push(this.slice(i));break}r.push(this.slice(i,e)),i=e+t.length}return r}divide(e){if(e.length===0)return[this.copy()];let t=[],n=0;for(let r of e)t.push(this.slice(n,r)),n=r;return t.push(this.slice(n)),t}rstrip(){let e=this._text.replace(/\s+$/,``);return e.length<this._text.length&&(this.plain=e),this}pad(e,t){let n=(t??` `).repeat(e);return this._spans=this._spans.map(t=>t.move(e)),this._text=n+this._text+n,this}expandTabs(){let e=No(this._text,this._tabSize);return this._spans=this._spans.map(t=>new tu(e.offsetOf(t.start),e.offsetOf(t.end),t.style)),this._text=e.text,this}padLeft(e,t){let n=t??` `;return this._spans=this._spans.map(t=>t.move(e)),this._text=n.repeat(e)+this._text,this}padRight(e,t){let n=t??` `;return this._text+=n.repeat(e),this}setLength(e){return this._text.length<e?this._text+=` `.repeat(e-this._text.length):this._text.length>e&&(this.plain=this._text.slice(0,e)),this}extendStyle(e){let t=this._text.length;return this._text+=` `.repeat(e),this._spans=this._spans.map(n=>n.end===t?n.extend(e):n),this}truncate(e,t){if(this.cellLength<=e)return this;this.expandTabs();let n=t?.mode??`right`,r=vo(e),i=Do(t?.marker??`…`,r),a=go(r-R(i));if(n===`right`)return this._cropRightTo(a),i&&(this._text+=i),this;if(n===`left`)return this._cropLeftTo(a),i&&(this._spans=this._spans.map(e=>e.move(i.length)),this._text=i+this._text),this;let o=go(Math.floor(a/2)),s=go(a-o),c=Do(this._text,o).length,l=this._text.length-Oo(this._text,s).length,u=this._text.slice(0,c),d=this._text.slice(l),f=c,p=l,m=i.length-(p-f),h=[];for(let e of this._spans)e.end<=f?h.push(e):e.start>=p?h.push(e.move(m)):(e.start<f&&h.push(new tu(e.start,f,e.style)),e.end>p&&h.push(new tu(p+m,e.end+m,e.style)));return this._text=u+i+d,this._spans=h,this}_cropRightTo(e){this.plain=Do(this._text,e)}_cropLeftTo(e){let t=this._text.length-Oo(this._text,e).length,n=-t;this._spans=this._spans.map(e=>{if(!(e.end<=t))return new tu(Math.max(0,e.start+n),e.end+n,e.style)}).filter(e=>e!==void 0),this._text=this._text.slice(t)}align(e,t){let n=this.cellLength;if(n>=t)return this;this.expandTabs();let r=t-n;switch(e){case`left`:this.padRight(r);break;case`right`:this.padLeft(r);break;case`center`:{let e=Math.floor(r/2),t=r-e;this.padLeft(e),this.padRight(t);break}}return this}removeSuffix(e){return this._text.endsWith(e)&&(this.plain=this._text.slice(0,-e.length)),this}appendTokens(e){for(let[t,n]of e)this.append(t,n);return this}static assemble(t,n){let r=new e(``,{style:n?.style});for(let n of t)if(typeof n==`string`)r.append(n);else if(n instanceof e)r.append(n);else{let[e,t]=n;r.append(e,t)}return r}static styled(t,n){let r=new e(t);return r.stylize(n),r}static fromFragments(t,n){let r=new e(``,{end:n?.end??``});for(let e of t)r.append(e);return r}*render(e){let t=No(this._text,this._tabSize),n=this.resolvedStyle(e),{segments:r,covered:i}=this._buildSegments(t,n,e),a=nu(r,i);r.push(W.line());let o=W.splitLines(r),s=vo(kl(e,this).maxWidth),c=this._overflow??e.overflow??`fold`,l=this._noWrap||(e.noWrap??!1),u=c===`ignore`?vo(1/0):s,d=l?vo(1/0):u,f=c===`ignore`?void 0:this._justify??e.justify,p=Tl(e,`…`,`.`);for(let e=0;e<o.length;e+=1){let t=o[e],r=a[e],i=e<o.length-1,l=Il(ql(t),d,{fold:c===`fold`}),m=W.divide(t,l),h=this._justifyLines(m.map((e,t)=>({segments:[...this._fitLine(e,u,c,p)],free:e=>r(t===0?e:l[t-1]+e)})),s,n,f);for(let e=0;e<h.length;e+=1)yield*h[e],(e<h.length-1||i)&&(yield W.line())}this._end&&(yield new W(this._end))}measure(e){let t=No(this._text,this._tabSize).text.split(`
49
+ `),n=t.reduce((e,t)=>Math.max(e,R(t)),0),r=t.flatMap(Pl),i=r.length>0?r.reduce((e,t)=>Math.max(e,t),0):n,a=vo(e.maxWidth);return{minimum:Math.min(i,a),maximum:Math.min(n,a)}}_buildSegments({text:e,offsetOf:t},n,r){let i=n=>Math.max(0,Math.min(t(n),e.length)),a=new Set;for(let e of this._spans)a.add(i(e.start)),a.add(i(e.end));a.delete(0),a.delete(e.length);let o=[0,...[...a].sort((e,t)=>e-t),e.length],s=new Map(o.map((e,t)=>[e,t]).reverse()),c=o.slice(0,-1).map(()=>n),l=c.map(()=>!1);for(let e of this._spans){let t=i(e.end),n=$l(r,e.style),a=s.get(i(e.start));for(let e=a;o[e]<t;e++)c[e]=c[e].add(n),l[e]=!0}return{segments:c.map((t,n)=>new W(e.slice(o[n],o[n+1]),t.isNull?void 0:t)),covered:l}}_justifyLines(e,t,n,r){return r===`full`?e.map(({segments:r},i)=>i===e.length-1?r:this._fillLine(r,t,n)):e.map(e=>[...this._justifyLine(e,t,n,r)])}*_justifyLine({segments:e,free:t},n,r,i){let a=r.isNull?void 0:r;switch(i){case`center`:case`right`:{let r=W.adjustLineLength(e,W.getLineLength(e)-Jl(e),void 0,!1),o=Math.max(n-W.getLineLength(r),0),s=i===`center`?Math.floor(o/2):o;yield*ru(r,t,s,o-s,a);break}case`left`:yield*ru(e,t,0,Math.max(n-W.getLineLength(e),0),a);break;default:yield*e;break}}_fillLine(e,t,n){let r=ql(e),i=r.split(` `);r.endsWith(` `)&&i.pop();let a=i.length-1,o=Array(a).fill(1),s=i.reduce((e,t)=>e+R(t),0)+a;for(let e=0;s<t&&a>0;e=(e+1)%a)o[a-1-e]+=1,s+=1;let c=[],l=0;for(let e=0;e<i.length;e+=1)l+=R(i[e]),c.push(l),l+=1,e<a&&c.push(l);let u=W.divide(e,c),d=(e,t)=>e.filter(e=>e.hasText).at(t)?.style??n,f=[];for(let e=0;e<i.length;e+=1)if(f.push(...u[e*2]),e<a){let t=d(u[e*2],-1),r=d(u[e*2+2],0),i=t.equals(r)?t:n;f.push(new W(` `.repeat(o[e]),i.isNull?void 0:i))}return f}*_fitLine(e,t,n,r){let i=W.getLineLength(e);if(i-Jl(e)<=t){yield*W.adjustLineLength(e,Math.min(i,t),void 0,!1);return}if(n===`ellipsis`&&t>0){yield*W.adjustLineLength(e,t-1,void 0,!1),yield new W(r);return}yield*W.adjustLineLength(e,t,void 0,!1)}};function nu(e,t){let n=[[]];return e.forEach((e,r)=>{e.text.split(`
50
+ `).forEach((e,i)=>{i>0&&n.push([]);let a=n.at(-1);a.push({end:(a.at(-1)?.end??0)+R(e),free:!t[r]})})}),n.map(e=>t=>{let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i].end<=t?n=i+1:r=i}return e[n].free})}function*ru(e,t,n,r,i){if(n+r===0)return yield*e;let a=e.filter(e=>e.text!==``),o=e=>` `.repeat(e),s=W.getLineLength(a);if(s===0)return yield new W(o(n+r),i);let c=a.length-1,l=n>0&&a[0].cellLength>0&&t(0),u=r>0&&a[c].cellLength>0&&t(s-1),d=+!!l,f=u?c:c+1;if(d>f){yield new W(o(n)+a[0].text+o(r),i);return}n>0&&(yield new W(o(n)+(l?a[0].text:``),i)),yield*a.slice(d,f),r>0&&(yield new W((u?a[c].text:``)+o(r),i))}const iu=Object.freeze({name:`join`});var au=class{fg;bg;constructor(e,t){this.fg=e,this.bg=t}};function ou(e,t){for(let n=e;n;n=n.inner){if(t.has(n.owner))return{fg:!0,bg:!0};if(n.owner instanceof au){let{fg:e,bg:r}=n.owner;return{fg:e!==null&&t.has(e),bg:r!==null&&t.has(r)}}}return{fg:!1,bg:!1}}function su(e,t,n,r){let i=e.join(t,n,r);return{render:e=>W.anchorLines([[...i.render(e)]],iu)[0]}}function cu(e){return{render:t=>W.anchorLines([[...e.render(t)]],e)[0]}}var lu=class{items;joiner;constructor(e,t){this.items=e,this.joiner=t}*render(e){let t=this.items;if(t.length===0)return;let n={...e,justify:void 0};yield*su(this.joiner,null,t[0],{index:0}).render(n);for(let e=0;e<t.length;e++){let r=t[e];yield*cu(r).render(n);let i=e+1<t.length?t[e+1]:null;yield*su(this.joiner,r,i,{index:e+1}).render(n)}yield W.line()}measure(e){let t=0;for(let n of this.render(e))t+=n.cellLength;return{minimum:t,maximum:t}}};const uu=[`seam`,`divider`,`lead`,`tail`];function*du(e){yield e,`mix`in e&&(yield*du(e.mix[0]),yield*du(e.mix[1]))}const fu=e=>typeof e.glyph==`string`?[e.glyph]:e.glyph.oneOf,pu=(e,t,n,r)=>{let i=fu(e);return i[Math.floor(parseInt(Rl(`${t}:${n}:${r}`),16)/2**32*i.length)]},mu=e=>R(fu(e)[0]??``),hu=e=>e.reduce((e,t)=>e+mu(t),0);function gu(e,t,n){if(e===`ground`)return n(`mixes ground, whose colour is unknown`);let r=typeof e==`object`&&e?e:{};if((r.edge===`left`||r.edge===`right`)&&(r.part===`bg`||r.part===`fg`))return r.edge===t&&n(`names the ${t} neighbour, which this part is drawn without`),Object.freeze({edge:r.edge,part:r.part});if(typeof r.role==`string`)return Object.freeze({role:r.role});if(Array.isArray(r.mix)&&r.mix.length===3){let[e,i,a]=r.mix;return(typeof a!=`number`||!(a>=0&&a<=1))&&n(`mixes at ${String(a)}, outside 0..1`),Object.freeze({mix:Object.freeze([gu(e,t,n),gu(i,t,n),a])})}return n(`has a colour that is not a Paint: ${JSON.stringify(e)}`)}const _u=(e,t,n)=>e===`ground`?e:gu(e,t,n),vu={seam:void 0,divider:void 0,lead:`left`,tail:`right`},yu={seam:`seam`,divider:`seam`,lead:`caps`,tail:`caps`};function bu(e,t,n,r){let i=e.glyph,a=typeof i==`object`&&i?i.oneOf:void 0;typeof i!=`string`&&!(Array.isArray(a)&&a.every(e=>typeof e==`string`))&&r(`has a glyph that is neither a string nor a oneOf of strings: ${JSON.stringify(i)}`),e.fg===`ground`&&e.bg===`ground`&&r(`has ground on both sides`);let o=fu(e);return o.length===0&&r(`has an empty oneOf`),o.some(t=>R(t)!==mu(e))&&r(`has oneOf members of different widths`),t===`ascii`&&!o.every(wl)&&r(`is not ASCII`),Object.freeze({glyph:typeof e.glyph==`string`?e.glyph:Object.freeze({oneOf:Object.freeze([...o])}),fg:_u(e.fg,vu[n],r),bg:_u(e.bg,vu[n],r)})}function xu(e,t,n,r){let i=e,a=yu[n];if(typeof i?.[t]!=`object`||i[t]===null)throw Error(`${a}: has no ${t} form`);let o=i[t][n];if(!Array.isArray(o))throw Error(`${a}: ${t} ${n} is not a list of cells`);return Object.freeze(o.map((e,i)=>{let o=e=>{throw Error(`${a}: ${t} ${n}[${i}] ${e}`)};return typeof e==`object`&&e?r(e,o):o(`is not a cell`)}))}const Su=(e,t)=>(n,r)=>bu(n,e,t,r),Cu=(e,t)=>(n,r)=>{if(!(`cap`in n))return bu(n,e,t,r);let{cap:i}=n;return Object.keys(n).length!==1&&r(`names a cap and draws cells of its own; a cell is one or the other`),i===`lead`||i===`tail`?Object.freeze({cap:i}):r(`names a cap that is neither lead nor tail: ${JSON.stringify(i)}`)},wu=e=>[hu(e.filter(e=>!(`cap`in e))),e.filter(e=>`cap`in e&&e.cap===`lead`).length,e.filter(e=>`cap`in e&&e.cap===`tail`).length];function Tu(e){let t=t=>{let n=xu(e,t,`seam`,Cu(t,`seam`)),r=e[t].divider===e[t].seam?n:xu(e,t,`divider`,Cu(t,`divider`)),[i,a]=[wu(n),wu(r)];if(i.some((e,t)=>e!==a[t]))throw Error(`seam: ${t} divider is not the width of the seam under every caps`);return Object.freeze({seam:n,divider:r})};return Object.freeze({glyph:t(`glyph`),ascii:t(`ascii`)})}function Eu(e){let t=t=>Object.freeze({lead:xu(e,t,`lead`,Su(t,`lead`)),tail:xu(e,t,`tail`,Su(t,`tail`))});return Object.freeze({glyph:t(`glyph`),ascii:t(`ascii`)})}function Du(e,t){let n=e=>e.flatMap(e=>`cap`in e?t[e.cap]:[e]),r=n(e.seam);return{seam:r,divider:e.divider===e.seam?r:n(e.divider),lead:t.lead,tail:t.tail}}const Ou=(e,t)=>e.some(e=>[e.fg,e.bg].some(e=>e!==`ground`&&[...du(e)].some(e=>`edge`in e&&e.edge===t&&e.part===`bg`)));function ku(e){let t=[...e.seam,...e.divider];return{shape:e,reads:{seam:{left:Ou(t,`left`),right:Ou(t,`right`)},lead:Ou(e.lead,`right`),tail:Ou(e.tail,`left`)}}}function Au(e){return e!==void 0&&!e.isDefault?e:void 0}function ju(e){return e.flattenAlpha(Bo)}function Mu(e,t){if(e.reverse)return!1;let{color:n,bgcolor:r}=e.drawnColors(t??B.TRUECOLOR);if(n===void 0||r===void 0)return!1;let i=n.fixedValue,a=r.fixedValue;return i!==void 0&&a!==void 0?Xs.fromRgba(i).deltaE(Xs.fromRgba(a))<.04:n.number===void 0?n.name===r.name:n.number===r.number}function Nu(e,t,n){if(`edge`in e){let n=t[e.edge];if(e.part===`fg`)return n?.color;let r=Au(n?.bgcolor);return r&&ju(r)}if(`role`in e)return El(n,e.role).color;let[r,i,a]=e.mix,o=Nu(r,t,n),s=Nu(i,t,n);return o&&s&&V.blend(o,s,a)}function Pu(e,t,n){return e.fg===`ground`?new H({color:e.bg===`ground`?void 0:Nu(e.bg,t,n),reverse:!0}):new H({color:Nu(e.fg,t,n),bgcolor:e.bg===`ground`?void 0:Nu(e.bg,t,n)})}const Fu=e=>uu.flatMap(t=>e[t].flatMap(fu)).join(``);var Iu=class{seam;caps;_forms;constructor(e,t){this.seam=Tu(e),this.caps=Eu(t),this._forms={glyph:ku(Du(this.seam.glyph,this.caps.glyph)),ascii:ku(Du(this.seam.ascii,this.caps.ascii))}}join(e,t,{index:n}){let r=this._forms;return{*render(i){let{shape:a,reads:o}=Tl(i,r.glyph,r.ascii,e=>Fu(e.shape)),s={left:e?.edgeStyle(`right`,i),right:t?.edgeStyle(`left`,i)},c=Au(s.left?.bgcolor),l=Au(s.right?.bgcolor),u=e!==null&&(!o.seam.left||c!==void 0),d=t!==null&&(!o.seam.right||l!==void 0),f=d&&(!o.lead||l!==void 0),p=u&&(!o.tail||c!==void 0),m={left:e,right:t},h=e=>e!==`ground`&&`edge`in e?m[e.edge]:null,g=e=>a[e].map((t,r)=>{let a=new au(h(t.fg),h(t.bg));return new W(pu(t,e,n,r),Pu(t,s,i).withAnchor({owner:a,row:0,col:0,inner:void 0}))});if(!u||!d){(f||p)&&(yield*g(f?`lead`:`tail`));return}let _=g(`seam`);yield*a.divider!==a.seam&&_.every(e=>e.style!==void 0&&Mu(e.style,i.colorSystem))?g(`divider`):_}}}};const Lu={edge:`left`,part:`bg`},Ru={edge:`right`,part:`bg`},zu={edge:`left`,part:`fg`},Bu={mix:[Lu,Ru,1/2]},Vu=`ground`,Hu={cap:`lead`},Uu={cap:`tail`},Wu=(e,t)=>({glyph:e,ascii:t}),Gu={glyph:``,thin:``,ascii:`>`,asciiThin:`>`},Ku={glyph:``,thin:``,ascii:`/`,asciiThin:`/`},qu={glyph:``,thin:``,ascii:`\\`,asciiThin:`\\`},Ju={glyph:``,thin:``,ascii:`}`,asciiThin:`}`},Yu={glyph:``,thin:``,ascii:`#`,asciiThin:`>`},Xu={glyph:``,thin:``,ascii:`]`,asciiThin:`>`},Zu={glyph:``,thin:``,ascii:`)`,asciiThin:`)`},Qu=(e,t)=>({seam:[{glyph:e,fg:Lu,bg:Ru}],divider:[{glyph:t,fg:zu,bg:Lu}]}),$u=e=>Wu(Qu(e.glyph,e.thin),Qu(e.ascii,e.asciiThin));function ed(e,t){let n=e=>({mix:[Lu,Ru,e]}),r={glyph:` `,fg:zu,bg:Lu};return{seam:[{glyph:e,fg:Lu,bg:n(1/3)},{glyph:e,fg:n(1/3),bg:n(2/3)},{glyph:e,fg:n(2/3),bg:Ru}],divider:[r,{glyph:t,fg:zu,bg:Lu},r]}}function td(e){let t=[Uu,...e,Hu];return{seam:t,divider:t}}function nd(e,t){let n=[{glyph:e,fg:t,bg:Bu}];return{seam:n,divider:n}}function rd(e){return{seam:nd({oneOf:e},Lu).seam,divider:[{glyph:{oneOf:e},fg:zu,bg:Bu}]}}const id=[{glyph:` | `,fg:{role:`strip.separator`},bg:Vu}],ad={seam:id,divider:id},od={glyph:` `,fg:zu,bg:Vu},sd=e=>({glyph:e,fg:{role:`strip.rail`},bg:Vu}),cd=Object.freeze({powerline:Tu($u(Gu)),prism:Tu(Wu(ed(Gu.glyph,Gu.thin),ed(Gu.ascii,Gu.asciiThin))),slant:Tu($u(Ku)),backslant:Tu($u(qu)),flame:Tu($u(Ju)),pixel:Tu($u(Yu)),ice:Tu($u(Xu)),bubble:Tu($u(Zu)),capsule:Tu(Wu(td([od]),td([od]))),wrapper:Tu(Wu(td([]),td([]))),metro:Tu(Wu(td([sd(`──`)]),td([sd(`--`)]))),stitch:Tu(Wu(nd(`┊`,zu),nd(`:`,zu))),torn:Tu(Wu(rd([`▚▞`,`▞▚`,`▘▗`,`▝▖`,`▖▝`,`▗▘`]),rd([`/\\`,`\\/`]))),plain:Tu(Wu(ad,ad))}),ld=e=>Wu({lead:[{glyph:e.glyph,fg:Vu,bg:Ru}],tail:[{glyph:e.glyph,fg:Lu,bg:Vu}]},{lead:[],tail:[{glyph:e.ascii,fg:Lu,bg:Vu}]}),ud=(e,t)=>({lead:[{glyph:e,fg:Ru,bg:Vu}],tail:[{glyph:t,fg:Lu,bg:Vu}]}),dd={lead:[],tail:[]},fd=Object.freeze({powerline:Eu(ld(Gu)),slant:Eu(ld(Ku)),backslant:Eu(ld(qu)),flame:Eu(ld(Ju)),pixel:Eu(ld(Yu)),ice:Eu(ld(Xu)),bubble:Eu(ld(Zu)),capsule:Eu(Wu(ud(``,``),ud(`(`,`)`))),wrapper:Eu(Wu(ud(``,``),ud(`<`,`>`))),flat:Eu(Wu(dd,dd))}),pd=Object.freeze({powerline:new Iu(cd.powerline,fd.powerline),prism:new Iu(cd.prism,fd.powerline),slant:new Iu(cd.slant,fd.slant),backslant:new Iu(cd.backslant,fd.backslant),flame:new Iu(cd.flame,fd.flame),pixel:new Iu(cd.pixel,fd.pixel),ice:new Iu(cd.ice,fd.ice),bubble:new Iu(cd.bubble,fd.bubble),capsule:new Iu(cd.capsule,fd.capsule),wrapper:new Iu(cd.wrapper,fd.wrapper),metro:new Iu(cd.metro,fd.capsule),stitch:new Iu(cd.stitch,fd.flat),torn:new Iu(cd.torn,fd.flat),plain:new Iu(cd.plain,fd.flat)});function md(e,t){if(e.isControl)return``;let{text:n,style:r}=e;if(n.length===0||r===void 0)return n;let i=t.colorSystem===null?``:r.toSgrCodes(t.colorSystem),a=i.length>0?`\x1b[${i}m${n}\x1b[0m`:n,o=t.hyperlinks?r.link:void 0;return o===void 0?a:`${Hl(o)}${a}]8;;\\`}function hd(e,t){let n=[];for(let r of e)n.push(md(r,t));return n.join(``)}function gd(e,t){let n=t?.width??80,r={};t?.env!==void 0&&(r.env=t.env),t?.isTTY!==void 0&&(r.isTTY=t.isTTY);let i=t?.colorSystem,a=es(i===void 0?B.TRUECOLOR:i,r),o={colorSystem:t?.noColor?null:a.colorSystem,hyperlinks:t?.hyperlinks??a.hyperlinks},s={maxWidth:n,isTerminal:!1,asciiOnly:t?.asciiOnly??!1,theme:t?.theme,onStyleError:t?.onStyleError,highlight:t?.highlight,highlighter:t?.highlighter,colorSystem:o.colorSystem};return hd(e.render(s),o)}function _d(e,t,n){return e.nextChange?.(t,n)??t}function vd(e,t){return Object.assign((t,n)=>e(t,n),{nextChange:t})}var yd=class{renderable;effect;t;key;theme;constructor(e,t,n){if(this.renderable=e,this.effect=t,!Number.isFinite(n.t))throw RangeError(`Effected needs a finite t, got ${n.t}`);this.t=n.t,this.key=n.key,this.theme=n.theme}render(e){let t=this.renderable.render(e);return e.colorSystem===null?t:this._moved(t,e)}*_moved(e,t){let n=t.colorSystem??B.TRUECOLOR,r=xd(e,n,this.theme),i=Sd(r),a=wd(r,()=>i,n,this.theme),o=this.effect(this.t,a);yield*W.applyStyle(this._recolored(i,o,n),new H({nextChange:_d(this.effect,this.t,a)}))}*_recolored(e,t,n){for(let{segment:r,look:i,glyphs:a}of e){if(i===void 0){yield r;continue}let{style:e,wire:o,slots:s,pair:c}=i,{terminal:l}=c,u={fg:c.fg,bg:c.bg},d=[];for(let{glyph:e,cell:r}of a){let i=r===void 0?s:Ed(t(u,{...r,seed:this.seed(r.row,r.col),terminal:l,reverse:c.reverse}),c.reverse),a=d[d.length-1],f=a!==void 0&&jd(a.colors,i)?a.drawn:this.respec(o,s,i,n);a!==void 0&&Od(a.drawn,f)?(a.text+=e,a.cells+=R(e),a.colors=i):d.push({text:e,cells:R(e),colors:i,drawn:f})}if(d.every(e=>Od(e.drawn,o))){yield r;continue}let f=0;for(let t of d){let n=e.shiftedBy(f),r=Od(t.drawn,o)?n:n.add(H.fromColor(t.drawn.color,t.drawn.bgcolor));yield new W(t.text,r),f+=t.cells}}}measure(e){return jl.get(e,this.renderable)}static shows(e,t,n,r){let i=Ed(e,e.reverse),a=Dd(i,Ed(t,e.reverse),n,r);return Ed({fg:a.fg?.getTruecolor(r,!0)??i.fg,bg:a.bg?.getTruecolor(r,!1)??i.bg},e.reverse)}respec(e,t,n,r){let i=Dd(t,n,r,this.theme);return{color:i.fg??e.color,bgcolor:i.bg??e.bgcolor}}seed(e,t){return Number.parseInt(Rl(`${this.key}:${e}:${t}`),16)/4294967296}};const bd=V.default();function xd(e,t,n){return[...e].map(e=>{if(e.isControl)return{segment:e,look:void 0};let r=e.style??H.null(),i=r.drawnColors(t),a={fg:(i.color??bd).getTruecolor(n,!0),bg:(i.bgcolor??bd).getTruecolor(n,!1)},o=r.reverse===!0,s=Ed({fg:i.color?.isDefault??!0,bg:i.bgcolor?.isDefault??!0},o);return{segment:e,look:{style:r,wire:i,slots:a,pair:{...Ed(a,o),terminal:s,reverse:o}}}})}function Sd(e){let t=0,n=0;return e.map(({segment:e,look:r})=>{if(r===void 0)return{segment:e,look:r,glyphs:[]};let i=r.style.anchor,a=0;return{segment:e,look:r,glyphs:[...To(e.text)].map(e=>{let r=e===`
51
+ `?void 0:{row:t,col:n,anchor:i&&tl(i,a)};return[t,n]=e===`
52
+ `?[t+1,0]:[t,n+R(e)],a+=R(e),{glyph:e,cell:r}})}})}function Cd(e){return[e.underline,e.underline2,e.strike,e.overline,e.frame,e.encircle].some(e=>e===!0)}function wd(e,t,n,r){let i=r.backgroundColor.hex,a,o=()=>t().flatMap(({look:e,glyphs:t})=>{if(e===void 0)return[];let n=e.pair.bg.hex!==i||Cd(e.style);return t.flatMap(({glyph:e,cell:t})=>t!==void 0&&(e.trim()!==``||n)?[t]:[])}),s=e.flatMap(({segment:e,look:t})=>t!==void 0&&e.text.trim()!==``&&!nl(t.style.anchor,iu)?[t.pair]:[]),c=[...new Map(s.map(e=>[`${e.fg.hex}/${e.bg.hex}/${e.terminal.fg}/${e.terminal.bg}/${e.reverse}`,e])).values()],l=e=>c.flatMap(t=>t.terminal[e]?[]:[t[e].hex]);return{cells:()=>a??=o(),pairs:c,colors:new Set([...l(`fg`),...l(`bg`)]),fills:new Set(l(`bg`)),depth:n,theme:r}}function Td(e,...t){let n=new Set(t),r=e=>ou(e.anchor,n),i=({fg:e,bg:t})=>e||t,a=e=>({...e,cells:()=>e.cells().filter(e=>i(r(e)))});return vd((t,n)=>{let o=e(t,a(n));return(e,t)=>{let n=r(t);if(!i(n))return e;let a=o(e,t);return{fg:n.fg?a.fg:e.fg,bg:n.bg?a.bg:e.bg}}},(t,n)=>_d(e,t,a(n)))}function Ed(e,t){return t?{fg:e.bg,bg:e.fg}:e}function Dd(e,t,n,r){let i=t.bg.compositeOver(Bo),a=t.fg.compositeOver(i);return{fg:V.matchMove(e.fg,a,n,r,!0),bg:V.matchMove(e.bg,i,n,r,!1)}}function Od(e,t){return kd(e.color,t.color,!0)&&kd(e.bgcolor,t.bgcolor,!1)}function kd(e,t,n){return e===t||Ad(e,n)===Ad(t,n)}function Ad(e,t){return e?.getAnsiCodes(t).join(`;`)??``}function jd(e,t){return Md(e.fg,t.fg)&&Md(e.bg,t.bg)}function Md(e,t){return e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha}const Nd=(()=>{let e=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];return[...e,...e]})(),Pd=e=>e*e*e*(e*(e*6-15)+10),Fd=(e,t,n)=>e+n*(t-e);function Id(e,t,n,r){let i=e&15,a=i<8?t:n,o=i<4?n:i===12||i===14?t:r;return(i&1?-a:a)+(i&2?-o:o)}function Ld(e,t,n){let r=Math.floor(e),i=Math.floor(t),a=Math.floor(n),o=r&255,s=i&255,c=a&255;e-=r,t-=i,n-=a;let l=Pd(e),u=Pd(t),d=Pd(n),f=Nd[o]+s,p=Nd[f]+c,m=Nd[f+1]+c,h=Nd[o+1]+s,g=Nd[h]+c,_=Nd[h+1]+c;return Fd(Fd(Fd(Id(Nd[p],e,t,n),Id(Nd[g],e-1,t,n),l),Fd(Id(Nd[m],e,t-1,n),Id(Nd[_],e-1,t-1,n),l),u),Fd(Fd(Id(Nd[p+1],e,t,n-1),Id(Nd[g+1],e-1,t,n-1),l),Fd(Id(Nd[m+1],e,t-1,n-1),Id(Nd[_+1],e-1,t-1,n-1),l),u),d)}function Rd(e,t,n,r){let i=0,a=1,o=0;for(let s=0;s<r;s++){let r=2**s;i+=a*Ld(e*r,t*r,n*r),o+=a,a/=2}return i/o}function zd(e,t){let n=Math.sin(e*12.9898+t*78.233)*43758.5453;return n-Math.floor(n)}function Bd(e,t,n){let r=Math.min(1,Math.max(0,(n-e)/(t-e)));return r*r*(3-2*r)}const Vd=Array.from({length:48},(e,t)=>(t+1)/48);function Hd(e,t){return Math.min(Ho(e.fg,e.bg),4.5)-(t===B.TRUECOLOR?.01:0)}const Ud=[`fg`,`bg`];function Wd({pairs:e,depth:t,theme:n},r,i){let a=(e,t)=>e.terminal[t]?void 0:e[t].hex,o=new Map(e.flatMap(e=>Ud.flatMap(t=>{let n=a(e,t);return n===void 0?[]:[[n,e[t]]]}))),s=new Map([...r].filter(e=>!o.has(e)).map(e=>[e,1])),c=e=>Xs.fromRgba(o.get(e)).l;for(let l of[...r].filter(e=>o.has(e)).sort((e,t)=>c(t)-c(e))){let r=e.flatMap(e=>{let t=Ud.find(t=>a(e,t)===l);if(t===void 0)return[];let n=a(e,t===`fg`?`bg`:`fg`);return[[e,t,n===void 0?0:s.get(n)??0]]}),o=e=>r.every(([r,a,o])=>{let s=Hd(r,t),c=(t,n)=>Zd(i,r[t],(t===a?e:o)*n);return Vd.every(e=>{let i=yd.shows(r,{fg:c(`fg`,e),bg:c(`bg`,e)},t,n);return Ho(i.fg,i.bg)>=s})}),[c,u]=o(1)?[1,1]:[0,1];for(let e=0;e<20&&u-c>.001;e++){let e=(c+u)/2;[c,u]=o(e)?[e,u]:[c,e]}s.set(l,c)}return s}function Gd(e,t){let n=new WeakMap;return Yd(Jd(e,r=>{let i=t??r.colors,a=[Kd(r),`|`,...i].join(` `),o=n.get(r.theme)??new mo;return n.set(r.theme,o),o.get(a,()=>Wd(r,i,e.touch))}))}function Kd({depth:e,pairs:t}){return[e,...t.map(qd)].join(` `)}function qd({fg:e,bg:t,terminal:n,reverse:r}){return`${e.hex}/${t.hex}/${n.fg}/${n.bg}/${r}`}function Jd(e,t){return(n,r)=>{let i=t(r),a=e.field(n,r);return({fg:t,bg:n},r)=>{let o=Math.round(tf(a(r))*48)/48,s=(t,n)=>Zd(e.touch,t,(n?0:i.get(t.hex)??0)*o);return{fg:s(t,r.terminal.fg),bg:s(n,r.terminal.bg)}}}}function Yd(e){return vd((t,n)=>Xd(n.depth)?e=>e:e(t,n),(t,n)=>Xd(n.depth)?1/0:_d(e,t,n))}function Xd(e){switch(e){case B.DEFAULT:case B.STANDARD:case B.WINDOWS:return!0;case B.EIGHT_BIT:case B.TRUECOLOR:return!1}}function Zd(e,t,n){return n===0?t:e(t,n)}function Qd(e){if(!(Number.isFinite(e.seconds)&&e.seconds>0))throw RangeError(`curve: seconds must be a positive number of seconds, got ${e.seconds}`);if(!(e.swing>=0&&e.swing<=1))throw RangeError(`curve: swing must be in [0, 1], got ${e.swing}`)}const $d={shimmer:{seconds:109,ease:Yc.linear,swing:.9},pulse:{seconds:43,ease:Yc.linear,swing:.85},sparkle:{seconds:139,ease:Yc.linear,swing:.95},wheel:{seconds:907,ease:Yc.linear,swing:1},fade:{seconds:20,ease:Yc[`ease-in-out`],swing:1},dissolve:{seconds:30,ease:Yc[`ease-in-out`],swing:1}},ef={sun:new z(255,228,176),firefly:new z(222,245,140)},tf=e=>Math.min(1,Math.max(0,e));function nf(e,t,n){if(!(n>=0&&n<=1))throw RangeError(`blend: w must be in [0, 1]; got ${n}`);let r=Math.PI/180,i=(1-n)*e.c*Math.cos(e.h*r)+n*t.c*Math.cos(t.h*r),a=(1-n)*e.c*Math.sin(e.h*r)+n*t.c*Math.sin(t.h*r);return new Xs((1-n)*e.l+n*t.l,Math.hypot(i,a),Math.atan2(a,i)/r,e.alpha)}function rf(e){let t=Xs.fromRgba(e);return(e,n)=>{let r=Xs.fromRgba(e);return nf(r,new Xs(Math.max(r.l,t.l),t.c,t.h,t.alpha),n).toRgba()}}const af=(e,t)=>t*e[e.length-1][0];function of(e,t,n){let r=t/n,i=e.findIndex(([e])=>r<e);if(!(r>0)||i<0)return 0;let[a,o]=i===0?[0,0]:e[i-1],[s,c]=e[i];return n*(o+(c-o)*(1-Math.cos(Math.PI*(r-a)/(s-a)))/2)}function sf(e,t,n){let r=af(e,n),i=t=>{let r=0;for(let i=0;i<24;i++)r+=of(e,(i+.5)/24*t,n);return r*t};return i(Math.min(Math.max(t,0),r))/i(r)}const cf=[[.24,1],[.6,0]];function lf(e,t,n){Qd(e);let r=.9+.2*zd(n,3.1),i=t=>.1*Ld(t/(3*e.seconds),.5,.5+n),a=i(0);return{touch:rf(t),field:t=>{let o=r*t/e.seconds+i(t)-a,s=Math.floor(o),c=.7+.3*Bd(-.5,.5,Ld(s*.37,2.1,n)),l=.5-.5*Math.cos(2*Math.PI*(o-s)),u=e.swing*e.ease(c*l);return()=>u}}}const uf=e=>Math.abs(e)>=1?0:(1-e*e)**3;function df(e,t,n,r){Qd(e);let i=e.seconds,a=i/2,o=e=>Bd(-.4,.4,Ld(e/7,3.3,5.5+r)),s=.7,c=.51,l=.4,u=(e,n,u)=>{let d=o(e),f=(zd(e,7.5+r)<.35+.6*d)*(.3+.7*d*(.6+.4*zd(e,8.5+r))),p=i*u/80*(c+l*zd(e,5.5+r)),m=tf((n-(e+s*zd(e,6.5+r))*a)/p);return{strength:f,centre:m*u-t+.06*u*Math.sin(Math.PI*m)*Ld(m,2.7,e+r)}},d=(e,t)=>{let n=s+(c+l)*i*t/80/a,r=Math.floor(e/a),o=[];for(let i=Math.max(0,Math.ceil(r-n));i<=r;i++)o.push(u(i,e,t));return o},f=(e,t,n)=>Math.exp(-((Ld(e,t,n)/.8)**2));return{touch:rf(n),field:(n,i)=>{let[a,o]=_f(i.cells().map(e=>e.col)),s=d(n,o-a+1+2*t);return i=>{let o=0;for(let{strength:e,centre:n}of s)o=Math.max(o,e*uf((i.col-a-n)/t));let c=i.row+r,l=.8*Ld(i.col*.05,c*.3+1.3,n*.02),u=(f(i.col*.21+l,c*.9,n*.022)*f(i.col*.33+9.1-l,c*.7,n*.018+4.2))**2;return e.swing*e.ease(o*(.1+.6*u))}}}}function ff(e,t,n){Qd(e);let r=e.seconds,i=22.1,a=3.1,o=(e,t,i,a,o)=>{let s=e*4.9+t*31.7+.3+n,c=e+.5+.7*Ld(e*1.7+.2,.3+t*2.9,.5+n),l=i+zd(e+t*1013,.7+n)*r,u=Math.floor(l/r),d=zd(u,s+1)<.15?0:1,f=.5+.5*zd(u,s+2),p=zd(u,s+3)*(1-af(cf,f)),m=l/r-u-p;return{x:a+c*8+5*(2*zd(u,s+4)-1)+5*f*(2*zd(u,s+5)-1)*sf(cf,m,f)+1.5*Ld(s,.1,i*.035),y:o+t*3+.6*Ld(s,2.2,i*.035),glow:d*of(cf,m,f)}};return{touch:rf(t),field:(t,n)=>{let r=n.cells(),[s,c]=_f(r.map(e=>e.col)),[l,u]=_f(r.map(e=>e.row)),d=e=>(e-s)/8-.5,f=e=>(e-l)/3,[p,m]=[Math.ceil(d(s-i)),Math.floor(d(c+i))],[h,g]=[Math.ceil(f(l-a)),Math.floor(f(u+a))],_=Array.from({length:g-h+1},(e,n)=>Array.from({length:m-p+1},(e,r)=>o(p+r,h+n,t,s,l)));return t=>{let n=0,[r,o]=[Math.max(p,Math.ceil(d(t.col-i))),Math.min(m,Math.floor(d(t.col+i)))],[s,c]=[Math.max(h,Math.ceil(f(t.row-a))),Math.min(g,Math.floor(f(t.row+a)))];for(let e=s;e<=c;e++)for(let i=r;i<=o;i++){let r=_[e-h][i-p];n=Math.max(n,r.glow*uf(Math.hypot(t.col-r.x,2*(t.row-r.y))/5))}return e.swing*e.ease(n)}}}}function pf(e,t){return(n,r)=>{let{theme:i}=r,a=e(n,r),o=Xs.fromRgba(i.backgroundColor);return(e,n)=>{let r=t*(1-tf(a(n)));if(r===0)return e;let i=nf(Xs.fromRgba(e.bg),o,r);return{fg:nf(Xs.fromRgba(e.fg),i,r).toRgba(),bg:i.toRgba()}}}}function mf(e){let t=new Map;return n=>{let r=`${n.row}:${n.col}`,i=t.get(r)??tf(.5+1.1*Rd(n.col*.09+1.4*Ld(n.col*.035,n.row*.2+2.6,e+.5),n.row*.45,e,3));return t.set(r,i),i}}function hf(e,t){let n=t=>t>=e.seconds;return{effect:vd(t,e=>n(e)?1/0:e),done:n}}function gf(e,t){let n=new Map,r=e=>`${e.row}:${e.col}`;return i=>{let[a,o]=_f(i.map(t)),s=(o>a?.55:0)*e.seconds,c=el.once(0,e.seconds-s),l=e=>{let n=o>a?tf((t(e)-a)/(o-a)):0;return{along:n,progress:e=>c(e-n*s)}};for(let e of i){let t=r(e);n.set(t,n.get(t)??l(e))}return e=>n.get(r(e))??l(e)}}function _f(e){let t=e[0]??0,n=t;for(let r of e)t=Math.min(t,r),n=Math.max(n,r);return[t,n]}function vf(e,t){Qd(e);let n=gf(e,mf(1.7+t));return hf(e,pf((t,r)=>{let i=n(r.cells());return n=>e.ease(i(n).progress(t))},e.swing))}const yf={depth:.4,from:.5,to:.95,maskFrom:.35,maskTo:.75,late:.6};function bf(e,t){Qd(e);let n=mf(9.3+t),r=gf(e,mf(4.2+t)),{depth:i,from:a,to:o,maskFrom:s,maskTo:c,late:l}=yf;return hf(e,pf((t,u)=>{let d=r(u.cells());return r=>{let{along:u,progress:f}=d(r),p=e.ease(f(t)),m=tf((p-a)/(o-a)),h=i*Bd(s,c,n(r))*(1-l+l*u)*Math.sin(Math.PI*m)**2;return 1-p+h}},e.swing))}const xf=[211,337];function Sf(e,t){Qd(e);let n=e.seconds,r=e=>zd(Number.parseInt(e.slice(1),16)*1e-4,17.3+t),i=(e,n)=>Ld(n/xf[0],5.9+97*e,t)+.5*Ld(n/xf[1],2.3+89*e,t+7.1),a=(t,a)=>{let o=r(t);return 360*a/n+e.swing*180*((i(o,a)-i(o,0))/1.5)},o=new WeakMap;return Yd((e,t)=>{let{colors:n,fills:r,depth:i,theme:s}=t,c=(e,t)=>!e&&n.has(t.hex),l=(e,t,n)=>r.has(e.hex)||!n?e.hex:t.hex,u=(e,t)=>`${e.hex} ${t}`,d=o.get(s)??new mo;o.set(s,d);let f=d.get(Kd(t),()=>Of(t.pairs,i,(e,t)=>{let n=t===`fg`?`bg`:`fg`;return c(e.terminal[t],e[t])?u(e[t],l(e[t],e[n],c(e.terminal[n],e[n]))):void 0})),p=jf(i,s),m=new Map,h=(t,n)=>{let r=Cf(t,a(n,e));return Mf(r.looks,t,i===B.TRUECOLOR?r.either.map(kf):p,f.get(u(t,n))??Tf)},g=(e,t)=>{let n=m.get(u(e,t))??h(e,t);return m.set(u(e,t),n),n};return(e,t)=>{let n={fg:c(t.terminal.fg,e.fg),bg:c(t.terminal.bg,e.bg)},r=(e,t,n,r)=>t?g(e,l(e,n,r)):e;return{fg:r(e.fg,n.fg,e.bg,n.bg),bg:r(e.bg,n.bg,e.fg,n.fg)}}})}function Cf(e,t){if(t===0)return{looks:e,either:[e]};let n=Xs.fromRgba(e),r=Vo(e),i=e=>new Xs(e,n.c,n.h+t,n.alpha).toRgba(),[a,o]=[0,1];for(let e=0;e<24;e++){let e=(a+o)/2;[a,o]=Vo(i(e))<r?[e,o]:[a,e]}return{looks:i(o),either:[i(a),i(o)]}}const wf=e=>Math.log(Ho(e,new z(0,0,0))),Tf={lo:-1/0,hi:1/0},Ef={lo:1/0,hi:-1/0},Df=Math.log(1.031);function Of(e,t,n){let r=new Map;for(let i of e.filter(e=>Hd(e,t)>1)){let e=(Math.log(Ho(i.fg,i.bg))-Math.log(Hd(i,t)))/Ud.filter(e=>n(i,e)!==void 0).length;for(let t of Ud){let a=n(i,t);if(a===void 0)continue;let[o,s]=[wf(i[t]),wf(i[t===`fg`?`bg`:`fg`])],{lo:c,hi:l}=r.get(a)??Tf;r.set(a,o>=s?{lo:Math.max(c,o-e),hi:l}:{lo:c,hi:Math.min(l,o+e)})}}return new Map([...r].map(([e,{lo:t,hi:n}])=>[e,n-t<Df?Ef:{lo:t,hi:n}]))}const kf=e=>({color:e,looks:Xs.fromRgba(e),stop:wf(e)}),Af=new WeakMap;function jf(e,t){let n=V.indexed(e,t),r=Af.get(n)??n.map(([,e])=>kf(e));return Af.set(n,r),r}function Mf(e,t,n,{lo:r,hi:i}){return Nf(e,[kf(t),...n.filter(({stop:e})=>e>=r&&e<=i)]).color}function Nf(e,t){let n=Xs.fromRgba(e),r;for(let e of t){let t=n.deltaE(e.looks);(r===void 0||t<r[1])&&(r=[e,t])}return r?.[0]}const Pf={loops:{shimmer:(e,t=$d.shimmer)=>Gd(df(t,24,ef.sun,e.z)),pulse:(e,t=$d.pulse)=>Gd(lf(t,ef.sun,e.z)),sparkle:(e,t=$d.sparkle)=>Gd(ff(t,ef.firefly,e.z)),wheel:(e,t=$d.wheel)=>Sf(t,e.z)},transitions:{fade:(e,t=$d.fade)=>vf(t,e.z),dissolve:(e,t=$d.dissolve)=>bf(t,e.z)}};function Ff(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const If={segments:[],width:0},Lf={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Rf(e,t){return Lf[e](t)}function zf(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 Bf=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=>Ff(cu(t),e)),o=n=>i?Ff(su(i,null,t[n],{index:n}),e):If,s=n=>i?Ff(su(i,t[n],null,{index:n+1}),e):If,c=(n,r)=>i?Ff(su(i,t[n],t[r],{index:r}),e):If,l=[],u=null,d=r>0?{segments:[new W(` `.repeat(r))],width:r}:If;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=Rf(p,i),o=zf(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new W(` `.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 W(` `.repeat(e)))}yield*t.blocks[e].segments}yield W.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=Ff(t[i],e).width,o=this.joiner?Ff(su(this.joiner,null,t[i],{index:i}),e).width:0,s=this.joiner?Ff(su(this.joiner,t[i],null,{index:i+1}),e).width:0;n=Math.max(n,a+o+s),r+=a,i>0&&(r+=this.gap*2,this.joiner&&(r+=Ff(su(this.joiner,t[i-1],t[i],{index:i}),e).width))}return this.joiner&&(r+=Ff(su(this.joiner,null,t[0],{index:0}),e).width,r+=Ff(su(this.joiner,t[t.length-1],null,{index:t.length}),e).width),{minimum:n,maximum:r}}};function Vf(e){return e<32||e===127||e>=128&&e<=159}function Hf(e){let t=``;for(let n of e)t+=Vf(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function Uf(e,t){let n=Hf(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const Wf=`\x1B[38;2;255;255;255m`,Gf=`\x1B[48;2;200;40;40m`;function Kf(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 qf={fg:Kf(Wf),bg:Kf(Gf)},Jf={fg:Kf(`\x1B[38;2;0;0;0m`),bg:Kf(`\x1B[48;2;220;160;40m`)};function Yf(){let e=new WeakMap;return(t,n,r)=>{let i=e.get(t);i===void 0&&(i=new Map,e.set(t,i));let a=i.get(n);if(a!==void 0)return a;let o=r();return i.set(n,o),o}}const Xf=[`primary`,`secondary`,`accent`],Zf=[`darken-3`,`darken-2`,`darken-1`,`base`,`lighten-1`,`lighten-2`,`lighten-3`],Qf={"darken-3":`-darken-3`,"darken-2":`-darken-2`,"darken-1":`-darken-1`,base:``,"lighten-1":`-lighten-1`,"lighten-2":`-lighten-2`,"lighten-3":`-lighten-3`,muted:`-muted`},$f=(e,t)=>`${e}${Qf[t]}`,ep=(e,t,n,r)=>Np(e,n,r),tp=(e,t,n,r)=>Fp(e,Cp(e,`text-${t}`),n,r),np=e=>({tones:[Zf[e],Zf[e+2],Zf[e+1]],text:ep}),rp={muted:{tones:[`muted`],text:tp},deepest:np(0),deeper:np(1),middle:np(2),brighter:np(3),brightest:np(4)},ip=1/0,ap={accent:{hues:[`secondary`,`accent`],run:ip},duo:{hues:[`primary`,`secondary`],run:ip},mono:{hues:[`primary`],run:ip},alt:{hues:[`secondary`,`accent`],run:3}},op=e=>e.variation.hues.flatMap(t=>e.shade.tones.map(e=>({hue:t,shade:e}))),sp=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},cp=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],lp=e=>typeof e==`string`&&cp.includes(e),up={"van-der-corput":sp,"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},dp=e=>up[e??`van-der-corput`];function fp(e){let t=0,n=1;for(let{index:r,count:i,distribution:a}of e)t+=a(r,i)*n,n*=.37;return t%1}const pp=(e,t)=>Math.floor(e*t),mp=(e,t)=>Math.round(e*t)%t;function hp(e){return e===void 0?0:e.distribution(e.index,e.count)}function gp(e,t,n){let r=e[n(hp(t),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function _p(e){let t=e.findIndex(e=>e.axis===`cell`),n=t===-1?e:e.slice(0,t);return{row:n.at(-1),cell:e[n.length]}}const vp=(e,t)=>pp(hp(t),e.hues.length);function yp(e,t){let{row:n,cell:r}=_p(t);return bp(e,n,r)}function bp(e,t,n){let{hues:r,run:i}=e.variation,a=n===void 0?0:Math.floor(n.index/i),o=r[(vp(e.variation,t)+a)%r.length];if(o===void 0)throw Error(`decorEntryFor: empty variation`);return{hue:o,shade:gp(e.shade.tones,n,mp)}}function xp(e,t){let{row:n,cell:r}=_p(t),i=r===void 0?[void 0]:Array.from({length:r.count},(e,t)=>({...r,index:t}));return[...new Map(i.map(t=>bp(e,n,t)).map(e=>[$f(e.hue,e.shade),e])).values()].sort((e,t)=>Xf.indexOf(e.hue)-Xf.indexOf(t.hue)||Sp.indexOf(e.shade)-Sp.indexOf(t.shade))}const Sp=[...Zf,`muted`];function Cp(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}const wp=(e,t)=>Cp(e,$f(t.hue,t.shade)),Tp=2.2,Ep=(e,t)=>t.map(t=>wp(e,t)),Dp=e=>t=>lc(t,e),Op=Dp(B.TRUECOLOR);function kp(e,t,n,r){return Ap(e,`${t}|${n.map(e=>e.hex).join(`+`)}|${r}`,()=>jp(e,t,n,r))}const Ap=Yf();function jp(e,t,n,r){let i=n.map(Op),a=Cp(e,t),o=new z(0,0,0),s=new z(255,255,255),c=(e,t)=>Xs.fromRgba(a).mixAxes(Xs.fromRgba(e),{l:t,c:0,h:0,alpha:0}).toRgba(),l=e=>Array.from({length:12},(t,n)=>c(e,(n+1)/12)),u=l(o),d=[a,...l(s).flatMap((e,t)=>[e,u[t]])],f=e=>{let t=Dp(e),n=i.map(t);return e=>Math.min(1/0,...n.map(n=>Ho(t(e),n)))},p=f(B.TRUECOLOR),m=f(r),h=e=>cc(e,r,(e,t)=>i.every(n=>Ho(e,t(n))>=Tp)),g=e=>p(e)>=2.2&&h(e)!==void 0,_=(e,t)=>{let n=n=>Ho(Op(n),e)-Ho(Op(n),t),r=n(a)<0?o:s,i=r===o?1:-1,[l,u]=[0,1];for(let e=0;e<40;e++){let e=(l+u)/2;i*n(c(r,e))>0?u=e:l=e}return[c(r,l),c(r,u)]},v=()=>{let e=[...i].sort((e,t)=>Vo(e)-Vo(t));return e.slice(1).flatMap((t,n)=>_(t,e[n]))},y=d.find(g)??[...d,...v()].reduce((e,t)=>m(t)>m(e)?t:e),b=h(y)??y,x=m(b);return{anchor:y,state:b,short:x>=2.2?null:x}}const Mp=4.5;function Np(e,t,n){return Pp(e,`${t.hex}|${n}`,()=>{let r=oc(t);return Fp(e,[`background`,`foreground`].map(t=>Cp(e,t)).reduce((e,t)=>Ho(r,t)<Ho(r,e)?t:e),t,n)})}const Pp=Yf();function Fp(e,t,n,r){return Ip(e,`${t.hex}|${n.hex}|${r}`,()=>sc(t,n,Mp,r))}const Ip=Yf();function Lp(e,t,n){return t.depth===0?Ep(e,t.ground):Rp(e,t,n)}const Rp=(e,t,n)=>t.depth===0?[]:[Yp(e,{...t,depth:t.depth-1},n).plane],zp=(e,{short:t},n)=>t===null?[]:[`theme "${e.name}": no open-trigger colour stands ${Tp}:1 off every cell beside it — the nearest stands ${t.toFixed(2)}:1 as drawn at depth ${B[n]}; another shade or variation clears it`],Bp=(e,t,n)=>t>=Wp.triggerPlane?[]:[`theme "${e.name}": an open band's plane stands ΔE ${t.toFixed(3)} off the trigger that opened it as drawn at depth ${B[n]}, under the ${Wp.triggerPlane} that tells them apart; another style clears it`],Vp={base:.42,perDepth:.14,cap:.75},Hp={floor:.12,span:.8};function Up(e,t){return Xf[(Xf.indexOf(e)+t)%Xf.length]}const Wp={triggerPlane:.1,nestedPlane:.035};function Gp(e,t,n){return Kp(e,`${qp(t)}|${n}`,()=>{let r=kp(e,Up(t.hue,t.depth),Lp(e,t,n),n),{state:i}=r,a=$p(e,t,i,n),o=cc(Yp(e,t,n).plane,n,(e,t)=>a.every(n=>n(e,t)));if(o===void 0)throw Error(`palette "${e.name}": the ${t.hue} band at depth ${t.depth} cannot keep its floors on the colours drawn at depth ${B[n]}`);let s=Dp(n);return{state:i,plane:o,shortfalls:n===B.DEFAULT?[]:[...zp(e,r,n),...Bp(e,Jp(s(i),s(o)),n)]}})}const Kp=Yf(),qp=({hue:e,depth:t,ground:n})=>`${e}|${t}|${n.map(e=>$f(e.hue,e.shade)).join(`+`)}`,Jp=(e,t)=>Xs.fromRgba(e).deltaE(Xs.fromRgba(t));function Yp(e,t,n){return Xp(e,`${qp(t)}|${n}`,()=>Zp(e,t,n))}const Xp=Yf();function Zp(e,t,n){let{anchor:r}=kp(e,Up(t.hue,t.depth),Lp(e,t,n),n),i=Math.min(Vp.cap,Vp.base+Vp.perDepth*t.depth),a=(t,n)=>xs(r,Cp(e,t),n),o=Rp(e,t,n),s=e=>Jp(Op(r),Op(e))>=Wp.triggerPlane&&o.every(t=>Jp(Op(t),Op(e))>=Wp.nestedPlane),c=a(`background`,i);return{state:r,plane:[c,a(`foreground`,i),a(`background`,Vp.cap),a(`foreground`,Vp.cap),...Qp.toSorted((e,t)=>Math.abs(e-i)-Math.abs(t-i)).flatMap(e=>[a(`background`,e),a(`foreground`,e)])].find(s)??c}}const Qp=Array.from({length:12},(e,t)=>(t+1)/12);function $p(e,t,n,r){let{hue:i,depth:a,ground:o}=t,s=t=>Yp(e,{hue:i,depth:t,ground:o},r).state,c=t=>Yp(e,{hue:i,depth:t,ground:o},r).plane,l=c(a),u=(e,t)=>Jp(Op(l),Op(t))>=e?e:0,d=kp(e,Up(i,a+1),Lp(e,{hue:i,depth:a+1,ground:o},r),r),f=Ho(Op(l),Op(d.anchor))>=2.2?Tp:0,p=(e,t)=>(n,r)=>Jp(n,r(e))>=t;return[p(n,u(Wp.triggerPlane,s(a))),(e,t)=>Ho(e,t(d.state))>=f,...a>0?[p(Gp(e,{hue:i,depth:a-1,ground:o},r).plane,u(Wp.nestedPlane,c(a-1)))]:[]]}function em(e,t,n,r){let i=Gp(e,t,r),a=Yp(e,t,r),o=e=>xs(a.plane,a.state,e),s=Hp.floor+Hp.span*fp(n),c=Hp.floor+Hp.span/2,l=(e,t)=>e.hex!==t(i.plane).hex&&e.hex!==t(i.state).hex;for(let e=0;e<=12;e++){let t=cc(o(s+(c-s)*e/12),r,l);if(t!==void 0)return t}return o(s)}const tm=e=>({kind:`bar`,decor:e,address:[]}),nm=(e,t)=>({...e,address:[...e.address,t]}),rm=e=>({kind:`band`,band:e,address:[]});function im(e,t,n){switch(t.kind){case`bar`:{let{decor:r,address:i}=t,a=yp(r,i),o=wp(e,a),s;return{tint:o,text:r.shade.text(e,a.hue,o,n),disclosure:{hue:`accent`,depth:0,get ground(){return s??=xp(r,i)}}}}case`band`:{let{band:r,address:i}=t,a=em(e,r,i,n);return{tint:a,text:Np(e,a,n),disclosure:{...r,depth:r.depth+1}}}}}const am=new Map([[`dark`,`textual-dark`],[`light`,`textual-light`]]);function om(e){let t=typeof e==`string`?am.get(e):void 0;return t===void 0?``:` — "${e}" was retired; write "${t}", the same palette`}const sm=`textual-dark`;function cm(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function lm(){return Ac()}function um(){return[`bar`,...lm()]}let dm;function fm(e){return dm??=new Set(um()),dm.has(e)}function pm(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return cm(e===void 0?null:a(e),t,a(n??r),r,a)}const mm=[`style`,`palette`,`effect`];function hm(e){return e!==void 0&&e.includes(`{{`)}function gm(e,t,n,r,i){let a=hm(n)?{kind:`expression`,source:n}:i(n??r.name);return cm(e===void 0?null:i(e),t,a,r,i)}function _m(e,t){return e.kind===`decided`?e:t(e.source)}const vm=`none`;function ym(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function bm(e,t){return ym(e,t)??ym(`none`,t)??{kind:`decided`,name:`none`,value:zs}}function xm(e,t,n,r){return gm(e,t,n,bm(vm,r),e=>ym(e,r))}const Sm=`none`,Cm={style:vm,palette:sm,effect:Sm};function wm(e,t,n){return`${e} rendered "${Cm[t]}": ${n}`}const Tm=Object.freeze([Sm,...Object.keys(Pf.loops)]),Em=Object.freeze([`bar`,...Tm]);function Dm(e){let t=Tm.find(t=>t===e);return t===void 0?null:{kind:`decided`,name:e,value:t}}function Om(e){return Dm(e)??{kind:`decided`,name:`none`,value:`none`}}function km(e,t,n){return gm(e,t,n,Om(Sm),Dm)}const Am=Object.freeze(Object.keys(pd));function jm(e){return Am.includes(e)}const Mm=[`powerline`,`capsule`,`plain`];function Nm(e){return Mm.includes(e)}function Pm(e,t,n){return cm(e,t,n,`powerline`,e=>jm(e)?e:null)}const Fm=[`unicode`,`ascii`];function Im(e){return[...e].every(e=>e.codePointAt(0)<=127)}const Lm=`unicode`,Rm=[`truecolor`,`256`,`ansi`,`none`];function zm(e){return ts(e)??B.DEFAULT}const Bm=Object.keys(ap);function Vm(e){return Bm.includes(e)}function Hm(e,t,n){return cm(e,t,n,`accent`,e=>Vm(e)?e:null)}const Um=Object.keys(rp);function Wm(e){return Um.includes(e)}function Gm(e,t,n){return cm(e,t,n,`middle`,e=>Wm(e)?e:null)}const Km=`true`,qm=`false`,Jm=[Km,qm],Ym={min:0,max:16};function Xm(e){return e===`true`?!0:e===`false`?!1:null}function Zm(e,t){let n=Number(e);return Number.isInteger(n)&&String(n)===e&&n>=t.min&&n<=t.max?n:null}function Qm(e){return Zm(e,Ym)}function $m(e,t,n){return cm(e,t,n,!0,Xm)}function eh(e,t,n){return cm(e,t,n,!0,Xm)}function th(e,t,n){return cm(e,t,n,!1,Xm)}function nh(e,t,n){return cm(e,t,n,1,Qm)}const rh=new ul({"strip.separator":`default`,"strip.rail":`default`});function ih(e){return rh.resolve(e)}const ah={kind:`still`},oh=Symbol(`bar`);function sh(e){return e.name!==Sm}function ch(e){return(t,n)=>{let r=e.map(({t:e,effect:t})=>t(e,n));return(e,t)=>r.reduce((e,n)=>n(e,t),e)}}const lh=zc;function uh(e,t){let n=new Ss(t,lh.foregroundColor,lh.ansiColors,lh.palette);return(t,r)=>e(t,{...r,theme:n})}function dh(e,t){return(n,r)=>Td(()=>e(n,r),...t)(n,r)}function fh(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return t/4294967296}const ph=4096;var mh=class{inForce=null;placements=new Map;made=new Map;drawn=null;frame={effect:Sm,t:0,made:0,reused:0,own:[],basis:`off`,revision:0,fades:[],leaves:[]};constructor(e){this.key=e}lastFrame(){return this.frame}get heldCount(){let e=[...this.drawn?.placements.values()??[]].filter(({passage:e})=>e!==null).length;return[...this.made.values()].reduce((e,t)=>e+t.size,e)}motion(e,t,n){let r=this.inForce?.name===e?this.inForce:{name:e,since:t},i={scope:oh,name:e,t:t-r.since},a=this.placements,o=new Map,s=this.made,c=new Map,l=[],u=this.drawn,d=n.transitions?u!==null&&u.source.config===n.source.config&&u.source.preset===n.source.preset&&u.source.revision===n.source.revision&&u.source.width===n.source.width?`compared`:`fresh`:`off`,f=d===`compared`?u.placements:null,p=new Map,m=[],h=[],g={effect:e,t:i.t,made:0,reused:0,own:l,basis:d,revision:n.source.revision,fades:m,leaves:h},_=(e,n,{ground:r})=>{let i=Pf.transitions[e]({z:fh(`${this.key}@${n}`)*ph});return{name:e,since:t,transition:{effect:uh(i.effect,r),done:e=>i.done(e)}}},v=({since:e,transition:n})=>n.done(t-e),y=(e,t,n)=>({drawing:t,passage:f===null?null:n===void 0||n.passage?.name===`dissolve`?_(`fade`,e,t):n.passage!==null&&!v(n.passage)?n.passage:null}),b=(e,t)=>{if(t===void 0||t.drawing.own.length===0)return;if(t.passage?.name===`dissolve`)return v(t.passage)?void 0:t;let r={...t.drawing,own:t.drawing.own.map(n.hold)};return{drawing:r,passage:_(`dissolve`,e,r)}},x=(e,r)=>{if(p.has(e))throw Error(`placement "${e}" was reached twice in one frame`);let i=f?.get(e),{drawing:a,deeper:o}=n.returned(e,r),s=a===null?b(e,i):y(e,a,i);return s===void 0?r:(p.set(e,s),s.passage!==null&&(s.passage.name===`fade`?m:h).push({placement:e,t:t-s.passage.since}),a===null?[...s.drawing.own,...o]:r)},S=(e,n)=>{let r=o.get(e)??a.get(e),i=r?.name===n?r:{name:n,since:t},s=t-i.since;return o.has(e)||(o.set(e,i),l.push({placement:e,effect:n,t:s})),{scope:e,name:n,t:s}},C=(e,t)=>{let n=c.get(e)??new Map;c.set(e,n);let r=n.get(t.scope);if(r!==void 0)return r.effect;let i=s.get(e)?.get(t.scope),a=i?.name===t.name,o=fh(t.scope===oh?e:`${e}@${t.scope}`),l=a?i.effect:Pf.loops[t.name]({z:o*ph});return g[a?`reused`:`made`]++,n.set(t.scope,{name:t.name,effect:l}),l},ee=e=>{let t=new Map;for(let{owner:n,placement:r}of e){let e=r.effect===`bar`?i:S(r.id,r.effect),a=t.get(e.scope);a===void 0?t.set(e.scope,{...e,owners:[n]}):a.owners.push(n)}return[...t.values()]},te=e=>{let n=new Map;for(let{owner:t,placement:r}of e){let e=n.get(r.id);e===void 0?n.set(r.id,[t]):e.push(t)}return[...n].flatMap(([e,n])=>{let r=p.get(e)?.passage??null;return r===null?[]:[{t:t-r.since,effect:Td(r.transition.effect,...n)}]})};return{placed:d===`off`?(e,t)=>t:x,row:(e,t)=>{let n=(t.some(e=>e.placement.effect!==`bar`)?ee(t):[{...i,owners:void 0}]).filter(sh),r=te(t);if(n.length===0&&r.length===0)return ah;let a=`${this.key}#${e}`;return{kind:`moving`,wrap:e=>new yd(e,ch([...n.map(e=>{let t=C(a,e);return{t:e.t,effect:e.owners===void 0?t:dh(t,e.owners)}}),...r]),{t:i.t,key:a,theme:lh})}},drawn:()=>{this.inForce=r,this.placements=o,this.made=c,this.drawn=d===`off`?null:{source:n.source,placements:p},this.frame=g}}}},hh=class{sessions=new Map;constructor(e=256){this.maxSessions=e}of(e){let t=this.sessions.get(e)??new mh(e);this.sessions.delete(e),this.sessions.set(e,t);for(let e of this.sessions.keys()){if(this.sessions.size<=this.maxSessions)break;this.sessions.delete(e)}return t}getStats(){let e=0;for(let t of this.sessions.values())e+=t.heldCount;return{sessions:this.sessions.size,effects:e}}};function gh(e,t){return gd(e,{...t,theme:rh,onStyleError:e=>{throw e}})}const _h=new Map;function vh(e){let t=_h.get(e);if(t!==void 0)return t;let n=t=>{let n=t.seam.map(t=>`cap`in t?t:{...t,glyph:e});return{seam:n,divider:n}},{seam:r,caps:i}=pd.plain,a=new Iu({glyph:n(r.glyph),ascii:Im(e)?n(r.ascii):r.ascii},i);return _h.set(e,a),a}function yh(e,t){return e===`plain`&&t!==void 0?vh(t):pd[e]}const bh=e=>({asciiOnly:e===`ascii`}),xh=new Map;function Sh(e){let t=JSON.stringify([e.endcaps,e.charset,e.separator??null]),n=xh.get(t);if(n!==void 0)return n;let r=yh(e.endcaps,e.separator),i=e=>new G(`x`,{end:``,overflow:`ignore`,style:new H({bgcolor:e})}),a=t=>new G(gh(new lu(t,r),{colorSystem:null,...bh(e.charset)}).replace(/\n$/,``)).cellLength,o=a([i(`#101010`)]),s={chrome:o-1,seam:a([i(`#101010`),i(`#202020`)])-o-1};return xh.set(t,s),s}function Ch(e){return Sh(e).chrome}function wh(e){return Sh(e).seam}const Th=/[\u{E000}-\u{F8FF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu;function Eh(e){return[...new Set(e.match(Th)??[])].join(``)}function Dh(e){let t=yh(e.endcaps,e.separator),n=e=>new G(`x`,{end:``,style:new H({bgcolor:e})});return Eh(gh(new lu([n(`#101010`),n(`#202020`),n(`#202020`)],t),{colorSystem:null,...bh(e.charset)}))}function Oh(e,t,n=ah){if(e.length===0)return``;let r=yh(t.endcaps,t.separator),i=t.wrap&&Number.isFinite(t.width),a={colorSystem:t.colorCompatibility,...bh(t.charset),...i?{width:t.width}:{}},o=i?new Bf([...e],{joiner:r}):new lu([...e],r),s=gh(n.kind===`still`?o:n.wrap(o),a);if(!s.endsWith(`
53
+ `))throw Error(`renderStripCells: rich-js strip output did not end its last line`);return s.slice(0,-1)}function kh(e){return Math.min(20,e??20)}const Ah={heading:`ERROR`,glyph:`⚠`,colors:qf},jh={heading:`WARNING`,glyph:`⚠`,colors:Jf},Mh={heading:`UPDATE`,glyph:`⬆`,colors:Jf};function Nh(e,t){return{text:Hf(e),link:t}}function Ph(e,t,n){let[r,...i]=[Fh(e,Ah,Cn),t,Fh(n,jh,wn)].flat();return r===void 0?null:{channels:[r,...i]}}function Fh(e,t,n){let r=Gn([{verb:n,args:[e]}]),[i,...a]=e.split(/\r\n|\r|\n/).map(e=>Nh(e,r)).filter(e=>e.text!==``).map(e=>[e]);return i===void 0?[]:[{severity:t,message:e,lines:[i,...a]}]}function Ih(e){return e.channels.map(e=>`${e.severity.heading}\n${e.message}\n`).join(`
54
+ `)}function Lh(e,t,n,r){if(t===null)return e;let i=Rh(r),a=t.channels.flatMap(e=>zh(e,i)),o=n.failedConfigFile!==null||a.length>r.rowCap,s=a.slice(0,r.rowCap-Number(o)),c=o?[Bh(t,n,a.length-s.length,i)]:[],l=[...s,...c].join(`
55
+ `);return e?`${l}\n${e}`:l}function Rh(e){return{endcaps:`plain`,separator:``,width:e.width,wrap:!0,padding:0,charset:`unicode`,colorCompatibility:e.colorCompatibility}}function zh(e,t){let n=new H({bgcolor:e.severity.colors.bg,color:e.severity.colors.fg}),r=go(Math.max(2,t.width-1)),i=(e,t)=>new G(`${e} `,{style:t,end:``,overflow:`ignore`});return e.lines.flatMap((a,o)=>Oh([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=>xo(e,r)).map(e=>i(e,t))})],t).split(`
56
+ `))}function Bh(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new H({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new G(e,{style:t,end:``,overflow:`ignore`}),l=n>0?[c(`${n} more rows · `,s),a.kind===`file`?c(`open full text`,s.withLink(re(a.path).href)):c(`full text unavailable: ${Hf(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(Hf(o),s.withLink(re(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=G.fromFragments([...d,...p]).truncate(r.width);return m.overflow=`ignore`,Oh([m],r)}const Vh=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function Hh(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function Uh(e,t){return r.readdirSync(t).filter(Vh).sort().flatMap(n=>{let i=l.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?Uh(e,i):[[l.relative(e,i).split(l.sep).join(`/`),Hh(i,a)]]})}function Wh(e){let t=ie.createHash(`sha256`);for(let[n,r]of Uh(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const Gh=e=>e.slice(0,7);function Kh(e){return l.dirname(l.dirname(e))}function qh(){return{version:Et,digest:`4019d43ce592acad310f91dfc474319823d850a7b5516ce40d0b57dc9a84c7df`}}function Jh(e){let t=JSON.parse(r.readFileSync(l.join(e,`package.json`),`utf8`)),n=typeof t==`object`&&t?t.version:void 0;if(typeof n!=`string`)throw Error(`${l.join(e,`package.json`)} has no version string`);return n}function Yh(e,t){try{let n=Kh(ne(e)),i=l.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=Wh(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:Jh(n),digest:o},running:a}}catch(e){return{kind:`unchecked`,reason:e.message}}}var K=class extends Error{constructor(e){super(e),this.name=`BadVerbArgs`}};const Xh=new Map;function Zh(e){let t=$h(e);if(t===null)throw Error(`Palette "${e}" did not resolve in the theme registry — allowed names and the registry are inconsistent`);return t}function Qh(e,t){return e===`bar`?t:Zh(e)}function $h(e){let t=Xh.get(e);if(t!==void 0)return t;let n=jc(e);return n===null?null:(Xh.set(e,n),n)}function eg(e,t){return tg(e,`${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,()=>Uc(e,t))}const tg=Yf();function ng(e){let t=$h(e);return t===null?null:{kind:`decided`,name:e,value:t}}function rg(e,t,n){let r=ng(e);return r===null?(n(wm(t,`palette`,`"${e}" names no installed theme${om(e)}`)),ag()):r}function ig(e,t,n){return gm(e,t,n,ag(),ng)}function ag(){return{kind:`decided`,name:sm,value:Zh(sm)}}const og=[`vertical`,`horizontal`],sg={vertical:`row`,horizontal:`cell`};function cg(e){return e.id??e.name}function lg(e){return[...fg(e)].flatMap(e=>e.kind===`segment`?[cg(e)]:[])}function ug(e,t){if(!t.has(e))return e;let n=2;for(;t.has(`${e}-${n}`);)n++;return`${e}-${n}`}function dg(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*fg(e){yield e;for(let t of gg(e))yield*fg(t)}const pg=(e,t)=>`${e}.children[${t}]`,mg=e=>`${e}.opens.body`;function*hg(e,t){if(yield[e,t],e.kind===`container`)for(let[n,r]of e.children.entries())yield*hg(r,pg(t,n));else e.opens!==void 0&&(yield*hg(e.opens.body,mg(t)))}function gg(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}const _g=[`shade`,`variation`,`style`];function vg(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const yg=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function bg(e){return e.kind===`file`||e.kind===`shell`}const xg=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],Sg=`theme`,Cg=`effect`,wg=[Sg,Cg];function Tg(e){return{...e.settings,[Sg]:{label:Sg,domain:`theme`,default:e.palette??`bar`},[Cg]:{label:Cg,domain:Em,default:`bar`}}}function Eg(e){let t=e?.domain;return typeof t==`object`&&`min`in t?t:void 0}function Dg(e,t){return Object.entries(e).flatMap(([n,r])=>{let i=Eg(r)?.atLeast;if(i===void 0)return[];let a=t[n],o=t[i];return a>=o?[]:[{setting:n,message:`"${n}" (${a}) is below "${i}" (${o}) — ${r.label} must be at least ${e[i].label}`}]})}function Og(e,t){let{domain:n}=e;return n===`bool`?typeof t==`boolean`:n===`theme`?typeof t==`string`&&fm(t):`min`in n?typeof t==`number`&&Number.isInteger(t)&&t>=n.min&&t<=n.max:typeof t==`string`&&n.includes(t)}function kg(e){return String(e)}function Ag(e,t){let{domain:n}=e;if(typeof n==`object`&&`min`in n)return Zm(t,n)??void 0;let r=n===`bool`?t===`true`?!0:t===`false`?!1:t:t;return Og(e,r)?r:void 0}function jg(e,t,n,r){let i=e.settings?.[t]??n.default,a=e.drafts?.[t],o=a===void 0?null:r(a);return(o===null?void 0:Ag(n,o))??i}function Mg(e){let{domain:t}=e;return t===`bool`?`true or false`:t===`theme`?`"bar" (the bar's own theme) or an installed theme name`:`min`in t?`an integer from ${t.min} to ${t.max}`:`one of ${t.map(e=>JSON.stringify(e)).join(`, `)}`}const Ng=[`left`,`center`,`right`],Pg=[`right`,`left`,`middle`],Fg=/^[A-Za-z_][A-Za-z0-9_]*$/;function Ig(e){return`#${e+1}`}const Lg={rows:{}};function Rg(e){return`rows`in e}function zg(e){return Object.fromEntries(e.map((e,t)=>[Ig(t),e]))}function Bg(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:zg(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:zg([n])}}function Vg(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function Hg(e){return Rg(e)?Vg(e):e}function*Ug(e,t){if(!Rg(e)){yield*hg(e,t);return}yield[Vg(e),t];for(let[n,r]of Object.entries(e.rows))yield*hg(r,`${t}.rows.${n}`)}function Wg(e,t){return Rg(e)?{...t,...e,rows:{...t.rows,...e.rows}}:Bg(e)}function Gg(e){if(!Rg(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}const Kg=`default`,qg={};function Jg(e){return[...new Set([Kg,...Object.keys(e)])]}function Yg(e,t,n){return pm(void 0,e,t,Kg,n)}function Xg(e,t){let n={[Kg]:qg,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${Kg}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function Zg(e,t){let n=Xg(e.presets,t).root??Lg;return{node:Vg(Wg(n,e.root)),path:Gg(n)?`presets.${t}.root`:`root`}}function Qg(e,t){return{...e.globals,...Xg(e.presets,t).globals}}const $g=new Map;function e_(e,t,n){$g.set(e,{permanent:!0,resolve:t,paletteOf:n})}e_(`themes`,()=>lm(),e=>Zh(e));const t_=`placementThemes`;e_(t_,um,(e,t)=>Qh(e,t.palette)),e_(`endcaps`,()=>Am),e_(`variations`,()=>Bm),e_(`shades`,()=>Um),e_(`charsets`,()=>Fm),e_(`colorCompatibilities`,()=>Rm);function n_(e){return new Map([[`styles`,{members:Object.keys(e.styles),paletteOf:(t,n)=>eg(n.basePalette,e.styles[t])}],[`presets`,{members:Jg(e.presets)}]])}function r_(e){return[...new Set([...$g.keys(),...e.keys()])]}function i_(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=$g.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(o_(e,t))}const a_=new Map([[`looks`,`styles`],[`progressions`,`variations`]]);function o_(e,t){let n=a_.get(e);return`unknown option domain "${e}"${n===void 0?``:` — it was renamed "${n}"; write from: "${n}"`} (have: ${r_(t).join(`, `)})`}const s_=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g;function*c_(e){let t=e.indexOf(`{{`);for(;t!==-1;){let n=``,r=t+2;for(;r<e.length&&!e.startsWith(`}}`,r);){if(e.startsWith(`/*`,r)){let t=e.indexOf(`*/`,r+2);r=t===-1?e.length:t+2;continue}let t=r,i=e[r];if(r+=1,i===`"`||i===`'`||i==="`"){for(;r<e.length&&e[r]!==i;)r+=e[r]===`\\`&&i!=="`"?2:1;r+=1}n+=e.slice(t,r)}if(r>=e.length)return;yield n,t=e.indexOf(`{{`,r+2)}}const l_=`[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*`,u_=RegExp(`^(?:(\\$)(?:\\.(${l_}))?|\\.(${l_})?)(?=[\\s)]|$)`);function d_(e,t,n){let r=u_.exec(e.trimStart());if(r===null)return null;let[i,a]=r[1]===void 0?[t,r[3]]:[n,r[2]];return i===null?null:a===void 0?i:`${i}${a}.`}const f_=/^(\w+)\b\s*([\s\S]*)$/;function*p_(e,t){let n=[t];for(let r of c_(e)){let e=r.replace(/^-(?=\s)/,``).trim(),[,i=``,a=``]=f_.exec(e)??[],o=n[n.length-1],s=n.length>1?n[n.length-2]:o;if(i===`end`){n.length>1&&n.pop();continue}if(i===`else`){yield{code:e,dot:s};let r=/^with\b([\s\S]*)$/.exec(a);n[n.length-1]=r===null?s:d_(r[1],s,t);continue}yield{code:e,dot:o},i===`if`&&n.push(o),i===`with`&&n.push(d_(a,o,t)),(i===`range`||i===`define`||i===`block`)&&n.push(null)}}const m_=/(?<![.$])\btemplate\s+$/;function*h_(e,t,n){let r=0;for(let i of[...e.matchAll(s_)]){let a=i.index+i[0].length;m_.test(e.slice(r,i.index))&&(yield{name:i[0].slice(1,-1),at:d_(e.slice(a),t,n)}),r=a}}function*g_(e,t){let n=new Set;function*r(e,i,a,o){for(let{code:s,dot:c}of[...p_(e,i)]){yield{code:s,dot:c,root:i,via:a};for(let e of[...h_(s,c,i)]){let i=Object.hasOwn(t,e.name)?t[e.name]:void 0,a=`${e.name}\0${e.at??`\0`}`;i===void 0||o.has(e.name)||n.has(a)||(n.add(a),yield*r(i,e.at,e.name,new Set([...o,e.name])))}}}yield*r(e,``,null,new Set)}const __=RegExp(`(?<![A-Za-z0-9_)$])(\\$?)\\.(${l_})`,`g`);function*v_({code:e,dot:t,root:n}){let r=e.replace(s_,``);for(let e of[...r.matchAll(__)]){let r=e[1]===`$`?n:t;r!==null&&(yield`${r}${e[2]}`)}}function y_(e,t){let n=new Map;for(let r of g_(e,t))for(let e of v_(r))n.has(e)||n.set(e,r.via);return n}const b_=/(?<![.$])\b(action|picker|menu|carousel|swatches|swatch|themePreview)\s+$/,x_={action:1,picker:2,menu:1,carousel:2,swatch:1,swatches:2,themePreview:1};function*S_(e){let t=0,n=0,r=0,i=`action`;for(let a of[...e.matchAll(s_)]){let o=e.slice(t,a.index),s=b_.exec(o);if(s!==null)n=x_[s[1]],r=0,i=s[1]===`action`?`action`:`options`;else for(let e of o)e===`(`&&r++,e===`)`&&r--,(r<0||e===`|`&&r===0)&&(n=0);n>0&&r===0&&(yield{name:a[0].slice(1,-1),site:i},n--),t=a.index+a[0].length}}function C_(e,t){let n=new Map;for(let{code:r,via:i}of g_(e,t))for(let{name:e,site:t}of S_(r)){let r=`${e}\0${i??`\0`}`;n.has(r)||n.set(r,{name:e,site:t,via:i})}return[...n.values()]}function w_(e,t){return new Set([...T_(e,t)].filter(e=>Object.hasOwn(t,e)))}function T_(e,t){let n=new Set;for(let{code:r,dot:i,root:a}of g_(e,t))for(let{name:e}of h_(r,i,a))n.add(e);return n}function E_(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}function D_(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),O_(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,helpers:e.helpers}}function O_(e){return e.kind===`dropped`||(e.kind===`shell`||e.kind===`file`)&&vg(e.parse)===`json`}function k_(e){let t=l.basename(e),n=l.dirname(e);for(;;){let r=A_(n);if(r!==null)return{dir:r,name:t,leaf:n===l.dirname(e)};t=l.basename(n),n=l.dirname(n)}}function A_(e){try{return r.statSync(e).isDirectory()?r.realpathSync(e):null}catch{return null}}var j_=ye((e=>{function t(e,...t){throw Error(`[MobX] minified error nr: ${e}${t.length?` `+t.map(String).join(`,`):``}. See mobx.js.org/errors`)}function n(e){let t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}function r(e){return typeof e==`function`}function i(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function a(e){return typeof e==`object`&&!!e}function o(e){if(!a(e))return!1;let t=Object.getPrototypeOf(e);if(t==null)return!0;let n=p(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===Bt}function s(e){let t=e?.constructor;return!!t&&(t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`)}function c(e,t,n){It(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function l(e,t){let n=`isMobX`+e;return t.prototype[n]=!0,function(e){return a(e)&&!0===e[n]}}function u(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function d(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function f(e){return e===null?null:typeof e==`object`?``+e:e}function p(e,t){return Lt.hasOwnProperty.call(e,t)}function m(e,t){return!!(e&t)}function h(e,t,n){return n?e|=t:e&=~t,e}function g(e,t=Vt,n=Vt){let r=new Wt(e);return t!==Vt&&(r.onBOL=new Set([t])),n!==Vt&&(r.onBUOL=new Set([n])),r}function _(e,t){return At(e,t)}function v(e,t,n){return e===null||typeof e!=`object`&&typeof e!=`function`||tt(e)?e:Array.isArray(e)?sn.array(e,{name:n}):o(e)?sn.object(e,void 0,{name:n}):u(e)?sn.map(e,{name:n}):d(e)?sn.set(e,{name:n}):typeof e!=`function`||We(e)||Qe(e)?e:s(e)?Wn(e):In(n,e)}function y(e){return e}function b(e,t){return{t:e,i:t,o:x,u:S}}function x(e,t,n,r){var i;return(i=this.i)!=null&&i.bound?this.u(e,t,n,!1)===null?0:1:r===e.h?this.u(e,t,n,!1)===null?0:2:We(n.value)?1:(It(r,t,ee(e,this,t,n,!1)),2)}function S(e,t,n,r){let i=ee(e,this,t,n);return e.l(t,i,r)}function C(e,n,r){let{kind:i,name:a,addInitializer:o}=r,s=e,c=e=>{var t;return ye(s.i?.name??a.toString(),e,(t=s.i?.autoAction)!=null&&t)};return i==`field`?function(e){var t;let n=e;return We(n)||(n=c(n)),(t=s.i)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n}:i==`method`?(We(n)||(n=c(n)),(l=s.i)!=null&&l.bound&&o(function(){let e=this,t=e[a].bind(e);t.isMobxAction=!0,e[a]=t}),n):void t(43,s.t,String(a),i);var l}function ee(e,t,n,r,i=P.safeDescriptors){var a,o,s;let{value:c}=r;return(a=t.i)!=null&&a.bound&&(c=c.bind(e.v??e.h)),{value:ye(t.i?.name??n.toString(),c,(o=t.i?.autoAction)!=null&&o,(s=t.i)!=null&&s.bound?e.v??e.h:void 0),configurable:!i||e.p,enumerable:!1,writable:!i}}function te(e,t){return{t:e,i:t,o:ne,u:re}}function ne(e,t,n,r){var i;return r===e.h?this.u(e,t,n,!1)===null?0:2:(i=this.i)!=null&&i.bound&&(!p(e.h,t)||!Qe(e.h[t]))&&this.u(e,t,n,!1)===null?0:Qe(n.value)?1:(It(r,t,ae(e,0,0,n,!1,!1)),2)}function re(e,t,n,r){let i=ae(e,0,0,n,this.i?.bound);return e.l(t,i,r)}function ie(e,t,n){var r;let{name:i,addInitializer:a}=n;return Qe(t)||(t=Wn(t)),(r=e.i)!=null&&r.bound&&a(function(){let e=this,t=e[i].bind(e);t.isMobXFlow=!0,e[i]=t}),t}function ae(e,t,n,r,i,a=P.safeDescriptors){let{value:o}=r;return Qe(o)||(o=Wn(o)),i&&(o=o.bind(e.v??e.h),o.isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function w(e,t){return{t:e,i:t,o:T,u:oe}}function T(e,t,n){return this.u(e,t,n,!1)===null?0:1}function oe(e,t,n,r){return e.m(t,Ft({},this.i,{get:n.get,set:n.set}),r)}function E(e,t,n){function r(e){let n=Ft({},i.i,{get:t,context:e});return n.name||=`ObservableObject.${a.toString()}`,new yn(n)}let i=e,{name:a,addInitializer:o}=n,s;return o(function(){let e=Ct(this)[j],n=this,i=e.j.get(a);i instanceof yn&&i.derivation!==t&&e.j.delete(a),(e.O??=new Map).set(a,()=>r(n))}),function(){let e=this[j],n=e.j.get(a);if(n instanceof yn&&n.derivation!==t){let e=s?.get(this);return e||(e=r(this),(s??=new WeakMap).set(this,e)),e.get()}return e._(a)}}function se(e,t){return{t:e,i:t,o:ce,u:le}}function ce(e,t,n){return this.u(e,t,n,!1)===null?0:1}function le(e,t,n,r){return e.S(t,n.value,this.i?.A??v,r)}function ue(e,t,n){function r(e,t){let n=Ct(e)[j];return(n.V??=new Map).set(o,()=>new _n(t,i.i?.A??v,`ObservableObject.${o.toString()}`,!1)),n}let i=e,{kind:a,name:o}=n;if(a===`accessor`)return{get(){return(this[j]??r(this,t.get.call(this)))._(o)},set(e){return(this[j]??r(this,e)).M(o,e)},init(e){return r(this,e),e}}}function de(e){return{t:Jt,i:e,o:fe,u:pe}}function fe(e,t,n,r){var i,a,o;if(n.get)return dn.o(e,t,n,r);if(n.set){let i=We(n.set)?n.set:ye(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!P.safeDescriptors||e.p,set:i})===null?0:2:(It(r,t,{configurable:!0,set:i}),2)}if(r!==e.h&&typeof n.value==`function`)return s(n.value)?((o=this.i)!=null&&o.autoBind?Gn:Wn).o(e,t,n,r):((a=this.i)!=null&&a.autoBind?Rn:In).o(e,t,n,r);let c=!1===this.i?.deep?nn:sn;return typeof n.value==`function`&&(i=this.i)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),c.o(e,t,n,r)}function pe(e,t,n,r){var i;return n.get?dn.u(e,t,n,r):n.set?e.l(t,{configurable:!P.safeDescriptors||e.p,set:ye(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.i)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),(!1===this.i?.deep?nn:sn).u(e,t,n,r))}function me(e,t){return Ft(function(n,r){if(r&&typeof r.kind==`string`)return t(e,n,r)},e)}function he(e){return e||Xt}function ge(e){return me(e,ue)}function _e(e){return!0===e.deep?v:!1===e.deep?y:(t=e.defaultDecorator)&&(n=(r=t.i)?.A)!=null?n:v;var t,n,r}function ve(e){return me(e,E)}function ye(e,t,n=!1,r){function i(){return be(0,n,t,r||this,arguments)}return i.isMobxAction=!0,i.toString=()=>t.toString(),hn&&(gn.value=e,It(i,`name`,gn)),i}function be(e,t,n,r,i){let a=xe(0,t);try{return n.apply(r,i)}catch(e){throw a.N=e,e}finally{D(a)}}function xe(e,t){let n=P.trackingDerivation,r=!t||!n;Pe();let i=P.allowStateChanges;r&&Oe();let a={R:r,k:n,C:i,I:P.allowStateReads,P:!1,T:0,B:mn++,D:pn};return pn=a.B,a}function D(e){pn!==e.B&&t(30),pn=e.D,e.N!==void 0&&(P.suppressReactionErrors=!0),Fe(),e.R&&ke(e.k),P.suppressReactionErrors=!1}function Se(e,t){let n=function(e){let t=P.allowStateChanges;return P.allowStateChanges=e,t}(e);try{return t()}finally{(function(e){P.allowStateChanges=e})(n)}}function Ce(e){return e instanceof bn}function we(e){switch(e.K){case 0:return!1;case-1:case 2:return!0;case 1:{let t=Oe(),n=e.L,r=n.length;for(let i=0;i<r;i++){let r=n[i];if(N(r)){if(P.disableErrorBoundaries)r.get();else try{r.get()}catch{return ke(t),!0}if(e.K===2)return ke(t),!0}}return Ae(e),ke(t),!1}}}function Te(e,t,n){Ae(e),e.$=Array(e.U===0?100:e.L.length),e.W=0,e.U=++P.runId;let r=P.trackingDerivation,i;if(P.trackingDerivation=e,P.inBatch++,!0===P.disableErrorBoundaries)i=t.call(n);else try{i=t.call(n)}catch(e){i=new bn(e)}return P.inBatch--,P.trackingDerivation=r,function(e){let t=e.L,n=e.L=e.$,r=0,i=0,a=e.W;for(let e=0;e<a;e++){let t=n[e];t.diffValue===0&&(t.diffValue=1,i!==e&&(n[i]=t),i++),t.K>r&&(r=t.K)}for(n.length=i,e.$=null,a=t.length;a--;){let n=t[a];n.diffValue===0&&Me(n,e),n.diffValue=0}for(;i--;){let t=n[i];t.diffValue===1&&(t.diffValue=0,je(t,e))}r!==0&&(e.K=r,e.q())}(e),i}function Ee(e){let t=e.L;e.L=[];let n=t.length;for(;n--;)Me(t[n],e);e.K=-1}function De(e){let t=Oe();try{return e()}finally{ke(t)}}function Oe(){let e=P.trackingDerivation;return P.trackingDerivation=null,e}function ke(e){P.trackingDerivation=e}function Ae(e){if(e.K===0)return;e.K=0;let t=e.L,n=t.length;for(;n--;)t[n].F=0}function je(e,t){(e.H??=new Set).add(t),e.F>t.K&&(e.F=t.K)}function Me(e,t){let n=e.H;n&&(n.delete(t),n.size===0&&Ne(e))}function Ne(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,P.pendingUnobservations.push(e))}function Pe(){P.inBatch++}function Fe(){--P.inBatch===0&&(ze(),!P.isRunningUnobservations&&P.pendingUnobservations.length>0&&function(){P.isRunningUnobservations=!0;try{let e=P.pendingUnobservations;for(let t=0;t<e.length;t++){let n=e[t];n.isPendingUnobservation=!1,n.H&&n.H.size!==0||(n.H=null,n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof yn&&n.G())}P.pendingUnobservations=[]}finally{P.isRunningUnobservations=!1}}())}function Ie(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.L)==null||t.forEach(Ie))}function Le(e){let t=P.trackingDerivation;return t===null?((!e.H||e.H.size===0)&&P.inBatch>0&&Ne(e),!1):(t.U!==e.J&&(e.J=t.U,t.$[t.W++]=e,!e.isBeingObserved&&P.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function Re(e){var t;e.F!==2&&(e.F=2,(t=e.H)==null||t.forEach(e=>{e.K===0&&e.q(),e.K=2}))}function ze(){P.inBatch>0||P.isRunningReactions||Dn(Be)}function Be(){P.isRunningReactions=!0;let e=P.pendingReactions,t=0;for(;e.length>0;){++t===En&&(console.error(`[mobx] cycle in reaction: ${e[0]}`),e.splice(0));let n=e.splice(0);for(let e=0,t=n.length;e<t;e++)n[e].X()}P.isRunningReactions=!1}function Ve(e){return me(e,C)}function He(e){return function(t,n){return n&&typeof n.kind==`string`?C(e?Nn:jn,t,n):r(t)?ye(t.name||`<unnamed action>`,t,e):r(n)?ye(t,n,e):i(t)?Ve(b(e?An:kn,{name:t,autoAction:e})):void 0}}function Ue(e){return be(0,!1,e,this,void 0)}function We(e){return r(e)&&!0===e.isMobxAction}function Ge(e,t=zt){function n(){e(a)}var r;let i=t?.name??`Autorun`,a;if(t.scheduler||t.delay){let e=Ke(t),r=!1;a=new Tn(i,()=>{r||(r=!0,e(()=>{r=!1,a.isDisposed||a.track(n)}))},t.onError,t.requiresObservable)}else a=new Tn(i,function(){this.track(n)},t.onError,t.requiresObservable);return t!=null&&(r=t.signal)!=null&&r.aborted||a.Y(),a.Z(t?.signal)}function Ke(e){return e.scheduler?e.scheduler:e.delay?t=>setTimeout(t,e.delay):zn}function qe(e,t,n,i){let a=typeof i==`function`?Et(t,n):Et(t),o=r(i)?i:n,s=`${e}L`;return a[s]?a[s].add(o):a[s]=new Set([o]),function(){let e=a[s];e&&(e.delete(o),e.size===0&&delete a[s])}}function Je(e,t,n,r){let i=Ut(t);return kt(()=>{let t=Ct(e,r)[j];Ht(i).forEach(e=>{t.u(e,i[e],!n||!(e in n)||n[e])})}),e}function Ye(e){let t={name:e.tt};var n;return e.L&&e.L.length>0&&(t.dependencies=(n=e.L,Array.from(new Set(n))).map(Ye)),t}function Xe(e){let t={name:e.tt};return function(e){return!!e.H&&e.H.size>0}(e)&&(t.observers=Array.from(function(e){return e.H??new Set}(e),Xe)),t}function Ze(e){r(e.cancel)&&e.cancel()}function Qe(e){return!0===e?.isMobXFlow}function $e(e,t){var n;if(t===void 0)return N(e);if(!1===Tt(e))return!1;let r=e[j];return(n=r.O)!=null&&n.has(t)?!0:r.j.has(t)?N(Et(e,t)):!1}function et(e,t){if(!e)return!1;if(t!==void 0){if(Tt(e)){var n,r;let i=e[j];return i.j.has(t)||!((n=i.O)==null||!n.has(t))||!((r=i.V)==null||!r.has(t))}return!1}return Tt(e)||!!e[j]||Gt(e)||On(e)||N(e)}function tt(e){return et(e)}function nt(e){return Tt(e)?e[j].nt():rr(e)||or(e)?Array.from(e.keys()):bt(e)?e.map((e,t)=>t):void t(5)}function rt(e,n){return Tt(e)?e[j].et(n):rr(e)||or(e)?e.has(n):bt(e)?n>=0&&n<e.length:void t(10)}function it(e){if(Tt(e))return e[j].it();t(38)}function at(e,t,n){if(N(e)){let r,i=!0;return Ge(()=>{let a=e.get();if(!i||n){let n=Oe();t({observableKind:`computed`,debugObjectName:e.tt,type:Yn,object:e,newValue:a,oldValue:r}),ke(n)}i=!1,r=a})}return n&&t({observableKind:`value`,debugObjectName:e.tt,object:e,type:Yn,newValue:e.rt,oldValue:void 0}),mt(e,t)}function ot(e,t,n){return e.set(t,n),n}function st(e,t){if(typeof e!=`object`||!e||e instanceof Date||!tt(e))return e;if(vn(e)||N(e))return st(e.get(),t);if(t.has(e))return t.get(e);if(bt(e)){let n=ot(t,e,Array(e.length));return e.forEach((e,r)=>{n[r]=st(e,t)}),n}if(or(e)){let n=ot(t,e,new Set);return e.forEach(e=>{n.add(st(e,t))}),n}if(rr(e)){let n=ot(t,e,new Map);return e.forEach((e,r)=>{n.set(r,st(e,t))}),n}{let n=ot(t,e,{});return it(e).forEach(r=>{Lt.propertyIsEnumerable.call(e,r)&&(n[r]=st(e[r],t))}),n}}function ct(e,t){Pe();try{return e.apply(t)}finally{Fe()}}function lt(e,t,n){let r;if(typeof n.timeout==`number`){let e=Error(`WHEN_TIMEOUT`);r=setTimeout(()=>{if(!a[j].isDisposed){if(a(),!n.onError)throw e;n.onError(e)}},n.timeout)}n.name=`When`;let i=ye(`When-effect`,t);var a=Ge(t=>{Se(!1,e)&&(t.dispose(),r&&clearTimeout(r),i())},n);return a}function ut(e){return e[j]}function dt(e){return e.st!==void 0&&e.st.length>0}function ft(e,t){let r=e.st;return r?r.push(t):r=e.st=[t],n(()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)})}function O(e,n){let r=Oe();try{let r=[...e.st||[]];for(let e=0,i=r.length;e<i&&((n=r[e](n))&&!n.type&&t(14),n);e++);return n}finally{ke(r)}}function pt(e){return e.ot!==void 0&&e.ot.length>0}function mt(e,t){let r=e.ot;return r?r.push(t):r=e.ot=[t],n(()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)})}function ht(e,t){let n=Oe(),r=e.ot;if(r){r=r.slice();for(let e=0,n=r.length;e<n;e++)r[e](t);ke(n)}}function gt(e,n,r){if(!0===r&&(r=e.ut),!1===r)return;n in e.h||t(1,r.t,`${e.tt}.${n.toString()}`);let i=e.h;for(;i&&i!==Lt;){let t=A(i,n);if(t){let a=r.o(e,n,t,i);if(a===0)return;if(a===1)break}i=Object.getPrototypeOf(i)}}function k(e,t){typeof Array.prototype[e]==`function`&&(Qn[e]=t(e))}function _t(e){return function(){let t=this[j];t.ct.reportObserved();let n=t.ht(t.j);return n[e].apply(n,arguments)}}function vt(e){return function(t,n){let r=this[j];return r.ct.reportObserved(),r.ht(r.j)[e]((e,r)=>t.call(n,e,r,this))}}function yt(e){return function(){let t=this[j];t.ct.reportObserved();let n=t.ht(t.j),r=arguments[0];return arguments[0]=(e,t,n)=>r(e,t,n,this),n[e].apply(n,arguments)}}function bt(e){return a(e)&&$n(e[j])}function xt(e){return e[Symbol.toStringTag]=`MapIterator`,Nt(e)}function St(e){return e[Symbol.toStringTag]=`SetIterator`,Nt(e)}function Ct(e,t){if(p(e,j))return e;let n=t?.name??`ObservableObject`;return c(e,j,new lr(e,new Map,String(n),function(e){return e?e.defaultDecorator??function(e){let t=!1!==e.deep,n=!!e.autoBind,r=!t|(n?2:0);return M[r]??(M[r]=de({deep:t,autoBind:n}))}(e):void 0}(t))),e}function wt(e){return sr[e]||(sr[e]={get(){return this[j]._(e)},set(t){return this[j].M(e,t)}})}function Tt(e){return!!a(e)&&ur(e[j])}function Et(e,n){if(typeof e==`object`&&e){if(bt(e))return n!==void 0&&t(23),e[j].ct;if(or(e))return e.ct;if(rr(e)){if(n===void 0)return e.lt;let r=e.ft.get(n)||e.dt.get(n);return r||t(25,n,Ot(e)),r}if(Tt(e)){if(!n)return t(26);let r=e[j],i=r.j.get(n)??r.vt(n)??r.bt(n);return i||t(27,n,Ot(e)),i}if(Gt(e)||N(e)||On(e))return e}else if(r(e)&&On(e[j]))return e[j];t(28)}function Dt(e,n){return e||t(29),n===void 0?Gt(e)||N(e)||On(e)||rr(e)||or(e)?e:e[j]?e[j]:void t(24,e):Dt(Et(e,n))}function Ot(e,t){let n;if(t!==void 0)n=Et(e,t);else{if(We(e))return e.name;n=Tt(e)||rr(e)||or(e)?Dt(e):Et(e)}return n.tt}function kt(e){let t=Oe();Pe();try{return e()}finally{Fe(),ke(t)}}function At(e,t,n=-1){return jt(e,t,n)}function jt(e,t,n,i,a){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return!1;if(e!=e)return t!=t;let o=typeof e;if(o!==`function`&&o!==`object`&&typeof t!=`object`)return!1;let s=dr.call(e);if(s!==dr.call(t))return!1;switch(s){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++}e=Mt(e),t=Mt(t);let c=s===`[object Array]`;if(!c){if(typeof e!=`object`||typeof t!=`object`)return!1;let n=e.constructor,i=t.constructor;if(n!==i&&!(r(n)&&n instanceof n&&r(i)&&i instanceof i)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),a||=[];let l=(i||=[]).length;for(;l--;)if(i[l]===e)return a[l]===t;if(i.push(e),a.push(t),c){if(l=e.length,l!==t.length)return!1;for(;l--;)if(!jt(e[l],t[l],n-1,i,a))return!1}else{let r=Object.keys(e),o=r.length;if(Object.keys(t).length!==o)return!1;for(let s=0;s<o;s++){let o=r[s];if(!p(t,o)||!jt(e[o],t[o],n-1,i,a))return!1}}return i.pop(),a.pop(),!0}function Mt(e){return bt(e)?e.slice():u(e)||rr(e)||d(e)||or(e)?Array.from(e.entries()):e}function Nt(e){return e[Symbol.iterator]=Pt,Ft(Object.create(fr),e)}function Pt(){return this}Object.defineProperty(e,`__esModule`,{value:!0});let Ft=Object.assign,A=Object.getOwnPropertyDescriptor,It=Object.defineProperty,Lt=Object.prototype,Rt=[];Object.freeze(Rt);let zt={};Object.freeze(zt);let Bt=Object.toString(),Vt=()=>{},Ht=Reflect.ownKeys,Ut=Object.getOwnPropertyDescriptors,j=Symbol(`mobx administration`);var Wt=class{constructor(e=`Atom`){this.tt=void 0,this.yt=0,this.H=null,this.J=0,this.F=-1,this.onBOL=void 0,this.onBUOL=void 0,this.tt=e}get isBeingObserved(){return m(this.yt,1)}set isBeingObserved(e){this.yt=h(this.yt,1,e)}get isPendingUnobservation(){return m(this.yt,2)}set isPendingUnobservation(e){this.yt=h(this.yt,2,e)}get diffValue(){return+!!m(this.yt,4)}set diffValue(e){this.yt=h(this.yt,4,e===1)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}reportObserved(){return Le(this)}reportChanged(){Pe(),Re(this),Fe()}toString(){return this.tt}};let Gt=l(`Atom`,Wt),Kt=Object.is,qt={t:`override`,o:function(){return 0},u:function(){t(44,this.t)}},Jt=`true`,Yt=de(),M=[Yt],Xt={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Xt);let Zt=se(`observable`),Qt=se(`observable.ref`,{A:y}),$t=se(`observable.shallow`,{A:function(e,t,n){return e==null||Tt(e)||bt(e)||rr(e)||or(e)?e:Array.isArray(e)?sn.array(e,{name:n,deep:!1}):o(e)?sn.object(e,void 0,{name:n,deep:!1}):u(e)?sn.map(e,{name:n,deep:!1}):d(e)?sn.set(e,{name:n,deep:!1}):void 0}}),en=se(`observable.struct`,{A:function(e,t){return At(e,t)?t:e}}),tn={box(e,t){let n=he(t);return new _n(e,_e(n),n.name,!0,n.equals)},array(e,t){let n=he(t);return function(e,t,n=`ObservableArray`,r=!1){return kt(()=>{let i=new Zn(n,t,r);It(i.j,j,{enumerable:!1,writable:!1,configurable:!0,value:i});let a=new Proxy(i.j,Xn);return i.v=a,e&&e.length&&i.wt(0,0,e),a})}(e,_e(n),n.name)},map(e,t){let n=he(t);return new nr(e,_e(n),n.name)},set(e,t){let n=he(t);return new ar(e,_e(n),n.name)},object:(e,t,n)=>kt(()=>Je(function(e,t){var n;return(n=(e=Ct(e,t))[j]).v??(n.v=new Proxy(e,Kn))}({},n),e,t))},nn=ge(Qt),rn=ge($t),an=ge(Zt),on=ge(en);var sn=Ft(function(e,t,n){return t&&typeof t.kind==`string`?ue(Zt,e,t):tt(e)?e:o(e)?sn.object(e,t,n):Array.isArray(e)?sn.array(e,t):u(e)?sn.map(e,t):d(e)?sn.set(e,t):typeof e==`object`&&e?e:sn.box(e,t)},Zt,tn);let cn=`computed`,ln=w(cn),un=ve(w(`computed.struct`,{equals:_})),dn=function(e,t){if(t&&typeof t.kind==`string`)return E(ln,e,t);if(o(e))return ve(w(cn,e));let n=o(t)?t:{};return n.get=e,n.name||=e.name||``,new yn(n)};var fn;Ft(dn,ln);let pn=0,mn=1,hn=(fn=A(()=>{},`name`)?.configurable)!=null&&fn,gn={value:`action`,configurable:!0,writable:!1,enumerable:!1};var _n=class extends Wt{constructor(e,t,n=`ObservableValue`,r=!0,i=Kt){super(n),this.A=void 0,this.tt=void 0,this.xt=void 0,this.gt=!1,this.st=void 0,this.ot=void 0,this.rt=void 0,this.dehancer=void 0,this.A=t,this.tt=n,this.xt=i,this.rt=t(e,void 0,n)}dehanceValue(e){return this.dehancer===void 0?e:this.dehancer(e)}set(e){(e=this.jt(e))!==P.UNCHANGED&&this.Ot(e)}jt(e){if(dt(this)){let t=O(this,{object:this,type:Yn,newValue:e});if(!t)return P.UNCHANGED;e=t.newValue}return e=this.A(e,this.rt,this.tt),this.xt(this.rt,e)?P.UNCHANGED:e}Ot(e){let t=this.rt;this.rt=e,this.reportChanged(),pt(this)&&ht(this,{type:Yn,object:this,newValue:e,oldValue:t})}get(){return this.reportObserved(),this.dehanceValue(this.rt)}raw(){return this.rt}toJSON(){return this.get()}toString(){return`${this.tt}[${this.rt}]`}valueOf(){return f(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let vn=l(`ObservableValue`,_n);var yn=class{constructor(e){this.K=-1,this.L=[],this.$=null,this.H=null,this.U=0,this.J=0,this.F=0,this.W=0,this.rt=new bn(null),this.tt=void 0,this._t=void 0,this.yt=0,this.derivation=void 0,this.St=void 0,this.At=void 0,this.xt=void 0,this.Vt=void 0,this.Mt=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.St=ye(`ComputedValue-setter`,e.set)),this.xt=e.equals||Kt,this.At=e.context,this.Vt=e.requiresReaction,this.Mt=!!e.keepAlive}q(){(function(e){var t;e.F===0&&(e.F=1,(t=e.H)==null||t.forEach(e=>{e.K===0&&(e.K=1,e.q())}))})(this)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}get isComputing(){return m(this.yt,1)}set isComputing(e){this.yt=h(this.yt,1,e)}get isRunningSetter(){return m(this.yt,2)}set isRunningSetter(e){this.yt=h(this.yt,2,e)}get isBeingObserved(){return m(this.yt,4)}set isBeingObserved(e){this.yt=h(this.yt,4,e)}get isPendingUnobservation(){return m(this.yt,8)}set isPendingUnobservation(e){this.yt=h(this.yt,8,e)}get diffValue(){return+!!m(this.yt,16)}set diffValue(e){this.yt=h(this.yt,16,e===1)}get(){if(this.isComputing&&t(32,this.tt,this.derivation),P.inBatch!==0||this.H&&this.H.size!==0||this.Mt){let e=this.isBeingObserved;if(Le(this),we(this)){let e=P.trackingContext;e||!this.Mt&&!this.isBeingObserved||(P.trackingContext=this),this.trackAndCompute()&&function(e){var t;e.F!==2&&(e.F=2,(t=e.H)==null||t.forEach(t=>{t.K===1?t.K=2:t.K===0&&(e.F=0)}))}(this),P.trackingContext=e}else !e&&this.isBeingObserved&&this.L.forEach(Ie)}else we(this)&&(this.Nt(),Pe(),this.rt=this.Rt(!1),Fe());let e=this.rt;if(Ce(e))throw e.cause;return e}set(e){if(this.St){this.isRunningSetter&&t(33,this.tt),this.isRunningSetter=!0;try{this.St.call(this.At,e)}finally{this.isRunningSetter=!1}}else t(34,this.tt)}trackAndCompute(){let e=this.rt,t=this.K===-1,n=this.Rt(!0),r=t||Ce(e)||Ce(n)||!this.xt(e,n);return r&&(this.rt=n),r}Rt(e){let t;if(this.isComputing=!0,e)t=Te(this,this.derivation,this.At);else if(!0===P.disableErrorBoundaries)t=this.derivation.call(this.At);else try{t=this.derivation.call(this.At)}catch(e){t=new bn(e)}return this.isComputing=!1,t}G(){this.Mt||(Ee(this),this.rt=void 0)}Nt(){}toString(){return`${this.tt}[${this.derivation.toString()}]`}valueOf(){return f(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let N=l(`ComputedValue`,yn);var bn=class{constructor(e){this.cause=void 0,this.cause=e}};let xn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`];var Sn=class{constructor(){this.version=7,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.isRunningUnobservations=!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.safeDescriptors=!0}};let Cn=!0,wn=!1,P=function(){let e=globalThis;return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Cn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==7&&(Cn=!1),Cn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Sn):(setTimeout(()=>{wn||t(35)},1),new Sn)}();var Tn=class{constructor(e=`Reaction`,t,n,r){this.tt=void 0,this.Et=void 0,this.kt=void 0,this.Ct=void 0,this.L=[],this.$=[],this.K=-1,this.U=0,this.W=0,this.yt=0,this.It=void 0,this.tt=e,this.Et=t,this.kt=n,this.Ct=r}get isDisposed(){return m(this.yt,1)}set isDisposed(e){this.yt=h(this.yt,1,e)}get isScheduled(){return m(this.yt,2)}set isScheduled(e){this.yt=h(this.yt,2,e)}get isTrackPending(){return m(this.yt,4)}set isTrackPending(e){this.yt=h(this.yt,4,e)}get isRunning(){return m(this.yt,8)}set isRunning(e){this.yt=h(this.yt,8,e)}get diffValue(){return+!!m(this.yt,16)}set diffValue(e){this.yt=h(this.yt,16,e===1)}q(){this.Y()}Y(){this.isScheduled||(this.isScheduled=!0,P.pendingReactions.push(this),ze())}X(){if(!this.isDisposed){Pe(),this.isScheduled=!1;let e=P.trackingContext;if(P.trackingContext=this,we(this)){this.isTrackPending=!0;try{this.Et()}catch(e){this.Pt(e)}}P.trackingContext=e,Fe()}}track(e){if(this.isDisposed)return;Pe(),this.isRunning=!0;let t=P.trackingContext;P.trackingContext=this;let n=Te(this,e,void 0);P.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Ee(this),Ce(n)&&this.Pt(n.cause),Fe()}Pt(e){if(this.kt)this.kt(e,this);else{if(P.disableErrorBoundaries)throw e;P.suppressReactionErrors||console.error(`[mobx] uncaught error in '${this}'`,e),P.globalReactionErrorHandlers.forEach(t=>t(e,this))}}dispose(){var e;this.isDisposed||(this.isDisposed=!0,(e=this.It)==null||e.call(this),this.isRunning||(Pe(),Ee(this),Fe()))}Z(e){let t=()=>this.dispose();return e!=null&&e.addEventListener&&!this.isDisposed&&(e.addEventListener(`abort`,t),this.It=()=>e.removeEventListener==null?void 0:e.removeEventListener(`abort`,t)),t[j]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(t[Symbol.dispose]=t),t}toString(){return`Reaction[${this.tt}]`}};let En=100,Dn=e=>e(),On=l(`Reaction`,Tn),kn=`action`,An=`autoAction`,jn=b(kn),Mn=b(`action.bound`,{bound:!0}),Nn=b(An,{autoAction:!0}),Pn=b(`autoAction.bound`,{autoAction:!0,bound:!0}),Fn=He(!1);Ft(Fn,jn);let In=He(!0);Ft(In,Nn);let Ln=Ve(Mn),Rn=Ve(Pn),zn=e=>e(),Bn=`always`;var Vn=class extends Error{constructor(){super(`FLOW_CANCELLED`),Object.setPrototypeOf(this,new.target.prototype),this.name=`FlowCancellationError`}toString(){return`Error: ${this.message}`}};let Hn=te(`flow`),Un=te(`flow.bound`,{bound:!0}),Wn=Ft(function(e,t){if(t&&typeof t.kind==`string`)return ie(Hn,e,t);let n=e,i=n.name||`flow`,a=function(){let e=arguments,t=Fn(i,n).apply(this,e),a,o,s=new Promise(function(e,n){function s(e){let r;o=void 0;try{r=Fn(i,t.next).call(t,e)}catch(e){return n(e)}l(r)}function c(e){let r;o=void 0;try{r=Fn(i,t.throw).call(t,e)}catch(e){return n(e)}l(r)}function l(t){if(!r(t?.then))return t.done?e(t.value):(o=Promise.resolve(t.value),o.then(s,c));t.then(l,n)}a=n,s(void 0)});return s.cancel=Fn(i,function(){try{o&&Ze(o);let e=t.return(void 0),n=Promise.resolve(e.value);n.then(Vt,Vt),Ze(n),a(new Vn)}catch(e){a(e)}}),s};return a.isMobXFlow=!0,a},Hn),Gn=me(Un,ie),Kn={has:(e,t)=>ut(e).et(t),get:(e,t)=>ut(e).Tt(t),set(e,t,n){var r;return!!i(t)&&((r=ut(e).Bt(t,n,!0))==null||r)},deleteProperty(e,t){var n;return!!i(t)&&((n=ut(e).Dt(t,!0))==null||n)},defineProperty(e,t,n){var r;return(r=ut(e).l(t,n))==null||r},ownKeys:e=>ut(e).it(),preventExtensions(e){t(13)}},qn=Symbol(`mobx-keys`),Jn=`splice`,Yn=`update`,Xn={get(e,t){let n=e[j];return t===j?n:t===`length`?n.Kt():typeof t!=`string`||isNaN(t)?p(Qn,t)?Qn[t]:e[t]:n.Tt(parseInt(t))},set(e,t,n){let r=e[j];return t===`length`?r.Lt(n):typeof t==`symbol`||isNaN(t)?e[t]=n:r.Bt(parseInt(t),n),!0},preventExtensions(){t(15)}};var Zn=class{constructor(e=`ObservableArray`,t,n){this.$t=void 0,this.ct=void 0,this.j=[],this.st=void 0,this.ot=void 0,this.A=void 0,this.dehancer=void 0,this.v=void 0,this.Ut=0,this.$t=n,this.ct=new Wt(e),this.A=(e,n)=>t(e,n,`ObservableArray[..]`)}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}ht(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e}Kt(){return this.ct.reportObserved(),this.j.length}Lt(e){(!Number.isInteger(e)||e<0)&&t(40,e);let n=this.j.length;if(e!==n)if(e>n){let t=Array.from({length:e-n});this.wt(n,0,t)}else this.wt(e,n-e)}zt(e,n){e!==this.Ut&&t(16),this.Ut+=n}wt(e,t,n){let r=this.j.length;if(e===void 0?e=0:e>r?e=r:e<0&&(e=Math.max(0,r+e)),t=arguments.length===1?r-e:t==null?0:Math.max(0,Math.min(t,r-e)),n===void 0&&(n=Rt),dt(this)){let r=O(this,{object:this.v,type:Jn,index:e,removedCount:t,added:n});if(!r)return Rt;t=r.removedCount,n=r.added}n=n.length===0?n:n.map(e=>this.A(e,void 0));let i=this.qt(e,t,n);return t===0&&n.length===0||this.Ft(e,n,i),this.ht(i)}qt(e,t,n){if(n.length<1e4)return this.j.splice(e,t,...n);{let r=this.j.slice(e,e+t),i=this.j.slice(e+t);this.j.length+=n.length-t;for(let t=0;t<n.length;t++)this.j[e+t]=n[t];for(let t=0;t<i.length;t++)this.j[e+n.length+t]=i[t];return r}}Ht(e,t,n){let r=pt(this),i=r?{observableKind:`array`,object:this.v,type:Yn,debugObjectName:this.ct.tt,index:e,newValue:t,oldValue:n}:null;this.ct.reportChanged(),r&&ht(this,i)}Ft(e,t,n){let r=pt(this),i=r?{observableKind:`array`,object:this.v,debugObjectName:this.ct.tt,type:Jn,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.ct.reportChanged(),r&&ht(this,i)}Tt(e){return this.ct.reportObserved(),this.Wt(this.j[e])}Bt(e,t){let n=this.j;if(e<n.length){let r=n[e];if(dt(this)){let n=O(this,{type:Yn,object:this.v,index:e,newValue:t});if(!n)return;t=n.newValue}(t=this.A(t,r))!==r&&(n[e]=t,this.Ht(e,t,r))}else{let r=Array.from({length:e+1-n.length});r[r.length-1]=t,this.wt(n.length,0,r)}}},Qn={clear(){return this.splice(0)},replace(e){let t=this[j];return t.wt(0,t.j.length,e)},toJSON(){return this.slice()},splice(e,t,...n){let r=this[j];switch(arguments.length){case 0:return[];case 1:return r.wt(e);case 2:return r.wt(e,t)}return r.wt(e,t,n)},spliceWithArray(e,t,n){return this[j].wt(e,t,n)},push(...e){let t=this[j];return t.wt(t.j.length,0,e),t.j.length},pop(){return this.splice(Math.max(this[j].j.length-1,0),1)[0]},shift(){return this.splice(0,1)[0]},unshift(...e){let t=this[j];return t.wt(0,0,e),t.j.length},reverse(){return P.trackingDerivation&&t(37,`reverse`),this.replace(this.slice().reverse()),this},sort(){P.trackingDerivation&&t(37,`sort`);let e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove(e){let t=this[j],n=t.ht(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};k(`at`,_t),k(`concat`,_t),k(`flat`,_t),k(`includes`,_t),k(`indexOf`,_t),k(`join`,_t),k(`lastIndexOf`,_t),k(`slice`,_t),k(`toString`,_t),k(`toLocaleString`,_t),k(`toSorted`,_t),k(`toSpliced`,_t),k(`with`,_t),k(`every`,vt),k(`filter`,vt),k(`find`,vt),k(`findIndex`,vt),k(`findLast`,vt),k(`findLastIndex`,vt),k(`flatMap`,vt),k(`forEach`,vt),k(`map`,vt),k(`some`,vt),k(`toReversed`,vt),k(`reduce`,yt),k(`reduceRight`,yt);let $n=l(`ObservableArrayAdministration`,Zn),er={},tr=`delete`;var nr=class{constructor(e,t=v,n=`ObservableMap`){this.A=void 0,this.tt=void 0,this[j]=er,this.ft=void 0,this.dt=void 0,this.lt=void 0,this.st=void 0,this.ot=void 0,this.dehancer=void 0,this.A=t,this.tt=n,kt(()=>{this.lt=g(`ObservableMap.keys()`),this.ft=new Map,this.dt=new Map,e&&this.merge(e)})}et(e){return this.ft.has(e)}has(e){if(!P.trackingDerivation)return this.et(e);let t=this.dt.get(e);if(!t){let n=t=new _n(this.et(e),y,`ObservableMap.key?`,!1);this.dt.set(e,n),n.onBUOL=new Set([()=>this.dt.delete(e)])}return t.get()}set(e,t){let n=this.et(e);if(dt(this)){let r=O(this,{type:n?Yn:`add`,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.Gt(e,t):this.Jt(e,t),this}delete(e){if(dt(this)&&!O(this,{type:tr,object:this,name:e}))return!1;if(this.et(e)){let t=pt(this),n=t?{observableKind:`map`,debugObjectName:this.tt,type:tr,object:this,oldValue:this.ft.get(e).rt,name:e}:null;return ct(()=>{var t;this.lt.reportChanged(),(t=this.dt.get(e))==null||t.Ot(!1),this.ft.get(e).Ot(void 0),this.ft.delete(e)}),t&&ht(this,n),!0}return!1}Gt(e,t){let n=this.ft.get(e);if((t=n.jt(t))!==P.UNCHANGED){let r=pt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:Yn,object:this,oldValue:n.rt,name:e,newValue:t}:null;n.Ot(t),r&&ht(this,i)}}Jt(e,t){ct(()=>{var n;let r=new _n(t,this.A,`ObservableMap.key`,!1);this.ft.set(e,r),t=r.rt,(n=this.dt.get(e))==null||n.Ot(!0),this.lt.reportChanged()});let n=pt(this);n&&ht(this,n?{observableKind:`map`,debugObjectName:this.tt,type:`add`,object:this,name:e,newValue:t}:null)}get(e){return this.has(e)?this.Wt(this.ft.get(e).get()):this.Wt(void 0)}getOrInsert(e,t){return this.has(e)||this.set(e,t),this.get(e)}getOrInsertComputed(e,t){return this.has(e)||this.set(e,t(e)),this.get(e)}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}keys(){return this.lt.reportObserved(),this.ft.keys()}values(){let e=this,t=this.keys();return xt({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:e.get(r)}}})}entries(){let e=this,t=this.keys();return xt({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:[r,e.get(r)]}}})}[Symbol.iterator](){return this.entries()}forEach(e,t){for(let[n,r]of this)e.call(t,r,n,this)}merge(e){return rr(e)&&(e=new Map(e)),ct(()=>{o(e)?function(e){let t=Object.keys(e),n=Object.getOwnPropertySymbols(e);return n.length?[...t,...n.filter(t=>Lt.propertyIsEnumerable.call(e,t))]:t}(e).forEach(t=>this.set(t,e[t])):Array.isArray(e)?e.forEach(([e,t])=>this.set(e,t)):u(e)?(function(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}(e)||t(19,e),e.forEach((e,t)=>this.set(t,e))):e!=null&&t(20,e)}),this}clear(){ct(()=>{De(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return ct(()=>{let n=function(e){if(u(e)||rr(e))return e;if(Array.isArray(e))return new Map(e);if(o(e)){let t=new Map;for(let n in e)t.set(n,e[n]);return t}return t(21,e)}(e),r=new Map,i=!1;for(let e of this.ft.keys())if(!n.has(e))if(this.delete(e))i=!0;else{let t=this.ft.get(e);r.set(e,t)}for(let[e,t]of n.entries()){let n=this.ft.has(e);if(this.set(e,t),this.ft.has(e)){let t=this.ft.get(e);r.set(e,t),n||(i=!0)}}if(!i)if(this.ft.size!==r.size)this.lt.reportChanged();else{let e=this.ft.keys(),t=r.keys(),n=e.next(),i=t.next();for(;!n.done;){if(n.value!==i.value){this.lt.reportChanged();break}n=e.next(),i=t.next()}}this.ft=r}),this}get size(){return this.lt.reportObserved(),this.ft.size}toString(){return`[object ObservableMap]`}toJSON(){return Array.from(this)}get[Symbol.toStringTag](){return`Map`}},rr=l(`ObservableMap`,nr);let ir={};var ar=class{constructor(e,t=v,n=`ObservableSet`){this.tt=void 0,this[j]=ir,this.ft=new Set,this.ct=void 0,this.ot=void 0,this.st=void 0,this.dehancer=void 0,this.A=void 0,this.tt=n,this.A=(e,r)=>t(e,r,n),kt(()=>{this.ct=g(this.tt),e&&this.replace(e)})}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}clear(){ct(()=>{De(()=>{for(let e of this.ft.values())this.delete(e)})})}forEach(e,t){for(let n of this)e.call(t,n,n,this)}get size(){return this.ct.reportObserved(),this.ft.size}add(e){if(dt(this)){let t=O(this,{type:`add`,object:this,newValue:e});if(!t)return this;e=t.newValue}if(!this.has(e)){ct(()=>{e=this.A(e,void 0),this.ft.add(e),this.ct.reportChanged()});let t=pt(this);t&&ht(this,t?{observableKind:`set`,debugObjectName:this.tt,type:`add`,object:this,newValue:e}:null)}return this}delete(e){if(dt(this)&&!O(this,{type:tr,object:this,oldValue:e}))return!1;if(this.has(e)){let t=pt(this),n=t?{observableKind:`set`,debugObjectName:this.tt,type:tr,object:this,oldValue:e}:null;return ct(()=>{this.ct.reportChanged(),this.ft.delete(e)}),t&&ht(this,n),!0}return!1}has(e){return this.ct.reportObserved(),this.ft.has(this.Wt(e))}entries(){let e=this.values();return St({next(){let{value:t,done:n}=e.next();return n?{value:void 0,done:n}:{value:[t,t],done:n}}})}keys(){return this.values()}values(){this.ct.reportObserved();let e=this,t=this.ft.values();return St({next(){let{value:n,done:r}=t.next();return r?{value:void 0,done:r}:{value:e.Wt(n),done:r}}})}intersection(e){return new Set(this).intersection(e)}union(e){return new Set(this).union(e)}difference(e){return new Set(this).difference(e)}symmetricDifference(e){return new Set(this).symmetricDifference(e)}isSubsetOf(e){return new Set(this).isSubsetOf(e)}isSupersetOf(e){return new Set(this).isSupersetOf(e)}isDisjointFrom(e){return new Set(this).isDisjointFrom(e)}replace(e){return or(e)&&(e=new Set(e)),Array.isArray(e)||d(e)?ct(()=>{let t=d(e)?e:new Set(e);if(t.size!==0)if(this.ft.size!==0){for(let e of this.ft.values())t.has(this.Wt(e))||this.delete(e);t.forEach(e=>this.add(e))}else t.forEach(e=>this.add(e));else this.clear()}):e!=null&&t(41,e),this}toJSON(){return Array.from(this)}toString(){return`[object ObservableSet]`}[Symbol.iterator](){return this.values()}get[Symbol.toStringTag](){return`Set`}},or=l(`ObservableSet`,ar);let sr=Object.create(null),cr=`remove`;var lr=class{constructor(e,t=new Map,n,r=Yt){this.h=void 0,this.j=void 0,this.tt=void 0,this.ut=void 0,this.lt=void 0,this.ot=void 0,this.st=void 0,this.v=void 0,this.p=void 0,this.Xt=void 0,this.Qt=void 0,this.O=void 0,this.V=void 0,this.h=e,this.j=t,this.tt=n,this.ut=r,this.lt=new Wt(`ObservableObject.keys`),this.p=o(this.h)}_(e){return(this.j.get(e)??this.vt(e)??this.bt(e)).get()}vt(e){let t=this.O?.get(e);if(!t)return;this.O.delete(e),this.O.size===0&&(this.O=void 0);let n=t();return this.j.set(e,n),n}bt(e){let t=this.V?.get(e);if(!t)return;this.V.delete(e),this.V.size===0&&(this.V=void 0);let n=t();return this.j.set(e,n),n}M(e,t){let n=this.j.get(e)??this.vt(e)??this.bt(e);if(n instanceof yn)return n.set(t),!0;if(dt(this)){let n=O(this,{type:Yn,object:this.v||this.h,name:e,newValue:t});if(!n)return null;t=n.newValue}if((t=n.jt(t))!==P.UNCHANGED){let r=pt(this),i=r?{type:Yn,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.rt,name:e,newValue:t}:null;n.Ot(t),r&&ht(this,i)}return!0}Tt(e){return P.trackingDerivation&&!p(this.h,e)&&this.et(e),this.h[e]}Bt(e,t,n=!1){return p(this.h,e)?this.j.has(e)?this.M(e,t):n?Reflect.set(this.h,e,t):(this.h[e]=t,!0):this.u(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.ut,n)}et(e){if(!P.trackingDerivation)return e in this.h;this.Qt||=new Map;let t=this.Qt.get(e);return t||(t=new _n(e in this.h,y,`ObservableObject.key?`,!1),this.Qt.set(e,t)),t.get()}u(e,t,n,r=!1){return!0===n&&(n=this.ut),!1===n?this.l(e,t,r):n.u(this,e,t,r)}l(e,t,n=!1){try{Pe();let r=this.Dt(e);if(!r)return r;if(dt(this)){let n=O(this,{object:this.v||this.h,name:e,type:`add`,newValue:t.value});if(!n)return null;let{newValue:r}=n;t.value!==r&&(t=Ft({},t,{value:r}))}if(n){if(!Reflect.defineProperty(this.h,e,t))return!1}else It(this.h,e,t);this.Yt(e,t.value)}finally{Fe()}return!0}S(e,t,n,r=!1){try{Pe();let i=this.Dt(e);if(!i)return i;if(dt(this)){let n=O(this,{object:this.v||this.h,name:e,type:`add`,newValue:t});if(!n)return null;t=n.newValue}let a=wt(e),o={configurable:!P.safeDescriptors||this.p,enumerable:!0,get:a.get,set:a.set};if(r){if(!Reflect.defineProperty(this.h,e,o))return!1}else It(this.h,e,o);let s=new _n(t,n,`ObservableObject.key`,!1);this.j.set(e,s),this.Yt(e,s.rt)}finally{Fe()}return!0}m(e,t,n=!1){try{Pe();let r=this.Dt(e);if(!r)return r;if(dt(this)&&!O(this,{object:this.v||this.h,name:e,type:`add`,newValue:void 0}))return null;t.name||=`ObservableObject.key`,t.context=this.v||this.h;let i=wt(e),a={configurable:!P.safeDescriptors||this.p,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.h,e,a))return!1}else It(this.h,e,a);this.j.set(e,new yn(t)),this.Yt(e,void 0)}finally{Fe()}return!0}Dt(e,t=!1){if(!p(this.h,e))return!0;if(dt(this)&&!O(this,{object:this.v||this.h,name:e,type:cr}))return null;try{var n;Pe();let r=pt(this),i=this.j.get(e),a;if(i||!r||(a=A(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 _n&&(a=i.rt),Re(i)),this.lt.reportChanged(),(n=this.Qt)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&ht(this,{type:cr,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{Fe()}return!0}Yt(e,t){var n;let r=pt(this);r&&r&&ht(this,r?{type:`add`,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,name:e,newValue:t}:null),(n=this.Qt)==null||(n=n.get(e))==null||n.set(!0),this.lt.reportChanged()}it(){return this.lt.reportObserved(),Ht(this.h)}nt(){return this.lt.reportObserved(),Object.keys(this.h)}};let ur=l(`ObservableObjectAdministration`,lr),dr=Lt.toString,fr=globalThis.Iterator?.prototype||{};e.$mobx=j,e.FlowCancellationError=Vn,e.ObservableMap=nr,e.ObservableSet=ar,e.Reaction=Tn,e._allowStateChanges=Se,e._allowStateChangesInsideComputed=Ue,e._allowStateReadsEnd=function(e){P.allowStateReads=e},e._allowStateReadsStart=function(e){let t=P.allowStateReads;return P.allowStateReads=e,t},e._autoAction=In,e._autoActionBound=Rn,e._endAction=D,e._getAdministration=Dt,e._getGlobalState=function(){return P},e._interceptReads=function(e,t,n){let r;return rr(e)||bt(e)||vn(e)?r=Dt(e):Tt(e)&&(r=Dt(e,t)),r.dehancer=typeof t==`function`?t:n,()=>{r.dehancer=void 0}},e._isComputingDerivation=function(){return P.trackingDerivation!==null},e._resetGlobalState=function(){let e=new Sn;for(let t in e)xn.indexOf(t)===-1&&(P[t]=e[t]);P.allowStateChanges=!P.enforceActions},e._startAction=xe,e.action=Fn,e.actionBound=Ln,e.autorun=Ge,e.compareDefault=Kt,e.compareIdentity=function(e,t){return e===t},e.compareShallow=function(e,t){return At(e,t,1)},e.compareStructural=_,e.computed=dn,e.computedStruct=un,e.configure=function(e){!0===e.isolateGlobalState&&function(){if((P.pendingReactions.length||P.inBatch||P.isRunningReactions)&&t(36),wn=!0,Cn){let e=globalThis;--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),P=new Sn}}();let{enforceActions:n}=e;if(n!==void 0){let e=n===Bn?Bn:n===`observed`;P.enforceActions=e,P.allowStateChanges=!0!==e&&e!==Bn}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(t=>{t in e&&(P[t]=!!e[t])}),P.allowStateReads=!P.observableRequiresReaction,e.reactionScheduler&&function(e){let t=Dn;Dn=n=>e(()=>t(n))}(e.reactionScheduler)},e.createAtom=g,e.defineProperty=function(e,n,r){if(Tt(e))return e[j].l(n,r);t(39)},e.entries=function(e){return Tt(e)?nt(e).map(t=>[t,e[t]]):rr(e)?nt(e).map(t=>[t,e.get(t)]):or(e)?Array.from(e.entries()):bt(e)?e.map((e,t)=>[t,e]):void t(7)},e.extendObservable=Je,e.flow=Wn,e.flowBound=Gn,e.flowResult=function(e){return e},e.get=function(e,n){if(rt(e,n))return Tt(e)?e[j].Tt(n):rr(e)?e.get(n):bt(e)?e[n]:void t(11)},e.getAtom=Et,e.getDebugName=Ot,e.getDependencyTree=function(e,t){return Ye(Et(e,t))},e.getObserverTree=function(e,t){return Xe(Et(e,t))},e.has=rt,e.intercept=function(e,t,n){return r(n)?function(e,t,n){return ft(Dt(e,t),n)}(e,t,n):function(e,t){return ft(Dt(e),t)}(e,t)},e.isAction=We,e.isBoxedObservable=vn,e.isComputed=function(e){return $e(e)},e.isComputedProp=function(e,t){return $e(e,t)},e.isFlow=Qe,e.isFlowCancellationError=function(e){return e instanceof Vn},e.isObservable=tt,e.isObservableArray=bt,e.isObservableMap=rr,e.isObservableObject=Tt,e.isObservableProp=function(e,t){return et(e,t)},e.isObservableSet=or,e.keys=nt,e.makeAutoObservable=function(e,t,n){return o(e)?Je(e,e,t,n):(kt(()=>{let r=Ct(e,n)[j];if(!e[qn]){let t=Object.getPrototypeOf(e),n=new Set([...Ht(e),...Ht(t)]);n.delete(`constructor`),n.delete(j),c(t,qn,n)}e[qn].forEach(e=>gt(r,e,!t||!(e in t)||t[e]))}),e)},e.makeObservable=function(e,t,n){return kt(()=>{let r=Ct(e,n)[j];Ht(t).forEach(e=>gt(r,e,t[e]))}),e},e.observable=sn,e.observableDeep=an,e.observableRef=nn,e.observableShallow=rn,e.observableStruct=on,e.observe=function(e,t,n,i){return r(n)?function(e,t,n,r){return at(Dt(e,t),n,r)}(e,t,n,i):function(e,t,n){let r=Dt(e);if(bt(e))n&&t({observableKind:`array`,object:r.v,debugObjectName:r.ct.tt,type:`splice`,index:0,added:r.j.slice(),addedCount:r.j.length,removed:[],removedCount:0});else if(!rr(e)&&!or(e)&&!Tt(e))return at(r,t,n);return mt(r,t)}(e,t,n)},e.onBecomeObserved=function(e,t,n){return qe(`onBO`,e,t,n)},e.onBecomeUnobserved=function(e,t,n){return qe(`onBUO`,e,t,n)},e.onReactionError=function(e){return P.globalReactionErrorHandlers.push(e),()=>{let t=P.globalReactionErrorHandlers.indexOf(e);t>=0&&P.globalReactionErrorHandlers.splice(t,1)}},e.override=qt,e.ownKeys=it,e.reaction=function(e,t,n=zt){function r(){if(p=!1,h.isDisposed)return;let t=!1,r=d;h.track(()=>{let n=Se(!1,()=>e(h));t=f||!m(d,n),d=n}),(f&&n.fireImmediately||!f&&t)&&o(d,r,h),f=!1}var i;let a=n.name??`Reaction`,o=Fn(a,n.onError?(s=n.onError,c=t,function(){try{return c.apply(this,arguments)}catch(e){s.call(this,e)}}):t);var s,c;let l=!n.scheduler&&!n.delay,u=Ke(n),d,f=!0,p=!1,m=n.equals||Kt,h=new Tn(a,()=>{f||l?r():p||(p=!0,u(r))},n.onError,n.requiresObservable);return n!=null&&(i=n.signal)!=null&&i.aborted||h.Y(),h.Z(n?.signal)},e.remove=function(e,n){Tt(e)?e[j].Dt(n):rr(e)||or(e)?e.delete(n):bt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=Ue,e.set=function e(n,r,i){if(arguments.length===2&&!or(n)){Pe();let t=r;try{for(let r in t)e(n,r,t[r])}finally{Fe()}return}Tt(n)?n[j].Bt(r,i):rr(n)?n.set(r,i):or(n)?n.add(r):bt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(42,r),Pe(),r>=n.length&&(n.length=r+1),n[r]=i,Fe()):t(8)},e.spy=function(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}},e.toJS=function(e){return st(e,new Map)},e.transaction=ct,e.untracked=De,e.values=function(e){return Tt(e)?nt(e).map(t=>e[t]):rr(e)?nt(e).map(t=>e.get(t)):or(e)?Array.from(e.values()):bt(e)?e.slice():void t(6)},e.when=function(e,t,n){return arguments.length===1||t&&typeof t==`object`?function(e,t){var n;if(t!=null&&(n=t.signal)!=null&&n.aborted)return Ft(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:()=>null});let r,i,a=new Promise((n,a)=>{var o;let s=lt(e,n,Ft({},t,{onError:a}));r=()=>{s(),a(Error(`WHEN_CANCELLED`))},i=()=>{s(),a(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,i)}).finally(()=>{var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,i)});return a.cancel=r,a}(e,t):lt(e,t,n||{})}})),M_=ye((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t={0:`Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,1(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.`,19(e){return`Cannot initialize from classes that inherit from Map: `+e.constructor.name},20(e){return`Cannot initialize map from `+e},21(e){return`Cannot convert to map from '${e}'`},23:`It is not possible to get index atoms from arrays`,24(e){return`Cannot obtain administration from `+e},25(e,t){return`the entry '${e}' does not exist in the observable map '${t}'`},26:`please specify a property`,27(e,t){return`no observable property '${e.toString()}' found on the observable object '${t}'`},28(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(e,t){return`Cycle detected in computation ${e}: ${t}`},33(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(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(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`,40(e){return`Out of range: `+e},41(e){return`Cannot initialize set from `+e},42(e){return`Invalid index: '${e}'`},43(e,t,n){return`Cannot apply '${e}' to '${t}' (kind: ${n}):\n'${e}' can only be used on properties with a function value.`},44(e){return`'${e}' can only be used with 'makeObservable'`}};function n(e,...n){{let r=typeof e==`string`?e:t[e];throw typeof r==`function`&&(r=r.apply(null,n)),Error(`[MobX] ${r}`)}}let r=Object.assign,i=Object.getOwnPropertyDescriptor,a=Object.defineProperty,o=Object.prototype,s=[];Object.freeze(s);let c={};Object.freeze(c);let l=Object.toString();function u(){return++M.mobxGuid}function d(e){let t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}let f=()=>{};function p(e){return typeof e==`function`}function m(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function h(e){return typeof e==`object`&&!!e}function g(e){if(!h(e))return!1;let t=Object.getPrototypeOf(e);if(t==null)return!0;let n=ie(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===l}function _(e){let t=e?.constructor;return t?t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`:!1}function v(e,t,n){a(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function y(e,t,n){a(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function b(e,t){let n=`isMobX`+e;return t.prototype[n]=!0,function(e){return h(e)&&e[n]===!0}}function x(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function S(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function C(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function ee(e){let t=Object.keys(e),n=Object.getOwnPropertySymbols(e);return n.length?[...t,...n.filter(t=>o.propertyIsEnumerable.call(e,t))]:t}let te=Reflect.ownKeys;function ne(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function re(e){return e===null?null:typeof e==`object`?``+e:e}function ie(e,t){return o.hasOwnProperty.call(e,t)}let ae=Object.getOwnPropertyDescriptors;function w(e,t){return!!(e&t)}function T(e,t,n){return n?e|=t:e&=~t,e}function oe(e,t){t.includes(e.kind)||n(`The decorator applied to '${String(e.name)}' cannot be used on a ${e.kind} element`)}let E=Symbol(`mobx administration`);var se=class{constructor(e=`Atom@`+u()){this.name_=void 0,this.flags_=0,this.observers_=null,this.lastAccessedBy_=0,this.lowestObserverState_=-1,this.onBOL=void 0,this.onBUOL=void 0,this.name_=e}get isBeingObserved(){return w(this.flags_,1)}set isBeingObserved(e){this.flags_=T(this.flags_,1,e)}get isPendingUnobservation(){return w(this.flags_,2)}set isPendingUnobservation(e){this.flags_=T(this.flags_,2,e)}get diffValue(){return+!!w(this.flags_,4)}set diffValue(e){this.flags_=T(this.flags_,4,e===1)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}reportObserved(){return ln(this)}reportChanged(){an(),un(this),on()}toString(){return this.name_}};let ce=b(`Atom`,se);function le(e,t=f,n=f){let r=new se(e);return t!==f&&(r.onBOL=new Set([t])),n!==f&&(r.onBUOL=new Set([n])),r}function ue(e,t){return e===t}function de(e,t){return Pi(e,t)}function fe(e,t){return Pi(e,t,1)}let pe=Object.is;function me(e,t,n){return e===null||typeof e!=`object`&&typeof e!=`function`||br(e)?e:Array.isArray(e)?O.array(e,{name:n}):g(e)?O.object(e,void 0,{name:n}):x(e)?O.map(e,{name:n}):C(e)?O.set(e,{name:n}):typeof e==`function`&&!Rn(e)&&!dr(e)?_(e)?sr(e):Pn(n,e):e}function he(e,t,r){if(e==null||Ei(e)||fi(e)||F(e)||vi(e))return e;if(Array.isArray(e))return O.array(e,{name:r,deep:!1});if(g(e))return O.object(e,void 0,{name:r,deep:!1});if(x(e))return O.map(e,{name:r,deep:!1});if(C(e))return O.set(e,{name:r,deep:!1});n(`The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets`)}function ge(e){return e}function _e(e,t){return br(e)&&n(`observable.struct should not be used with observable values`),Pi(e,t)?t:e}let ve=`override`,ye={annotationType_:ve,make_:xe,extend_:D};function be(e){return e.annotationType_===ve}function xe(e,t){return e.isPlainObject_&&n(`Cannot apply '${this.annotationType_}' to '${e.name_}.${t.toString()}':\n'${this.annotationType_}' cannot be used on plain objects.`),ie(e.appliedAnnotations_,t)||n(`'${e.name_}.${t.toString()}' is annotated with '${this.annotationType_}', but no such annotated member was found on prototype.`),0}function D(e,t,r,i){n(44,this.annotationType_)}function Se(e,t){return{annotationType_:e,options_:t,make_:Ce,extend_:we}}function Ce(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:Rn(n.value)?1:(a(r,t,De(e,this,t,n,!1)),2)}function we(e,t,n,r){let i=De(e,this,t,n);return e.defineProperty_(t,i,r)}function Te(e,t,r){oe(r,[`method`,`field`]);let{kind:i,name:a,addInitializer:o}=r,s=e,c=e=>xt(s.options_?.name??a.toString(),e,s.options_?.autoAction??!1);if(i==`field`)return function(e){var t;let n=e;return Rn(n)||(n=c(n)),(t=s.options_)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n};if(i==`method`){var l;return Rn(t)||(t=c(t)),(l=s.options_)!=null&&l.bound&&o(function(){let e=this,t=e[a].bind(e);t.isMobxAction=!0,e[a]=t}),t}n(43,s.annotationType_,String(a),i)}function Ee(e,{annotationType_:t},r,{value:i}){p(i)||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' can only be used on properties with a function value.`)}function De(e,t,n,r,i=M.safeDescriptors){var a,o;Ee(e,t,n,r);let{value:s}=r;return(a=t.options_)!=null&&a.bound&&(s=s.bind(e.proxy_??e.target_)),{value:xt(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 Oe(e,t){return{annotationType_:e,options_:t,make_:ke,extend_:Ae}}function ke(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&&(!ie(e.target_,t)||!dr(e.target_[t]))&&this.extend_(e,t,n,!1)===null?0:dr(n.value)?1:(a(r,t,Ne(e,this,t,n,!1,!1)),2)}function Ae(e,t,n,r){let i=Ne(e,this,t,n,this.options_?.bound);return e.defineProperty_(t,i,r)}function je(e,t,n){var r;oe(n,[`method`]);let{name:i,addInitializer:a}=n;return dr(t)||(t=sr(t)),(r=e.options_)!=null&&r.bound&&a(function(){let e=this,t=e[i].bind(e);t.isMobXFlow=!0,e[i]=t}),t}function Me(e,{annotationType_:t},r,{value:i}){p(i)||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' can only be used on properties with a generator function value.`)}function Ne(e,t,n,r,i,a=M.safeDescriptors){Me(e,t,n,r);let{value:o}=r;return dr(o)||(o=sr(o)),i&&(o=o.bind(e.proxy_??e.target_),o.isMobXFlow=!0),{value:o,configurable:a?e.isPlainObject_:!0,enumerable:!1,writable:!a}}function Pe(e,t){return{annotationType_:e,options_:t,make_:Fe,extend_:Ie}}function Fe(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Ie(e,t,n,i){return Re(e,this,t,n),e.defineComputedProperty_(t,r({},this.options_,{get:n.get,set:n.set}),i)}function Le(e,t,n){oe(n,[`getter`]);let i=e,{name:a,addInitializer:o}=n,s;function c(e,n){let o=r({},i.options_,{get:t,context:e});return o.name||=`${n.name_}.${a.toString()}`,new At(o)}return o(function(){let e=Ci(this)[E],n=this,r=e.values_.get(a);r instanceof At&&r.derivation!==t&&e.values_.delete(a),(e.lazyComputedKeys_??=new Map).set(a,()=>c(n,e))}),function(){let e=this[E],n=e.values_.get(a);if(n instanceof At&&n.derivation!==t){let t=s?.get(this);return t||(t=c(this,e),(s??=new WeakMap).set(this,t)),t.get()}return e.getObservablePropValue_(a)}}function Re(e,{annotationType_:t},r,{get:i}){i||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' can only be used on getter(+setter) properties.`)}function ze(e,t){return{annotationType_:e,options_:t,make_:Be,extend_:Ve}}function Be(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Ve(e,t,n,r){return Ue(e,this,t,n),e.defineObservableProperty_(t,n.value,this.options_?.enhancer_??me,r)}function He(e,t,r){if(r.kind===`field`)throw n(`Please use \`@observable accessor ${String(r.name)}\` instead of \`@observable ${String(r.name)}\``);oe(r,[`accessor`]);let i=e,{kind:a,name:o}=r;if(a!==`accessor`)return;function s(e,t){let n=Ci(e)[E];return(n.lazyObservableKeys_??=new Map).set(o,()=>new Ot(t,i.options_?.enhancer_??me,`${n.name_}.${o.toString()}`,!1)),n}return{get(){return(this[E]??s(this,t.get.call(this))).getObservablePropValue_(o)},set(e){return(this[E]??s(this,e)).setObservablePropValue_(o,e)},init(e){return s(this,e),e}}}function Ue(e,{annotationType_:t},r,i){`value`in i||n(`Cannot apply '${t}' to '${e.name_}.${r.toString()}':\n'${t}' cannot be used on getter/setter properties`)}let We=Ge();function Ge(e){return{annotationType_:`true`,options_:e,make_:Je,extend_:Ye}}let Ke=[We];function qe(e){let t=e.deep!==!1,n=!!e.autoBind,r=!t|(n?2:0);return Ke[r]??(Ke[r]=Ge({deep:t,autoBind:n}))}function Je(e,t,n,r){var i;if(n.get)return k.make_(e,t,n,r);if(n.set){let i=Rn(n.set)?n.set:xt(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:M.safeDescriptors?e.isPlainObject_:!0,set:i})===null?0:2:(a(r,t,{configurable:!0,set:i}),2)}if(r!==e.target_&&typeof n.value==`function`){var o;if(_(n.value)){var s;return((s=this.options_)!=null&&s.autoBind?cr:sr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?In:Pn).make_(e,t,n,r)}let c=this.options_?.deep===!1?lt:O;return typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),c.make_(e,t,n,r)}function Ye(e,t,n,r){var i;return n.get?k.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:M.safeDescriptors?e.isPlainObject_:!0,set:xt(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?lt:O).extend_(e,t,n,r))}function Xe(e,t){return r(function(r,i){if(i&&typeof i.kind==`string`)return t(e,r,i);n(`Invalid arguments for \`${e.annotationType_}\``)},e)}let Ze={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Ze);function Qe(e){return e||Ze}let $e=ze(`observable`),et=ze(`observable.ref`,{enhancer_:ge}),tt=ze(`observable.shallow`,{enhancer_:he}),nt=ze(`observable.struct`,{enhancer_:_e});function rt(e){return Xe(e,He)}function it(e){return e.deep===!0?me:e.deep===!1?ge:ot(e.defaultDecorator)}function at(e){return e?e.defaultDecorator??qe(e):void 0}function ot(e){return e?e.options_?.enhancer_??me:me}function st(e,t,n){return t&&typeof t.kind==`string`?He($e,e,t):br(e)?e:g(e)?O.object(e,t,n):Array.isArray(e)?O.array(e,t):x(e)?O.map(e,t):C(e)?O.set(e,t):typeof e==`object`&&e?e:O.box(e,t)}let ct={box(e,t){let n=Qe(t);return new Ot(e,it(n),n.name,!0,n.equals)},array(e,t){let n=Qe(t);return ai(e,it(n),n.name)},map(e,t){let n=Qe(t);return new hi(e,it(n),n.name)},set(e,t){let n=Qe(t);return new _i(e,it(n),n.name)},object(e,t,n){return Mi(()=>Yn(Wr({},n),e,t))}},lt=rt(et),ut=rt(tt),dt=rt($e),ft=rt(nt);var O=r(st,$e,ct);let pt=`computed`;function mt(e){return Xe(e,Le)}let ht=Pe(pt),gt=mt(Pe(`computed.struct`,{equals:de})),k=function(e,t){if(t&&typeof t.kind==`string`)return Le(ht,e,t);if(g(e))return mt(Pe(pt,e));p(e)||n("First argument to `computed` should be an expression."),p(t)&&n("A setter as second argument is no longer supported, use `{ set: fn }` option instead");let r=g(t)?t:{};return r.get=e,r.name||=e.name||``,new At(r)};r(k,ht);let _t=0,vt=1,yt=i(()=>{},`name`)?.configurable??!1,bt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function xt(e,t,r=!1,i){p(t)||n("`action` can only be invoked on functions"),(typeof e!=`string`||!e)&&n(`actions should have valid names, got: '${e}'`);function o(){return St(e,r,t,i||this,arguments)}return o.isMobxAction=!0,o.toString=()=>t.toString(),yt&&(bt.value=e,a(o,`name`,bt)),o}function St(e,t,n,r,i){let a=Ct(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{wt(a)}}function Ct(e,t,n,r){let i=N()&&!!e,a=0;i&&(a=Date.now(),xn({type:P,name:e,object:n,arguments:r?Array.from(r):s}));let o=M.trackingDerivation,c=!t||!o;an();let l=M.allowStateChanges;c&&(Ht(),l=Et(!0));let u=M.allowStateReads;j(!0);let d={runAsAction_:c,prevDerivation_:o,prevAllowStateChanges_:l,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:vt++,parentActionId_:_t};return _t=d.actionId_,d}function wt(e){_t!==e.actionId_&&n(30),_t=e.parentActionId_,e.error_!==void 0&&(M.suppressReactionErrors=!0),Dt(e.prevAllowStateChanges_),Wt(e.prevAllowStateReads_),on(),e.runAsAction_&&Ut(e.prevDerivation_),e.notifySpy_&&Cn({time:Date.now()-e.startTime_}),M.suppressReactionErrors=!1}function Tt(e,t){let n=Et(e);try{return t()}finally{Dt(n)}}function Et(e){let t=M.allowStateChanges;return M.allowStateChanges=e,t}function Dt(e){M.allowStateChanges=e}var Ot=class extends se{constructor(e,t,n=`ObservableValue@`+u(),r=!0,i=pe){super(n),this.enhancer_=void 0,this.name_=void 0,this.equals_=void 0,this.hasUnreportedChange_=!1,this.interceptors_=void 0,this.changeListeners_=void 0,this.value_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=n,this.equals_=i,this.value_=t(e,void 0,n),r&&N()&&bn({type:`create`,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:this.value_})}dehanceValue(e){return this.dehancer===void 0?e:this.dehancer(e)}set(e){let t=this.value_;if(e=this.prepareNewValue_(e),e!==M.UNCHANGED){let n=N();n&&xn({type:ni,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Cn()}}prepareNewValue_(e){if(A(this),Gr(this)){let t=qr(this,{object:this,type:ni,newValue:e});if(!t)return M.UNCHANGED;e=t.newValue}return e=this.enhancer_(e,this.value_,this.name_),this.equals_(this.value_,e)?M.UNCHANGED:e}setNewValue_(e){let t=this.value_;this.value_=e,this.reportChanged(),Jr(this)&&Xr(this,{type:ni,object:this,newValue:e,oldValue:t})}get(){return this.reportObserved(),this.dehanceValue(this.value_)}raw(){return this.value_}toJSON(){return this.get()}toString(){return`${this.name_}[${this.value_}]`}valueOf(){return re(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let kt=b(`ObservableValue`,Ot);var At=class{constructor(e){this.dependenciesState_=-1,this.observing_=[],this.newObserving_=null,this.observers_=null,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=0,this.unboundDepsCount_=0,this.value_=new Mt(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,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@`+u(),e.set&&(this.setter_=xt(this.name_+`-setter`,e.set)),this.equals_=e.equals||pe,this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}onBecomeStale_(){fn(this)}onBO(){this.onBOL&&this.onBOL.forEach(e=>e())}onBUO(){this.onBUOL&&this.onBUOL.forEach(e=>e())}get isComputing(){return w(this.flags_,1)}set isComputing(e){this.flags_=T(this.flags_,1,e)}get isRunningSetter(){return w(this.flags_,2)}set isRunningSetter(e){this.flags_=T(this.flags_,2,e)}get isBeingObserved(){return w(this.flags_,4)}set isBeingObserved(e){this.flags_=T(this.flags_,4,e)}get isPendingUnobservation(){return w(this.flags_,8)}set isPendingUnobservation(e){this.flags_=T(this.flags_,8,e)}get diffValue(){return+!!w(this.flags_,16)}set diffValue(e){this.flags_=T(this.flags_,16,e===1)}get(){if(this.isComputing&&n(32,this.name_,this.derivation),M.inBatch===0&&(!this.observers_||this.observers_.size===0)&&!this.keepAlive_)Pt(this)&&(this.warnAboutUntrackedRead_(),an(),this.value_=this.computeValue_(!1),on());else{let e=this.isBeingObserved;if(ln(this),Pt(this)){let e=M.trackingContext;!e&&(this.keepAlive_||this.isBeingObserved)&&(M.trackingContext=this),this.trackAndCompute()&&dn(this),M.trackingContext=e}else !e&&this.isBeingObserved&&this.observing_.forEach(cn)}let e=this.value_;if(Nt(e))throw e.cause;return e}set(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_)}trackAndCompute(){let e=this.value_,t=this.dependenciesState_===-1,n=this.computeValue_(!0),r=t||Nt(e)||Nt(n)||!this.equals_(e,n);return r&&(this.value_=n,N()&&bn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r}computeValue_(e){this.isComputing=!0;let t=Et(!1),n;if(e)n=Lt(this,this.derivation,this.scope_);else if(M.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new Mt(e)}return Dt(t),this.isComputing=!1,n}suspend_(){this.keepAlive_||(Bt(this),this.value_=void 0)}warnAboutUntrackedRead_(){(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:M.computedRequiresReaction)&&console.warn(`[mobx] Computed value '${this.name_}' is being read outside a reactive context. Doing a full recompute.`)}toString(){return`${this.name_}[${this.derivation.toString()}]`}valueOf(){return re(this.get())}[Symbol.toPrimitive](){return this.valueOf()}};let jt=b(`ComputedValue`,At);var Mt=class{constructor(e){this.cause=void 0,this.cause=e}};function Nt(e){return e instanceof Mt}function Pt(e){switch(e.dependenciesState_){case 0:return!1;case-1:case 2:return!0;case 1:{let t=j(!0),n=Ht(),r=e.observing_,i=r.length;for(let a=0;a<i;a++){let i=r[a];if(jt(i)){if(M.disableErrorBoundaries)i.get();else try{i.get()}catch{return Ut(n),Wt(t),!0}if(e.dependenciesState_===2)return Ut(n),Wt(t),!0}}return Gt(e),Ut(n),Wt(t),!1}}}function Ft(){return M.trackingDerivation!==null}function A(e){let t=!!e.observers_&&e.observers_.size>0;!M.allowStateChanges&&(t||M.enforceActions===`always`)&&console.warn(`[MobX] `+(M.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 It(e){!M.allowStateReads&&M.observableRequiresReaction&&console.warn(`[mobx] Observable '${e.name_}' being read outside a reactive context.`)}function Lt(e,t,n){let r=j(!0);Gt(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++M.runId;let i=M.trackingDerivation;M.trackingDerivation=e,M.inBatch++;let a;if(M.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new Mt(e)}return M.inBatch--,M.trackingDerivation=i,zt(e),Rt(e),Wt(r),a}function Rt(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:M.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '${e.name_}' is created/updated without reading any observable value.`)}function zt(e){let t=e.observing_,n=e.observing_=e.newObserving_,r=0,i=0,a=e.unboundDepsCount_;for(let e=0;e<a;e++){let t=n[e];t.diffValue===0&&(t.diffValue=1,i!==e&&(n[i]=t),i++),t.dependenciesState_>r&&(r=t.dependenciesState_)}for(n.length=i,e.newObserving_=null,a=t.length;a--;){let n=t[a];n.diffValue===0&&nn(n,e),n.diffValue=0}for(;i--;){let t=n[i];t.diffValue===1&&(t.diffValue=0,tn(t,e))}r!==0&&(e.dependenciesState_=r,e.onBecomeStale_())}function Bt(e){let t=e.observing_;e.observing_=[];let n=t.length;for(;n--;)nn(t[n],e);e.dependenciesState_=-1}function Vt(e){let t=Ht();try{return e()}finally{Ut(t)}}function Ht(){let e=M.trackingDerivation;return M.trackingDerivation=null,e}function Ut(e){M.trackingDerivation=e}function j(e){let t=M.allowStateReads;return M.allowStateReads=e,t}function Wt(e){M.allowStateReads=e}function Gt(e){if(e.dependenciesState_===0)return;e.dependenciesState_=0;let t=e.observing_,n=t.length;for(;n--;)t[n].lowestObserverState_=0}let Kt=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`];var qt=class{constructor(){this.version=7,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.isRunningUnobservations=!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.safeDescriptors=!0}};let Jt=!0,Yt=!1,M=function(){let e=globalThis;return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Jt=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==7&&(Jt=!1),Jt?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new qt):(setTimeout(()=>{Yt||n(35)},1),new qt)}();function Xt(){if((M.pendingReactions.length||M.inBatch||M.isRunningReactions)&&n(36),Yt=!0,Jt){let e=globalThis;--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),M=new qt}}function Zt(){return M}function Qt(){let e=new qt;for(let t in e)Kt.indexOf(t)===-1&&(M[t]=e[t]);M.allowStateChanges=!M.enforceActions}function $t(e){return!!e.observers_&&e.observers_.size>0}function en(e){return e.observers_??new Set}function tn(e,t){(e.observers_??=new Set).add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function nn(e,t){let n=e.observers_;n&&(n.delete(t),n.size===0&&rn(e))}function rn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,M.pendingUnobservations.push(e))}function an(){M.inBatch++}function on(){--M.inBatch===0&&(gn(),!M.isRunningUnobservations&&M.pendingUnobservations.length>0&&sn())}function sn(){M.isRunningUnobservations=!0;try{let e=M.pendingUnobservations;for(let t=0;t<e.length;t++){let n=e[t];n.isPendingUnobservation=!1,(!n.observers_||n.observers_.size===0)&&(n.observers_=null,n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof At&&n.suspend_())}M.pendingUnobservations=[]}finally{M.isRunningUnobservations=!1}}function cn(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.observing_)==null||t.forEach(cn))}function ln(e){It(e);let t=M.trackingDerivation;return t===null?((!e.observers_||e.observers_.size===0)&&M.inBatch>0&&rn(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&M.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function un(e){var t;e.lowestObserverState_!==2&&(e.lowestObserverState_=2,(t=e.observers_)==null||t.forEach(e=>{e.dependenciesState_===0&&e.onBecomeStale_(),e.dependenciesState_=2}))}function dn(e){var t;e.lowestObserverState_!==2&&(e.lowestObserverState_=2,(t=e.observers_)==null||t.forEach(t=>{t.dependenciesState_===1?t.dependenciesState_=2:t.dependenciesState_===0&&(e.lowestObserverState_=0)}))}function fn(e){var t;e.lowestObserverState_===0&&(e.lowestObserverState_=1,(t=e.observers_)==null||t.forEach(e=>{e.dependenciesState_===0&&(e.dependenciesState_=1,e.onBecomeStale_())}))}var pn=class{constructor(e=`Reaction@`+u(),t,n,r){this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=-1,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.removeAbortListener_=void 0,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}get isDisposed(){return w(this.flags_,1)}set isDisposed(e){this.flags_=T(this.flags_,1,e)}get isScheduled(){return w(this.flags_,2)}set isScheduled(e){this.flags_=T(this.flags_,2,e)}get isTrackPending(){return w(this.flags_,4)}set isTrackPending(e){this.flags_=T(this.flags_,4,e)}get isRunning(){return w(this.flags_,8)}set isRunning(e){this.flags_=T(this.flags_,8,e)}get diffValue(){return+!!w(this.flags_,16)}set diffValue(e){this.flags_=T(this.flags_,16,e===1)}onBecomeStale_(){this.schedule_()}schedule_(){this.isScheduled||(this.isScheduled=!0,M.pendingReactions.push(this),gn())}runReaction_(){if(!this.isDisposed){an(),this.isScheduled=!1;let e=M.trackingContext;if(M.trackingContext=this,Pt(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&N()&&bn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}M.trackingContext=e,on()}}track(e){if(this.isDisposed)return;an();let t=N(),n;t&&(n=Date.now(),xn({name:this.name_,type:`reaction`})),this.isRunning=!0;let r=M.trackingContext;M.trackingContext=this;let i=Lt(this,e,void 0);M.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Bt(this),Nt(i)&&this.reportExceptionInDerivation_(i.cause),t&&Cn({time:Date.now()-n}),on()}reportExceptionInDerivation_(e){if(this.errorHandler_){this.errorHandler_(e,this);return}if(M.disableErrorBoundaries)throw e;let t=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '${this}'`;M.suppressReactionErrors?console.warn(`[mobx] (error in reaction '${this.name_}' suppressed, fix error of causing action below)`):console.error(t,e),N()&&bn({type:`error`,name:this.name_,message:t,error:``+e}),M.globalReactionErrorHandlers.forEach(t=>t(e,this))}dispose(){if(!this.isDisposed){var e;this.isDisposed=!0,(e=this.removeAbortListener_)==null||e.call(this),this.isRunning||(an(),Bt(this),on())}}getDisposer_(e){let t=()=>this.dispose();return e!=null&&e.addEventListener&&!this.isDisposed&&(e.addEventListener(`abort`,t),this.removeAbortListener_=()=>e.removeEventListener==null?void 0:e.removeEventListener(`abort`,t)),t[E]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(t[Symbol.dispose]=t),t}toString(){return`Reaction[${this.name_}]`}};function mn(e){return M.globalReactionErrorHandlers.push(e),()=>{let t=M.globalReactionErrorHandlers.indexOf(e);t>=0&&M.globalReactionErrorHandlers.splice(t,1)}}let hn=e=>e();function gn(){M.inBatch>0||M.isRunningReactions||hn(_n)}function _n(){M.isRunningReactions=!0;let e=M.pendingReactions,t=0;for(;e.length>0;){++t===100&&(console.error(`Reaction doesn't converge to a stable state after 100 iterations. Probably there is a cycle in the reactive function: ${e[0]}`),e.splice(0));let n=e.splice(0);for(let e=0,t=n.length;e<t;e++)n[e].runReaction_()}M.isRunningReactions=!1}let vn=b(`Reaction`,pn);function yn(e){let t=hn;hn=n=>e(()=>t(n))}function N(){return!!M.spyListeners.length}function bn(e){if(!M.spyListeners.length)return;let t=M.spyListeners;for(let n=0,r=t.length;n<r;n++)t[n](e)}function xn(e){bn(r({},e,{spyReportStart:!0}))}let Sn={type:`report-end`,spyReportEnd:!0};function Cn(e){bn(e?r({},e,{type:`report-end`,spyReportEnd:!0}):Sn)}function wn(e){return M.spyListeners.push(e),d(()=>{M.spyListeners=M.spyListeners.filter(t=>t!==e)})}let P=`action`,Tn=`autoAction`,En=`<unnamed action>`,Dn=Se(P),On=Se(`action.bound`,{bound:!0}),kn=Se(Tn,{autoAction:!0}),An=Se(`autoAction.bound`,{autoAction:!0,bound:!0});function jn(e){return Xe(e,Te)}function Mn(e){return function(t,r){if(r&&typeof r.kind==`string`)return Te(e?kn:Dn,t,r);if(p(t))return xt(t.name||En,t,e);if(p(r))return xt(t,r,e);if(m(t))return jn(Se(e?Tn:P,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}let Nn=Mn(!1);r(Nn,Dn);let Pn=Mn(!0);r(Pn,kn);let Fn=jn(On),In=jn(An);function Ln(e){return St(e.name||En,!1,e,this,void 0)}function Rn(e){return p(e)&&e.isMobxAction===!0}function zn(e,t=c){var r;p(e)||n(`Autorun expects a function as first argument`),Rn(e)&&n(`Autorun does not accept actions since actions are untrackable`);let i=t?.name??(e.name||`Autorun@`+u()),a=!t.scheduler&&!t.delay,o;if(a)o=new pn(i,function(){this.track(s)},t.onError,t.requiresObservable);else{let e=Vn(t),n=!1;o=new pn(i,()=>{n||(n=!0,e(()=>{n=!1,o.isDisposed||o.track(s)}))},t.onError,t.requiresObservable)}function s(){e(o)}return t!=null&&(r=t.signal)!=null&&r.aborted||o.schedule_(),o.getDisposer_(t?.signal)}let Bn=e=>e();function Vn(e){return e.scheduler?e.scheduler:e.delay?t=>setTimeout(t,e.delay):Bn}function Hn(e,t,r=c){var i;(!p(e)||!p(t))&&n(`First and second argument to reaction should be functions`),g(r)||n(`Third argument of reactions should be an object`);let a=r.name??`Reaction@`+u(),o=Nn(a,r.onError?Un(r.onError,t):t),s=!r.scheduler&&!r.delay,l=Vn(r),d=!0,f=!1,m,h=r.equals||pe,_=new pn(a,()=>{d||s?v():f||(f=!0,l(v))},r.onError,r.requiresObservable);function v(){if(f=!1,_.isDisposed)return;let t=!1,n=m;_.track(()=>{let n=Tt(!1,()=>e(_));t=d||!h(m,n),m=n}),(d&&r.fireImmediately||!d&&t)&&o(m,n,_),d=!1}return r!=null&&(i=r.signal)!=null&&i.aborted||_.schedule_(),_.getDisposer_(r?.signal)}function Un(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}function Wn(e,t,n){return Kn(`onBO`,e,t,n)}function Gn(e,t,n){return Kn(`onBUO`,e,t,n)}function Kn(e,t,n,r){let i=typeof r==`function`?ki(t,n):ki(t),a=p(r)?r:n,o=`${e}L`;return i[o]?i[o].add(a):i[o]=new Set([a]),function(){let e=i[o];e&&(e.delete(a),e.size===0&&delete i[o])}}let qn=`always`;function Jn(e){e.isolateGlobalState===!0&&Xt();let{enforceActions:t}=e;if(t!==void 0){let e=t===qn?qn:t===`observed`;M.enforceActions=e,M.allowStateChanges=!(e===!0||e===qn)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(t=>{t in e&&(M[t]=!!e[t])}),M.allowStateReads=!M.observableRequiresReaction,M.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&yn(e.reactionScheduler)}function Yn(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),F(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),g(t)||n(`'extendObservable' only accepts plain objects as second argument`),(br(t)||br(r))&&n(`Extending an object with another observable (object) is not supported`);let a=ae(t);return Mi(()=>{let t=Ci(e,i)[E];te(a).forEach(e=>{t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function Xn(e,t){return Zn(ki(e,t))}function Zn(e){let t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=er(e.observing_).map(Zn)),t}function Qn(e,t){return $n(ki(e,t))}function $n(e){let t={name:e.name_};return $t(e)&&(t.observers=Array.from(en(e),$n)),t}function er(e){return Array.from(new Set(e))}let tr=0;var nr=class extends Error{constructor(){super(`FLOW_CANCELLED`),Object.setPrototypeOf(this,new.target.prototype),this.name=`FlowCancellationError`}toString(){return`Error: ${this.message}`}};function rr(e){return e instanceof nr}function ir(e){return Xe(e,je)}let ar=Oe(`flow`),or=Oe(`flow.bound`,{bound:!0}),sr=r(function(e,t){if(t&&typeof t.kind==`string`)return je(ar,e,t);arguments.length!==1&&n(`Flow expects single argument with generator function`);let r=e,i=r.name||`<unnamed flow>`,a=function(){let e=this,t=arguments,n=++tr,a=Nn(`${i} - runid: ${n} - init`,r).apply(e,t),o,s,c=new Promise(function(e,t){let r=0;o=t;function c(e){s=void 0;let o;try{o=Nn(`${i} - runid: ${n} - yield ${r++}`,a.next).call(a,e)}catch(e){return t(e)}u(o)}function l(e){s=void 0;let o;try{o=Nn(`${i} - runid: ${n} - yield ${r++}`,a.throw).call(a,e)}catch(e){return t(e)}u(o)}function u(n){if(p(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=Nn(`${i} - runid: ${n} - cancel`,function(){try{s&&lr(s);let e=a.return(void 0),t=Promise.resolve(e.value);t.then(f,f),lr(t),o(new nr)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},ar),cr=ir(or);function lr(e){p(e.cancel)&&e.cancel()}function ur(e){return e}function dr(e){return e?.isMobXFlow===!0}function fr(e,t,r){let i;if(F(e)||fi(e)||kt(e))i=Ai(e);else if(Ei(e)){if(!m(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=Ai(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,()=>{i.dehancer=void 0}):n(`An intercept reader was already established`)}function pr(e,t,n){return p(n)?hr(e,t,n):mr(e,t)}function mr(e,t){return Kr(Ai(e),t)}function hr(e,t,n){return Kr(Ai(e,t),n)}function gr(e,t){var n;if(t===void 0)return jt(e);if(Ei(e)===!1)return!1;let r=e[E];return(n=r.lazyComputedKeys_)!=null&&n.has(t)?!0:r.values_.has(t)?jt(ki(e,t)):!1}function _r(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):gr(e)}function vr(e,t){return m(t)?gr(e,t):n(`isComputed expected a property name as second argument`)}function yr(e,t){if(!e)return!1;if(t!==void 0){if(F(e)||fi(e))return n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`);if(Ei(e)){var r,i;let n=e[E];return n.values_.has(t)||!!((r=n.lazyComputedKeys_)!=null&&r.has(t))||!!((i=n.lazyObservableKeys_)!=null&&i.has(t))}return!1}return Ei(e)||!!e[E]||ce(e)||vn(e)||jt(e)}function br(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),yr(e)}function xr(e,t){return m(t)?yr(e,t):n(`expected a property name as second argument`)}function Sr(e){if(Ei(e))return e[E].keys_();if(F(e)||vi(e))return Array.from(e.keys());if(fi(e))return e.map((e,t)=>t);n(5)}function Cr(e){if(Ei(e))return Sr(e).map(t=>e[t]);if(F(e))return Sr(e).map(t=>e.get(t));if(vi(e))return Array.from(e.values());if(fi(e))return e.slice();n(6)}function wr(e){if(Ei(e))return Sr(e).map(t=>[t,e[t]]);if(F(e))return Sr(e).map(t=>[t,e.get(t)]);if(vi(e))return Array.from(e.entries());if(fi(e))return e.map((e,t)=>[t,e]);n(7)}function Tr(e,t,r){if(arguments.length===2&&!vi(e)){an();let n=t;try{for(let t in n)Tr(e,t,n[t])}finally{on()}return}Ei(e)?e[E].set_(t,r):F(e)?e.set(t,r):vi(e)?e.add(t):fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(42,t),an(),t>=e.length&&(e.length=t+1),e[t]=r,on()):n(8)}function Er(e,t){Ei(e)?e[E].delete_(t):F(e)||vi(e)?e.delete(t):fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function Dr(e,t){if(Ei(e))return e[E].has_(t);if(F(e)||vi(e))return e.has(t);if(fi(e))return t>=0&&t<e.length;n(10)}function Or(e,t){if(Dr(e,t)){if(Ei(e))return e[E].get_(t);if(F(e))return e.get(t);if(fi(e))return e[t];n(11)}}function kr(e,t,r){if(Ei(e))return e[E].defineProperty_(t,r);n(39)}function Ar(e){if(Ei(e))return e[E].ownKeys_();n(38)}function jr(e,t,n,r){return p(n)?Nr(e,t,n,r):Mr(e,t,n)}function Mr(e,t,r){let i=Ai(e);if(fi(e))r&&t({observableKind:`array`,object:i.proxy_,debugObjectName:i.atom_.name_,type:`splice`,index:0,added:i.values_.slice(),addedCount:i.values_.length,removed:[],removedCount:0});else if(F(e))r===!0&&n("`observe` doesn't support fireImmediately=true in combination with maps.");else if(vi(e))r===!0&&n("`observe` doesn't support fireImmediately=true in combination with sets.");else if(Ei(e))r===!0&&n("`observe` doesn't support the fire immediately property for observable objects.");else return Pr(i,t,r);return Yr(i,t)}function Nr(e,t,n,r){return Pr(Ai(e,t),n,r)}function Pr(e,t,n){if(jt(e)){let r=!0,i;return zn(()=>{let a=e.get();if(!r||n){let n=Ht();t({observableKind:`computed`,debugObjectName:e.name_,type:ni,object:e,newValue:a,oldValue:i}),Ut(n)}r=!1,i=a})}return n&&t({observableKind:`value`,debugObjectName:e.name_,object:e,type:ni,newValue:e.value_,oldValue:void 0}),Yr(e,t)}function Fr(e,t,n){return e.set(t,n),n}function Ir(e,t){if(typeof e!=`object`||!e||e instanceof Date||!br(e))return e;if(kt(e)||jt(e))return Ir(e.get(),t);if(t.has(e))return t.get(e);if(fi(e)){let n=Fr(t,e,Array(e.length));return e.forEach((e,r)=>{n[r]=Ir(e,t)}),n}if(vi(e)){let n=Fr(t,e,new Set);return e.forEach(e=>{n.add(Ir(e,t))}),n}if(F(e)){let n=Fr(t,e,new Map);return e.forEach((e,r)=>{n.set(r,Ir(e,t))}),n}else{let n=Fr(t,e,{});return Ar(e).forEach(r=>{o.propertyIsEnumerable.call(e,r)&&(n[r]=Ir(e[r],t))}),n}}function Lr(e,t){return t&&n(`toJS no longer supports options`),Ir(e,new Map)}function Rr(e,t=void 0){an();try{return e.apply(t)}finally{on()}}function zr(e,t,n){return arguments.length===1||t&&typeof t==`object`?Vr(e,t):Br(e,t,n||{})}function Br(e,t,n){let r;if(typeof n.timeout==`number`){let e=Error(`WHEN_TIMEOUT`);r=setTimeout(()=>{if(!a[E].isDisposed)if(a(),n.onError)n.onError(e);else throw e},n.timeout)}n.name=n.name||`When@`+u();let i=xt(n.name+`-effect`,t);var a=zn(t=>{Tt(!1,e)&&(t.dispose(),r&&clearTimeout(r),i())},n);return a}function Vr(e,t){var i;if(t&&t.onError)return n(`the options 'onError' and 'promise' cannot be combined`);if(t!=null&&(i=t.signal)!=null&&i.aborted)return r(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:()=>null});let a,o,s=new Promise((n,i)=>{var s;let c=Br(e,n,r({},t,{onError:i}));a=()=>{c(),i(Error(`WHEN_CANCELLED`))},o=()=>{c(),i(Error(`WHEN_ABORTED`))},t==null||(s=t.signal)==null||s.addEventListener==null||s.addEventListener(`abort`,o)}).finally(()=>{var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,o)});return s.cancel=a,s}function Hr(e){return e[E]}let Ur={has(e,t){return Hr(e).has_(t)},get(e,t){return Hr(e).get_(t)},set(e,t,n){return m(t)?Hr(e).set_(t,n,!0)??!0:!1},deleteProperty(e,t){return m(t)?Hr(e).delete_(t,!0)??!0:!1},defineProperty(e,t,n){return Hr(e).defineProperty_(t,n)??!0},ownKeys(e){return Hr(e).ownKeys_()},preventExtensions(e){n(13)}};function Wr(e,t){var n;return e=Ci(e,t),(n=e[E]).proxy_??(n.proxy_=new Proxy(e,Ur))}function Gr(e){return e.interceptors_!==void 0&&e.interceptors_.length>0}function Kr(e,t){let n=e.interceptors_;return n?n.push(t):n=e.interceptors_=[t],d(()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function qr(e,t){let r=Ht();try{let r=[...e.interceptors_||[]];for(let e=0,i=r.length;e<i&&(t=r[e](t),t&&!t.type&&n(14),t);e++);return t}finally{Ut(r)}}function Jr(e){return e.changeListeners_!==void 0&&e.changeListeners_.length>0}function Yr(e,t){let n=e.changeListeners_;return n?n.push(t):n=e.changeListeners_=[t],d(()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function Xr(e,t){let n=Ht(),r=e.changeListeners_;if(r){r=r.slice();for(let e=0,n=r.length;e<n;e++)r[e](t);Ut(n)}}function Zr(e,t,n){return Mi(()=>{let r=Ci(e,n)[E];te(t).forEach(e=>ei(r,e,t[e]))}),e}let Qr=Symbol(`mobx-keys`);function $r(e,t,r){return!g(e)&&!g(Object.getPrototypeOf(e))&&n(`'makeAutoObservable' can only be used for classes that don't have a superclass`),Ei(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),g(e)?Yn(e,e,t,r):(Mi(()=>{let n=Ci(e,r)[E];if(!e[Qr]){let t=Object.getPrototypeOf(e),n=new Set([...te(e),...te(t)]);n.delete(`constructor`),n.delete(E),v(t,Qr,n)}e[Qr].forEach(e=>ei(n,e,t&&e in t?t[e]:!0))}),e)}function ei(e,t,r){if(r===!0&&(r=e.defaultAnnotation_),r===!1)return;Oi(e,r,t),t in e.target_||n(1,r.annotationType_,`${e.name_}.${t.toString()}`);let a=e.target_;for(;a&&a!==o;){let n=i(a,t);if(n){let i=r.make_(e,t,n,a);if(i===0)return;if(i===1)break}a=Object.getPrototypeOf(a)}Di(e,r,t)}let ti=`splice`,ni=`update`,ri={get(e,t){let n=e[E];return t===E?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):ie(oi,t)?oi[t]:e[t]},set(e,t,n){let r=e[E];return t===`length`?r.setArrayLength_(n):typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions(){n(15)}};var ii=class{constructor(e=`ObservableArray@`+u(),t,n){this.owned_=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.atom_=new se(e),this.enhancer_=(n,r)=>t(n,r,e+`[..]`)}dehanceValue_(e){return this.dehancer===void 0?e:this.dehancer(e)}dehanceValues_(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e}getArrayLength_(){return this.atom_.reportObserved(),this.values_.length}setArrayLength_(e){(!Number.isInteger(e)||e<0)&&n(40,e);let t=this.values_.length;if(e!==t)if(e>t){let n=Array.from({length:e-t});this.spliceWithArray_(t,0,n)}else this.spliceWithArray_(e,t-e)}updateArrayLength_(e,t){e!==this.lastKnownLength_&&n(16),this.lastKnownLength_+=t}spliceWithArray_(e,t,n){A(this.atom_);let r=this.values_.length;if(e===void 0?e=0:e>r?e=r:e<0&&(e=Math.max(0,r+e)),t=arguments.length===1?r-e:t==null?0:Math.max(0,Math.min(t,r-e)),n===void 0&&(n=s),Gr(this)){let r=qr(this,{object:this.proxy_,type:ti,index:e,removedCount:t,added:n});if(!r)return s;t=r.removedCount,n=r.added}n=n.length===0?n:n.map(e=>this.enhancer_(e,void 0));{let e=n.length-t;this.updateArrayLength_(r,e)}let i=this.spliceItemsIntoValues_(e,t,n);return(t!==0||n.length!==0)&&this.notifyArraySplice_(e,n,i),this.dehanceValues_(i)}spliceItemsIntoValues_(e,t,n){if(n.length<1e4)return this.values_.splice(e,t,...n);{let r=this.values_.slice(e,e+t),i=this.values_.slice(e+t);this.values_.length+=n.length-t;for(let t=0;t<n.length;t++)this.values_[e+t]=n[t];for(let t=0;t<i.length;t++)this.values_[e+n.length+t]=i[t];return r}}notifyArrayChildUpdate_(e,t,n){let r=!this.owned_&&N(),i=Jr(this),a=i||r?{observableKind:`array`,object:this.proxy_,type:ni,debugObjectName:this.atom_.name_,index:e,newValue:t,oldValue:n}:null;r&&xn(a),this.atom_.reportChanged(),i&&Xr(this,a),r&&Cn()}notifyArraySplice_(e,t,n){let r=!this.owned_&&N(),i=Jr(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&&xn(a),this.atom_.reportChanged(),i&&Xr(this,a),r&&Cn()}get_(e){return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e])}set_(e,t){let n=this.values_;if(e<n.length){A(this.atom_);let r=n[e];if(Gr(this)){let n=qr(this,{type:ni,object:this.proxy_,index:e,newValue:t});if(!n)return;t=n.newValue}t=this.enhancer_(t,r),t!==r&&(n[e]=t,this.notifyArrayChildUpdate_(e,t,r))}else{let r=Array.from({length:e+1-n.length});r[r.length-1]=t,this.spliceWithArray_(n.length,0,r)}}};function ai(e,t,n=`ObservableArray@`+u(),r=!1){return Mi(()=>{let i=new ii(n,t,r);y(i.values_,E,i);let a=new Proxy(i.values_,ri);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var oi={clear(){return this.splice(0)},replace(e){let t=this[E];return t.spliceWithArray_(0,t.values_.length,e)},toJSON(){return this.slice()},splice(e,t,...n){let r=this[E];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(e,t,n){return this[E].spliceWithArray_(e,t,n)},push(...e){let t=this[E];return t.spliceWithArray_(t.values_.length,0,e),t.values_.length},pop(){return this.splice(Math.max(this[E].values_.length-1,0),1)[0]},shift(){return this.splice(0,1)[0]},unshift(...e){let t=this[E];return t.spliceWithArray_(0,0,e),t.values_.length},reverse(){return M.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort(){M.trackingDerivation&&n(37,`sort`);let e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove(e){let t=this[E],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};si(`at`,ci),si(`concat`,ci),si(`flat`,ci),si(`includes`,ci),si(`indexOf`,ci),si(`join`,ci),si(`lastIndexOf`,ci),si(`slice`,ci),si(`toString`,ci),si(`toLocaleString`,ci),si(`toSorted`,ci),si(`toSpliced`,ci),si(`with`,ci),si(`every`,li),si(`filter`,li),si(`find`,li),si(`findIndex`,li),si(`findLast`,li),si(`findLastIndex`,li),si(`flatMap`,li),si(`forEach`,li),si(`map`,li),si(`some`,li),si(`toReversed`,li),si(`reduce`,ui),si(`reduceRight`,ui);function si(e,t){typeof Array.prototype[e]==`function`&&(oi[e]=t(e))}function ci(e){return function(){let t=this[E];t.atom_.reportObserved();let n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function li(e){return function(t,n){let r=this[E];return r.atom_.reportObserved(),r.dehanceValues_(r.values_)[e]((e,r)=>t.call(n,e,r,this))}}function ui(e){return function(){let t=this[E];t.atom_.reportObserved();let n=t.dehanceValues_(t.values_),r=arguments[0];return arguments[0]=(e,t,n)=>r(e,t,n,this),n[e].apply(n,arguments)}}let di=b(`ObservableArrayAdministration`,ii);function fi(e){return h(e)&&di(e[E])}let pi={},mi=`delete`;var hi=class{constructor(e,t=me,n=`ObservableMap@`+u()){this.enhancer_=void 0,this.name_=void 0,this[E]=pi,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_=n,Mi(()=>{this.keysAtom_=le(`${this.name_}.keys()`),this.data_=new Map,this.hasMap_=new Map,e&&this.merge(e)})}has_(e){return this.data_.has(e)}has(e){if(!M.trackingDerivation)return this.has_(e);let t=this.hasMap_.get(e);if(!t){let n=t=new Ot(this.has_(e),ge,`${this.name_}.${ne(e)}?`,!1);this.hasMap_.set(e,n),n.onBUOL=new Set([()=>this.hasMap_.delete(e)])}return t.get()}set(e,t){let n=this.has_(e);if(Gr(this)){let r=qr(this,{type:n?ni:`add`,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this}delete(e){if(A(this.keysAtom_),Gr(this)&&!qr(this,{type:mi,object:this,name:e}))return!1;if(this.has_(e)){let t=N(),n=Jr(this),r=n||t?{observableKind:`map`,debugObjectName:this.name_,type:mi,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return t&&xn(r),Rr(()=>{var t;this.keysAtom_.reportChanged(),(t=this.hasMap_.get(e))==null||t.setNewValue_(!1),this.data_.get(e).setNewValue_(void 0),this.data_.delete(e)}),n&&Xr(this,r),t&&Cn(),!0}return!1}updateValue_(e,t){let n=this.data_.get(e);if(t=n.prepareNewValue_(t),t!==M.UNCHANGED){let r=N(),i=Jr(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:ni,object:this,oldValue:n.value_,name:e,newValue:t}:null;r&&xn(a),n.setNewValue_(t),i&&Xr(this,a),r&&Cn()}}addValue_(e,t){A(this.keysAtom_),Rr(()=>{var n;let r=new Ot(t,this.enhancer_,`${this.name_}.${ne(e)}`,!1);this.data_.set(e,r),t=r.value_,(n=this.hasMap_.get(e))==null||n.setNewValue_(!0),this.keysAtom_.reportChanged()});let n=N(),r=Jr(this),i=r||n?{observableKind:`map`,debugObjectName:this.name_,type:`add`,object:this,name:e,newValue:t}:null;n&&xn(i),r&&Xr(this,i),n&&Cn()}get(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)}getOrInsert(e,t){return this.has(e)||this.set(e,t),this.get(e)}getOrInsertComputed(e,t){return this.has(e)||this.set(e,t(e)),this.get(e)}dehanceValue_(e){return this.dehancer===void 0?e:this.dehancer(e)}keys(){return this.keysAtom_.reportObserved(),this.data_.keys()}values(){let e=this,t=this.keys();return I({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:e.get(r)}}})}entries(){let e=this,t=this.keys();return I({next(){let{done:n,value:r}=t.next();return{done:n,value:n?void 0:[r,e.get(r)]}}})}[Symbol.iterator](){return this.entries()}forEach(e,t){for(let[n,r]of this)e.call(t,r,n,this)}merge(e){return F(e)&&(e=new Map(e)),Rr(()=>{g(e)?ee(e).forEach(t=>this.set(t,e[t])):Array.isArray(e)?e.forEach(([e,t])=>this.set(e,t)):x(e)?(S(e)||n(19,e),e.forEach((e,t)=>this.set(t,e))):e!=null&&n(20,e)}),this}clear(){Rr(()=>{Vt(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return Rr(()=>{let t=L(e),n=new Map,r=!1;for(let e of this.data_.keys())if(!t.has(e))if(this.delete(e))r=!0;else{let t=this.data_.get(e);n.set(e,t)}for(let[e,i]of t.entries()){let t=this.data_.has(e);if(this.set(e,i),this.data_.has(e)){let i=this.data_.get(e);n.set(e,i),t||(r=!0)}}if(!r)if(this.data_.size!==n.size)this.keysAtom_.reportChanged();else{let e=this.data_.keys(),t=n.keys(),r=e.next(),i=t.next();for(;!r.done;){if(r.value!==i.value){this.keysAtom_.reportChanged();break}r=e.next(),i=t.next()}}this.data_=n}),this}get size(){return this.keysAtom_.reportObserved(),this.data_.size}toString(){return`[object ObservableMap]`}toJSON(){return Array.from(this)}get[Symbol.toStringTag](){return`Map`}},F=b(`ObservableMap`,hi);function I(e){return e[Symbol.toStringTag]=`MapIterator`,Ri(e)}function L(e){if(x(e)||F(e))return e;if(Array.isArray(e))return new Map(e);if(g(e)){let t=new Map;for(let n in e)t.set(n,e[n]);return t}else return n(21,e)}let gi={};var _i=class{constructor(e,t=me,n=`ObservableSet@`+u()){this.name_=void 0,this[E]=gi,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_=n,this.enhancer_=(e,r)=>t(e,r,n),Mi(()=>{this.atom_=le(this.name_),e&&this.replace(e)})}dehanceValue_(e){return this.dehancer===void 0?e:this.dehancer(e)}clear(){Rr(()=>{Vt(()=>{for(let e of this.data_.values())this.delete(e)})})}forEach(e,t){for(let n of this)e.call(t,n,n,this)}get size(){return this.atom_.reportObserved(),this.data_.size}add(e){if(A(this.atom_),Gr(this)){let t=qr(this,{type:`add`,object:this,newValue:e});if(!t)return this;e=t.newValue}if(!this.has(e)){Rr(()=>{e=this.enhancer_(e,void 0),this.data_.add(e),this.atom_.reportChanged()});let t=N(),n=Jr(this),r=n||t?{observableKind:`set`,debugObjectName:this.name_,type:`add`,object:this,newValue:e}:null;t&&xn(r),n&&Xr(this,r),t&&Cn()}return this}delete(e){if(Gr(this)&&!qr(this,{type:mi,object:this,oldValue:e}))return!1;if(this.has(e)){let t=N(),n=Jr(this),r=n||t?{observableKind:`set`,debugObjectName:this.name_,type:mi,object:this,oldValue:e}:null;return t&&xn(r),Rr(()=>{this.atom_.reportChanged(),this.data_.delete(e)}),n&&Xr(this,r),t&&Cn(),!0}return!1}has(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))}entries(){let e=this.values();return yi({next(){let{value:t,done:n}=e.next();return n?{value:void 0,done:n}:{value:[t,t],done:n}}})}keys(){return this.values()}values(){this.atom_.reportObserved();let e=this,t=this.data_.values();return yi({next(){let{value:n,done:r}=t.next();return r?{value:void 0,done:r}:{value:e.dehanceValue_(n),done:r}}})}intersection(e){return new Set(this).intersection(e)}union(e){return new Set(this).union(e)}difference(e){return new Set(this).difference(e)}symmetricDifference(e){return new Set(this).symmetricDifference(e)}isSubsetOf(e){return new Set(this).isSubsetOf(e)}isSupersetOf(e){return new Set(this).isSupersetOf(e)}isDisjointFrom(e){return new Set(this).isDisjointFrom(e)}replace(e){return vi(e)&&(e=new Set(e)),Array.isArray(e)||C(e)?Rr(()=>{let t=C(e)?e:new Set(e);if(t.size===0){this.clear();return}if(this.data_.size===0){t.forEach(e=>this.add(e));return}for(let e of this.data_.values())t.has(this.dehanceValue_(e))||this.delete(e);t.forEach(e=>this.add(e))}):e!=null&&n(41,e),this}toJSON(){return Array.from(this)}toString(){return`[object ObservableSet]`}[Symbol.iterator](){return this.values()}get[Symbol.toStringTag](){return`Set`}},vi=b(`ObservableSet`,_i);function yi(e){return e[Symbol.toStringTag]=`SetIterator`,Ri(e)}let bi=Object.create(null),xi=`remove`;var Si=class{constructor(e,t=new Map,r,i=We){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.lazyComputedKeys_=void 0,this.lazyObservableKeys_=void 0,this.target_=e,this.values_=t,this.name_=r,this.defaultAnnotation_=i,this.keysAtom_=new se(`${this.name_}.keys`),this.isPlainObject_=g(this.target_),Bi(this.defaultAnnotation_)||n(`defaultAnnotation must be valid annotation`),this.appliedAnnotations_={}}getObservablePropValue_(e){return(this.values_.get(e)??this.materializeLazyComputed_(e)??this.materializeLazyObservable_(e)).get()}materializeLazyComputed_(e){let t=this.lazyComputedKeys_?.get(e);if(!t)return;this.lazyComputedKeys_.delete(e),this.lazyComputedKeys_.size===0&&(this.lazyComputedKeys_=void 0);let n=t();return this.values_.set(e,n),n}materializeLazyObservable_(e){let t=this.lazyObservableKeys_?.get(e);if(!t)return;this.lazyObservableKeys_.delete(e),this.lazyObservableKeys_.size===0&&(this.lazyObservableKeys_=void 0);let n=t();return this.values_.set(e,n),n}setObservablePropValue_(e,t){let n=this.values_.get(e)??this.materializeLazyComputed_(e)??this.materializeLazyObservable_(e);if(n instanceof At)return n.set(t),!0;if(Gr(this)){let n=qr(this,{type:ni,object:this.proxy_||this.target_,name:e,newValue:t});if(!n)return null;t=n.newValue}if(t=n.prepareNewValue_(t),t!==M.UNCHANGED){let r=Jr(this),i=N(),a=r||i?{type:ni,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:n.value_,name:e,newValue:t}:null;i&&xn(a),n.setNewValue_(t),r&&Xr(this,a),i&&Cn()}return!0}get_(e){return M.trackingDerivation&&!ie(this.target_,e)&&this.has_(e),this.target_[e]}set_(e,t,n=!1){return ie(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)}has_(e){if(!M.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;let t=this.pendingKeys_.get(e);return t||(t=new Ot(e in this.target_,ge,`${this.name_}.${ne(e)}?`,!1),this.pendingKeys_.set(e,t)),t.get()}extend_(e,t,n,r=!1){if(n===!0&&(n=this.defaultAnnotation_),n===!1)return this.defineProperty_(e,t,r);Oi(this,n,e);let i=n.extend_(this,e,t,r);return i&&Di(this,n,e),i}defineProperty_(e,t,n=!1){A(this.keysAtom_);try{an();let i=this.delete_(e);if(!i)return i;if(Gr(this)){let n=qr(this,{object:this.proxy_||this.target_,name:e,type:`add`,newValue:t.value});if(!n)return null;let{newValue:i}=n;t.value!==i&&(t=r({},t,{value:i}))}if(n){if(!Reflect.defineProperty(this.target_,e,t))return!1}else a(this.target_,e,t);this.notifyPropertyAddition_(e,t.value)}finally{on()}return!0}defineObservableProperty_(e,t,n,r=!1){A(this.keysAtom_);try{an();let i=this.delete_(e);if(!i)return i;if(Gr(this)){let n=qr(this,{object:this.proxy_||this.target_,name:e,type:`add`,newValue:t});if(!n)return null;t=n.newValue}let o=Ti(e),s={configurable:M.safeDescriptors?this.isPlainObject_:!0,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.target_,e,s))return!1}else a(this.target_,e,s);let c=new Ot(t,n,`${this.name_}.${e.toString()}`,!1);this.values_.set(e,c),this.notifyPropertyAddition_(e,c.value_)}finally{on()}return!0}defineComputedProperty_(e,t,n=!1){A(this.keysAtom_);try{an();let r=this.delete_(e);if(!r)return r;if(Gr(this)&&!qr(this,{object:this.proxy_||this.target_,name:e,type:`add`,newValue:void 0}))return null;t.name||=`${this.name_}.${e.toString()}`,t.context=this.proxy_||this.target_;let i=Ti(e),o={configurable:M.safeDescriptors?this.isPlainObject_:!0,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.target_,e,o))return!1}else a(this.target_,e,o);this.values_.set(e,new At(t)),this.notifyPropertyAddition_(e,void 0)}finally{on()}return!0}delete_(e,t=!1){if(A(this.keysAtom_),!ie(this.target_,e))return!0;if(Gr(this)&&!qr(this,{object:this.proxy_||this.target_,name:e,type:xi}))return null;try{var n;an();let r=Jr(this),a=N(),o=this.values_.get(e),s;if(!o&&(r||a)&&(s=i(this.target_,e)?.value),t){if(!Reflect.deleteProperty(this.target_,e))return!1}else delete this.target_[e];if(delete this.appliedAnnotations_[e],o&&(this.values_.delete(e),o instanceof Ot&&(s=o.value_),un(o)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||a){let t={type:xi,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};a&&xn(t),r&&Xr(this,t),a&&Cn()}}finally{on()}return!0}notifyPropertyAddition_(e,t){var n;let r=Jr(this),i=N();if(r||i){let n=r||i?{type:`add`,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&xn(n),r&&Xr(this,n),i&&Cn()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()}ownKeys_(){return this.keysAtom_.reportObserved(),te(this.target_)}keys_(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)}};function Ci(e,t){if(t&&Ei(e)&&n(`Options can't be provided for already observable objects.`),ie(e,E))return Ai(e)instanceof Si||n(`Cannot convert '${ji(e)}' into observable object:\nThe target is already observable of different type.\nExtending builtins is not supported.`),e;Object.isExtensible(e)||n(`Cannot make the designated object observable; it is not extensible`);let r=t?.name??`${g(e)?`ObservableObject`:e.constructor.name}@${u()}`;return v(e,E,new Si(e,new Map,String(r),at(t))),e}let wi=b(`ObservableObjectAdministration`,Si);function Ti(e){return bi[e]||(bi[e]={get(){return this[E].getObservablePropValue_(e)},set(t){return this[E].setObservablePropValue_(e,t)}})}function Ei(e){return h(e)?wi(e[E]):!1}function Di(e,t,n){e.appliedAnnotations_[n]=t}function Oi(e,t,r){if(Bi(t)||n(`Cannot annotate '${e.name_}.${r.toString()}': Invalid annotation.`),!be(t)&&ie(e.appliedAnnotations_,r)){let i=`${e.name_}.${r.toString()}`,a=e.appliedAnnotations_[r].annotationType_,o=t.annotationType_;n(`Cannot apply '${o}' to '${i}':\nThe field is already annotated with '${a}'.\nRe-annotating fields is not allowed.\nUse 'override' annotation for methods overridden by subclass.`)}}function ki(e,t){if(typeof e==`object`&&e){if(fi(e))return t!==void 0&&n(23),e[E].atom_;if(vi(e))return e.atom_;if(F(e)){if(t===void 0)return e.keysAtom_;let r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,ji(e)),r}if(Ei(e)){if(!t)return n(26);let r=e[E],i=r.values_.get(t)??r.materializeLazyComputed_(t)??r.materializeLazyObservable_(t);return i||n(27,t,ji(e)),i}if(ce(e)||jt(e)||vn(e))return e}else if(p(e)&&vn(e[E]))return e[E];n(28)}function Ai(e,t){if(e||n(29),t!==void 0)return Ai(ki(e,t));if(ce(e)||jt(e)||vn(e)||F(e)||vi(e))return e;if(e[E])return e[E];n(24,e)}function ji(e,t){let n;if(t!==void 0)n=ki(e,t);else if(Rn(e))return e.name;else n=Ei(e)||F(e)||vi(e)?Ai(e):ki(e);return n.name_}function Mi(e){let t=Ht(),n=Et(!0);an();try{return e()}finally{on(),Dt(n),Ut(t)}}let Ni=o.toString;function Pi(e,t,n=-1){return Fi(e,t,n)}function Fi(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;let a=typeof e;if(a!==`function`&&a!==`object`&&typeof t!=`object`)return!1;let o=Ni.call(e);if(o!==Ni.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=Ii(e),t=Ii(t);let s=o===`[object Array]`;if(!s){if(typeof e!=`object`||typeof t!=`object`)return!1;let n=e.constructor,r=t.constructor;if(n!==r&&!(p(n)&&n instanceof n&&p(r)&&r instanceof r)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),r||=[],i||=[];let c=r.length;for(;c--;)if(r[c]===e)return i[c]===t;if(r.push(e),i.push(t),s){if(c=e.length,c!==t.length)return!1;for(;c--;)if(!Fi(e[c],t[c],n-1,r,i))return!1}else{let a=Object.keys(e),o=a.length;if(Object.keys(t).length!==o)return!1;for(let s=0;s<o;s++){let o=a[s];if(!(ie(t,o)&&Fi(e[o],t[o],n-1,r,i)))return!1}}return r.pop(),i.pop(),!0}function Ii(e){return fi(e)?e.slice():x(e)||F(e)||C(e)||vi(e)?Array.from(e.entries()):e}let Li=globalThis.Iterator?.prototype||{};function Ri(e){return e[Symbol.iterator]=zi,r(Object.create(Li),e)}function zi(){return this}function Bi(e){return e instanceof Object&&typeof e.annotationType_==`string`&&p(e.make_)&&p(e.extend_)}{let e=globalThis;[`Symbol`,`Map`,`Set`,`Proxy`].forEach(t=>{e[t]===void 0&&n(`MobX requires global '${t}' to be available or polyfilled`)})}typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:wn,extras:{getDebugName:ji},$mobx:E}),e.$mobx=E,e.FlowCancellationError=nr,e.ObservableMap=hi,e.ObservableSet=_i,e.Reaction=pn,e._allowStateChanges=Tt,e._allowStateChangesInsideComputed=Ln,e._allowStateReadsEnd=Wt,e._allowStateReadsStart=j,e._autoAction=Pn,e._autoActionBound=In,e._endAction=wt,e._getAdministration=Ai,e._getGlobalState=Zt,e._interceptReads=fr,e._isComputingDerivation=Ft,e._resetGlobalState=Qt,e._startAction=Ct,e.action=Nn,e.actionBound=Fn,e.autorun=zn,e.compareDefault=pe,e.compareIdentity=ue,e.compareShallow=fe,e.compareStructural=de,e.computed=k,e.computedStruct=gt,e.configure=Jn,e.createAtom=le,e.defineProperty=kr,e.entries=wr,e.extendObservable=Yn,e.flow=sr,e.flowBound=cr,e.flowResult=ur,e.get=Or,e.getAtom=ki,e.getDebugName=ji,e.getDependencyTree=Xn,e.getObserverTree=Qn,e.has=Dr,e.intercept=pr,e.isAction=Rn,e.isBoxedObservable=kt,e.isComputed=_r,e.isComputedProp=vr,e.isFlow=dr,e.isFlowCancellationError=rr,e.isObservable=br,e.isObservableArray=fi,e.isObservableMap=F,e.isObservableObject=Ei,e.isObservableProp=xr,e.isObservableSet=vi,e.keys=Sr,e.makeAutoObservable=$r,e.makeObservable=Zr,e.observable=O,e.observableDeep=dt,e.observableRef=lt,e.observableShallow=ut,e.observableStruct=ft,e.observe=jr,e.onBecomeObserved=Wn,e.onBecomeUnobserved=Gn,e.onReactionError=mn,e.override=ye,e.ownKeys=Ar,e.reaction=Hn,e.remove=Er,e.runInAction=Ln,e.set=Tr,e.spy=wn,e.toJS=Lr,e.transaction=Rr,e.untracked=Vt,e.values=Cr,e.when=zr})),N_=ye(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=j_():t.exports=M_()}))();function P_(e){if(Array.isArray(e))return Object.freeze(e.map(P_));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]=P_(r);return Object.freeze(t)}return e}function F_(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 I_(e){return typeof e==`string`?e:String(e)}function L_(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 R_(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")`)}var z_=class extends Error{constructor(e,t){super(t),this.variable=e}};function B_(e){return e instanceof z_||e instanceof Error&&e.cause!==void 0&&B_(e.cause)}var V_=class extends Error{name=`TemplateError`;kind=`EvalError`;pos;source;constructor(e,t,n={}){super(e,{cause:n.cause}),this.pos=t,this.source=n.source}get sourceSnippet(){return this.source?X_(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}},H_=class extends V_{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},U_=class extends V_{name=`EvalError`;kind=`EvalError`},W_=class extends U_{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=Z_(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}},G_=class extends U_{name=`ArgCountError`;kind=`ArgCountError`;funcName;accepted;got;constructor(e,t,n,r,i={}){let a=t.minimum===t.maximum?`${t.minimum}`:`at least ${t.minimum}`;super(`wrong number of args for ${e}: want ${a} got ${n}`,r,i),this.funcName=e,this.accepted=t,this.got=n}},K_=class extends U_{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}},q_=class extends K_{constructor(e,t,n,r,i={}){super(e,t,`integer`,String(n),r,i),this.message=Number.isInteger(Number(n))?`integer out of range: ${String(n)}`:`expected integer; found ${String(n)}`}},J_=class extends U_{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},Y_=class extends U_{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function X_(e,t){let n=e.split(`
57
57
  `),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(`
58
- `)}function a_(e,t){if(t.length===0)return[];let n=t.map(t=>({name:t,dist:o_(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 o_(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 s_(e){throw Error(`unhandled node kind: ${JSON.stringify(e)}`)}const c_=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`]]),l_={left:`{{`,right:`}}`};var u_=class{src;leftDelim;rightDelim;offset=0;line=1;column=1;mode=`text`;pending;constructor(e,t=l_){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 Xg(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&&d_(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);d_(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);d_(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(;d_(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`;d_(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&&(p_(e)||f_(e)&&p_(this.src[this.offset+1]??``)||e===`.`&&p_(this.src[this.offset+1]??``)))return this.readNumber(t);if(e===`.`)return this.readDotOrField(t);if(e!==void 0&&v_(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===`
58
+ `)}function Z_(e,t){if(t.length===0)return[];let n=t.map(t=>({name:t,dist:Q_(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 Q_(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 $_(e){throw Error(`unhandled node kind: ${JSON.stringify(e)}`)}const ev=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`]]),tv={left:`{{`,right:`}}`};var nv=class{src;leftDelim;rightDelim;offset=0;line=1;column=1;mode=`text`;pending;constructor(e,t=tv){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 H_(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&&rv(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);rv(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);rv(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(;rv(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`;rv(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&&(av(e)||iv(e)&&av(this.src[this.offset+1]??``)||e===`.`&&av(this.src[this.offset+1]??``)))return this.readNumber(t);if(e===`.`)return this.readDotOrField(t);if(e!==void 0&&uv(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===`
59
59
  `)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===`
60
- `)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(f_(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);m_(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);h_(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);g_(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);return this.finishNumber(t,e)}}for(;p_(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`.`)for(this.advanceBy(1);p_(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),f_(this.src[this.offset]??``)&&this.advanceBy(1);p_(this.src[this.offset]??``);)this.advanceBy(1);return this.src[this.offset]===`i`&&this.advanceBy(1),this.finishNumber(t,e)}isHexFloatTail(e){return m_(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);y_(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&v_(this.src[this.offset+1]??``);)for(this.advanceBy(1);y_(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),!v_(this.src[this.offset]??``))return this.makeToken(`Dot`,`.`,e);for(;y_(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&v_(this.src[this.offset+1]??``);)for(this.advanceBy(1);y_(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(;y_(this.src[this.offset]??``);)this.advanceBy(1);let n=this.src.slice(t,this.offset),r=c_.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===`
60
+ `)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(iv(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);ov(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);sv(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);cv(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);return this.finishNumber(t,e)}}for(;av(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`.`)for(this.advanceBy(1);av(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),iv(this.src[this.offset]??``)&&this.advanceBy(1);av(this.src[this.offset]??``);)this.advanceBy(1);return this.src[this.offset]===`i`&&this.advanceBy(1),this.finishNumber(t,e)}isHexFloatTail(e){return ov(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);dv(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&uv(this.src[this.offset+1]??``);)for(this.advanceBy(1);dv(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),!uv(this.src[this.offset]??``))return this.makeToken(`Dot`,`.`,e);for(;dv(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&uv(this.src[this.offset+1]??``);)for(this.advanceBy(1);dv(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(;dv(this.src[this.offset]??``);)this.advanceBy(1);let n=this.src.slice(t,this.offset),r=ev.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===`
61
61
  `)this.advanceBy(1);else return}}advanceBy(e){for(let t=0;t<e;t++){let e=this.src[this.offset];this.offset+=1,e===`
62
- `?(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 d_(e){return e===` `||e===` `||e===`\r`||e===`
63
- `}function f_(e){return e===`+`||e===`-`}function p_(e){return e>=`0`&&e<=`9`}function m_(e){return p_(e)||e>=`a`&&e<=`f`||e>=`A`&&e<=`F`}function h_(e){return e>=`0`&&e<=`7`}function g_(e){return e===`0`||e===`1`}function __(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`}function v_(e){return __(e)||e===`_`}function y_(e){return v_(e)||p_(e)}let b_,x_;function S_(e,t){return x_(e,t)}var C_=class e{static EMPTY=new e(new Map,void 0);#e;#t;constructor(e,t){this.#e=e,this.#t=t}static{b_=(t,n)=>new e(t,n),x_=(e,t)=>e.#e.get(t)??(e.#t&&x_(e.#t,t))}has(e){return x_(this,e)!==void 0}};function w_(e,t,n=C_.EMPTY){return new T_(e,t,n).parseTemplate()}var T_=class{lex;buf=[];defines=new Map;inherit;source;rangeDepth=0;constructor(e,t,n){this.source=e,this.inherit=n,this.lex=t?new u_(e,t):new u_(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:O_(n)});return n}errAt(e,t,n={}){return new Xg(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 ${O_(e)}`,{found:O_(e)})}return{root:e,defines:b_(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=D_(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 E_(e,t);let r=this.parseAction();r!==null&&t.push(r);continue}throw this.errAt(n,`unexpected ${O_(n)} at top level`,{found:O_(n)})}return E_(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 Xg(`{{${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 Xg(`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:O_(e)});return I_(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(!k_(e.type))throw this.errAt(e,"missing command after `|`",{expected:`command`,found:O_(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=[A_(this.next())];for(;this.peek().type===`Comma`;)this.next(),n.push(A_(this.expect(`Variable`,`$variable`)));return{vars:n,isAssign:this.next().type===`Assign`}}parseCommand(){let e=this.peek().pos,t=[this.parsePrimary()];for(;k_(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 A_(e);case`Identifier`:return{type:`Identifier`,pos:e.pos,ident:e.value};case`String`:return{type:`String`,pos:e.pos,raw:e.value,value:I_(e.value,e.pos,this.source)};case`Number`:return M_(e);case`Char`:return N_(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 ${O_(e)}`,{expected:`command argument`,found:O_(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 E_(e,t){return{type:`List`,pos:e,nodes:t}}function D_(e){return{trimLeft:e.trimLeft===!0,trimRight:e.trimRight===!0}}function O_(e){return e.type===`EOF`?`end of input`:e.value||e.type}function k_(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 A_(e){return{type:`Variable`,pos:e.pos,idents:j_(e.value)}}function j_(e){let t=e.indexOf(`.`);return t===-1?[e]:[e.slice(0,t),...e.slice(t+1).split(`.`)]}function M_(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=P_(i);return{...s,intValue:e}}if(a){let e=F_(i);return{...s,floatValue:e}}let c=F_(i);return{...s,complexValue:[0,c]}}function N_(e,t){let n=L_(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 P_(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 F_(e){return Number(e)}function I_(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+=`
64
- `;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 Xg(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function L_(e,t,n){let r=I_(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new Xg(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function R_(e,t){if(t(e)!==!1)for(let n of z_(e))R_(n,t)}function z_(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 s_(e)}}const B_=Symbol(`go-template-js.MISSING`);function V_(e,t){if(e==null)return B_;if(e instanceof Map)return e.has(t)?e.get(t):B_;if(Array.isArray(e))return B_;if(typeof e==`object`){let n=e;return t in n?n[t]:B_}return B_}function H_(e,t){let n=e;for(let e of t){if(n===B_)return B_;n=V_(n,e)}return n}function U_(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)=>U_(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)||!U_(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=>U_(e[n],t[n])):!1}return!1}const W_=new WeakSet;function G_(e){return W_.add(e),e}function K_(e){return W_.has(e)}function q_(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 J_(e,t){return{eq:{fn:(e,...t)=>t.some(t=>Z_(e,t)),argTypes:[`comparable`,`comparable`],arity:{kind:`variadic`}},ne:{fn:(e,t)=>!Z_(e,t),argTypes:[`comparable`,`comparable`],arity:{kind:`exact`}},lt:{fn:(e,t)=>Q_(e,t)<0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},le:{fn:(e,t)=>Q_(e,t)<=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},gt:{fn:(e,t)=>Q_(e,t)>0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},ge:{fn:(e,t)=>Q_(e,t)>=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},len:{fn:e=>$_(e),argTypes:[`sized`],arity:{kind:`exact`}},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=ev(n,e);return n},argTypes:[`collection`,`index-key`],arity:{kind:`variadic`}},slice:{fn:(e,...t)=>nv(e,t),argTypes:[`sliceable`,`int`],arity:{kind:`variadic`}},print:{fn:(...t)=>av(t,e),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},println:{fn:(...t)=>`${av(t,e)}\n`,argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},printf:{fn:(n,...r)=>mv(n,r,e,t),argTypes:[`string`,`stringifiable`],arity:{kind:`variadic`},returnType:`string`},toString:{fn:n=>_v(n,e,t),argTypes:[`value`],arity:{kind:`exact`},returnType:`string`},toStrings:{fn:n=>n.map(n=>_v(n,e,t)),argTypes:[`list`],arity:{kind:`exact`}},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`],arity:{kind:`variadic`}},html:{fn:(...t)=>cv(av(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},js:{fn:(...t)=>dv(av(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},urlquery:{fn:(...t)=>pv(av(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},not:{fn:e=>!q_(e),argTypes:[`truthy`],arity:{kind:`exact`}}}}function Y_(){return{and:G_({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!q_(t))return t;return t}}),or:G_({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),q_(t))return t;return t}})}}function X_(e,t){return{...J_(e,t),...Y_()}}function Z_(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):U_(e,t)}function Q_(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 $_(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function ev(e,t){if(Array.isArray(e)||typeof e==`string`){let n=tv(t,e.length);if(n===e.length)throw Error(`index out of range: ${n}`);return e[n]}if(e instanceof Map)return e.get(t);if(typeof e==`object`&&e){if(typeof t!=`string`)throw Error(`index: object index must be string, got ${rv(t)}`);return e[t]}throw Error(`index: cannot index ${rv(e)}`)}function tv(e,t){let n=typeof e==`bigint`?Number(e):e;if(typeof n!=`number`||!Number.isInteger(n))throw Error(`cannot index slice/array with type ${iv(e)}`);if(n<0||n>t)throw Error(`index out of range: ${String(e)}`);return n}function nv(e,t){if(t.length>3)throw Error(`too many slice indexes: ${t.length}`);if(typeof e==`string`&&t.length>2)throw Error(`cannot 3-index slice a string`);let n=e.length,r=[0,n,n];t.forEach((e,t)=>{r[t]=tv(e,n)});let[i,a,o]=r;if(i>a)throw Error(`invalid slice index: ${i} > ${a}`);if(a>o)throw Error(`invalid slice index: ${a} > ${o}`);return e.slice(i,a)}function rv(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function iv(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 av(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+=ov(a,t),r=o}return n}function ov(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const sv={"\0":`�`,'"':`&#34;`,"'":`&#39;`,"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function cv(e){return e.replace(/[\0"'&<>]/g,e=>sv[e]??e)}const lv={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},uv=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function dv(e){let t=``;for(let n of e){let e=lv[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!uv.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const fv=new TextEncoder;function pv(e){let t=``,n=fv.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 mv(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+=hv(l??``,u,d,n,r),o=c+1}return i}function hv(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?gv(t,n):gv(t,ov(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${iv(n)}=${ov(n,r)})`:gv(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return gv(t,_v(n,r,i));case`q`:return gv(t,JSON.stringify(ov(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${iv(n)}=${ov(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return gv(t,Number(n).toFixed(i))}case`t`:return gv(t,q_(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 gv(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${iv(n)}=${ov(n,r)})`:typeof n==`bigint`?gv(t,n.toString(16)):gv(t,Math.trunc(n).toString(16));default:return`%!${e}(${iv(n)}=${ov(n,r)})`}}function gv(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 _v(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>_v(e,t,n)).join(` `)}]`:e instanceof Map?vv([...e.entries()],t,n):yv(e)?vv(Object.entries(e),t,n):String(e)}function vv(e,t,n){let r=e=>_v(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 yv(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 bv(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function xv(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function Sv(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 Cv(e,t,n){e.vars.set(t,n)}const wv=[`string`,`int`,`truncating-int`,`float`,`bool`,`T`,`ordered`,`list`,`dict`,`sized`,`comparable`,`stringifiable`,`liftable`,`callable`,`collection`,`index-key`,`sliceable`,`truthy`,`reflective`,`value`,`serializable`],Tv=new Set([`default`,`zero`,`error`]);function Ev(e){if(e===void 0)return`default`;if(Tv.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${Dv(e)}`)}function Dv(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 Ov(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${Dv(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${Dv(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${Dv(e.right)}`);return{left:e.left,right:e.right}}}function kv(e){switch(e.kind){case`exact`:return!1;case`variadic`:return!0;case`alternating`:return!0}}function Av(e){let t=new Set(wv);for(let[n,r]of Object.entries(e)){if(r.argTypes.forEach((e,r)=>{if(!t.has(e))throw Error(`EngineConfig.funcs.${n}: argTypes[${r}] is ${JSON.stringify(e)}, which is not an ArgType; declare one of ${wv.join(`, `)}`)}),kv(r.arity)&&r.argTypes.length===0)throw Error(`EngineConfig.funcs.${n}: arity ${JSON.stringify(r.arity.kind)} needs at least one declared argType (it reads its repeating slot from the end of argTypes); declare the slots the Go signature has, or use { kind: "exact" }`);if(r.arity.kind===`alternating`&&(!Number.isSafeInteger(r.arity.minimum)||r.arity.minimum<0))throw Error(`EngineConfig.funcs.${n}: arity "alternating" needs a non-negative integer minimum, got ${String(r.arity.minimum)}; the gate rejects every count below it, so a negative or non-finite minimum would disable the lower bound`)}return e}const jv=Object.freeze({kind:`break`}),Mv=Object.freeze({kind:`continue`}),Nv={kind:`none`};let Pv;(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{Pv=(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 Fv(e){let t=new Set,n=e=>{R_(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 Iv={kind:`dynamic`};function Lv(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=iy(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:Iv}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return Iv;let t=e.cmds[0];if(t===void 0)return Iv;let n=t.args[0];return n===void 0||n.type!==`Identifier`?Iv:{kind:`call`,name:n.ident,args:t.args.slice(1).map(Lv)}}default:return Iv}}function Rv(e){let t=[],n=e=>{R_(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(Lv);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 zv=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??qv,this.isT=e.isT??Bv,this.missingKey=Ev(e.missingKey),this.delims=Ov(e.delims),this.funcs=Av({...X_(this.toString,this.isT),...e.funcs??{}})}parse(e,t){let n=w_(e,this.delims,t);return Pv(n.source,e=>this.evalParsed(n,e),n.defines,Fv(n),Rv(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=bv(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 jv;case`Continue`:throw Mv;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 Zg(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:s_(e)}}evalIf(e,t,n){q_(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(q_(r)){let i=xv(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=ty(r);try{if(a.length===0){e.elseList&&this.evalList(e.elseList,t,n);return}for(let[r,o]of a){let a=xv(t,o);if(i.length===1)Cv(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;Cv(a,e,r),Cv(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===Mv)continue;throw e}}}catch(e){if(e===jv)return;throw e}}evalTemplateInvoke(e,t,n){let r=S_(n.defines,e.name);if(!r)throw new Zg(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=xv(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=xv(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=S_(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 Zg(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,Nv);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)Cv(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 Zg(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new Zg(`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 Qg(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=K_(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)}return this.invoke(i.ident,a,c,e.pos,n)}invoke(e,t,n,r,i){Hv(e,t,n,r,i.source,this.toString,this.fromString,this.isT);try{return t.fn(...n)}catch(t){throw t instanceof e_?new e_(t.funcName,t.argIndex,t.expected,t.receivedSummary,r,{source:i.source}):t instanceof r_?new r_(t.message,r,{source:i.source}):t instanceof Yg?t:new Zg(`error calling ${e}: ${$v(t)}`,r,{source:i.source,cause: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 iy(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 Qg(e.ident,e.pos,{source:n.source,available:Object.keys(this.funcs)});return this.invoke(e.ident,t,[],e.pos,n)}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 Zg(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=H_(e,t);if(i!==B_)return i;if(this.missingKey===`error`)throw new n_(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=Sv(t,i);if(!a.found)throw new Zg(`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(_v(e,this.toString,this.isT)))}};const Bv=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function Vv(e){return new zv(e)}function Hv(e,t,n,r,i,a=qv,o=Kv,s=Bv){let{argTypes:c,arity:l}=t,u=Uv(c,l);if(n.length<u.minimum||n.length>u.maximum)throw new $g(e,u,n.length,r,{source:i});let d=Wv(c,l),f=-1,p=-1;for(let t=0;t<n.length;t++){let c=d(t),l=n[t];if(!Gv(c,l,a,s))throw(c===`int`||c===`truncating-int`)&&(typeof l==`number`||typeof l==`bigint`)?new t_(e,t+1,l,r,{source:i}):new e_(e,t+1,Qv(c),ey(l),r,{source:i});if(c===`liftable`&&typeof l==`string`&&(n[t]=o(l)),c===`truncating-int`?n[t]=Math.trunc(Number(l)):(c===`int`||c===`float`)&&(n[t]=Number(l)),c===`ordered`){if(f===-1)f=t;else if(!Yv(n[f],l))throw new e_(e,t+1,`${Qv(`ordered`)} of the same kind as ${ey(n[f])}`,ey(l),r,{source:i})}if(c===`comparable`){if(p===-1)p=t;else if(!Xv(n[p],l))throw new e_(e,t+1,`${Qv(`comparable`)} of the same kind as ${ey(n[p])}`,ey(l),r,{source:i})}}}function Uv(e,t){switch(t.kind){case`exact`:return{minimum:e.length,maximum:e.length};case`variadic`:return{minimum:e.length-1,maximum:1/0};case`alternating`:return{minimum:t.minimum,maximum:1/0}}}function Wv(e,t){let n=e.length;switch(t.kind){case`exact`:return t=>e[t];case`variadic`:return t=>e[Math.min(t,n-1)];case`alternating`:return t=>e[t%n]}}function Gv(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.isSafeInteger(t)||typeof t==`bigint`&&Number.isSafeInteger(Number(t));case`truncating-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 yv(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||yv(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||yv(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||yv(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 Jv(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Kv(e){return e}function qv(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 e_(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,ey(e),{line:0,column:0,offset:0})}function Jv(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function Yv(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function Xv(e,t){let n=Zv(e),r=Zv(t);return n===`nil`||r===`nil`?!0:n===r}function Zv(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 Qv(e){switch(e){case`int`:return`integer (safe-integer number or bigint)`;case`truncating-int`:return`integer (finite number, truncated toward zero, 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 $v(e){return e instanceof Error?e.message:String(e)}function ey(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function ty(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?ny([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?ny(Object.entries(e)):[]}function ny(e){return[...e].sort((e,t)=>ry(e[0],t[0]))}function ry(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 iy(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 ay(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function oy(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 sy(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 cy(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=sy(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 ly(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=sy(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 uy(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 dy(e){return JSON.stringify(e)??`null`}function fy(){return{atoi:{fn:e=>ay(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},int:{fn:e=>cy(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`int`},int64:{fn:e=>ly(e),argTypes:[`value`],arity:{kind:`exact`}},float64:{fn:e=>oy(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`float`},toDecimal:{fn:e=>uy(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},toRawJson:{fn:e=>dy(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}const py={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function my(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*py[a],n=n.slice(e[0].length)}return t?-r:r}function hy(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<py.us?`${Math.floor(n)}ns`:n<py.ms?gy(n,py.us,3,`µs`):n<py.s?gy(n,py.ms,6,`ms`):_y(n),t?`-${r}`:r}function gy(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 _y(e){let t=Math.floor(e/py.h);e-=t*py.h;let n=Math.floor(e/py.m);e-=n*py.m;let r=Math.floor(e/py.s),i=e-r*py.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 vy(e){return e*py.s}function yy(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 by(e,t){let n=t().getTime()-yy(e).getTime();return hy(Math.round(n/1e3)*1e9)}const xy=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Sy=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Cy=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],wy=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Ty(e){return e<10?`0${e}`:String(e)}function Ey(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function Dy(e){return e<10?` ${e}`:String(e)}function Oy(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${Ty(Math.floor(n/60))}${Ty(n%60)}`}function ky(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${Ty(Math.floor(n/60))}:${Ty(n%60)}`}function Ay(e){return`${e>=0?`+`:`-`}${Ty(Math.floor(Math.abs(e)/60))}`}function jy(e){return e===0?`Z`:Oy(e)}function My(e){return e===0?`Z`:ky(e)}function Ny(e){return e===0?`Z`:Ay(e)}function Py(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const Fy=[[`.000000000`,e=>`.${Py(e.ms,9,!1)}`],[`.999999999`,e=>{let t=Py(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${Py(e.ms,6,!1)}`],[`.999999`,e=>{let t=Py(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${Ey(e.ms)}`],[`.999`,e=>{let t=Ey(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>xy[e.month-1]??`January`],[`Monday`,e=>Cy[e.weekday]??`Monday`],[`Z07:00`,e=>My(e.offsetMinutes)],[`-07:00`,e=>ky(e.offsetMinutes)],[`Z0700`,e=>jy(e.offsetMinutes)],[`-0700`,e=>Oy(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>Sy[e.month-1]??`Jan`],[`Mon`,e=>wy[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>Ay(e.offsetMinutes)],[`Z07`,e=>Ny(e.offsetMinutes)],[`15`,e=>Ty(e.hour)],[`01`,e=>Ty(e.month)],[`02`,e=>Ty(e.day)],[`_2`,e=>Dy(e.day)],[`03`,e=>Ty(e.hour12)],[`04`,e=>Ty(e.minute)],[`05`,e=>Ty(e.second)],[`06`,e=>Ty(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 Iy(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of Fy)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const Ly={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function Ry(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const zy=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function By(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=Ry(new Intl.DateTimeFormat(`en-US`,{...Ly,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=Ry(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=Vy(Ry(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=zy.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 Vy(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 Hy(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function Uy(e,t){return Iy(e,By(yy(t),Hy()))}function Wy(e,t,n){return Iy(e,By(yy(t),n))}function Gy(e,t){let n=yy(t),r=my(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function Ky(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:hy(vy(t))}return typeof e==`bigint`?hy(vy(Number(e))):typeof e==`number`?hy(vy(e)):`0s`}const qy=36e11*24*365,Jy=36e11*24*30,Yy=36e11*24,Xy=36e11,Zy=6e10,Qy=1e9;function $y(e){let t=my(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>qy?`${Math.floor(n/qy)}y`:n>Jy?`${Math.floor(n/Jy)}mo`:n>Yy?`${Math.floor(n/Yy)}d`:n>Xy?`${Math.floor(n/Xy)}h`:n>Zy?`${Math.floor(n/Zy)}m`:n>Qy?`${Math.floor(n/Qy)}s`:`0s`}function eb(e){let t=By(yy(e),Hy());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function tb(e,t){let n=By(yy(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function nb(e){return e()}const rb=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],ib=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function ab(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function ob(e,t,n){return[e.slice(t,t+n),t+n]}function sb(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 cb(e,t){for(let[n,r]of rb.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function lb(e,t){for(let[n,r]of ib.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function ub(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 db(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 fb(e,t){if(e[t]===` `){let[n,r]=sb(e,t+1,1,1);return[n,r]}return sb(e,t,1,2)}function pb(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]=sb(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=sb(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=sb(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function mb(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]=sb(e,t+1,2,2);return[n*r*60,i]}return pb(e,t,n)}function hb(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 gb(e,t,n){let[r,i]=ob(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function _b(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=cb(t,n);return i.month=e,[r,i]}case`Monday`:return[ub(t,n),i];case`Jan`:{let[e,r]=lb(t,n);return i.month=e,[r,i]}case`Mon`:return[db(t,n),i];case`2006`:{let[e,r]=sb(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=sb(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=sb(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=sb(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=fb(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=sb(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=sb(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=sb(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=sb(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=sb(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=sb(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=sb(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=sb(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=sb(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[hb(t,n),i];case`-0700`:{let[e,r]=pb(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=pb(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]=sb(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=mb(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=mb(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=mb(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]=gb(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]=gb(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]=gb(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 vb=`.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 yb(e,t){let n=0,r=0,i=ab();for(;n<e.length;){let a=!1;for(let o of vb)if(e.startsWith(o,n)){let[e,s]=_b(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 bb(e,t){return yb(e,t)}function xb(e){return String(Math.floor(yy(e).getTime()/1e3))}function Sb(e=()=>new Date){return{now:{fn:()=>nb(e),argTypes:[],arity:{kind:`exact`}},date:{fn:(e,t)=>Uy(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},dateInZone:{fn:(e,t,n)=>Wy(e,t,n),argTypes:[`string`,`value`,`string`],arity:{kind:`exact`}},dateModify:{fn:(e,t)=>Gy(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},htmlDate:{fn:e=>eb(e),argTypes:[`value`],arity:{kind:`exact`}},htmlDateInZone:{fn:(e,t)=>tb(e,t),argTypes:[`value`,`string`],arity:{kind:`exact`}},duration:{fn:e=>Ky(e),argTypes:[`value`],arity:{kind:`exact`}},durationRound:{fn:e=>$y(e),argTypes:[`value`],arity:{kind:`exact`}},toDate:{fn:(e,t)=>bb(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},ago:{fn:t=>by(t,e),argTypes:[`value`],arity:{kind:`exact`}},unixEpoch:{fn:e=>xb(e),argTypes:[`value`],arity:{kind:`exact`}}}}function Cb(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 wb(...e){for(let t of e)if(!Cb(t))return t}function Tb(e,t){return Cb(t)?e:t}function Eb(e){return JSON.parse(e)}function Db(e,t,n){return q_(n)?e:t}function Ob(e){return JSON.stringify(e)??`null`}function kb(e){return JSON.stringify(e,null,2)??`null`}function Ab(){return{default:{fn:(e,t)=>Tb(e,t),argTypes:[`value`,`truthy`],arity:{kind:`variadic`}},empty:{fn:e=>Cb(e),argTypes:[`truthy`],arity:{kind:`exact`}},coalesce:{fn:(...e)=>wb(...e),argTypes:[`truthy`],arity:{kind:`variadic`}},ternary:{fn:(e,t,n)=>Db(e,t,n),argTypes:[`value`,`value`,`truthy`],arity:{kind:`exact`}},fromJson:{fn:e=>Eb(e),argTypes:[`string`],arity:{kind:`exact`}},toJson:{fn:e=>Ob(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`},toPrettyJson:{fn:e=>kb(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}function jb(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function Mb(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 jb(...t)}function Nb(e,t){return e[t]}function Pb(e,t){return t in e}function Fb(e){return Object.keys(e)}function Ib(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 Lb(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function Rb(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 zb(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Bb(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function Vb(e,t,n){return e[t]=n,e}function Hb(e,t){return delete e[t],e}function Ub(e){return Object.values(e)}function Wb(){return{dict:{fn:(...e)=>jb(...e),argTypes:[`string`,`value`],arity:{kind:`alternating`,minimum:0}},get:{fn:(e,t)=>Nb(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},set:{fn:(e,t,n)=>Vb(e,t,n),argTypes:[`dict`,`string`,`value`],arity:{kind:`exact`}},unset:{fn:(e,t)=>Hb(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},keys:{fn:e=>Fb(e),argTypes:[`dict`],arity:{kind:`variadic`}},values:{fn:e=>Ub(e),argTypes:[`dict`],arity:{kind:`exact`}},pluck:{fn:(e,...t)=>Bb(e,...t),argTypes:[`string`,`dict`],arity:{kind:`variadic`}},pick:{fn:(e,...t)=>zb(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},omit:{fn:(e,...t)=>Rb(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},hasKey:{fn:(e,t)=>Pb(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},merge:{fn:(e,...t)=>Ib(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}},mergeOverwrite:{fn:(e,...t)=>Lb(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}}}}function Gb(e){throw new r_(e)}function Kb(){return{fail:{fn:e=>Gb(e),argTypes:[`string`],arity:{kind:`exact`}}}}new TextEncoder,new Map(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`).map((e,t)=>[e,t])),new TextDecoder,new TextEncoder,new TextDecoder,new TextEncoder;function qb(...e){for(let t of e)if(Cb(t))return!1;return!0}function Jb(...e){for(let t of e)if(!Cb(t))return!0;return!1}function Yb(e,t){return[...e,t]}function Xb(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 Zb(e){return e.filter(e=>!Cb(e))}function Qb(...e){let t=[];for(let n of e)t.push(...n);return t}const $b={line:0,column:0,offset:0};function ex(e,t,n,r){return new e_(e,t,n,r,$b)}function tx(...e){if(e.length<3)throw ex(`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(!rx(t))throw ex(`dig`,e.length-1,`dict`,ix(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw ex(`dig`,e,`string`,ix(r[e]));return nx(t,n,r,e.length)}function nx(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(!rx(a))throw ex(`dig`,r-1,`dict at intermediate key`,ix(a));return nx(a,t,n.slice(1),r)}function rx(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function ix(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function ax(e){return e[0]}function ox(e,t){return t.some(t=>U_(t,e))}function sx(e){return e.slice(0,-1)}function cx(e){return e[e.length-1]}function lx(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function ux(...e){return e}function dx(e,t){return[t,...e]}function fx(e){return e.slice(1)}function px(e){return[...e].reverse()}function mx(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function hx(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function gx(e){let t=[];for(let n of e)t.some(e=>U_(e,n))||t.push(n);return t}function _x(e,...t){return e.filter(e=>!t.some(t=>U_(t,e)))}function vx(){return{list:{fn:(...e)=>ux(...e),argTypes:[`value`],arity:{kind:`variadic`}},first:{fn:e=>ax(e),argTypes:[`list`],arity:{kind:`exact`}},last:{fn:e=>cx(e),argTypes:[`list`],arity:{kind:`exact`}},rest:{fn:e=>fx(e),argTypes:[`list`],arity:{kind:`exact`}},initial:{fn:e=>sx(e),argTypes:[`list`],arity:{kind:`exact`}},len:{fn:e=>lx(e),argTypes:[`sized`],arity:{kind:`exact`}},reverse:{fn:e=>px(e),argTypes:[`list`],arity:{kind:`exact`}},uniq:{fn:e=>gx(e),argTypes:[`list`],arity:{kind:`exact`}},without:{fn:(e,...t)=>_x(e,...t),argTypes:[`list`,`value`],arity:{kind:`variadic`}},has:{fn:(e,t)=>ox(e,t),argTypes:[`value`,`list`],arity:{kind:`exact`}},compact:{fn:e=>Zb(e),argTypes:[`list`],arity:{kind:`exact`}},slice:{fn:(e,t,n)=>mx(e,t,n),argTypes:[`list`,`truncating-int`],arity:{kind:`variadic`}},concat:{fn:(...e)=>Qb(...e),argTypes:[`list`],arity:{kind:`variadic`}},chunk:{fn:(e,t)=>Xb(e,t),argTypes:[`int`,`list`],arity:{kind:`exact`}},prepend:{fn:(e,t)=>dx(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},append:{fn:(e,t)=>Yb(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},sortAlpha:{fn:e=>hx(e),argTypes:[`list`],arity:{kind:`exact`},returnType:`list`},push:{fn:(e,t)=>Yb(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},tuple:{fn:(...e)=>ux(...e),argTypes:[`value`],arity:{kind:`variadic`}},dig:{fn:(...e)=>tx(...e),argTypes:[`value`],arity:{kind:`variadic`}},all:{fn:(...e)=>qb(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`},any:{fn:(...e)=>Jb(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`}}}function yx(...e){return e.reduce((e,t)=>e+t,0)}function bx(e){return e+1}function xx(e){return e+1}function Sx(...e){return e.reduce((e,t)=>e+t,0)}function Cx(e){return Math.ceil(e)}function wx(e,t){return Math.trunc(e/t)}function Tx(e,...t){return t.reduce((e,t)=>e/t,e)}function Ex(e){return Math.floor(e)}function Dx(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function Ox(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function kx(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function Ax(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function jx(e,t){return e%t}function Mx(...e){return e.reduce((e,t)=>e*t,1)}function Nx(...e){return e.reduce((e,t)=>e*t,1)}function Px(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function Fx(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 Ix(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),Fx(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return Fx(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:Fx(n,i+t,r).join(` `)}default:return``}}function Lx(e,t){return e-t}function Rx(e,...t){return t.reduce((e,t)=>e-t,e)}function zx(e){return Fx(0,e,e<0?-1:1)}function Bx(){return{add:{fn:(...e)=>yx(...e),argTypes:[`truncating-int`],arity:{kind:`variadic`}},sub:{fn:(e,t)=>Lx(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mul:{fn:(...e)=>Mx(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},div:{fn:(e,t)=>wx(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mod:{fn:(e,t)=>jx(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},min:{fn:(...e)=>kx(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},max:{fn:(...e)=>Dx(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},floor:{fn:e=>Ex(e),argTypes:[`float`],arity:{kind:`exact`}},ceil:{fn:e=>Cx(e),argTypes:[`float`],arity:{kind:`exact`}},round:{fn:(e,t)=>Px(e,t),argTypes:[`float`,`int`,`float`],arity:{kind:`variadic`}},addf:{fn:(...e)=>Sx(...e),argTypes:[`float`],arity:{kind:`variadic`}},subf:{fn:(e,...t)=>Rx(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},mulf:{fn:(...e)=>Nx(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},divf:{fn:(e,...t)=>Tx(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},add1:{fn:e=>bx(e),argTypes:[`truncating-int`],arity:{kind:`exact`}},add1f:{fn:e=>xx(e),argTypes:[`float`],arity:{kind:`exact`}},maxf:{fn:(...e)=>Ox(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},minf:{fn:(...e)=>Ax(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},biggest:{fn:(...e)=>Dx(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},seq:{fn:(...e)=>Ix(...e),argTypes:[`int`],arity:{kind:`variadic`},returnType:`string`},until:{fn:e=>zx(e),argTypes:[`int`],arity:{kind:`exact`},returnType:`list`},untilStep:{fn:(e,t,n)=>Fx(e,t,n),argTypes:[`int`,`int`,`int`],arity:{kind:`exact`},returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function Vx(e){return Array.from(e)}function Hx(e,t){return e===``?Vx(t):t.split(e)}function Ux(e,t){let n=Vx(t);return n.length<=e||e<4?t:`${n.slice(0,e-3).join(``)}...`}function Wx(e,t,n){let r=Vx(n);return t<7||r.length<t||e<0||e>r.length-t+1?n:`...${r.slice(e,e+t-6).join(``)}...`}const q={Invalid:0,Number:1,UpperCase:2,Alphabet:3,Connector:4,Punct:5,Other:6},Gx=/^[-_\s]$/,Kx=/^\p{P}$/u,qx=/^\p{L}$/u,Jx=/^\p{Lu}$/u,Yx=/^\p{N}$/u;function Xx(e){return e!==void 0&&Gx.test(e)}function Zx(e){return e!==void 0&&qx.test(e)}function Qx(e){return e!==void 0&&Jx.test(e)}function $x(e){return e!==void 0&&Yx.test(e)}function eS(e){return e!==void 0&&Kx.test(e)}function tS(e,t){if(t>=e.length)return{word:{wt:q.Invalid,text:``},next:t};let n=e[t],r=t+1;if(Xx(n)){for(;r<e.length&&Xx(e[r]);)r++;return{word:{wt:q.Connector,text:e.slice(t,r).join(``)},next:r}}if(eS(n)){for(;r<e.length&&eS(e[r]);)r++;return{word:{wt:q.Punct,text:e.slice(t,r).join(``)},next:r}}if(Qx(n)){if(r>=e.length)return{word:{wt:q.UpperCase,text:n},next:r};if(Qx(e[r])){let n=r;for(;n<e.length&&Qx(e[n]);)n++;return n<e.length&&Zx(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(Zx(e[r])){let n=r+1;for(;n<e.length&&Zx(e[n])&&!Qx(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(Zx(n)){for(;r<e.length&&Zx(e[r])&&!Qx(e[r]);)r++;return{word:{wt:q.Alphabet,text:e.slice(t,r).join(``)},next:r}}if($x(n)){for(;r<e.length&&$x(e[r]);)r++;return{word:{wt:q.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!Xx(e[r])&&!Zx(e[r])&&!$x(e[r])&&!eS(e[r]);)r++;return{word:{wt:q.Other,text:e.slice(t,r).join(``)},next:r}}function nS(e,t,n){if(t.wt!==q.UpperCase&&t.wt!==q.Connector){e.push(t.text);return}for(let r of t.text)Xx(r)?e.push(n):Qx(r)?e.push(r.toLowerCase()):e.push(r)}function rS(e,t){if(e.length===0)return``;let n=Vx(e),r=[],{word:i,next:a}=tS(n,0);for(;a<n.length;){i.wt!==q.Connector&&nS(r,i,t);let e=i,o=i;if({word:i,next:a}=tS(n,a),e.wt===q.Number){for(;i.wt===q.Alphabet||i.wt===q.Number;)nS(r,i,t),{word:i,next:a}=tS(n,a);i.wt!==q.Invalid&&i.wt!==q.Punct&&i.wt!==q.Connector&&r.push(t);continue}if(e.wt===q.Connector){nS(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}=tS(n,a),i.wt!==q.Alphabet){nS(r,s,t),i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}for(r.push(t),nS(r,s,t);i.wt===q.Alphabet||i.wt===q.Number;)nS(r,i,t),{word:i,next:a}=tS(n,a);i.wt!==q.Invalid&&i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t)}return nS(r,i,t),r.join(``).toLowerCase()}function iS(e){if(e.length===0)return``;let t=Vx(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!Xx(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++,Xx(i)&&Xx(e)){n.push(e);continue}Xx(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function aS(e){return iS(e)}function oS(...e){return e.join(` `)}function sS(e,t){return t.includes(e)}function cS(e,t){return t.startsWith(e)}function lS(e,t){return t.endsWith(e)}function uS(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
62
+ `?(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 rv(e){return e===` `||e===` `||e===`\r`||e===`
63
+ `}function iv(e){return e===`+`||e===`-`}function av(e){return e>=`0`&&e<=`9`}function ov(e){return av(e)||e>=`a`&&e<=`f`||e>=`A`&&e<=`F`}function sv(e){return e>=`0`&&e<=`7`}function cv(e){return e===`0`||e===`1`}function lv(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`}function uv(e){return lv(e)||e===`_`}function dv(e){return uv(e)||av(e)}let fv,pv;function mv(e,t){return pv(e,t)}var hv=class e{static EMPTY=new e(new Map,void 0);#e;#t;constructor(e,t){this.#e=e,this.#t=t}static{fv=(t,n)=>new e(t,n),pv=(e,t)=>e.#e.get(t)??(e.#t&&pv(e.#t,t))}has(e){return pv(this,e)!==void 0}};function gv(e,t,n=hv.EMPTY){return new _v(e,t,n).parseTemplate()}var _v=class{lex;buf=[];defines=new Map;inherit;source;rangeDepth=0;constructor(e,t,n){this.source=e,this.inherit=n,this.lex=t?new nv(e,t):new nv(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:bv(n)});return n}errAt(e,t,n={}){return new H_(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 ${bv(e)}`,{found:bv(e)})}return{root:e,defines:fv(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=yv(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 vv(e,t);let r=this.parseAction();r!==null&&t.push(r);continue}throw this.errAt(n,`unexpected ${bv(n)} at top level`,{found:bv(n)})}return vv(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 H_(`{{${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 H_(`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:bv(e)});return Ov(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(!xv(e.type))throw this.errAt(e,"missing command after `|`",{expected:`command`,found:bv(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=[Sv(this.next())];for(;this.peek().type===`Comma`;)this.next(),n.push(Sv(this.expect(`Variable`,`$variable`)));return{vars:n,isAssign:this.next().type===`Assign`}}parseCommand(){let e=this.peek().pos,t=[this.parsePrimary()];for(;xv(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 Sv(e);case`Identifier`:return{type:`Identifier`,pos:e.pos,ident:e.value};case`String`:return{type:`String`,pos:e.pos,raw:e.value,value:Ov(e.value,e.pos,this.source)};case`Number`:return wv(e);case`Char`:return Tv(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 ${bv(e)}`,{expected:`command argument`,found:bv(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 vv(e,t){return{type:`List`,pos:e,nodes:t}}function yv(e){return{trimLeft:e.trimLeft===!0,trimRight:e.trimRight===!0}}function bv(e){return e.type===`EOF`?`end of input`:e.value||e.type}function xv(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 Sv(e){return{type:`Variable`,pos:e.pos,idents:Cv(e.value)}}function Cv(e){let t=e.indexOf(`.`);return t===-1?[e]:[e.slice(0,t),...e.slice(t+1).split(`.`)]}function wv(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=Ev(i);return{...s,intValue:e}}if(a){let e=Dv(i);return{...s,floatValue:e}}let c=Dv(i);return{...s,complexValue:[0,c]}}function Tv(e,t){let n=kv(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 Ev(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 Dv(e){return Number(e)}function Ov(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+=`
64
+ `;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 H_(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function kv(e,t,n){let r=Ov(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new H_(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function Av(e,t){if(t(e)!==!1)for(let n of jv(e))Av(n,t)}function jv(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 $_(e)}}const Mv=Symbol(`go-template-js.MISSING`);function Nv(e,t){if(e==null)return Mv;if(e instanceof Map)return e.has(t)?e.get(t):Mv;if(Array.isArray(e))return Mv;if(typeof e==`object`){let n=e;return t in n?n[t]:Mv}return Mv}function Pv(e,t){let n=e;for(let e of t){if(n===Mv)return Mv;n=Nv(n,e)}return n}function Fv(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)=>Fv(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)||!Fv(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=>Fv(e[n],t[n])):!1}return!1}const Iv=new WeakSet;function Lv(e){return Iv.add(e),e}function Rv(e){return Iv.has(e)}function zv(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 Bv(e,t){return{eq:{fn:(e,...t)=>t.some(t=>Uv(e,t)),argTypes:[`comparable`,`comparable`],arity:{kind:`variadic`}},ne:{fn:(e,t)=>!Uv(e,t),argTypes:[`comparable`,`comparable`],arity:{kind:`exact`}},lt:{fn:(e,t)=>Wv(e,t)<0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},le:{fn:(e,t)=>Wv(e,t)<=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},gt:{fn:(e,t)=>Wv(e,t)>0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},ge:{fn:(e,t)=>Wv(e,t)>=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},len:{fn:e=>Gv(e),argTypes:[`sized`],arity:{kind:`exact`}},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=Kv(n,e);return n},argTypes:[`collection`,`index-key`],arity:{kind:`variadic`}},slice:{fn:(e,...t)=>Jv(e,t),argTypes:[`sliceable`,`int`],arity:{kind:`variadic`}},print:{fn:(...t)=>Zv(t,e),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},println:{fn:(...t)=>`${Zv(t,e)}\n`,argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},printf:{fn:(n,...r)=>oy(n,r,e,t),argTypes:[`string`,`stringifiable`],arity:{kind:`variadic`},returnType:`string`},toString:{fn:n=>ly(n,e,t),argTypes:[`value`],arity:{kind:`exact`},returnType:`string`},toStrings:{fn:n=>n.map(n=>ly(n,e,t)),argTypes:[`list`],arity:{kind:`exact`}},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`],arity:{kind:`variadic`}},html:{fn:(...t)=>ey(Zv(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},js:{fn:(...t)=>ry(Zv(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},urlquery:{fn:(...t)=>ay(Zv(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},not:{fn:e=>!zv(e),argTypes:[`truthy`],arity:{kind:`exact`}}}}function Vv(){return{and:Lv({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!zv(t))return t;return t}}),or:Lv({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),zv(t))return t;return t}})}}function Hv(e,t){return{...Bv(e,t),...Vv()}}function Uv(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):Fv(e,t)}function Wv(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 Gv(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Kv(e,t){if(Array.isArray(e)||typeof e==`string`){let n=qv(t,e.length);if(n===e.length)throw Error(`index out of range: ${n}`);return e[n]}if(e instanceof Map)return e.get(t);if(typeof e==`object`&&e){if(typeof t!=`string`)throw Error(`index: object index must be string, got ${Yv(t)}`);return e[t]}throw Error(`index: cannot index ${Yv(e)}`)}function qv(e,t){let n=typeof e==`bigint`?Number(e):e;if(typeof n!=`number`||!Number.isInteger(n))throw Error(`cannot index slice/array with type ${Xv(e)}`);if(n<0||n>t)throw Error(`index out of range: ${String(e)}`);return n}function Jv(e,t){if(t.length>3)throw Error(`too many slice indexes: ${t.length}`);if(typeof e==`string`&&t.length>2)throw Error(`cannot 3-index slice a string`);let n=e.length,r=[0,n,n];t.forEach((e,t)=>{r[t]=qv(e,n)});let[i,a,o]=r;if(i>a)throw Error(`invalid slice index: ${i} > ${a}`);if(a>o)throw Error(`invalid slice index: ${a} > ${o}`);return e.slice(i,a)}function Yv(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function Xv(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 Zv(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+=Qv(a,t),r=o}return n}function Qv(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const $v={"\0":`�`,'"':`&#34;`,"'":`&#39;`,"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function ey(e){return e.replace(/[\0"'&<>]/g,e=>$v[e]??e)}const ty={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},ny=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function ry(e){let t=``;for(let n of e){let e=ty[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!ny.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const iy=new TextEncoder;function ay(e){let t=``,n=iy.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 oy(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+=sy(l??``,u,d,n,r),o=c+1}return i}function sy(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?cy(t,n):cy(t,Qv(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Xv(n)}=${Qv(n,r)})`:cy(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return cy(t,ly(n,r,i));case`q`:return cy(t,JSON.stringify(Qv(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${Xv(n)}=${Qv(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return cy(t,Number(n).toFixed(i))}case`t`:return cy(t,zv(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 cy(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${Xv(n)}=${Qv(n,r)})`:typeof n==`bigint`?cy(t,n.toString(16)):cy(t,Math.trunc(n).toString(16));default:return`%!${e}(${Xv(n)}=${Qv(n,r)})`}}function cy(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 ly(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>ly(e,t,n)).join(` `)}]`:e instanceof Map?uy([...e.entries()],t,n):dy(e)?uy(Object.entries(e),t,n):String(e)}function uy(e,t,n){let r=e=>ly(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 dy(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 fy(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function py(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function my(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 hy(e,t,n){e.vars.set(t,n)}const gy=[`string`,`int`,`truncating-int`,`float`,`bool`,`T`,`ordered`,`list`,`dict`,`sized`,`comparable`,`stringifiable`,`liftable`,`callable`,`collection`,`index-key`,`sliceable`,`truthy`,`reflective`,`value`,`serializable`],_y=new Set([`default`,`zero`,`error`]);function vy(e){if(e===void 0)return`default`;if(_y.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${yy(e)}`)}function yy(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 by(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${yy(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${yy(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${yy(e.right)}`);return{left:e.left,right:e.right}}}function xy(e){switch(e.kind){case`exact`:return!1;case`variadic`:return!0;case`alternating`:return!0}}function Sy(e){let t=new Set(gy);for(let[n,r]of Object.entries(e)){if(r.argTypes.forEach((e,r)=>{if(!t.has(e))throw Error(`EngineConfig.funcs.${n}: argTypes[${r}] is ${JSON.stringify(e)}, which is not an ArgType; declare one of ${gy.join(`, `)}`)}),xy(r.arity)&&r.argTypes.length===0)throw Error(`EngineConfig.funcs.${n}: arity ${JSON.stringify(r.arity.kind)} needs at least one declared argType (it reads its repeating slot from the end of argTypes); declare the slots the Go signature has, or use { kind: "exact" }`);if(r.arity.kind===`alternating`&&(!Number.isSafeInteger(r.arity.minimum)||r.arity.minimum<0))throw Error(`EngineConfig.funcs.${n}: arity "alternating" needs a non-negative integer minimum, got ${String(r.arity.minimum)}; the gate rejects every count below it, so a negative or non-finite minimum would disable the lower bound`)}return e}const Cy=Object.freeze({kind:`break`}),wy=Object.freeze({kind:`continue`}),Ty={kind:`none`};let Ey;(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{Ey=(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 Dy(e){let t=new Set,n=e=>{Av(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 Oy={kind:`dynamic`};function ky(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=Xy(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:Oy}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return Oy;let t=e.cmds[0];if(t===void 0)return Oy;let n=t.args[0];return n===void 0||n.type!==`Identifier`?Oy:{kind:`call`,name:n.ident,args:t.args.slice(1).map(ky)}}default:return Oy}}function Ay(e){let t=[],n=e=>{Av(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(ky);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 jy=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??zy,this.isT=e.isT??My,this.missingKey=vy(e.missingKey),this.delims=by(e.delims),this.funcs=Sy({...Hv(this.toString,this.isT),...e.funcs??{}})}parse(e,t){let n=gv(e,this.delims,t);return Ey(n.source,e=>this.evalParsed(n,e),n.defines,Dy(n),Ay(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=fy(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 Cy;case`Continue`:throw wy;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 U_(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:$_(e)}}evalIf(e,t,n){zv(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(zv(r)){let i=py(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=qy(r);try{if(a.length===0){e.elseList&&this.evalList(e.elseList,t,n);return}for(let[r,o]of a){let a=py(t,o);if(i.length===1)hy(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;hy(a,e,r),hy(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===wy)continue;throw e}}}catch(e){if(e===Cy)return;throw e}}evalTemplateInvoke(e,t,n){let r=mv(n.defines,e.name);if(!r)throw new U_(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=py(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=py(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=mv(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 U_(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,Ty);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)hy(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 U_(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new U_(`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 W_(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=Rv(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)}return this.invoke(i.ident,a,c,e.pos,n)}invoke(e,t,n,r,i){Py(e,t,n,r,i.source,this.toString,this.fromString,this.isT);try{return t.fn(...n)}catch(t){throw t instanceof K_?new K_(t.funcName,t.argIndex,t.expected,t.receivedSummary,r,{source:i.source}):t instanceof Y_?new Y_(t.message,r,{source:i.source}):t instanceof V_?t:new U_(`error calling ${e}: ${Gy(t)}`,r,{source:i.source,cause: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 Xy(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 W_(e.ident,e.pos,{source:n.source,available:Object.keys(this.funcs)});return this.invoke(e.ident,t,[],e.pos,n)}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 U_(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=Pv(e,t);if(i!==Mv)return i;if(this.missingKey===`error`)throw new J_(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=my(t,i);if(!a.found)throw new U_(`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(ly(e,this.toString,this.isT)))}};const My=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function Ny(e){return new jy(e)}function Py(e,t,n,r,i,a=zy,o=Ry,s=My){let{argTypes:c,arity:l}=t,u=Fy(c,l);if(n.length<u.minimum||n.length>u.maximum)throw new G_(e,u,n.length,r,{source:i});let d=Iy(c,l),f=-1,p=-1;for(let t=0;t<n.length;t++){let c=d(t),l=n[t];if(!Ly(c,l,a,s))throw(c===`int`||c===`truncating-int`)&&(typeof l==`number`||typeof l==`bigint`)?new q_(e,t+1,l,r,{source:i}):new K_(e,t+1,Wy(c),Ky(l),r,{source:i});if(c===`liftable`&&typeof l==`string`&&(n[t]=o(l)),c===`truncating-int`?n[t]=Math.trunc(Number(l)):(c===`int`||c===`float`)&&(n[t]=Number(l)),c===`ordered`){if(f===-1)f=t;else if(!Vy(n[f],l))throw new K_(e,t+1,`${Wy(`ordered`)} of the same kind as ${Ky(n[f])}`,Ky(l),r,{source:i})}if(c===`comparable`){if(p===-1)p=t;else if(!Hy(n[p],l))throw new K_(e,t+1,`${Wy(`comparable`)} of the same kind as ${Ky(n[p])}`,Ky(l),r,{source:i})}}}function Fy(e,t){switch(t.kind){case`exact`:return{minimum:e.length,maximum:e.length};case`variadic`:return{minimum:e.length-1,maximum:1/0};case`alternating`:return{minimum:t.minimum,maximum:1/0}}}function Iy(e,t){let n=e.length;switch(t.kind){case`exact`:return t=>e[t];case`variadic`:return t=>e[Math.min(t,n-1)];case`alternating`:return t=>e[t%n]}}function Ly(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.isSafeInteger(t)||typeof t==`bigint`&&Number.isSafeInteger(Number(t));case`truncating-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 dy(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||dy(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||dy(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||dy(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 By(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Ry(e){return e}function zy(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 K_(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,Ky(e),{line:0,column:0,offset:0})}function By(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function Vy(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function Hy(e,t){let n=Uy(e),r=Uy(t);return n===`nil`||r===`nil`?!0:n===r}function Uy(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 Wy(e){switch(e){case`int`:return`integer (safe-integer number or bigint)`;case`truncating-int`:return`integer (finite number, truncated toward zero, 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 Gy(e){return e instanceof Error?e.message:String(e)}function Ky(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function qy(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?Jy([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?Jy(Object.entries(e)):[]}function Jy(e){return[...e].sort((e,t)=>Yy(e[0],t[0]))}function Yy(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 Xy(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 Zy(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function Qy(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 $y(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 eb(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=$y(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 tb(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=$y(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 nb(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 rb(e){return JSON.stringify(e)??`null`}function ib(){return{atoi:{fn:e=>Zy(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},int:{fn:e=>eb(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`int`},int64:{fn:e=>tb(e),argTypes:[`value`],arity:{kind:`exact`}},float64:{fn:e=>Qy(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`float`},toDecimal:{fn:e=>nb(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},toRawJson:{fn:e=>rb(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}const ab={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function ob(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*ab[a],n=n.slice(e[0].length)}return t?-r:r}function sb(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<ab.us?`${Math.floor(n)}ns`:n<ab.ms?cb(n,ab.us,3,`µs`):n<ab.s?cb(n,ab.ms,6,`ms`):lb(n),t?`-${r}`:r}function cb(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 lb(e){let t=Math.floor(e/ab.h);e-=t*ab.h;let n=Math.floor(e/ab.m);e-=n*ab.m;let r=Math.floor(e/ab.s),i=e-r*ab.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 ub(e){return e*ab.s}function db(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 fb(e,t){let n=t().getTime()-db(e).getTime();return sb(Math.round(n/1e3)*1e9)}const pb=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],mb=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],hb=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],gb=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function _b(e){return e<10?`0${e}`:String(e)}function vb(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function yb(e){return e<10?` ${e}`:String(e)}function bb(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${_b(Math.floor(n/60))}${_b(n%60)}`}function xb(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${_b(Math.floor(n/60))}:${_b(n%60)}`}function Sb(e){return`${e>=0?`+`:`-`}${_b(Math.floor(Math.abs(e)/60))}`}function Cb(e){return e===0?`Z`:bb(e)}function wb(e){return e===0?`Z`:xb(e)}function Tb(e){return e===0?`Z`:Sb(e)}function Eb(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const Db=[[`.000000000`,e=>`.${Eb(e.ms,9,!1)}`],[`.999999999`,e=>{let t=Eb(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${Eb(e.ms,6,!1)}`],[`.999999`,e=>{let t=Eb(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${vb(e.ms)}`],[`.999`,e=>{let t=vb(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>pb[e.month-1]??`January`],[`Monday`,e=>hb[e.weekday]??`Monday`],[`Z07:00`,e=>wb(e.offsetMinutes)],[`-07:00`,e=>xb(e.offsetMinutes)],[`Z0700`,e=>Cb(e.offsetMinutes)],[`-0700`,e=>bb(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>mb[e.month-1]??`Jan`],[`Mon`,e=>gb[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>Sb(e.offsetMinutes)],[`Z07`,e=>Tb(e.offsetMinutes)],[`15`,e=>_b(e.hour)],[`01`,e=>_b(e.month)],[`02`,e=>_b(e.day)],[`_2`,e=>yb(e.day)],[`03`,e=>_b(e.hour12)],[`04`,e=>_b(e.minute)],[`05`,e=>_b(e.second)],[`06`,e=>_b(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 Ob(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of Db)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const kb={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function Ab(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const jb=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function Mb(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=Ab(new Intl.DateTimeFormat(`en-US`,{...kb,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=Ab(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=Nb(Ab(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=jb.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 Nb(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 Pb(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function Fb(e,t){return Ob(e,Mb(db(t),Pb()))}function Ib(e,t,n){return Ob(e,Mb(db(t),n))}function Lb(e,t){let n=db(t),r=ob(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function Rb(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:sb(ub(t))}return typeof e==`bigint`?sb(ub(Number(e))):typeof e==`number`?sb(ub(e)):`0s`}const zb=36e11*24*365,Bb=36e11*24*30,Vb=36e11*24,Hb=36e11,Ub=6e10,Wb=1e9;function Gb(e){let t=ob(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>zb?`${Math.floor(n/zb)}y`:n>Bb?`${Math.floor(n/Bb)}mo`:n>Vb?`${Math.floor(n/Vb)}d`:n>Hb?`${Math.floor(n/Hb)}h`:n>Ub?`${Math.floor(n/Ub)}m`:n>Wb?`${Math.floor(n/Wb)}s`:`0s`}function Kb(e){let t=Mb(db(e),Pb());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function qb(e,t){let n=Mb(db(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function Jb(e){return e()}const Yb=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Xb=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Zb(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function Qb(e,t,n){return[e.slice(t,t+n),t+n]}function $b(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 ex(e,t){for(let[n,r]of Yb.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function tx(e,t){for(let[n,r]of Xb.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function nx(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 rx(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 ix(e,t){if(e[t]===` `){let[n,r]=$b(e,t+1,1,1);return[n,r]}return $b(e,t,1,2)}function ax(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]=$b(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=$b(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=$b(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function ox(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]=$b(e,t+1,2,2);return[n*r*60,i]}return ax(e,t,n)}function sx(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 cx(e,t,n){let[r,i]=Qb(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function lx(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=ex(t,n);return i.month=e,[r,i]}case`Monday`:return[nx(t,n),i];case`Jan`:{let[e,r]=tx(t,n);return i.month=e,[r,i]}case`Mon`:return[rx(t,n),i];case`2006`:{let[e,r]=$b(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=$b(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=$b(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=$b(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=ix(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=$b(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=$b(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=$b(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=$b(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=$b(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=$b(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=$b(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=$b(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=$b(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[sx(t,n),i];case`-0700`:{let[e,r]=ax(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=ax(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]=$b(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=ox(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=ox(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=ox(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]=cx(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]=cx(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]=cx(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 ux=`.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 dx(e,t){let n=0,r=0,i=Zb();for(;n<e.length;){let a=!1;for(let o of ux)if(e.startsWith(o,n)){let[e,s]=lx(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 fx(e,t){return dx(e,t)}function px(e){return String(Math.floor(db(e).getTime()/1e3))}function mx(e=()=>new Date){return{now:{fn:()=>Jb(e),argTypes:[],arity:{kind:`exact`}},date:{fn:(e,t)=>Fb(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},dateInZone:{fn:(e,t,n)=>Ib(e,t,n),argTypes:[`string`,`value`,`string`],arity:{kind:`exact`}},dateModify:{fn:(e,t)=>Lb(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},htmlDate:{fn:e=>Kb(e),argTypes:[`value`],arity:{kind:`exact`}},htmlDateInZone:{fn:(e,t)=>qb(e,t),argTypes:[`value`,`string`],arity:{kind:`exact`}},duration:{fn:e=>Rb(e),argTypes:[`value`],arity:{kind:`exact`}},durationRound:{fn:e=>Gb(e),argTypes:[`value`],arity:{kind:`exact`}},toDate:{fn:(e,t)=>fx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},ago:{fn:t=>fb(t,e),argTypes:[`value`],arity:{kind:`exact`}},unixEpoch:{fn:e=>px(e),argTypes:[`value`],arity:{kind:`exact`}}}}function hx(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 gx(...e){for(let t of e)if(!hx(t))return t}function _x(e,t){return hx(t)?e:t}function vx(e){return JSON.parse(e)}function yx(e,t,n){return zv(n)?e:t}function bx(e){return JSON.stringify(e)??`null`}function xx(e){return JSON.stringify(e,null,2)??`null`}function Sx(){return{default:{fn:(e,t)=>_x(e,t),argTypes:[`value`,`truthy`],arity:{kind:`variadic`}},empty:{fn:e=>hx(e),argTypes:[`truthy`],arity:{kind:`exact`}},coalesce:{fn:(...e)=>gx(...e),argTypes:[`truthy`],arity:{kind:`variadic`}},ternary:{fn:(e,t,n)=>yx(e,t,n),argTypes:[`value`,`value`,`truthy`],arity:{kind:`exact`}},fromJson:{fn:e=>vx(e),argTypes:[`string`],arity:{kind:`exact`}},toJson:{fn:e=>bx(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`},toPrettyJson:{fn:e=>xx(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}function Cx(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function wx(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 Cx(...t)}function Tx(e,t){return e[t]}function Ex(e,t){return t in e}function Dx(e){return Object.keys(e)}function Ox(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 kx(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function Ax(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 jx(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Mx(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function Nx(e,t,n){return e[t]=n,e}function Px(e,t){return delete e[t],e}function Fx(e){return Object.values(e)}function Ix(){return{dict:{fn:(...e)=>Cx(...e),argTypes:[`string`,`value`],arity:{kind:`alternating`,minimum:0}},get:{fn:(e,t)=>Tx(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},set:{fn:(e,t,n)=>Nx(e,t,n),argTypes:[`dict`,`string`,`value`],arity:{kind:`exact`}},unset:{fn:(e,t)=>Px(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},keys:{fn:e=>Dx(e),argTypes:[`dict`],arity:{kind:`variadic`}},values:{fn:e=>Fx(e),argTypes:[`dict`],arity:{kind:`exact`}},pluck:{fn:(e,...t)=>Mx(e,...t),argTypes:[`string`,`dict`],arity:{kind:`variadic`}},pick:{fn:(e,...t)=>jx(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},omit:{fn:(e,...t)=>Ax(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},hasKey:{fn:(e,t)=>Ex(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},merge:{fn:(e,...t)=>Ox(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}},mergeOverwrite:{fn:(e,...t)=>kx(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}}}}function Lx(e){throw new Y_(e)}function Rx(){return{fail:{fn:e=>Lx(e),argTypes:[`string`],arity:{kind:`exact`}}}}new TextEncoder,new Map(Array.from(`ABCDEFGHIJKLMNOPQRSTUVWXYZ234567`).map((e,t)=>[e,t])),new TextDecoder,new TextEncoder,new TextDecoder,new TextEncoder;function zx(...e){for(let t of e)if(hx(t))return!1;return!0}function Bx(...e){for(let t of e)if(!hx(t))return!0;return!1}function Vx(e,t){return[...e,t]}function Hx(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 Ux(e){return e.filter(e=>!hx(e))}function Wx(...e){let t=[];for(let n of e)t.push(...n);return t}const Gx={line:0,column:0,offset:0};function Kx(e,t,n,r){return new K_(e,t,n,r,Gx)}function qx(...e){if(e.length<3)throw Kx(`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(!Yx(t))throw Kx(`dig`,e.length-1,`dict`,Xx(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw Kx(`dig`,e,`string`,Xx(r[e]));return Jx(t,n,r,e.length)}function Jx(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(!Yx(a))throw Kx(`dig`,r-1,`dict at intermediate key`,Xx(a));return Jx(a,t,n.slice(1),r)}function Yx(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function Xx(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function Zx(e){return e[0]}function Qx(e,t){return t.some(t=>Fv(t,e))}function $x(e){return e.slice(0,-1)}function eS(e){return e[e.length-1]}function tS(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function nS(...e){return e}function rS(e,t){return[t,...e]}function iS(e){return e.slice(1)}function aS(e){return[...e].reverse()}function oS(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function sS(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function cS(e){let t=[];for(let n of e)t.some(e=>Fv(e,n))||t.push(n);return t}function lS(e,...t){return e.filter(e=>!t.some(t=>Fv(t,e)))}function uS(){return{list:{fn:(...e)=>nS(...e),argTypes:[`value`],arity:{kind:`variadic`}},first:{fn:e=>Zx(e),argTypes:[`list`],arity:{kind:`exact`}},last:{fn:e=>eS(e),argTypes:[`list`],arity:{kind:`exact`}},rest:{fn:e=>iS(e),argTypes:[`list`],arity:{kind:`exact`}},initial:{fn:e=>$x(e),argTypes:[`list`],arity:{kind:`exact`}},len:{fn:e=>tS(e),argTypes:[`sized`],arity:{kind:`exact`}},reverse:{fn:e=>aS(e),argTypes:[`list`],arity:{kind:`exact`}},uniq:{fn:e=>cS(e),argTypes:[`list`],arity:{kind:`exact`}},without:{fn:(e,...t)=>lS(e,...t),argTypes:[`list`,`value`],arity:{kind:`variadic`}},has:{fn:(e,t)=>Qx(e,t),argTypes:[`value`,`list`],arity:{kind:`exact`}},compact:{fn:e=>Ux(e),argTypes:[`list`],arity:{kind:`exact`}},slice:{fn:(e,t,n)=>oS(e,t,n),argTypes:[`list`,`truncating-int`],arity:{kind:`variadic`}},concat:{fn:(...e)=>Wx(...e),argTypes:[`list`],arity:{kind:`variadic`}},chunk:{fn:(e,t)=>Hx(e,t),argTypes:[`int`,`list`],arity:{kind:`exact`}},prepend:{fn:(e,t)=>rS(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},append:{fn:(e,t)=>Vx(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},sortAlpha:{fn:e=>sS(e),argTypes:[`list`],arity:{kind:`exact`},returnType:`list`},push:{fn:(e,t)=>Vx(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},tuple:{fn:(...e)=>nS(...e),argTypes:[`value`],arity:{kind:`variadic`}},dig:{fn:(...e)=>qx(...e),argTypes:[`value`],arity:{kind:`variadic`}},all:{fn:(...e)=>zx(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`},any:{fn:(...e)=>Bx(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`}}}function dS(...e){return e.reduce((e,t)=>e+t,0)}function fS(e){return e+1}function pS(e){return e+1}function mS(...e){return e.reduce((e,t)=>e+t,0)}function hS(e){return Math.ceil(e)}function gS(e,t){return Math.trunc(e/t)}function _S(e,...t){return t.reduce((e,t)=>e/t,e)}function vS(e){return Math.floor(e)}function yS(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function bS(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function xS(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function SS(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function CS(e,t){return e%t}function wS(...e){return e.reduce((e,t)=>e*t,1)}function TS(...e){return e.reduce((e,t)=>e*t,1)}function ES(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function DS(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 OS(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),DS(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return DS(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:DS(n,i+t,r).join(` `)}default:return``}}function kS(e,t){return e-t}function AS(e,...t){return t.reduce((e,t)=>e-t,e)}function jS(e){return DS(0,e,e<0?-1:1)}function MS(){return{add:{fn:(...e)=>dS(...e),argTypes:[`truncating-int`],arity:{kind:`variadic`}},sub:{fn:(e,t)=>kS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mul:{fn:(...e)=>wS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},div:{fn:(e,t)=>gS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mod:{fn:(e,t)=>CS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},min:{fn:(...e)=>xS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},max:{fn:(...e)=>yS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},floor:{fn:e=>vS(e),argTypes:[`float`],arity:{kind:`exact`}},ceil:{fn:e=>hS(e),argTypes:[`float`],arity:{kind:`exact`}},round:{fn:(e,t)=>ES(e,t),argTypes:[`float`,`int`,`float`],arity:{kind:`variadic`}},addf:{fn:(...e)=>mS(...e),argTypes:[`float`],arity:{kind:`variadic`}},subf:{fn:(e,...t)=>AS(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},mulf:{fn:(...e)=>TS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},divf:{fn:(e,...t)=>_S(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},add1:{fn:e=>fS(e),argTypes:[`truncating-int`],arity:{kind:`exact`}},add1f:{fn:e=>pS(e),argTypes:[`float`],arity:{kind:`exact`}},maxf:{fn:(...e)=>bS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},minf:{fn:(...e)=>SS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},biggest:{fn:(...e)=>yS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},seq:{fn:(...e)=>OS(...e),argTypes:[`int`],arity:{kind:`variadic`},returnType:`string`},until:{fn:e=>jS(e),argTypes:[`int`],arity:{kind:`exact`},returnType:`list`},untilStep:{fn:(e,t,n)=>DS(e,t,n),argTypes:[`int`,`int`,`int`],arity:{kind:`exact`},returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function NS(e){return Array.from(e)}function PS(e,t){return e===``?NS(t):t.split(e)}function FS(e,t){let n=NS(t);return n.length<=e||e<4?t:`${n.slice(0,e-3).join(``)}...`}function IS(e,t,n){let r=NS(n);return t<7||r.length<t||e<0||e>r.length-t+1?n:`...${r.slice(e,e+t-6).join(``)}...`}const q={Invalid:0,Number:1,UpperCase:2,Alphabet:3,Connector:4,Punct:5,Other:6},LS=/^[-_\s]$/,RS=/^\p{P}$/u,zS=/^\p{L}$/u,BS=/^\p{Lu}$/u,VS=/^\p{N}$/u;function HS(e){return e!==void 0&&LS.test(e)}function US(e){return e!==void 0&&zS.test(e)}function WS(e){return e!==void 0&&BS.test(e)}function GS(e){return e!==void 0&&VS.test(e)}function KS(e){return e!==void 0&&RS.test(e)}function qS(e,t){if(t>=e.length)return{word:{wt:q.Invalid,text:``},next:t};let n=e[t],r=t+1;if(HS(n)){for(;r<e.length&&HS(e[r]);)r++;return{word:{wt:q.Connector,text:e.slice(t,r).join(``)},next:r}}if(KS(n)){for(;r<e.length&&KS(e[r]);)r++;return{word:{wt:q.Punct,text:e.slice(t,r).join(``)},next:r}}if(WS(n)){if(r>=e.length)return{word:{wt:q.UpperCase,text:n},next:r};if(WS(e[r])){let n=r;for(;n<e.length&&WS(e[n]);)n++;return n<e.length&&US(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(US(e[r])){let n=r+1;for(;n<e.length&&US(e[n])&&!WS(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(US(n)){for(;r<e.length&&US(e[r])&&!WS(e[r]);)r++;return{word:{wt:q.Alphabet,text:e.slice(t,r).join(``)},next:r}}if(GS(n)){for(;r<e.length&&GS(e[r]);)r++;return{word:{wt:q.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!HS(e[r])&&!US(e[r])&&!GS(e[r])&&!KS(e[r]);)r++;return{word:{wt:q.Other,text:e.slice(t,r).join(``)},next:r}}function JS(e,t,n){if(t.wt!==q.UpperCase&&t.wt!==q.Connector){e.push(t.text);return}for(let r of t.text)HS(r)?e.push(n):WS(r)?e.push(r.toLowerCase()):e.push(r)}function YS(e,t){if(e.length===0)return``;let n=NS(e),r=[],{word:i,next:a}=qS(n,0);for(;a<n.length;){i.wt!==q.Connector&&JS(r,i,t);let e=i,o=i;if({word:i,next:a}=qS(n,a),e.wt===q.Number){for(;i.wt===q.Alphabet||i.wt===q.Number;)JS(r,i,t),{word:i,next:a}=qS(n,a);i.wt!==q.Invalid&&i.wt!==q.Punct&&i.wt!==q.Connector&&r.push(t);continue}if(e.wt===q.Connector){JS(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}=qS(n,a),i.wt!==q.Alphabet){JS(r,s,t),i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}for(r.push(t),JS(r,s,t);i.wt===q.Alphabet||i.wt===q.Number;)JS(r,i,t),{word:i,next:a}=qS(n,a);i.wt!==q.Invalid&&i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t)}return JS(r,i,t),r.join(``).toLowerCase()}function XS(e){if(e.length===0)return``;let t=NS(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!HS(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++,HS(i)&&HS(e)){n.push(e);continue}HS(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function ZS(e){return XS(e)}function QS(...e){return e.join(` `)}function $S(e,t){return t.includes(e)}function eC(e,t){return t.startsWith(e)}function tC(e,t){return t.endsWith(e)}function nC(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
65
65
  `).map(e=>n+e).join(`
66
- `)}function dS(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 fS(e,t){let n=[];for(let e of t){if(typeof e==`object`&&e)throw ex(`join`,2,`list of strings/primitives`,`list element of type ${pS(e)}`);n.push(String(e))}return n.join(e)}function pS(e){return Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:`object`}function mS(e){return rS(e,`-`)}function hS(e){return e.toLowerCase()}function gS(e,t){return`\n${uS(e,t)}`}function _S(e){return e.replace(/\s+/g,``)}function vS(e,t,n){return n===1?e:t}function yS(...e){return e.map(e=>`"${e}"`).join(` `)}function bS(e){return e.replace(/[\\.+*?()|[\]{}^$]/g,`\\$&`)}function xS(e,t){return t.repeat(Math.max(0,e))}function SS(e,t,n){return Hx(e,n).join(t)}function CS(e){return rS(e,`_`)}function wS(e,t){let n=Hx(e,t),r={};for(let e=0;e<n.length;e++)r[`_${e}`]=n[e];return r}function TS(e,t){return Hx(e,t)}function ES(e,t,n){let r=DS(n,e,t),i={};for(let e=0;e<r.length;e++)i[`_${e}`]=r[e]??``;return i}function DS(e,t,n){if(n===0)return[];let r=Hx(t,e);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 OS(...e){return e.map(e=>`'${e}'`).join(` `)}function kS(e,t,n){let r=Vx(n),i=t<0||t>r.length?r.length:t,a=Math.min(Math.max(0,e),i);return r.slice(a,i).join(``)}function AS(e){let t=``;for(let n of e)jS(n)?t+=n.toLowerCase():MS(n)?t+=n.toUpperCase():t+=n;return t}function jS(e){return e!==e.toLowerCase()&&e===e.toUpperCase()}function MS(e){return e!==e.toUpperCase()&&e===e.toLowerCase()}function NS(e){return e.replace(/\b([a-zA-Z])/g,e=>e.toUpperCase())}function PS(e){return e.trim()}function FS(e,t){if(e.length===0)return t;let n=new Set(Vx(e)),r=Vx(t),i=0;for(;i<r.length&&n.has(r[i]);)i+=1;let a=r.length;for(;a>i&&n.has(r[a-1]);)--a;return r.slice(i,a).join(``)}function IS(e,t){return t.startsWith(e)?t.slice(e.length):t}function LS(e,t){return t.endsWith(e)?t.slice(0,t.length-e.length):t}function RS(e,t){let n=Vx(t);if(e<0){let r=-e;return r>=n.length?t:n.slice(n.length-r).join(``)}return e>=n.length?t:n.slice(0,e).join(``)}function zS(e){return e.replace(/\b([A-Z])/g,e=>e.toLowerCase())}function BS(e){return e.toUpperCase()}function VS(e,t){return HS(e,`
67
- `,t)}function HS(e,t,n){if(e<=0)return n;let r=[];for(let t of n.split(`
68
- `)){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 US(e,t,n){return HS(e,t,n)}function WS(){return{abbrev:{fn:(e,t)=>Ux(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},abbrevboth:{fn:(e,t,n)=>Wx(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},camelcase:{fn:e=>aS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},cat:{fn:(...e)=>oS(...e),argTypes:[`string`],arity:{kind:`variadic`}},contains:{fn:(e,t)=>sS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasPrefix:{fn:(e,t)=>cS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasSuffix:{fn:(e,t)=>lS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},indent:{fn:(e,t)=>uS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},initials:{fn:e=>dS(e),argTypes:[`string`],arity:{kind:`exact`}},join:{fn:(e,t)=>fS(e,t),argTypes:[`string`,`list`],arity:{kind:`exact`}},kebabcase:{fn:e=>mS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},lower:{fn:e=>hS(e),argTypes:[`string`],arity:{kind:`exact`}},nindent:{fn:(e,t)=>gS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},nospace:{fn:e=>_S(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},plural:{fn:(e,t,n)=>vS(e,t,n),argTypes:[`string`,`string`,`int`],arity:{kind:`exact`},returnType:`string`},quote:{fn:(...e)=>yS(...e),argTypes:[`string`],arity:{kind:`variadic`}},regexQuoteMeta:{fn:e=>bS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},repeat:{fn:(e,t)=>xS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},replace:{fn:(e,t,n)=>SS(e,t,n),argTypes:[`string`,`string`,`string`],arity:{kind:`exact`}},snakecase:{fn:e=>CS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},split:{fn:(e,t)=>wS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitList:{fn:(e,t)=>TS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitn:{fn:(e,t,n)=>ES(e,t,n),argTypes:[`string`,`int`,`string`],arity:{kind:`exact`},returnType:`dict`},squote:{fn:(...e)=>OS(...e),argTypes:[`string`],arity:{kind:`variadic`}},substr:{fn:(e,t,n)=>kS(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},swapcase:{fn:e=>AS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},title:{fn:e=>NS(e),argTypes:[`string`],arity:{kind:`exact`}},trim:{fn:e=>PS(e),argTypes:[`string`],arity:{kind:`exact`}},trimAll:{fn:(e,t)=>FS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimPrefix:{fn:(e,t)=>IS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimSuffix:{fn:(e,t)=>LS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trunc:{fn:(e,t)=>RS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},untitle:{fn:e=>zS(e),argTypes:[`string`],arity:{kind:`exact`}},upper:{fn:e=>BS(e),argTypes:[`string`],arity:{kind:`exact`}},wrap:{fn:(e,t)=>VS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},wrapWith:{fn:(e,t,n)=>US(e,t,n),argTypes:[`int`,`string`,`string`],arity:{kind:`exact`}}}}function GS(e,t){if(!(e instanceof G))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=al(e.style,t),n}function KS(e){return{fn:(t=>GS(t,e)),argTypes:[`liftable`],arity:{kind:`exact`},returnType:`T`}}function qS(e){return{fn:((t,n)=>GS(n,new H({[e]:V.parse(t)}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`}}function JS(e,t){return new H({[e]:t})}function YS(){let e={};for(let t of $c)e[t]=KS(JS(t,!0)),e[`not_${t}`]=KS(JS(t,!1));for(let[t,n]of Object.entries(tl))e[t]=KS(JS(n,!0));return e}const XS={fn:((e,t)=>GS(t,H.parse(e))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`},ZS={fn:((e,t)=>GS(t,new H({link:e}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`};function QS(){return{fg:qS(`color`),bg:qS(`bgcolor`),...YS(),link:ZS,style:XS}}function $S(e,t){let n;try{n=vs(e.trim())}catch(n){throw n instanceof ns?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)}) …`,{cause:n}):n}return eC(n,t,JSON.stringify(e))}function eC(e,t,n){if(e.alpha===0)throw RangeError(`${t} got ${n}, which is fully transparent: it draws no colour of its own, so there is nothing to compute with — use the colour of the surface it sits on, e.g. (color "background")`);return e}function tC(e,t){return{fn:t,argTypes:e,arity:{kind:`exact`},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}`)}return e}const rC=tC([`string`,`int`],((e,t)=>nc($S(e,`darken`),t).hex)),iC=tC([`string`,`int`],((e,t)=>nc($S(e,`lighten`),-t).hex)),aC={min:0,max:100,note:`0 = from, 100 = toward`},oC=tC([`string`,`string`,`float`],((e,t,n)=>ys($S(e,`mix`),$S(t,`mix`),nC(n,`mix`,`percentage`,aC)/100).hex)),sC={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},cC=tC([`string`],(e=>ic($S(e,`contrastOn`)).hex)),lC={depth:B.TRUECOLOR},uC=e=>tC([`string`,`string`,`float`],((t,n,r)=>{let{depth:i,terminal:a}=e();return ac($S(t,`readableOn`),$S(n,`readableOn`),nC(r,`readableOn`,`ratio`,sC),i,void 0,a).hex})),dC={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function fC(){let e={};for(let[t,n]of Object.entries(dC)){let r=t;e[n]=tC([`string`,`float`],((e,t)=>{let i={...Ls,[r]:nC(t,n,`amount`)};return Js.fromRgba($S(e,n)).applyKey(i).toRgba().hex}))}return e}function pC(e=()=>lC){return{darken:rC,lighten:iC,mix:oC,contrastOn:cC,readableOn:uC(e),...fC()}}function mC(e,t){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:eC(Xs(t,e[r+1]),`ramp`,JSON.stringify(e[r+1]))});return n}function hC(e){return{color:{fn:(t=>Xs(e(),t).hex),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},ramp:{fn:((t,n,...r)=>new Hc(Jc(n),mC(r,e())).at(t).hex),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:4},returnType:`string`}}}function gC(e){return{...QS(),...pC(e)}}new H({color:`red`,dim:!0});const _C=/^(?:(?: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,vC=/^(?<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(_C);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(vC);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 bC(e){let t=e.match(vC);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 xC(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 SC(e){return e.toLocaleString()}function CC(e){if(e.length===0)throw Error(`a cascade needs at least one stop, e.g. "0:calm"`);let t=[];for(let[n,r]of e.entries()){let e=r.indexOf(`:`),i=e<0?NaN:Number(r.slice(0,e));if(!Number.isFinite(i))throw Error(`cascade stop ${n} ("${r}") must be "<position>:<result>", e.g. "80:hot" — the position must be a number`);let a=t[n-1];if(a!==void 0&&i<a.at)throw Error(`cascade stops must be in ascending position order; stop ${n} at ${i} follows stop ${n-1} at ${a.at}`);t.push({at:i,text:r.slice(e+1)})}return t}function wC(e,t){if(!Number.isFinite(e))throw Error(`a cascade needs a finite value, got ${e}`);let n=-1;for(;n+1<t.length&&t[n+1].at<=e;)n++;return(n<0?t[0]:t[n]).text}const TC=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],EC=TC.length;function DC(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*(EC-1));o+=TC[t]}return o}function OC(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}function kC(e,t,n){if(n.length!==0)throw Error(`${e}: takes at most ${t.length} optional argument${t.length===1?``:`s`} (${t.join(`, `)}), got ${t.length+n.length}`)}const AC=gp(),jC=[...Lp];function MC(){return{basename:{fn:e=>u(e),argTypes:[`string`],arity:{kind:`exact`}},dirname:{fn:e=>d(e),argTypes:[`string`],arity:{kind:`exact`}},abbreviatePath:{fn:e=>xC(e),argTypes:[`string`],arity:{kind:`exact`}},int:{fn:e=>Math.trunc(Gg(e)),argTypes:[`value`],arity:{kind:`exact`}},string:{fn:e=>Wg(e),argTypes:[`value`],arity:{kind:`exact`}},bool:{fn:e=>Kg(e),argTypes:[`value`],arity:{kind:`exact`}},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`],arity:{kind:`exact`}},themes:{fn:()=>AC,argTypes:[],arity:{kind:`exact`}},endcaps:{fn:()=>jC,argTypes:[],arity:{kind:`exact`}},sparkline:{fn:(e,t,...n)=>(kC(`sparkline`,[`width`],n),DC(OC(e),t)),argTypes:[`string`,`int`],arity:{kind:`variadic`}},cascade:{fn:(e,...t)=>wC(e,CC(t)),argTypes:[`float`,`string`],arity:{kind:`variadic`}}}}function NC(e){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`],arity:{kind:`exact`}},formatInteger:{fn:e=>SC(e),argTypes:[`int`],arity:{kind:`exact`}},round:{fn:e=>Math.round(e),argTypes:[`float`],arity:{kind:`exact`}},formatModelName:{fn:e=>yC(e),argTypes:[`string`],arity:{kind:`exact`}},shortenModelName:{fn:e=>bC(e),argTypes:[`string`],arity:{kind:`exact`}}}}function PC(e){let{clock:t,drawnAt:n,extraFuncs:r}=e;return Vv({fromString:e=>new G(e),toString:e=>e.plain,isT:e=>e instanceof G,clock:t,missingKey:`error`,funcs:{...Ab(),...WS(),...vx(),...Bx(),...Sb(t),...fy(),...Kb(),...Wb(),...gC(n&&(()=>({depth:n()}))),...MC(),...NC(t),...r??{}}})}function FC(e){return IC(e,new Set(e.names()),``)}function IC(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`?RC(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return IC(e,t,a)}})}function LC(e,t){return new Proxy(e,{has:(e,t)=>t===`settings`||Reflect.has(e,t),get:(e,n)=>n===`settings`?t:Reflect.get(e,n)})}function RC(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw new qg(e,`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}function zC(e){return r.existsSync(l.join(e,`.git`))}function BC(e){let t=l.resolve(e);for(;;){if(zC(t))return t;let e=l.dirname(t);if(e===t)return;t=e}}function VC(e){let t=BC(e);return t===void 0?{root:l.resolve(e),git:!1}:{root:t,git:!0}}function HC(e,t){return e.kind===`absent`?F(`none`):e.kind===`failed`?e:t.kind===`failed`?t:F(t.kind===`ok`?`tracked`:`gone`)}function UC(e,t){return e.kind!==`ok`||e.value.state===`open`?e:t.kind===`failed`?L(`HEAD: ${t.reason}`):t.kind===`ok`&&t.value===e.value.head?e:{kind:`earlier`,value:e.value}}const WC={OPEN:`open`,MERGED:`merged`,CLOSED:`closed`},GC={opened:`open`,locked:`open`,merged:`merged`,closed:`closed`};function KC(e,t,n){return Object.hasOwn(t,n)?F(t[n]):L(`${e}: unknown state ${JSON.stringify(n)}`)}function qC(e,t,n){return t.ok?F(t.stdout):t.reason===`non-zero`&&n===`absent`||t.reason===`non-zero`&&n===t.exitCode?I:L(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??JC(t.stderr)].filter(Boolean).join(`, `)}`)}function JC(e){return e.trim().split(`
69
- `,1)[0]??``}function YC(e,t){if(e.kind!==`ok`)return e;let n=t(e.value);return n===null?I:F(n)}function XC(e){if(e.kind!==`ok`)return e;let t=e.value.trim();return t?F(t):I}const ZC=/^[A-Za-z]:[\\/]/;function QC(e){let t=e.trim();if(ZC.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 $C(e){return QC(e)?.host||null}function ew(e){let t=$C(e);return t?t===`github.com`||t.endsWith(`.github.com`)?`github`:/(^|\.)gitlab\./.test(t)?`gitlab`:null:null}function tw(e){let t=new Map;for(let n of e.split(`
70
- `)){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 nw(e){return e.urls.find(e=>sw(e)!==null)??e.urls[0]??null}function rw(e){return e.find(e=>e.name===`origin`)??e[0]??null}function iw(e){let t=rw(e);return t?nw(t):null}function aw(e){let t=rw(e);return t?t.urls.find(e=>ew(e)!==null)??nw(t):null}function ow(e){let t=(QC(e)?.path??e.replace(/[\\/]+$/,``)).split(`/`);return(t[t.length-1]??``).replace(/\.git$/,``)||null}function sw(e){let t=QC(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 cw(e){let t=iw(e);return t===null?null:sw(t)}function lw(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)?I:L(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??JC(t.stderr)].filter(Boolean).join(`, `)}`)}function uw(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function dw(e){let t=`detached`,n=I,r=I,i=I,a=0,o=0,s=0,c=0;for(let l of e.split(`
71
- `)){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)`?I:F(t)}else if(e.startsWith(`branch.head `)){let n=e.slice(12).trim();t=n===`(detached)`?`detached`:n}else if(e.startsWith(`branch.upstream `))r=F(e.slice(16).trim());else if(e.startsWith(`branch.ab `)){let t=e.slice(10).trim().match(/^\+(\d+)\s+-(\d+)$/);t&&(i=F({ahead:parseInt(t[1],10),behind:parseInt(t[2],10)}))}continue}let e=l[0];if(e===`1`||e===`2`){let e=l.slice(2,4);e[0]!==`.`&&a++,e[1]!==`.`&&o++}else e===`u`?c++:e===`?`&&s++}let l=`clean`;return c>0?l=`conflicts`:(a||o||s)&&(l=`dirty`),{branch:t,status:l,aheadBehind:i,oid:n,upstream:r,workingTree:{staged:a,unstaged:o,untracked:s,conflicts:c}}}function fw(e){let t;try{t=JSON.parse(e)}catch(e){return L(`gh pr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!uw(t))return L(`gh pr view: JSON is not an object`);let{number:n,state:r,url:i,headRefOid:a}=t;if(typeof n!=`number`||typeof r!=`string`||typeof i!=`string`||typeof a!=`string`)return L(`gh pr view: missing number/state/url/headRefOid`);let o=KC(`gh pr view`,WC,r);return o.kind===`ok`?F({number:n,state:o.value,url:i,head:a}):o}function pw(e){let t;try{t=JSON.parse(e)}catch(e){return L(`glab mr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!uw(t))return L(`glab mr view: JSON is not an object`);let n=t.iid,r=t.state,i=t.web_url,a=t.sha;if(typeof n!=`number`||typeof r!=`string`||typeof i!=`string`||typeof a!=`string`)return L(`glab mr view: missing iid/state/web_url/sha`);let o=KC(`glab mr view`,GC,r);return o.kind===`ok`?F({number:n,state:o.value,url:i,head:a}):o}function mw(e){try{let t=r.statSync(e);return{key:`${t.dev}:${t.ino}`,stamp:`${t.mtimeMs}:${t.size}`}}catch{return null}}var hw=class{isGitRepo(e){return zC(e)}async execGitAsync(e,t){return Me({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)?F(e):t&&this.isGitRepo(t)?F(t):this.isGitRepo(e)?F(e):this.findGitRoot(e)}async findGitRoot(e){let t=BC(e);return t===void 0?I:F(t)}async getGitInfo(e,t={},n){try{return await this.computeGitInfo(e,t,n)}catch(e){return L(`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,head:a.value.oid};t.showWorkingTree&&(o.workingTree=a.value.workingTree),t.showSha&&(o.sha=YC(a.value.oid,e=>e.slice(0,7))),t.showUpstream&&(o.upstream=a.value.upstream),t.showTag&&(o.tag=await this.getNearestTagAsync(r)),t.showTimeSinceCommit&&(o.committedAt=await this.committedAt(r,a.value.oid)),t.showStashCount&&(o.stashCount=this.getStashCount(r));let s=t.showRepoName||t.showRepoUrl?await this.getRemotesAsync(r):void 0;return s!==void 0&&t.showRepoName&&(o.repoName=YC(s,e=>this.repoNameFrom(e,r)),o.isWorktree=i),s!==void 0&&t.showRepoUrl&&(o.repoUrl=YC(s,cw)),t.showOperation&&(o.operation=this.getOngoingOperation(r)),F(o)}resolveGitDir(e){let t=l.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 l.resolve(e,n[1].trim())}}catch{}return t}getOngoingOperation(e){try{let t=this.resolveGitDir(e);return r.existsSync(l.join(t,`MERGE_HEAD`))?F(`MERGE`):r.existsSync(l.join(t,`CHERRY_PICK_HEAD`))?F(`CHERRY-PICK`):r.existsSync(l.join(t,`REVERT_HEAD`))?F(`REVERT`):r.existsSync(l.join(t,`BISECT_LOG`))?F(`BISECT`):r.existsSync(l.join(t,`rebase-merge`))||r.existsSync(l.join(t,`rebase-apply`))?F(`REBASE`):I}catch(e){return L(`git operation probe: ${e instanceof Error?e.message:String(e)}`)}}async getNearestTagAsync(e){return XC(qC(`git describe --tags`,await this.execGitAsync([`describe`,`--tags`,`--abbrev=0`],{cwd:e,timeout:2e3}),`absent`))}async committedAt(e,t){return t.kind===`ok`?this.commitTimestampMs(e,t.value):t}commitTimes=new Map;async commitTimestampMs(e,t){let n=this.commitTimes.get(t);if(n!==void 0)return this.commitTimes.delete(t),this.commitTimes.set(t,n),n;let r=this.readCommitTimestampMs(e,t);for(this.commitTimes.set(t,r),r.then(e=>{e.kind!==`ok`&&this.commitTimes.get(t)===r&&this.commitTimes.delete(t)},()=>{this.commitTimes.get(t)===r&&this.commitTimes.delete(t)});this.commitTimes.size>256;){let e=this.commitTimes.keys().next().value;if(e===void 0)break;this.commitTimes.delete(e)}return r}async readCommitTimestampMs(e,t){let n=XC(qC(`git log -1`,await this.execGitAsync([`log`,`-1`,`--format=%ct`,t,`--`],{cwd:e,timeout:2e3}),`absent`));if(n.kind!==`ok`)return n;let r=parseInt(n.value,10)*1e3;return Number.isNaN(r)?L(`git log -1: unparseable timestamp "${n.value}"`):F(r)}resolveCommonGitDir(e){let t=this.resolveGitDir(e);try{let e=r.readFileSync(l.join(t,`commondir`),`utf-8`).trim();if(e)return l.resolve(t,e)}catch{}return t}getStashCount(e){let t=l.join(this.resolveCommonGitDir(e),`logs`,`refs`,`stash`),n;try{n=r.readFileSync(t,`utf-8`)}catch(e){return e.code===`ENOENT`?F(0):L(`git stash reflog ${t}: ${e instanceof Error?e.message:String(e)}`)}let i=n.trim();return F(i?i.split(`
72
- `).length:0)}async getRemotesAsync(e){let t=mw(l.join(this.resolveCommonGitDir(e),`config`));if(t===null)return this.readRemotes(e);let{key:n,stamp:r}=t,i=this.remotesByConfig.get(n);if(i!==void 0&&i.stamp===r)return this.remotesByConfig.delete(n),this.remotesByConfig.set(n,i),i.remotes;let a=this.readRemotes(e);for(this.remotesByConfig.set(n,{stamp:r,remotes:a}),a.then(e=>{let t=this.remotesByConfig.get(n);e.kind!==`ok`&&t?.remotes===a&&this.remotesByConfig.delete(n)},()=>{this.remotesByConfig.get(n)?.remotes===a&&this.remotesByConfig.delete(n)});this.remotesByConfig.size>256;){let e=this.remotesByConfig.keys().next().value;if(e===void 0)break;this.remotesByConfig.delete(e)}return a}remotesByConfig=new Map;async readRemotes(e){let t=qC(`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:F(t.kind===`ok`?tw(t.value):[])}repoNameFrom(e,t){let n=iw(e);return(n===null?null:ow(n))??l.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=aw(t.value);return n===null?I:F(n)}async execForgeAsync(e,t,n){return Me({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=ew(t);return n===`github`?lw(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url,headRefOid`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,fw):n===`gitlab`?lw(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,pw):I}isWorktree(e){try{let t=l.join(e,`.git`);return!!(r.existsSync(t)&&r.statSync(t).isFile())}catch{return!1}}async getCoreAsync(e){D(`[GIT-EXEC] Running git status --porcelain=v2 in ${e}`);let t=qC(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?F(dw(t.value)):t}};const gw=(e,t)=>D(t);var _w=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??gw}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()}},vw=class{running=new Set;again=new Set;run(e,t){return this.again.add(e),this.running.has(e)?{kind:`queued`}:(this.running.add(e),{kind:`started`,done:this.loop(e,t)})}async loop(e,t){try{do this.again.delete(e),await t();while(this.again.has(e))}finally{this.running.delete(e),this.again.delete(e)}}clear(){this.running.clear(),this.again.clear()}get size(){return this.running.size}};const yw={showSha:!0,showStashCount:!0};function bw(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function xw(e){let t=t=>{try{return r.statSync(l.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function Sw(e,t){return e.head!==t.head||e.index!==t.index}function Cw(e){let t=[],n=l.join(e,`refs/heads`);try{r.statSync(n).isDirectory()&&t.push({path:n})}catch{}return{files:[l.join(e,`HEAD`),l.join(e,`index`)],dirs:t}}var ww=class extends hw{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new vw;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new hw,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??Ft,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new _w({logger:this.logger}),this.ownsWatchers=!0);let t=e.sanityIntervalMs??3e5;t>0&&(this.sanityTimer=setInterval(()=>this.runSanityCheck(),t),this.sanityTimer.unref())}getWatcherRegistry(){return this.watchers}getStats(){return{size:this.entries.size,hits:this.hits,misses:this.misses,invalidations:this.invalidations,watchers:this.watchers.size()}}resolveEffectiveGitDir(e,t){let n=`${e}|${t??``}`,r=Date.now(),i=this.resolutions.get(n);if(i&&r-i.computedAt<this.ttlMs)return this.resolutions.delete(n),this.resolutions.set(n,i),i.dir;let a=this.inner.resolveEffectiveGitDir(e,t);return this.resolutions.set(n,{dir:a,computedAt:r}),a.catch(()=>{this.resolutions.get(n)?.dir===a&&this.resolutions.delete(n)}),this.evictResolutionsIfNeeded(),a}evictResolutionsIfNeeded(){for(;this.resolutions.size>this.maxEntries;){let e=this.resolutions.keys().next().value;if(e===void 0)break;this.resolutions.delete(e)}}async getGitInfo(e,t={},n){let r=await this.resolveEffectiveGitDir(e,n);return r.kind===`ok`?this.getGitInfoForRoot(r.value,t):r}getGitInfoForRoot(e,t){let n=`${e}|${bw(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(F(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=xw(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}`,Cw(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 I;let r=n.value,i=`${e}|${t}|${r}`,a=Date.now(),o=this.prCache.get(i);if(o){let e=o.pr.kind===`failed`?45e3:3e5;if(a-o.computedAt<e)return this.prCache.delete(i),this.prCache.set(i,o),o.pr}let s=this.prFetchInFlight.get(i);if(s)return s;let c=this.inner.resolvePullRequest(e,r).then(e=>(this.prCache.set(i,{pr:e,computedAt:Date.now()}),this.evictPrIfNeeded(),e)).finally(()=>{this.prFetchInFlight.delete(i)});return this.prFetchInFlight.set(i,c),c}evictPrIfNeeded(){for(;this.prCache.size>this.maxEntries;){let e=this.prCache.keys().next().value;if(e===void 0)break;this.prCache.delete(e)}}deliverable(e,t){return e.kind===`failed`?(this.logger(`warn`,`git fetch failed (${t}): ${e.reason}`),null):e.kind===`ok`?e.value:null}subscribe(e,t){let n=!1,r=null;return{firstDelivery:(async()=>{let i=await this.resolveEffectiveGitDir(e);if(n)return;if(i.kind!==`ok`){i.kind===`failed`&&this.logger(`warn`,`git resolve failed (subscribe ${e}): ${i.reason}`),this.safeInvoke(t,null);return}let a=i.value,o=this.subscribersByRepo.get(a);if(!o){let t=this.inner.resolveGitDir(a),n=this.watchers.acquire(`git:${a}`,Cw(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,{...yw});n||this.safeInvoke(t,this.deliverable(s,a))})(),unsubscribe:()=>{if(n=!0,!r)return;let{repoRoot:e,entry:i}=r;i.callbacks.delete(t),i.callbacks.size===0&&(i.watcher.release(),this.subscribersByRepo.delete(e))}}}invalidateRepo(e){let t=0;for(let[n,r]of this.entries)r.repoRoot===e&&(r.watcher.release(),this.entries.delete(n),t++);t>0&&(this.invalidations+=t,this.logger(`info`,`gitCache invalidate ${e} dropped=${t}`)),this.refreshSubscribers(e)}refreshSubscribers(e){let t=this.subscribersByRepo.get(e);!t||t.callbacks.size===0||this.refreshes.run(e,()=>this.refreshOnce(e))}async refreshOnce(e){let t=this.subscribersByRepo.get(e);if(!t||t.callbacks.size===0)return;let n=await this.getGitInfoForRoot(e,{...yw}),r=this.deliverable(n,e),i=this.subscribersByRepo.get(e);if(!(!i||i.callbacks.size===0))for(let e of[...i.callbacks])i.callbacks.has(e)&&this.safeInvoke(e,r)}safeInvoke(e,t){try{e(t)}catch(e){this.logger(`warn`,`git subscriber threw: ${e.message??String(e)}`)}}dropEntry(e){let t=this.entries.get(e);t&&(t.watcher.release(),this.entries.delete(e))}evictIfNeeded(){for(;this.entries.size>this.maxEntries;){let e=this.entries.keys().next().value;if(e===void 0)break;this.dropEntry(e),this.logger(`info`,`gitCache evict ${e}`)}}runSanityCheck(){let e=new Map;for(let t of this.entries.values()){let n=e.get(t.repoRoot);n||(n=xw(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),Sw(t.mtime,n)&&this.invalidateRepo(t.repoRoot)}}runSanityCheckNow(){this.runSanityCheck()}close(){this.sanityTimer&&=(clearInterval(this.sanityTimer),null);for(let e of this.entries.values())e.watcher.release();this.entries.clear();for(let e of this.subscribersByRepo.values())e.callbacks.clear(),e.watcher.release();this.subscribersByRepo.clear(),this.refreshes.clear(),this.fetchInFlight.clear(),this.prCache.clear(),this.prFetchInFlight.clear(),this.resolutions.clear(),this.ownsWatchers&&this.watchers.closeAll()}};const Tw=/\r\n|\r|\n/g,Ew=e=>F(e.replace(Tw,` `).trim());function Dw(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?L(`regex no-match`):F(n.replace(Tw,` `))}}const Ow=e=>{try{return F(JSON.parse(e))}catch(e){return L(`JSON parse failed: ${e.message}`)}},kw=e=>e.getTime()/1e3,Aw=e=>new Date(e*1e3);function jw(e,t){return t.kind!==`ttl`||t.durationMs>=500?t:(D(`declareShell "${e}": ttl ${t.durationMs}ms below floor 500ms; clamping`),{kind:`ttl`,durationMs:500})}function Mw(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]}"`)}}const Nw=`session.id`;function Pw(e,t,n){return{where:`output of "${e}" in ${t}`,read:async()=>{let r=await Me({bin:`/bin/sh`,args:[`-c`,e],cwd:t,category:`user-shell`,signal:n});if(!r.ok&&r.reason===`aborted`)throw n.reason;return r.ok?F(r.stdout):L(`shell "${e}" ${r.exitCode===null?[r.reason,r.error].filter(e=>e!==void 0).join(`: `):`exited with code ${r.exitCode}`} in ${t}`)}}}function Fw(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await oe(e,{encoding:`utf8`,signal:n});return F(t===`first-line`?r.split(/\r?\n/)[0]??``:r)}catch{if(n.aborted)throw n.reason;return L(`file unreadable: ${e}`)}}}}function Iw(e,t,n){if(e.kind!==`ok`)return e;let r=t(e.value);return r.kind===`failed`?L(`${r.reason} in ${n}`):r}const Lw=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Rw=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],zw=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],Bw=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Vw(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>Lw[e.getMonth()]],[`Monday`,e=>zw[e.getDay()]],[`Jan`,e=>Rw[e.getMonth()]],[`Mon`,e=>Bw[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 Hw={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function Uw(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=Hw[t];try{return Zw(r,e)}catch{return Qw(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return gi(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return gi(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return gi(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return gi(e.stashCount,0)}}function Ww(e){try{return o(e)}catch{return e}}function Gw(e){try{return s(e).isDirectory()}catch{return!1}}function Kw(e){let t=Ww(e);return Gw(t)?{dir:t,name:null,leaf:!0}:Lg(t)}const qw=e=>`${e.dir}\0${e.name??``}`;var Jw=class{watchers=new Map;subscribe(e,t,n){let r=this.watchers.get(e)??this.arm(e);return r.subscribers.set(t,n),r.watcher===null&&n(r.failure),()=>this.unsubscribe(e,t)}arm(e){let t={watcher:null,failure:``,target:Kw(e),subscribers:new Map};return t.watcher=this.open(e,t,t.target),this.watchers.set(e,t),t}rearm(e,t){let n=Kw(e);if(t.watcher!==null&&qw(n)===qw(t.target))return;let r=this.open(e,t,n);r!==null&&(t.watcher?.close(),t.watcher=r,t.target=n)}open(e,t,n){let{dir:r,name:i}=n,a=l.basename(r);try{return c(r,(n,r)=>{if(!(r===null||i===null||r===i)&&r!==a)return;let o=t.target.leaf;if(this.rearm(e,t),!(!o&&!t.target.leaf))for(let e of t.subscribers.keys())e()})}catch(n){let i=`watch_file ${e}: cannot watch ${r} — ${n instanceof Error?n.message:String(n)}`;t.failure=i;for(let e of t.subscribers.values())e(i);return null}}unsubscribe(e,t){let n=this.watchers.get(e);n&&(n.subscribers.delete(t),n.subscribers.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}},Yw=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:le(()=>{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&&(ce(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())ce(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function Xw(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function Zw(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`?Wg(e):t===`number`?Gg(e):Kg(e)}function Qw(e){return e===`number`?0:e===`boolean`?!1:``}var $w=class{inputMetas=new Map;lastErrors=new Map;policyFaults=new Map;watchMgr=new Jw;ttlMgr=new Yw;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new vw;abort=new AbortController;drawn=Vg.observable.box(B.TRUECOLOR);drawnAt=()=>this.drawn.get();instant=Vg.observable.box(null);now=()=>{let e=this.instant.get();if(e===null)throw Error(`the time was read before any render published its instant`);return Aw(e)};engine=PC({clock:this.now,drawnAt:this.drawnAt});gitProvider;ownsGitProvider;sessionState;constructor(e,t=``,n,r){this.store=e,this.defaultEmptyValue=t,n?(this.gitProvider=n,this.ownsGitProvider=!1):(this.gitProvider=new ww({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,Ug(t),t)}declareFailedDocument(e,t){this.store.defineDocument(e,L(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,Pw(t,n.cwd,this.abort.signal),jw(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,Fw(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,Ew,t.default,n);case`regex`:return this.scalarPublisher(e,Dw(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=Iw(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,gi(a,i))}}documentPublisher(e,t,n){let r=t===void 0?I:F(t);this.store.defineDocument(e,r);let i,a=!1;return this.cleanups.push(()=>clearTimeout(i)),o=>{clearTimeout(i);let s=o.kind===`ok`&&o.value.trim()===``?I:o,c=Iw(s,Ow,n);this.noteOutcome(e,c);let l=c.kind===`ok`||s.kind===`ok`||t===void 0?c:r,u=a&&s.kind===`ok`&&c.kind!==`ok`,d=()=>{a=c.kind===`ok`,this.store.setDocument(e,l)};u?i=setTimeout(d,250):d()}}runSource(e,t,n){let r=this.reads.run(e,()=>t.read().then(n,e=>{if(e!==this.abort.signal.reason)throw e}));r.kind===`started`&&this.track(e,r.done)}track(e,t){let n=t.finally(()=>{this.inFlight.get(e)===n&&this.inFlight.delete(e)});this.inFlight.set(e,n)}async settled(e){let t=Date.now()+e;for(;this.inFlight.size>0;){let e=t-Date.now();if(e<=0)break;let n,r=await Promise.race([Promise.all(this.inFlight.values()).then(()=>`settled`),new Promise(t=>{n=setTimeout(()=>t(`deadline`),e)})]);if(clearTimeout(n),r===`deadline`)break}return[...this.inFlight.keys()]}declareTemplate(e,t,n={}){let r=this.engine.parse(t);this.declareDerived(e,()=>r.evaluate(FC(this.store)).map(e=>e.plain).join(``),n.varDefault)}declareTime(e,t){this.declareDerived(e,()=>Vw(t.format,this.now()),t.varDefault)}declareDerived(e,t,n){this.store.defineComputed(e,`string`,()=>{try{let n=t();return this.lastErrors.delete(e),n}catch(t){let r=t instanceof Error?t.message:String(t);if(this.recordError(e,r),n===void 0)throw Jg(t)?new qg(e,`variable "${e}": ${r}`):Error(`variable "${e}": ${r}`);return n}})}declareGit(e,t){let n=Hw[t.field],r=t.varDefault===void 0?Qw(n):Zw(t.varDefault,n);this.store.defineBox(e,n,r);let i=this.gitSubscriptions.get(t.cwd);if(!i){let e=new Map,n=this.gitProvider.subscribe(t.cwd,t=>{this.store.runInAction(()=>{for(let[n,r]of e)for(let{name:e,varDefault:i}of r)this.store.setBox(e,Uw(t,n,i,this.defaultEmptyValue))})});i={fieldSubs:e,firstDelivery:n.firstDelivery,unsubscribe:n.unsubscribe},this.gitSubscriptions.set(t.cwd,i)}let a=i.fieldSubs.get(t.field);a||(a=[],i.fieldSubs.set(t.field,a)),a.push({name:e,varDefault:t.varDefault}),this.track(e,i.firstDelivery)}declareState(e,t){if(!this.sessionState)throw Error(`declareState("${e}"): SourceRegistry was constructed without a SessionState — state-kind variables require a SessionState (the daemon provides one; tests must supply one)`);let n=this.sessionState,r=t.varDefault??this.stringInitial(void 0);this.store.defineComputed(e,`string`,e=>{let i=e(Nw);if(typeof i!=`string`||!i)return r;let a=n.get(i,t.key);return a===null?r:a})}stateRevision(){let e=this.store.has(`session.id`)?this.store.read(Nw):``;return this.sessionState!==void 0&&typeof e==`string`&&e!==``?this.sessionState.revision(e):0}applyInput(e){this.store.runInAction(()=>{for(let[t,n]of this.inputMetas){let r=Xw(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,Zw(r,i)),this.lastErrors.delete(t)}catch(e){this.applyFallback(t,i,n.varDefault,e instanceof Error?e.message:String(e))}else this.applyFallback(t,i,n.varDefault,`input path "${n.path}" not found in payload`)}})}drawAt(e){this.store.runInAction(()=>this.drawn.set(e))}renderAt(e){this.store.runInAction(()=>this.instant.set(e))}getLastError(e){let t=this.lastErrors.get(e),n=this.policyFaults.get(e);return n===void 0?t:t===void 0?n:{timestamp:t.timestamp,message:`${n.message}; ${t.message}`}}cachePolicyFaults(){return this.policyFaults}dispose(){this.abort.abort();for(let e of this.cleanups)e();this.cleanups.length=0;for(let e of this.gitSubscriptions.values())e.unsubscribe();this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close()}registerCachePolicy(e,t,n){switch(t.kind){case`never`:break;case`ttl`:{let e=this.ttlMgr.subscribe(t.durationMs,n);this.cleanups.push(e);break}case`watch_file`:{let r=this.watchMgr.subscribe(t.path,n,t=>this.notePolicy(e,L(t)));this.cleanups.push(r);break}case`key`:{let r=this.engine.parse(t.template),i=()=>{try{return F(r.evaluate(FC(this.store)).map(e=>e.plain).join(``))}catch(e){return Jg(e)?I:L(`cache key: ${e instanceof Error?e.message:String(e)}`)}},a=i();this.notePolicy(e,a);let o=a.kind===`ok`?a.value:void 0,s=(0,Vg.reaction)(i,t=>{this.notePolicy(e,t),!(t.kind!==`ok`||t.value===o)&&(o=t.value,n())});this.cleanups.push(s);break}case`depends_on`:{let e=(0,Vg.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,Zw(this.defaultEmptyValue,t))}catch{this.store.setBox(e,Qw(t))}}defaultFor(e){try{return Zw(this.defaultEmptyValue,e)}catch{return Qw(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})}notePolicy(e,t){t.kind===`failed`?this.policyFaults.set(e,{timestamp:Date.now(),message:t.reason}):this.policyFaults.delete(e)}noteOutcome(e,t){t.kind===`ok`?this.lastErrors.delete(e):this.recordError(e,t.kind===`failed`?t.reason:`no value`)}};const eT={project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},[Nw]:{kind:`input`,path:`session_id`,default:``},transcript_path:{kind:`input`,path:`transcript_path`,default:``},resume_command:{kind:`input`,path:`resumeCommand`,default:``},config_path:{kind:`input`,path:`configPath`,default:``},"theme.effective":{kind:`input`,path:`theme.effective`,default:``},"style.effective":{kind:`input`,path:`style.effective`,default:``},"effect.effective":{kind:`input`,path:`effect.effective`,default:``},"preset.effective":{kind:`input`,path:`preset.effective`,default:``},"preset.customized":{kind:`input`,path:`preset.customized`,type:`boolean`,default:!1},"preset.bundled":{kind:`input`,path:`preset.bundled`,type:`boolean`,default:!0},"endcaps.effective":{kind:`input`,path:`endcaps.effective`,default:``},"variation.effective":{kind:`input`,path:`variation.effective`,default:``},"shade.effective":{kind:`input`,path:`shade.effective`,default:``},"charset.effective":{kind:`input`,path:`charset.effective`,default:``},"colorCompatibility.effective":{kind:`input`,path:`colorCompatibility.effective`,default:``},"transitions.effective":{kind:`input`,path:`transitions.effective`,type:`boolean`,default:!1},"autoWrap.effective":{kind:`input`,path:`autoWrap.effective`,type:`boolean`,default:!0},"padding.effective":{kind:`input`,path:`padding.effective`,type:`number`,default:1},"updateNotice.effective":{kind:`input`,path:`updateNotice.effective`,type:`boolean`,default:!0},"term.cols":{kind:`input`,path:`term.cols`,type:`number`,default:80},"tmux.pane":{kind:`input`,path:`tmux.pane`,default:``},"autocompact.window":{kind:`input`,path:`autocompact.window`,type:`number`,default:-1},...Object.fromEntries([`applied`,`lower`,`higher`].map(e=>[`autocompact.${e}`,{kind:`input`,path:`autocompact.${e}`,type:`number`,default:0}])),"autocompact.error":{kind:`input`,path:`autocompact.error`,default:``},"git.repoUrl":{kind:`input`,path:`git.repoUrl`,default:``}},tT=`ne .tmux.pane ""`;function nT(e,t,n){let r=new Set,i=e=>{for(let t of Dg(e??``,n).keys())r.add(t)};for(let t of Object.values(e.segments))i(t.template),i(t.bg),i(t.fg),i(t.when);for(let e of t)for(let t of bh(e))i(t.when),t.kind===`segment`&&(i(t.lead),i(t.trail));for(let t of Object.values(e.variables))t.kind===`template`&&i(t.template),t.kind===`state`&&r.add(Nw);for(let t of Object.values(e.actions)){r.add(Nw),`copy`in t&&i(t.copy),`open`in t&&i(t.open);let e=`set`in t?Ta.get(t.set):void 0,n=`persist`in t?wa.get(t.persist):void 0;e!==void 0&&r.add(e),n!==void 0&&r.add(n)}return r}function rT(e,t,n){let r=Fg({...n,variables:{...n.variables,...e.variables},segments:{...n.segments,...e.segments}}),i={};for(let a of nT(e,t,n.helpers)){if(Pg(a,r))continue;let e=eT[a];if(e===void 0)throw Error(`synthesized chrome reads ".${a}", which it does not declare and PAYLOAD_INPUTS does not supply`);i[a]=e}return i}function iT(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}var aT=class extends Error{file;issues;warnings;constructor(e,t,n=[]){super(lT(e,t)),this.name=`ConfigError`,this.file=e,this.issues=t,this.warnings=n}};function J(e,t){let n=0,r;for(let i of t){if(i===``||/^\d+$/.test(i))continue;let t=oT(e,n,i);if(t===-1)return r===void 0?void 0:sT(e,r);n=t,r=t}return r===void 0?void 0:sT(e,r)}function oT(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 sT(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function cT(e,t){try{return wr(t),null}catch(n){if(!(n instanceof vr))throw n;return`${e}:${sT(t,n.offset)}: ${n.reason} — the settings menu cannot edit this file until it is fixed`}}function lT(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(`
73
- `)}const uT=`groups.`,dT=`menus.`,fT=`edit.`,Y=`candybar.`,pT=[uT,dT,fT,Y];function mT(e){return pT.some(t=>e.startsWith(t))}function hT(e){let t=iT(e);return pT.find(e=>t.startsWith(iT(e)))}function gT(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:J(e.source,[`root`])})}function _T(e){return e}function vT(e,t,n){return n===void 0?dT+iT(e)+`.`+iT(t):yT(n)}function yT(e){return dT+iT(e)}function bT(e,t){return e+`.`+t}function xT(e){return e+`.page`}const ST=[`closeOnPick`,`paged`,`key`,`distribution`],CT=e=>ST.includes(e),wT=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${hf.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function TT(e){for(let t of Object.keys(e))if(!CT(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${wT}`);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&&!gf(r))throw Error(`{{ menu }} option "distribution" must be one of: ${hf.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:vf(r)}}const ET=e=>`from`in e?e.from:e.themes;function DT(e,t,n){return e===`bool`?rm(t)!==null:`min`in e?im(t,e)!==null:fg(ET(e),n).members.includes(t)}function OT(e,t){if(e===`bool`)return tm.join(` or `);if(!(`min`in e)){let n=ET(e),{members:r}=fg(n,t),i=r.map(e=>JSON.stringify(e));if(r.length<=8)return`one of ${i.join(`, `)}`;let a=typeof n==`string`?` "${n}"`:``;return`one of the ${r.length}${a} names, such as ${i.slice(0,3).join(`, `)}`}return`an integer from ${e.min} to ${e.max}`}function kT(e){return{label:e.label,domain:AT(e.domain)}}function AT(e){return e===`theme`?{themes:lg}:e===`bool`||`min`in e?e:{from:e}}function jT(e,t,n,r,i){let a=tr(e.label),{domain:o}=e;if(o===`bool`)return{kind:`inline`,template:`{{ action "${r}" "☑ ${a}" "☐ ${a}" }}`,actions:{[r]:{set:t,cycle:[...tm]}},variables:{}};if(`from`in o)return MT(t,r,i,o.from,e=>({template:`{{ "${a}" }} {{ carousel "${e.apply}" 0 "${e.open}" }}`,rows:[`{{ picker "${e.apply}" "${e.page}" false true true }}`]}));if(`themes`in o)return MT(t,r,i,o.themes,e=>({template:`{{ action "${e.open}" "${a}" .${n} }} {{ action "${e.open}" (swatch "${e.apply}") }}`,rows:[`{{ swatches "${e.apply}" "${e.page}" }}`,`{{ themePreview "${e.apply}" }}`]}));let s=e=>({set:t,min:o.min,max:o.max,by:e});return{kind:`inline`,template:`{{ action "${r}.down" "◀" }} {{ "${a}" }} {{ .${n} }} {{ action "${r}.up" "▶" }}`,actions:{[`${r}.down`]:s(-o.step),[`${r}.up`]:s(o.step)},variables:{}}}function MT(e,t,n,r,i){let a={variable:n,key:n,member:t},o=bT(n,t),s=`${t}.open`,c=xT(n),l=`${c}.current`,{template:u,rows:d}=i({apply:t,open:s,page:c});return{kind:`picker`,template:u,actions:{[t]:{set:e,from:r},[o]:lr(n,t),[c]:{set:c,int:!0},[l]:{set:c,to:`-1`},[s]:{do:[o,l]}},variables:{[n]:cr(n,Zn),[c]:{kind:`state`,key:c,default:`0`}},list:{ref:a,rows:d}}}function NT(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 ${X(i)}`,line:J(e.source,[...t.split(`.`),r])}),null)}function PT(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 ${X(i)}`,line:J(e.source,[...t.split(`.`),`default`])});return}return i}}function FT(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 ${X(i)}`,line:J(e.source,[...t.split(`.`),r])});return}return i}}function IT(e,t,n){let r=FT(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}"${pp(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:J(e.source,[...t.split(`.`),`palette`])});return}return r}}function LT(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 ${Z(a)}`,line:J(e.source,[...t.split(`.`),r])});return}return a}}function RT(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function X(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function Z(e){return typeof e==`string`?JSON.stringify(e):e===void 0?`undefined`:String(e)}function zT(e,t,n,r){return RT(r)?(UT(e,n,r,t.noun,new Set(Object.keys(t.fields)),BT(e,t.removed??{},n,r)),VT(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${X(r)}`,line:J(e.source,n.split(`.`))}),null)}function BT(e,t,n,r){let i=Object.entries(t).filter(([e])=>r[e]!==void 0);for(let[t,r]of i)WT(e,`${n}.${t}`,`${n}.${t} was removed: ${r}`);return new Set(i.map(([e])=>`${n}.${e}`))}function VT(e,t,n,r){let i=t,a={},o=!0;for(let[t,s]of Object.entries(i)){let i=s.parse(e,n,t,r);i===void 0?s.required&&(o=!1):a[t]=i}return o?a:null}const HT=new Set;function UT(e,t,n,r,i,a=HT){for(let o of Object.keys(n))!i.has(o)&&!a.has(`${t}.${o}`)&&e.issues.push({path:`${t}.${o}`,message:`Unknown ${r} "${o}". Expected one of: ${[...i].join(`, `)}`,line:J(e.source,[...t.split(`.`),o])})}function WT(e,t,n){return e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))}),null}function GT(e,t,n,r){if(!RT(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${X(r)}`,line:J(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:J(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:J(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:J(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function KT(e,t,n,r){if(!RT(r))return e.issues.push({path:n,message:`${n} must be an object, got ${X(r)}`,line:J(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 ${X(i)}`,line:J(e.source,n.split(`.`))}),null;let a=t.arms;if(!(i in a))return e.issues.push({path:`${n}.${t.tag}`,message:`Unknown ${t.noun} "${i}". Expected one of: ${Object.keys(a).join(`, `)}`,line:J(e.source,[...n.split(`.`),t.tag])}),null;let o=a[i],s=e.issues.length,c=o.parse(e,n,r),l=new Set(e.issues.slice(s).map(e=>e.path));return UT(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function qT(e,t,n){return{json:sE(aE(n),e,t),keys:new Set([e,...Object.keys(n)])}}function JT(e){return(...t)=>e()(...t)}function YT(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:J(n.source,o.split(`.`))}),null}return a}}function XT(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>FT(e,t,r,n)}}function ZT(){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 ${X(i)}`,line:J(e.source,[n])});return}return i}}}}function QT(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 ${Z(o)}`,line:J(e.source,[i])});return}return o}}}}function $T(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 ${Z(a)}`,line:J(e.source,[r])});return}return a}}}}function eE(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>IT(e,t,r)}}function tE(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>NT(e,t,r,n)??void 0}}function nE(e,t){return f(t)?null:`${e} must be an absolute path (\`~\` and relative paths are not expanded), got ${JSON.stringify(t)}`}function rE(){return{required:!0,json:{type:`string`,pattern:`^/`},parse:(e,t,n,r)=>{let i=NT(e,t,r,n);if(i===null)return;let a=nE(`${t}.${n}`,i);return a===null?i:WT(e,`${t}.${n}`,a)??void 0}}}function iE(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>LT(t,n,i,r,e)}}function aE(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 oE(e){return aE(e.fields)}function sE(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function cE(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function lE(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const uE={required:!1,json:{enum:[...Gp]},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: ${Gp.join(`, `)}`,line:J(e.source,[...t.split(`.`),n])});return}return LT(e,t,r,n,Gp)}},dE={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=FT(e,t,r,n);return Sp(i)?i:IT(e,t,r)}},fE={required:!1,json:{anyOf:[{enum:[...Mp]},{type:`string`,pattern:`\\{\\{`}]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&Sp(i)?i:LT(e,t,r,n,Mp)}},pE=/^[^\r\n]*\S[^\r\n]*$/u,mE=RegExp(`^(?:✖|✕)[\\uFE0E\\uFE0F]?$`,`u`),hE={required:!1,json:{type:`string`,pattern:pE.source,not:{pattern:mE.source}},parse:(e,t,n,r)=>{let i=FT(e,t,r,n);if(i===void 0||pE.test(i)&&!mE.test(i))return i;e.issues.push({path:`${t}.${n}`,message:`${t}.${n}: must be one line of visible text other than a close glyph ("✖", "✕") — the settings menu needs a glyph to click`,line:J(e.source,[...t.split(`.`),n])})}};function gE(e){return{spec:iE(e),domain:{from:e}}}function _E(){return{spec:ZT(),domain:`bool`}}function vE(e){return{spec:e,domain:`text`}}const yE={default_empty_value:vE(XT()),default_separator:vE(XT()),palette:{spec:dE,domain:{themes:`themes`}},style:{spec:XT(),domain:{from:`styles`}},effect:{spec:fE,domain:{from:Mp}},preset:{spec:XT(),domain:{from:`presets`}},endcaps:gE(Lp),variation:gE(qp),shade:gE(Xp),autoWrap:_E(),padding:{spec:QT(nm),domain:{...nm,step:1}},charset:gE(Hp),updateNotice:_E(),transitions:_E(),colorCompatibility:{spec:uE,domain:{from:Gp}},menuGlyph:vE(hE)},bE=Object.fromEntries(Object.entries(yE).map(([e,t])=>[e,t.spec]));function xE(e){return yE[e].domain}function SE(e){let t=xE(e);if(t===`text`)throw Error(`globals.${e} is free text, which no control can change — list it in UNCONTROLLED_GLOBALS instead of SETTINGS`);return t}function CE(e,t){return{required:!1,json:{not:{},description:`not allowed here — ${e}`},parse:(e,n,r,i)=>{i[r]!==void 0&&e.issues.push({path:`${n}.${r}`,message:t(`${n}.${r}`),line:J(e.source,[...n.split(`.`),r])})}}}function wE(e){return CE(`${e} cannot select a preset`,t=>`${t}: ${e} cannot select a preset. Which preset is active is resolved once, as session pick over globals.preset over "default"; a fragment naming another would be a second authority over that. Set the default arrangement in the top-level globals.preset instead.`)}function TE(e){return CE(`${e} cannot change the settings menu glyph`,t=>`${t}: ${e} cannot change the settings menu glyph — one menu is shared by every preset. Set it in the top-level globals.menuGlyph instead.`)}function EE(e,t,n){return{...e,json:{...e.json,not:{pattern:`\\{\\{`}},parse:(r,i,a,o)=>{let s=o[a];if(typeof s==`string`&&Sp(s)){r.issues.push({path:`${i}.${a}`,message:`${i}.${a}: a rule is not allowed here — ${t} ${n}, so it names a value. Write the rule in globals.${a} (or a preset's globals.${a}) instead.`,line:J(r.source,[...i.split(`.`),a])});return}return e.parse(r,i,a,o)}}}const DE={default_bg:"nothing reads it — a segment with no `bg:` wears the decoration tint of its place in the bar. Delete the key, and author `bg:` on the segments that need a fixed colour.",default_fg:"nothing reads it — a segment with no `fg:` wears text chosen for contrast against its background. Delete the key, and author `fg:` on the segments that need a fixed colour.",default_truncate_marker:'nothing reads it — a segment clipped to its `width:` always ends in "…". Delete the key.',look:`it was renamed "style" — write the same name as style: "<name>"`,progression:`it was renamed "variation", and its values with it: accent (was secondary-accent), duo (was primary-secondary), mono (was primary)`},OE={noun:`globals key`,fields:bE,removed:DE},kE={preset:wE(`a preset`),menuGlyph:TE(`a preset`)},AE={noun:`preset globals key`,fields:{...bE,...kE},removed:DE};function jE(e){return VE(e)&&!(e in kE)}const ME=`is decided later than any rule could be settled`,NE={noun:`editGlobals key`,removed:DE,fields:{...bE,preset:wE(`the editGlobals fragment`),menuGlyph:TE(`the editGlobals fragment`),palette:EE(bE.palette,`the editGlobals fragment`,ME),style:EE(bE.style,`the editGlobals fragment`,ME),effect:EE(bE.effect,`the editGlobals fragment`,ME)}},PE={noun:`theme default key`,fields:{...Object.fromEntries(Th.map(e=>[e,bE[e]])),style:EE(bE.style,`a theme's default`,`is the look that theme wears by name`)}};function FE(e,t){if(!RT(t))return e.issues.push({path:`themeDefaults`,message:`themeDefaults must be an object mapping theme names to { shade, variation, style }, got ${X(t)}`,line:J(e.source,[`themeDefaults`])}),{};let n={};for(let[r,i]of Object.entries(t)){let t=`themeDefaults.${r}`;if(!e.allowedPalettes.has(r)){e.issues.push({path:t,message:`${t}: "${r}" is not an installed theme${pp(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:J(e.source,[`themeDefaults`,r])});continue}let a=zT(e,PE,t,i);a!==null&&(n[r]=a)}return n}function IE(e,t,n){return n===void 0?{}:zT(e,OE,t,n)??{}}function LE(e,t,n){return zT(e,AE,t,n)??{}}function RE(){return oE(AE)}function zE(e,t,n){return zT(e,NE,t,n)??{}}const BE=new Set(Object.keys(bE));function VE(e){return BE.has(e)}function HE(){return[...BE]}const UE={padding:1};function WE(e){let t=new Map;for(let[n,r]of Object.entries(UE)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}const GE=/^segments\.([^.]+)\.palette$/,KE=/^presets\.(.+)\.root$/,qE=/^presets\.(.+)\.globals\.([^.]+)$/,JE=/^themeDefaults\.(.+)\.([^.]+)$/;function YE(e){return`presets.${e}.root`}function XE(e,t){return`themeDefaults.${e}.${t}`}const ZE=e=>Th.includes(e);function QE(e,t){return`presets.${e}.globals.${t}`}function $E(e){if(VE(e))return{scope:`globals`,field:e};let t=GE.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=qE.exec(e);if(n&&jE(n[2]))return{scope:`preset-globals`,preset:n[1],field:n[2]};let r=JE.exec(e);if(r&&ZE(r[2]))return{scope:`theme-default`,theme:r[1],field:r[2]};let i=KE.exec(e);return i?{scope:`preset-root`,preset:i[1]}:null}function eD(e){switch(e.scope){case`globals`:return[`globals`,e.field];case`preset-globals`:return[`presets`,e.preset,`globals`,e.field];case`segment-palette`:return[`segments`,e.segment,`palette`];case`theme-default`:return[`themeDefaults`,e.theme,e.field]}}const tD=[`location`,`git`,`model-context`,`cost-limits`,`activity`,`session-tools`],nD=[...tD,`other`],rD={location:`location`,git:`git`,"model-context":`model & context`,"cost-limits":`cost & limits`,activity:`activity`,"session-tools":`session tools`,other:`other`},iD=Vv({fromString:e=>e}),aD=`edit.mode`,oD=`edit.configure`,sD=`edit.toggle`,cD=`edit.unconfigure`,lD=[sD,cD],uD=`arrange`,dD=`${fT}draft.`;function fD(e,t){return`${e}:${t}`}const pD={variable:aD,key:aD,member:uD},mD=rr(pD);function hD(e){try{return iD.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function gD(e){if(Object.values(e.actions??{}).some(e=>`do`in e&&e.do.includes(`edit.toggle`)))return!0;for(let t of Object.values(e.segments??{}))for(let e of[t.template,t.bg,t.fg])if(typeof e==`string`&&hD(e))return!0;return!1}function _D(e,t){if(gT(e,t,fT,`edit mode`),!gD(t))return;let{variables:n,actions:r}=vD();t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function vD(){return{variables:{[aD]:cr(aD,Zn),[oD]:cr(oD,Zn)},actions:{[sD]:lr(aD,uD),[cD]:{set:oD,to:Zn}}}}const yD=`open`;function bD(e,t,n,r){let i={variable:e,key:e,member:yD};return r.variables[e]=cr(e,Zn),r.actions[e]=lr(e,yD),r.segments[e]={template:ar(e,`(?)`,`✕`),...xD(n)},nr(e,i,{kind:`container`,direction:`horizontal`,children:t.map((t,n)=>{let i=`${e}.${n}`;return r.segments[i]={template:t},{kind:`segment`,name:i}})},`drop`)}function xD(e){let[t,...n]=e;return t===void 0?{}:{when:rr(t,...n)}}const SD=`none`;function CD(e){return Xs(e,`background`)}var wD=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function TD(e,t,n,r,i){let{palette:a,tint:o,text:s}=e,c=ED(n,i),l=c!==SD,u=l?c===void 0?o:DD(a,c,`bg`):CD(a);e.bg=u;let d=ED(r,i),f=d===void 0?l?(e=>e.hex===o.hex?s:Bf(a,e,t))(u):void 0:DD(a,d,`fg`);return new H({...l&&{bgcolor:V.fromRgba(u)},...f!==void 0&&{color:V.fromRgba(f)}})}function ED(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function DD(e,t,n){try{return Xs(e,t)}catch(e){throw e instanceof Ys?new wD(t,n,e.message):e}}const OD=`🔧`,kD={help:[`-h`,`--help`],version:[`-V`,`--version`]},AD=[`✚ inserts`,`✖ removes`,`${OD} configures`,`↺ resets layout`],jD=`
66
+ `)}function rC(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 iC(e,t){let n=[];for(let e of t){if(typeof e==`object`&&e)throw Kx(`join`,2,`list of strings/primitives`,`list element of type ${aC(e)}`);n.push(String(e))}return n.join(e)}function aC(e){return Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:`object`}function oC(e){return YS(e,`-`)}function sC(e){return e.toLowerCase()}function cC(e,t){return`\n${nC(e,t)}`}function lC(e){return e.replace(/\s+/g,``)}function uC(e,t,n){return n===1?e:t}function dC(...e){return e.map(e=>`"${e}"`).join(` `)}function fC(e){return e.replace(/[\\.+*?()|[\]{}^$]/g,`\\$&`)}function pC(e,t){return t.repeat(Math.max(0,e))}function mC(e,t,n){return PS(e,n).join(t)}function hC(e){return YS(e,`_`)}function gC(e,t){let n=PS(e,t),r={};for(let e=0;e<n.length;e++)r[`_${e}`]=n[e];return r}function _C(e,t){return PS(e,t)}function vC(e,t,n){let r=yC(n,e,t),i={};for(let e=0;e<r.length;e++)i[`_${e}`]=r[e]??``;return i}function yC(e,t,n){if(n===0)return[];let r=PS(t,e);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 bC(...e){return e.map(e=>`'${e}'`).join(` `)}function xC(e,t,n){let r=NS(n),i=t<0||t>r.length?r.length:t,a=Math.min(Math.max(0,e),i);return r.slice(a,i).join(``)}function SC(e){let t=``;for(let n of e)CC(n)?t+=n.toLowerCase():wC(n)?t+=n.toUpperCase():t+=n;return t}function CC(e){return e!==e.toLowerCase()&&e===e.toUpperCase()}function wC(e){return e!==e.toUpperCase()&&e===e.toLowerCase()}function TC(e){return e.replace(/\b([a-zA-Z])/g,e=>e.toUpperCase())}function EC(e){return e.trim()}function DC(e,t){if(e.length===0)return t;let n=new Set(NS(e)),r=NS(t),i=0;for(;i<r.length&&n.has(r[i]);)i+=1;let a=r.length;for(;a>i&&n.has(r[a-1]);)--a;return r.slice(i,a).join(``)}function OC(e,t){return t.startsWith(e)?t.slice(e.length):t}function kC(e,t){return t.endsWith(e)?t.slice(0,t.length-e.length):t}function AC(e,t){let n=NS(t);if(e<0){let r=-e;return r>=n.length?t:n.slice(n.length-r).join(``)}return e>=n.length?t:n.slice(0,e).join(``)}function jC(e){return e.replace(/\b([A-Z])/g,e=>e.toLowerCase())}function MC(e){return e.toUpperCase()}function NC(e,t){return PC(e,`
67
+ `,t)}function PC(e,t,n){if(e<=0)return n;let r=[];for(let t of n.split(`
68
+ `)){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 FC(e,t,n){return PC(e,t,n)}function IC(){return{abbrev:{fn:(e,t)=>FS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},abbrevboth:{fn:(e,t,n)=>IS(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},camelcase:{fn:e=>ZS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},cat:{fn:(...e)=>QS(...e),argTypes:[`string`],arity:{kind:`variadic`}},contains:{fn:(e,t)=>$S(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasPrefix:{fn:(e,t)=>eC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasSuffix:{fn:(e,t)=>tC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},indent:{fn:(e,t)=>nC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},initials:{fn:e=>rC(e),argTypes:[`string`],arity:{kind:`exact`}},join:{fn:(e,t)=>iC(e,t),argTypes:[`string`,`list`],arity:{kind:`exact`}},kebabcase:{fn:e=>oC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},lower:{fn:e=>sC(e),argTypes:[`string`],arity:{kind:`exact`}},nindent:{fn:(e,t)=>cC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},nospace:{fn:e=>lC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},plural:{fn:(e,t,n)=>uC(e,t,n),argTypes:[`string`,`string`,`int`],arity:{kind:`exact`},returnType:`string`},quote:{fn:(...e)=>dC(...e),argTypes:[`string`],arity:{kind:`variadic`}},regexQuoteMeta:{fn:e=>fC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},repeat:{fn:(e,t)=>pC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},replace:{fn:(e,t,n)=>mC(e,t,n),argTypes:[`string`,`string`,`string`],arity:{kind:`exact`}},snakecase:{fn:e=>hC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},split:{fn:(e,t)=>gC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitList:{fn:(e,t)=>_C(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitn:{fn:(e,t,n)=>vC(e,t,n),argTypes:[`string`,`int`,`string`],arity:{kind:`exact`},returnType:`dict`},squote:{fn:(...e)=>bC(...e),argTypes:[`string`],arity:{kind:`variadic`}},substr:{fn:(e,t,n)=>xC(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},swapcase:{fn:e=>SC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},title:{fn:e=>TC(e),argTypes:[`string`],arity:{kind:`exact`}},trim:{fn:e=>EC(e),argTypes:[`string`],arity:{kind:`exact`}},trimAll:{fn:(e,t)=>DC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimPrefix:{fn:(e,t)=>OC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimSuffix:{fn:(e,t)=>kC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trunc:{fn:(e,t)=>AC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},untitle:{fn:e=>jC(e),argTypes:[`string`],arity:{kind:`exact`}},upper:{fn:e=>MC(e),argTypes:[`string`],arity:{kind:`exact`}},wrap:{fn:(e,t)=>NC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},wrapWith:{fn:(e,t,n)=>FC(e,t,n),argTypes:[`int`,`string`,`string`],arity:{kind:`exact`}}}}function LC(e,t){let n=RC(e),r=n.copy();return r.style=ll(n.style,t),r}function RC(e){if(!(e instanceof G))throw TypeError(`template function expected a RichText fragment, got ${typeof e==`object`?Object.prototype.toString.call(e):typeof e}`);return e}function zC(e){return{fn:(t=>LC(t,e)),argTypes:[`liftable`],arity:{kind:`exact`},returnType:`T`}}function BC(e){return{fn:((t,n)=>LC(n,new H({[e]:V.parse(t)}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`}}function VC(e,t){return new H({[e]:t})}function HC(){let e={};for(let t of rl)e[t]=zC(VC(t,!0)),e[`not_${t}`]=zC(VC(t,!1));for(let[t,n]of Object.entries(al))e[t]=zC(VC(n,!0));return e}const UC={fn:((e,t)=>LC(t,H.parse(e))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`},WC={fn:((e,t)=>LC(t,new H({link:e}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`};function GC(){return{fg:BC(`color`),bg:BC(`bgcolor`),...HC(),link:WC,style:UC}}function KC(e,t){let n;try{n=bs(e.trim())}catch(n){throw n instanceof ns?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)}) …`,{cause:n}):n}return qC(n,t,JSON.stringify(e))}function qC(e,t,n){if(e.alpha===0)throw RangeError(`${t} got ${n}, which is fully transparent: it draws no colour of its own, so there is nothing to compute with — use the colour of the surface it sits on, e.g. (color "background")`);return e}function JC(e,t){return{fn:t,argTypes:e,arity:{kind:`exact`},returnType:`string`}}function YC(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}`)}return e}const XC=JC([`string`,`int`],((e,t)=>ic(KC(e,`darken`),t).hex)),ZC=JC([`string`,`int`],((e,t)=>ic(KC(e,`lighten`),-t).hex)),QC={min:0,max:100,note:`0 = from, 100 = toward`},$C=JC([`string`,`string`,`float`],((e,t,n)=>xs(KC(e,`mix`),KC(t,`mix`),YC(n,`mix`,`percentage`,QC)/100).hex)),ew={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},tw=JC([`string`],(e=>oc(KC(e,`contrastOn`)).hex)),nw={depth:B.TRUECOLOR},rw=e=>JC([`string`,`string`,`float`],((t,n,r)=>{let{depth:i,terminal:a}=e();return sc(KC(t,`readableOn`),KC(n,`readableOn`),YC(r,`readableOn`,`ratio`,ew),i,void 0,a).hex})),iw={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function aw(){let e={};for(let[t,n]of Object.entries(iw)){let r=t;e[n]=JC([`string`,`float`],((e,t)=>{let i={...zs,[r]:YC(t,n,`amount`)};return Xs.fromRgba(KC(e,n)).applyKey(i).toRgba().hex}))}return e}function ow(e=()=>nw){return{darken:XC,lighten:ZC,mix:$C,contrastOn:tw,readableOn:rw(e),...aw()}}function sw(e,t){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:qC(Qs(t,e[r+1]),`ramp`,JSON.stringify(e[r+1]))});return n}function cw(e){return{color:{fn:(t=>Qs(e(),t).hex),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},ramp:{fn:((t,n,...r)=>new Wc(Xc(n),sw(r,e())).at(t).hex),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:4},returnType:`string`}}}function lw(e){return{...GC(),...ow(e)}}new H({color:`red`,dim:!0});const uw=/^(?:(?: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,dw=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function fw(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(uw);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(dw);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 pw(e){let t=e.match(dw);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 mw(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 hw(e){return e.toLocaleString()}function gw(e){if(e.length===0)throw Error(`a cascade needs at least one stop, e.g. "0:calm"`);let t=[];for(let[n,r]of e.entries()){let e=r.indexOf(`:`),i=e<0?NaN:Number(r.slice(0,e));if(!Number.isFinite(i))throw Error(`cascade stop ${n} ("${r}") must be "<position>:<result>", e.g. "80:hot" — the position must be a number`);let a=t[n-1];if(a!==void 0&&i<a.at)throw Error(`cascade stops must be in ascending position order; stop ${n} at ${i} follows stop ${n-1} at ${a.at}`);t.push({at:i,text:r.slice(e+1)})}return t}function _w(e,t){if(!Number.isFinite(e))throw Error(`a cascade needs a finite value, got ${e}`);let n=-1;for(;n+1<t.length&&t[n+1].at<=e;)n++;return(n<0?t[0]:t[n]).text}const vw=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],yw=vw.length;function bw(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*(yw-1));o+=vw[t]}return o}function xw(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}function Sw(e,t,n){if(n.length!==0)throw Error(`${e}: takes at most ${t.length} optional argument${t.length===1?``:`s`} (${t.join(`, `)}), got ${t.length+n.length}`)}const Cw=lm(),ww=[...Am];function Tw(){return{basename:{fn:e=>u(e),argTypes:[`string`],arity:{kind:`exact`}},dirname:{fn:e=>d(e),argTypes:[`string`],arity:{kind:`exact`}},abbreviatePath:{fn:e=>mw(e),argTypes:[`string`],arity:{kind:`exact`}},int:{fn:e=>Math.trunc(L_(e)),argTypes:[`value`],arity:{kind:`exact`}},string:{fn:e=>I_(e),argTypes:[`value`],arity:{kind:`exact`}},bool:{fn:e=>R_(e),argTypes:[`value`],arity:{kind:`exact`}},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`],arity:{kind:`exact`}},themes:{fn:()=>Cw,argTypes:[],arity:{kind:`exact`}},endcaps:{fn:()=>ww,argTypes:[],arity:{kind:`exact`}},sparkline:{fn:(e,t,...n)=>(Sw(`sparkline`,[`width`],n),bw(xw(e),t)),argTypes:[`string`,`int`],arity:{kind:`variadic`}},cascade:{fn:(e,...t)=>_w(e,gw(t)),argTypes:[`float`,`string`],arity:{kind:`variadic`}}}}function Ew(e){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`],arity:{kind:`exact`}},formatInteger:{fn:e=>hw(e),argTypes:[`int`],arity:{kind:`exact`}},round:{fn:e=>Math.round(e),argTypes:[`float`],arity:{kind:`exact`}},formatModelName:{fn:e=>fw(e),argTypes:[`string`],arity:{kind:`exact`}},shortenModelName:{fn:e=>pw(e),argTypes:[`string`],arity:{kind:`exact`}}}}function Dw(e){let{clock:t,drawnAt:n,extraFuncs:r}=e;return Ny({fromString:e=>new G(e),toString:e=>e.plain,isT:e=>e instanceof G,clock:t,missingKey:`error`,funcs:{...Sx(),...IC(),...uS(),...MS(),...mx(t),...ib(),...Rx(),...Ix(),...lw(n&&(()=>({depth:n()}))),...Tw(),...Ew(t),...r??{}}})}function Ow(e){return kw(e,new Set(e.names()),``)}function kw(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`?jw(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return kw(e,t,a)}})}function Aw(e,t){return new Proxy(e,{has:(e,t)=>t===`settings`||Reflect.has(e,t),get:(e,n)=>n===`settings`?t:Reflect.get(e,n)})}function jw(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw new z_(e,`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}function Mw(e){return r.existsSync(l.join(e,`.git`))}function Nw(e){let t=l.resolve(e);for(;;){if(Mw(t))return t;let e=l.dirname(t);if(e===t)return;t=e}}function Pw(e){let t=Nw(e);return t===void 0?{root:l.resolve(e),git:!1}:{root:t,git:!0}}function Fw(e,t){return e.kind===`absent`?F(`none`):e.kind===`failed`?e:t.kind===`failed`?t:F(t.kind===`ok`?`tracked`:`gone`)}function Iw(e,t){return e.kind!==`ok`||e.value.state===`open`?e:t.kind===`failed`?L(`HEAD: ${t.reason}`):t.kind===`ok`&&t.value===e.value.head?e:{kind:`earlier`,value:e.value}}const Lw={OPEN:`open`,MERGED:`merged`,CLOSED:`closed`},Rw={opened:`open`,locked:`open`,merged:`merged`,closed:`closed`};function zw(e,t,n){return Object.hasOwn(t,n)?F(t[n]):L(`${e}: unknown state ${JSON.stringify(n)}`)}function Bw(e,t,n){return t.ok?F(t.stdout):t.reason===`non-zero`&&n===`absent`||t.reason===`non-zero`&&n===t.exitCode?I:L(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??Vw(t.stderr)].filter(Boolean).join(`, `)}`)}function Vw(e){return e.trim().split(`
69
+ `,1)[0]??``}function Hw(e,t){if(e.kind!==`ok`)return e;let n=t(e.value);return n===null?I:F(n)}function Uw(e){if(e.kind!==`ok`)return e;let t=e.value.trim();return t?F(t):I}const Ww=/^[A-Za-z]:[\\/]/;function Gw(e){let t=e.trim();if(Ww.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 Kw(e){return Gw(e)?.host||null}function qw(e){let t=Kw(e);return t?t===`github.com`||t.endsWith(`.github.com`)?`github`:/(^|\.)gitlab\./.test(t)?`gitlab`:null:null}function Jw(e){let t=new Map;for(let n of e.split(`
70
+ `)){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 Yw(e){return e.urls.find(e=>eT(e)!==null)??e.urls[0]??null}function Xw(e){return e.find(e=>e.name===`origin`)??e[0]??null}function Zw(e){let t=Xw(e);return t?Yw(t):null}function Qw(e){let t=Xw(e);return t?t.urls.find(e=>qw(e)!==null)??Yw(t):null}function $w(e){let t=(Gw(e)?.path??e.replace(/[\\/]+$/,``)).split(`/`);return(t[t.length-1]??``).replace(/\.git$/,``)||null}function eT(e){let t=Gw(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 tT(e){let t=Zw(e);return t===null?null:eT(t)}function nT(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)?I:L(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??Vw(t.stderr)].filter(Boolean).join(`, `)}`)}function rT(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function iT(e){let t=`detached`,n=I,r=I,i=I,a=0,o=0,s=0,c=0;for(let l of e.split(`
71
+ `)){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)`?I:F(t)}else if(e.startsWith(`branch.head `)){let n=e.slice(12).trim();t=n===`(detached)`?`detached`:n}else if(e.startsWith(`branch.upstream `))r=F(e.slice(16).trim());else if(e.startsWith(`branch.ab `)){let t=e.slice(10).trim().match(/^\+(\d+)\s+-(\d+)$/);t&&(i=F({ahead:parseInt(t[1],10),behind:parseInt(t[2],10)}))}continue}let e=l[0];if(e===`1`||e===`2`){let e=l.slice(2,4);e[0]!==`.`&&a++,e[1]!==`.`&&o++}else e===`u`?c++:e===`?`&&s++}let l=`clean`;return c>0?l=`conflicts`:(a||o||s)&&(l=`dirty`),{branch:t,status:l,aheadBehind:i,oid:n,upstream:r,workingTree:{staged:a,unstaged:o,untracked:s,conflicts:c}}}function aT(e){let t;try{t=JSON.parse(e)}catch(e){return L(`gh pr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!rT(t))return L(`gh pr view: JSON is not an object`);let{number:n,state:r,url:i,headRefOid:a}=t;if(typeof n!=`number`||typeof r!=`string`||typeof i!=`string`||typeof a!=`string`)return L(`gh pr view: missing number/state/url/headRefOid`);let o=zw(`gh pr view`,Lw,r);return o.kind===`ok`?F({number:n,state:o.value,url:i,head:a}):o}function oT(e){let t;try{t=JSON.parse(e)}catch(e){return L(`glab mr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!rT(t))return L(`glab mr view: JSON is not an object`);let n=t.iid,r=t.state,i=t.web_url,a=t.sha;if(typeof n!=`number`||typeof r!=`string`||typeof i!=`string`||typeof a!=`string`)return L(`glab mr view: missing iid/state/web_url/sha`);let o=zw(`glab mr view`,Rw,r);return o.kind===`ok`?F({number:n,state:o.value,url:i,head:a}):o}function sT(e){try{let t=r.statSync(e);return{key:`${t.dev}:${t.ino}`,stamp:`${t.mtimeMs}:${t.size}`}}catch{return null}}var cT=class{isGitRepo(e){return Mw(e)}async execGitAsync(e,t){return Me({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)?F(e):t&&this.isGitRepo(t)?F(t):this.isGitRepo(e)?F(e):this.findGitRoot(e)}async findGitRoot(e){let t=Nw(e);return t===void 0?I:F(t)}async getGitInfo(e,t={},n){try{return await this.computeGitInfo(e,t,n)}catch(e){return L(`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,head:a.value.oid};t.showWorkingTree&&(o.workingTree=a.value.workingTree),t.showSha&&(o.sha=Hw(a.value.oid,e=>e.slice(0,7))),t.showUpstream&&(o.upstream=a.value.upstream),t.showTag&&(o.tag=await this.getNearestTagAsync(r)),t.showTimeSinceCommit&&(o.committedAt=await this.committedAt(r,a.value.oid)),t.showStashCount&&(o.stashCount=this.getStashCount(r));let s=t.showRepoName||t.showRepoUrl?await this.getRemotesAsync(r):void 0;return s!==void 0&&t.showRepoName&&(o.repoName=Hw(s,e=>this.repoNameFrom(e,r)),o.isWorktree=i),s!==void 0&&t.showRepoUrl&&(o.repoUrl=Hw(s,tT)),t.showOperation&&(o.operation=this.getOngoingOperation(r)),F(o)}resolveGitDir(e){let t=l.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 l.resolve(e,n[1].trim())}}catch{}return t}getOngoingOperation(e){try{let t=this.resolveGitDir(e);return r.existsSync(l.join(t,`MERGE_HEAD`))?F(`MERGE`):r.existsSync(l.join(t,`CHERRY_PICK_HEAD`))?F(`CHERRY-PICK`):r.existsSync(l.join(t,`REVERT_HEAD`))?F(`REVERT`):r.existsSync(l.join(t,`BISECT_LOG`))?F(`BISECT`):r.existsSync(l.join(t,`rebase-merge`))||r.existsSync(l.join(t,`rebase-apply`))?F(`REBASE`):I}catch(e){return L(`git operation probe: ${e instanceof Error?e.message:String(e)}`)}}async getNearestTagAsync(e){return Uw(Bw(`git describe --tags`,await this.execGitAsync([`describe`,`--tags`,`--abbrev=0`],{cwd:e,timeout:2e3}),`absent`))}async committedAt(e,t){return t.kind===`ok`?this.commitTimestampMs(e,t.value):t}commitTimes=new Map;async commitTimestampMs(e,t){let n=this.commitTimes.get(t);if(n!==void 0)return this.commitTimes.delete(t),this.commitTimes.set(t,n),n;let r=this.readCommitTimestampMs(e,t);for(this.commitTimes.set(t,r),r.then(e=>{e.kind!==`ok`&&this.commitTimes.get(t)===r&&this.commitTimes.delete(t)},()=>{this.commitTimes.get(t)===r&&this.commitTimes.delete(t)});this.commitTimes.size>256;){let e=this.commitTimes.keys().next().value;if(e===void 0)break;this.commitTimes.delete(e)}return r}async readCommitTimestampMs(e,t){let n=Uw(Bw(`git log -1`,await this.execGitAsync([`log`,`-1`,`--format=%ct`,t,`--`],{cwd:e,timeout:2e3}),`absent`));if(n.kind!==`ok`)return n;let r=parseInt(n.value,10)*1e3;return Number.isNaN(r)?L(`git log -1: unparseable timestamp "${n.value}"`):F(r)}resolveCommonGitDir(e){let t=this.resolveGitDir(e);try{let e=r.readFileSync(l.join(t,`commondir`),`utf-8`).trim();if(e)return l.resolve(t,e)}catch{}return t}getStashCount(e){let t=l.join(this.resolveCommonGitDir(e),`logs`,`refs`,`stash`),n;try{n=r.readFileSync(t,`utf-8`)}catch(e){return e.code===`ENOENT`?F(0):L(`git stash reflog ${t}: ${e instanceof Error?e.message:String(e)}`)}let i=n.trim();return F(i?i.split(`
72
+ `).length:0)}async getRemotesAsync(e){let t=sT(l.join(this.resolveCommonGitDir(e),`config`));if(t===null)return this.readRemotes(e);let{key:n,stamp:r}=t,i=this.remotesByConfig.get(n);if(i!==void 0&&i.stamp===r)return this.remotesByConfig.delete(n),this.remotesByConfig.set(n,i),i.remotes;let a=this.readRemotes(e);for(this.remotesByConfig.set(n,{stamp:r,remotes:a}),a.then(e=>{let t=this.remotesByConfig.get(n);e.kind!==`ok`&&t?.remotes===a&&this.remotesByConfig.delete(n)},()=>{this.remotesByConfig.get(n)?.remotes===a&&this.remotesByConfig.delete(n)});this.remotesByConfig.size>256;){let e=this.remotesByConfig.keys().next().value;if(e===void 0)break;this.remotesByConfig.delete(e)}return a}remotesByConfig=new Map;async readRemotes(e){let t=Bw(`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:F(t.kind===`ok`?Jw(t.value):[])}repoNameFrom(e,t){let n=Zw(e);return(n===null?null:$w(n))??l.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=Qw(t.value);return n===null?I:F(n)}async execForgeAsync(e,t,n){return Me({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=qw(t);return n===`github`?nT(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url,headRefOid`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,aT):n===`gitlab`?nT(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,oT):I}isWorktree(e){try{let t=l.join(e,`.git`);return!!(r.existsSync(t)&&r.statSync(t).isFile())}catch{return!1}}async getCoreAsync(e){D(`[GIT-EXEC] Running git status --porcelain=v2 in ${e}`);let t=Bw(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?F(iT(t.value)):t}};const lT=(e,t)=>D(t);var uT=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??lT}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()}},dT=class{running=new Set;again=new Set;run(e,t){return this.again.add(e),this.running.has(e)?{kind:`queued`}:(this.running.add(e),{kind:`started`,done:this.loop(e,t)})}async loop(e,t){try{do this.again.delete(e),await t();while(this.again.has(e))}finally{this.running.delete(e),this.again.delete(e)}}clear(){this.running.clear(),this.again.clear()}get size(){return this.running.size}};const fT={showSha:!0,showStashCount:!0};function pT(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function mT(e){let t=t=>{try{return r.statSync(l.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function hT(e,t){return e.head!==t.head||e.index!==t.index}function gT(e){let t=[],n=l.join(e,`refs/heads`);try{r.statSync(n).isDirectory()&&t.push({path:n})}catch{}return{files:[l.join(e,`HEAD`),l.join(e,`index`)],dirs:t}}var _T=class extends cT{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new dT;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new cT,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??Ft,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new uT({logger:this.logger}),this.ownsWatchers=!0);let t=e.sanityIntervalMs??3e5;t>0&&(this.sanityTimer=setInterval(()=>this.runSanityCheck(),t),this.sanityTimer.unref())}getWatcherRegistry(){return this.watchers}getStats(){return{size:this.entries.size,hits:this.hits,misses:this.misses,invalidations:this.invalidations,watchers:this.watchers.size()}}resolveEffectiveGitDir(e,t){let n=`${e}|${t??``}`,r=Date.now(),i=this.resolutions.get(n);if(i&&r-i.computedAt<this.ttlMs)return this.resolutions.delete(n),this.resolutions.set(n,i),i.dir;let a=this.inner.resolveEffectiveGitDir(e,t);return this.resolutions.set(n,{dir:a,computedAt:r}),a.catch(()=>{this.resolutions.get(n)?.dir===a&&this.resolutions.delete(n)}),this.evictResolutionsIfNeeded(),a}evictResolutionsIfNeeded(){for(;this.resolutions.size>this.maxEntries;){let e=this.resolutions.keys().next().value;if(e===void 0)break;this.resolutions.delete(e)}}async getGitInfo(e,t={},n){let r=await this.resolveEffectiveGitDir(e,n);return r.kind===`ok`?this.getGitInfoForRoot(r.value,t):r}getGitInfoForRoot(e,t){let n=`${e}|${pT(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(F(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=mT(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}`,gT(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 I;let r=n.value,i=`${e}|${t}|${r}`,a=Date.now(),o=this.prCache.get(i);if(o){let e=o.pr.kind===`failed`?45e3:3e5;if(a-o.computedAt<e)return this.prCache.delete(i),this.prCache.set(i,o),o.pr}let s=this.prFetchInFlight.get(i);if(s)return s;let c=this.inner.resolvePullRequest(e,r).then(e=>(this.prCache.set(i,{pr:e,computedAt:Date.now()}),this.evictPrIfNeeded(),e)).finally(()=>{this.prFetchInFlight.delete(i)});return this.prFetchInFlight.set(i,c),c}evictPrIfNeeded(){for(;this.prCache.size>this.maxEntries;){let e=this.prCache.keys().next().value;if(e===void 0)break;this.prCache.delete(e)}}deliverable(e,t){return e.kind===`failed`?(this.logger(`warn`,`git fetch failed (${t}): ${e.reason}`),null):e.kind===`ok`?e.value:null}subscribe(e,t){let n=!1,r=null;return{firstDelivery:(async()=>{let i=await this.resolveEffectiveGitDir(e);if(n)return;if(i.kind!==`ok`){i.kind===`failed`&&this.logger(`warn`,`git resolve failed (subscribe ${e}): ${i.reason}`),this.safeInvoke(t,null);return}let a=i.value,o=this.subscribersByRepo.get(a);if(!o){let t=this.inner.resolveGitDir(a),n=this.watchers.acquire(`git:${a}`,gT(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,{...fT});n||this.safeInvoke(t,this.deliverable(s,a))})(),unsubscribe:()=>{if(n=!0,!r)return;let{repoRoot:e,entry:i}=r;i.callbacks.delete(t),i.callbacks.size===0&&(i.watcher.release(),this.subscribersByRepo.delete(e))}}}invalidateRepo(e){let t=0;for(let[n,r]of this.entries)r.repoRoot===e&&(r.watcher.release(),this.entries.delete(n),t++);t>0&&(this.invalidations+=t,this.logger(`info`,`gitCache invalidate ${e} dropped=${t}`)),this.refreshSubscribers(e)}refreshSubscribers(e){let t=this.subscribersByRepo.get(e);!t||t.callbacks.size===0||this.refreshes.run(e,()=>this.refreshOnce(e))}async refreshOnce(e){let t=this.subscribersByRepo.get(e);if(!t||t.callbacks.size===0)return;let n=await this.getGitInfoForRoot(e,{...fT}),r=this.deliverable(n,e),i=this.subscribersByRepo.get(e);if(!(!i||i.callbacks.size===0))for(let e of[...i.callbacks])i.callbacks.has(e)&&this.safeInvoke(e,r)}safeInvoke(e,t){try{e(t)}catch(e){this.logger(`warn`,`git subscriber threw: ${e.message??String(e)}`)}}dropEntry(e){let t=this.entries.get(e);t&&(t.watcher.release(),this.entries.delete(e))}evictIfNeeded(){for(;this.entries.size>this.maxEntries;){let e=this.entries.keys().next().value;if(e===void 0)break;this.dropEntry(e),this.logger(`info`,`gitCache evict ${e}`)}}runSanityCheck(){let e=new Map;for(let t of this.entries.values()){let n=e.get(t.repoRoot);n||(n=mT(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),hT(t.mtime,n)&&this.invalidateRepo(t.repoRoot)}}runSanityCheckNow(){this.runSanityCheck()}close(){this.sanityTimer&&=(clearInterval(this.sanityTimer),null);for(let e of this.entries.values())e.watcher.release();this.entries.clear();for(let e of this.subscribersByRepo.values())e.callbacks.clear(),e.watcher.release();this.subscribersByRepo.clear(),this.refreshes.clear(),this.fetchInFlight.clear(),this.prCache.clear(),this.prFetchInFlight.clear(),this.resolutions.clear(),this.ownsWatchers&&this.watchers.closeAll()}};const vT=/\r\n|\r|\n/g,yT=e=>F(e.replace(vT,` `).trim());function bT(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?L(`regex no-match`):F(n.replace(vT,` `))}}const xT=e=>{try{return F(JSON.parse(e))}catch(e){return L(`JSON parse failed: ${e.message}`)}},ST=e=>e.getTime()/1e3,CT=e=>new Date(e*1e3);function wT(e,t){return t.kind!==`ttl`||t.durationMs>=500?t:(D(`declareShell "${e}": ttl ${t.durationMs}ms below floor 500ms; clamping`),{kind:`ttl`,durationMs:500})}function TT(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]}"`)}}const ET=`session.id`;function DT(e,t,n){return{where:`output of "${e}" in ${t}`,read:async()=>{let r=await Me({bin:`/bin/sh`,args:[`-c`,e],cwd:t,category:`user-shell`,signal:n});if(!r.ok&&r.reason===`aborted`)throw n.reason;return r.ok?F(r.stdout):L(`shell "${e}" ${r.exitCode===null?[r.reason,r.error].filter(e=>e!==void 0).join(`: `):`exited with code ${r.exitCode}`} in ${t}`)}}}function OT(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await oe(e,{encoding:`utf8`,signal:n});return F(t===`first-line`?r.split(/\r?\n/)[0]??``:r)}catch{if(n.aborted)throw n.reason;return L(`file unreadable: ${e}`)}}}}function kT(e,t,n){if(e.kind!==`ok`)return e;let r=t(e.value);return r.kind===`failed`?L(`${r.reason} in ${n}`):r}const AT=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],jT=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],MT=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],NT=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function PT(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>AT[e.getMonth()]],[`Monday`,e=>MT[e.getDay()]],[`Jan`,e=>jT[e.getMonth()]],[`Mon`,e=>NT[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 FT={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function IT(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=FT[t];try{return WT(r,e)}catch{return GT(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return gi(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return gi(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return gi(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return gi(e.stashCount,0)}}function LT(e){try{return o(e)}catch{return e}}function RT(e){try{return s(e).isDirectory()}catch{return!1}}function zT(e){let t=LT(e);return RT(t)?{dir:t,name:null,leaf:!0}:k_(t)}const BT=e=>`${e.dir}\0${e.name??``}`;var VT=class{watchers=new Map;subscribe(e,t,n){let r=this.watchers.get(e)??this.arm(e);return r.subscribers.set(t,n),r.watcher===null&&n(r.failure),()=>this.unsubscribe(e,t)}arm(e){let t={watcher:null,failure:``,target:zT(e),subscribers:new Map};return t.watcher=this.open(e,t,t.target),this.watchers.set(e,t),t}rearm(e,t){let n=zT(e);if(t.watcher!==null&&BT(n)===BT(t.target))return;let r=this.open(e,t,n);r!==null&&(t.watcher?.close(),t.watcher=r,t.target=n)}open(e,t,n){let{dir:r,name:i}=n,a=l.basename(r);try{return c(r,(n,r)=>{if(!(r===null||i===null||r===i)&&r!==a)return;let o=t.target.leaf;if(this.rearm(e,t),!(!o&&!t.target.leaf))for(let e of t.subscribers.keys())e()})}catch(n){let i=`watch_file ${e}: cannot watch ${r} — ${n instanceof Error?n.message:String(n)}`;t.failure=i;for(let e of t.subscribers.values())e(i);return null}}unsubscribe(e,t){let n=this.watchers.get(e);n&&(n.subscribers.delete(t),n.subscribers.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}},HT=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:le(()=>{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&&(ce(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())ce(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function UT(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function WT(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`?I_(e):t===`number`?L_(e):R_(e)}function GT(e){return e===`number`?0:e===`boolean`?!1:``}var KT=class{inputMetas=new Map;lastErrors=new Map;policyFaults=new Map;watchMgr=new VT;ttlMgr=new HT;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new dT;abort=new AbortController;drawn=N_.observable.box(B.TRUECOLOR);drawnAt=()=>this.drawn.get();instant=N_.observable.box(null);now=()=>{let e=this.instant.get();if(e===null)throw Error(`the time was read before any render published its instant`);return CT(e)};engine=Dw({clock:this.now,drawnAt:this.drawnAt});gitProvider;ownsGitProvider;sessionState;constructor(e,t=``,n,r){this.store=e,this.defaultEmptyValue=t,n?(this.gitProvider=n,this.ownsGitProvider=!1):(this.gitProvider=new _T({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,F_(t),t)}declareFailedDocument(e,t){this.store.defineDocument(e,L(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,DT(t,n.cwd,this.abort.signal),wT(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,OT(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,yT,t.default,n);case`regex`:return this.scalarPublisher(e,bT(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=kT(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,gi(a,i))}}documentPublisher(e,t,n){let r=t===void 0?I:F(t);this.store.defineDocument(e,r);let i,a=!1;return this.cleanups.push(()=>clearTimeout(i)),o=>{clearTimeout(i);let s=o.kind===`ok`&&o.value.trim()===``?I:o,c=kT(s,xT,n);this.noteOutcome(e,c);let l=c.kind===`ok`||s.kind===`ok`||t===void 0?c:r,u=a&&s.kind===`ok`&&c.kind!==`ok`,d=()=>{a=c.kind===`ok`,this.store.setDocument(e,l)};u?i=setTimeout(d,250):d()}}runSource(e,t,n){let r=this.reads.run(e,()=>t.read().then(n,e=>{if(e!==this.abort.signal.reason)throw e}));r.kind===`started`&&this.track(e,r.done)}track(e,t){let n=t.finally(()=>{this.inFlight.get(e)===n&&this.inFlight.delete(e)});this.inFlight.set(e,n)}async settled(e){let t=Date.now()+e;for(;this.inFlight.size>0;){let e=t-Date.now();if(e<=0)break;let n,r=await Promise.race([Promise.all(this.inFlight.values()).then(()=>`settled`),new Promise(t=>{n=setTimeout(()=>t(`deadline`),e)})]);if(clearTimeout(n),r===`deadline`)break}return[...this.inFlight.keys()]}declareTemplate(e,t,n={}){let r=this.engine.parse(t);this.declareDerived(e,()=>r.evaluate(Ow(this.store)).map(e=>e.plain).join(``),n.varDefault)}declareTime(e,t){this.declareDerived(e,()=>PT(t.format,this.now()),t.varDefault)}declareDerived(e,t,n){this.store.defineComputed(e,`string`,()=>{try{let n=t();return this.lastErrors.delete(e),n}catch(t){let r=t instanceof Error?t.message:String(t);if(this.recordError(e,r),n===void 0)throw B_(t)?new z_(e,`variable "${e}": ${r}`):Error(`variable "${e}": ${r}`);return n}})}declareGit(e,t){let n=FT[t.field],r=t.varDefault===void 0?GT(n):WT(t.varDefault,n);this.store.defineBox(e,n,r);let i=this.gitSubscriptions.get(t.cwd);if(!i){let e=new Map,n=this.gitProvider.subscribe(t.cwd,t=>{this.store.runInAction(()=>{for(let[n,r]of e)for(let{name:e,varDefault:i}of r)this.store.setBox(e,IT(t,n,i,this.defaultEmptyValue))})});i={fieldSubs:e,firstDelivery:n.firstDelivery,unsubscribe:n.unsubscribe},this.gitSubscriptions.set(t.cwd,i)}let a=i.fieldSubs.get(t.field);a||(a=[],i.fieldSubs.set(t.field,a)),a.push({name:e,varDefault:t.varDefault}),this.track(e,i.firstDelivery)}declareState(e,t){if(!this.sessionState)throw Error(`declareState("${e}"): SourceRegistry was constructed without a SessionState — state-kind variables require a SessionState (the daemon provides one; tests must supply one)`);let n=this.sessionState,r=t.varDefault??this.stringInitial(void 0);this.store.defineComputed(e,`string`,e=>{let i=e(ET);if(typeof i!=`string`||!i)return r;let a=n.get(i,t.key);return a===null?r:a})}stateRevision(){let e=this.store.has(`session.id`)?this.store.read(ET):``;return this.sessionState!==void 0&&typeof e==`string`&&e!==``?this.sessionState.revision(e):0}applyInput(e){this.store.runInAction(()=>{for(let[t,n]of this.inputMetas){let r=UT(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,WT(r,i)),this.lastErrors.delete(t)}catch(e){this.applyFallback(t,i,n.varDefault,e instanceof Error?e.message:String(e))}else this.applyFallback(t,i,n.varDefault,`input path "${n.path}" not found in payload`)}})}drawAt(e){this.store.runInAction(()=>this.drawn.set(e))}renderAt(e){this.store.runInAction(()=>this.instant.set(e))}getLastError(e){let t=this.lastErrors.get(e),n=this.policyFaults.get(e);return n===void 0?t:t===void 0?n:{timestamp:t.timestamp,message:`${n.message}; ${t.message}`}}cachePolicyFaults(){return this.policyFaults}dispose(){this.abort.abort();for(let e of this.cleanups)e();this.cleanups.length=0;for(let e of this.gitSubscriptions.values())e.unsubscribe();this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close()}registerCachePolicy(e,t,n){switch(t.kind){case`never`:break;case`ttl`:{let e=this.ttlMgr.subscribe(t.durationMs,n);this.cleanups.push(e);break}case`watch_file`:{let r=this.watchMgr.subscribe(t.path,n,t=>this.notePolicy(e,L(t)));this.cleanups.push(r);break}case`key`:{let r=this.engine.parse(t.template),i=()=>{try{return F(r.evaluate(Ow(this.store)).map(e=>e.plain).join(``))}catch(e){return B_(e)?I:L(`cache key: ${e instanceof Error?e.message:String(e)}`)}},a=i();this.notePolicy(e,a);let o=a.kind===`ok`?a.value:void 0,s=(0,N_.reaction)(i,t=>{this.notePolicy(e,t),!(t.kind!==`ok`||t.value===o)&&(o=t.value,n())});this.cleanups.push(s);break}case`depends_on`:{let e=(0,N_.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,WT(this.defaultEmptyValue,t))}catch{this.store.setBox(e,GT(t))}}defaultFor(e){try{return WT(this.defaultEmptyValue,e)}catch{return GT(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})}notePolicy(e,t){t.kind===`failed`?this.policyFaults.set(e,{timestamp:Date.now(),message:t.reason}):this.policyFaults.delete(e)}noteOutcome(e,t){t.kind===`ok`?this.lastErrors.delete(e):this.recordError(e,t.kind===`failed`?t.reason:`no value`)}};const qT={project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},[ET]:{kind:`input`,path:`session_id`,default:``},transcript_path:{kind:`input`,path:`transcript_path`,default:``},resume_command:{kind:`input`,path:`resumeCommand`,default:``},config_path:{kind:`input`,path:`configPath`,default:``},"theme.effective":{kind:`input`,path:`theme.effective`,default:``},"style.effective":{kind:`input`,path:`style.effective`,default:``},"effect.effective":{kind:`input`,path:`effect.effective`,default:``},"preset.effective":{kind:`input`,path:`preset.effective`,default:``},"preset.customized":{kind:`input`,path:`preset.customized`,type:`boolean`,default:!1},"preset.bundled":{kind:`input`,path:`preset.bundled`,type:`boolean`,default:!0},"endcaps.effective":{kind:`input`,path:`endcaps.effective`,default:``},"variation.effective":{kind:`input`,path:`variation.effective`,default:``},"shade.effective":{kind:`input`,path:`shade.effective`,default:``},"charset.effective":{kind:`input`,path:`charset.effective`,default:``},"colorCompatibility.effective":{kind:`input`,path:`colorCompatibility.effective`,default:``},"transitions.effective":{kind:`input`,path:`transitions.effective`,type:`boolean`,default:!1},"autoWrap.effective":{kind:`input`,path:`autoWrap.effective`,type:`boolean`,default:!0},"padding.effective":{kind:`input`,path:`padding.effective`,type:`number`,default:1},"updateNotice.effective":{kind:`input`,path:`updateNotice.effective`,type:`boolean`,default:!0},"term.cols":{kind:`input`,path:`term.cols`,type:`number`,default:80},"tmux.pane":{kind:`input`,path:`tmux.pane`,default:``},"autocompact.window":{kind:`input`,path:`autocompact.window`,type:`number`,default:-1},...Object.fromEntries([`applied`,`lower`,`higher`].map(e=>[`autocompact.${e}`,{kind:`input`,path:`autocompact.${e}`,type:`number`,default:0}])),"autocompact.error":{kind:`input`,path:`autocompact.error`,default:``},"git.repoUrl":{kind:`input`,path:`git.repoUrl`,default:``}},JT=`ne .tmux.pane ""`;function YT(e,t,n){let r=new Set,i=e=>{for(let t of y_(e??``,n).keys())r.add(t)};for(let t of Object.values(e.segments))i(t.template),i(t.bg),i(t.fg),i(t.when);for(let e of t)for(let t of fg(e))i(t.when),t.kind===`segment`&&(i(t.lead),i(t.trail));for(let t of Object.values(e.variables))t.kind===`template`&&i(t.template),t.kind===`state`&&r.add(ET);for(let t of Object.values(e.actions)){r.add(ET),`copy`in t&&i(t.copy),`open`in t&&i(t.open);let e=`set`in t?Ta.get(t.set):void 0,n=`persist`in t?wa.get(t.persist):void 0;e!==void 0&&r.add(e),n!==void 0&&r.add(n)}return r}function XT(e,t,n){let r=D_({...n,variables:{...n.variables,...e.variables},segments:{...n.segments,...e.segments}}),i={};for(let a of YT(e,t,n.helpers)){if(E_(a,r))continue;let e=qT[a];if(e===void 0)throw Error(`synthesized chrome reads ".${a}", which it does not declare and PAYLOAD_INPUTS does not supply`);i[a]=e}return i}function ZT(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}var QT=class extends Error{file;issues;warnings;constructor(e,t,n=[]){super(nE(e,t)),this.name=`ConfigError`,this.file=e,this.issues=t,this.warnings=n}};function J(e,t){let n=0,r;for(let i of t){if(i===``||/^\d+$/.test(i))continue;let t=$T(e,n,i);if(t===-1)return r===void 0?void 0:eE(e,r);n=t,r=t}return r===void 0?void 0:eE(e,r)}function $T(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 eE(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function tE(e,t){try{return wr(t),null}catch(n){if(!(n instanceof vr))throw n;return`${e}:${eE(t,n.offset)}: ${n.reason} — the settings menu cannot edit this file until it is fixed`}}function nE(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(`
73
+ `)}const rE=`groups.`,iE=`menus.`,aE=`edit.`,Y=`candybar.`,oE=[rE,iE,aE,Y];function sE(e){return oE.some(t=>e.startsWith(t))}function cE(e){let t=ZT(e);return oE.find(e=>t.startsWith(ZT(e)))}function lE(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:J(e.source,[`root`])})}function uE(e){return e}function dE(e,t,n){return n===void 0?iE+ZT(e)+`.`+ZT(t):fE(n)}function fE(e){return iE+ZT(e)}function pE(e,t){return e+`.`+t}function mE(e){return e+`.page`}const hE=[`closeOnPick`,`paged`,`key`,`distribution`],gE=e=>hE.includes(e),_E=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${cp.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function vE(e){for(let t of Object.keys(e))if(!gE(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${_E}`);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&&!lp(r))throw Error(`{{ menu }} option "distribution" must be one of: ${cp.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:dp(r)}}const yE=e=>`from`in e?e.from:e.themes;function bE(e,t,n){return e===`bool`?Xm(t)!==null:`min`in e?Zm(t,e)!==null:i_(yE(e),n).members.includes(t)}function xE(e,t){if(e===`bool`)return Jm.join(` or `);if(!(`min`in e)){let n=yE(e),{members:r}=i_(n,t),i=r.map(e=>JSON.stringify(e));if(r.length<=8)return`one of ${i.join(`, `)}`;let a=typeof n==`string`?` "${n}"`:``;return`one of the ${r.length}${a} names, such as ${i.slice(0,3).join(`, `)}`}return`an integer from ${e.min} to ${e.max}`}function SE(e){return{label:e.label,domain:CE(e.domain)}}function CE(e){return e===`theme`?{themes:t_}:e===`bool`||`min`in e?e:{from:e}}function wE(e,t,n,r,i){let a=tr(e.label),{domain:o}=e;if(o===`bool`)return{kind:`inline`,template:`{{ action "${r}" "☑ ${a}" "☐ ${a}" }}`,actions:{[r]:{set:t,cycle:[...Jm]}},variables:{}};if(`from`in o)return TE(t,r,i,o.from,e=>({template:`{{ "${a}" }} {{ carousel "${e.apply}" 0 "${e.open}" }}`,rows:[`{{ picker "${e.apply}" "${e.page}" false true true }}`]}));if(`themes`in o)return TE(t,r,i,o.themes,e=>({template:`{{ action "${e.open}" "${a}" .${n} }} {{ action "${e.open}" (swatch "${e.apply}") }}`,rows:[`{{ swatches "${e.apply}" "${e.page}" }}`,`{{ themePreview "${e.apply}" }}`]}));let s=e=>({set:t,min:o.min,max:o.max,by:e});return{kind:`inline`,template:`{{ action "${r}.down" "◀" }} {{ "${a}" }} {{ .${n} }} {{ action "${r}.up" "▶" }}`,actions:{[`${r}.down`]:s(-o.step),[`${r}.up`]:s(o.step)},variables:{}}}function TE(e,t,n,r,i){let a={variable:n,key:n,member:t},o=pE(n,t),s=`${t}.open`,c=mE(n),l=`${c}.current`,{template:u,rows:d}=i({apply:t,open:s,page:c});return{kind:`picker`,template:u,actions:{[t]:{set:e,from:r},[o]:lr(n,t),[c]:{set:c,int:!0},[l]:{set:c,to:`-1`},[s]:{do:[o,l]}},variables:{[n]:cr(n,Zn),[c]:{kind:`state`,key:c,default:`0`}},list:{ref:a,rows:d}}}function EE(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 ${X(i)}`,line:J(e.source,[...t.split(`.`),r])}),null)}function DE(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 ${X(i)}`,line:J(e.source,[...t.split(`.`),`default`])});return}return i}}function OE(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 ${X(i)}`,line:J(e.source,[...t.split(`.`),r])});return}return i}}function kE(e,t,n){let r=OE(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}"${om(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:J(e.source,[...t.split(`.`),`palette`])});return}return r}}function AE(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 ${Z(a)}`,line:J(e.source,[...t.split(`.`),r])});return}return a}}function jE(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function X(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function Z(e){return typeof e==`string`?JSON.stringify(e):e===void 0?`undefined`:String(e)}function ME(e,t,n,r){return jE(r)?(IE(e,n,r,t.noun,new Set(Object.keys(t.fields)),NE(e,t.removed??{},n,r)),PE(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${X(r)}`,line:J(e.source,n.split(`.`))}),null)}function NE(e,t,n,r){let i=Object.entries(t).filter(([e])=>r[e]!==void 0);for(let[t,r]of i)LE(e,`${n}.${t}`,`${n}.${t} was removed: ${r}`);return new Set(i.map(([e])=>`${n}.${e}`))}function PE(e,t,n,r){let i=t,a={},o=!0;for(let[t,s]of Object.entries(i)){let i=s.parse(e,n,t,r);i===void 0?s.required&&(o=!1):a[t]=i}return o?a:null}const FE=new Set;function IE(e,t,n,r,i,a=FE){for(let o of Object.keys(n))!i.has(o)&&!a.has(`${t}.${o}`)&&e.issues.push({path:`${t}.${o}`,message:`Unknown ${r} "${o}". Expected one of: ${[...i].join(`, `)}`,line:J(e.source,[...t.split(`.`),o])})}function LE(e,t,n){return e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))}),null}function RE(e,t,n,r){if(!jE(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${X(r)}`,line:J(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:J(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:J(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:J(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function zE(e,t,n,r){if(!jE(r))return e.issues.push({path:n,message:`${n} must be an object, got ${X(r)}`,line:J(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 ${X(i)}`,line:J(e.source,n.split(`.`))}),null;let a=t.arms;if(!(i in a))return e.issues.push({path:`${n}.${t.tag}`,message:`Unknown ${t.noun} "${i}". Expected one of: ${Object.keys(a).join(`, `)}`,line:J(e.source,[...n.split(`.`),t.tag])}),null;let o=a[i],s=e.issues.length,c=o.parse(e,n,r),l=new Set(e.issues.slice(s).map(e=>e.path));return IE(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function BE(e,t,n){return{json:eD(QE(n),e,t),keys:new Set([e,...Object.keys(n)])}}function VE(e){return(...t)=>e()(...t)}function HE(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:J(n.source,o.split(`.`))}),null}return a}}function UE(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>OE(e,t,r,n)}}function WE(){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 ${X(i)}`,line:J(e.source,[n])});return}return i}}}}function GE(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 ${Z(o)}`,line:J(e.source,[i])});return}return o}}}}function KE(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 ${Z(a)}`,line:J(e.source,[r])});return}return a}}}}function qE(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>kE(e,t,r)}}function JE(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>EE(e,t,r,n)??void 0}}function YE(e,t){return f(t)?null:`${e} must be an absolute path (\`~\` and relative paths are not expanded), got ${JSON.stringify(t)}`}function XE(){return{required:!0,json:{type:`string`,pattern:`^/`},parse:(e,t,n,r)=>{let i=EE(e,t,r,n);if(i===null)return;let a=YE(`${t}.${n}`,i);return a===null?i:LE(e,`${t}.${n}`,a)??void 0}}}function ZE(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>AE(t,n,i,r,e)}}function QE(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 $E(e){return QE(e.fields)}function eD(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function tD(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function nD(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const rD={required:!1,json:{enum:[...Rm]},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: ${Rm.join(`, `)}`,line:J(e.source,[...t.split(`.`),n])});return}return AE(e,t,r,n,Rm)}},iD={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=OE(e,t,r,n);return hm(i)?i:kE(e,t,r)}},aD={required:!1,json:{anyOf:[{enum:[...Tm]},{type:`string`,pattern:`\\{\\{`}]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&hm(i)?i:AE(e,t,r,n,Tm)}},oD=/^[^\r\n]*\S[^\r\n]*$/u,sD=RegExp(`^(?:✖|✕)[\\uFE0E\\uFE0F]?$`,`u`),cD={required:!1,json:{type:`string`,pattern:oD.source,not:{pattern:sD.source}},parse:(e,t,n,r)=>{let i=OE(e,t,r,n);if(i===void 0||oD.test(i)&&!sD.test(i))return i;e.issues.push({path:`${t}.${n}`,message:`${t}.${n}: must be one line of visible text other than a close glyph ("✖", "✕") — the settings menu needs a glyph to click`,line:J(e.source,[...t.split(`.`),n])})}};function lD(e){return{spec:ZE(e),domain:{from:e}}}function uD(){return{spec:WE(),domain:`bool`}}function dD(e){return{spec:e,domain:`text`}}const fD={default_empty_value:dD(UE()),default_separator:dD(UE()),palette:{spec:iD,domain:{themes:`themes`}},style:{spec:UE(),domain:{from:`styles`}},effect:{spec:aD,domain:{from:Tm}},preset:{spec:UE(),domain:{from:`presets`}},endcaps:lD(Am),variation:lD(Bm),shade:lD(Um),autoWrap:uD(),padding:{spec:GE(Ym),domain:{...Ym,step:1}},charset:lD(Fm),updateNotice:uD(),transitions:uD(),colorCompatibility:{spec:rD,domain:{from:Rm}},menuGlyph:dD(cD)},pD=Object.fromEntries(Object.entries(fD).map(([e,t])=>[e,t.spec]));function mD(e){return fD[e].domain}function hD(e){let t=mD(e);if(t===`text`)throw Error(`globals.${e} is free text, which no control can change — list it in UNCONTROLLED_GLOBALS instead of SETTINGS`);return t}function gD(e,t){return{required:!1,json:{not:{},description:`not allowed here — ${e}`},parse:(e,n,r,i)=>{i[r]!==void 0&&e.issues.push({path:`${n}.${r}`,message:t(`${n}.${r}`),line:J(e.source,[...n.split(`.`),r])})}}}function _D(e){return gD(`${e} cannot select a preset`,t=>`${t}: ${e} cannot select a preset. Which preset is active is resolved once, as session pick over globals.preset over "default"; a fragment naming another would be a second authority over that. Set the default arrangement in the top-level globals.preset instead.`)}function vD(e){return gD(`${e} cannot change the settings menu glyph`,t=>`${t}: ${e} cannot change the settings menu glyph — one menu is shared by every preset. Set it in the top-level globals.menuGlyph instead.`)}function yD(e,t,n){return{...e,json:{...e.json,not:{pattern:`\\{\\{`}},parse:(r,i,a,o)=>{let s=o[a];if(typeof s==`string`&&hm(s)){r.issues.push({path:`${i}.${a}`,message:`${i}.${a}: a rule is not allowed here — ${t} ${n}, so it names a value. Write the rule in globals.${a} (or a preset's globals.${a}) instead.`,line:J(r.source,[...i.split(`.`),a])});return}return e.parse(r,i,a,o)}}}const bD={default_bg:"nothing reads it — a segment with no `bg:` wears the decoration tint of its place in the bar. Delete the key, and author `bg:` on the segments that need a fixed colour.",default_fg:"nothing reads it — a segment with no `fg:` wears text chosen for contrast against its background. Delete the key, and author `fg:` on the segments that need a fixed colour.",default_truncate_marker:'nothing reads it — a segment clipped to its `width:` always ends in "…". Delete the key.',look:`it was renamed "style" — write the same name as style: "<name>"`,progression:`it was renamed "variation", and its values with it: accent (was secondary-accent), duo (was primary-secondary), mono (was primary)`},xD={noun:`globals key`,fields:pD,removed:bD},SD={preset:_D(`a preset`),menuGlyph:vD(`a preset`)},CD={noun:`preset globals key`,fields:{...pD,...SD},removed:bD};function wD(e){return PD(e)&&!(e in SD)}const TD=`is decided later than any rule could be settled`,ED={noun:`editGlobals key`,removed:bD,fields:{...pD,preset:_D(`the editGlobals fragment`),menuGlyph:vD(`the editGlobals fragment`),palette:yD(pD.palette,`the editGlobals fragment`,TD),style:yD(pD.style,`the editGlobals fragment`,TD),effect:yD(pD.effect,`the editGlobals fragment`,TD)}},DD={noun:`theme default key`,fields:{...Object.fromEntries(_g.map(e=>[e,pD[e]])),style:yD(pD.style,`a theme's default`,`is the look that theme wears by name`)}};function OD(e,t){if(!jE(t))return e.issues.push({path:`themeDefaults`,message:`themeDefaults must be an object mapping theme names to { shade, variation, style }, got ${X(t)}`,line:J(e.source,[`themeDefaults`])}),{};let n={};for(let[r,i]of Object.entries(t)){let t=`themeDefaults.${r}`;if(!e.allowedPalettes.has(r)){e.issues.push({path:t,message:`${t}: "${r}" is not an installed theme${om(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:J(e.source,[`themeDefaults`,r])});continue}let a=ME(e,DD,t,i);a!==null&&(n[r]=a)}return n}function kD(e,t,n){return n===void 0?{}:ME(e,xD,t,n)??{}}function AD(e,t,n){return ME(e,CD,t,n)??{}}function jD(){return $E(CD)}function MD(e,t,n){return ME(e,ED,t,n)??{}}const ND=new Set(Object.keys(pD));function PD(e){return ND.has(e)}function FD(){return[...ND]}const ID={padding:1};function LD(e){let t=new Map;for(let[n,r]of Object.entries(ID)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}const RD=/^segments\.([^.]+)\.palette$/,zD=/^presets\.(.+)\.root$/,BD=/^presets\.(.+)\.globals\.([^.]+)$/,VD=/^themeDefaults\.(.+)\.([^.]+)$/;function HD(e){return`presets.${e}.root`}function UD(e,t){return`themeDefaults.${e}.${t}`}const WD=e=>_g.includes(e);function GD(e,t){return`presets.${e}.globals.${t}`}function KD(e){if(PD(e))return{scope:`globals`,field:e};let t=RD.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=BD.exec(e);if(n&&wD(n[2]))return{scope:`preset-globals`,preset:n[1],field:n[2]};let r=VD.exec(e);if(r&&WD(r[2]))return{scope:`theme-default`,theme:r[1],field:r[2]};let i=zD.exec(e);return i?{scope:`preset-root`,preset:i[1]}:null}function qD(e){switch(e.scope){case`globals`:return[`globals`,e.field];case`preset-globals`:return[`presets`,e.preset,`globals`,e.field];case`segment-palette`:return[`segments`,e.segment,`palette`];case`theme-default`:return[`themeDefaults`,e.theme,e.field]}}const JD=[`location`,`git`,`model-context`,`cost-limits`,`activity`,`session-tools`],YD=[...JD,`other`],XD={location:`location`,git:`git`,"model-context":`model & context`,"cost-limits":`cost & limits`,activity:`activity`,"session-tools":`session tools`,other:`other`},ZD=Ny({fromString:e=>e}),QD=`edit.mode`,$D=`edit.configure`,eO=`edit.toggle`,tO=`edit.unconfigure`,nO=[eO,tO],rO=`arrange`,iO=`${aE}draft.`;function aO(e,t){return`${e}:${t}`}const oO={variable:QD,key:QD,member:rO},sO=rr(oO);function cO(e){try{return ZD.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function lO(e){if(Object.values(e.actions??{}).some(e=>`do`in e&&e.do.includes(`edit.toggle`)))return!0;for(let t of Object.values(e.segments??{}))for(let e of[t.template,t.bg,t.fg])if(typeof e==`string`&&cO(e))return!0;return!1}function uO(e,t){if(lE(e,t,aE,`edit mode`),!lO(t))return;let{variables:n,actions:r}=dO();t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function dO(){return{variables:{[QD]:cr(QD,Zn),[$D]:cr($D,Zn)},actions:{[eO]:lr(QD,rO),[tO]:{set:$D,to:Zn}}}}const fO=`open`;function pO(e,t,n,r){let i={variable:e,key:e,member:fO};return r.variables[e]=cr(e,Zn),r.actions[e]=lr(e,fO),r.segments[e]={template:ar(e,`(?)`,`✕`),...mO(n)},nr(e,i,{kind:`container`,direction:`horizontal`,children:t.map((t,n)=>{let i=`${e}.${n}`;return r.segments[i]={template:t},{kind:`segment`,name:i}})},`drop`)}function mO(e){let[t,...n]=e;return t===void 0?{}:{when:rr(t,...n)}}const hO=`none`;function gO(e){return Qs(e,`background`)}var _O=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function vO(e,t,n,r,i){let{palette:a,tint:o,text:s}=e,c=yO(n,i),l=c!==hO,u=l?c===void 0?o:bO(a,c,`bg`):gO(a);e.bg=u;let d=yO(r,i),f=d===void 0?l?(e=>e.hex===o.hex?s:Np(a,e,t))(u):void 0:bO(a,d,`fg`);return new H({...l&&{bgcolor:V.fromRgba(u)},...f!==void 0&&{color:V.fromRgba(f)}})}function yO(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function bO(e,t,n){try{return Qs(e,t)}catch(e){throw e instanceof Zs?new _O(t,n,e.message):e}}const xO=`🔧`,SO={help:[`-h`,`--help`],version:[`-V`,`--version`]},CO=[`✚ inserts`,`✖ removes`,`${xO} configures`,`↺ resets layout`],wO=`
74
74
  cc-candybar - Beautiful powerline statusline for Claude Code
75
75
 
76
76
  Usage: cc-candybar [options]
77
77
 
78
78
  Standalone Commands:
79
- ${kD.help.join(`, `).padEnd(25)}Show this help
80
- ${kD.version.join(`, `).padEnd(25)}Print the version of this runtime (cc-candybar <version>)
79
+ ${SO.help.join(`, `).padEnd(25)}Show this help
80
+ ${SO.version.join(`, `).padEnd(25)}Print the version of this runtime (cc-candybar <version>)
81
81
 
82
82
  Debugging:
83
83
  CC_CANDYBAR_DEBUG=1 Enable debug logging for troubleshooting
@@ -100,7 +100,7 @@ Configuration:
100
100
  failed row's [fix] to repair it (the same checks \`cc-candybar doctor\` runs).
101
101
 
102
102
  Anywhere the bar shows (?), clicking it reveals these same instructions
103
- in place. In edit mode: ${AD.join(`, `)}.
103
+ in place. In edit mode: ${CO.join(`, `)}.
104
104
 
105
105
  Subcommands:
106
106
  install One-shot setup: stages the runtime (native render
@@ -113,6 +113,12 @@ Subcommands:
113
113
  url-handle URL Internal — invoked by the URL handler app on
114
114
  cmd-click. Parses cc-candybar://<verb>/<value> and
115
115
  dispatches (currently: copy to clipboard).
116
+ plugin install SOURCE Install a repository's plugins into
117
+ $XDG_DATA_HOME/cc-candybar/plugins: SOURCE is a
118
+ local path, a GitHub slug (owner/repo) or a git URL,
119
+ and its plugins are the folders under
120
+ .cc-candybar/plugins/. A definition the bar would
121
+ drop installs nothing. Re-run to update.
116
122
  daemon-stats [--json] Query the running daemon for runtime stats:
117
123
  uptime, RSS, cache hit rates, watcher count,
118
124
  request totals. Does not spawn a daemon.
@@ -141,15 +147,15 @@ Config tooling:
141
147
  config [--json] The effective merged config. (All three query the
142
148
  running daemon; none spawn one.)
143
149
 
144
- `,MD=`readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3`,ND={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function PD(e){let t=e[ND.socket]??``,n=e[ND.pane]??``;if(t===``||n===``)return null;let r=e[ND.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}const FD={kitty:`0.36.0`,wezterm:`20220319`,ghostty:null},ID=[{since:`3.5.0`,from:57504,to:57507},{since:`3.5.0`,from:57520,to:57554},{since:`3.5.0`,from:57556,to:57556},{since:`3.5.6`,from:57558,to:57559}];function LD(e,t){let n=t.codePointAt(0);return ID.some(({since:t,from:r,to:i})=>r<=n&&n<=i&&e!==null&&UD(e,t)===!0)}const RD={kitty:`kitty`,wezterm:`WezTerm`,ghostty:`Ghostty`,iterm2:`iTerm2`,alacritty:`Alacritty`};function zD(e){return Object.hasOwn(FD,e)}const BD={kitty:{xtversion:`kitty`,program:null,term:`xterm-kitty`},wezterm:{xtversion:`WezTerm`,program:`WezTerm`,term:`wezterm`},ghostty:{xtversion:`ghostty`,program:`ghostty`,term:`xterm-ghostty`},iterm2:{xtversion:`iTerm2`,program:`iTerm.app`,term:null},alacritty:{xtversion:`alacritty`,program:null,term:`alacritty`}},VD=Object.keys(BD);function HD(e){let t=/^\d+(?:\.\d+)*/.exec(e);return t===null?null:t[0].split(`.`).map(Number)}function UD(e,t){let n=HD(e),r=HD(t);if(n===null)return null;for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e]??0,i=r[e]??0;if(t!==i)return t>i}return!0}function WD(e){for(let t of VD){let n=BD[t].xtversion;if(e.toLowerCase().startsWith(n.toLowerCase())){let r=e.slice(n.length).replace(/^[\s(]+/,``);return{name:t,version:/^[^\s)]+/.exec(r)?.[0]??null}}}return null}function GD(e){let t=VD.find(t=>BD[t].term===e);return t===void 0?null:{name:t,version:null}}function KD(e){let t=WD(e.termtype)??GD(e.termname);return t===null?{kind:`unknown`,called:e.termtype||e.termname}:{kind:`known`,terminal:t}}function qD(e){let t=e.TERM_PROGRAM,n=VD.find(e=>BD[e].program===t),r=n===void 0?GD(e.TERM):{name:n,version:e.TERM_PROGRAM_VERSION??null};return r===null?{kind:`unknown`,called:t??e.TERM??``}:{kind:`known`,terminal:r}}const JD=[`drawn`,`boxes`];function YD(e){let[t,...n]=e;return t===void 0?{ok:!0}:{ok:!1,reason:t,more:n}}const XD=ND.truecolor,ZD={name:`tmuxTruecolor`,label:`tmux truecolor`,takesMark:!1,probe:({tmux:e,claudeSettings: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.client.kind===`failed`)return{ok:!1,reason:`tmux could not be asked: ${e.client.reason}`};if(e.client.value===null||!e.client.value.features.includes(`RGB`)||e.hint.truecolor!==null)return{ok:!0};let n=t.env[XD];return typeof n==`string`&&n!==``?{ok:!1,reason:`${XD} is set in ${t.path} — restart Claude Code to apply`}:{ok:!1,reason:`Claude Code renders the bar in 256 colours inside tmux`,fix:{kind:`claude-settings`,path:[`env`,XD],value:`1`}}}}}},QD={variable:`is never read`,action:`is never clicked`,helper:`is never called`,segment:`is in no preset`},$D={name:`config`,label:`config`,takesMark:!1,probe:({config:e})=>{switch(e.kind){case`failed`:{let[t=`the config failed to load`,...n]=[...e.error.split(`
145
- `).map(e=>e.trim()).filter(e=>e!==``),...e.warnings];return{ok:!1,reason:t,more:n}}case`loaded`:return YD([...e.warnings,...e.unused.map(({kind:e,name:t})=>`${e} "${t}" ${QD[e]}`)])}}},eO="re-run `cc-candybar install`";function tO(e){if(e.kind===`failed`)return[`Launch Services could not be asked which app opens cc-candybar:// — ${e.reason}`];if(e.value===null)return[`no app is registered for cc-candybar:// — ${eO}`];let{app:t,missing:n}=e.value;return n.kind===`failed`?[`${t} opens cc-candybar://, but ${n.reason} — ${eO}`]:n.value.map(e=>`${e} is missing, and ${t} runs it — ${eO}`)}const nO={name:`urlHandler`,label:`URL handler`,takesMark:!1,probe:({urlHandler:e})=>{switch(e.kind){case`unsupported`:return{ok:!0};case`unprobed`:return{ok:!1,reason:e.reason};case`arrived`:return e.handler===e.bar?{ok:!0}:{ok:!1,reason:e.handler===null?`the URL handler does not report its version, so it is older than the bar (${e.bar}) — ${eO}`:`the URL handler runs cc-candybar ${e.handler}; the bar runs ${e.bar} — ${eO}`};case`lost`:return YD([...tO(e.opener),e.unopened===null?`a cc-candybar:// link was opened and did not arrive at the daemon`:`a cc-candybar:// link could not be opened — ${e.unopened}`])}}},rO={name:`effectRefresh`,label:`effect refresh`,takesMark:!1,probe:({effect:e,placementEffects:t,transitions:n,claudeSettings:r})=>{let i=[...e.kind===`decided`?e.value===`none`?[]:[`the bar wears the ${e.name} effect`]:[`a globals.effect rule can give the bar an effect`],...t.map(({placement:e,effect:t})=>`${e} wears the ${t} effect`),...n?[`placements fade in and dissolve out as they come and go`]:[]];if(i.length===0)return{ok:!0};let a=i.join(` and `),{path:o,statusLine:s}=r;switch(s.kind){case`absent`:return{ok:!1,reason:`${a}, and ${o} sets no statusLine — set "refreshInterval": 1 beside the statusLine command that runs the bar`};case`not-an-object`:return{ok:!1,reason:`${a}, and ${o} sets statusLine to ${JSON.stringify(s.value)}, not a statusLine object — re-run \`cc-candybar install\` to write one`};case`present`:break}let c=s.refreshInterval;return c===1?{ok:!0}:{ok:!1,reason:c===void 0?`${a}, but Claude Code redraws it only on events`:typeof c==`number`&&c>1?`${a}, but Claude Code redraws it only every ${c} s`:`${a}, but statusLine.refreshInterval is ${JSON.stringify(c)}, not a number of seconds Claude Code accepts (its minimum is 1)`,fix:{kind:`claude-settings`,path:[`statusLine`,`refreshInterval`],value:1}}}},iO=e=>[...e].map(e=>`U+${e.codePointAt(0).toString(16).toUpperCase()}`).join(` `);function aO(e){switch(e.kind){case`unreported`:case`unasked`:return`this terminal`;case`unknown`:return e.called===``?`this terminal`:e.called;case`bundling`:case`configured`:return[RD[e.name],e.version].filter(e=>e!==null).join(` `)}}function oO(e){switch(e.kind){case`unreported`:case`unasked`:return null;case`unknown`:return e.called===``?null:e.called;case`bundling`:return RD[e.name];case`configured`:{let t=RD[e.name];return e.font.kind===`ok`?`${t} with ${e.font.value.font} (${e.font.value.from})`:`${t}, its font unread: ${e.font.reason}`}}}function sO(e){let t=oO(e.terminal);return t===null?void 0:{glyphs:e.glyphs,id:`${t}|${iO(e.glyphs)}`}}const cO=`or set globals.charset to "ascii" to draw the bar without them`,lO=[$D,nO,ZD,rO,{name:`nerdFont`,label:`Nerd Font`,takesMark:!0,probe:({nerdFont:e,marks:t})=>{if(e.kind===`none`)return{ok:!0};if(t.kind===`failed`)return{ok:!1,reason:`the mark book could not be read: ${t.reason}`};let n=sO(e),r=e=>({ok:!1,reason:e,...n!==void 0&&{sighting:n}}),i=e.terminal,a=aO(i);switch(n===void 0?null:t.value.nerdFont?.[n.id]??null){case`drawn`:return{ok:!0};case`boxes`:return r(`${a} draws ${iO(e.glyphs)} as boxes — set a Nerd Font as its font, ${cO}`);case null:break}switch(i.kind){case`unreported`:return r("the client reported no terminal — re-run `cc-candybar install` to stage a current client");case`unasked`:return r(`tmux could not be asked which terminal is attached: ${i.reason}`);case`unknown`:return r(`the doctor cannot read ${a}'s font`);case`bundling`:{let e=FD[i.name];if(e===null)return{ok:!0};let t=i.version===null?null:UD(i.version,e);if(t===!0)return{ok:!0};let n=RD[i.name];return r(t===null?`${n} ships Nerd Font symbols since ${e}, and did not say which release this is`:`${a} ships no Nerd Font symbols (they came in ${e}) — update ${n}, or set a Nerd Font as its font, ${cO}`)}case`configured`:{if(i.font.kind===`failed`)return r(`the doctor cannot read ${a}'s font: ${i.font.reason}`);let{font:e,from:t,lacks:n}=i.font.value;return n===null?r(`${a} is set to ${e} (${t}), which is not installed — install it or set a Nerd Font, ${cO}`):n.length===0?{ok:!0}:r(`${a} draws with ${e} (${t}), which has no ${iO(n)} — set a Nerd Font as its font, ${cO}`)}}}}],uO=lO.filter(e=>e.takesMark);function dO(e){return lO.map(t=>({check:t,verdict:t.probe(e)}))}function fO(e){return lO.find(t=>t.name===e)}const pO=`${Y}doctor.`;function mO(e){let t=`${pO}${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`,sighting:`${t}sighting`}}function hO(e,t){if(e.kind===`none`)return`glyphs=- terminal=- font=- mark=-`;let{glyphs:n,terminal:r}=e,i=[...n].map(e=>e.codePointAt(0).toString(16)),a=(()=>{switch(r.kind){case`unreported`:case`unasked`:return r.kind;case`unknown`:return`unknown:${JSON.stringify(r.called)}`;case`bundling`:case`configured`:return`${r.name}@${r.version??`-`}`}})(),o=(()=>{if(r.kind!==`configured`)return`-`;if(r.font.kind===`failed`)return`failed`;let{font:e,lacks:t}=r.font.value;return`${JSON.stringify(e)}:${t===null?`not-installed`:`lacks${t.length}`}`})(),s=sO(e),c=t.kind===`failed`?`unread`:s===void 0?`-`:t.value.nerdFont?.[s.id]??`-`;return`glyphs=${i.join(`,`)} terminal=${a} font=${o} mark=${c}`}function gO(e,t=[]){return t.length===0?e:`${e} (+${t.length} more — run \`cc-candybar doctor\`)`}function _O(e){return e.flatMap(({check:e,verdict:t})=>{let n=mO(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:em},{key:n.sighting,value:``}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:gO(t.reason,t.more)},{key:n.fixable,value:t.fix===void 0?em:$p},{key:n.sighting,value:t.sighting?.glyphs??``}]})}const vO={copySession:{copy:`{{ .session.id }}`},copyResume:{copy:`{{ .resume_command }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},openConfig:{open:`{{ .config_path }}`}};function yO(e){let t=t=>`${e}${t}`;return{template:`{{ action "${t(`copySession`)}" "⎘ id" }}{{ if ne .resume_command "" }} {{ action "${t(`copyResume`)}" "⎘ resume" }}{{ end }} {{ action "${t(`openProject`)}" "↗ proj" }} {{ action "${t(`openTranscript`)}" "↗ log" }}{{ if ne .git.repoUrl "" }} {{ link .git.repoUrl "↗ repo" }}{{ end }}{{ if ne .config_path "" }} {{ action "${t(`openConfig`)}" "↗ config" }}{{ end }}`,actions:Object.fromEntries(Object.entries(vO).map(([t,n])=>[`${e}${t}`,n]))}}const bO=`armed`,xO=`disarmed`,SO=`.armed`,CO=e=>e.endsWith(SO);function wO(e,t,n){let r=`${e}${SO}`,i=`${e}.arm`,a=`${e}.disarm`,o=`(eq .${e} "${bO}")`;return{template:`{{ if ${o} }}{{ action "${e}" "${t.confirm}" }} {{ action "${a}" "✕" }}{{ else }}{{ action "${i}" "${t.arm}" }}{{ end }}`,actions:{[i]:{set:r,to:bO},[a]:{set:r,to:xO},[e]:{do:[a,...n]}},armed:o,variables:{[e]:{kind:`state`,key:r,default:xO}},disarm:a}}const TO=RegExp(`^/[^\\s\\x00-\\x1f\\x7f-\\x9f/][^\\x00-\\x1f\\x7f-\\x9f]*$`);function EO(e){return typeof e==`string`&&TO.test(e)?{kind:`line`,line:e}:{kind:`refused`,reason:`a slash command is "/" then its name, e.g. "/compact" or "/model opus", on one line with no control characters, got ${JSON.stringify(e)}`}}function DO(e){let t=EO(e);if(t.kind===`refused`)throw Error(t.reason);return t.line}const OO=[`/compact`,`/model`],kO=`/clear`;function AO(e){let t=t=>`${e}${t.slice(1)}`,n=`${e}clear.slash`,r=wO(`${e}clear`,{arm:kO,confirm:`${kO} ✓ confirm`},[n]);return{template:OO.map(e=>`{{ action "${t(e)}" "${e}" }} `).join(``)+r.template,when:`{{ ${tT} }}`,actions:{...Object.fromEntries(OO.map(e=>[t(e),{slash:DO(e)}])),...r.actions,[n]:{slash:DO(kO)}},variables:r.variables,disarm:r.disarm}}const jO=Array.from({length:10},(e,t)=>(t+1)*1e5),MO=jO[0],NO=jO[jO.length-1];function PO(e){let t;try{t=pi(e)}catch(e){return L(e instanceof Error?e.message:String(e))}let n=t.autoCompactWindow;return n===void 0?F(`auto`):typeof n==`number`&&Number.isInteger(n)&&n>=MO&&n<=NO?F(n):L(`${e}: autoCompactWindow is ${JSON.stringify(n)}, not a window /autocompact accepts (${MO}–${NO} tokens)`)}function FO(e,t){let n=Math.min(t??NO,NO),r=e===`auto`?n:Math.min(e,n);return{window:e===`auto`?0:e,applied:e===`auto`?0:r,lower:jO.filter(e=>e<r).at(-1)??0,higher:jO.find(e=>e>r&&e<=n)??0}}function IO(e,t){return{template:`{{ if ne .autocompact.error "" }}⇲ ⚠ {{ .autocompact.error }}{{ else }}⇲ {{ if eq .autocompact.window 0 }}auto{{ else }}${t(`.autocompact.applied`)}{{ end }}{{ if ${tT} }}{{ if gt .autocompact.lower 0 }} {{ action (printf "${e}%d" .autocompact.lower) "−" }}{{ end }}{{ if gt .autocompact.higher 0 }} {{ action (printf "${e}%d" .autocompact.higher) "+" }}{{ end }}{{ if gt .autocompact.window 0 }} {{ action "${e}auto" "↺" }}{{ end }}{{ end }}{{ end }}`,bg:`{{ if ne .autocompact.error "" }}{{ color "error" }}{{ else }}{{ tint }}{{ end }}`,when:`{{ or (ge .autocompact.window 0) (ne .autocompact.error "") }}`,actions:{[`${e}auto`]:{slash:DO(`/autocompact auto`)},...Object.fromEntries(jO.map(t=>[`${e}${t}`,{slash:DO(`/autocompact ${t}`)}]))}}}const LO=e=>`{{ if ge ${e} 1000000 }}{{ printf "%.1f" (divf ${e} 1000000) }}M{{ else if ge ${e} 1000 }}{{ printf "%.1f" (divf ${e} 1000) }}K{{ else }}{{ ${e} }}{{ end }}`,RO=`${Y}menu`,zO=`open`,BO=`${Y}edit`,VO=`${Y}toolbar`,HO=yO(Y),UO=`${Y}commands`,WO=AO(`${UO}.`),GO=`${Y}autocompact`,KO=IO(`${GO}.`,LO),qO=e=>({kind:`segment`,name:e}),JO=`${Y}tab`,YO=[{member:`session`,label:`⚡ session`},{member:`look`,label:`🎨 look`},{member:`layout`,label:`📐 layout`},{member:`config`,label:`⚙ config`},{member:`tools`,label:`🧰 tools`}],XO=e=>`${JO}.${e}`,ZO=e=>`${XO(e)}.toggle`,QO=e=>({variable:JO,key:JO,member:e}),$O=`${Y}save`,ek=`${Y}preset.save`,tk=`${Y}preset.delete`,nk=e=>`${Y}${e}`,rk=e=>`${Y}apply.${e}`,ik=e=>`${Y}reset.${e}`,ak=`${Y}themeDefault.save`,ok=`${Y}themeDefault.differs`,sk=`${Y}themeDefault.theme`,ck={when:`{{ .${ok} }}`,template:`{{ action "${ak}" (printf "⤓ default for %s" .${sk}) }} {{ swatch "${rk(`theme`)}" .${sk} }}`},lk=`${Y}resetAll`,uk=`${RO}.toggle`,dk={variable:RO,key:RO,member:zO},fk=`${Y}undo`,pk=`${Y}back`,mk=`${pk}.step`,hk=`${Y}navigation.back`,gk=pk,_k={template:`{{ if gt .${hk} 0 }}{{ action "${pk}" "◁" }}{{ else }}{{ fg (${MD}) "◁" }}{{ end }}`},vk=`${Y}redo`,yk=`${Y}doctor`,bk=`${yk}.run`,xk=e=>`${yk}.fix.${e}`,Sk=(e,t)=>`${yk}.mark.${e}.${t}`,Ck=e=>`${yk}.${e}`,wk={drawn:`[✓ shapes]`,boxes:`[✗ boxes]`},Tk=yT(`${Y}pickers`),Ek=`${Y}gear`,Dk=`gear`,Ok=`${Ek}.toggle`,kk={variable:Tk,key:Tk,member:Dk},Ak=yT(`${Y}gearPickers`),jk=[{template:`{{ themePreview }}`}],Mk={template:`{{ layoutPreview }}`},Nk={preset:[Mk,{when:`{{ not .preset.bundled }}`,template:`{{ action "${tk}" (printf "🚮 delete %s" .${ba.preset.effectiveVar}) }}`}],style:jk,variation:[Mk],shade:[Mk]},Pk=(e,t)=>`${Y}list.${e}.${t}`,Fk=e=>`${Y}resettable.${e}`,Ik=e=>e.length===0?`false`:`(or ${e.map(e=>`.${Fk(e)}`).join(` `)})`,Lk={preset:`door`,theme:`look`,style:`gear`,effect:`look`,variation:`gear`,shade:`gear`,endcaps:`look`,transitions:`look`,autoWrap:`layout`,padding:`layout`,updateNotice:`config`},Rk=e=>e===`gear`?Lk.theme:e,zk=Object.keys(ba).map(e=>{let t=ba[e],n=SE(t.configKey),r=jT({label:t.label,domain:n},t.sessionKey,t.effectiveVar,rk(e),Lk[e]===`gear`?Ak:Tk);return{...t,name:e,control:r,beneath:Nk[e]??[]}}),Bk=e=>zk.filter(t=>Lk[t.name]===e),Vk=e=>zk.filter(t=>Rk(Lk[t.name])===e),Hk={theme:[nr(Ek,kk,{kind:`container`,direction:`horizontal`,children:Bk(`gear`).map(tA)},`drop`)]},Uk=e=>Bk(e).flatMap(e=>[tA(e),...Hk[e.name]??[]]);new Set(zk.flatMap(e=>[e.sessionKey,e.configKey]));const Wk=wO(lk,{arm:`⟲`,confirm:`⟲ reset all?`},zk.map(e=>ik(e.name))),Gk=[`unsaved`,`history.undo`,`history.redo`],Kk=e=>`${Y}${e}`,qk=Kk(`unsaved`),Jk=(e,t)=>({body:t,shown:`(gt .${Kk(e)} 0)`}),Yk=[Jk(`unsaved`,`{{ action "${$O}" (printf "💾 save %d" .${qk}) }}`),Jk(`history.undo`,`{{ action "${fk}" "↶" }}`),Jk(`history.redo`,`{{ action "${vk}" "↷" }}`),{body:Wk.template,shown:`(or ${Ik(zk.map(e=>e.name))} ${Wk.armed})`}],Xk={when:`{{ or ${Yk.map(e=>e.shown).join(` `)} }}`,template:`{{ $sep := "" }}`+Yk.map(e=>`{{ if ${e.shown} }}{{ $sep }}${e.body}{{ $sep = " " }}{{ end }}`).join(``)},Zk=[{step:Wk,place:`door`},{step:WO,place:`session`}],Qk=e=>e.map(e=>e.step.disarm),$k=Qk(Zk),eA=Qk(Zk.filter(e=>e.place!==`door`));function tA(e){let t=nk(e.name);return e.control.kind===`inline`?qO(t):nr(t,e.control.list.ref,{kind:`container`,direction:`vertical`,children:[...e.control.list.rows,...e.beneath].map((t,n)=>qO(Pk(e.name,n)))},`drop`)}function nA(e){return e===RO}function rA(e){let t=qO(RO);if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[rA(n),...r]}:{kind:`container`,direction:`vertical`,children:[t,e]}}return e.kind===`container`&&e.when===void 0?{...e,children:[t,...e.children]}:{kind:`container`,direction:`horizontal`,children:[t,e]}}function iA(e){return aA(e)>0?e:rA(e)}function aA(e){let t=0;for(let n of bh(e))n.kind===`segment`&&nA(n.name)&&(t+=1);return t}function oA(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&nA(e.name)||e.opens!==void 0&&oA(e.opens.body,!0):e.children.some(e=>oA(e,n))}const sA={session:{direction:`vertical`,content:[qO(VO),{kind:`container`,direction:`horizontal`,children:[qO(UO),qO(GO)]}],after:[]},look:{direction:`horizontal`,content:[],after:[qO(ak)]},layout:{direction:`horizontal`,content:[qO(ek),qO(BO)],after:[]},config:{direction:`horizontal`,content:[],after:[]},tools:{direction:`vertical`,content:[qO(yk),...lO.map(e=>qO(Ck(e.name)))],after:[]}},cA=e=>({kind:`container`,direction:sA[e].direction,children:[...sA[e].content,...Uk(e),...sA[e].after]});function lA(e){return e.kind===`segment`?nA(e.name)?nr(e.name,dk,dA,`above`):e:pA(e)}function uA(){return{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[qO(gk),...Uk(`door`),qO($O)]},{kind:`container`,direction:`horizontal`,children:YO.map(({member:e})=>nr(XO(e),QO(e),cA(e),`drop`))}]}}const dA=uA();function fA(e){let t=new Map;for(let e of bh(dA))e.kind===`segment`&&e.opens!==void 0&&t.set(e.opens.ref.key,e.opens.ref.variable);return[...t].map(([t,n])=>{let r=e.variables[n];if(r?.kind!==`state`||r.default===void 0)throw Error(`settings menu: the door folds "${t}", but "${n}" is not a state variable the menu declares with a default`);let i=`${RO}.fold.${iT(t)}`;return e.actions[i]={set:t,to:r.default},i})}function pA(e){return{...e,children:e.children.map(e=>lA(e))}}function mA(e){let t={variables:{[RO]:cr(RO,Zn)},actions:{[uk]:lr(RO,zO),[bk]:{doctor:`run`},[BO]:{do:[...lD]},...HO.actions,...WO.actions,...KO.actions,[$O]:{save:!0},[fk]:{undo:!0},[mk]:{back:!0},[pk]:{do:[mk,...$k]},[vk]:{redo:!0},[ek]:{preset:`save`},[ak]:{themeDefault:`save`},[tk]:{preset:`delete`,name:`{{ .${ba.preset.effectiveVar} }}`}},segments:{[RO]:{template:`{{ $door := ${or(RO,sr(e),sr(`✖`))} }}{{ if ${ir(dk)} }}{{ fg (keptOn (color "error") (bgOf)) $door }}{{ else }}{{ $door }}{{ end }}`},[VO]:{template:HO.template},[UO]:{template:WO.template,when:WO.when},[GO]:{template:KO.template,bg:KO.bg,when:KO.when},[gk]:_k,[$O]:Xk,[ak]:ck,[ek]:{template:`{{ action "${ek}" "+ preset" }}`},[yk]:{template:`{{ action "${bk}" "🩺 doctor" }}`},[BO]:{template:`{{ action "${BO}" "✎ arrange" "✎ done" }}`}}};t.variables[ok]={kind:`input`,path:`themeDefault.differs`,type:`boolean`,default:!1},t.variables[sk]={kind:`input`,path:`themeDefault.theme`,type:`string`,default:``},t.variables[hk]={kind:`input`,path:`navigation.back`,type:`number`,default:0};for(let e of Gk)t.variables[Kk(e)]={kind:`input`,path:e,type:`number`,default:0};t.variables[JO]=cr(JO,`session`);for(let{member:e,label:n}of YO){t.actions[ZO(e)]=lr(JO,e),t.actions[XO(e)]={do:[ZO(e),...eA]};let r=Ik(Vk(e).map(e=>e.name)),i=`(ternary ${sr(` •`)} "" ${r})`,a=e=>`(print ${sr(e)} ${i})`;t.segments[XO(e)]={template:`{{ ${or(XO(e),a(n),a(`▾ ${n}`))} }}`}}return Object.assign(t.variables,WO.variables,Wk.variables),gA(t),hA(t),t.actions[RO]={do:[uk,...$k,...fA(t)]},t}function hA(e){for(let t of lO){let n=mO(t.name),r=xk(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};let i=t.takesMark?JD:[];for(let n of i)e.actions[Sk(t.name,n)]={doctor:`mark`,check:t.name,mark:n};let a=i.map(e=>` {{ action "${Sk(t.name,e)}" "${wk[e]}" }}`).join(``);e.segments[Ck(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${$p}" }} {{ action "${r}" "[fix]" }}{{ end }}`+(a===``?``:`{{ if ne .${n.sighting} "" }} {{ .${n.sighting} }}${a}{{ end }}`)+`{{ end }}`}}}function gA(e){for(let t of zk){Object.assign(e.actions,t.control.actions);let n=ik(t.name);e.actions[n]={reset:t.configKey},e.variables[Fk(t.name)]={kind:`input`,path:`resettable.${t.name}`,type:`boolean`,default:!1};let r=`{{ if .${Fk(t.name)} }} {{ action "${n}" "↺" }}{{ end }}`;Object.assign(e.variables,t.control.variables),e.segments[nk(t.name)]={template:`${t.control.template}${r}`},t.control.kind===`picker`&&[...t.control.list.rows.map(e=>({template:e})),...t.beneath].forEach((n,r)=>{e.segments[Pk(t.name,r)]=n})}Object.assign(e.actions,Wk.actions),e.actions[Ok]=lr(Tk,Dk),e.segments[Ek]={template:`{{ action "${Ok}" "⚙" }}`}}function _A(e){let{variables:t,actions:n}=vD();Object.assign(e.variables,t),Object.assign(e.actions,n)}function vA(e){let t=mA(e.globals.menuGlyph??`🍫`);_A(t);let n={...e.presets},r=[];for(let t of ng(e.presets)){let{node:i}=ag(e,t),a=lA(iA(i));r.push(a),n[t]={...ig(e.presets,t),root:a}}let i=rT(t,r,e);return{...e,variables:{...i,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:n}}const yA=`${fT}live`,bA=[`☐ live`,`☑ live`],xA=`${fT}done`,SA=`${fT}cancel`,CA=`${fT}rewind`,wA=`${fT}changes`,TA=`(gt .${wA} 0)`,EA=`(or ${TA} (gt .${qk} 0))`,DA={variable:yA,key:yA,member:`open`};function OA(e){return`${fT}configuring.p${e}`}function kA(e){return`and ${ir(pD)} (not ${ir(DA)}) (ne .${OA(e)} "true")`}function AA(e){return{kind:`template`,template:`{{ or ${e.map(e=>`(eq .${oD} "${tr(e)}")`).join(` `)} false }}`}}function jA(e,t,n){return`{{ if ${kA(e)} }}${t}{{ else }}${n}{{ end }}`}const MA=`{{ and ${ir(pD)} .preset.customized }}`,NA=mT;function PA(e){return new Map([...ug(e),...IA(e)])}const FA=`${fT}addable`;function IA(e){return new Map([[FA,{members:Object.keys(e.segments).filter(e=>!NA(e)),library:{groups:nD.map(e=>({id:e,label:rD[e]})),entry:t=>{let n=e.segments[t];return{group:n.group??`other`,...n.description!==void 0&&{description:n.description}}}}}]])}function LA(e,t,n){return n.segments[e]={template:t,when:mD,bg:SD},{kind:`segment`,name:e}}function RA(e,t,n){let r=`${fT}${e.presetIdent}.remove.${t}`;return e.artifacts.actions[r]={persist:e.rootKey,removeSegment:n},`{{ fg (${`readableOn (color "error") (bgOf) ${zf}`}) (action "${r}" "✖") }}`}function zA(e){return`{{ if ${ir(pD)} }}${e}{{ end }}`}function BA(e,t){return e.reduce((e,t)=>`{{ if and ${ir(pD)} ${ir(t)} }}true{{ else }}${e}{{ end }}`,t)}function VA(e){return e.flatMap(e=>[...bh(e)].flatMap(e=>e.kind===`segment`&&e.opens?.ref.key===`edit.configure`?[e.opens.ref]:[]))}function HA(e,t,n){return`${dD}${e}.${t}.${n}`}function UA(e,t,n,r){let i=gh(n),a=`${fT}${e.presetIdent}`,o=fD(e.presetIdent,i);e.configured.push(o);let s=`${a}.configure.${t}`,c=yT(s),l=`${s}.fold`;e.artifacts.actions[l]={set:c,to:Zn},e.artifacts.actions[s]={do:[`${s}.open`,l]},e.artifacts.actions[`${s}.open`]={set:oD,to:o};let u={},d=Object.entries(r).map(([r,o])=>{let s=HA(e.presetIdent,i,r),l=`${dD}p${e.presetIdent}.d${t}.${r}`;e.artifacts.variables[l]={kind:`state`,key:s,default:Lh(n.settings?.[r]??o.default)},u[r]={id:i,key:s,variable:l};let d=`${a}.setting.${t}.${r}`,f=jT(kT(o),s,l,d,c);if(Object.assign(e.artifacts.actions,f.actions),Object.assign(e.artifacts.variables,f.variables),f.kind===`inline`)return e.artifacts.segments[d]={template:f.template},{kind:`segment`,name:d};e.artifacts.segments[d]={template:f.template};let p=f.list.rows.map((t,n)=>{let r=`${d}.list.${n}`;return e.artifacts.segments[r]={template:t},{kind:`segment`,name:r}});return nr(d,f.list.ref,{kind:`container`,direction:`vertical`,children:p},`drop`)});return{term:`{{ action "${s}" "${OD}" }}`,ref:{variable:oD,key:oD,member:o},body:{kind:`container`,direction:`vertical`,children:d},drafts:u}}const WA=`${fT}label:`;function GA(e){if(e.startsWith(WA)){let t=e.slice(WA.length);return t.slice(t.indexOf(`:`)+1)}return e.startsWith(`edit.`)?void 0:e}function KA(e,t,n,r){let{artifacts:i}=n,a=gh(e),o=`${WA}${a}:${e.name}`;i.segments[o]={template:`{{ "${tr(a)}" }}`,...t.palette!==void 0&&{palette:t.palette}};let s=Object.fromEntries(Mh.flatMap(t=>{let n=e.settings?.[t];return n===void 0?[]:[[t,n]]}));return{...nr(o,r.ref,r.body,`drop`,BA([r.ref],`{{ ${kA(n.presetIdent)} }}`)),...Object.keys(s).length>0&&{settings:s},drafts:Object.fromEntries(Mh.map(e=>[e,r.drafts[e]]))}}function qA(e,t,n,r){let{presetIdent:i,artifacts:a}=e,o=`${fT}${i}.insert.${t}`,s=`${fT}${i}.insertSeg.${t}`;a.actions[o]={persist:e.rootKey,insertSegmentFrom:FA,anchor:n,relation:r};let c=_T(o),l=vT(s,o,void 0),u=xT(l),d=bT(l,c);return a.variables[l]=cr(l,Zn),a.variables[u]={kind:`state`,key:u,default:`0`},a.actions[d]=lr(l,c),a.actions[u]={set:u,int:!0},{host:s,template:`{{ $m := menu "${o}" "✚" "✕" }}{{ if ${ir({variable:l,key:l,member:c})} }}{{ $m }}{{ else }}{{ fg (${`readableOn (color "success") (bgOf) ${zf}`}) $m }}{{ end }}`}}function JA(e,t){let n=[],r=e.children.findIndex(e=>e.kind===`segment`&&!NA(e.name)),i=e=>JA(e,t);for(let[a,o]of e.children.entries()){if(o.kind===`container`){n.push(i(o));continue}let s=yh(o,i);if(NA(o.name)){n.push(s);continue}let c=gh(o),l=a===r?[qA(t,String(t.posCounter.n++),c,`before`)]:[],u=String(t.posCounter.n++),d=qA(t,u,c,`after`),f=RA(t,u,c),p=t.segments[o.name],m=UA(t,u,o,Nh(p)),h=zA(f),g=zA(m.term),_={kind:`container`,direction:`horizontal`,children:[...l.map(e=>LA(e.host,e.template,t.artifacts)),{...KA(o,p,t,m),lead:h,trail:g},{...s,when:jA(t.presetIdent,`false`,o.when??`true`),lead:h,trail:g,drafts:m.drafts},LA(d.host,d.template,t.artifacts)]};n.push(e.direction===`vertical`?{kind:`container`,direction:`horizontal`,children:[_]}:_)}return{...e,children:n,...e.when!==void 0&&{when:BA(VA(n),jA(t.presetIdent,`true`,e.when))}}}function YA(e,t,n,r,i,a,o){let s=`${fT}${t}.resetLayout`,c=`${fT}${t}.customized`;return r.actions[s]={reset:n},r.segments[c]={template:`{{ action "${s}" "↺ reset layout" }}`,when:MA},{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[...i,{kind:`segment`,name:c},a]},XA(e,o)]}}function XA(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),XA(n,t)]}:{...e,children:[...e.children,t]}}function ZA(e,t,n,r,i,a){let{node:o}=ag(e,t),s={presetIdent:iT(t),rootKey:YE(t),segments:e.segments,artifacts:n,posCounter:{n:0},configured:[]},c=JA(o,s);return n.variables[OA(s.presetIdent)]=AA(s.configured),YA(c,s.presetIdent,s.rootKey,n,r,i,a)}function QA(e){let t={variables:{},actions:{},segments:{}},n=bD(`${fT}help`,AD,[pD],t);t.variables[yA]=cr(yA,Zn),t.actions[yA]=lr(yA,DA.member),t.segments[yA]={template:ar(yA,...bA),when:mD};let r={kind:`segment`,name:yA},i=n;t.variables[wA]={kind:`input`,path:`history.sinceEdit`,type:`number`,default:0},t.actions[xA]={do:[$O,...lD]},t.segments[xA]={template:`{{ if ${EA} }}{{ action "${xA}" "✓ save" }}{{ else }}{{ action "${xA}" "✓ done" }}{{ end }}`,when:mD},t.actions[CA]={rewind:!0},t.actions[SA]={do:[CA,...lD]},t.segments[SA]={template:`{{ action "${SA}" "↩ cancel" }}`,when:`{{ and ${ir(pD)} ${TA} }}`};let a=[{kind:`segment`,name:xA},{kind:`segment`,name:SA}],o={...e.presets},s=[];for(let n of ng(e.presets)){let c=ZA(e,n,t,a,r,i);s.push(c),o[n]={...ig(e.presets,n),root:c}}let c=rT(t,s,e);return{...e,variables:{...c,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:o}}function $A(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function ej(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 tj(e,t,n){let r=vh(e,new Set(n.map(_h).filter(e=>e.includes(t)).flat()));return r===e?{seg:e}:{seg:e,id:r}}const nj=/^-?\d+$/;function rj(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 ij(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!nj.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 aj(e,t,n){return r=>r?nj.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 oj(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=>!nj.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}}return{kind:`int`}}function sj(e){return e===`config`?`set-config`:`set-state`}function cj(e,t,n){return t.kind===`int`?ij(`menu page "${e}"`):t.kind===`range`?aj(t.min,t.max,`${n} stepper "${e}"`):rj(t.allowed,`${n} "${e}"`,sj(n))}function lj(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:oj(e,n,t)}))}function uj(e,t,n,r){let i=new Map(Object.entries(e)),a=new Map,o=new Set(t.map(e=>e.key));for(let{key:e,spec:t}of n)if(o.has(e)&&t.kind!==`allow-list`)throw Error(`${r} gate: key "${e}" is written by the daemon's own links as one of a list of values, and cannot be declared as ${t.kind===`int`?`a paged cursor (int)`:`a bounded value (range)`}. Use a distinct key.`);let s=[...t.map(({key:e,allowed:t})=>({key:e,spec:{kind:`allow-list`,allowed:t}})),...n];for(let{key:t,spec:n}of lj(s,r)){if(!t)throw Error(`${r} gate: key is required`);if(t.includes(`/`))throw Error(`${r} gate: key "${t}" contains "/" — the wire shape splits on "/" so a slash-bearing key cannot be addressed. Use a slash-free key.`);if(Object.hasOwn(e,t))throw Error(`${r} gate: key "${t}" is a built-in ${r} key and cannot be re-claimed (built-in keys: ${Object.keys(e).join(`, `)})`);i.set(t,cj(t,n,r)),n.kind===`range`&&a.set(t,{min:n.min,max:n.max})}return{validate(e,t){let n=i.get(e);return n?n(t):{ok:!1,reason:`unknown ${r} key "${e}" (have: ${[...i.keys()].join(`, `)})`}},listKeys:()=>[...i.keys()],rangeParamsFor:e=>a.get(e)??null}}function dj(e,t,n){let r=[],i=0,a=new WeakMap;return{register(n,a){let o={key:n,allowed:a};uj(e,[o],[],t),r.push(o),i++;let s=!0;return()=>{s&&(s=!1,r.splice(r.indexOf(o),1),i++)}},gateFor(o){let s=a.get(o);if(s?.epoch===i)return s.gate;let c=uj(e,r,n(o),t);return a.set(o,{epoch:i,gate:c}),c}}}const fj=dj({},`config`,yj);function pj(e,t){return fj.register(e,t)}function mj(e){return fj.gateFor(e)}function hj(e,t){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:fg(e.from,t).members}}]:`cycle`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:e.cycle}}]:`removeSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[$A({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[$A({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:fg(e.insertSegmentFrom,t).members.map(t=>$A({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function gj(e,t){let n=WE(e).get(t);return n===void 0?null:String(n)}function _j(e){let t=new Set;for(let n of Object.values(e.actions)){`reset`in n&&t.add(n.reset);let e=`persist`in n?$E(n.persist):null;e?.scope===`preset-root`&&t.add(YE(e.preset))}return[...t].map(e=>({key:e,spec:{kind:`allow-list`,allowed:[]}}))}function vj(e){let t=PA(e);return[..._j(e),...Object.values(e.actions).flatMap(e=>hj(e,t))]}function yj(e){return lj(vj(e),`config`)}function bj(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:Cj(t.segments,xj(t.segments,e.segments??{})),root:Qh(e.root??Gh,t.root),actions:{...t.actions,...e.actions??{}},styles:{...t.styles,...e.styles??{}},presets:Cj(t.presets,Sj(t.presets,e.presets??{})),themeDefaults:Cj(t.themeDefaults,e.themeDefaults??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function xj(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,n.settings===void 0?n:{...n,settings:{...e[t]?.settings,...n.settings}}]))}function Sj(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,n.globals===void 0?n:{...n,globals:{...e[t]?.globals,...n.globals}}]))}function Cj(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}function wj(e,t,n,r){return n.cache===void 0?(e.issues.push({path:`${t}.cache`,message:`${r} variables must declare a cache policy (one of: ${Dh.join(`, `)})`,line:J(e.source,t.split(`.`))}),null):Dj(e,`${t}.cache`,n.cache)}function Tj(e){return{required:!0,json:Oj(),parse:(t,n,r,i)=>wj(t,n,i,e)??void 0}}const Ej={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&Aj(n)?{ttl:n}:WT(e,t,`cache.ttl must be a duration string like "5s", "100ms", "2m", "1h"; got ${Z(n)}`)},watch_file:{json:{type:`string`,pattern:`^/`},parse:(e,t,n)=>{if(typeof n!=`string`)return WT(e,t,`cache.watch_file must be a path string, got ${Z(n)}`);let r=nE(`cache.watch_file`,n);return r===null?{watch_file:n}:WT(e,t,r)}},depends_on:{json:{type:`array`,items:{type:`string`}},parse:(e,t,n)=>Array.isArray(n)&&n.every(e=>typeof e==`string`)?{depends_on:n}:WT(e,t,`cache.depends_on must be an array of variable-name strings, got ${Z(n)}`)},key:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{key:n}:WT(e,t,`cache.key must be a non-empty template string, got ${Z(n)}`)},never:{json:{const:!0},parse:(e,t,n)=>n===!0?{never:!0}:WT(e,t,`cache.never must be the literal boolean true, got ${Z(n)}`)}}};function Dj(e,t,n){return GT(e,Ej,t,n)}function Oj(){return lE(Ej)}const kj=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function Aj(e){return kj.test(e)}function jj(e,t,n){if(n===void 0)return{};if(!RT(n))return e.issues.push({path:t,message:`${t} must be an object, got ${X(n)}`,line:J(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=KT(e,rM,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function Mj(){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 ${X(i)}`,line:J(e.source,t.split(`.`))});return}return i}}}function Nj(){return{required:!0,json:{enum:[...kh]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!kh.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${kh.join(`, `)}, got ${JSON.stringify(i)}`,line:J(e.source,[...t.split(`.`),`field`])});return}return i}}}function Pj(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return PT(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const Fj={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:WT(e,t,`parse.text must be the literal boolean true, got ${Z(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?Ij(e,t,n):WT(e,t,`parse.regex must be a pattern string, got ${Z(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:WT(e,t,`parse.json must be the literal boolean true, got ${Z(n)}`)}}};function Ij(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return WT(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:WT(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function Lj(){return{required:!1,json:lE(Fj),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:J(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:GT(e,Fj,`${t}.parse`,r.parse)??void 0)}}function Rj(){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)=>RT(r.parse)&&`json`in r.parse?zj(e,t,r.default):FT(e,t,r,`default`)}}function zj(e,t,n){if(n!==void 0)return Bj(n)?n:WT(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${Z(n)}`)??void 0}function Bj(e){return e!==null&&Vj(e)}function Vj(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(Vj);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(Vj)}default:return!1}}const Hj={value:Mj(),default:XT()},Uj={path:tE(),type:iE([`string`,`number`,`boolean`]),default:Pj()},Wj={name:tE(),default:XT()},Gj={path:rE(),readMode:iE([`whole`,`first-line`]),parse:Lj(),cache:Tj(`file`),default:Rj()},Kj={command:tE(),parse:Lj(),cache:Tj(`shell`),default:Rj()};function qj(e){return{cache:`${e}, so it takes no cache policy — delete the key`}}const Jj={template:tE(),default:XT()},Yj=qj(`a template variable recomputes whenever a variable it reads changes`),Xj={layout:tE(),default:XT()},Zj=qj(`a time variable reads the instant its render is drawn at`),Qj={field:Nj(),default:XT()},$j=qj(`a git variable is refreshed by the daemon's own watch on the repository`),eM={key:tE(),default:XT()},tM=`kind`;function nM(e,t,n={}){return{...qT(tM,e,t),parse:(r,i,a)=>{BT(r,n,i,a);let o=VT(r,t,i,a);return o===null?null:{kind:e,...o}}}}const rM={tag:tM,noun:`source kind`,memberNoun:`variable`,arms:{literal:nM(`literal`,Hj),input:nM(`input`,Uj),env:nM(`env`,Wj),file:nM(`file`,Gj),shell:nM(`shell`,Kj),template:nM(`template`,Jj,Yj),time:nM(`time`,Xj,Zj),git:nM(`git`,Qj,$j),state:nM(`state`,eM)}};function iM(){return cE(rM)}function aM(){return{type:`object`,additionalProperties:iM()}}const oM=new Map([[`gitTaculous`,{kind:`built-in`,to:`gitaculous`}],[`git`,{kind:`built-in`,to:`gitaculous`}],[`settings.menu`,{kind:`built-in`,to:`candybar.menu`}],[`ticket`,{kind:`plugin`,to:`plugins.lit.ticket`,folder:`examples/plugins/lit`}]]);function sM(e){let t=oM.get(e);if(t===void 0)return``;switch(t.kind){case`built-in`:return` (the built-in segment "${e}" was renamed to "${t.to}" — update this reference)`;case`plugin`:return` (the built-in segment "${e}" became "${t.to}", a segment of the plugin in cc-candybar's ${t.folder} — install that folder in a plugin root (docs/segment-authoring.md, "Installing a plugin instead of listing it"), then update this reference)`}}const cM=/^[A-Za-z_][A-Za-z0-9_]*$/,lM={pattern:cM.source},uM={anyOf:[{type:`boolean`},{type:`string`},{type:`integer`}]},dM={type:`object`,additionalProperties:!1,required:[`label`,`domain`,`default`],properties:{label:{type:`string`,pattern:`^[^\\n\\r]+$`},domain:{anyOf:[{const:`bool`},{type:`array`,items:{type:`string`,pattern:`^[^/\\n\\r]+$`},minItems:1,uniqueItems:!0},{type:`object`,additionalProperties:!1,required:[`min`,`max`],properties:{min:{type:`integer`},max:{type:`integer`},step:{type:`integer`,minimum:1},atLeast:{type:`string`,...lM}}}]},default:uM}},fM=[`label`,`domain`,`default`],pM=[`min`,`max`,`step`,`atLeast`];function mM(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))})}function hM(e,t,n){if(n===`bool`)return`bool`;if(Array.isArray(n)){let r=n.filter(e=>typeof e==`string`);if(n.length===0||r.length!==n.length)return mM(e,t,`a list domain must be a non-empty list of words, got ${JSON.stringify(n)}`);if(new Set(r).size!==r.length)return mM(e,t,`a list domain names each word once, got ${JSON.stringify(n)}`);let i=r.filter(e=>e===``||e.includes(`/`)||/[\n\r]/.test(e));return i.length>0?mM(e,t,`a list domain's words must be non-empty, slash-free, and newline-free — configure mode writes each on the set-state wire — got ${JSON.stringify(i)}`):r}if(RT(n)){let{min:r,max:i,step:a=1,atLeast:o}=n;return Object.keys(n).filter(e=>!pM.includes(e)).length===0&&Number.isInteger(r)&&Number.isInteger(i)&&r<=i&&Number.isInteger(a)&&a>=1&&(o===void 0||typeof o==`string`)?{min:r,max:i,step:a,...o!==void 0&&{atLeast:o}}:mM(e,t,`a range domain is { min, max, step?, atLeast? } with integers min ≤ max, a whole step ≥ 1, and atLeast naming another range setting, got ${JSON.stringify(n)}`)}return mM(e,t,`domain must be "bool", a list of words, or { min, max }, got ${Z(n)}`)}function gM(e,t,n){if(!RT(n))return mM(e,t,`${t} must be { label, domain, default }, got ${X(n)}`);for(let r of Object.keys(n))fM.includes(r)||mM(e,`${t}.${r}`,`Unknown setting key "${r}". Expected one of: ${fM.join(`, `)}`);let{label:r}=n,i=typeof r==`string`&&r.length>0&&!/[\n\r]/.test(r);i||mM(e,`${t}.label`,`a setting needs a one-line, non-empty "label" — the name its control shows, spliced into a synthesized template string — got ${Z(r)}`);let a=hM(e,`${t}.domain`,n.domain);if(!i||a===void 0)return;let o={label:r,domain:a,default:n.default};return!_M(n.default)||!Ih(o,n.default)?mM(e,`${t}.default`,`default must be ${Bh(o)}, got ${Z(n.default)}`):o}function _M(e){return typeof e==`boolean`||typeof e==`string`||typeof e==`number`}const vM={theme:`its default for this segment is segments.<name>.palette, and a placement sets its own with settings: { ${Ah}: "<theme>" }`,effect:`a placement follows the bar's effect, or sets its own with settings: { effect: "<effect>" }`};function yM(e){return Mh.includes(e)}function bM(){return{required:!1,json:{type:`object`,propertyNames:{...lM,not:{enum:[...Mh]}},additionalProperties:dM},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!RT(i))return mM(e,a,`${a} must be an object of name → { label, domain, default }, got ${X(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i)){if(!cM.test(t)){mM(e,`${a}.${t}`,`setting name "${t}" is read as .settings.${t} in a template, so it must be an identifier (letters, digits, _; not starting with a digit)`);continue}if(yM(t)){mM(e,`${a}.${t}`,`setting "${t}" is one every placement already has — ${vM[t]}`);continue}let r=gM(e,`${a}.${t}`,n);r!==void 0&&(o[t]=r)}return o}}}const xM=pT.map(e=>e.replace(/\./g,`\\.`)).join(`|`);function SM(){return{required:!1,json:{type:`string`,minLength:1,pattern:`^(?!${xM})[^:/]+$`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return typeof i==`string`&&i.length>0&&!/[:/]/.test(i)&&!mT(i)?i:mM(e,`${t}.${n}`,`a placement "id" must be a non-empty string without "/" or ":", outside the reserved ${pT.map(e=>`"${e}"`).join(`, `)} namespaces, got ${Z(i)}`)}}}function CM(){return{required:!1,json:{type:`object`,propertyNames:lM,additionalProperties:uM},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!RT(i))return mM(e,a,`a placement's "settings" must be an object of setting name → value, got ${X(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i))_M(n)?o[t]=n:mM(e,`${a}.${t}`,`setting "${t}" must be a boolean, a word, or a number, got ${X(n)}`);return o}}}function wM(e){return new Set(Object.keys(e.segments).filter(e=>!mT(e)))}function TM(e,t,n){if(t===void 0)return{};if(!RT(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${X(t)}`,line:J(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=zT(e,n.has(i)?jM:AM,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function EM(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?WT(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${sM(t.slice(9))}`)??void 0:NT(e,t,r,n)??void 0}}function DM(){return{required:!1,json:{anyOf:[{const:`auto`},{const:`fill`},{type:`integer`,minimum:1}]},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(i===`auto`)return`auto`;if(i===`fill`)return`fill`;if(typeof i==`number`&&Number.isInteger(i)&&i>0)return i;e.issues.push({path:`${t}.${n}`,message:`width must be "auto", "fill", or a positive integer, got ${Z(i)}`,line:J(e.source,[...t.split(`.`),n])})}}}}function OM(){return{required:!1,json:aM(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return jj(e,`${t}.${n}`,i)}}}const kM={template:EM(),description:XT(),group:iE(tD),width:DM(),justify:iE(Vh),truncate:iE(Hh),bg:XT(),fg:XT(),when:XT(),palette:eE(),vars:OM(),settings:bM()},AM={noun:`segment key`,fields:kM},jM={noun:`segment key`,fields:{...kM,template:XT()}},MM=`#/definitions/LayoutNode`,NM={kind:`container`,direction:`vertical`,children:[]};function PM(e){return{required:!0,json:{const:e},parse:()=>e}}function FM(){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 ${Z(i)}`,line:J(e.source,[`root`])}),``)}}}function IM(){return{required:!0,json:{enum:[...mh]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&mh.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${mh.join(`, `)} (got ${JSON.stringify(i)})`,line:J(e.source,[`root`])}),`vertical`)}}}function LM(e){return{required:!0,json:{type:`array`,items:{$ref:MM}},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 ${X(a)}`,line:J(t.source,[`root`])}),[])}}}const RM={noun:`layout-node key`,fields:{kind:PM(`segment`),name:FM(),when:XT(),id:SM(),settings:CM()}},zM=()=>iE(hf),BM={noun:`layout-node key`,fields:{kind:PM(`container`),direction:IM(),children:LM(JT(()=>GM)),when:XT(),distribution:zM()}};function VM(){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 ${Z(i)}`,line:J(e.source,[`root`])}),``)}}}const HM={noun:`layout-node key`,fields:{seg:VM(),when:XT(),id:SM(),settings:CM()}},UM={noun:`layout-node key`,fields:{h:LM(JT(()=>GM)),when:XT(),distribution:zM()}},WM={noun:`layout-node key`,fields:{v:LM(JT(()=>GM)),when:XT(),distribution:zM()}},GM=(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:J(e.source,[`root`])}),NM):{kind:`segment`,name:n};if(!RT(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 ${X(n)}`,line:J(e.source,[`root`])}),NM;if(n.kind===`container`)return zT(e,BM,t,n)??NM;if(n.kind===`segment`)return zT(e,RM,t,n)??NM;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
150
+ `,TO=`readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3`,EO={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function DO(e){let t=e[EO.socket]??``,n=e[EO.pane]??``;if(t===``||n===``)return null;let r=e[EO.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}const OO={kitty:{label:`kitty`,xtversion:`kitty`,program:null,programVersion:!0,term:`xterm-kitty`,links:{since:`0.19.0`},glyphs:{kind:`bundled`,since:`0.36.0`}},wezterm:{label:`WezTerm`,xtversion:`WezTerm`,program:`WezTerm`,programVersion:!0,term:`wezterm`,links:{since:null},glyphs:{kind:`bundled`,since:`20220319`}},ghostty:{label:`Ghostty`,xtversion:`ghostty`,program:`ghostty`,programVersion:!0,term:`xterm-ghostty`,links:{since:null},glyphs:{kind:`bundled`,since:null}},iterm2:{label:`iTerm2`,xtversion:`iTerm2`,program:`iTerm.app`,programVersion:!0,term:null,links:{since:`3.1`},glyphs:{kind:`configured`}},alacritty:{label:`Alacritty`,xtversion:`alacritty`,program:null,programVersion:!0,term:`alacritty`,links:{since:`0.11.0`},glyphs:{kind:`configured`}},"apple-terminal":{label:`Terminal`,xtversion:null,program:`Apple_Terminal`,programVersion:!0,term:null,links:null,glyphs:{kind:`unread`}},vscode:{label:`VS Code`,xtversion:null,program:`vscode`,programVersion:!1,term:null,links:{since:`1.72`},glyphs:{kind:`unread`}}},kO=e=>OO[e];function AO(e){return kO(e).glyphs.kind===`bundled`}function jO(e){return kO(e).glyphs.kind===`configured`}const MO=e=>kO(e).label,NO=[{since:`3.5.0`,from:57504,to:57507},{since:`3.5.0`,from:57520,to:57554},{since:`3.5.0`,from:57556,to:57556},{since:`3.5.6`,from:57558,to:57559}];function PO(e,t){let n=t.codePointAt(0);return NO.some(({since:t,from:r,to:i})=>r<=n&&n<=i&&e!==null&&LO(e,t)===!0)}const FO=Object.keys(OO);function IO(e){let t=/^\d+(?:\.\d+)*/.exec(e);return t===null?null:t[0].split(`.`).map(Number)}function LO(e,t){let n=IO(e),r=IO(t);if(n===null)return null;for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e]??0,i=r[e]??0;if(t!==i)return t>i}return!0}function RO(e){for(let t of FO){let n=kO(t).xtversion;if(n!==null&&e.toLowerCase().startsWith(n.toLowerCase())){let r=e.slice(n.length).replace(/^[\s(]+/,``);return{name:t,version:/^[^\s)]+/.exec(r)?.[0]??null}}}return null}function zO(e){let t=FO.find(t=>kO(t).term===e);return t===void 0?null:{name:t,version:null}}function BO(e){let t=RO(e.termtype)??zO(e.termname);if(t!==null)return{kind:`known`,terminal:t};let n=/^[^\s(]*/.exec(e.termtype)[0];return n===``?{kind:`unnamed`,term:e.termname}:{kind:`unknown`,called:n}}function VO(e){let t=e.TERM_PROGRAM,n=FO.find(e=>kO(e).program===t),r=n===void 0?zO(e.TERM):{name:n,version:kO(n).programVersion?e.TERM_PROGRAM_VERSION??null:null};return r===null?t===void 0||t===`tmux`?{kind:`unnamed`,term:e.TERM??``}:{kind:`unknown`,called:t}:{kind:`known`,terminal:r}}function HO(e){switch(e.kind){case`known`:return MO(e.terminal.name);case`unknown`:return e.called;case`unnamed`:return e.term||null}}function UO(e){switch(e.kind){case`known`:return MO(e.terminal.name);case`unknown`:return e.called;case`unnamed`:return e.term||`this terminal`}}function WO({name:e,version:t}){let n=kO(e).links;if(n===null)return{kind:`none`};if(n.since===null)return{kind:`draws`};if(t===null)return{kind:`unsaid`,since:n.since};let r=LO(t,n.since);return r===null?{kind:`unsaid`,since:n.since}:r?{kind:`draws`}:{kind:`older`,since:n.since,version:t}}const GO=FO.filter(e=>kO(e).links!==null).map(MO).join(`, `),KO=[`drawn`,`boxes`];function qO(e){let[t,...n]=e;return t===void 0?{ok:!0}:{ok:!1,reason:t,more:n}}const JO=EO.truecolor,YO={name:`tmuxTruecolor`,label:`tmux truecolor`,takesMark:!1,probe:({tmux:e,claudeSettings: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.client.kind===`failed`)return{ok:!1,reason:`tmux could not be asked: ${e.client.reason}`};if(e.client.value===null||!e.client.value.features.includes(`RGB`)||e.hint.truecolor!==null)return{ok:!0};let n=t.env[JO];return typeof n==`string`&&n!==``?{ok:!1,reason:`${JO} is set in ${t.path} — restart Claude Code to apply`}:{ok:!1,reason:`Claude Code renders the bar in 256 colours inside tmux`,fix:{kind:`claude-settings`,path:[`env`,JO],value:`1`}}}}}},XO={variable:`is never read`,action:`is never clicked`,helper:`is never called`,segment:`is in no preset`},ZO={name:`config`,label:`config`,takesMark:!1,probe:({config:e})=>{switch(e.kind){case`failed`:{let[t=`the config failed to load`,...n]=[...e.error.split(`
151
+ `).map(e=>e.trim()).filter(e=>e!==``),...e.warnings];return{ok:!1,reason:t,more:n}}case`loaded`:return qO([...e.warnings,...e.unused.map(({kind:e,name:t})=>`${e} "${t}" ${XO[e]}`)])}}},QO="re-run `cc-candybar install`";function $O(e){if(e.kind===`failed`)return[`Launch Services could not be asked which app opens cc-candybar:// — ${e.reason}`];if(e.value===null)return[`no app is registered for cc-candybar:// — ${QO}`];let{app:t,missing:n}=e.value;return n.kind===`failed`?[`${t} opens cc-candybar://, but ${n.reason} — ${QO}`]:n.value.map(e=>`${e} is missing, and ${t} runs it — ${QO}`)}const ek={name:`urlHandler`,label:`URL handler`,takesMark:!1,probe:({urlHandler:e})=>{switch(e.kind){case`unsupported`:return{ok:!0};case`unprobed`:return{ok:!1,reason:e.reason};case`arrived`:return e.handler===e.bar?{ok:!0}:{ok:!1,reason:e.handler===null?`the URL handler does not report its version, so it is older than the bar (${e.bar}) — ${QO}`:`the URL handler runs cc-candybar ${e.handler}; the bar runs ${e.bar} — ${QO}`};case`lost`:return qO([...$O(e.opener),e.unopened===null?`a cc-candybar:// link was opened and did not arrive at the daemon`:`a cc-candybar:// link could not be opened — ${e.unopened}`])}}},tk=`click 🩺 doctor in the bar's settings menu: if it runs, links work`;function nk(e,t){let n=HO(e);return t.kind===`ok`&&n!==null&&t.value.includes(n)?{kind:`draws`}:e.kind===`known`?WO(e.terminal):{kind:`unknown`}}function rk({identified:e,tmuxClient:t},n){let r=UO(e),i=nk(e,n),a=HO(e)===null?tk:`${tk}, and the doctor remembers it for this terminal`,o=(()=>{switch(i.kind){case`draws`:return[];case`none`:return[`${r} draws no links (OSC 8), so nothing on the bar can be clicked — run Claude Code in a terminal that draws them: ${GO}`];case`older`:return[`${r} ${i.version} draws no links (OSC 8 came in ${i.since}) — update ${r}`];case`unsaid`:return[`${r} draws links (OSC 8) since ${i.since}, and did not say which release this is — ${a}`];case`unknown`:return[`the doctor does not know whether ${r} draws links (OSC 8) — ${a}`]}})(),s=n.kind===`failed`&&i.kind!==`draws`?[`the terminals a doctor click came back from could not be read: ${n.reason}`]:[],c=i.kind===`none`||t===null||t.features.includes(`hyperlinks`)?[]:[`tmux does not pass links through to ${r} — add \`set -as terminal-features ",${t.termname}:hyperlinks"\` to tmux.conf, then detach and reattach (tmux 3.4 or later)`];return[...o,...s,...c]}const ik={name:`links`,label:`links`,takesMark:!1,probe:({askedBy:e,terminal:t,clicked:n})=>{if(e===`click`)return{ok:!0};switch(t.kind){case`unreported`:return{ok:!1,reason:"the client reported no terminal — re-run `cc-candybar install` to stage a current client"};case`unasked`:return{ok:!1,reason:`tmux could not be asked which terminal is attached: ${t.reason}`};case`seen`:return qO(rk(t,n))}}},ak={name:`effectRefresh`,label:`effect refresh`,takesMark:!1,probe:({effect:e,placementEffects:t,transitions:n,claudeSettings:r})=>{let i=[...e.kind===`decided`?e.value===`none`?[]:[`the bar wears the ${e.name} effect`]:[`a globals.effect rule can give the bar an effect`],...t.map(({placement:e,effect:t})=>`${e} wears the ${t} effect`),...n?[`placements fade in and dissolve out as they come and go`]:[]];if(i.length===0)return{ok:!0};let a=i.join(` and `),{path:o,statusLine:s}=r;switch(s.kind){case`absent`:return{ok:!1,reason:`${a}, and ${o} sets no statusLine — set "refreshInterval": 1 beside the statusLine command that runs the bar`};case`not-an-object`:return{ok:!1,reason:`${a}, and ${o} sets statusLine to ${JSON.stringify(s.value)}, not a statusLine object — re-run \`cc-candybar install\` to write one`};case`present`:break}let c=s.refreshInterval;return c===1?{ok:!0}:{ok:!1,reason:c===void 0?`${a}, but Claude Code redraws it only on events`:typeof c==`number`&&c>1?`${a}, but Claude Code redraws it only every ${c} s`:`${a}, but statusLine.refreshInterval is ${JSON.stringify(c)}, not a number of seconds Claude Code accepts (its minimum is 1)`,fix:{kind:`claude-settings`,path:[`statusLine`,`refreshInterval`],value:1}}}},ok=e=>[...e].map(e=>`U+${e.codePointAt(0).toString(16).toUpperCase()}`).join(` `);function sk(e){switch(e.kind){case`unreported`:case`unasked`:return`this terminal`;case`unknown`:case`unnamed`:return UO(e);case`bundling`:case`unread`:case`configured`:return[MO(e.name),e.version].filter(e=>e!==null).join(` `)}}function ck(e){switch(e.kind){case`unreported`:case`unasked`:return null;case`unknown`:case`unnamed`:return HO(e);case`bundling`:case`unread`:return MO(e.name);case`configured`:{let t=MO(e.name);return e.font.kind===`ok`?`${t} with ${e.font.value.font} (${e.font.value.from})`:`${t}, its font unread: ${e.font.reason}`}}}function lk(e){let t=ck(e.terminal);return t===null?void 0:{glyphs:e.glyphs,id:`${t}|${ok(e.glyphs)}`}}const uk=`or set globals.charset to "ascii" to draw the bar without them`,dk=[ZO,ek,ik,YO,ak,{name:`nerdFont`,label:`Nerd Font`,takesMark:!0,probe:({nerdFont:e,marks:t})=>{if(e.kind===`none`)return{ok:!0};if(t.kind===`failed`)return{ok:!1,reason:`the mark book could not be read: ${t.reason}`};let n=lk(e),r=e=>({ok:!1,reason:e,...n!==void 0&&{sighting:n}}),i=e.terminal,a=sk(i);switch(n===void 0?null:t.value.nerdFont?.[n.id]??null){case`drawn`:return{ok:!0};case`boxes`:return r(`${a} draws ${ok(e.glyphs)} as boxes — set a Nerd Font as its font, ${uk}`);case null:break}switch(i.kind){case`unreported`:return r("the client reported no terminal — re-run `cc-candybar install` to stage a current client");case`unasked`:return r(`tmux could not be asked which terminal is attached: ${i.reason}`);case`unknown`:case`unnamed`:case`unread`:return r(`the doctor cannot read ${a}'s font`);case`bundling`:{let e=OO[i.name].glyphs.since;if(e===null)return{ok:!0};let t=i.version===null?null:LO(i.version,e);if(t===!0)return{ok:!0};let n=MO(i.name);return r(t===null?`${n} ships Nerd Font symbols since ${e}, and did not say which release this is`:`${a} ships no Nerd Font symbols (they came in ${e}) — update ${n}, or set a Nerd Font as its font, ${uk}`)}case`configured`:{if(i.font.kind===`failed`)return r(`the doctor cannot read ${a}'s font: ${i.font.reason}`);let{font:e,from:t,lacks:n}=i.font.value;return n===null?r(`${a} is set to ${e} (${t}), which is not installed — install it or set a Nerd Font, ${uk}`):n.length===0?{ok:!0}:r(`${a} draws with ${e} (${t}), which has no ${ok(n)} — set a Nerd Font as its font, ${uk}`)}}}}],fk=dk.filter(e=>e.takesMark);function pk(e){return dk.map(t=>({check:t,verdict:t.probe(e)}))}function mk(e){return dk.find(t=>t.name===e)}const hk=`${Y}doctor.`;function gk(e){let t=`${hk}${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`,sighting:`${t}sighting`}}function _k(e,t){let n=e.kind===`seen`?e.tmuxClient:null,r=e.kind===`seen`?HO(e.identified):null,i=t.kind===`failed`?`unread`:r===null?`-`:t.value.includes(r)?`yes`:`no`;return`tmuxLinks=${n===null?`-`:n.features.includes(`hyperlinks`)?`yes`:`no`} clicked=${i}`}function vk(e,t){if(e.kind===`none`)return`glyphs=- terminal=- font=- mark=-`;let{glyphs:n,terminal:r}=e,i=[...n].map(e=>e.codePointAt(0).toString(16)),a=(()=>{switch(r.kind){case`unreported`:case`unasked`:return r.kind;case`unknown`:return`unknown:${JSON.stringify(r.called)}`;case`unnamed`:return`unnamed:${JSON.stringify(r.term)}`;case`bundling`:case`unread`:case`configured`:return`${r.name}@${r.version??`-`}`}})(),o=(()=>{if(r.kind!==`configured`)return`-`;if(r.font.kind===`failed`)return`failed`;let{font:e,lacks:t}=r.font.value;return`${JSON.stringify(e)}:${t===null?`not-installed`:`lacks${t.length}`}`})(),s=lk(e),c=t.kind===`failed`?`unread`:s===void 0?`-`:t.value.nerdFont?.[s.id]??`-`;return`glyphs=${i.join(`,`)} terminal=${a} font=${o} mark=${c}`}function yk(e,t=[]){return t.length===0?e:`${e} (+${t.length} more — run \`cc-candybar doctor\`)`}function bk(e){return e.flatMap(({check:e,verdict:t})=>{let n=gk(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:qm},{key:n.sighting,value:``}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:yk(t.reason,t.more)},{key:n.fixable,value:t.fix===void 0?qm:Km},{key:n.sighting,value:t.sighting?.glyphs??``}]})}const xk={copySession:{copy:`{{ .session.id }}`},copyResume:{copy:`{{ .resume_command }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},openConfig:{open:`{{ .config_path }}`}};function Sk(e){let t=t=>`${e}${t}`;return{template:`{{ action "${t(`copySession`)}" "⎘ id" }}{{ if ne .resume_command "" }} {{ action "${t(`copyResume`)}" "⎘ resume" }}{{ end }} {{ action "${t(`openProject`)}" "↗ proj" }} {{ action "${t(`openTranscript`)}" "↗ log" }}{{ if ne .git.repoUrl "" }} {{ link .git.repoUrl "↗ repo" }}{{ end }}{{ if ne .config_path "" }} {{ action "${t(`openConfig`)}" "↗ config" }}{{ end }}`,actions:Object.fromEntries(Object.entries(xk).map(([t,n])=>[`${e}${t}`,n]))}}const Ck=`armed`,wk=`disarmed`,Tk=`.armed`,Ek=e=>e.endsWith(Tk);function Dk(e,t,n){let r=`${e}${Tk}`,i=`${e}.arm`,a=`${e}.disarm`,o=`(eq .${e} "${Ck}")`;return{template:`{{ if ${o} }}{{ action "${e}" "${t.confirm}" }} {{ action "${a}" "✕" }}{{ else }}{{ action "${i}" "${t.arm}" }}{{ end }}`,actions:{[i]:{set:r,to:Ck},[a]:{set:r,to:wk},[e]:{do:[a,...n]}},armed:o,variables:{[e]:{kind:`state`,key:r,default:wk}},disarm:a}}const Ok=RegExp(`^/[^\\s\\x00-\\x1f\\x7f-\\x9f/][^\\x00-\\x1f\\x7f-\\x9f]*$`);function kk(e){return typeof e==`string`&&Ok.test(e)?{kind:`line`,line:e}:{kind:`refused`,reason:`a slash command is "/" then its name, e.g. "/compact" or "/model opus", on one line with no control characters, got ${JSON.stringify(e)}`}}function Ak(e){let t=kk(e);if(t.kind===`refused`)throw Error(t.reason);return t.line}const jk=[`/compact`,`/model`],Mk=`/clear`;function Nk(e){let t=t=>`${e}${t.slice(1)}`,n=`${e}clear.slash`,r=Dk(`${e}clear`,{arm:Mk,confirm:`${Mk} ✓ confirm`},[n]);return{template:jk.map(e=>`{{ action "${t(e)}" "${e}" }} `).join(``)+r.template,when:`{{ ${JT} }}`,actions:{...Object.fromEntries(jk.map(e=>[t(e),{slash:Ak(e)}])),...r.actions,[n]:{slash:Ak(Mk)}},variables:r.variables,disarm:r.disarm}}const Pk=Array.from({length:10},(e,t)=>(t+1)*1e5),Fk=Pk[0],Ik=Pk[Pk.length-1];function Lk(e){let t;try{t=pi(e)}catch(e){return L(e instanceof Error?e.message:String(e))}let n=t.autoCompactWindow;return n===void 0?F(`auto`):typeof n==`number`&&Number.isInteger(n)&&n>=Fk&&n<=Ik?F(n):L(`${e}: autoCompactWindow is ${JSON.stringify(n)}, not a window /autocompact accepts (${Fk}–${Ik} tokens)`)}function Rk(e,t){let n=Math.min(t??Ik,Ik),r=e===`auto`?n:Math.min(e,n);return{window:e===`auto`?0:e,applied:e===`auto`?0:r,lower:Pk.filter(e=>e<r).at(-1)??0,higher:Pk.find(e=>e>r&&e<=n)??0}}function zk(e,t){return{template:`{{ if ne .autocompact.error "" }}⇲ ⚠ {{ .autocompact.error }}{{ else }}⇲ {{ if eq .autocompact.window 0 }}auto{{ else }}${t(`.autocompact.applied`)}{{ end }}{{ if ${JT} }}{{ if gt .autocompact.lower 0 }} {{ action (printf "${e}%d" .autocompact.lower) "−" }}{{ end }}{{ if gt .autocompact.higher 0 }} {{ action (printf "${e}%d" .autocompact.higher) "+" }}{{ end }}{{ if gt .autocompact.window 0 }} {{ action "${e}auto" "↺" }}{{ end }}{{ end }}{{ end }}`,bg:`{{ if ne .autocompact.error "" }}{{ color "error" }}{{ else }}{{ tint }}{{ end }}`,when:`{{ or (ge .autocompact.window 0) (ne .autocompact.error "") }}`,actions:{[`${e}auto`]:{slash:Ak(`/autocompact auto`)},...Object.fromEntries(Pk.map(t=>[`${e}${t}`,{slash:Ak(`/autocompact ${t}`)}]))}}}const Bk=e=>`{{ if ge ${e} 1000000 }}{{ printf "%.1f" (divf ${e} 1000000) }}M{{ else if ge ${e} 1000 }}{{ printf "%.1f" (divf ${e} 1000) }}K{{ else }}{{ ${e} }}{{ end }}`,Vk=`${Y}menu`,Hk=`open`,Uk=`${Y}edit`,Wk=`${Y}toolbar`,Gk=Sk(Y),Kk=`${Y}commands`,qk=Nk(`${Kk}.`),Jk=`${Y}autocompact`,Yk=zk(`${Jk}.`,Bk),Xk=e=>({kind:`segment`,name:e}),Zk=`${Y}tab`,Qk=[{member:`session`,label:`⚡ session`},{member:`look`,label:`🎨 look`},{member:`layout`,label:`📐 layout`},{member:`config`,label:`⚙ config`},{member:`tools`,label:`🧰 tools`}],$k=e=>`${Zk}.${e}`,eA=e=>`${$k(e)}.toggle`,tA=e=>({variable:Zk,key:Zk,member:e}),nA=`${Y}save`,rA=`${Y}preset.save`,iA=`${Y}preset.delete`,aA=e=>`${Y}${e}`,oA=e=>`${Y}apply.${e}`,sA=e=>`${Y}reset.${e}`,cA=`${Y}themeDefault.save`,lA=`${Y}themeDefault.differs`,uA=`${Y}themeDefault.theme`,dA={when:`{{ .${lA} }}`,template:`{{ action "${cA}" (printf "⤓ default for %s" .${uA}) }} {{ swatch "${oA(`theme`)}" .${uA} }}`},fA=`${Y}resetAll`,pA=`${Vk}.toggle`,mA={variable:Vk,key:Vk,member:Hk},hA=`${Y}undo`,gA=`${Y}back`,_A=`${gA}.step`,vA=`${Y}navigation.back`,yA=gA,bA={template:`{{ if gt .${vA} 0 }}{{ action "${gA}" "◁" }}{{ else }}{{ fg (${TO}) "◁" }}{{ end }}`},xA=`${Y}redo`,SA=`${Y}doctor`,CA=`${SA}.run`,wA=e=>`${SA}.fix.${e}`,TA=(e,t)=>`${SA}.mark.${e}.${t}`,EA=e=>`${SA}.${e}`,DA={drawn:`[✓ shapes]`,boxes:`[✗ boxes]`},OA=fE(`${Y}pickers`),kA=`${Y}gear`,AA=`gear`,jA=`${kA}.toggle`,MA={variable:OA,key:OA,member:AA},NA=fE(`${Y}gearPickers`),PA=[{template:`{{ themePreview }}`}],FA={template:`{{ layoutPreview }}`},IA={preset:[FA,{when:`{{ not .preset.bundled }}`,template:`{{ action "${iA}" (printf "🚮 delete %s" .${ba.preset.effectiveVar}) }}`}],style:PA,variation:[FA],shade:[FA]},LA=(e,t)=>`${Y}list.${e}.${t}`,RA=e=>`${Y}resettable.${e}`,zA=e=>e.length===0?`false`:`(or ${e.map(e=>`.${RA(e)}`).join(` `)})`,BA={preset:`door`,theme:`look`,style:`gear`,effect:`look`,variation:`gear`,shade:`gear`,endcaps:`look`,transitions:`look`,autoWrap:`layout`,padding:`layout`,updateNotice:`config`},VA=e=>e===`gear`?BA.theme:e,HA=Object.keys(ba).map(e=>{let t=ba[e],n=hD(t.configKey),r=wE({label:t.label,domain:n},t.sessionKey,t.effectiveVar,oA(e),BA[e]===`gear`?NA:OA);return{...t,name:e,control:r,beneath:IA[e]??[]}}),UA=e=>HA.filter(t=>BA[t.name]===e),WA=e=>HA.filter(t=>VA(BA[t.name])===e),GA={theme:[nr(kA,MA,{kind:`container`,direction:`horizontal`,children:UA(`gear`).map(ij)},`drop`)]},KA=e=>UA(e).flatMap(e=>[ij(e),...GA[e.name]??[]]);new Set(HA.flatMap(e=>[e.sessionKey,e.configKey]));const qA=Dk(fA,{arm:`⟲`,confirm:`⟲ reset all?`},HA.map(e=>sA(e.name))),JA=[`unsaved`,`history.undo`,`history.redo`],YA=e=>`${Y}${e}`,XA=YA(`unsaved`),ZA=(e,t)=>({body:t,shown:`(gt .${YA(e)} 0)`}),QA=[ZA(`unsaved`,`{{ action "${nA}" (printf "💾 save %d" .${XA}) }}`),ZA(`history.undo`,`{{ action "${hA}" "↶" }}`),ZA(`history.redo`,`{{ action "${xA}" "↷" }}`),{body:qA.template,shown:`(or ${zA(HA.map(e=>e.name))} ${qA.armed})`}],$A={when:`{{ or ${QA.map(e=>e.shown).join(` `)} }}`,template:`{{ $sep := "" }}`+QA.map(e=>`{{ if ${e.shown} }}{{ $sep }}${e.body}{{ $sep = " " }}{{ end }}`).join(``)},ej=[{step:qA,place:`door`},{step:qk,place:`session`}],tj=e=>e.map(e=>e.step.disarm),nj=tj(ej),rj=tj(ej.filter(e=>e.place!==`door`));function ij(e){let t=aA(e.name);return e.control.kind===`inline`?Xk(t):nr(t,e.control.list.ref,{kind:`container`,direction:`vertical`,children:[...e.control.list.rows,...e.beneath].map((t,n)=>Xk(LA(e.name,n)))},`drop`)}function aj(e){return e===Vk}function oj(e){let t=Xk(Vk);if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[oj(n),...r]}:{kind:`container`,direction:`vertical`,children:[t,e]}}return e.kind===`container`&&e.when===void 0?{...e,children:[t,...e.children]}:{kind:`container`,direction:`horizontal`,children:[t,e]}}function sj(e){return cj(e)>0?e:oj(e)}function cj(e){let t=0;for(let n of fg(e))n.kind===`segment`&&aj(n.name)&&(t+=1);return t}function lj(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&aj(e.name)||e.opens!==void 0&&lj(e.opens.body,!0):e.children.some(e=>lj(e,n))}const uj={session:{direction:`vertical`,content:[Xk(Wk),{kind:`container`,direction:`horizontal`,children:[Xk(Kk),Xk(Jk)]}],after:[]},look:{direction:`horizontal`,content:[],after:[Xk(cA)]},layout:{direction:`horizontal`,content:[Xk(rA),Xk(Uk)],after:[]},config:{direction:`horizontal`,content:[],after:[]},tools:{direction:`vertical`,content:[Xk(SA),...dk.map(e=>Xk(EA(e.name)))],after:[]}},dj=e=>({kind:`container`,direction:uj[e].direction,children:[...uj[e].content,...KA(e),...uj[e].after]});function fj(e){return e.kind===`segment`?aj(e.name)?nr(e.name,mA,mj,`above`):e:gj(e)}function pj(){return{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[Xk(yA),...KA(`door`),Xk(nA)]},{kind:`container`,direction:`horizontal`,children:Qk.map(({member:e})=>nr($k(e),tA(e),dj(e),`drop`))}]}}const mj=pj();function hj(e){let t=new Map;for(let e of fg(mj))e.kind===`segment`&&e.opens!==void 0&&t.set(e.opens.ref.key,e.opens.ref.variable);return[...t].map(([t,n])=>{let r=e.variables[n];if(r?.kind!==`state`||r.default===void 0)throw Error(`settings menu: the door folds "${t}", but "${n}" is not a state variable the menu declares with a default`);let i=`${Vk}.fold.${ZT(t)}`;return e.actions[i]={set:t,to:r.default},i})}function gj(e){return{...e,children:e.children.map(e=>fj(e))}}function _j(e){let t={variables:{[Vk]:cr(Vk,Zn)},actions:{[pA]:lr(Vk,Hk),[CA]:{doctor:`run`},[Uk]:{do:[...nO]},...Gk.actions,...qk.actions,...Yk.actions,[nA]:{save:!0},[hA]:{undo:!0},[_A]:{back:!0},[gA]:{do:[_A,...nj]},[xA]:{redo:!0},[rA]:{preset:`save`},[cA]:{themeDefault:`save`},[iA]:{preset:`delete`,name:`{{ .${ba.preset.effectiveVar} }}`}},segments:{[Vk]:{template:`{{ $door := ${or(Vk,sr(e),sr(`✖`))} }}{{ if ${ir(mA)} }}{{ fg (keptOn (color "error") (bgOf)) $door }}{{ else }}{{ $door }}{{ end }}`},[Wk]:{template:Gk.template},[Kk]:{template:qk.template,when:qk.when},[Jk]:{template:Yk.template,bg:Yk.bg,when:Yk.when},[yA]:bA,[nA]:$A,[cA]:dA,[rA]:{template:`{{ action "${rA}" "+ preset" }}`},[SA]:{template:`{{ action "${CA}" "🩺 doctor" }}`},[Uk]:{template:`{{ action "${Uk}" "✎ arrange" "✎ done" }}`}}};t.variables[lA]={kind:`input`,path:`themeDefault.differs`,type:`boolean`,default:!1},t.variables[uA]={kind:`input`,path:`themeDefault.theme`,type:`string`,default:``},t.variables[vA]={kind:`input`,path:`navigation.back`,type:`number`,default:0};for(let e of JA)t.variables[YA(e)]={kind:`input`,path:e,type:`number`,default:0};t.variables[Zk]=cr(Zk,`session`);for(let{member:e,label:n}of Qk){t.actions[eA(e)]=lr(Zk,e),t.actions[$k(e)]={do:[eA(e),...rj]};let r=zA(WA(e).map(e=>e.name)),i=`(ternary ${sr(` •`)} "" ${r})`,a=e=>`(print ${sr(e)} ${i})`;t.segments[$k(e)]={template:`{{ ${or($k(e),a(n),a(`▾ ${n}`))} }}`}}return Object.assign(t.variables,qk.variables,qA.variables),yj(t),vj(t),t.actions[Vk]={do:[pA,...nj,...hj(t)]},t}function vj(e){for(let t of dk){let n=gk(t.name),r=wA(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};let i=t.takesMark?KO:[];for(let n of i)e.actions[TA(t.name,n)]={doctor:`mark`,check:t.name,mark:n};let a=i.map(e=>` {{ action "${TA(t.name,e)}" "${DA[e]}" }}`).join(``);e.segments[EA(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${Km}" }} {{ action "${r}" "[fix]" }}{{ end }}`+(a===``?``:`{{ if ne .${n.sighting} "" }} {{ .${n.sighting} }}${a}{{ end }}`)+`{{ end }}`}}}function yj(e){for(let t of HA){Object.assign(e.actions,t.control.actions);let n=sA(t.name);e.actions[n]={reset:t.configKey},e.variables[RA(t.name)]={kind:`input`,path:`resettable.${t.name}`,type:`boolean`,default:!1};let r=`{{ if .${RA(t.name)} }} {{ action "${n}" "↺" }}{{ end }}`;Object.assign(e.variables,t.control.variables),e.segments[aA(t.name)]={template:`${t.control.template}${r}`},t.control.kind===`picker`&&[...t.control.list.rows.map(e=>({template:e})),...t.beneath].forEach((n,r)=>{e.segments[LA(t.name,r)]=n})}Object.assign(e.actions,qA.actions),e.actions[jA]=lr(OA,AA),e.segments[kA]={template:`{{ action "${jA}" "⚙" }}`}}function bj(e){let{variables:t,actions:n}=dO();Object.assign(e.variables,t),Object.assign(e.actions,n)}function xj(e){let t=_j(e.globals.menuGlyph??`🍫`);bj(t);let n={...e.presets},r=[];for(let t of Jg(e.presets)){let{node:i}=Zg(e,t),a=fj(sj(i));r.push(a),n[t]={...Xg(e.presets,t),root:a}}let i=XT(t,r,e);return{...e,variables:{...i,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:n}}const Sj=`${aE}live`,Cj=[`☐ live`,`☑ live`],wj=`${aE}done`,Tj=`${aE}cancel`,Ej=`${aE}rewind`,Dj=`${aE}changes`,Oj=`(gt .${Dj} 0)`,kj=`(or ${Oj} (gt .${XA} 0))`,Aj={variable:Sj,key:Sj,member:`open`};function jj(e){return`${aE}configuring.p${e}`}function Mj(e){return`and ${ir(oO)} (not ${ir(Aj)}) (ne .${jj(e)} "true")`}function Nj(e){return{kind:`template`,template:`{{ or ${e.map(e=>`(eq .${$D} "${tr(e)}")`).join(` `)} false }}`}}function Pj(e,t,n){return`{{ if ${Mj(e)} }}${t}{{ else }}${n}{{ end }}`}const Fj=`{{ and ${ir(oO)} .preset.customized }}`,Ij=sE;function Lj(e){return new Map([...n_(e),...zj(e)])}const Rj=`${aE}addable`;function zj(e){return new Map([[Rj,{members:Object.keys(e.segments).filter(e=>!Ij(e)),library:{groups:YD.map(e=>({id:e,label:XD[e]})),entry:t=>{let n=e.segments[t];return{group:n.group??`other`,...n.description!==void 0&&{description:n.description}}}}}]])}function Bj(e,t,n){return n.segments[e]={template:t,when:sO,bg:hO},{kind:`segment`,name:e}}function Vj(e,t,n){let r=`${aE}${e.presetIdent}.remove.${t}`;return e.artifacts.actions[r]={persist:e.rootKey,removeSegment:n},`{{ fg (${`readableOn (color "error") (bgOf) ${Mp}`}) (action "${r}" "✖") }}`}function Hj(e){return`{{ if ${ir(oO)} }}${e}{{ end }}`}function Uj(e,t){return e.reduce((e,t)=>`{{ if and ${ir(oO)} ${ir(t)} }}true{{ else }}${e}{{ end }}`,t)}function Wj(e){return e.flatMap(e=>[...fg(e)].flatMap(e=>e.kind===`segment`&&e.opens?.ref.key===`edit.configure`?[e.opens.ref]:[]))}function Gj(e,t,n){return`${iO}${e}.${t}.${n}`}function Kj(e,t,n,r){let i=cg(n),a=`${aE}${e.presetIdent}`,o=aO(e.presetIdent,i);e.configured.push(o);let s=`${a}.configure.${t}`,c=fE(s),l=`${s}.fold`;e.artifacts.actions[l]={set:c,to:Zn},e.artifacts.actions[s]={do:[`${s}.open`,l]},e.artifacts.actions[`${s}.open`]={set:$D,to:o};let u={},d=Object.entries(r).map(([r,o])=>{let s=Gj(e.presetIdent,i,r),l=`${iO}p${e.presetIdent}.d${t}.${r}`;e.artifacts.variables[l]={kind:`state`,key:s,default:kg(n.settings?.[r]??o.default)},u[r]={id:i,key:s,variable:l};let d=`${a}.setting.${t}.${r}`,f=wE(SE(o),s,l,d,c);if(Object.assign(e.artifacts.actions,f.actions),Object.assign(e.artifacts.variables,f.variables),f.kind===`inline`)return e.artifacts.segments[d]={template:f.template},{kind:`segment`,name:d};e.artifacts.segments[d]={template:f.template};let p=f.list.rows.map((t,n)=>{let r=`${d}.list.${n}`;return e.artifacts.segments[r]={template:t},{kind:`segment`,name:r}});return nr(d,f.list.ref,{kind:`container`,direction:`vertical`,children:p},`drop`)});return{term:`{{ action "${s}" "${xO}" }}`,ref:{variable:$D,key:$D,member:o},body:{kind:`container`,direction:`vertical`,children:d},drafts:u}}const qj=`${aE}label:`;function Jj(e){if(e.startsWith(qj)){let t=e.slice(qj.length);return t.slice(t.indexOf(`:`)+1)}return e.startsWith(`edit.`)?void 0:e}function Yj(e,t,n,r){let{artifacts:i}=n,a=cg(e),o=`${qj}${a}:${e.name}`;i.segments[o]={template:`{{ "${tr(a)}" }}`,...t.palette!==void 0&&{palette:t.palette}};let s=Object.fromEntries(wg.flatMap(t=>{let n=e.settings?.[t];return n===void 0?[]:[[t,n]]}));return{...nr(o,r.ref,r.body,`drop`,Uj([r.ref],`{{ ${Mj(n.presetIdent)} }}`)),...Object.keys(s).length>0&&{settings:s},drafts:Object.fromEntries(wg.map(e=>[e,r.drafts[e]]))}}function Xj(e,t,n,r){let{presetIdent:i,artifacts:a}=e,o=`${aE}${i}.insert.${t}`,s=`${aE}${i}.insertSeg.${t}`;a.actions[o]={persist:e.rootKey,insertSegmentFrom:Rj,anchor:n,relation:r};let c=uE(o),l=dE(s,o,void 0),u=mE(l),d=pE(l,c);return a.variables[l]=cr(l,Zn),a.variables[u]={kind:`state`,key:u,default:`0`},a.actions[d]=lr(l,c),a.actions[u]={set:u,int:!0},{host:s,template:`{{ $m := menu "${o}" "✚" "✕" }}{{ if ${ir({variable:l,key:l,member:c})} }}{{ $m }}{{ else }}{{ fg (${`readableOn (color "success") (bgOf) ${Mp}`}) $m }}{{ end }}`}}function Zj(e,t){let n=[],r=e.children.findIndex(e=>e.kind===`segment`&&!Ij(e.name)),i=e=>Zj(e,t);for(let[a,o]of e.children.entries()){if(o.kind===`container`){n.push(i(o));continue}let s=dg(o,i);if(Ij(o.name)){n.push(s);continue}let c=cg(o),l=a===r?[Xj(t,String(t.posCounter.n++),c,`before`)]:[],u=String(t.posCounter.n++),d=Xj(t,u,c,`after`),f=Vj(t,u,c),p=t.segments[o.name],m=Kj(t,u,o,Tg(p)),h=Hj(f),g=Hj(m.term),_={kind:`container`,direction:`horizontal`,children:[...l.map(e=>Bj(e.host,e.template,t.artifacts)),{...Yj(o,p,t,m),lead:h,trail:g},{...s,when:Pj(t.presetIdent,`false`,o.when??`true`),lead:h,trail:g,drafts:m.drafts},Bj(d.host,d.template,t.artifacts)]};n.push(e.direction===`vertical`?{kind:`container`,direction:`horizontal`,children:[_]}:_)}return{...e,children:n,...e.when!==void 0&&{when:Uj(Wj(n),Pj(t.presetIdent,`true`,e.when))}}}function Qj(e,t,n,r,i,a,o){let s=`${aE}${t}.resetLayout`,c=`${aE}${t}.customized`;return r.actions[s]={reset:n},r.segments[c]={template:`{{ action "${s}" "↺ reset layout" }}`,when:Fj},{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[...i,{kind:`segment`,name:c},a]},$j(e,o)]}}function $j(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),$j(n,t)]}:{...e,children:[...e.children,t]}}function eM(e,t,n,r,i,a){let{node:o}=Zg(e,t),s={presetIdent:ZT(t),rootKey:HD(t),segments:e.segments,artifacts:n,posCounter:{n:0},configured:[]},c=Zj(o,s);return n.variables[jj(s.presetIdent)]=Nj(s.configured),Qj(c,s.presetIdent,s.rootKey,n,r,i,a)}function tM(e){let t={variables:{},actions:{},segments:{}},n=pO(`${aE}help`,CO,[oO],t);t.variables[Sj]=cr(Sj,Zn),t.actions[Sj]=lr(Sj,Aj.member),t.segments[Sj]={template:ar(Sj,...Cj),when:sO};let r={kind:`segment`,name:Sj},i=n;t.variables[Dj]={kind:`input`,path:`history.sinceEdit`,type:`number`,default:0},t.actions[wj]={do:[nA,...nO]},t.segments[wj]={template:`{{ if ${kj} }}{{ action "${wj}" "✓ save" }}{{ else }}{{ action "${wj}" "✓ done" }}{{ end }}`,when:sO},t.actions[Ej]={rewind:!0},t.actions[Tj]={do:[Ej,...nO]},t.segments[Tj]={template:`{{ action "${Tj}" "↩ cancel" }}`,when:`{{ and ${ir(oO)} ${Oj} }}`};let a=[{kind:`segment`,name:wj},{kind:`segment`,name:Tj}],o={...e.presets},s=[];for(let n of Jg(e.presets)){let c=eM(e,n,t,a,r,i);s.push(c),o[n]={...Xg(e.presets,n),root:c}}let c=XT(t,s,e);return{...e,variables:{...c,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:o}}function nM(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function rM(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 iM(e,t,n){let r=ug(e,new Set(n.map(lg).filter(e=>e.includes(t)).flat()));return r===e?{seg:e}:{seg:e,id:r}}const aM=/^-?\d+$/;function oM(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 sM(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!aM.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 cM(e,t,n){return r=>r?aM.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 lM(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=>!aM.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}}return{kind:`int`}}function uM(e){return e===`config`?`set-config`:`set-state`}function dM(e,t,n){return t.kind===`int`?sM(`menu page "${e}"`):t.kind===`range`?cM(t.min,t.max,`${n} stepper "${e}"`):oM(t.allowed,`${n} "${e}"`,uM(n))}function fM(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:lM(e,n,t)}))}function pM(e,t,n,r){let i=new Map(Object.entries(e)),a=new Map,o=new Set(t.map(e=>e.key));for(let{key:e,spec:t}of n)if(o.has(e)&&t.kind!==`allow-list`)throw Error(`${r} gate: key "${e}" is written by the daemon's own links as one of a list of values, and cannot be declared as ${t.kind===`int`?`a paged cursor (int)`:`a bounded value (range)`}. Use a distinct key.`);let s=[...t.map(({key:e,allowed:t})=>({key:e,spec:{kind:`allow-list`,allowed:t}})),...n];for(let{key:t,spec:n}of fM(s,r)){if(!t)throw Error(`${r} gate: key is required`);if(t.includes(`/`))throw Error(`${r} gate: key "${t}" contains "/" — the wire shape splits on "/" so a slash-bearing key cannot be addressed. Use a slash-free key.`);if(Object.hasOwn(e,t))throw Error(`${r} gate: key "${t}" is a built-in ${r} key and cannot be re-claimed (built-in keys: ${Object.keys(e).join(`, `)})`);i.set(t,dM(t,n,r)),n.kind===`range`&&a.set(t,{min:n.min,max:n.max})}return{validate(e,t){let n=i.get(e);return n?n(t):{ok:!1,reason:`unknown ${r} key "${e}" (have: ${[...i.keys()].join(`, `)})`}},listKeys:()=>[...i.keys()],rangeParamsFor:e=>a.get(e)??null}}function mM(e,t,n){let r=[],i=0,a=new WeakMap;return{register(n,a){let o={key:n,allowed:a};pM(e,[o],[],t),r.push(o),i++;let s=!0;return()=>{s&&(s=!1,r.splice(r.indexOf(o),1),i++)}},gateFor(o){let s=a.get(o);if(s?.epoch===i)return s.gate;let c=pM(e,r,n(o),t);return a.set(o,{epoch:i,gate:c}),c}}}const hM=mM({},`config`,SM);function gM(e,t){return hM.register(e,t)}function _M(e){return hM.gateFor(e)}function vM(e,t){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:i_(e.from,t).members}}]:`cycle`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:e.cycle}}]:`removeSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[nM({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[nM({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:i_(e.insertSegmentFrom,t).members.map(t=>nM({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function yM(e,t){let n=LD(e).get(t);return n===void 0?null:String(n)}function bM(e){let t=new Set;for(let n of Object.values(e.actions)){`reset`in n&&t.add(n.reset);let e=`persist`in n?KD(n.persist):null;e?.scope===`preset-root`&&t.add(HD(e.preset))}return[...t].map(e=>({key:e,spec:{kind:`allow-list`,allowed:[]}}))}function xM(e){let t=Lj(e);return[...bM(e),...Object.values(e.actions).flatMap(e=>vM(e,t))]}function SM(e){return fM(xM(e),`config`)}function CM(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:EM(t.segments,wM(t.segments,e.segments??{})),root:Wg(e.root??Lg,t.root),actions:{...t.actions,...e.actions??{}},styles:{...t.styles,...e.styles??{}},presets:EM(t.presets,TM(t.presets,e.presets??{})),themeDefaults:EM(t.themeDefaults,e.themeDefaults??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function wM(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,n.settings===void 0?n:{...n,settings:{...e[t]?.settings,...n.settings}}]))}function TM(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,n.globals===void 0?n:{...n,globals:{...e[t]?.globals,...n.globals}}]))}function EM(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}function DM(e,t,n,r){return n.cache===void 0?(e.issues.push({path:`${t}.cache`,message:`${r} variables must declare a cache policy (one of: ${yg.join(`, `)})`,line:J(e.source,t.split(`.`))}),null):AM(e,`${t}.cache`,n.cache)}function OM(e){return{required:!0,json:jM(),parse:(t,n,r,i)=>DM(t,n,i,e)??void 0}}const kM={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&NM(n)?{ttl:n}:LE(e,t,`cache.ttl must be a duration string like "5s", "100ms", "2m", "1h"; got ${Z(n)}`)},watch_file:{json:{type:`string`,pattern:`^/`},parse:(e,t,n)=>{if(typeof n!=`string`)return LE(e,t,`cache.watch_file must be a path string, got ${Z(n)}`);let r=YE(`cache.watch_file`,n);return r===null?{watch_file:n}:LE(e,t,r)}},depends_on:{json:{type:`array`,items:{type:`string`}},parse:(e,t,n)=>Array.isArray(n)&&n.every(e=>typeof e==`string`)?{depends_on:n}:LE(e,t,`cache.depends_on must be an array of variable-name strings, got ${Z(n)}`)},key:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{key:n}:LE(e,t,`cache.key must be a non-empty template string, got ${Z(n)}`)},never:{json:{const:!0},parse:(e,t,n)=>n===!0?{never:!0}:LE(e,t,`cache.never must be the literal boolean true, got ${Z(n)}`)}}};function AM(e,t,n){return RE(e,kM,t,n)}function jM(){return nD(kM)}const MM=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function NM(e){return MM.test(e)}function PM(e,t,n){if(n===void 0)return{};if(!jE(n))return e.issues.push({path:t,message:`${t} must be an object, got ${X(n)}`,line:J(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=zE(e,oN,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function FM(){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 ${X(i)}`,line:J(e.source,t.split(`.`))});return}return i}}}function IM(){return{required:!0,json:{enum:[...xg]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!xg.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${xg.join(`, `)}, got ${JSON.stringify(i)}`,line:J(e.source,[...t.split(`.`),`field`])});return}return i}}}function LM(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return DE(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const RM={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:LE(e,t,`parse.text must be the literal boolean true, got ${Z(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?zM(e,t,n):LE(e,t,`parse.regex must be a pattern string, got ${Z(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:LE(e,t,`parse.json must be the literal boolean true, got ${Z(n)}`)}}};function zM(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return LE(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:LE(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function BM(){return{required:!1,json:nD(RM),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:J(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:RE(e,RM,`${t}.parse`,r.parse)??void 0)}}function VM(){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)=>jE(r.parse)&&`json`in r.parse?HM(e,t,r.default):OE(e,t,r,`default`)}}function HM(e,t,n){if(n!==void 0)return UM(n)?n:LE(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${Z(n)}`)??void 0}function UM(e){return e!==null&&WM(e)}function WM(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(WM);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(WM)}default:return!1}}const GM={value:FM(),default:UE()},KM={path:JE(),type:ZE([`string`,`number`,`boolean`]),default:LM()},qM={name:JE(),default:UE()},JM={path:XE(),readMode:ZE([`whole`,`first-line`]),parse:BM(),cache:OM(`file`),default:VM()},YM={command:JE(),parse:BM(),cache:OM(`shell`),default:VM()};function XM(e){return{cache:`${e}, so it takes no cache policy — delete the key`}}const ZM={template:JE(),default:UE()},QM=XM(`a template variable recomputes whenever a variable it reads changes`),$M={layout:JE(),default:UE()},eN=XM(`a time variable reads the instant its render is drawn at`),tN={field:IM(),default:UE()},nN=XM(`a git variable is refreshed by the daemon's own watch on the repository`),rN={key:JE(),default:UE()},iN=`kind`;function aN(e,t,n={}){return{...BE(iN,e,t),parse:(r,i,a)=>{NE(r,n,i,a);let o=PE(r,t,i,a);return o===null?null:{kind:e,...o}}}}const oN={tag:iN,noun:`source kind`,memberNoun:`variable`,arms:{literal:aN(`literal`,GM),input:aN(`input`,KM),env:aN(`env`,qM),file:aN(`file`,JM),shell:aN(`shell`,YM),template:aN(`template`,ZM,QM),time:aN(`time`,$M,eN),git:aN(`git`,tN,nN),state:aN(`state`,rN)}};function sN(){return tD(oN)}function cN(){return{type:`object`,additionalProperties:sN()}}const lN=new Map([[`gitTaculous`,{kind:`built-in`,to:`gitaculous`}],[`git`,{kind:`built-in`,to:`gitaculous`}],[`settings.menu`,{kind:`built-in`,to:`candybar.menu`}],[`ticket`,{kind:`plugin`,to:`plugins.lit.ticket`,source:`promptctl/links-issue-tracker`}]]);function uN(e){let t=lN.get(e);if(t===void 0)return``;switch(t.kind){case`built-in`:return` (the built-in segment "${e}" was renamed to "${t.to}" — update this reference)`;case`plugin`:return` (the built-in segment "${e}" became "${t.to}", a segment of the plugin \`cc-candybar plugin install ${t.source}\` installs — update this reference)`}}const dN=/^[A-Za-z_][A-Za-z0-9_]*$/,fN={pattern:dN.source},pN={anyOf:[{type:`boolean`},{type:`string`},{type:`integer`}]},mN={type:`object`,additionalProperties:!1,required:[`label`,`domain`,`default`],properties:{label:{type:`string`,pattern:`^[^\\n\\r]+$`},domain:{anyOf:[{const:`bool`},{type:`array`,items:{type:`string`,pattern:`^[^/\\n\\r]+$`},minItems:1,uniqueItems:!0},{type:`object`,additionalProperties:!1,required:[`min`,`max`],properties:{min:{type:`integer`},max:{type:`integer`},step:{type:`integer`,minimum:1},atLeast:{type:`string`,...fN}}}]},default:pN}},hN=[`label`,`domain`,`default`],gN=[`min`,`max`,`step`,`atLeast`];function _N(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))})}function vN(e,t,n){if(n===`bool`)return`bool`;if(Array.isArray(n)){let r=n.filter(e=>typeof e==`string`);if(n.length===0||r.length!==n.length)return _N(e,t,`a list domain must be a non-empty list of words, got ${JSON.stringify(n)}`);if(new Set(r).size!==r.length)return _N(e,t,`a list domain names each word once, got ${JSON.stringify(n)}`);let i=r.filter(e=>e===``||e.includes(`/`)||/[\n\r]/.test(e));return i.length>0?_N(e,t,`a list domain's words must be non-empty, slash-free, and newline-free — configure mode writes each on the set-state wire — got ${JSON.stringify(i)}`):r}if(jE(n)){let{min:r,max:i,step:a=1,atLeast:o}=n;return Object.keys(n).filter(e=>!gN.includes(e)).length===0&&Number.isInteger(r)&&Number.isInteger(i)&&r<=i&&Number.isInteger(a)&&a>=1&&(o===void 0||typeof o==`string`)?{min:r,max:i,step:a,...o!==void 0&&{atLeast:o}}:_N(e,t,`a range domain is { min, max, step?, atLeast? } with integers min ≤ max, a whole step ≥ 1, and atLeast naming another range setting, got ${JSON.stringify(n)}`)}return _N(e,t,`domain must be "bool", a list of words, or { min, max }, got ${Z(n)}`)}function yN(e,t,n){if(!jE(n))return _N(e,t,`${t} must be { label, domain, default }, got ${X(n)}`);for(let r of Object.keys(n))hN.includes(r)||_N(e,`${t}.${r}`,`Unknown setting key "${r}". Expected one of: ${hN.join(`, `)}`);let{label:r}=n,i=typeof r==`string`&&r.length>0&&!/[\n\r]/.test(r);i||_N(e,`${t}.label`,`a setting needs a one-line, non-empty "label" — the name its control shows, spliced into a synthesized template string — got ${Z(r)}`);let a=vN(e,`${t}.domain`,n.domain);if(!i||a===void 0)return;let o={label:r,domain:a,default:n.default};return!bN(n.default)||!Og(o,n.default)?_N(e,`${t}.default`,`default must be ${Mg(o)}, got ${Z(n.default)}`):o}function bN(e){return typeof e==`boolean`||typeof e==`string`||typeof e==`number`}const xN={theme:`its default for this segment is segments.<name>.palette, and a placement sets its own with settings: { ${Sg}: "<theme>" }`,effect:`a placement follows the bar's effect, or sets its own with settings: { effect: "<effect>" }`};function SN(e){return wg.includes(e)}function CN(){return{required:!1,json:{type:`object`,propertyNames:{...fN,not:{enum:[...wg]}},additionalProperties:mN},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!jE(i))return _N(e,a,`${a} must be an object of name → { label, domain, default }, got ${X(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i)){if(!dN.test(t)){_N(e,`${a}.${t}`,`setting name "${t}" is read as .settings.${t} in a template, so it must be an identifier (letters, digits, _; not starting with a digit)`);continue}if(SN(t)){_N(e,`${a}.${t}`,`setting "${t}" is one every placement already has — ${xN[t]}`);continue}let r=yN(e,`${a}.${t}`,n);r!==void 0&&(o[t]=r)}return o}}}const wN=oE.map(e=>e.replace(/\./g,`\\.`)).join(`|`);function TN(){return{required:!1,json:{type:`string`,minLength:1,pattern:`^(?!${wN})[^:/]+$`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return typeof i==`string`&&i.length>0&&!/[:/]/.test(i)&&!sE(i)?i:_N(e,`${t}.${n}`,`a placement "id" must be a non-empty string without "/" or ":", outside the reserved ${oE.map(e=>`"${e}"`).join(`, `)} namespaces, got ${Z(i)}`)}}}function EN(){return{required:!1,json:{type:`object`,propertyNames:fN,additionalProperties:pN},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!jE(i))return _N(e,a,`a placement's "settings" must be an object of setting name → value, got ${X(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i))bN(n)?o[t]=n:_N(e,`${a}.${t}`,`setting "${t}" must be a boolean, a word, or a number, got ${X(n)}`);return o}}}function DN(e){return new Set(Object.keys(e.segments).filter(e=>!sE(e)))}function ON(e,t,n){if(t===void 0)return{};if(!jE(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${X(t)}`,line:J(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=ME(e,n.has(i)?PN:NN,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function kN(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?LE(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${uN(t.slice(9))}`)??void 0:EE(e,t,r,n)??void 0}}function AN(){return{required:!1,json:{anyOf:[{const:`auto`},{const:`fill`},{type:`integer`,minimum:1}]},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0){if(i===`auto`)return`auto`;if(i===`fill`)return`fill`;if(typeof i==`number`&&Number.isInteger(i)&&i>0)return i;e.issues.push({path:`${t}.${n}`,message:`width must be "auto", "fill", or a positive integer, got ${Z(i)}`,line:J(e.source,[...t.split(`.`),n])})}}}}function jN(){return{required:!1,json:cN(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return PM(e,`${t}.${n}`,i)}}}const MN={template:kN(),description:UE(),group:ZE(JD),width:AN(),justify:ZE(Ng),truncate:ZE(Pg),bg:UE(),fg:UE(),when:UE(),palette:qE(),vars:jN(),settings:CN()},NN={noun:`segment key`,fields:MN},PN={noun:`segment key`,fields:{...MN,template:UE()}},FN=`#/definitions/LayoutNode`,IN={kind:`container`,direction:`vertical`,children:[]};function LN(e){return{required:!0,json:{const:e},parse:()=>e}}function RN(){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 ${Z(i)}`,line:J(e.source,[`root`])}),``)}}}function zN(){return{required:!0,json:{enum:[...og]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&og.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${og.join(`, `)} (got ${JSON.stringify(i)})`,line:J(e.source,[`root`])}),`vertical`)}}}function BN(e){return{required:!0,json:{type:`array`,items:{$ref:FN}},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 ${X(a)}`,line:J(t.source,[`root`])}),[])}}}const VN={noun:`layout-node key`,fields:{kind:LN(`segment`),name:RN(),when:UE(),id:TN(),settings:EN()}},HN=()=>ZE(cp),UN={noun:`layout-node key`,fields:{kind:LN(`container`),direction:zN(),children:BN(VE(()=>JN)),when:UE(),distribution:HN()}};function WN(){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 ${Z(i)}`,line:J(e.source,[`root`])}),``)}}}const GN={noun:`layout-node key`,fields:{seg:WN(),when:UE(),id:TN(),settings:EN()}},KN={noun:`layout-node key`,fields:{h:BN(VE(()=>JN)),when:UE(),distribution:HN()}},qN={noun:`layout-node key`,fields:{v:BN(VE(()=>JN)),when:UE(),distribution:HN()}},JN=(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:J(e.source,[`root`])}),IN):{kind:`segment`,name:n};if(!jE(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 ${X(n)}`,line:J(e.source,[`root`])}),IN;if(n.kind===`container`)return ME(e,UN,t,n)??IN;if(n.kind===`segment`)return ME(e,VN,t,n)??IN;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
146
152
  Old: { kind: "cells", segments: ["seg1", "seg2"] }
147
- New: { h: ["seg1", "seg2"] }`,line:J(e.source,[`root`])}),NM;if(n.kind===`group`){let r=zT(e,QM,t,n);return r===null?NM:(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}),eN(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:J(e.source,[`root`])}),NM}if(a){let r=zT(e,HM,t,n);return r===null?NM:{kind:`segment`,name:r.seg,...r.when!==void 0&&{when:r.when},...r.id!==void 0&&{id:r.id},...r.settings!==void 0&&{settings:r.settings}}}if(r){let r=zT(e,UM,t,n);return r===null?NM:{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=zT(e,WM,t,n);return r===null?NM:{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:J(e.source,[`root`])}),NM};function KM(){return{required:!0,json:{type:`object`,propertyNames:{pattern:Uh.source},additionalProperties:{$ref:MM}},parse:(e,t,n,r)=>{let i=r[n];if(!RT(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${X(i)}`,line:J(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!Uh.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:J(e.source,[...t.split(`.`),n,r])});continue}a[r]=GM(e,`${t}.${n}.${r}`,o)}return a}}}const qM={noun:`root key`,fields:{rows:KM(),when:XT(),distribution:zM()}};function JM(e,t,n){return RT(n)&&`rows`in n?zT(e,qM,t,n)??{rows:{}}:GM(e,t,n)}function YM(){return{required:!0,json:{type:`string`,pattern:Uh.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!Uh.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 "${Zn}", got ${Z(i)}`,line:J(e.source,[`root`])});return}return i}}}function XM(){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 ${Z(i)}`,line:J(e.source,[`root`])});return}return i}}}}function ZM(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=NT(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:J(e.source,[...t.split(`.`),n])});return}return i}}}}const QM={noun:`layout-node key`,fields:{kind:PM(`group`),name:YM(),label:ZM(),open:ZT(),direction:iE(mh),key:XM(),bg:XT(),fg:XT(),when:XT(),distribution:zM(),children:LM(JT(()=>GM))}};function $M(e){return e.key??`groups.`+e.name}function eN(e){let t=uT+e.name;return nr(t,{variable:t,key:$M(e),member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},`drop`,e.when)}function tN(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,[`root`])})}function nN(e,t){gT(e,t,uT,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&tN(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}.`)&&$M(t)===$M(r)&&tN(e,t.path,`group "${t.name}" shares key "${$M(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=$M(t);if(i.has(n)||i.set(n,Zn),t.open===!0){let r=i.get(n);r!==`closed`&&tN(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=uT+e.name,r=$M(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=cr(r,i.get(r)),o[t]=lr(r,e.name),s[t]={template:ar(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}}const rN=`menu`,iN=`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`,aN=e=>e.kind===`call`&&e.name===`dict`,oN=e=>e.kind===`literal`&&typeof e.value!=`object`,sN=e=>$n(``,e,2)===void 0;function cN(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&&aN(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(aN))return t(`whose options (dict …) is not its last argument — ${iN}`);if(i!==void 0&&a===void 0&&!oN(i)&&sN(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=$n(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${iN}`);let c=a===void 0?{}:Mb(a);if(c===null)return t(`whose options (dict …) is not fully literal — every option value must be a literal so the menu can be gated at load (a dynamic entry like (dict "key" .x) cannot)`);let l;try{l=TT(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=hT(u);if(e!==void 0)return t(`whose accordion key "${u}" lands in the reserved "${e}" namespace — a key is collapsed to an identifier (${JSON.stringify(u)} becomes "${yT(u)}"), so it would share one open-state key with the synthesized accordion that owns that namespace instead of grouping only your own menus. Name the group without the reserved prefix`)}return{kind:`ok`,apply:n.value,options:l}}function lN(e){let t=Vv({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===rN).map(cN)}catch{return`parse-failed`}}function uN(e){let t=Vv({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(rN)}catch{return!1}}function dN(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,[`root`])})}function fN(e,t){gT(e,t,dT,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))uN(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:J(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`&&uN(i)&&dN(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 bh(Xh(t.root)))typeof n.when==`string`&&uN(n.when)&&dN(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.`);for(let[t,{template:r}]of Object.entries(n)){if(r===void 0||!uN(r))continue;let n=lN(r);if(n!==`parse-failed`)for(let r of n){let n=r.kind===`issue`?r.message:pN(r.apply);n!==void 0&&dN(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${n}.`)}}}function pN(e){if(e===``)return`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`;if(_T(e)===`closed`)return`whose apply action is named "${Zn}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action`}function mN(e,t){let n={},r={},i=new Map,a=new Set,o=(e,n)=>{let r=`segments.${e}`;a.has(`${r}\0${n}`)||(a.add(`${r}\0${n}`),t.push({path:r,message:n}))};for(let t of ng(e.presets)){let a=new Map,s=new Map;for(let c of bh(ag(e,t).node)){if(c.kind!==`segment`)continue;let t=e.segments[c.name];if(t===void 0)continue;i.has(c.name)||i.set(c.name,lN(t.template));let l=i.get(c.name);if(l===`parse-failed`)continue;let u=gh(c);for(let[e,t]of l.entries()){if(t.kind===`issue`||pN(t.apply)!==void 0)continue;let{apply:i,options:l}=t,d=_T(i),f=vT(u,i,l.key),p=xT(f),m=l.key===void 0?`ind ${u} ${i}`:`key ${l.key}`,h=[f,p].find(e=>{let t=a.get(e);return t!==void 0&&t!==m});if(h!==void 0){o(c.name,`two {{ menu }} disclosures normalize to the same state key ("${h}") 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}a.set(f,m),a.set(p,m);let g=bT(f,d),_=`${c.name}\0${e}`,v=s.get(g);if(v!==void 0&&v!==_){o(c.name,`two {{ menu }} disclosures resolve to the same identity ("${g}") — ${l.key===void 0?`a segment cannot contain two menus over the same apply action "${i}"`:`menus sharing key "${l.key}" must have distinct apply actions`}.`);continue}s.set(g,_),r[g]=lr(f,d),n[f]=cr(f,Zn),n[p]={kind:`state`,key:p,default:`0`},r[p]={set:p,int:!0}}}}return{...e,variables:{...e.variables,...n},actions:{...e.actions,...r}}}const hN=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`back`,`rewind`,`save`,`preset`,`themeDefault`,`doctor`,`ceiling`,`slash`,`do`];function gN(e){return e.ceiling===`set`?[`set`,e.to]:[`clear`]}function _N(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function vN(e,t){if(t===void 0)return{};if(!RT(t))return Q(e,`actions`,`actions must be an object, got ${X(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=yN(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function Q(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))})}function yN(e,t,n){if(!RT(n))return Q(e,t,`${t} must be an action object, got ${X(n)}`),null;if(`persistWhen`in n)return Q(e,t,`${t}.persistWhen was removed: declare the \`set\` alone — a session pick is a draft until a \`{ save: true }\` action writes every unsaved setting to the config file`),null;let r=hN.filter(e=>e in n);return r.length===1?bN[r[0]](e,t,n):(Q(e,t,`action must declare exactly one of: ${hN.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const bN={set:(e,t,n)=>eP(e,t,n,`set`,XN),persist:(e,t,n)=>eP(e,t,n,`persist`,ZN),copy:xN(`copy`),open:xN(`open`),reset:SN,undo:wN(`undo`),redo:wN(`redo`),back:wN(`back`),rewind:wN(`rewind`),save:wN(`save`),preset:TN,themeDefault:EN,doctor:ON,ceiling:kN,slash:AN,do:jN};function xN(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&Q(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);let i=NT(t,n,r,e);return i===null?null:{[e]:i}}}function SN(e,t,n){for(let r of Object.keys(n))r!==`reset`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a reset action. Expected only: reset`);let r=MN(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}}const CN={undo:`it steps the session's settings history`,redo:`it steps the session's settings history`,back:`it steps the session's navigation history`,rewind:`it steps the session's settings history back to where edit mode opened`,save:`it saves the session's unsaved settings`};function wN(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&Q(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);return r[e]===!0?{[e]:!0}:(Q(t,`${n}.${e}`,`${e} must be the literal true (it takes no key — ${CN[e]}), got ${Z(r[e])}`),null)}}function TN(e,t,n){let r=n.preset,i=r===`save`?[`preset`]:[`preset`,`name`];for(let r of Object.keys(n))i.includes(r)||Q(e,`${t}.${r}`,`Unknown key "${r}" on a preset action. Expected only: ${i.join(`, `)}`);if(r!==`save`&&r!==`delete`)return Q(e,`${t}.preset`,`preset must be "save" or "delete", got ${Z(r)}`),null;if(r===`save`)return{preset:`save`};let a=NT(e,t,n,`name`);return a===null?null:{preset:`delete`,name:a}}function EN(e,t,n){for(let r of Object.keys(n))r!==`themeDefault`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a themeDefault action. Expected only: themeDefault`);return n.themeDefault===`save`?{themeDefault:`save`}:(Q(e,`${t}.themeDefault`,`themeDefault must be "save" (it saves the look the session draws as the active theme's default), got ${Z(n.themeDefault)}`),null)}const DN={run:[`doctor`],fix:[`doctor`,`check`],mark:[`doctor`,`check`,`mark`]};function ON(e,t,n){let r=n.doctor,i=typeof r==`string`&&Object.hasOwn(DN,r),a=i?DN[r]:[...new Set(Object.values(DN).flat())];for(let r of Object.keys(n))a.includes(r)||Q(e,`${t}.${r}`,`Unknown key "${r}" on a doctor action. Expected only: ${a.join(`, `)}`);if(!i)return Q(e,`${t}.doctor`,`doctor must be ${Object.keys(DN).map(e=>`"${e}"`).join(`, `)}, got ${Z(r)}`),null;if(r===`run`)return{doctor:`run`};let o=n.check,s=r===`mark`?uO:lO;if(typeof o!=`string`||!s.some(e=>e.name===o))return Q(e,`${t}.check`,`doctor ${r} must name a check (have: ${s.map(e=>e.name).join(`, `)}), got ${Z(o)}`),null;if(r===`fix`)return{doctor:`fix`,check:o};let c=n.mark;return JD.includes(c)?{doctor:`mark`,check:o,mark:c}:(Q(e,`${t}.mark`,`doctor mark must be ${JD.map(e=>`"${e}"`).join(` or `)}, got ${Z(c)}`),null)}function kN(e,t,n){let r=n.ceiling,i=r===`clear`?[`ceiling`]:[`ceiling`,`to`];for(let r of Object.keys(n))i.includes(r)||Q(e,`${t}.${r}`,`Unknown key "${r}" on a ceiling action. Expected only: ${i.join(`, `)}`);if(r===`clear`)return{ceiling:`clear`};if(r!==`set`)return Q(e,`${t}.ceiling`,`ceiling must be "set" or "clear", got ${Z(r)}`),null;let a=n.to;return typeof a!=`string`||a.trim()===``?(Q(e,`${t}.to`,`ceiling set needs \`to\`: a memento ceiling value such as "+100_000", "400000" or "off", got ${Z(a)}`),null):{ceiling:`set`,to:a}}function AN(e,t,n){for(let r of Object.keys(n))r!==`slash`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a slash action. Expected only: slash`);let r=EO(n.slash);return r.kind===`refused`?(Q(e,`${t}.slash`,r.reason),null):{slash:r.line}}function jN(e,t,n){for(let r of Object.keys(n))r!==`do`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a do action. Expected only: do`);let r=n.do;return!Array.isArray(r)||r.length<2||r.some(e=>typeof e!=`string`||e===``)?(Q(e,`${t}.do`,`do must list at least two action names (the first is the click's face, the rest ride along in the same click), got ${Z(r)}`),null):{do:r}}function MN(e,t,n,r,i,a){let o=NT(e,t,r,n);if(o===null)return null;let s=`${t}.${n}`;return o===``?(Q(e,s,i),null):o.includes(`/`)?(Q(e,s,a(o)),null):o}const NN={set:`the SessionState key to write`,persist:`the config globals field to write`};function PN(e,t,n,r){let i=NN[r],a=MN(e,t,r,n,`${r} key must be non-empty (${i})`,e=>`${r} key "${e}" contains "/" — keys must be slash-free`);return a===null?null:{[r]:a}}function FN(e){return e===`set`?`set-state`:`set-config`}const IN={to:tP(`set`)},LN={to:tP(`persist`)},RN={from:nP(`set`)},zN={from:nP(`persist`)},BN={min:sP(),max:sP(),by:sP()},VN={int:iP()},HN={cycle:rP(`set`)},UN={cycle:rP(`persist`)},WN={removeSegment:aP(`removeSegment`)},GN={insertSegment:aP(`insertSegment`),anchor:aP(`anchor`),relation:oP()},KN={insertSegmentFrom:nP(`persist`),anchor:aP(`anchor`),relation:oP()},qN={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},JN={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function YN(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=[e],s=(e,n,r)=>VT(e,t,n,r),c=aE(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?YT(s,...n):s}}const XN=[YN(`set`,IN),YN(`set`,RN),YN(`set`,BN,[qN,JN]),YN(`set`,VN),YN(`set`,HN)],ZN=[YN(`persist`,LN),YN(`persist`,zN),YN(`persist`,BN,[qN,JN]),YN(`persist`,UN),YN(`persist`,WN),YN(`persist`,GN,[],[`insertSegment`]),YN(`persist`,KN,[],[`insertSegmentFrom`])];function QN(e){let t=[`"to" (a literal value)`,`"from" (an option domain — a registered domain name like "themes"/"endcaps"/"styles", 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 $N(e){let t=QN(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 eP(e,t,n,r,i){let a=PN(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return Q(e,t,`${$N(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)||Q(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 tP(e){let t=FN(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>MN(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 nP(e){let t=FN(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===``){Q(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){Q(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===``)){Q(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){Q(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){Q(n,s,`${i} array members must be unique — a duplicated value would render the same picker option twice`);return}return r}Q(n,s,`${i} must be a domain name (a string) or an inline domain (an array of strings), got ${Z(o)}`)}}}function rP(e){let t=FN(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`)){Q(n,s,`cycle must be an array of strings (the enumerated values a click steps through), got ${X(o)}`);return}let c=o;if(c.length<2){Q(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){Q(n,s,`cycle members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}if(u.length>0){Q(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){Q(n,s,`cycle members must be unique — the successor of a duplicated member is ambiguous`);return}return c}}}function iP(){return{required:!0,json:{const:!0},parse:(e,t,n,r)=>{if(r[n]!==!0){Q(e,`${t}.${n}`,`int must be the literal true (declares the key an unbounded integer cursor — a paged picker's page key), got ${Z(r[n])}`);return}return!0}}}function aP(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=NT(t,n,i,r);if(a===null)return;let o=`${n}.${r}`;if(a===``){Q(t,o,`${e} must be non-empty (a segment name)`);return}if(a.includes(`/`)||a.includes(`:`)){Q(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 oP(){return{required:!0,json:{enum:[`before`,`after`]},parse:(e,t,n,r)=>{let i=r[n];if(i!==`before`&&i!==`after`){Q(e,`${t}.${n}`,`relation must be "before" or "after", got ${Z(i)}`);return}return i}}}function sP(){return{required:!0,json:{type:`integer`},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`number`||!Number.isInteger(i)){Q(e,`${t}.${n}`,`${n} must be an integer, got ${Z(i)}`);return}return i}}}function cP(e,t,n){return`${e}: "${t}" is an endcaps shape, not a style — endcaps were renamed from "style" to "endcaps"; write ${n}: "${t}"`}const lP={noun:`style key`,fields:{hueShift:$T(),chromaScale:$T({min:0}),lightnessScale:$T(),lightnessShift:$T()}};function uP(e,t){if(!RT(t))return e.issues.push({path:`styles`,message:`styles must be an object mapping style names to adaptation objects, got ${X(t)}`,line:J(e.source,[`styles`])}),{};let n={};for(let[r,i]of Object.entries(t)){if(r===``||r.includes(`/`)){e.issues.push({path:`styles.${r}`,message:`style name ${JSON.stringify(r)} must be non-empty and slash-free — a style picker writes the name on the set-state wire, which rejects empty values and splits on "/"`,line:J(e.source,[`styles`,r])});continue}if(Bp(r)){e.issues.push({path:`styles.${r}`,message:cP(`styles.${r}`,r,`globals.endcaps`),line:J(e.source,[`styles`,r])});continue}let t=zT(e,lP,`styles.${r}`,i);t!==null&&(n[r]={...Ls,...t})}return n}const dP={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:JM(e,`${t}.${n}`,r[n])},globals:{required:!1,json:RE(),parse:(e,t,n,r)=>r[n]===void 0?void 0:LE(e,`${t}.${n}`,r[n])}}};function fP(e,t){if(!RT(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${X(t)}`,line:J(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:J(e.source,[`presets`,r])});continue}let t=zT(e,dP,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function pP(e,t){if(t===void 0)return{};if(!RT(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${X(t)}`,line:J(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 ${Z(i)}`,line:J(e.source,[`helpers`,r])});continue}n[r]=i}return n}const mP=new Map([[`session.budget.amount`,{segment:`session`,setting:`budget`}],[`session.budget.warningThreshold`,{segment:`session`,setting:`warnAt`}],[`today.budget.amount`,{segment:`today`,setting:`budget`}],[`today.budget.warningThreshold`,{segment:`today`,setting:`warnAt`}],[`block.budget.heatThreshold`,{segment:`block`,setting:`warnAt`}],[`block.budget.warningThreshold`,{segment:`block`,setting:`errorAt`}],[`weekly.budget.heatThreshold`,{segment:`weekly`,setting:`warnAt`}],[`weekly.budget.warningThreshold`,{segment:`weekly`,setting:`errorAt`}],[`burn.eta.errorMinutes`,{segment:`burnrate`,setting:`errorWithin`}],[`burn.eta.warnMinutes`,{segment:`burnrate`,setting:`warnWithin`}]]);function hP(e){return`it became the "${e.setting}" setting of each "${e.segment}" placement — set it on the placement where a row places "${e.segment}" ({ seg: "${e.segment}", settings: { ${e.setting}: <value> } }), or redeclare segments.${e.segment}.settings.${e.setting} with the default every placement should start from`}function gP(e){let t=mP.get(e);return t===void 0?void 0:`variables.${e} is no longer read: ${hP(t)}`}function _P(e){let t=mP.get(e);return t===void 0?``:` — ".${e}" is no longer a variable: ${hP(t)}; a "${t.segment}" template reads it as ".settings.${t.setting}"`}function vP(e,t){let n=new Map;for(let e of Object.keys(t)){let t=iT(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:J(e.source,[`presets`])})}function yP(e,t,n){let r=[[[`globals`],t.globals.style,`globals.endcaps`],[[`editGlobals`],t.editGlobals.style,`editGlobals.endcaps`],...Object.entries(t.presets).map(([e,t])=>[[`presets`,e,`globals`],t.globals?.style,`presets.${e}.globals.endcaps`]),...Object.entries(t.themeDefaults).map(([e,t])=>[[`themeDefaults`,e],t.style,`globals.endcaps`])];for(let[n,i,a]of r){if(i===void 0||Sp(i)||Object.prototype.hasOwnProperty.call(t.styles,i))continue;let r=`${n.join(`.`)}.style`;e.issues.push({path:r,message:Bp(i)?cP(r,i,a):`${r} "${i}" does not match any declared style (have: ${Object.keys(t.styles).join(`, `)})`,line:J(e.source,[...n,`style`])})}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:J(e.source,[`globals`,`preset`])}),vP(e,t.presets),HP(e,t);let i=Fg(t);for(let t of i.names)t!==`settings`&&!t.startsWith(SP)||e.issues.push({path:`variables`,message:`variable "${t}" is named under "settings", which a segment's templates read as its placement's own settings (.settings.<name>) — rename it`,line:J(e.source,[`variables`,t])});let a=(t,n,r)=>{aA(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${RO}" ${aA(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}),oA(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${RO}" under a \`when\` or inside a disclosure body — the menu is visible under every condition, so its placement may not be gated. Move it to an ungated position, or remove it to put the menu at its default position.`,line:r}),o(t)&&e.issues.push({path:n,message:`${n} sets "distribution" on a container inside a bar cell — everything inside a cell wears that cell's hue and shade, so it would place nothing. Set it on the row whose children are the cells (the horizontal container) or on the root, which places the rows.`,line:r});let i=new Map;for(let e of bh(t)){if(e.kind!==`segment`)continue;let t=gh(e);i.set(t,[...i.get(t)??[],e])}for(let[t,a]of i){if(a.length<2)continue;let o=a[1].name,s=vh(o,new Set(i.keys()));e.issues.push({path:n,message:`${n} has ${a.length} placements with the id "${t}" — an id names one placement (its settings, its menus' open state, and edit mode all address it), so give each its own: { seg: "${o}", id: "${s}" }. A placement without an "id" takes its segment's name.`,line:r})}};function o(e,t=!1){return e.kind===`segment`?!1:t&&e.distribution!==void 0||e.children.some(n=>o(n,t||hh[e.direction]===`cell`))}let s=(n,r)=>{for(let[a,o]of Zh(n,r)){let n=J(e.source,o.split(`.`));if(a.when!==void 0&&(PP(e,`${o}.when`,a.when,i,{line:n}),NP(e,`${o}.when`,a.when,n)),a.kind===`segment`){if(nA(a.name)){(a.id!==void 0||a.settings!==void 0)&&e.issues.push({path:o,message:`${r} gives the global settings menu anchor "${RO}" an id or settings — the anchor only marks where the menu goes, so place it as the bare name "${RO}"`,line:n});continue}Object.prototype.hasOwnProperty.call(t.segments,a.name)||e.issues.push({path:o,message:`${r} entry "${a.name}" does not match any declared segment${sM(a.name)}`,line:n}),AP(e,t,a,o,n)}}};n.root!==void 0&&s(n.root,`root`);for(let[e,t]of Object.entries(n.presets??{}))t.root!==void 0&&s(t.root,`presets.${e}.root`);let c=new Map([[`root`,Yh(t.root)]]);for(let e of ng(t.presets)){let{node:n,path:r}=ag(t,e);c.set(r,n)}for(let[t,n]of c)a(n,t,J(e.source,t.split(`.`)));VP(e,t,i,()=>!0)}const bP=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function xP(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=J(e.source,[`actions`,n,r]);if(!ng(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${ng(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=(r,i)=>{Object.prototype.hasOwnProperty.call(t.segments,i)||e.issues.push({path:s,message:`actions.${n}: ${r} "${i}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})${sM(i)}`,line:c})},p=new Set(_h(ag(t,a).node)),m=(r,i)=>{!oM.has(i)||p.has(i)||Object.prototype.hasOwnProperty.call(t.segments,i)||e.issues.push({path:s,message:`actions.${n}: ${r} "${i}" names no placement${sM(i)}`,line:c})};`removeSegment`in o&&m(`removeSegment`,o.removeSegment),`insertSegment`in o&&f(`insertSegment`,o.insertSegment),(`insertSegment`in o||`insertSegmentFrom`in o)&&m(`anchor`,o.anchor)}const SP=`settings.`;function CP(e,t){return{...e,names:new Set([...e.names,...Object.keys(t).map(e=>SP+e)])}}function wP(e,t,n){let r=e=>`segments.${t}.settings.${e}`,i=(n,i)=>{e.issues.push({path:r(n),message:`${r(n)}: ${i}`,line:J(e.source,[`segments`,t,`settings`,n])})},a=DP(n);for(let{setting:e,message:t}of a)i(e,t);if(!(a.length>0))for(let{setting:e,message:t}of Fh(n,EP(n)))i(e,`the defaults do not stand together: ${t}`)}function TP(e){return DP(e).length>0||Fh(e,EP(e)).length>0}function EP(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default]))}function DP(e){let t=t=>Ph(OP(e,t))?.atLeast;return Object.keys(e).flatMap(n=>{let r=t(n);if(r===void 0)return[];if(r===n||Ph(OP(e,r))===void 0)return[{setting:n,message:`atLeast "${r}" must name another range setting of this segment (its range settings: ${kP(e,n).join(`, `)||`none`})`}];let i=[n];for(let e=r;e!==void 0;e=t(e)){if(e===n)return i.every(e=>n<=e)?[{setting:n,message:`atLeast closes a cycle (${[...i,n].join(` ≥ `)}) — every setting on it could only ever equal the rest`}]:[];if(i.includes(e))return[];i.push(e)}return[]})}function OP(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function kP(e,t){return Object.entries(e).filter(([e,n])=>e!==t&&Ph(n)!==void 0).map(([e])=>e)}function AP(e,t,n,r,i){let a=Object.prototype.hasOwnProperty.call(t.segments,n.name)?t.segments[n.name]:void 0;if(a===void 0)return;let o=Nh(a),s=`${r}: placement "${gh(n)}" of segment "${n.name}"`;for(let[t,a]of Object.entries(n.settings??{})){let c=Object.prototype.hasOwnProperty.call(o,t)?o[t]:void 0,l=c===void 0?`sets "${t}", which segment "${n.name}" does not declare (it has: ${Object.keys(o).join(`, `)})`:Ih(c,a)?void 0:`sets "${t}" to ${JSON.stringify(a)}${c.domain===`theme`?pp(a):``}, but it must be ${Bh(c)}`;l!==void 0&&e.issues.push({path:r,message:`${s} ${l}`,line:i})}let c=Object.fromEntries(Object.entries(o).map(([e,t])=>[e,n.settings?.[e]??t.default]));if(!(!Object.entries(c).every(([e,t])=>Ih(o[e],t))||TP(o)))for(let{message:t}of Fh(o,c))e.issues.push({path:r,message:`${s}: ${t}`,line:i})}function jP(e,t,n,r,i){n.kind===`template`&&PP(e,`${t}.template`,n.template,r,{segCtx:i}),Oh(n)&&`key`in n.cache&&PP(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function MP(e,t,n,r,i){if(!(!Oh(n)||!(`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:J(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function NP(e,t,n,r){try{iD.parse(n)}catch(n){e.issues.push({path:t,message:`Template parse error in ${t}: ${n.message}`,line:r})}}function PP(e,t,n,r,i){for(let[a,o]of Dg(n,r.helpers)){if(Pg(a,r))continue;if(a.startsWith(SP)){let n=o===null?``:` through helper "${o}"`,r=a.slice(9),s=i?.segCtx===void 0||i.settings===void 0?`Template reads ".${a}"${n}, but only a segment's own templates have settings — call it from a segment that declares "${r}"`:`Template reads ".${a}"${n}, but segment "${i.segCtx}" has no setting "${r}" (it has: ${Object.keys(i.settings).join(`, `)}) — declare it under segments.${i.segCtx}.settings`;e.issues.push({path:t,message:s,line:i?.line??J(e.source,t.split(`.`))});continue}if(o!==null){FP(e,o,`Template references unknown variable ".${a}"${_P(a)}`);continue}let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,s=n!==void 0&&Pg(n,r)?` (segment-local vars are namespaced — write ".${n}")`:_P(a);e.issues.push({path:t,message:`Template references unknown variable ".${a}"${s}`,line:i?.line??J(e.source,t.split(`.`))})}}function FP(e,t,n){let r=`helpers.${t}`;e.issues.some(e=>e.path===r&&e.message===n)||e.issues.push({path:r,message:n,line:J(e.source,[`helpers`,t])})}function IP(e,t,n,r,i){let a=n.set,o=SE(ba[r].configKey),s=`${a} takes ${OT(o,i)}`;if(`min`in n&&(o===`bool`||!(`min`in o))){e.issues.push({path:`actions.${t}.min`,message:`actions.${t}: a stepper writes the integers from ${n.min} to ${n.max}, and ${a} is not an integer range; ${s}`,line:J(e.source,[`actions`,t,`min`])});return}let c=zP(n,i);if(c===RP){e.issues.push({path:`actions.${t}.int`,message:`actions.${t}.int: an int cursor writes whatever integer the template binds, and a click outside the ${a} domain would change nothing; ${s}`,line:J(e.source,[`actions`,t,`int`])});return}let l=c.filter(e=>!DT(o,e.value,i));if(l.length!==0){if(a===ba.style.sessionKey&&(`from`in n&&n.from===`endcaps`||c.every(e=>Bp(e.value)))){let r=ba.endcaps.sessionKey;e.issues.push(`to`in n?{path:`actions.${t}.to`,message:cP(`actions.${t}.to`,n.to,`set: "${r}", to`),line:J(e.source,[`actions`,t,`to`])}:{path:`actions.${t}.set`,message:`actions.${t}.set: "${a}" here writes only endcaps shapes, not styles — endcaps were renamed from "style" to "endcaps"; write set: "${r}"`,line:J(e.source,[`actions`,t,`set`])});return}for(let n of new Set(l.map(e=>e.field))){let r=l.filter(e=>e.field===n).map(e=>JSON.stringify(e.value)),i=r.length<=LP?r.join(`, `):`${r.slice(0,LP).join(`, `)} and ${r.length-LP} more`,o=`actions.${t}.${n}`;e.issues.push({path:o,message:`${o}: ${i} ${r.length===1?`is`:`are`} outside the ${a} domain — a click would write it and nothing would change; ${s}`,line:J(e.source,[`actions`,t,n])})}}}const LP=3,RP=Symbol(`any integer`);function zP(e,t){return`to`in e?[{field:`to`,value:e.to}]:`cycle`in e?e.cycle.map(e=>({field:`cycle`,value:e})):`from`in e?fg(e.from,t).members.map(e=>({field:`from`,value:e})):`min`in e?[{field:`min`,value:String(e.min)},{field:`max`,value:String(e.max)}]:RP}function BP(e,t){return Object.entries(e).filter(([e])=>t(e))}function VP(e,t,n,r){let i=PA(t),a=dg(i);for(let[n,o]of BP(t.actions,r)){let[t,r]=`from`in o?[`from`,o.from]:`insertSegmentFrom`in o?[`insertSegmentFrom`,o.insertSegmentFrom]:[null,null];if(t!==null&&typeof r==`string`&&!a.includes(r)){e.issues.push({path:`actions.${n}.${t}`,message:`actions.${n} ${t}: references ${mg(r,i)}`,line:J(e.source,[`actions`,n,t])});continue}if(!(`set`in o))continue;Ca.has(o.set)&&e.issues.push({path:`actions.${n}.set`,message:`actions.${n} sets "${o.set}", which has no session pick — globals.${o.set} is set in the config file only, so a click would change nothing; write it with { persist: "${o.set}", … } instead`,line:J(e.source,[`actions`,n,`set`])});let s=Da.get(o.set);s!==void 0&&IP(e,n,o,s,i)}for(let[n,i]of BP(t.actions,r))`do`in i&&i.do.forEach((r,a)=>{let o=Object.prototype.hasOwnProperty.call(t.actions,r)?t.actions[r]:void 0,s=o===void 0?`references unknown action "${r}"`:`do`in o?`"${r}" is itself a do action — list its members here instead`:i.do.indexOf(r)===a?a>0&&_N(o)?`"${r}" takes its value from the template (from/int/insertSegmentFrom), so it can only be the first member — only the first is bound the region's display`:void 0:`"${r}" is listed twice — each member fires once per click`;s!==void 0&&e.issues.push({path:`actions.${n}.do`,message:`actions.${n} do: ${s}`,line:J(e.source,[`actions`,n,`do`])})});for(let[n,i]of BP(t.actions,r)){let r=`persist`in i?i.persist:`reset`in i?i.reset:null;if(r===null)continue;let a=`persist`in i?`persist`:`reset`,o=$E(r);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is not a config globals field (have: ${HE().join(`, `)}), a "segments.<name>.palette" target, a "presets.<name>.globals.<field>" target, a "themeDefaults.<theme>.<shade|variation|style>" target, or a "presets.<name>.root" target`,line:J(e.source,[`actions`,n,a])});continue}let s=bP.filter(e=>e in i);if(o.scope!==`preset-root`&&s.length>0){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is not a "presets.<name>.root" target — ${s.map(e=>`"${e}"`).join(`/`)} is a tree op and applies only to one`,line:J(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){xP(e,t,n,a,r,o.preset,i);continue}if(o.scope===`preset-globals`&&!ng(t.presets).includes(o.preset)){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" names preset "${o.preset}" which is not declared (have: ${ng(t.presets).join(`, `)})`,line:J(e.source,[`actions`,n,a])});continue}if(o.scope===`theme-default`&&!e.allowedPalettes.has(o.theme)){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" names theme "${o.theme}" which is not installed${pp(o.theme)} (have: ${[...e.allowedPalettes].sort().join(`, `)})`,line:J(e.source,[`actions`,n,a])});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}: "${r}" names segment "${o.segment}" which is not declared (have segments: ${Object.keys(t.segments).join(`, `)})${sM(o.segment)}`,line:J(e.source,[`actions`,n,a])});continue}`min`in i&&e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is a segment palette target and cannot use a bounded stepper (min/max/by) — use "to", "from", or "cycle" instead`,line:J(e.source,[`actions`,n,a])})}}for(let[i,a]of BP(t.variables,r)){jP(e,`variables.${i}`,a,n);let t=gP(i);t!==void 0&&e.issues.push({path:`variables.${i}`,message:t,line:J(e.source,[`variables`,i])})}for(let[i,a]of BP(t.segments,r)){if(a.vars)for(let[t,r]of Object.entries(a.vars))jP(e,`segments.${i}.vars.${t}`,r,n,i);let r=Nh(a);wP(e,i,r);let o=CP(n,r);for(let n of[`template`,`bg`,`fg`,`when`]){let s=a[n];if(typeof s==`string`){PP(e,`segments.${i}.${n}`,s,o,{segCtx:i,settings:r});for(let{name:r,site:a,via:o}of jg(s,t.helpers)){if(Object.prototype.hasOwnProperty.call(t.actions,r))continue;let s=a===`options`?` (in a picker, menu, carousel, swatch, swatches or themePreview)`:``;if(o!==null){FP(e,o,`Template references unknown action "${r}"${s}`);continue}e.issues.push({path:`segments.${i}.${n}`,message:`${n} references unknown action "${r}"${s}`,line:J(e.source,[`segments`,i,n])})}}}}for(let[i,a]of BP(t.variables,r))MP(e,`variables.${i}`,a,n);for(let[i,a]of BP(t.segments,r))if(a.vars)for(let[t,r]of Object.entries(a.vars))MP(e,`segments.${i}.vars.${t}`,r,n,i)}function HP(e,t){let n=new Set;for(let r of ng(t.presets)){let i=og(t,r),a=[{},t.editGlobals];for(let o of a){let a=o.charset??i.charset??`unicode`,s=o.default_separator??i.default_separator;if(a!==`ascii`||Up(s??``))continue;let c=o.default_separator===void 0?ig(t.presets,r).globals?.default_separator===void 0?[`globals`]:[`presets`,r,`globals`]:[`editGlobals`],l=[...c,`default_separator`].join(`.`);n.has(l)||(n.add(l),e.issues.push({path:l,message:`${l} ${JSON.stringify(s)} is not ASCII, but charset is "ascii" — under ascii a joiner draws only ASCII; write an ASCII separator or set charset: "unicode"`,line:J(e.source,[...c,`default_separator`])}))}}}function UP(e,t,n=()=>!0){let{graph:r,nodeInfo:i}=WP(t),a=new Map,o=[];for(let e of r.keys())a.set(e,0);for(let e of r.keys())if(!(!n(e)||a.get(e)!==0)&&s(e))return;function s(t){a.set(t,1),o.push(t);for(let c of r.get(t)??[]){if(!n(c))continue;let t=a.get(c);if(t===1){let t=o.indexOf(c),n=[...o.slice(t),c],r=n[0],a=i.get(r);return e.issues.push({path:a?.declarationPath??`variables.${r}`,message:`Dependency cycle: ${n.join(` → `)}`,line:J(e.source,a?.linePathParts??[`variables`,r])}),!0}if(t===0&&s(c))return!0}return a.set(t,2),o.pop(),!1}}function WP(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=(n,i)=>{for(let a of Dg(i,e.helpers).keys()){if(t.has(a)){r.get(n).add(a);continue}let e=a.split(`.`)[0];e!==a&&t.has(e)&&r.get(n).add(e)}},a=(e,n)=>{if(n.kind===`template`&&i(e,n.template),Oh(n)&&(`key`in n.cache&&i(e,n.cache.key),`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}}function GP(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?h.homedir()+e.slice(1):e}function KP(e,t){return l.resolve(e,GP(t))}function qP(e,t){return typeof t==`string`&&t!==``?KP(e,t):void 0}function JP(e){return`plugin ${e.path} was not loaded: ${e.reason}`}const YP=new Set([`data`,`segments`,`helpers`,`actions`]),XP=`plugin.json5`,ZP=/^[a-z][a-z0-9_]*$/;function QP(e){let t=l.basename(l.dirname(e));return ZP.test(t)?t:void 0}const $P=`plugins.`;function eF(e){return`${$P}${e}.data`}function tF(e){try{return{ok:!0,value:e()}}catch(e){return{ok:!1,reason:nF(e)}}}function nF(e){return e instanceof aT?e.issues.map(e=>e.path===``||e.message.includes(e.path)?e.message:`${e.path}: ${e.message}`).join(`; `):e instanceof Error?e.message:String(e)}function rF(e,t){return e.map(e=>KP(l.dirname(t),e))}function iF(e,t,n,i){let a=new Map;return e.reduce((e,n)=>{let o=QP(n),s=(t,r)=>{let i=new Map(e.rendering);return o!==void 0&&r!==e.config&&i.delete(o),{...e,config:r,rendering:i,dropped:[...e.dropped,{path:n,plugin:o,reason:t}]}};if(l.basename(n)!==`plugin.json5`){let t=`a plugin is a folder holding its ${XP}, and the folder's name is the plugin's: move this file to <dir>/<name>/${XP} and list that`;return s(t,o===void 0?e.config:sF(oF(e.config,o),o,{path:n,plugin:o,reason:t}))}if(o===void 0)return s(`its folder "${l.basename(l.dirname(n))}" is not a plugin name (one matching ${ZP}: it prefixes every name the plugin declares)`,e.config);let c=a.get(o);if(c!==void 0)return s(`plugin "${o}" is already listed, from ${c}`,e.config);a.set(o,n);let u=oF(e.config,o),d=tF(()=>{let a=r.readFileSync(n,`utf-8`),s=bj(pF(n,o,{source:a,json:_r.default.parse(a)},t),u);return i(s,o,u!==e.config),s});if(d.ok)return{...e,config:d.value,loaded:[...e.loaded,n],rendering:new Map([...e.rendering,[o,n]])};let f={path:n,plugin:o,reason:d.reason};return s(d.reason,sF(u,o,f))},{config:n.config,rendering:n.rendering,loaded:[],dropped:[]})}function aF(e){let t=`${$P}${e}.`;return e=>e.startsWith(t)}function oF(e,t){let n=aF(t),r=e=>Object.fromEntries(Object.entries(e).filter(([e])=>!n(e)));return[e.variables,e.segments,e.helpers,e.actions].some(e=>Object.keys(e).some(n))?{...e,variables:r(e.variables),segments:r(e.segments),helpers:r(e.helpers),actions:r(e.actions)}:e}function sF(e,t,n){return{...e,variables:{...e.variables,[eF(t)]:{kind:`dropped`,reason:JP(n),definition:n.path}}}}function cF(e){return e.startsWith(`plugins.`)?e.slice(8).split(`.`)[0]:void 0}function lF(e,t){let n=new Set([...Object.keys(e.config.variables),...Object.keys(e.config.segments)].map(cF)),r=[...t,...e.dropped].filter(e=>e.plugin===void 0).map(e=>({definition:e.path,notice:JP(e)}));return t=>{let i=cF(t);if(i===void 0)return[];let a=e.config.variables[eF(i)];return a?.kind===`dropped`?[{definition:a.definition,notice:a.reason}]:n.has(i)?[]:r}}function uF(e,t){let n=ng(e.presets).flatMap(t=>[...bh(ag(e,t).node)]).flatMap(e=>e.kind===`segment`?[e]:[]),r=[...new Set([...n.map(e=>e.name),...Object.keys(e.segments)])].map(e=>({name:e,cause:t(e)})).filter(({cause:e})=>e.length>0),i=Object.fromEntries(r.map(({name:e,cause:t})=>[e,dF(e,t.map(e=>e.notice),n.filter(t=>t.name===e))])),a=t=>{let n=cF(t),r=n===void 0?void 0:e.variables[eF(n)];return r?.kind===`dropped`?{definition:r.definition,notice:r.reason}:void 0},o=Object.values(e.variables).some(e=>e.kind===`dropped`),s=o?Object.values(e.segments).flatMap(e=>[`template`,`bg`,`fg`,`when`].flatMap(t=>e[t]===void 0?[]:[e[t]])):[],c=o?Object.values(e.actions).flatMap(e=>`do`in e?[...e.do]:[]):[],l=(e,t)=>[...new Set(e)].flatMap(e=>{let n=e in t?void 0:a(e);return n===void 0?[]:[[e,n]]}),u=l([...s.flatMap(t=>jg(t,e.helpers).map(e=>e.name)),...c],e.actions),d=l(s.flatMap(t=>[...Ng(t,e.helpers)]),e.helpers),f=new Set([...r.flatMap(({cause:e})=>e.map(e=>e.definition)),...[...u,...d].map(([,e])=>e.definition)]);return{config:{...e,segments:{...e.segments,...i},actions:{...e.actions,...Object.fromEntries(u.map(([e])=>[e,{copy:`{{ .${eF(cF(e)??``)} }}`}]))},helpers:{...e.helpers,...Object.fromEntries(d.map(([e,t])=>[e,`{{ fail ${JSON.stringify(t.notice)} }}`]))}},reached:f}}function dF(e,t,n){let r=`⚠ ${e}: ${t.join(`; `)}`,i=new Map;for(let e of n)for(let[t,n]of Object.entries(e.settings??{})){let e=i.get(t);i.set(t,e===void 0?[n]:[...e,n])}let a=Object.fromEntries([...i].map(([e,t])=>[e,fF(e,t)]));return{template:`{{ ${JSON.stringify(r)} }}`,bg:`error`,description:`stands in for a segment whose plugin did not load`,settings:a}}function fF(e,t){let[n]=t,r=t.filter(e=>typeof e==`number`);return typeof n==`boolean`?{label:e,domain:`bool`,default:n}:typeof n==`number`?{label:e,domain:{min:Math.min(...r),max:Math.max(...r),step:1},default:n}:{label:e,domain:[...new Set(t.map(String))],default:n}}function pF(e,t,{source:n,json:r},{checkout:i}){let a=[],o=()=>{throw new aT(e,a)};if(!RT(r))return a.push({path:``,message:`a plugin definition must be an object, got ${X(r)}`}),o();for(let e of Object.keys(r))YP.has(e)||a.push({path:e,message:e===`plugin`?`a plugin definition does not name itself: its name is its folder's ("${t}") — remove "plugin"`:`a plugin definition may not declare "${e}". Expected only: ${[...YP].join(`, `)}`});let s=gF(r.data,e,i,a);if(RT(r.segments)||a.push({path:`segments`,message:`"segments" must be an object naming the plugin's segments`}),a.length>0||s===void 0)return o();let c={source:n,issues:a,allowedPalettes:new Set(gp()),groups:[]},l=jj(c,`data`,{[eF(t)]:{kind:`file`,path:s,parse:{json:!0},cache:{watch_file:s},default:{}}});for(let[e,t]of Object.entries(r.segments))RT(t)&&`vars`in t&&a.push({path:`segments.${e}.vars`,message:`a plugin segment may not declare "vars": a plugin's only source is its data file`});let u={variables:l,segments:hF(t,TM(c,r.segments,new Set)),helpers:hF(t,pP(c,r.helpers)),actions:hF(t,vN(c,r.actions))};for(let[e,t]of mF(u))try{iD.parse(t)}catch(t){a.push({path:e,message:`Template parse error in ${e}: ${t.message}`})}return a.length>0&&o(),u}function*mF(e){for(let[t,n]of Object.entries(e.segments??{}))for(let e of[`template`,`bg`,`fg`,`when`]){let r=n[e];r!==void 0&&(yield[`segments.${t}.${e}`,r])}for(let[t,n]of Object.entries(e.helpers??{}))yield[`helpers.${t}`,`{{ define "${t}" }}${n}{{ end }}`];for(let[t,n]of Object.entries(e.actions??{}))`copy`in n&&(yield[`actions.${t}.copy`,n.copy]),`open`in n&&(yield[`actions.${t}.open`,n.open]),`preset`in n&&n.preset===`delete`&&(yield[`actions.${t}.name`,n.name])}function hF(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[`${$P}${e}.${t}`,n]))}function gF(e,t,n,r){if(typeof e==`string`&&e!==``)return KP(l.dirname(t),e);if(RT(e)&&Object.keys(e).length===1&&typeof e.checkout==`string`&&e.checkout!==``){let t=e.checkout;if(l.isAbsolute(t)||t.startsWith(`~`)||l.normalize(t).split(l.sep)[0]===`..`){r.push({path:`data.checkout`,message:`data.checkout "${t}" must be a path inside the checkout, relative to its root (like ".lit/statusline.json"): no absolute path, "~" or ".."`});return}if(n===null){r.push({path:`data.checkout`,message:`data is read from the session's checkout, and this load has no session`});return}return l.resolve(n.root,t)}if(RT(e)&&`project`in e){r.push({path:`data.project`,message:`data: { project } is now data: { checkout }: the same path, relative to the root of the git checkout the session works in (a linked worktree is its own checkout)`});return}r.push({path:`data`,message:`"data" must be the path of the plugin's JSON data file relative to this definition, or { checkout: "<path>" } relative to the root of the session's checkout`})}function _F(e){let t=(process.env.XDG_DATA_DIRS||vF()).split(`:`).filter(e=>e!==``),n=process.env.XDG_DATA_HOME||l.join(h.homedir(),`.local`,`share`),r=[...[...t].reverse().map(e=>l.join(e,`cc-candybar`,`plugins`)),l.join(n,`cc-candybar`,`plugins`),...e===null?[]:[l.join(e,`.cc-candybar`,`plugins`)]];return r.filter((e,t)=>r.lastIndexOf(e)===t)}function vF(){let e=`/usr/local/share:/usr/share`;return process.platform===`darwin`?`${l.join(process.env.HOMEBREW_PREFIX||`/opt/homebrew`,`share`)}:${e}`:e}function yF(e){let t=_F(e),n=new Map,r=[],i=[];for(let e of t){let t=bF(e);if(`error`in t){r.push(t);continue}for(let r of t.folders)n.delete(r),n.set(r,l.join(e,r,XP));for(let n of t.files)i.push({path:l.join(e,n),plugin:void 0,reason:`a plugin is a folder holding its ${XP}: move this file to ${l.join(e,`<name>`,XP)}`})}return{roots:t,definitions:[...n.values()],unchecked:r,strays:i}}function bF(e){try{let t=r.readdirSync(e,{withFileTypes:!0}).filter(e=>!e.name.startsWith(`.`)).sort((e,t)=>e.name<t.name?-1:+(e.name>t.name)),n=t=>t.isDirectory()||xF(e,t);return{folders:t.filter(n).map(e=>e.name),files:t.filter(e=>!n(e)).map(e=>e.name)}}catch(t){return t.code===`ENOENT`?{folders:[],files:[]}:{path:e,error:t.message}}}function xF(e,t){if(!t.isSymbolicLink())return!1;try{return r.statSync(l.join(e,t.name)).isDirectory()}catch{return!0}}const SF=[`json5`,`json`];function CF(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function wF(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?SF.map(t=>l.join(e,`.cc-candybar.${t}`)):[],...SF.map(e=>l.join(r,`.cc-candybar.${e}`)),...SF.map(e=>`${TF()}.${e}`)])]}function TF(){let e=process.env.XDG_CONFIG_HOME??l.join(h.homedir(),`.config`);return l.join(e,`cc-candybar`,`config`)}function EF(e,t,n){let i=[],a=new Map;for(let o of wF(e,t,n)){let e=CF(o);if(e===`absent`)continue;if(e!==`present`){i.push(e);continue}let t=l.join(r.realpathSync(l.dirname(o)),l.basename(o).replace(/\.(json5|json)$/,``));a.has(t)||a.set(t,o)}let o=[...a.values()].reverse();if(n===void 0)return{kind:`chain`,layers:o,home:DF(o),unchecked:i};let[s]=i,c=n;return o.length>0?{kind:`chain`,layers:o,home:c,unchecked:i}:s===void 0?{kind:`missing`,path:n,home:c}:{kind:`unreadable`,...s,home:c}}function DF(e){let t=TF();return e.find(e=>SF.some(n=>e===`${t}.${n}`))??`${t}.${SF[0]}`}function OF(e,t,n){let r=EF(e,t,n),i=r.kind===`chain`?r.layers:[];return{path:r.home,above:i.filter(e=>e!==r.home),projectDir:e??null,cwd:t??null}}function kF(e){return AF(e).join(`
148
- `)||null}function AF(e){switch(e.kind){case`chain`: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 jF(e,t){let n=wF(e,t).filter(e=>CF(e)===`present`),r=new Map;for(let e of n){let t=l.dirname(e),n=l.basename(e).replace(/\.(json5|json)$/,``),i=l.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 MF(e,t,n,i){return e===null?{...VF,config:bj(VF.raw,t)}:PF(e,r.readFileSync(e,`utf-8`),t,n,i)}const NF={projectDir:null,checkout:null,beneath:{dropped:[],rendering:new Map}};function PF(e,t,n,r,i){let a=WF(e,t,i,(t,a)=>{let o=iF(rF(t,e),r,{config:n,rendering:r.beneath.rendering},(t,n,r)=>zF(t,n,r,e,i)),s=lF(o,r.beneath.dropped);return{inherited:new Set([...wM(o.config),...a.filter(e=>s(e).length>0)]),layer:{plugins:o,owning:s}}}),{plugins:o,owning:s}=a.layer,c=uF(bj(a.raw,o.config),s);return{source:t,raw:a.raw,warnings:[...a.warnings,...o.dropped.map(JP)],plugins:{loaded:o.loaded,dropped:o.dropped,reached:c.reached,rendering:o.rendering},config:c.config}}const FF=new WeakMap;function IF(e,t,n,r){let i=JSON.stringify([[...r??[]].sort(),e.map(e=>[e,LF(e)])]),a=FF.get(n)??new Map;FF.set(n,a);let o=JSON.stringify([t.projectDir,t.checkout?.root??null]),s=a.get(o);if(s?.key===i)return s.layer;let c=iF(e,t,{config:n,rendering:new Map},(e,t,n)=>zF(e,t,n,`<installed plugins>`,r));return a.set(o,{key:i,layer:c}),c}function LF(e){try{let t=r.statSync(e);return`${t.ino}:${t.size}:${t.mtimeMs}`}catch(e){return e.code??`unreadable`}}function RF(e,t,n,i,a=e=>r.readFileSync(e,`utf-8`),o){let s={projectDir:i.projectDir,checkout:i.cwd===null?null:VC(i.cwd)},c=yF(s.projectDir),l=IF(c.definitions,s,t,o),u={...l,dropped:[...l.dropped,...c.strays]};n.warned(c.unchecked.map(e=>`Plugin folder could not be listed: ${e.path} — ${e.error}`));let d=u.config,f=[];for(let t of e){n.entered(t);let e=f.at(-1)?.plugins,r=PF(t,a(t),f.at(-1)?.config??d,{...s,beneath:{dropped:[...u.dropped,...f.flatMap(e=>e.plugins.dropped)],rendering:e?.rendering??u.rendering}},o);n.warned(r.warnings),f.push({...r,path:t})}let p=new Set(f.flatMap(e=>[...e.plugins.reached])),m=e=>p.has(e.path),h=u.dropped.filter(m),g=u.dropped.filter(e=>!m(e));n.warned(h.map(JP));let _={checkout:s.checkout,roots:c.roots,loaded:u.loaded,dropped:h,unreached:g,reached:p,rendering:f.at(-1)?.plugins.rendering??u.rendering},v=f.at(-1);if(v===void 0)return{layers:f,base:d,installed:_,config:HF(MF(null,d,NF),`<default>`,o)};try{return{layers:f,base:d,installed:_,config:HF(v,v.path,o)}}catch(e){for(let e of f.slice(0,-1))n.entered(e.path),HF(e,e.path,o);throw n.entered(v.path),e}}function zF(e,t,n,r,i){if(n){HF(BF(e),r,i);return}let a=aF(t),o=[],s={source:``,issues:o,allowedPalettes:new Set,groups:[]};if(VP(s,e,Fg(e),a),UP(s,e,a),o.length>0)throw new aT(r,o)}function BF(e){return{config:e,raw:{root:e.root,presets:e.presets},source:``}}const VF={raw:{},source:``,warnings:[],plugins:{loaded:[],dropped:[],reached:new Set,rendering:new Map}};function HF({config:e,raw:t,source:n},r=`<config>`,i=new Set(gp())){let a=[],o={source:n,issues:a,allowedPalettes:i,groups:[]};if(yP(o,e,t),UP(o,e),a.length>0)throw new aT(r,a);let s=mN(e,a);if(a.length>0)throw new aT(r,a);return QA(vA(s))}function UF(e,t,n=new Set(gp()),r=GF){return WF(e,t,n,()=>({inherited:r,layer:null})).raw}function WF(e,t,n,r){let i=KF(e,t),a=cT(e,t),o=a===null?[]:[a],s=[],c={source:t,issues:s,allowedPalettes:n??new Set(gp()),groups:[]};if(!RT(i))throw new aT(e,[{path:``,message:`Config root must be an object, got ${X(i)}`}],o);let{inherited:l,layer:u}=r(i.plugins===void 0?[]:YF({...c,issues:[]},i.plugins)??[],RT(i.segments)?Object.keys(i.segments):[]),d=qF(c,i,l);if(s.length>0)throw new aT(e,s,o);return{raw:d,warnings:o,layer:u}}const GF=new Set;function KF(e,t){try{return _r.default.parse(t)}catch(t){let n=t;throw new aT(e,[{path:``,message:`JSON5 syntax error: ${n.message}`,line:n.lineNumber,col:n.columnNumber}])}}function qF(e,t,n){for(let n of Object.keys(t))JF.has(n)||e.issues.push({path:n,message:`Unknown top-level key "${n}". Expected one of: ${[...JF].join(`, `)}`,line:J(e.source,[n])});let r={};return t.globals!==void 0&&(r.globals=IE(e,`globals`,t.globals)),t.variables!==void 0&&(r.variables=jj(e,`variables`,t.variables)),t.segments!==void 0&&(r.segments=TM(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.
153
+ New: { h: ["seg1", "seg2"] }`,line:J(e.source,[`root`])}),IN;if(n.kind===`group`){let r=ME(e,tP,t,n);return r===null?IN:(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}),rP(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:J(e.source,[`root`])}),IN}if(a){let r=ME(e,GN,t,n);return r===null?IN:{kind:`segment`,name:r.seg,...r.when!==void 0&&{when:r.when},...r.id!==void 0&&{id:r.id},...r.settings!==void 0&&{settings:r.settings}}}if(r){let r=ME(e,KN,t,n);return r===null?IN:{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=ME(e,qN,t,n);return r===null?IN:{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:J(e.source,[`root`])}),IN};function YN(){return{required:!0,json:{type:`object`,propertyNames:{pattern:Fg.source},additionalProperties:{$ref:FN}},parse:(e,t,n,r)=>{let i=r[n];if(!jE(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${X(i)}`,line:J(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!Fg.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:J(e.source,[...t.split(`.`),n,r])});continue}a[r]=JN(e,`${t}.${n}.${r}`,o)}return a}}}const XN={noun:`root key`,fields:{rows:YN(),when:UE(),distribution:HN()}};function ZN(e,t,n){return jE(n)&&`rows`in n?ME(e,XN,t,n)??{rows:{}}:JN(e,t,n)}function QN(){return{required:!0,json:{type:`string`,pattern:Fg.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!Fg.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 "${Zn}", got ${Z(i)}`,line:J(e.source,[`root`])});return}return i}}}function $N(){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 ${Z(i)}`,line:J(e.source,[`root`])});return}return i}}}}function eP(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=EE(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:J(e.source,[...t.split(`.`),n])});return}return i}}}}const tP={noun:`layout-node key`,fields:{kind:LN(`group`),name:QN(),label:eP(),open:WE(),direction:ZE(og),key:$N(),bg:UE(),fg:UE(),when:UE(),distribution:HN(),children:BN(VE(()=>JN))}};function nP(e){return e.key??`groups.`+e.name}function rP(e){let t=rE+e.name;return nr(t,{variable:t,key:nP(e),member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},`drop`,e.when)}function iP(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,[`root`])})}function aP(e,t){lE(e,t,rE,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&iP(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}.`)&&nP(t)===nP(r)&&iP(e,t.path,`group "${t.name}" shares key "${nP(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=nP(t);if(i.has(n)||i.set(n,Zn),t.open===!0){let r=i.get(n);r!==`closed`&&iP(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=rE+e.name,r=nP(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=cr(r,i.get(r)),o[t]=lr(r,e.name),s[t]={template:ar(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}}const oP=`menu`,sP=`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`,cP=e=>e.kind===`call`&&e.name===`dict`,lP=e=>e.kind===`literal`&&typeof e.value!=`object`,uP=e=>$n(``,e,2)===void 0;function dP(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&&cP(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(cP))return t(`whose options (dict …) is not its last argument — ${sP}`);if(i!==void 0&&a===void 0&&!lP(i)&&uP(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=$n(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${sP}`);let c=a===void 0?{}:wx(a);if(c===null)return t(`whose options (dict …) is not fully literal — every option value must be a literal so the menu can be gated at load (a dynamic entry like (dict "key" .x) cannot)`);let l;try{l=vE(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=cE(u);if(e!==void 0)return t(`whose accordion key "${u}" lands in the reserved "${e}" namespace — a key is collapsed to an identifier (${JSON.stringify(u)} becomes "${fE(u)}"), so it would share one open-state key with the synthesized accordion that owns that namespace instead of grouping only your own menus. Name the group without the reserved prefix`)}return{kind:`ok`,apply:n.value,options:l}}function fP(e){let t=Ny({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===oP).map(dP)}catch{return`parse-failed`}}function pP(e){let t=Ny({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(oP)}catch{return!1}}function mP(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,[`root`])})}function hP(e,t){lE(e,t,iE,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))pP(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:J(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`&&pP(i)&&mP(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 fg(Hg(t.root)))typeof n.when==`string`&&pP(n.when)&&mP(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.`);for(let[t,{template:r}]of Object.entries(n)){if(r===void 0||!pP(r))continue;let n=fP(r);if(n!==`parse-failed`)for(let r of n){let n=r.kind===`issue`?r.message:gP(r.apply);n!==void 0&&mP(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${n}.`)}}}function gP(e){if(e===``)return`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`;if(uE(e)===`closed`)return`whose apply action is named "${Zn}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action`}function _P(e,t){let n={},r={},i=new Map,a=new Set,o=(e,n)=>{let r=`segments.${e}`;a.has(`${r}\0${n}`)||(a.add(`${r}\0${n}`),t.push({path:r,message:n}))};for(let t of Jg(e.presets)){let a=new Map,s=new Map;for(let c of fg(Zg(e,t).node)){if(c.kind!==`segment`)continue;let t=e.segments[c.name];if(t===void 0)continue;i.has(c.name)||i.set(c.name,fP(t.template));let l=i.get(c.name);if(l===`parse-failed`)continue;let u=cg(c);for(let[e,t]of l.entries()){if(t.kind===`issue`||gP(t.apply)!==void 0)continue;let{apply:i,options:l}=t,d=uE(i),f=dE(u,i,l.key),p=mE(f),m=l.key===void 0?`ind ${u} ${i}`:`key ${l.key}`,h=[f,p].find(e=>{let t=a.get(e);return t!==void 0&&t!==m});if(h!==void 0){o(c.name,`two {{ menu }} disclosures normalize to the same state key ("${h}") 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}a.set(f,m),a.set(p,m);let g=pE(f,d),_=`${c.name}\0${e}`,v=s.get(g);if(v!==void 0&&v!==_){o(c.name,`two {{ menu }} disclosures resolve to the same identity ("${g}") — ${l.key===void 0?`a segment cannot contain two menus over the same apply action "${i}"`:`menus sharing key "${l.key}" must have distinct apply actions`}.`);continue}s.set(g,_),r[g]=lr(f,d),n[f]=cr(f,Zn),n[p]={kind:`state`,key:p,default:`0`},r[p]={set:p,int:!0}}}}return{...e,variables:{...e.variables,...n},actions:{...e.actions,...r}}}const vP=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`back`,`rewind`,`save`,`preset`,`themeDefault`,`doctor`,`ceiling`,`slash`,`do`];function yP(e){return e.ceiling===`set`?[`set`,e.to]:[`clear`]}function bP(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function xP(e,t){if(t===void 0)return{};if(!jE(t))return Q(e,`actions`,`actions must be an object, got ${X(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=SP(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function Q(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))})}function SP(e,t,n){if(!jE(n))return Q(e,t,`${t} must be an action object, got ${X(n)}`),null;if(`persistWhen`in n)return Q(e,t,`${t}.persistWhen was removed: declare the \`set\` alone — a session pick is a draft until a \`{ save: true }\` action writes every unsaved setting to the config file`),null;let r=vP.filter(e=>e in n);return r.length===1?CP[r[0]](e,t,n):(Q(e,t,`action must declare exactly one of: ${vP.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const CP={set:(e,t,n)=>rF(e,t,n,`set`,$P),persist:(e,t,n)=>rF(e,t,n,`persist`,eF),copy:wP(`copy`),open:wP(`open`),reset:TP,undo:DP(`undo`),redo:DP(`redo`),back:DP(`back`),rewind:DP(`rewind`),save:DP(`save`),preset:OP,themeDefault:kP,doctor:jP,ceiling:MP,slash:NP,do:PP};function wP(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&Q(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);let i=EE(t,n,r,e);return i===null?null:{[e]:i}}}function TP(e,t,n){for(let r of Object.keys(n))r!==`reset`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a reset action. Expected only: reset`);let r=FP(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}}const EP={undo:`it steps the session's settings history`,redo:`it steps the session's settings history`,back:`it steps the session's navigation history`,rewind:`it steps the session's settings history back to where edit mode opened`,save:`it saves the session's unsaved settings`};function DP(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&Q(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);return r[e]===!0?{[e]:!0}:(Q(t,`${n}.${e}`,`${e} must be the literal true (it takes no key — ${EP[e]}), got ${Z(r[e])}`),null)}}function OP(e,t,n){let r=n.preset,i=r===`save`?[`preset`]:[`preset`,`name`];for(let r of Object.keys(n))i.includes(r)||Q(e,`${t}.${r}`,`Unknown key "${r}" on a preset action. Expected only: ${i.join(`, `)}`);if(r!==`save`&&r!==`delete`)return Q(e,`${t}.preset`,`preset must be "save" or "delete", got ${Z(r)}`),null;if(r===`save`)return{preset:`save`};let a=EE(e,t,n,`name`);return a===null?null:{preset:`delete`,name:a}}function kP(e,t,n){for(let r of Object.keys(n))r!==`themeDefault`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a themeDefault action. Expected only: themeDefault`);return n.themeDefault===`save`?{themeDefault:`save`}:(Q(e,`${t}.themeDefault`,`themeDefault must be "save" (it saves the look the session draws as the active theme's default), got ${Z(n.themeDefault)}`),null)}const AP={run:[`doctor`],fix:[`doctor`,`check`],mark:[`doctor`,`check`,`mark`]};function jP(e,t,n){let r=n.doctor,i=typeof r==`string`&&Object.hasOwn(AP,r),a=i?AP[r]:[...new Set(Object.values(AP).flat())];for(let r of Object.keys(n))a.includes(r)||Q(e,`${t}.${r}`,`Unknown key "${r}" on a doctor action. Expected only: ${a.join(`, `)}`);if(!i)return Q(e,`${t}.doctor`,`doctor must be ${Object.keys(AP).map(e=>`"${e}"`).join(`, `)}, got ${Z(r)}`),null;if(r===`run`)return{doctor:`run`};let o=n.check,s=r===`mark`?fk:dk;if(typeof o!=`string`||!s.some(e=>e.name===o))return Q(e,`${t}.check`,`doctor ${r} must name a check (have: ${s.map(e=>e.name).join(`, `)}), got ${Z(o)}`),null;if(r===`fix`)return{doctor:`fix`,check:o};let c=n.mark;return KO.includes(c)?{doctor:`mark`,check:o,mark:c}:(Q(e,`${t}.mark`,`doctor mark must be ${KO.map(e=>`"${e}"`).join(` or `)}, got ${Z(c)}`),null)}function MP(e,t,n){let r=n.ceiling,i=r===`clear`?[`ceiling`]:[`ceiling`,`to`];for(let r of Object.keys(n))i.includes(r)||Q(e,`${t}.${r}`,`Unknown key "${r}" on a ceiling action. Expected only: ${i.join(`, `)}`);if(r===`clear`)return{ceiling:`clear`};if(r!==`set`)return Q(e,`${t}.ceiling`,`ceiling must be "set" or "clear", got ${Z(r)}`),null;let a=n.to;return typeof a!=`string`||a.trim()===``?(Q(e,`${t}.to`,`ceiling set needs \`to\`: a memento ceiling value such as "+100_000", "400000" or "off", got ${Z(a)}`),null):{ceiling:`set`,to:a}}function NP(e,t,n){for(let r of Object.keys(n))r!==`slash`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a slash action. Expected only: slash`);let r=kk(n.slash);return r.kind===`refused`?(Q(e,`${t}.slash`,r.reason),null):{slash:r.line}}function PP(e,t,n){for(let r of Object.keys(n))r!==`do`&&Q(e,`${t}.${r}`,`Unknown key "${r}" on a do action. Expected only: do`);let r=n.do;return!Array.isArray(r)||r.length<2||r.some(e=>typeof e!=`string`||e===``)?(Q(e,`${t}.do`,`do must list at least two action names (the first is the click's face, the rest ride along in the same click), got ${Z(r)}`),null):{do:r}}function FP(e,t,n,r,i,a){let o=EE(e,t,r,n);if(o===null)return null;let s=`${t}.${n}`;return o===``?(Q(e,s,i),null):o.includes(`/`)?(Q(e,s,a(o)),null):o}const IP={set:`the SessionState key to write`,persist:`the config globals field to write`};function LP(e,t,n,r){let i=IP[r],a=FP(e,t,r,n,`${r} key must be non-empty (${i})`,e=>`${r} key "${e}" contains "/" — keys must be slash-free`);return a===null?null:{[r]:a}}function RP(e){return e===`set`?`set-state`:`set-config`}const zP={to:iF(`set`)},BP={to:iF(`persist`)},VP={from:aF(`set`)},HP={from:aF(`persist`)},UP={min:uF(),max:uF(),by:uF()},WP={int:sF()},GP={cycle:oF(`set`)},KP={cycle:oF(`persist`)},qP={removeSegment:cF(`removeSegment`)},JP={insertSegment:cF(`insertSegment`),anchor:cF(`anchor`),relation:lF()},YP={insertSegmentFrom:aF(`persist`),anchor:cF(`anchor`),relation:lF()},XP={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},ZP={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function QP(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=[e],s=(e,n,r)=>PE(e,t,n,r),c=QE(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?HE(s,...n):s}}const $P=[QP(`set`,zP),QP(`set`,VP),QP(`set`,UP,[XP,ZP]),QP(`set`,WP),QP(`set`,GP)],eF=[QP(`persist`,BP),QP(`persist`,HP),QP(`persist`,UP,[XP,ZP]),QP(`persist`,KP),QP(`persist`,qP),QP(`persist`,JP,[],[`insertSegment`]),QP(`persist`,YP,[],[`insertSegmentFrom`])];function tF(e){let t=[`"to" (a literal value)`,`"from" (an option domain — a registered domain name like "themes"/"endcaps"/"styles", 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 nF(e){let t=tF(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 rF(e,t,n,r,i){let a=LP(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return Q(e,t,`${nF(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)||Q(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 iF(e){let t=RP(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>FP(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 aF(e){let t=RP(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===``){Q(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){Q(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===``)){Q(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){Q(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){Q(n,s,`${i} array members must be unique — a duplicated value would render the same picker option twice`);return}return r}Q(n,s,`${i} must be a domain name (a string) or an inline domain (an array of strings), got ${Z(o)}`)}}}function oF(e){let t=RP(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`)){Q(n,s,`cycle must be an array of strings (the enumerated values a click steps through), got ${X(o)}`);return}let c=o;if(c.length<2){Q(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){Q(n,s,`cycle members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}if(u.length>0){Q(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){Q(n,s,`cycle members must be unique — the successor of a duplicated member is ambiguous`);return}return c}}}function sF(){return{required:!0,json:{const:!0},parse:(e,t,n,r)=>{if(r[n]!==!0){Q(e,`${t}.${n}`,`int must be the literal true (declares the key an unbounded integer cursor — a paged picker's page key), got ${Z(r[n])}`);return}return!0}}}function cF(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=EE(t,n,i,r);if(a===null)return;let o=`${n}.${r}`;if(a===``){Q(t,o,`${e} must be non-empty (a segment name)`);return}if(a.includes(`/`)||a.includes(`:`)){Q(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 lF(){return{required:!0,json:{enum:[`before`,`after`]},parse:(e,t,n,r)=>{let i=r[n];if(i!==`before`&&i!==`after`){Q(e,`${t}.${n}`,`relation must be "before" or "after", got ${Z(i)}`);return}return i}}}function uF(){return{required:!0,json:{type:`integer`},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`number`||!Number.isInteger(i)){Q(e,`${t}.${n}`,`${n} must be an integer, got ${Z(i)}`);return}return i}}}function dF(e,t,n){return`${e}: "${t}" is an endcaps shape, not a style — endcaps were renamed from "style" to "endcaps"; write ${n}: "${t}"`}const fF={noun:`style key`,fields:{hueShift:KE(),chromaScale:KE({min:0}),lightnessScale:KE(),lightnessShift:KE()}};function pF(e,t){if(!jE(t))return e.issues.push({path:`styles`,message:`styles must be an object mapping style names to adaptation objects, got ${X(t)}`,line:J(e.source,[`styles`])}),{};let n={};for(let[r,i]of Object.entries(t)){if(r===``||r.includes(`/`)){e.issues.push({path:`styles.${r}`,message:`style name ${JSON.stringify(r)} must be non-empty and slash-free — a style picker writes the name on the set-state wire, which rejects empty values and splits on "/"`,line:J(e.source,[`styles`,r])});continue}if(Nm(r)){e.issues.push({path:`styles.${r}`,message:dF(`styles.${r}`,r,`globals.endcaps`),line:J(e.source,[`styles`,r])});continue}let t=ME(e,fF,`styles.${r}`,i);t!==null&&(n[r]={...zs,...t})}return n}const mF={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:ZN(e,`${t}.${n}`,r[n])},globals:{required:!1,json:jD(),parse:(e,t,n,r)=>r[n]===void 0?void 0:AD(e,`${t}.${n}`,r[n])}}};function hF(e,t){if(!jE(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${X(t)}`,line:J(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:J(e.source,[`presets`,r])});continue}let t=ME(e,mF,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function gF(e,t){if(t===void 0)return{};if(!jE(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${X(t)}`,line:J(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 ${Z(i)}`,line:J(e.source,[`helpers`,r])});continue}n[r]=i}return n}const _F=new Map([[`session.budget.amount`,{segment:`session`,setting:`budget`}],[`session.budget.warningThreshold`,{segment:`session`,setting:`warnAt`}],[`today.budget.amount`,{segment:`today`,setting:`budget`}],[`today.budget.warningThreshold`,{segment:`today`,setting:`warnAt`}],[`block.budget.heatThreshold`,{segment:`block`,setting:`warnAt`}],[`block.budget.warningThreshold`,{segment:`block`,setting:`errorAt`}],[`weekly.budget.heatThreshold`,{segment:`weekly`,setting:`warnAt`}],[`weekly.budget.warningThreshold`,{segment:`weekly`,setting:`errorAt`}],[`burn.eta.errorMinutes`,{segment:`burnrate`,setting:`errorWithin`}],[`burn.eta.warnMinutes`,{segment:`burnrate`,setting:`warnWithin`}]]);function vF(e){return`it became the "${e.setting}" setting of each "${e.segment}" placement — set it on the placement where a row places "${e.segment}" ({ seg: "${e.segment}", settings: { ${e.setting}: <value> } }), or redeclare segments.${e.segment}.settings.${e.setting} with the default every placement should start from`}function yF(e){let t=_F.get(e);return t===void 0?void 0:`variables.${e} is no longer read: ${vF(t)}`}function bF(e){let t=_F.get(e);return t===void 0?``:` — ".${e}" is no longer a variable: ${vF(t)}; a "${t.segment}" template reads it as ".settings.${t.setting}"`}function xF(e,t){let n=new Map;for(let e of Object.keys(t)){let t=ZT(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:J(e.source,[`presets`])})}function SF(e,t,n){let r=[[[`globals`],t.globals.style,`globals.endcaps`],[[`editGlobals`],t.editGlobals.style,`editGlobals.endcaps`],...Object.entries(t.presets).map(([e,t])=>[[`presets`,e,`globals`],t.globals?.style,`presets.${e}.globals.endcaps`]),...Object.entries(t.themeDefaults).map(([e,t])=>[[`themeDefaults`,e],t.style,`globals.endcaps`])];for(let[n,i,a]of r){if(i===void 0||hm(i)||Object.prototype.hasOwnProperty.call(t.styles,i))continue;let r=`${n.join(`.`)}.style`;e.issues.push({path:r,message:Nm(i)?dF(r,i,a):`${r} "${i}" does not match any declared style (have: ${Object.keys(t.styles).join(`, `)})`,line:J(e.source,[...n,`style`])})}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:J(e.source,[`globals`,`preset`])}),xF(e,t.presets),GF(e,t);let i=D_(t);for(let t of i.names)t!==`settings`&&!t.startsWith(TF)||e.issues.push({path:`variables`,message:`variable "${t}" is named under "settings", which a segment's templates read as its placement's own settings (.settings.<name>) — rename it`,line:J(e.source,[`variables`,t])});let a=(t,n,r)=>{cj(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${Vk}" ${cj(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}),lj(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${Vk}" under a \`when\` or inside a disclosure body — the menu is visible under every condition, so its placement may not be gated. Move it to an ungated position, or remove it to put the menu at its default position.`,line:r}),o(t)&&e.issues.push({path:n,message:`${n} sets "distribution" on a container inside a bar cell — everything inside a cell wears that cell's hue and shade, so it would place nothing. Set it on the row whose children are the cells (the horizontal container) or on the root, which places the rows.`,line:r});let i=new Map;for(let e of fg(t)){if(e.kind!==`segment`)continue;let t=cg(e);i.set(t,[...i.get(t)??[],e])}for(let[t,a]of i){if(a.length<2)continue;let o=a[1].name,s=ug(o,new Set(i.keys()));e.issues.push({path:n,message:`${n} has ${a.length} placements with the id "${t}" — an id names one placement (its settings, its menus' open state, and edit mode all address it), so give each its own: { seg: "${o}", id: "${s}" }. A placement without an "id" takes its segment's name.`,line:r})}};function o(e,t=!1){return e.kind===`segment`?!1:t&&e.distribution!==void 0||e.children.some(n=>o(n,t||sg[e.direction]===`cell`))}let s=(n,r)=>{for(let[a,o]of Ug(n,r)){let n=J(e.source,o.split(`.`));if(a.when!==void 0&&(LF(e,`${o}.when`,a.when,i,{line:n}),IF(e,`${o}.when`,a.when,n)),a.kind===`segment`){if(aj(a.name)){(a.id!==void 0||a.settings!==void 0)&&e.issues.push({path:o,message:`${r} gives the global settings menu anchor "${Vk}" an id or settings — the anchor only marks where the menu goes, so place it as the bare name "${Vk}"`,line:n});continue}Object.prototype.hasOwnProperty.call(t.segments,a.name)||e.issues.push({path:o,message:`${r} entry "${a.name}" does not match any declared segment${uN(a.name)}`,line:n}),NF(e,t,a,o,n)}}};n.root!==void 0&&s(n.root,`root`);for(let[e,t]of Object.entries(n.presets??{}))t.root!==void 0&&s(t.root,`presets.${e}.root`);let c=new Map([[`root`,Vg(t.root)]]);for(let e of Jg(t.presets)){let{node:n,path:r}=Zg(t,e);c.set(r,n)}for(let[t,n]of c)a(n,t,J(e.source,t.split(`.`)));WF(e,t,i,()=>!0)}const CF=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function wF(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=J(e.source,[`actions`,n,r]);if(!Jg(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${Jg(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=(r,i)=>{Object.prototype.hasOwnProperty.call(t.segments,i)||e.issues.push({path:s,message:`actions.${n}: ${r} "${i}" is not a declared segment (have: ${Object.keys(t.segments).join(`, `)})${uN(i)}`,line:c})},p=new Set(lg(Zg(t,a).node)),m=(r,i)=>{!lN.has(i)||p.has(i)||Object.prototype.hasOwnProperty.call(t.segments,i)||e.issues.push({path:s,message:`actions.${n}: ${r} "${i}" names no placement${uN(i)}`,line:c})};`removeSegment`in o&&m(`removeSegment`,o.removeSegment),`insertSegment`in o&&f(`insertSegment`,o.insertSegment),(`insertSegment`in o||`insertSegmentFrom`in o)&&m(`anchor`,o.anchor)}const TF=`settings.`;function EF(e,t){return{...e,names:new Set([...e.names,...Object.keys(t).map(e=>TF+e)])}}function DF(e,t,n){let r=e=>`segments.${t}.settings.${e}`,i=(n,i)=>{e.issues.push({path:r(n),message:`${r(n)}: ${i}`,line:J(e.source,[`segments`,t,`settings`,n])})},a=AF(n);for(let{setting:e,message:t}of a)i(e,t);if(!(a.length>0))for(let{setting:e,message:t}of Dg(n,kF(n)))i(e,`the defaults do not stand together: ${t}`)}function OF(e){return AF(e).length>0||Dg(e,kF(e)).length>0}function kF(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default]))}function AF(e){let t=t=>Eg(jF(e,t))?.atLeast;return Object.keys(e).flatMap(n=>{let r=t(n);if(r===void 0)return[];if(r===n||Eg(jF(e,r))===void 0)return[{setting:n,message:`atLeast "${r}" must name another range setting of this segment (its range settings: ${MF(e,n).join(`, `)||`none`})`}];let i=[n];for(let e=r;e!==void 0;e=t(e)){if(e===n)return i.every(e=>n<=e)?[{setting:n,message:`atLeast closes a cycle (${[...i,n].join(` ≥ `)}) — every setting on it could only ever equal the rest`}]:[];if(i.includes(e))return[];i.push(e)}return[]})}function jF(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function MF(e,t){return Object.entries(e).filter(([e,n])=>e!==t&&Eg(n)!==void 0).map(([e])=>e)}function NF(e,t,n,r,i){let a=Object.prototype.hasOwnProperty.call(t.segments,n.name)?t.segments[n.name]:void 0;if(a===void 0)return;let o=Tg(a),s=`${r}: placement "${cg(n)}" of segment "${n.name}"`;for(let[t,a]of Object.entries(n.settings??{})){let c=Object.prototype.hasOwnProperty.call(o,t)?o[t]:void 0,l=c===void 0?`sets "${t}", which segment "${n.name}" does not declare (it has: ${Object.keys(o).join(`, `)})`:Og(c,a)?void 0:`sets "${t}" to ${JSON.stringify(a)}${c.domain===`theme`?om(a):``}, but it must be ${Mg(c)}`;l!==void 0&&e.issues.push({path:r,message:`${s} ${l}`,line:i})}let c=Object.fromEntries(Object.entries(o).map(([e,t])=>[e,n.settings?.[e]??t.default]));if(!(!Object.entries(c).every(([e,t])=>Og(o[e],t))||OF(o)))for(let{message:t}of Dg(o,c))e.issues.push({path:r,message:`${s}: ${t}`,line:i})}function PF(e,t,n,r,i){n.kind===`template`&&LF(e,`${t}.template`,n.template,r,{segCtx:i}),bg(n)&&`key`in n.cache&&LF(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function FF(e,t,n,r,i){if(!(!bg(n)||!(`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:J(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function IF(e,t,n,r){try{ZD.parse(n)}catch(n){e.issues.push({path:t,message:`Template parse error in ${t}: ${n.message}`,line:r})}}function LF(e,t,n,r,i){for(let[a,o]of y_(n,r.helpers)){if(E_(a,r))continue;if(a.startsWith(TF)){let n=o===null?``:` through helper "${o}"`,r=a.slice(9),s=i?.segCtx===void 0||i.settings===void 0?`Template reads ".${a}"${n}, but only a segment's own templates have settings — call it from a segment that declares "${r}"`:`Template reads ".${a}"${n}, but segment "${i.segCtx}" has no setting "${r}" (it has: ${Object.keys(i.settings).join(`, `)}) — declare it under segments.${i.segCtx}.settings`;e.issues.push({path:t,message:s,line:i?.line??J(e.source,t.split(`.`))});continue}if(o!==null){RF(e,o,`Template references unknown variable ".${a}"${bF(a)}`);continue}let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,s=n!==void 0&&E_(n,r)?` (segment-local vars are namespaced — write ".${n}")`:bF(a);e.issues.push({path:t,message:`Template references unknown variable ".${a}"${s}`,line:i?.line??J(e.source,t.split(`.`))})}}function RF(e,t,n){let r=`helpers.${t}`;e.issues.some(e=>e.path===r&&e.message===n)||e.issues.push({path:r,message:n,line:J(e.source,[`helpers`,t])})}function zF(e,t,n,r,i){let a=n.set,o=hD(ba[r].configKey),s=`${a} takes ${xE(o,i)}`;if(`min`in n&&(o===`bool`||!(`min`in o))){e.issues.push({path:`actions.${t}.min`,message:`actions.${t}: a stepper writes the integers from ${n.min} to ${n.max}, and ${a} is not an integer range; ${s}`,line:J(e.source,[`actions`,t,`min`])});return}let c=HF(n,i);if(c===VF){e.issues.push({path:`actions.${t}.int`,message:`actions.${t}.int: an int cursor writes whatever integer the template binds, and a click outside the ${a} domain would change nothing; ${s}`,line:J(e.source,[`actions`,t,`int`])});return}let l=c.filter(e=>!bE(o,e.value,i));if(l.length!==0){if(a===ba.style.sessionKey&&(`from`in n&&n.from===`endcaps`||c.every(e=>Nm(e.value)))){let r=ba.endcaps.sessionKey;e.issues.push(`to`in n?{path:`actions.${t}.to`,message:dF(`actions.${t}.to`,n.to,`set: "${r}", to`),line:J(e.source,[`actions`,t,`to`])}:{path:`actions.${t}.set`,message:`actions.${t}.set: "${a}" here writes only endcaps shapes, not styles — endcaps were renamed from "style" to "endcaps"; write set: "${r}"`,line:J(e.source,[`actions`,t,`set`])});return}for(let n of new Set(l.map(e=>e.field))){let r=l.filter(e=>e.field===n).map(e=>JSON.stringify(e.value)),i=r.length<=BF?r.join(`, `):`${r.slice(0,BF).join(`, `)} and ${r.length-BF} more`,o=`actions.${t}.${n}`;e.issues.push({path:o,message:`${o}: ${i} ${r.length===1?`is`:`are`} outside the ${a} domain — a click would write it and nothing would change; ${s}`,line:J(e.source,[`actions`,t,n])})}}}const BF=3,VF=Symbol(`any integer`);function HF(e,t){return`to`in e?[{field:`to`,value:e.to}]:`cycle`in e?e.cycle.map(e=>({field:`cycle`,value:e})):`from`in e?i_(e.from,t).members.map(e=>({field:`from`,value:e})):`min`in e?[{field:`min`,value:String(e.min)},{field:`max`,value:String(e.max)}]:VF}function UF(e,t){return Object.entries(e).filter(([e])=>t(e))}function WF(e,t,n,r){let i=Lj(t),a=r_(i);for(let[n,o]of UF(t.actions,r)){let[t,r]=`from`in o?[`from`,o.from]:`insertSegmentFrom`in o?[`insertSegmentFrom`,o.insertSegmentFrom]:[null,null];if(t!==null&&typeof r==`string`&&!a.includes(r)){e.issues.push({path:`actions.${n}.${t}`,message:`actions.${n} ${t}: references ${o_(r,i)}`,line:J(e.source,[`actions`,n,t])});continue}if(!(`set`in o))continue;Ca.has(o.set)&&e.issues.push({path:`actions.${n}.set`,message:`actions.${n} sets "${o.set}", which has no session pick — globals.${o.set} is set in the config file only, so a click would change nothing; write it with { persist: "${o.set}", … } instead`,line:J(e.source,[`actions`,n,`set`])});let s=Da.get(o.set);s!==void 0&&zF(e,n,o,s,i)}for(let[n,i]of UF(t.actions,r))`do`in i&&i.do.forEach((r,a)=>{let o=Object.prototype.hasOwnProperty.call(t.actions,r)?t.actions[r]:void 0,s=o===void 0?`references unknown action "${r}"`:`do`in o?`"${r}" is itself a do action — list its members here instead`:i.do.indexOf(r)===a?a>0&&bP(o)?`"${r}" takes its value from the template (from/int/insertSegmentFrom), so it can only be the first member — only the first is bound the region's display`:void 0:`"${r}" is listed twice — each member fires once per click`;s!==void 0&&e.issues.push({path:`actions.${n}.do`,message:`actions.${n} do: ${s}`,line:J(e.source,[`actions`,n,`do`])})});for(let[n,i]of UF(t.actions,r)){let r=`persist`in i?i.persist:`reset`in i?i.reset:null;if(r===null)continue;let a=`persist`in i?`persist`:`reset`,o=KD(r);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is not a config globals field (have: ${FD().join(`, `)}), a "segments.<name>.palette" target, a "presets.<name>.globals.<field>" target, a "themeDefaults.<theme>.<shade|variation|style>" target, or a "presets.<name>.root" target`,line:J(e.source,[`actions`,n,a])});continue}let s=CF.filter(e=>e in i);if(o.scope!==`preset-root`&&s.length>0){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is not a "presets.<name>.root" target — ${s.map(e=>`"${e}"`).join(`/`)} is a tree op and applies only to one`,line:J(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){wF(e,t,n,a,r,o.preset,i);continue}if(o.scope===`preset-globals`&&!Jg(t.presets).includes(o.preset)){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" names preset "${o.preset}" which is not declared (have: ${Jg(t.presets).join(`, `)})`,line:J(e.source,[`actions`,n,a])});continue}if(o.scope===`theme-default`&&!e.allowedPalettes.has(o.theme)){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" names theme "${o.theme}" which is not installed${om(o.theme)} (have: ${[...e.allowedPalettes].sort().join(`, `)})`,line:J(e.source,[`actions`,n,a])});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}: "${r}" names segment "${o.segment}" which is not declared (have segments: ${Object.keys(t.segments).join(`, `)})${uN(o.segment)}`,line:J(e.source,[`actions`,n,a])});continue}`min`in i&&e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is a segment palette target and cannot use a bounded stepper (min/max/by) — use "to", "from", or "cycle" instead`,line:J(e.source,[`actions`,n,a])})}}for(let[i,a]of UF(t.variables,r)){PF(e,`variables.${i}`,a,n);let t=yF(i);t!==void 0&&e.issues.push({path:`variables.${i}`,message:t,line:J(e.source,[`variables`,i])})}for(let[i,a]of UF(t.segments,r)){if(a.vars)for(let[t,r]of Object.entries(a.vars))PF(e,`segments.${i}.vars.${t}`,r,n,i);let r=Tg(a);DF(e,i,r);let o=EF(n,r);for(let n of[`template`,`bg`,`fg`,`when`]){let s=a[n];if(typeof s==`string`){LF(e,`segments.${i}.${n}`,s,o,{segCtx:i,settings:r});for(let{name:r,site:a,via:o}of C_(s,t.helpers)){if(Object.prototype.hasOwnProperty.call(t.actions,r))continue;let s=a===`options`?` (in a picker, menu, carousel, swatch, swatches or themePreview)`:``;if(o!==null){RF(e,o,`Template references unknown action "${r}"${s}`);continue}e.issues.push({path:`segments.${i}.${n}`,message:`${n} references unknown action "${r}"${s}`,line:J(e.source,[`segments`,i,n])})}}}}for(let[i,a]of UF(t.variables,r))FF(e,`variables.${i}`,a,n);for(let[i,a]of UF(t.segments,r))if(a.vars)for(let[t,r]of Object.entries(a.vars))FF(e,`segments.${i}.vars.${t}`,r,n,i)}function GF(e,t){let n=new Set;for(let r of Jg(t.presets)){let i=Qg(t,r),a=[{},t.editGlobals];for(let o of a){let a=o.charset??i.charset??`unicode`,s=o.default_separator??i.default_separator;if(a!==`ascii`||Im(s??``))continue;let c=o.default_separator===void 0?Xg(t.presets,r).globals?.default_separator===void 0?[`globals`]:[`presets`,r,`globals`]:[`editGlobals`],l=[...c,`default_separator`].join(`.`);n.has(l)||(n.add(l),e.issues.push({path:l,message:`${l} ${JSON.stringify(s)} is not ASCII, but charset is "ascii" — under ascii a joiner draws only ASCII; write an ASCII separator or set charset: "unicode"`,line:J(e.source,[...c,`default_separator`])}))}}}function KF(e,t,n=()=>!0){let{graph:r,nodeInfo:i}=qF(t),a=new Map,o=[];for(let e of r.keys())a.set(e,0);for(let e of r.keys())if(!(!n(e)||a.get(e)!==0)&&s(e))return;function s(t){a.set(t,1),o.push(t);for(let c of r.get(t)??[]){if(!n(c))continue;let t=a.get(c);if(t===1){let t=o.indexOf(c),n=[...o.slice(t),c],r=n[0],a=i.get(r);return e.issues.push({path:a?.declarationPath??`variables.${r}`,message:`Dependency cycle: ${n.join(` → `)}`,line:J(e.source,a?.linePathParts??[`variables`,r])}),!0}if(t===0&&s(c))return!0}return a.set(t,2),o.pop(),!1}}function qF(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=(n,i)=>{for(let a of y_(i,e.helpers).keys()){if(t.has(a)){r.get(n).add(a);continue}let e=a.split(`.`)[0];e!==a&&t.has(e)&&r.get(n).add(e)}},a=(e,n)=>{if(n.kind===`template`&&i(e,n.template),bg(n)&&(`key`in n.cache&&i(e,n.cache.key),`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}}function JF(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?h.homedir()+e.slice(1):e}function YF(e,t){return l.resolve(e,JF(t))}function XF(e,t){return typeof t==`string`&&t!==``?YF(e,t):void 0}function ZF(e){return`plugin ${e.path} was not loaded: ${e.reason}`}const QF=new Set([`data`,`segments`,`helpers`,`actions`]),$F=`plugin.json5`,eI=/^[a-z][a-z0-9_]*$/;function tI(e){let t=l.basename(l.dirname(e));return eI.test(t)?t:void 0}const nI=`plugins.`;function rI(e){return`${nI}${e}.data`}function iI(e){try{return{ok:!0,value:e()}}catch(e){return{ok:!1,reason:aI(e)}}}function aI(e){return e instanceof QT?e.issues.map(e=>e.path===``||e.message.includes(e.path)?e.message:`${e.path}: ${e.message}`).join(`; `):e instanceof Error?e.message:String(e)}function oI(e,t){return e.map(e=>YF(l.dirname(t),e))}function sI(e,t,n,i){let a=new Map;return e.reduce((e,n)=>{let o=tI(n),s=(t,r)=>{let i=new Map(e.rendering);return o!==void 0&&r!==e.config&&i.delete(o),{...e,config:r,rendering:i,dropped:[...e.dropped,{path:n,plugin:o,reason:t}]}};if(l.basename(n)!==`plugin.json5`){let t=`a plugin is a folder holding its ${$F}, and the folder's name is the plugin's: move this file to <dir>/<name>/${$F} and list that`;return s(t,o===void 0?e.config:uI(lI(e.config,o),o,{path:n,plugin:o,reason:t}))}if(o===void 0)return s(`its folder "${l.basename(l.dirname(n))}" is not a plugin name (one matching ${eI}: it prefixes every name the plugin declares)`,e.config);let c=a.get(o);if(c!==void 0)return s(`plugin "${o}" is already listed, from ${c}`,e.config);a.set(o,n);let u=lI(e.config,o),d=iI(()=>{let a=r.readFileSync(n,`utf-8`),s=CM(gI(n,o,{source:a,json:_r.default.parse(a)},t),u);return i(s,o,u!==e.config),s});if(d.ok)return{...e,config:d.value,loaded:[...e.loaded,n],rendering:new Map([...e.rendering,[o,n]])};let f={path:n,plugin:o,reason:d.reason};return s(d.reason,uI(u,o,f))},{config:n.config,rendering:n.rendering,loaded:[],dropped:[]})}function cI(e){let t=`${nI}${e}.`;return e=>e.startsWith(t)}function lI(e,t){let n=cI(t),r=e=>Object.fromEntries(Object.entries(e).filter(([e])=>!n(e)));return[e.variables,e.segments,e.helpers,e.actions].some(e=>Object.keys(e).some(n))?{...e,variables:r(e.variables),segments:r(e.segments),helpers:r(e.helpers),actions:r(e.actions)}:e}function uI(e,t,n){return{...e,variables:{...e.variables,[rI(t)]:{kind:`dropped`,reason:ZF(n),definition:n.path}}}}function dI(e){return e.startsWith(`plugins.`)?e.slice(8).split(`.`)[0]:void 0}function fI(e,t){let n=new Set([...Object.keys(e.config.variables),...Object.keys(e.config.segments)].map(dI)),r=[...t,...e.dropped].filter(e=>e.plugin===void 0).map(e=>({definition:e.path,notice:ZF(e)}));return t=>{let i=dI(t);if(i===void 0)return[];let a=e.config.variables[rI(i)];return a?.kind===`dropped`?[{definition:a.definition,notice:a.reason}]:n.has(i)?[]:r}}function pI(e,t){let n=Jg(e.presets).flatMap(t=>[...fg(Zg(e,t).node)]).flatMap(e=>e.kind===`segment`?[e]:[]),r=[...new Set([...n.map(e=>e.name),...Object.keys(e.segments)])].map(e=>({name:e,cause:t(e)})).filter(({cause:e})=>e.length>0),i=Object.fromEntries(r.map(({name:e,cause:t})=>[e,mI(e,t.map(e=>e.notice),n.filter(t=>t.name===e))])),a=t=>{let n=dI(t),r=n===void 0?void 0:e.variables[rI(n)];return r?.kind===`dropped`?{definition:r.definition,notice:r.reason}:void 0},o=Object.values(e.variables).some(e=>e.kind===`dropped`),s=o?Object.values(e.segments).flatMap(e=>[`template`,`bg`,`fg`,`when`].flatMap(t=>e[t]===void 0?[]:[e[t]])):[],c=o?Object.values(e.actions).flatMap(e=>`do`in e?[...e.do]:[]):[],l=(e,t)=>[...new Set(e)].flatMap(e=>{let n=e in t?void 0:a(e);return n===void 0?[]:[[e,n]]}),u=l([...s.flatMap(t=>C_(t,e.helpers).map(e=>e.name)),...c],e.actions),d=l(s.flatMap(t=>[...T_(t,e.helpers)]),e.helpers),f=new Set([...r.flatMap(({cause:e})=>e.map(e=>e.definition)),...[...u,...d].map(([,e])=>e.definition)]);return{config:{...e,segments:{...e.segments,...i},actions:{...e.actions,...Object.fromEntries(u.map(([e])=>[e,{copy:`{{ .${rI(dI(e)??``)} }}`}]))},helpers:{...e.helpers,...Object.fromEntries(d.map(([e,t])=>[e,`{{ fail ${JSON.stringify(t.notice)} }}`]))}},reached:f}}function mI(e,t,n){let r=`⚠ ${e}: ${t.join(`; `)}`,i=new Map;for(let e of n)for(let[t,n]of Object.entries(e.settings??{})){let e=i.get(t);i.set(t,e===void 0?[n]:[...e,n])}let a=Object.fromEntries([...i].map(([e,t])=>[e,hI(e,t)]));return{template:`{{ ${JSON.stringify(r)} }}`,bg:`error`,description:`stands in for a segment whose plugin did not load`,settings:a}}function hI(e,t){let[n]=t,r=t.filter(e=>typeof e==`number`);return typeof n==`boolean`?{label:e,domain:`bool`,default:n}:typeof n==`number`?{label:e,domain:{min:Math.min(...r),max:Math.max(...r),step:1},default:n}:{label:e,domain:[...new Set(t.map(String))],default:n}}function gI(e,t,{source:n,json:r},{checkout:i}){let a=[],o=()=>{throw new QT(e,a)};if(!jE(r))return a.push({path:``,message:`a plugin definition must be an object, got ${X(r)}`}),o();for(let e of Object.keys(r))QF.has(e)||a.push({path:e,message:e===`plugin`?`a plugin definition does not name itself: its name is its folder's ("${t}") — remove "plugin"`:`a plugin definition may not declare "${e}". Expected only: ${[...QF].join(`, `)}`});let s=yI(r.data,e,i,a);if(jE(r.segments)||a.push({path:`segments`,message:`"segments" must be an object naming the plugin's segments`}),a.length>0||s===void 0)return o();let c={source:n,issues:a,allowedPalettes:new Set(lm()),groups:[]},l=PM(c,`data`,{[rI(t)]:{kind:`file`,path:s,parse:{json:!0},cache:{watch_file:s},default:{}}});for(let[e,t]of Object.entries(r.segments))jE(t)&&`vars`in t&&a.push({path:`segments.${e}.vars`,message:`a plugin segment may not declare "vars": a plugin's only source is its data file`});let u={variables:l,segments:vI(t,ON(c,r.segments,new Set)),helpers:vI(t,gF(c,r.helpers)),actions:vI(t,xP(c,r.actions))};for(let[e,t]of _I(u))try{ZD.parse(t)}catch(t){a.push({path:e,message:`Template parse error in ${e}: ${t.message}`})}return a.length>0&&o(),u}function*_I(e){for(let[t,n]of Object.entries(e.segments??{}))for(let e of[`template`,`bg`,`fg`,`when`]){let r=n[e];r!==void 0&&(yield[`segments.${t}.${e}`,r])}for(let[t,n]of Object.entries(e.helpers??{}))yield[`helpers.${t}`,`{{ define "${t}" }}${n}{{ end }}`];for(let[t,n]of Object.entries(e.actions??{}))`copy`in n&&(yield[`actions.${t}.copy`,n.copy]),`open`in n&&(yield[`actions.${t}.open`,n.open]),`preset`in n&&n.preset===`delete`&&(yield[`actions.${t}.name`,n.name])}function vI(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[`${nI}${e}.${t}`,n]))}function yI(e,t,n,r){if(typeof e==`string`&&e!==``)return YF(l.dirname(t),e);if(jE(e)&&Object.keys(e).length===1&&typeof e.checkout==`string`&&e.checkout!==``){let t=e.checkout;if(l.isAbsolute(t)||t.startsWith(`~`)||l.normalize(t).split(l.sep)[0]===`..`){r.push({path:`data.checkout`,message:`data.checkout "${t}" must be a path inside the checkout, relative to its root (like ".lit/statusline.json"): no absolute path, "~" or ".."`});return}if(n===null){r.push({path:`data.checkout`,message:`data is read from the session's checkout, and this load has no session`});return}return l.resolve(n.root,t)}if(jE(e)&&`project`in e){r.push({path:`data.project`,message:`data: { project } is now data: { checkout }: the same path, relative to the root of the git checkout the session works in (a linked worktree is its own checkout)`});return}r.push({path:`data`,message:`"data" must be the path of the plugin's JSON data file relative to this definition, or { checkout: "<path>" } relative to the root of the session's checkout`})}function bI(e){let t=[...[...(process.env.XDG_DATA_DIRS||CI()).split(`:`).filter(e=>e!==``)].reverse().map(e=>l.join(e,`cc-candybar`,`plugins`)),xI(),...e===null?[]:[l.join(e,SI)]];return t.filter((e,n)=>t.lastIndexOf(e)===n)}function xI(){let e=process.env.XDG_DATA_HOME||l.join(h.homedir(),`.local`,`share`);return l.join(e,`cc-candybar`,`plugins`)}const SI=l.join(`.cc-candybar`,`plugins`);function CI(){let e=`/usr/local/share:/usr/share`;return process.platform===`darwin`?`${l.join(process.env.HOMEBREW_PREFIX||`/opt/homebrew`,`share`)}:${e}`:e}function wI(e){let t=bI(e),n=new Map,r=[],i=[];for(let e of t){let t=TI(e);if(`error`in t){r.push(t);continue}for(let r of t.folders)n.delete(r),n.set(r,l.join(e,r,$F));for(let n of t.files)i.push({path:l.join(e,n),plugin:void 0,reason:`a plugin is a folder holding its ${$F}: move this file to ${l.join(e,`<name>`,$F)}`})}return{roots:t,definitions:[...n.values()],unchecked:r,strays:i}}function TI(e){try{let t=r.readdirSync(e,{withFileTypes:!0}).filter(e=>!e.name.startsWith(`.`)).sort((e,t)=>e.name<t.name?-1:+(e.name>t.name)),n=t=>t.isDirectory()||EI(e,t);return{folders:t.filter(n).map(e=>e.name),files:t.filter(e=>!n(e)).map(e=>e.name)}}catch(t){return t.code===`ENOENT`?{folders:[],files:[]}:{path:e,error:t.message}}}function EI(e,t){if(!t.isSymbolicLink())return!1;try{return r.statSync(l.join(e,t.name)).isDirectory()}catch{return!0}}const DI=[`json5`,`json`];function OI(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function kI(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?DI.map(t=>l.join(e,`.cc-candybar.${t}`)):[],...DI.map(e=>l.join(r,`.cc-candybar.${e}`)),...DI.map(e=>`${AI()}.${e}`)])]}function AI(){let e=process.env.XDG_CONFIG_HOME??l.join(h.homedir(),`.config`);return l.join(e,`cc-candybar`,`config`)}function jI(e,t,n){let i=[],a=new Map;for(let o of kI(e,t,n)){let e=OI(o);if(e===`absent`)continue;if(e!==`present`){i.push(e);continue}let t=l.join(r.realpathSync(l.dirname(o)),l.basename(o).replace(/\.(json5|json)$/,``));a.has(t)||a.set(t,o)}let o=[...a.values()].reverse();if(n===void 0)return{kind:`chain`,layers:o,home:MI(o),unchecked:i};let[s]=i,c=n;return o.length>0?{kind:`chain`,layers:o,home:c,unchecked:i}:s===void 0?{kind:`missing`,path:n,home:c}:{kind:`unreadable`,...s,home:c}}function MI(e){let t=AI();return e.find(e=>DI.some(n=>e===`${t}.${n}`))??`${t}.${DI[0]}`}function NI(e,t,n){let r=jI(e,t,n),i=r.kind===`chain`?r.layers:[];return{path:r.home,above:i.filter(e=>e!==r.home),projectDir:e??null,cwd:t??null}}function PI(e){return FI(e).join(`
154
+ `)||null}function FI(e){switch(e.kind){case`chain`: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 II(e,t){let n=kI(e,t).filter(e=>OI(e)===`present`),r=new Map;for(let e of n){let t=l.dirname(e),n=l.basename(e).replace(/\.(json5|json)$/,``),i=l.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 LI(e,t,n,i){return e===null?{...qI,config:CM(qI.raw,t)}:zI(e,r.readFileSync(e,`utf-8`),t,n,i)}const RI={projectDir:null,checkout:null,beneath:{dropped:[],rendering:new Map}};function zI(e,t,n,r,i){let a=XI(e,t,i,(t,a)=>{let o=sI(oI(t,e),r,{config:n,rendering:r.beneath.rendering},(t,n,r)=>GI(t,n,r,e,i)),s=fI(o,r.beneath.dropped);return{inherited:new Set([...DN(o.config),...a.filter(e=>s(e).length>0)]),layer:{plugins:o,owning:s}}}),{plugins:o,owning:s}=a.layer,c=pI(CM(a.raw,o.config),s);return{source:t,raw:a.raw,warnings:[...a.warnings,...o.dropped.map(ZF)],plugins:{loaded:o.loaded,dropped:o.dropped,reached:c.reached,rendering:o.rendering},config:c.config}}const BI=new WeakMap;function VI(e,t,n,r){let i=JSON.stringify([[...r??[]].sort(),e.map(e=>[e,UI(e)])]),a=BI.get(n)??new Map;BI.set(n,a);let o=JSON.stringify([t.projectDir,t.checkout?.root??null]),s=a.get(o);if(s?.key===i)return s.layer;let c=sI(e,t,{config:n,rendering:new Map},(e,t,n)=>GI(e,t,n,`<installed plugins>`,r));return a.set(o,{key:i,layer:c}),c}function HI(e,t,n){return sI(e,{projectDir:null,checkout:n},{config:t,rendering:new Map},(e,t,n)=>GI(e,t,n,`<plugin install>`,void 0)).dropped}function UI(e){try{let t=r.statSync(e);return`${t.ino}:${t.size}:${t.mtimeMs}`}catch(e){return e.code??`unreadable`}}function WI(e,t,n,i,a=e=>r.readFileSync(e,`utf-8`),o){let s={projectDir:i.projectDir,checkout:i.cwd===null?null:Pw(i.cwd)},c=wI(s.projectDir),l=VI(c.definitions,s,t,o),u={...l,dropped:[...l.dropped,...c.strays]};n.warned(c.unchecked.map(e=>`Plugin folder could not be listed: ${e.path} — ${e.error}`));let d=u.config,f=[];for(let t of e){n.entered(t);let e=f.at(-1)?.plugins,r=zI(t,a(t),f.at(-1)?.config??d,{...s,beneath:{dropped:[...u.dropped,...f.flatMap(e=>e.plugins.dropped)],rendering:e?.rendering??u.rendering}},o);n.warned(r.warnings),f.push({...r,path:t})}let p=new Set(f.flatMap(e=>[...e.plugins.reached])),m=e=>p.has(e.path),h=u.dropped.filter(m),g=u.dropped.filter(e=>!m(e));n.warned(h.map(ZF));let _={checkout:s.checkout,roots:c.roots,loaded:u.loaded,dropped:h,unreached:g,reached:p,rendering:f.at(-1)?.plugins.rendering??u.rendering},v=f.at(-1);if(v===void 0)return{layers:f,base:d,installed:_,config:JI(LI(null,d,RI),`<default>`,o)};try{return{layers:f,base:d,installed:_,config:JI(v,v.path,o)}}catch(e){for(let e of f.slice(0,-1))n.entered(e.path),JI(e,e.path,o);throw n.entered(v.path),e}}function GI(e,t,n,r,i){if(n){JI(KI(e),r,i);return}let a=cI(t),o=[],s={source:``,issues:o,allowedPalettes:new Set,groups:[]};if(WF(s,e,D_(e),a),KF(s,e,a),o.length>0)throw new QT(r,o)}function KI(e){return{config:e,raw:{root:e.root,presets:e.presets},source:``}}const qI={raw:{},source:``,warnings:[],plugins:{loaded:[],dropped:[],reached:new Set,rendering:new Map}};function JI({config:e,raw:t,source:n},r=`<config>`,i=new Set(lm())){let a=[],o={source:n,issues:a,allowedPalettes:i,groups:[]};if(SF(o,e,t),KF(o,e),a.length>0)throw new QT(r,a);let s=_P(e,a);if(a.length>0)throw new QT(r,a);return tM(xj(s))}function YI(e,t,n=new Set(lm()),r=ZI){return XI(e,t,n,()=>({inherited:r,layer:null})).raw}function XI(e,t,n,r){let i=QI(e,t),a=tE(e,t),o=a===null?[]:[a],s=[],c={source:t,issues:s,allowedPalettes:n??new Set(lm()),groups:[]};if(!jE(i))throw new QT(e,[{path:``,message:`Config root must be an object, got ${X(i)}`}],o);let{inherited:l,layer:u}=r(i.plugins===void 0?[]:tL({...c,issues:[]},i.plugins)??[],jE(i.segments)?Object.keys(i.segments):[]),d=$I(c,i,l);if(s.length>0)throw new QT(e,s,o);return{raw:d,warnings:o,layer:u}}const ZI=new Set;function QI(e,t){try{return _r.default.parse(t)}catch(t){let n=t;throw new QT(e,[{path:``,message:`JSON5 syntax error: ${n.message}`,line:n.lineNumber,col:n.columnNumber}])}}function $I(e,t,n){for(let n of Object.keys(t))eL.has(n)||e.issues.push({path:n,message:`Unknown top-level key "${n}". Expected one of: ${[...eL].join(`, `)}`,line:J(e.source,[n])});let r={};return t.globals!==void 0&&(r.globals=kD(e,`globals`,t.globals)),t.variables!==void 0&&(r.variables=PM(e,`variables`,t.variables)),t.segments!==void 0&&(r.segments=ON(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.
149
155
  Replace: layout: [["seg1", "seg2"], ["seg3"]]
150
156
  With: root: { v: [{ h: ["seg1", "seg2"] }, "seg3"] }
151
- Single-row example: root: { h: ["seg1", "seg2"] }`,line:J(e.source,[`layout`])}),t.root!==void 0&&(r.root=JM(e,`root`,t.root)),t.actions!==void 0&&(r.actions=vN(e,t.actions)),t.looks!==void 0&&e.issues.push({path:`looks`,message:`"looks" was renamed "styles" — move the block under styles: { … } (and globals.look to globals.style)`,line:J(e.source,[`looks`])}),t.styles!==void 0&&(r.styles=uP(e,t.styles)),t.themeDefaults!==void 0&&(r.themeDefaults=FE(e,t.themeDefaults)),t.presets!==void 0&&(r.presets=fP(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=zE(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=pP(e,t.helpers)),t.plugins!==void 0&&(r.plugins=YF(e,t.plugins)),nN(e,r),fN(e,r),_D(e,r),gT(e,r,Y,`the global settings menu`),r}const JF=new Set([`globals`,`variables`,`segments`,`layout`,`looks`,`root`,`actions`,`styles`,`themeDefaults`,`presets`,`editGlobals`,`helpers`,`plugins`]);function YF(e,t){if(Array.isArray(t)&&t.every(e=>typeof e==`string`&&e!==``))return t;e.issues.push({path:`plugins`,message:`"plugins" must be a list of plugin definition paths, got ${X(t)}`,line:J(e.source,[`plugins`])})}const XF={},ZF=AO(`commands.`),QF=IO(`autocompact.`,e=>`{{ template "formatTokenCount" ${e} }}`),$F=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,eI=`{{ \$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 (${$F}) (basename .project_dir) (ne (${$F}) "") }}{{ end }}{{ end }}{{ action "copyDir" (abbreviatePath \$dir) }}`,tI=`{{ ${MD} }}`,nI={min:0,max:100,step:5},rI={warnAt:{label:`warning at %`,domain:nI,default:50},errorAt:{label:`error at %`,domain:{...nI,atLeast:`warnAt`},default:80}};function iI(e){return{budget:{label:`budget $`,domain:{min:0,max:1e4,step:5},default:e},warnAt:{label:`warning at %`,domain:nI,default:80}}}const aI={globals:{palette:`tokyo-night`},variables:{...ZF.variables,...eT,current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},version:{kind:`input`,path:`version`,default:``},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.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.tracking":{kind:`input`,path:`git.tracking`,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.color.branch":{kind:`literal`,value:`primary`},"git.color.staged":{kind:`literal`,value:`success`},"git.color.unstaged":{kind:`literal`,value:`warning`},"git.color.untracked":{kind:`literal`,value:`accent`},"git.color.conflicts":{kind:`literal`,value:`error`},"git.color.ahead":{kind:`literal`,value:`success`},"git.color.behind":{kind:`literal`,value:`warning`},"git.color.stash":{kind:`literal`,value:`accent`},"git.detail":{kind:`state`,key:`git-detail`,default:`collapsed`},"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},"today.cost":{kind:`input`,path:`today.cost`,type:`number`,default:0},"today.tokens":{kind:`input`,path:`today.tokens`,type:`number`,default:0},"block.nativeUtilization":{kind:`input`,path:`block.nativeUtilization`,type:`number`,default:0},"block.resetsAt":{kind:`input`,path:`block.resetsAt`,type:`number`,default:0},"weekly.percentage":{kind:`input`,path:`weekly.percentage`,type:`number`,default:0},"weekly.resetsAt":{kind:`input`,path:`weekly.resetsAt`,type:`number`,default:0},"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},"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},"memento.ceiling":{kind:`input`,path:`memento.ceiling`,type:`number`,default:-1},"memento.off":{kind:`input`,path:`memento.off`,type:`boolean`,default:!1},"memento.session":{kind:`input`,path:`memento.session`,default:``},"memento.error":{kind:`input`,path:`memento.error`,default:``},"metrics.lastResponseTime":{kind:`input`,path:`metrics.lastResponseTime`,type:`number`,default:0},"metrics.responseTime":{kind:`input`,path:`metrics.responseTime`,type:`number`,default:0},"metrics.sessionDuration":{kind:`input`,path:`metrics.sessionDuration`,type:`number`,default:0},"metrics.messageCount":{kind:`input`,path:`metrics.messageCount`,type:`number`,default:0},"metrics.linesAdded":{kind:`input`,path:`metrics.linesAdded`,type:`number`,default:0},"metrics.linesRemoved":{kind:`input`,path:`metrics.linesRemoved`,type:`number`,default:0},"activity.command":{kind:`input`,path:`activity.command`,type:`string`,default:``},"activity.todo.total":{kind:`input`,path:`activity.todo.total`,type:`number`,default:0},"activity.todo.completed":{kind:`input`,path:`activity.todo.completed`,type:`number`,default:0},"activity.todo.position":{kind:`input`,path:`activity.todo.position`,type:`number`,default:0},"activity.todo.active":{kind:`input`,path:`activity.todo.active`,type:`string`,default:``},"activity.tool.running":{kind:`input`,path:`activity.tool.running`,type:`string`,default:``},"activity.tool.done":{kind:`input`,path:`activity.tool.done`,type:`string`,default:``}},segments:{directory:{group:`location`,description:"The current directory, shortened fish-style — `~` under home, project-relative inside the project. Click to copy the full path.",template:eI},model:{group:`model-context`,description:`The active model's display name.`,template:`✱ {{ formatModelName .model.display_name }}`,when:`{{ ne .model.display_name "" }}`},sessionId:{group:`session-tools`,description:`The session id, truncated to 8 characters.`,template:`⌗{{ trunc 8 .session.id }}`,when:`{{ ne .session.id "" }}`},version:{group:`model-context`,description:`The Claude Code version reported in the hook payload.`,template:`◈ v{{ .version }}`,when:`{{ ne .version "" }}`},tmux:{group:`location`,description:`The tmux session name; hidden when not inside tmux.`,template:`tmux:{{ .tmux.session | default "none" }}`,when:`{{ ne .tmux.session "" }}`},host:{group:`location`,description:`user@host on a warning background, shown only over SSH.`,template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,when:`{{ .host.ssh }}`},gitaculous:{group:`git`,description:`The git state: a summary (branch, ahead/behind, S/U/? flags) that the arrow at its right edge expands to every fact — repo, in-progress operation, sha, upstream ±, stash count, time since the last commit.`,template:`{{ if eq .git.detail "expanded" }}{{ template "gitExpanded" . }}{{ else }}{{ template "gitCollapsed" . }}{{ end }} {{ action "gitDetail" "▸" "◂" }}`,fg:tI,when:`{{ ne .git.branch "" }}`,settings:{aheadBehind:{label:`ahead/behind`,domain:`bool`,default:!0},flags:{label:`dirty flags`,domain:`bool`,default:!0},operation:{label:`operation`,domain:`bool`,default:!0},repo:{label:`repo name`,domain:`bool`,default:!0},sha:{label:`commit hash`,domain:`bool`,default:!0},stash:{label:`stash`,domain:`bool`,default:!0},upstream:{label:`upstream`,domain:`bool`,default:!0},age:{label:`time since commit`,domain:`bool`,default:!0}}},gitPr:{group:`git`,description:"The pull request open for this branch, as a link; `⚠ PR` when the forge lookup failed.",template:`{{ if eq .git.prState "open" }}{{ link .git.prUrl (printf "⇆ #%v" .git.prNumber) }}{{ else }}⚠ PR{{ end }}`,when:`{{ or (eq .git.prState "open") (ne .git.prError "") }}`},toolbar:{group:`session-tools`,description:`Quick actions: copy the session id, and open the project, transcript or repo.`,template:yO(``).template},commands:{group:`session-tools`,description:`Type /compact, /model or /clear into this session; /clear asks for a second click. Hidden when not inside tmux.`,template:ZF.template,when:ZF.when},themeSwitcher:{group:`session-tools`,description:"`◀ <theme> ▶`: the theme the bar is wearing; ◀ and ▶ switch this session to the previous or next theme, wrapping at the ends.",template:`{{ carousel "stepTheme" 0 }}`},session:{group:`cost-limits`,description:`This session's cost and token total, with a budget warning once a budget is configured.`,template:`§ {{ template "formatCost" .session.cost }} ({{ template "formatTokens" .session.tokens }}){{ template "budgetStatus" (dict "cost" .session.cost "budget" .settings.budget "warn" .settings.warnAt) }}`,settings:iI(0)},today:{group:`cost-limits`,description:`Today's cost and tokens across every session, with a budget warning once a budget is configured.`,template:`☉ {{ template "formatCost" .today.cost }} ({{ template "formatTokens" .today.tokens }}){{ template "budgetStatus" (dict "cost" .today.cost "budget" .settings.budget "warn" .settings.warnAt) }}`,settings:iI(50)},block:{group:`cost-limits`,description:`The 5-hour rate-limit block: percent used and time to reset, heating to warning then error.`,template:`◱ {{ round .block.nativeUtilization }}% ({{ template "formatResetCountdown" .block.resetsAt }})`,bg:`{{ ramp (round .block.nativeUtilization) "step" 0 (tint) .settings.warnAt "warning" .settings.errorAt "error" }}`,settings:rI,when:`{{ gt .block.resetsAt 0 }}`},weekly:{group:`cost-limits`,description:`The weekly rate-limit quota: percent used and time to reset, heating to warning then error.`,template:`◑ {{ round .weekly.percentage }}% ({{ template "formatResetCountdown" .weekly.resetsAt }})`,bg:`{{ ramp (round .weekly.percentage) "step" 0 (tint) .settings.warnAt "warning" .settings.errorAt "error" }}`,settings:rI,when:`{{ gt .weekly.resetsAt 0 }}`},burnrate:{group:`cost-limits`,description:`Spend per hour, with the projected time to the 5-hour and weekly limits.`,template:`⚡ {{ template "formatRate" .burn.costPerHour }} · {{ template "formatEta" .block.etaMinutes }} to 5h · {{ template "formatEta" .weekly.etaMinutes }} to wk`,bg:`{{ ramp .block.etaMinutes "step" -1 (tint) 0 "error" .settings.errorWithin "warning" .settings.warnWithin (tint) }}`,settings:{errorWithin:{label:`error within (min)`,domain:{min:0,max:300,step:5},default:30},warnWithin:{label:`warning within (min)`,domain:{min:0,max:300,step:5,atLeast:`errorWithin`},default:60}},when:`{{ or (gt .block.resetsAt 0) (gt .weekly.resetsAt 0) }}`},speed:{group:`activity`,description:`Token throughput for the latest exchange: output, input, and total.`,template:`⇅ out {{ template "formatSpeed" .speed.output }} · in {{ template "formatSpeed" .speed.input }} · tot {{ template "formatSpeed" .speed.total }}`,when:`{{ gt .session.tokens 0 }}`},tokenSparkline:{group:`activity`,description:`A sparkline of recent token throughput.`,template:`⚡ {{ sparkline .speed.history 24 }}`,when:`{{ ne .speed.history "" }}`},cacheTimer:{group:`activity`,description:"Minutes until the prompt cache expires, or `cold` once it has.",template:`◴ {{ if le (minutesUntilReset .cache.expiresAt) 0 }}cold{{ else }}{{ minutesUntilReset .cache.expiresAt }}m{{ end }}`,fg:`{{ readableOn (color (cascade (minutesUntilReset .cache.expiresAt) "0:error" "9:warning" "21:foreground")) (bgOf) ${zf} }}`,when:`{{ gt .cache.expiresAt 0 }}`},context:{group:`model-context`,description:`Context used, in tokens and percent remaining, heating as it fills.`,template:`◔ {{ formatInteger .context.totalTokens }} ({{ .context.contextLeft }}%)`,bg:`{{ ramp .context.contextLeft "step" 0 "error" 21 "warning" 41 (tint) }}`,when:`{{ gt .context.totalTokens 0 }}`},ceiling:{group:`model-context`,description:`The memento plugin's context ceiling for this session: − and + move it by 100K, ∞ lifts it, ↺ drops this session's own setting.`,template:`{{ if ne .memento.error "" }}⌈ ⚠ {{ .memento.error }} {{ action "ceiling.clear" "↺" }}{{ else }}⌈ {{ if .memento.off }}off{{ else }}{{ template "formatTokenCount" .memento.ceiling }} {{ action "ceiling.lower" "−" }} {{ action "ceiling.raise" "+" }} {{ action "ceiling.off" "∞" }}{{ end }}{{ if ne .memento.session "" }} {{ action "ceiling.clear" "↺" }}{{ end }}{{ end }}`,bg:`{{ if ne .memento.error "" }}{{ color "error" }}{{ else }}{{ tint }}{{ end }}`,when:`{{ or (ge .memento.ceiling 0) (ne .memento.error "") }}`},autocompact:{group:`model-context`,description:`Claude Code's auto-compact window: − and + move it by 100K, ↺ returns it to auto. Clicks type /autocompact into this session, so the controls show only inside tmux.`,template:QF.template,bg:QF.bg,when:QF.when},metrics:{group:`activity`,description:`Response times, session duration, message count, and lines added/removed.`,template:`{{ if .metrics.lastResponseTime }} Δ {{ template "formatResponseTime" .metrics.lastResponseTime }}{{ end }}{{ if .metrics.responseTime }} ⧖ {{ template "formatResponseTime" .metrics.responseTime }}{{ end }}{{ if .metrics.sessionDuration }} ⧗ {{ template "formatDuration" .metrics.sessionDuration }}{{ end }}{{ if .metrics.messageCount }} ◆ {{ .metrics.messageCount }}{{ end }}{{ if .metrics.linesAdded }} + {{ .metrics.linesAdded }}{{ end }}{{ if .metrics.linesRemoved }} - {{ .metrics.linesRemoved }}{{ end }} `,when:`{{ or (gt .metrics.lastResponseTime 0.0) (gt .metrics.responseTime 0.0) (gt .metrics.sessionDuration 0.0) (gt .metrics.messageCount 0) (gt .metrics.linesAdded 0) (gt .metrics.linesRemoved 0) }}`},activity:{group:`activity`,description:`What Claude is doing: the slash command that opened the turn, the in-progress todo, and the tools in flight.`,template:`{{ if .activity.command }} ⌘ {{ .activity.command }}{{ end }}{{ if .activity.todo.total }}{{ if .activity.todo.active }} ☐ {{ .activity.todo.position }}/{{ .activity.todo.total }} {{ abbrev 32 .activity.todo.active }}{{ else }} ☑ {{ .activity.todo.completed }}/{{ .activity.todo.total }}{{ end }}{{ end }}{{ if .activity.tool.running }} ⟳ {{ template "formatToolTally" .activity.tool.running }}{{ end }}{{ if .activity.tool.done }} ✓ {{ template "formatToolTally" .activity.tool.done }}{{ end }} `,when:`{{ or (ne .activity.command "") (gt .activity.todo.total 0) (ne .activity.tool.running "") (ne .activity.tool.done "") }}`}},root:{rows:{identity:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`}]},status:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`activity`}]}}},actions:{...yO(``).actions,...ZF.actions,copyDir:{copy:`{{ .current_dir }}`},stepTheme:{set:`theme`,from:`themes`},gitDetail:{set:`git-detail`,cycle:[`collapsed`,`expanded`]},"ceiling.raise":{ceiling:`set`,to:`+100_000`},"ceiling.lower":{ceiling:`set`,to:`-100_000`},"ceiling.off":{ceiling:`set`,to:`off`},"ceiling.clear":{ceiling:`clear`},...QF.actions},styles:{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}},themeDefaults:XF,presets:{default:{},compact:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`context`}]},globals:{padding:0}},verbose:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{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`}]}]}},zen:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`context`}]},globals:{endcaps:`plain`,style:`dim`}},git:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`activity`}]}]}},usage:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`session`},{kind:`segment`,name:`today`},{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}},dense:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`session`},{kind:`segment`,name:`activity`}]},globals:{padding:0}}},editGlobals:{endcaps:`plain`,default_separator:` | `},helpers:{gitPaint:`{{ fg (readableOn (color .color) (bgOf) ${zf}) .text }}`,gitCollapsed:`{{ template "gitBranch" . }}{{ template "gitAheadBehind" . }}{{ template "gitFlags" . }}`,gitExpanded:`(git){{ template "gitRepo" . }}{{ template "gitOperation" . }}{{ template "gitSha" . }}{{ template "gitFlags" . }} {{ template "gitBranch" . }}{{ template "gitUpstream" . }}{{ template "gitStash" . }}{{ template "gitAge" . }}`,gitBranch:`⎇ {{ template "gitPaint" (dict "color" .git.color.branch "text" .git.branch) }}`,gitRepo:`{{ if and .settings.repo (ne .git.repoName "") }} {{ .git.repoName }}{{ end }}`,gitOperation:`{{ if and .settings.operation (ne .git.operation "") }} [{{ .git.operation }}]{{ end }}`,gitSha:`{{ if and .settings.sha (ne .git.sha "") }} {{ .git.sha }}{{ end }}`,gitFlags:`{{ if and .settings.flags (or (gt .git.staged 0) (gt .git.unstaged 0) (gt .git.untracked 0) (gt .git.conflicts 0)) }} {{ if gt .git.staged 0 }}{{ template "gitPaint" (dict "color" .git.color.staged "text" "S") }}{{ end }}{{ if gt .git.unstaged 0 }}{{ template "gitPaint" (dict "color" .git.color.unstaged "text" "U") }}{{ end }}{{ if gt .git.untracked 0 }}{{ template "gitPaint" (dict "color" .git.color.untracked "text" "?") }}{{ end }}{{ if gt .git.conflicts 0 }}{{ template "gitPaint" (dict "color" .git.color.conflicts "text" (printf "!%v" .git.conflicts)) }}{{ end }}{{ end }}`,gitAheadBehind:`{{ if and .settings.aheadBehind (or (gt .git.ahead 0) (gt .git.behind 0)) }} {{ if gt .git.ahead 0 }}{{ template "gitPaint" (dict "color" .git.color.ahead "text" (printf "+%v" .git.ahead)) }}{{ end }}{{ if and (gt .git.ahead 0) (gt .git.behind 0) }}/{{ end }}{{ if gt .git.behind 0 }}{{ template "gitPaint" (dict "color" .git.color.behind "text" (printf "-%v" .git.behind)) }}{{ end }}{{ end }}`,gitUpstream:`{{ if and .settings.upstream (ne .git.upstream "") }} [{{ .git.upstream }}{{ template "gitAheadBehind" . }}]{{ end }}`,gitStash:`{{ if and .settings.stash (gt .git.stash 0) }} {{ template "gitPaint" (dict "color" .git.color.stash "text" (printf "(%v stashed)" .git.stash)) }}{{ end }}`,gitAge:`{{ if and .settings.age (gt .git.timeSinceCommit 0) }} ◷ {{ template "formatTimeSince" .git.timeSinceCommit }}{{ end }}`,formatCost:'{{ if lt . 0.01 }}<$0.01{{ else }}${{ printf "%.2f" . }}{{ end }}',formatTokenCount:LO(`.`),formatTokens:`{{ template "formatTokenCount" . }} tokens`,formatToolTally:`{{ $names := splitList "," . }}{{ range $i, $pair := $names }}{{ if lt $i 2 }}{{ if $i }} {{ end }}{{ $kv := splitList ":" $pair }}{{ index $kv 0 }}{{ if ne (index $kv 1) "1" }}×{{ index $kv 1 }}{{ end }}{{ end }}{{ end }}{{ if gt (len $names) 2 }} +{{ sub (len $names) 2 }}{{ end }}`,formatRate:`{{ if lt . 0 }}—/hr{{ else }}{{ template "formatCost" . }}/hr{{ end }}`,formatEta:`{{ if lt . 0 }}—{{ else }}{{ template "formatLongTimeRemaining" . }}{{ end }}`,formatSpeed:`{{ if lt . 0 }}—{{ else }}{{ template "formatTokenCount" (round .) }}/s{{ end }}`,formatTokenBreakdown:`{{ $first := true }}{{ if gt .input 0 }}{{ template "formatTokenCount" .input }} in{{ $first = false }}{{ end }}{{ if gt .output 0 }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" .output }} out{{ $first = false }}{{ end }}{{ if or (gt .cacheCreation 0) (gt .cacheRead 0) }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" (add .cacheCreation .cacheRead) }} cached{{ $first = false }}{{ end }}{{ if $first }}0 tokens{{ end }}`,budgetStatus:`{{ if or (le .budget 0) (lt .cost 0) }}{{ else }}{{ $pct := minf 100 (mulf (divf .cost .budget) 100) }}{{ $p := printf "%.0f%%" $pct }}{{ if ge $pct .warn }} !{{ $p }}{{ else }}{{ if ge $pct 50 }} +{{ $p }}{{ else }} {{ $p }}{{ end }}{{ end }}{{ end }}`,formatTimeSince:`{{ if lt . 60 }}{{ . }}s{{ else if lt . 3600 }}{{ div . 60 }}m{{ else if lt . 86400 }}{{ div . 3600 }}h{{ else if lt . 604800 }}{{ div . 86400 }}d{{ else }}{{ div . 604800 }}w{{ end }}`,formatDuration:`{{ if lt . 60 }}{{ printf "%.0f" . }}s{{ else if lt . 3600 }}{{ printf "%.0f" (divf . 60) }}m{{ else if lt . 86400 }}{{ printf "%.1f" (divf . 3600) }}h{{ else }}{{ printf "%.1f" (divf . 86400) }}d{{ end }}`,formatResponseTime:`{{ if lt . 60 }}{{ printf "%.1f" . }}s{{ else }}{{ printf "%.1f" (divf . 60) }}m{{ end }}`,formatLongTimeRemaining:`{{ if ge . 1440 }}{{ $d := div . 1440 }}{{ $h := div (mod . 1440) 60 }}{{ if gt $h 0 }}{{ $d }}d {{ $h }}h{{ else }}{{ $d }}d{{ end }}{{ else if ge . 60 }}{{ $h := div . 60 }}{{ $m := mod . 60 }}{{ if gt $m 0 }}{{ $h }}h {{ $m }}m{{ else }}{{ $h }}h{{ end }}{{ else }}{{ . }}m{{ end }}`,formatResetCountdown:`{{ template "formatLongTimeRemaining" (add 1 (minutesUntilReset .)) }}`}},oI=new Set([aI.globals.palette,...Object.keys(aI.themeDefaults),...Object.values(aI.segments).map(e=>e.palette)].filter(e=>e!==void 0)),sI=bj(UF(`<default>`,JSON.stringify(aI),oI),aI),cI=ng(sI.presets);function lI(e){return cI.includes(e)}const uI=Object.freeze({});function dI(e,t){return e.kind===`decided`?t[e.name]??uI:uI}function fI(e,t){return{...e,...Object.fromEntries(Th.map(n=>[n,e[n]??t[n]]))}}function pI(e){if(!e)return``;try{return mI(s(e))}catch{return``}}function mI(e){return`${e.mtimeMs}:${e.size}`}const hI=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 gI(e){return((...t)=>hI.run(()=>e(...t)))}const _I=gI(E),vI=gI(oe),yI=gI(se);async function bI(e,t){return hI.run(async()=>{let n=null;try{n=await T(e,`r`);let r=await n.stat(),{size:i,ino:a}=r,o=mI(r),s=t!==void 0&&(a!==t.ino||i<t.offset),c=s||t===void 0?0:t.offset;if(c>=i)return F({buf:Buffer.alloc(0),start:c,size:i,stamp:o,ino:a,reset:s});let l=Buffer.alloc(i-c),u=0;for(;u<l.length;){let{bytesRead:e}=await n.read(l,u,l.length-u,c+u);if(e===0)break;u+=e}return F({buf:u===l.length?l:l.subarray(0,u),start:c,size:i,stamp:o,ino:a,reset:s})}catch(t){return t.code===`ENOENT`?I:L(`readAppended ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}async function xI(e,t){return hI.run(async()=>{let n=null;try{n=await T(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 F({buf:o===a.length?a:a.subarray(0,o),fromStart:i===0})}catch(t){return t.code===`ENOENT`?I:L(`readTail ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}const SI=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function CI(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 wI(e){let t=await TI(e);return t.kind===`ok`?F(Math.floor((t.value+36e5)/1e3)):t}async function TI(e){for(let t of[65536,1048576]){let n=await xI(e,t);if(n.kind!==`ok`)return n;let r=EI(n.value.buf,n.value.fromStart);if(r!=null)return F(r);if(n.value.fromStart)return I}return I}function EI(e,t){let n=e.toString(`utf8`).split(`
152
- `),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!SI.test(t))continue;let r=CI(t);if(r!=null)return r}return null}function DI(e,t){return{...e,claudeConfigDir:li(t.claudeConfigDir),env:t.mementoEnv}}const OI=l.join(`lib`,`ceiling_config.py`),kI=l.join(`skills`,`ceiling`,`bin`,`ceiling`);function AI(e,t){let n=typeof e==`object`&&e?e.plugins:void 0;if(typeof n!=`object`||!n)throw Error(`${t} has no "plugins" object`);return Object.entries(n).filter(([e])=>e.split(`@`)[0]===`memento`).flatMap(([e,n])=>{if(!Array.isArray(n))throw Error(`${t}: "${e}" is not a list of installs`);return n.map(n=>{let{scope:r,installPath:i,projectPath:a}=n??{};if(typeof r!=`string`||typeof i!=`string`)throw Error(`${t}: an install of "${e}" has no scope/path`);return typeof a==`string`?{key:e,scope:r,installPath:i,projectPath:a}:{key:e,scope:r,installPath:i}})})}function jI(e,t){let n=!0;for(let i of e){if(!r.existsSync(i))continue;let e;try{e=JSON.parse(r.readFileSync(i,`utf8`))?.enabledPlugins?.[t]}catch(e){return L(`memento lookup: ${i}: ${e.message}`)}typeof e==`boolean`&&(n=e)}return F(n)}function MI(e,t){if(!r.existsSync(e))return I;let n;try{n=AI(JSON.parse(r.readFileSync(e,`utf8`)),e)}catch(e){return L(`memento lookup: ${e.message}`)}let i=n.find(e=>e.projectPath===t)??n.find(e=>e.scope===`user`);if(i===void 0)return I;let a=jI([l.join(l.dirname(l.dirname(e)),`settings.json`),l.join(t,`.claude`,`settings.json`),l.join(t,`.claude`,`settings.local.json`)],i.key);if(a.kind!==`ok`)return a;if(!a.value)return I;let o=[OI,kI].filter(e=>!r.existsSync(l.join(i.installPath,e)));return o.length===0?F(i.installPath):L(`memento at ${i.installPath} has no ${o.join(` or `)} — upgrade the plugin`)}function NI(e,t=process.env){let n=new Set([`CLAUDE_PROJECT_DIR`,`CLAUDE_CODE_SESSION_ID`,...e.env===void 0?[]:tt]);return{...Object.fromEntries(Object.entries(t).filter(([e])=>!n.has(e))),...e.env,CLAUDE_CODE_SESSION_ID:e.sessionId,CLAUDE_PROJECT_DIR:e.projectDir||e.cwd}}function PI(e){return e.stderr.trim()||e.error||`${e.reason}${e.exitCode===null?``:` (exit ${e.exitCode})`}`}function FI(e){let t;try{t=JSON.parse(e)}catch{return L(`memento read: not JSON: ${e.trim()}`)}let{ceiling:n,session:r}=t??{},i=n===`off`||typeof n==`number`&&n>=0?n:void 0;return i!==void 0&&(r===null||typeof r==`string`)?F({ceiling:i,session:r}):L(`memento read: unexpected answer: ${e.trim()}`)}async function II(e,t){let n=await Me({bin:`python3`,args:[`-c`,`
157
+ Single-row example: root: { h: ["seg1", "seg2"] }`,line:J(e.source,[`layout`])}),t.root!==void 0&&(r.root=ZN(e,`root`,t.root)),t.actions!==void 0&&(r.actions=xP(e,t.actions)),t.looks!==void 0&&e.issues.push({path:`looks`,message:`"looks" was renamed "styles" — move the block under styles: { … } (and globals.look to globals.style)`,line:J(e.source,[`looks`])}),t.styles!==void 0&&(r.styles=pF(e,t.styles)),t.themeDefaults!==void 0&&(r.themeDefaults=OD(e,t.themeDefaults)),t.presets!==void 0&&(r.presets=hF(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=MD(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=gF(e,t.helpers)),t.plugins!==void 0&&(r.plugins=tL(e,t.plugins)),aP(e,r),hP(e,r),uO(e,r),lE(e,r,Y,`the global settings menu`),r}const eL=new Set([`globals`,`variables`,`segments`,`layout`,`looks`,`root`,`actions`,`styles`,`themeDefaults`,`presets`,`editGlobals`,`helpers`,`plugins`]);function tL(e,t){if(Array.isArray(t)&&t.every(e=>typeof e==`string`&&e!==``))return t;e.issues.push({path:`plugins`,message:`"plugins" must be a list of plugin definition paths, got ${X(t)}`,line:J(e.source,[`plugins`])})}const nL={},rL=Nk(`commands.`),iL=zk(`autocompact.`,e=>`{{ template "formatTokenCount" ${e} }}`),aL=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,oL=`{{ \$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 (${aL}) (basename .project_dir) (ne (${aL}) "") }}{{ end }}{{ end }}{{ action "copyDir" (abbreviatePath \$dir) }}`,sL=`{{ ${TO} }}`,cL={min:0,max:100,step:5},lL={warnAt:{label:`warning at %`,domain:cL,default:50},errorAt:{label:`error at %`,domain:{...cL,atLeast:`warnAt`},default:80}};function uL(e){return{budget:{label:`budget $`,domain:{min:0,max:1e4,step:5},default:e},warnAt:{label:`warning at %`,domain:cL,default:80}}}const dL={globals:{palette:`tokyo-night`},variables:{...rL.variables,...qT,current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},version:{kind:`input`,path:`version`,default:``},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.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.tracking":{kind:`input`,path:`git.tracking`,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.color.branch":{kind:`literal`,value:`primary`},"git.color.staged":{kind:`literal`,value:`success`},"git.color.unstaged":{kind:`literal`,value:`warning`},"git.color.untracked":{kind:`literal`,value:`accent`},"git.color.conflicts":{kind:`literal`,value:`error`},"git.color.ahead":{kind:`literal`,value:`success`},"git.color.behind":{kind:`literal`,value:`warning`},"git.color.stash":{kind:`literal`,value:`accent`},"git.detail":{kind:`state`,key:`git-detail`,default:`collapsed`},"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},"today.cost":{kind:`input`,path:`today.cost`,type:`number`,default:0},"today.tokens":{kind:`input`,path:`today.tokens`,type:`number`,default:0},"block.nativeUtilization":{kind:`input`,path:`block.nativeUtilization`,type:`number`,default:0},"block.resetsAt":{kind:`input`,path:`block.resetsAt`,type:`number`,default:0},"weekly.percentage":{kind:`input`,path:`weekly.percentage`,type:`number`,default:0},"weekly.resetsAt":{kind:`input`,path:`weekly.resetsAt`,type:`number`,default:0},"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},"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},"memento.ceiling":{kind:`input`,path:`memento.ceiling`,type:`number`,default:-1},"memento.off":{kind:`input`,path:`memento.off`,type:`boolean`,default:!1},"memento.session":{kind:`input`,path:`memento.session`,default:``},"memento.error":{kind:`input`,path:`memento.error`,default:``},"metrics.lastResponseTime":{kind:`input`,path:`metrics.lastResponseTime`,type:`number`,default:0},"metrics.responseTime":{kind:`input`,path:`metrics.responseTime`,type:`number`,default:0},"metrics.sessionDuration":{kind:`input`,path:`metrics.sessionDuration`,type:`number`,default:0},"metrics.messageCount":{kind:`input`,path:`metrics.messageCount`,type:`number`,default:0},"metrics.linesAdded":{kind:`input`,path:`metrics.linesAdded`,type:`number`,default:0},"metrics.linesRemoved":{kind:`input`,path:`metrics.linesRemoved`,type:`number`,default:0},"activity.command":{kind:`input`,path:`activity.command`,type:`string`,default:``},"activity.todo.total":{kind:`input`,path:`activity.todo.total`,type:`number`,default:0},"activity.todo.completed":{kind:`input`,path:`activity.todo.completed`,type:`number`,default:0},"activity.todo.position":{kind:`input`,path:`activity.todo.position`,type:`number`,default:0},"activity.todo.active":{kind:`input`,path:`activity.todo.active`,type:`string`,default:``},"activity.tool.running":{kind:`input`,path:`activity.tool.running`,type:`string`,default:``},"activity.tool.done":{kind:`input`,path:`activity.tool.done`,type:`string`,default:``}},segments:{directory:{group:`location`,description:"The current directory, shortened fish-style — `~` under home, project-relative inside the project. Click to copy the full path.",template:oL},model:{group:`model-context`,description:`The active model's display name.`,template:`✱ {{ formatModelName .model.display_name }}`,when:`{{ ne .model.display_name "" }}`},sessionId:{group:`session-tools`,description:`The session id, truncated to 8 characters.`,template:`⌗{{ trunc 8 .session.id }}`,when:`{{ ne .session.id "" }}`},version:{group:`model-context`,description:`The Claude Code version reported in the hook payload.`,template:`◈ v{{ .version }}`,when:`{{ ne .version "" }}`},tmux:{group:`location`,description:`The tmux session name; hidden when not inside tmux.`,template:`tmux:{{ .tmux.session | default "none" }}`,when:`{{ ne .tmux.session "" }}`},host:{group:`location`,description:`user@host on a warning background, shown only over SSH.`,template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,when:`{{ .host.ssh }}`},gitaculous:{group:`git`,description:`The git state: a summary (branch, ahead/behind, S/U/? flags) that the arrow at its right edge expands to every fact — repo, in-progress operation, sha, upstream ±, stash count, time since the last commit.`,template:`{{ if eq .git.detail "expanded" }}{{ template "gitExpanded" . }}{{ else }}{{ template "gitCollapsed" . }}{{ end }} {{ action "gitDetail" "▸" "◂" }}`,fg:sL,when:`{{ ne .git.branch "" }}`,settings:{aheadBehind:{label:`ahead/behind`,domain:`bool`,default:!0},flags:{label:`dirty flags`,domain:`bool`,default:!0},operation:{label:`operation`,domain:`bool`,default:!0},repo:{label:`repo name`,domain:`bool`,default:!0},sha:{label:`commit hash`,domain:`bool`,default:!0},stash:{label:`stash`,domain:`bool`,default:!0},upstream:{label:`upstream`,domain:`bool`,default:!0},age:{label:`time since commit`,domain:`bool`,default:!0}}},gitPr:{group:`git`,description:"The pull request open for this branch, as a link; `⚠ PR` when the forge lookup failed.",template:`{{ if eq .git.prState "open" }}{{ link .git.prUrl (printf "⇆ #%v" .git.prNumber) }}{{ else }}⚠ PR{{ end }}`,when:`{{ or (eq .git.prState "open") (ne .git.prError "") }}`},toolbar:{group:`session-tools`,description:`Quick actions: copy the session id, and open the project, transcript or repo.`,template:Sk(``).template},commands:{group:`session-tools`,description:`Type /compact, /model or /clear into this session; /clear asks for a second click. Hidden when not inside tmux.`,template:rL.template,when:rL.when},themeSwitcher:{group:`session-tools`,description:"`◀ <theme> ▶`: the theme the bar is wearing; ◀ and ▶ switch this session to the previous or next theme, wrapping at the ends.",template:`{{ carousel "stepTheme" 0 }}`},session:{group:`cost-limits`,description:`This session's cost and token total, with a budget warning once a budget is configured.`,template:`§ {{ template "formatCost" .session.cost }} ({{ template "formatTokens" .session.tokens }}){{ template "budgetStatus" (dict "cost" .session.cost "budget" .settings.budget "warn" .settings.warnAt) }}`,settings:uL(0)},today:{group:`cost-limits`,description:`Today's cost and tokens across every session, with a budget warning once a budget is configured.`,template:`☉ {{ template "formatCost" .today.cost }} ({{ template "formatTokens" .today.tokens }}){{ template "budgetStatus" (dict "cost" .today.cost "budget" .settings.budget "warn" .settings.warnAt) }}`,settings:uL(50)},block:{group:`cost-limits`,description:`The 5-hour rate-limit block: percent used and time to reset, heating to warning then error.`,template:`◱ {{ round .block.nativeUtilization }}% ({{ template "formatResetCountdown" .block.resetsAt }})`,bg:`{{ ramp (round .block.nativeUtilization) "step" 0 (tint) .settings.warnAt "warning" .settings.errorAt "error" }}`,settings:lL,when:`{{ gt .block.resetsAt 0 }}`},weekly:{group:`cost-limits`,description:`The weekly rate-limit quota: percent used and time to reset, heating to warning then error.`,template:`◑ {{ round .weekly.percentage }}% ({{ template "formatResetCountdown" .weekly.resetsAt }})`,bg:`{{ ramp (round .weekly.percentage) "step" 0 (tint) .settings.warnAt "warning" .settings.errorAt "error" }}`,settings:lL,when:`{{ gt .weekly.resetsAt 0 }}`},burnrate:{group:`cost-limits`,description:`Spend per hour, with the projected time to the 5-hour and weekly limits.`,template:`⚡ {{ template "formatRate" .burn.costPerHour }} · {{ template "formatEta" .block.etaMinutes }} to 5h · {{ template "formatEta" .weekly.etaMinutes }} to wk`,bg:`{{ ramp .block.etaMinutes "step" -1 (tint) 0 "error" .settings.errorWithin "warning" .settings.warnWithin (tint) }}`,settings:{errorWithin:{label:`error within (min)`,domain:{min:0,max:300,step:5},default:30},warnWithin:{label:`warning within (min)`,domain:{min:0,max:300,step:5,atLeast:`errorWithin`},default:60}},when:`{{ or (gt .block.resetsAt 0) (gt .weekly.resetsAt 0) }}`},speed:{group:`activity`,description:`Token throughput for the latest exchange: output, input, and total.`,template:`⇅ out {{ template "formatSpeed" .speed.output }} · in {{ template "formatSpeed" .speed.input }} · tot {{ template "formatSpeed" .speed.total }}`,when:`{{ gt .session.tokens 0 }}`},tokenSparkline:{group:`activity`,description:`A sparkline of recent token throughput.`,template:`⚡ {{ sparkline .speed.history 24 }}`,when:`{{ ne .speed.history "" }}`},cacheTimer:{group:`activity`,description:"Minutes until the prompt cache expires, or `cold` once it has.",template:`◴ {{ if le (minutesUntilReset .cache.expiresAt) 0 }}cold{{ else }}{{ minutesUntilReset .cache.expiresAt }}m{{ end }}`,fg:`{{ readableOn (color (cascade (minutesUntilReset .cache.expiresAt) "0:error" "9:warning" "21:foreground")) (bgOf) ${Mp} }}`,when:`{{ gt .cache.expiresAt 0 }}`},context:{group:`model-context`,description:`Context used, in tokens and percent remaining, heating as it fills.`,template:`◔ {{ formatInteger .context.totalTokens }} ({{ .context.contextLeft }}%)`,bg:`{{ ramp .context.contextLeft "step" 0 "error" 21 "warning" 41 (tint) }}`,when:`{{ gt .context.totalTokens 0 }}`},ceiling:{group:`model-context`,description:`The memento plugin's context ceiling for this session: − and + move it by 100K, ∞ lifts it, ↺ drops this session's own setting.`,template:`{{ if ne .memento.error "" }}⌈ ⚠ {{ .memento.error }} {{ action "ceiling.clear" "↺" }}{{ else }}⌈ {{ if .memento.off }}off{{ else }}{{ template "formatTokenCount" .memento.ceiling }} {{ action "ceiling.lower" "−" }} {{ action "ceiling.raise" "+" }} {{ action "ceiling.off" "∞" }}{{ end }}{{ if ne .memento.session "" }} {{ action "ceiling.clear" "↺" }}{{ end }}{{ end }}`,bg:`{{ if ne .memento.error "" }}{{ color "error" }}{{ else }}{{ tint }}{{ end }}`,when:`{{ or (ge .memento.ceiling 0) (ne .memento.error "") }}`},autocompact:{group:`model-context`,description:`Claude Code's auto-compact window: − and + move it by 100K, ↺ returns it to auto. Clicks type /autocompact into this session, so the controls show only inside tmux.`,template:iL.template,bg:iL.bg,when:iL.when},metrics:{group:`activity`,description:`Response times, session duration, message count, and lines added/removed.`,template:`{{ if .metrics.lastResponseTime }} Δ {{ template "formatResponseTime" .metrics.lastResponseTime }}{{ end }}{{ if .metrics.responseTime }} ⧖ {{ template "formatResponseTime" .metrics.responseTime }}{{ end }}{{ if .metrics.sessionDuration }} ⧗ {{ template "formatDuration" .metrics.sessionDuration }}{{ end }}{{ if .metrics.messageCount }} ◆ {{ .metrics.messageCount }}{{ end }}{{ if .metrics.linesAdded }} + {{ .metrics.linesAdded }}{{ end }}{{ if .metrics.linesRemoved }} - {{ .metrics.linesRemoved }}{{ end }} `,when:`{{ or (gt .metrics.lastResponseTime 0.0) (gt .metrics.responseTime 0.0) (gt .metrics.sessionDuration 0.0) (gt .metrics.messageCount 0) (gt .metrics.linesAdded 0) (gt .metrics.linesRemoved 0) }}`},activity:{group:`activity`,description:`What Claude is doing: the slash command that opened the turn, the in-progress todo, and the tools in flight.`,template:`{{ if .activity.command }} ⌘ {{ .activity.command }}{{ end }}{{ if .activity.todo.total }}{{ if .activity.todo.active }} ☐ {{ .activity.todo.position }}/{{ .activity.todo.total }} {{ abbrev 32 .activity.todo.active }}{{ else }} ☑ {{ .activity.todo.completed }}/{{ .activity.todo.total }}{{ end }}{{ end }}{{ if .activity.tool.running }} ⟳ {{ template "formatToolTally" .activity.tool.running }}{{ end }}{{ if .activity.tool.done }} ✓ {{ template "formatToolTally" .activity.tool.done }}{{ end }} `,when:`{{ or (ne .activity.command "") (gt .activity.todo.total 0) (ne .activity.tool.running "") (ne .activity.tool.done "") }}`}},root:{rows:{identity:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`}]},status:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`activity`}]}}},actions:{...Sk(``).actions,...rL.actions,copyDir:{copy:`{{ .current_dir }}`},stepTheme:{set:`theme`,from:`themes`},gitDetail:{set:`git-detail`,cycle:[`collapsed`,`expanded`]},"ceiling.raise":{ceiling:`set`,to:`+100_000`},"ceiling.lower":{ceiling:`set`,to:`-100_000`},"ceiling.off":{ceiling:`set`,to:`off`},"ceiling.clear":{ceiling:`clear`},...iL.actions},styles:{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}},themeDefaults:nL,presets:{default:{},compact:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`context`}]},globals:{padding:0}},verbose:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{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`}]}]}},zen:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`context`}]},globals:{endcaps:`plain`,style:`dim`}},git:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`activity`}]}]}},usage:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`session`},{kind:`segment`,name:`today`},{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}},dense:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`session`},{kind:`segment`,name:`activity`}]},globals:{padding:0}}},editGlobals:{endcaps:`plain`,default_separator:` | `},helpers:{gitPaint:`{{ fg (readableOn (color .color) (bgOf) ${Mp}) .text }}`,gitCollapsed:`{{ template "gitBranch" . }}{{ template "gitAheadBehind" . }}{{ template "gitFlags" . }}`,gitExpanded:`(git){{ template "gitRepo" . }}{{ template "gitOperation" . }}{{ template "gitSha" . }}{{ template "gitFlags" . }} {{ template "gitBranch" . }}{{ template "gitUpstream" . }}{{ template "gitStash" . }}{{ template "gitAge" . }}`,gitBranch:`⎇ {{ template "gitPaint" (dict "color" .git.color.branch "text" .git.branch) }}`,gitRepo:`{{ if and .settings.repo (ne .git.repoName "") }} {{ .git.repoName }}{{ end }}`,gitOperation:`{{ if and .settings.operation (ne .git.operation "") }} [{{ .git.operation }}]{{ end }}`,gitSha:`{{ if and .settings.sha (ne .git.sha "") }} {{ .git.sha }}{{ end }}`,gitFlags:`{{ if and .settings.flags (or (gt .git.staged 0) (gt .git.unstaged 0) (gt .git.untracked 0) (gt .git.conflicts 0)) }} {{ if gt .git.staged 0 }}{{ template "gitPaint" (dict "color" .git.color.staged "text" "S") }}{{ end }}{{ if gt .git.unstaged 0 }}{{ template "gitPaint" (dict "color" .git.color.unstaged "text" "U") }}{{ end }}{{ if gt .git.untracked 0 }}{{ template "gitPaint" (dict "color" .git.color.untracked "text" "?") }}{{ end }}{{ if gt .git.conflicts 0 }}{{ template "gitPaint" (dict "color" .git.color.conflicts "text" (printf "!%v" .git.conflicts)) }}{{ end }}{{ end }}`,gitAheadBehind:`{{ if and .settings.aheadBehind (or (gt .git.ahead 0) (gt .git.behind 0)) }} {{ if gt .git.ahead 0 }}{{ template "gitPaint" (dict "color" .git.color.ahead "text" (printf "+%v" .git.ahead)) }}{{ end }}{{ if and (gt .git.ahead 0) (gt .git.behind 0) }}/{{ end }}{{ if gt .git.behind 0 }}{{ template "gitPaint" (dict "color" .git.color.behind "text" (printf "-%v" .git.behind)) }}{{ end }}{{ end }}`,gitUpstream:`{{ if and .settings.upstream (ne .git.upstream "") }} [{{ .git.upstream }}{{ template "gitAheadBehind" . }}]{{ end }}`,gitStash:`{{ if and .settings.stash (gt .git.stash 0) }} {{ template "gitPaint" (dict "color" .git.color.stash "text" (printf "(%v stashed)" .git.stash)) }}{{ end }}`,gitAge:`{{ if and .settings.age (gt .git.timeSinceCommit 0) }} ◷ {{ template "formatTimeSince" .git.timeSinceCommit }}{{ end }}`,formatCost:'{{ if lt . 0.01 }}<$0.01{{ else }}${{ printf "%.2f" . }}{{ end }}',formatTokenCount:Bk(`.`),formatTokens:`{{ template "formatTokenCount" . }} tokens`,formatToolTally:`{{ $names := splitList "," . }}{{ range $i, $pair := $names }}{{ if lt $i 2 }}{{ if $i }} {{ end }}{{ $kv := splitList ":" $pair }}{{ index $kv 0 }}{{ if ne (index $kv 1) "1" }}×{{ index $kv 1 }}{{ end }}{{ end }}{{ end }}{{ if gt (len $names) 2 }} +{{ sub (len $names) 2 }}{{ end }}`,formatRate:`{{ if lt . 0 }}—/hr{{ else }}{{ template "formatCost" . }}/hr{{ end }}`,formatEta:`{{ if lt . 0 }}—{{ else }}{{ template "formatLongTimeRemaining" . }}{{ end }}`,formatSpeed:`{{ if lt . 0 }}—{{ else }}{{ template "formatTokenCount" (round .) }}/s{{ end }}`,formatTokenBreakdown:`{{ $first := true }}{{ if gt .input 0 }}{{ template "formatTokenCount" .input }} in{{ $first = false }}{{ end }}{{ if gt .output 0 }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" .output }} out{{ $first = false }}{{ end }}{{ if or (gt .cacheCreation 0) (gt .cacheRead 0) }}{{ if not $first }} + {{ end }}{{ template "formatTokenCount" (add .cacheCreation .cacheRead) }} cached{{ $first = false }}{{ end }}{{ if $first }}0 tokens{{ end }}`,budgetStatus:`{{ if or (le .budget 0) (lt .cost 0) }}{{ else }}{{ $pct := minf 100 (mulf (divf .cost .budget) 100) }}{{ $p := printf "%.0f%%" $pct }}{{ if ge $pct .warn }} !{{ $p }}{{ else }}{{ if ge $pct 50 }} +{{ $p }}{{ else }} {{ $p }}{{ end }}{{ end }}{{ end }}`,formatTimeSince:`{{ if lt . 60 }}{{ . }}s{{ else if lt . 3600 }}{{ div . 60 }}m{{ else if lt . 86400 }}{{ div . 3600 }}h{{ else if lt . 604800 }}{{ div . 86400 }}d{{ else }}{{ div . 604800 }}w{{ end }}`,formatDuration:`{{ if lt . 60 }}{{ printf "%.0f" . }}s{{ else if lt . 3600 }}{{ printf "%.0f" (divf . 60) }}m{{ else if lt . 86400 }}{{ printf "%.1f" (divf . 3600) }}h{{ else }}{{ printf "%.1f" (divf . 86400) }}d{{ end }}`,formatResponseTime:`{{ if lt . 60 }}{{ printf "%.1f" . }}s{{ else }}{{ printf "%.1f" (divf . 60) }}m{{ end }}`,formatLongTimeRemaining:`{{ if ge . 1440 }}{{ $d := div . 1440 }}{{ $h := div (mod . 1440) 60 }}{{ if gt $h 0 }}{{ $d }}d {{ $h }}h{{ else }}{{ $d }}d{{ end }}{{ else if ge . 60 }}{{ $h := div . 60 }}{{ $m := mod . 60 }}{{ if gt $m 0 }}{{ $h }}h {{ $m }}m{{ else }}{{ $h }}h{{ end }}{{ else }}{{ . }}m{{ end }}`,formatResetCountdown:`{{ template "formatLongTimeRemaining" (add 1 (minutesUntilReset .)) }}`}},fL=new Set([dL.globals.palette,...Object.keys(dL.themeDefaults),...Object.values(dL.segments).map(e=>e.palette)].filter(e=>e!==void 0)),pL=CM(YI(`<default>`,JSON.stringify(dL),fL),dL),mL=Jg(pL.presets);function hL(e){return mL.includes(e)}const gL=Object.freeze({});function _L(e,t){return e.kind===`decided`?t[e.name]??gL:gL}function vL(e,t){return{...e,...Object.fromEntries(_g.map(n=>[n,e[n]??t[n]]))}}function yL(e){if(!e)return``;try{return bL(s(e))}catch{return``}}function bL(e){return`${e.mtimeMs}:${e.size}`}const xL=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 SL(e){return((...t)=>xL.run(()=>e(...t)))}const CL=SL(E),wL=SL(oe),TL=SL(se);async function EL(e,t){return xL.run(async()=>{let n=null;try{n=await T(e,`r`);let r=await n.stat(),{size:i,ino:a}=r,o=bL(r),s=t!==void 0&&(a!==t.ino||i<t.offset),c=s||t===void 0?0:t.offset;if(c>=i)return F({buf:Buffer.alloc(0),start:c,size:i,stamp:o,ino:a,reset:s});let l=Buffer.alloc(i-c),u=0;for(;u<l.length;){let{bytesRead:e}=await n.read(l,u,l.length-u,c+u);if(e===0)break;u+=e}return F({buf:u===l.length?l:l.subarray(0,u),start:c,size:i,stamp:o,ino:a,reset:s})}catch(t){return t.code===`ENOENT`?I:L(`readAppended ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}async function DL(e,t){return xL.run(async()=>{let n=null;try{n=await T(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 F({buf:o===a.length?a:a.subarray(0,o),fromStart:i===0})}catch(t){return t.code===`ENOENT`?I:L(`readTail ${e}: ${t instanceof Error?t.message:String(t)}`)}finally{await n?.close().catch(e=>{D(`transcript-fs: close failed: ${e instanceof Error?e.message:String(e)}`)})}})}const OL=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function kL(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 AL(e){let t=await jL(e);return t.kind===`ok`?F(Math.floor((t.value+36e5)/1e3)):t}async function jL(e){for(let t of[65536,1048576]){let n=await DL(e,t);if(n.kind!==`ok`)return n;let r=ML(n.value.buf,n.value.fromStart);if(r!=null)return F(r);if(n.value.fromStart)return I}return I}function ML(e,t){let n=e.toString(`utf8`).split(`
158
+ `),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!OL.test(t))continue;let r=kL(t);if(r!=null)return r}return null}function NL(e,t){return{...e,claudeConfigDir:li(t.claudeConfigDir),env:t.mementoEnv}}const PL=l.join(`lib`,`ceiling_config.py`),FL=l.join(`skills`,`ceiling`,`bin`,`ceiling`);function IL(e,t){let n=typeof e==`object`&&e?e.plugins:void 0;if(typeof n!=`object`||!n)throw Error(`${t} has no "plugins" object`);return Object.entries(n).filter(([e])=>e.split(`@`)[0]===`memento`).flatMap(([e,n])=>{if(!Array.isArray(n))throw Error(`${t}: "${e}" is not a list of installs`);return n.map(n=>{let{scope:r,installPath:i,projectPath:a}=n??{};if(typeof r!=`string`||typeof i!=`string`)throw Error(`${t}: an install of "${e}" has no scope/path`);return typeof a==`string`?{key:e,scope:r,installPath:i,projectPath:a}:{key:e,scope:r,installPath:i}})})}function LL(e,t){let n=!0;for(let i of e){if(!r.existsSync(i))continue;let e;try{e=JSON.parse(r.readFileSync(i,`utf8`))?.enabledPlugins?.[t]}catch(e){return L(`memento lookup: ${i}: ${e.message}`)}typeof e==`boolean`&&(n=e)}return F(n)}function RL(e,t){if(!r.existsSync(e))return I;let n;try{n=IL(JSON.parse(r.readFileSync(e,`utf8`)),e)}catch(e){return L(`memento lookup: ${e.message}`)}let i=n.find(e=>e.projectPath===t)??n.find(e=>e.scope===`user`);if(i===void 0)return I;let a=LL([l.join(l.dirname(l.dirname(e)),`settings.json`),l.join(t,`.claude`,`settings.json`),l.join(t,`.claude`,`settings.local.json`)],i.key);if(a.kind!==`ok`)return a;if(!a.value)return I;let o=[PL,FL].filter(e=>!r.existsSync(l.join(i.installPath,e)));return o.length===0?F(i.installPath):L(`memento at ${i.installPath} has no ${o.join(` or `)} — upgrade the plugin`)}function zL(e,t=process.env){let n=new Set([`CLAUDE_PROJECT_DIR`,`CLAUDE_CODE_SESSION_ID`,...e.env===void 0?[]:tt]);return{...Object.fromEntries(Object.entries(t).filter(([e])=>!n.has(e))),...e.env,CLAUDE_CODE_SESSION_ID:e.sessionId,CLAUDE_PROJECT_DIR:e.projectDir||e.cwd}}function BL(e){return e.stderr.trim()||e.error||`${e.reason}${e.exitCode===null?``:` (exit ${e.exitCode})`}`}function VL(e){let t;try{t=JSON.parse(e)}catch{return L(`memento read: not JSON: ${e.trim()}`)}let{ceiling:n,session:r}=t??{},i=n===`off`||typeof n==`number`&&n>=0?n:void 0;return i!==void 0&&(r===null||typeof r==`string`)?F({ceiling:i,session:r}):L(`memento read: unexpected answer: ${e.trim()}`)}async function HL(e,t){let n=await Me({bin:`python3`,args:[`-c`,`
153
159
  import json, math, sys
154
160
  sys.path.insert(0, sys.argv[1])
155
161
  from ceiling_config import CONFIG_NAME, anchored, ceiling_in, in_force, session_directory
@@ -158,18 +164,19 @@ ceiling = in_force(directory, anchored(sys.argv[3]))
158
164
  layer = ceiling_in(directory / CONFIG_NAME)
159
165
  print(json.dumps({"ceiling": "off" if ceiling == math.inf else ceiling,
160
166
  "session": layer.text if layer else None}))
161
- `,l.join(e,`lib`),t.sessionId,t.cwd],env:NI(t),timeoutMs:3e3,category:`memento.read`});return n.ok?FI(n.stdout):L(PI(n))}function LI(e,t,n){let r=Ne({bin:l.join(e,kI),args:n.kind===`set`?[`set`,`session`,n.to]:[`clear`,`session`],env:NI(t),timeoutMs:5e3,category:`memento.move`});if(!r.ok)throw Error(PI(r))}function RI(){return{locate:e=>MI(di(e.claudeConfigDir),e.projectDir),read:II,move:LI}}function zI(e,t,n){let r=n===void 0?``:`CLAUDE_CONFIG_DIR=${fr(n)} `,i=e.added_dirs.map(e=>` --add-dir ${fr(e)}`).join(``);return`cd ${fr(e.project_dir)} && ${r}claude --resume ${fr(t)}${i}`}function BI(e,t,n){let r=rg(t(`preset`),e.globals.preset,e.presets),i=og(e,r),a=t(`edit.mode`)===`arrange`?e.editGlobals:{},o=fh(a.palette,t(`theme`),i.palette),s=fI(i,dI(o,e.themeDefaults));return{preset:r,presetCustomized:n(r),theme:o,style:Op(a.style,t(`style`),s.style,e.styles),effect:Ip(a.effect,t(`effect`),s.effect),endcaps:Vp(a.endcaps,t(`endcaps`),s.endcaps),variation:Yp(a.variation,t(`variation`),s.variation),shade:Qp(a.shade,t(`shade`),s.shade),separator:a.default_separator??s.default_separator,autoWrap:om(a.autoWrap,t(`autoWrap`),s.autoWrap),padding:lm(a.padding,t(`padding`),s.padding),charset:a.charset??s.charset??`unicode`,updateNotice:sm(a.updateNotice,t(`updateNotice`),s.updateNotice),transitions:cm(a.transitions,t(`transitions`),s.transitions),colorCompatibility:a.colorCompatibility??s.colorCompatibility??`truecolor`}}function VI(e,t){return{endcaps:e.endcaps,separator:e.separator,colorCompatibility:e.colorCompatibility,wrap:e.autoWrap,padding:e.padding,charset:e.charset,width:t}}function HI(e){return{theme:e.theme,style:e.style,effect:e.effect,preset:e.preset,variation:e.variation,shade:e.shade,transitions:e.transitions}}function UI(e){return{preset:{effective:e.preset,customized:e.presetCustomized,bundled:lI(e.preset)},endcaps:{effective:e.endcaps},variation:{effective:e.variation},shade:{effective:e.shade},charset:{effective:e.charset},colorCompatibility:{effective:e.colorCompatibility},autoWrap:{effective:e.autoWrap},padding:{effective:e.padding},updateNotice:{effective:e.updateNotice},transitions:{effective:e.transitions}}}const WI={prNumber:!0,prState:!0,prUrl:!0,prError:!0,prEarlier:!0};function GI(e){return e?.prState===void 0?e?.prError===void 0?e?.prEarlier===void 0?`-`:`earlier-${e.prEarlier}`:`failed`:e.prState}const KI=10*1e3;function qI(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 JI(e,t){if(!(t<60))return e*3600/t}function YI(e,t,n,r){let i=r-t;if(i<50||i>KI)return;let a=n-e;if(!(a<=0))return a*1e3/i}function XI(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=YI(t.input,t.atMs,n.input,n.atMs),i=YI(t.output,t.atMs,n.output,n.atMs),a=YI(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 ZI(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>KI)continue;let o=YI(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function QI(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function $I(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`,()=>QI(h.hostname())),i=n(`user`,()=>h.userInfo().username);return{host:{...r!==void 0&&{name:r},...i!==void 0&&{user:i},...e.ssh!==void 0&&{ssh:e.ssh}},failures:t}}function eL(e,t){let n=new Map;for(let[t,r]of Object.entries(e.variables))n.set(t,r);for(let[t,r]of Object.entries(e.segments))if(r.vars)for(let[e,i]of Object.entries(r.vars))n.set(`${t}.${e}`,i);let r=[],i=new Set,a=t=>Dg(t,e.helpers).keys(),o=og(e,t);for(let e of xp){let t=o[e];if(Sp(t))for(let e of a(t))r.push(e)}for(let n of bh(ag(e,t).node)){if(n.when)for(let e of a(n.when))r.push(e);if(n.kind!==`segment`)continue;let t=e.segments[n.name];if(t){for(let e of[t.template,t.when,t.bg,t.fg])if(e)for(let t of a(e))r.push(t)}}let s=new Set;for(;r.length>0;){let e=r.pop();for(let t of nL(n,e)){if(i.has(t))continue;i.add(t);let e=n.get(t);if(e){if(e.kind===`input`)s.add(e.path);else if(e.kind===`template`)for(let t of a(e.template))r.push(t)}}}return s}function tL(e){let t=new Map;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=eL(e,n);return t.set(n,i),i}}function nL(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 rL(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function iL(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`)||t(`git.tracking`))&&{showUpstream:!0},...t(`git.repoName`)&&{showRepoName:!0},...t(`git.repoUrl`)&&{showRepoUrl:!0},...t(`git.operation`)&&{showOperation:!0},...t(`git.timeSinceCommit`)&&{showTimeSinceCommit:!0},...Object.keys(WI).some(e=>t(`git.${e}`))&&{showPullRequest:!0}}}async function aL(e,t,n,r,i,a,o,{configPath:s,...c}){let l=e=>rL(i,e),u=Aw(t).getTime(),d=o.tmux??null,f=(e,t,n)=>t?n().catch(t=>L(`${e}: ${String(t)}`)):Promise.resolve(I),[p,m,h,g,_,v,y,b,x,S,C]=await Promise.all([f(`git`,l(`git`),()=>n.gitProvider.getGitInfo(r??e.workspace?.current_dir,iL(i),e.workspace?.project_dir)),f(`session`,l(`session.cost`)||l(`session.tokens`)||l(`burn`),()=>n.usageStore.getUsageInfo(e.session_id,e)),f(`today`,l(`today`),()=>n.usageStore.getTodayInfo(e,o.claudeConfigDir,t)),f(`context`,l(`context`)||l(`autocompact`),()=>n.contextProvider.getContextInfo(e)),f(`metrics`,l(`metrics`)||l(`burn`),()=>n.metricsProvider.getMetricsInfo(e.session_id,e)),f(`activity`,l(`activity`),()=>n.activityProvider.getActivityInfo(e.session_id,e)),f(`tmux`,l(`tmux.session`),()=>d===null?Promise.resolve(I):n.tmuxService.getSessionName(d)),f(`cache`,l(`cache`),()=>wI(e.transcript_path)),f(`speed`,l(`speed`),()=>n.usageStore.observeSpeed(e.session_id,e.transcript_path,u)),f(`memento`,l(`memento`),()=>n.mementoProvider.getCeiling(DI({sessionId:e.session_id,projectDir:e.workspace?.project_dir??``,cwd:r??e.workspace?.current_dir??``},o))),f(`autocompact`,l(`autocompact`),()=>Promise.resolve(n.autoCompact(ui(li(o.claudeConfigDir)))))]),ee=[],te=e=>{if(e.kind===`failed`){ee.push(e.reason);return}return e.kind===`ok`?e.value:void 0},ne=pL(p,u);ee.push(...ne.failures);let re=$I(o);ee.push(...re.failures);let ie=te(m),ae=te(h),w=te(g),T=te(_),oe=te(v),E=te(y),se=te(b),ce=cL(S);S.kind===`failed`&&ee.push(`memento: ${S.reason}`);let le=oL(C,w?.maxTokens);C.kind===`failed`&&ee.push(`autocompact: ${C.reason}`);for(let e of ee)n.log(`warn`,`provider fetch failed: ${e}`);let ue=e.rate_limits?.five_hour,de=e.rate_limits?.seven_day,fe=ue?qI(ue.used_percentage,ue.resets_at,18e6,u):void 0,pe=de?qI(de.used_percentage,de.resets_at,6048e5,u):void 0,me=ie?.session.cost,he=T?.sessionDuration,ge=l(`burn`)&&me!=null&&he!=null?JI(me,he):void 0,_e=te(x),ve=_e===void 0?void 0:XI(_e),ye=_e===void 0?void 0:ZI(_e),be=ve!==void 0||ye!==void 0?{...ve,...ye!==void 0&&{history:ye}}:void 0,xe=fL(process.env.HOME??process.env.USERPROFILE),D=e.workspace?{...e.workspace,current_dir:fL(e.workspace.current_dir)??``,project_dir:fL(e.workspace.project_dir)??``,added_dirs:(e.workspace.added_dirs??[]).map(e=>fL(e)??e)}:e.workspace,Se=ie===void 0?void 0:dL({cost:ie.session.cost,tokens:ie.session.tokens}),Ce=ae===void 0?void 0:{cost:ae.cost,tokens:ae.tokens},we=T===void 0?void 0:dL({lastResponseTime:T.lastResponseTime,responseTime:T.responseTime,sessionDuration:T.sessionDuration,messageCount:T.messageCount,nonPrompts:T.nonPrompts,linesAdded:T.linesAdded,linesRemoved:T.linesRemoved}),Te=oe===void 0?void 0:lL(oe);return{...e,...D!==void 0&&{workspace:D},...xe!==void 0&&{home:xe},...ne.git!==void 0&&{git:ne.git},...d!==null&&{tmux:{pane:d.pane,...E!==void 0&&{session:E}}},host:re.host,...UI(a),history:n.history(e.session_id),navigation:{back:n.navigation(e.session_id)},...c,...s!==null&&{configPath:s},resumeCommand:zI(D,e.session_id,o.claudeConfigDir),...Se!==void 0&&{session:Se},...Ce!==void 0&&{today:Ce},...ge!==void 0&&{burn:{costPerHour:ge}},...be!==void 0&&{speed:be},...l(`block`)&&ue!==void 0&&{block:{nativeUtilization:ue.used_percentage,resetsAt:ue.resets_at,...fe!==void 0&&{etaMinutes:fe}}},...de!==void 0&&{weekly:{percentage:de.used_percentage,resetsAt:de.resets_at,...pe!==void 0&&{etaMinutes:pe}}},...se!==void 0&&{cache:{expiresAt:se}},...w!==void 0&&{context:{totalTokens:w.totalTokens,contextLeft:w.contextLeftPercentage}},...we!==void 0&&{metrics:we},...Te!==void 0&&{activity:Te},...ce!==void 0&&{memento:ce},...le!==void 0&&{autocompact:le}}}function oL(e,t){switch(e.kind){case`absent`:return;case`failed`:return{error:e.reason};case`ok`:return FO(e.value,t)}}const sL=e=>e.trim().split(`
162
- `).at(-1).trim();function cL(e){switch(e.kind){case`absent`:return;case`failed`:return{error:sL(e.reason)};case`ok`:{let{ceiling:t,session:n}=e.value;return{ceiling:t===`off`?0:t,off:t===`off`,session:n??``}}}}function lL(e){let t=e.todos.findIndex(e=>e.active),n=e.todos.length===0?void 0:{total:e.todos.length,completed:e.todos.filter(e=>e.done).length,...t>=0&&{position:t+1,active:e.todos[t].text}},r=uL(e.running),i=uL(e.done),a=r===void 0&&i===void 0?void 0:{...r!==void 0&&{running:r},...i!==void 0&&{done:i}};if(!(e.command===null&&n===void 0&&a===void 0))return{...e.command!==null&&{command:e.command},...n!==void 0&&{todo:n},...a!==void 0&&{tool:a}}}function uL(e){return e.length===0?void 0:e.map(e=>`${e.name}:${e.count}`).join(`,`)}function dL(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 fL(e){return e===void 0||e.length===0||l.sep!==`\\`?e:e.replace(/\\/g,`/`)}function pL(e,t){if(e.kind===`absent`)return{failures:[]};if(e.kind===`failed`)return{failures:[e.reason]};let n=e.value,r=[],i=(e,t)=>{if(!(t===void 0||t.kind===`absent`)){if(t.kind===`failed`){r.push(`git.${e}: ${t.reason}`);return}return t.value}},a=i(`aheadBehind`,n.aheadBehind),o=i(`sha`,n.sha),s=i(`operation`,n.operation),c=i(`timeSinceCommit`,n.committedAt),l=c===void 0?void 0:Math.floor((t-c)/1e3),u=i(`stash`,n.stashCount),d=i(`upstream`,n.upstream),f=n.upstream===void 0?void 0:i(`tracking`,HC(n.upstream,n.aheadBehind)),p=i(`repoName`,n.repoName),m=i(`repoUrl`,n.repoUrl),h=n.pullRequest===void 0?void 0:UC(n.pullRequest,n.head),g={};switch(h?.kind){case`ok`:g={prNumber:h.value.number,prState:h.value.state,prUrl:h.value.url};break;case`failed`:r.push(`git.pr: ${h.reason}`),g={prError:h.reason};break;case`earlier`:g={prEarlier:h.value.state};break;case`absent`:case void 0:break}return{git:{branch:n.branch,status:n.status,...a!==void 0&&{ahead:a.ahead,behind:a.behind},...n.workingTree!==void 0&&{staged:n.workingTree.staged,unstaged:n.workingTree.unstaged,untracked:n.workingTree.untracked,conflicts:n.workingTree.conflicts},...o!==void 0&&{sha:o},...s!==void 0&&{operation:s},...l!==void 0&&{timeSinceCommit:l},...u!==void 0&&{stash:u},...d!==void 0&&{upstream:d},...f!==void 0&&{tracking:f},...p!==void 0&&{repoName:p},...m!==void 0&&{repoUrl:m},...g},failures:r}}const mL={theme:e=>e.theme.kind===`decided`?e.theme.name:null,preset:e=>e.preset,style:e=>e.style.kind===`decided`?e.style.name:null,effect:e=>e.effect.kind===`decided`?e.effect.name:null,endcaps:e=>e.endcaps,variation:e=>e.variation,shade:e=>e.shade,transitions:e=>e.transitions?$p:em,autoWrap:e=>e.autoWrap?$p:em,padding:e=>String(e.padding),updateNotice:e=>e.updateNotice?$p:em},hL=Object.entries(ba),gL=new Set(xa.map(e=>e.sessionKey)),_L=()=>!1;function vL(e,t){return BI(e,e=>gL.has(e)?t(e):null,_L)}const yL=[`preset`,`theme`];function bL(e,t,n){let r=new Set(yL.slice(0,n).map(e=>ba[e].sessionKey));return BI(e,e=>r.has(e)?t(e):null,_L)}function xL(e,t){let n=Array.from({length:yL.length+1},(n,r)=>bL(e,t,r));return e=>{let t=yL.indexOf(e);return n[t===-1?yL.length:t]}}function SL(e,t,n,r){return e.flatMap(([e,i])=>{let a=mL[e](t);return a===null||a===mL[e](n(e))?[]:[{...i,value:a,target:r(i)}]})}function CL(e,t,n){return mL[n](vL(e,t))}function wL(e,t){let n=vL(e,t);return SL(hL,n,xL(e,t),t=>TL(e,n.preset,t.configKey))}function TL(e,t,n){return n in(ig(e.presets,t).globals??{})?QE(t,n):n}function EL(e,t,n){let r=rg(t(ba.preset.sessionKey),e.globals.preset,e.presets),i=$E(n);return{key:i?.scope===`globals`?TL(e,r,i.field):n,globals:og(e,r)}}function DL(e,t){let{preset:n}=vL(e,t);return AL(e,n).flatMap(({id:e,setting:r,key:i,decl:a,saved:o})=>{let s=t(i),c=s===null?void 0:Rh(a,s);return c===void 0||Lh(c)===Lh(o)?[]:[{preset:n,id:e,setting:r,key:i,value:c}]})}function OL(e,t,n){let r=new Map(n.map(e=>[e.key,e.value]));return ng(e.presets).flatMap(n=>{let i=AL(e,n);return[...new Set(i.filter(e=>r.has(e.key)).map(e=>e.id))].flatMap(e=>{let n=i.filter(t=>t.id===e);return Fh(Object.fromEntries(n.map(e=>[e.setting,e.decl])),Object.fromEntries(n.map(e=>{let n=r.get(e.key)??t(e.key),i=n===null?void 0:Rh(e.decl,n);return[e.setting,i??e.saved]}))).map(({message:t})=>`placement "${e}": ${t}`)})})}const kL=new WeakMap;function AL(e,t){let n=kL.get(e)??new Map;kL.set(e,n);let r=n.get(t);if(r!==void 0)return r;let i=[...bh(ag(e,t).node)].flatMap(t=>t.kind!==`segment`||t.drafts===void 0?[]:Object.entries(t.drafts).map(([n,{id:r,key:i}])=>{let a=Nh(e.segments[t.name])[n];return{id:r,setting:n,key:i,decl:a,saved:t.settings?.[n]??a.default}})),a=[...new Map(i.map(e=>[e.key,e])).values()];return n.set(t,a),a}function jL(e,t){let n=vL(e,t);return{from:n.preset,globals:ig(e.presets,n.preset).globals??{},picks:SL(hL.filter(([e])=>e!==`preset`),n,xL(e,t),e=>e.configKey),placements:DL(e,t)}}function ML(e,t){return BI({...e,globals:{palette:t},presets:{}},()=>null,_L)}function NL(e,t){let n=vL(e,t),r=mL.theme(n);if(r===null)return{kind:`rule`};let i=ML(e,r),a=og(e,n.preset),o=Object.fromEntries(Th.map(e=>[e,mL[e](a[e]===void 0?n:i)]));return{kind:`look`,theme:r,look:o,differs:Th.some(e=>o[e]!==mL[e](i))}}function PL(e){return{sessionKeys:xa.filter(t=>t.configKey===e).map(e=>e.sessionKey),fileKeys:[e,...jE(e)?cI.map(t=>QE(t,e)):[],...ZE(e)?gp().map(t=>XE(t,e)):[]]}}function FL(e){return new Set(xa.map(e=>e.configKey).filter(t=>PL(t).fileKeys.some(t=>RL(e,LL(t)))))}function IL(e,t,n){let r=wL(e,n),i=new Set(r.map(e=>e.configKey)),a=Ea(e=>i.has(ba[e].configKey)||t.has(ba[e].configKey)),o=NL(e,n);return{unsaved:r.length+DL(e,n).length,resettable:a,themeDefault:o.kind===`look`&&o.differs?{differs:!0,theme:o.theme}:{differs:!1}}}function LL(e){let t=$E(e);if(t===null||t.scope===`preset-root`)throw Error(`reset layer "${e}" is not a value path`);return eD(t)}function RL(e,t){let[n,...r]=t;return n===void 0?e!==void 0:typeof e==`object`&&!!e&&RL(e[n],r)}const zL=gp(),BL=new Set(zL),VL=new Set(Lp),HL=e=>e?BL.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${zL.join(`, `)})`}:{ok:!1,reason:`theme name is required`},UL=e=>e?VL.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown endcaps "${e}" (have: ${Lp.join(`, `)})`}:{ok:!1,reason:`endcaps name is required`},WL=new Set([`1`,`true`]),GL=new Set([`0`,`false`]),KL={endcaps:UL,theme:HL,"toolbar-expanded":e=>WL.has(e)?{ok:!0,value:`1`}:GL.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}},qL=dj(KL,`state`,eR);function JL(e,t){return qL.register(e,t)}function YL(e){return qL.gateFor(e)}function XL(e,t){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:fg(e.from,t).members}}]:`int`in e?[{key:e.set,spec:{kind:`int`}}]:`cycle`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:e.cycle}}]:[{key:e.set,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function ZL(e){return e.filter(e=>e.spec.kind!==`allow-list`||!Object.hasOwn(KL,e.key))}function QL(e,t,n){let r=Da.get(n);if(r!==void 0)return CL(e,t,r);let i=Object.values(e.variables).find(e=>e.kind===`state`&&e.key===n);return i?.kind===`state`?i.default??null:null}function $L(e){let t=PA(e);return ZL(Object.values(e.actions).flatMap(e=>XL(e,t)))}function eR(e){return lj($L(e))}const tR=`update.dismissed`,nR=`updateNotice`,rR=ba.updateNotice.sessionKey;function iR(e){return e.kind===`source`?e.newer.digest:yi(e.newer)}const aR=e=>`${e.version} [${$m(e.digest)}]`;function oR(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:aR(e.newer),running:aR(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:yi(e.newer),running:yi(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${xi}@${yi(e.newer)}`,`install`]}}}}const sR={kind:`idle`},cR={kind:`running`};function lR(e,t,n){if(e===null)return[];let r=iR(e);if(!n.enabled||n.dismissed===r)return[];let i=oR(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(`
163
- `),c=Gn([{verb:wn,args:[s]}]),l=t.kind===`running`?Vm(`[${i.busy}]`,c):Vm(`[${i.act}]`,Gn([{verb:In,args:[n.sessionId]}]));return[{severity:Bm,message:s,lines:[[Vm(a,c),l,Vm(`[dismiss]`,Gn([{verb:yn,args:[n.sessionId,tR,r]}])),Vm(`[disable]`,Gn([{verb:P,args:[n.sessionId,nR,`false`]},{verb:yn,args:[n.sessionId,rR,`false`]}]))],...o.map(e=>[Vm(e,c)])]}]}function uR(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 dR(e){switch(e.kind){case`current`:return[`info`,`build: current ${aR(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${aR(e.source)}, running ${aR(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function fR(e){switch(e.kind){case`current`:return[`info`,`release: current ${yi(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${yi(e.latest)}, running ${yi(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${yi(e.installed)}, latest ${yi(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function pR(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const mR=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function hR(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=mR(e.stderr)??e.error??mR(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function gR(){let e=[pj(nR,[`false`]),JL(rR,[`false`]),JL(tR,[])];return()=>e.forEach(e=>e())}function _R(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=sR,d=null,f=pR(s),p=pR(s),m=()=>uR(c,l);function h(){let e=m(),t=e===null?null:iR(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:JL(tR,[t])})}function g(){c=rh(t,th),f(dR(c)),h()}async function _(){l=Ci(Et,await Si(xi,a,i)),p(fR(l)),h()}return{arm(){gR(),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>lR(m(),u,e),act(){let e=m();if(e===null)throw new K(`apply-update: nothing newer is known to apply`);let t=oR(e);if(u.kind===`running`)throw new K(`apply-update: already ${t.busy}`);u=cR,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),Me({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=sR,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=hR(n);u={kind:`failed`,identity:iR(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}var vR=class{static CACHE_DIR=ze();static USAGE_CACHE_DIR=l.join(this.CACHE_DIR,`usage`);static LOCKS_DIR=l.join(this.CACHE_DIR,`locks`);static isLocked(e){let t=l.join(this.LOCKS_DIR,e);if(!r.existsSync(t))return!1;try{let n=r.readFileSync(t,`utf-8`),i=parseInt(n.trim(),10);if(isNaN(i))return D(`Invalid PID in lock file ${e}, removing stale lock`),r.unlinkSync(t),!1;try{return process.kill(i,0),!0}catch(n){return n.code===`ESRCH`?(D(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(D(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return D(`Error reading lock file ${e}:`,t),!0}}static async acquireLock(e,t=5e3){await this.ensureCacheDirectories();let n=l.join(this.LOCKS_DIR,e),i=Date.now(),a=String(process.pid);for(;Date.now()-i<t;)try{return await r.promises.writeFile(n,a,{flag:`wx`}),D(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await de(50);else throw e}return D(`Failed to acquire lock for ${e} within ${t}ms`),!1}static async releaseLock(e){let t=l.join(this.LOCKS_DIR,e);try{await r.promises.unlink(t),D(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&D(`Error releasing lock for ${e}:`,t)}}static async ensureCacheDirectories(){try{await Promise.all([r.promises.mkdir(this.CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.USAGE_CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.LOCKS_DIR,{recursive:!0})])}catch(e){D(`Failed to create cache directories:`,e)}}static createProjectHash(e){return ae(`md5`).update(e).digest(`hex`).substring(0,8)}static async getUsageCache(e,t){await this.ensureCacheDirectories();let n=l.join(this.USAGE_CACHE_DIR,`${e}.json`),i=`${e}.usage.lock`;for(let a=0;a<3;a++){if(this.isLocked(i)){D(`Cache for ${e} is locked, waiting...`),await de(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(D(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(D(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return D(`No shared ${e} usage cache found`),null;D(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await de(75)}}return D(`Failed to read ${e} cache after 3 attempts.`),null}static deserializeDates(e){return Array.isArray(e)?e.map(e=>({...e,timestamp:new Date(e.timestamp)})):e}static async setUsageCache(e,t,n){let i=`${e}.usage.lock`;if(!await this.acquireLock(i)){D(`Could not acquire lock to set usage cache for ${e}`);return}try{await this.ensureCacheDirectories();let i=l.join(this.USAGE_CACHE_DIR,`${e}.json`),a=JSON.stringify({data:t,timestamp:n||Date.now()});await r.promises.writeFile(i,a,`utf-8`),D(`[CACHE-SET] ${e} disk cache stored`)}catch(t){D(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const yR={"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 bR=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 vR.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await vR.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new ee(this.GITHUB_PRICING_URL),n=ue({hostname:t.hostname,path:t.pathname,headers:{"User-Agent":`cc-candybar`,"Cache-Control":`no-cache`},timeout:5e3},t=>{if(t.statusCode!==200){D(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){D(`Response too large`),n.destroy(),e(null);return}r+=t}),t.on(`end`,()=>{try{let t=JSON.parse(r),n=t._meta,i={};for(let[e,n]of Object.entries(t))e!==`_meta`&&(i[e]=n);this.validatePricingData(i)?(D(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),D(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(D(`Invalid pricing data structure`),e(null))}catch(t){D(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{D(`Response error:`,t),e(null)})});n.on(`error`,t=>{D(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{D(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return D(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return D(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),D(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(D(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(yR).length} models`),this.executionCache=yR,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(yR).length} models`),yR)}static validatePricingData(e){if(!e||typeof e!=`object`)return!1;for(let[,t]of Object.entries(e)){if(!t||typeof t!=`object`)return!1;let e=t;if(typeof e.input!=`number`||typeof e.output!=`number`||typeof e.cache_read!=`number`)return!1}return!0}static async getModelPricing(e){if(this.modelPricingCache.has(e))return D(`[CACHE-HIT] Model pricing cache: ${e}`),this.modelPricingCache.get(e);let t=await this.getCurrentPricing(),n;return n=t[e]?t[e]:this.fuzzyMatchModel(e,t),this.modelPricingCache.set(e,n),D(`[CACHE-SET] Model pricing cache: ${e}`),n}static fuzzyMatchModel(e,t){let n=e.toLowerCase();for(let[e,r]of Object.entries(t))if(e.toLowerCase()===n)return r;for(let{pattern:e,fallback:r}of[{pattern:[`opus-4-6`,`claude-opus-4-6`],fallback:`claude-opus-4-6-20260205`},{pattern:[`opus-4-5`,`claude-opus-4-5`],fallback:`claude-opus-4-5-20251101`},{pattern:[`opus-4-1`,`claude-opus-4-1`],fallback:`claude-opus-4-1-20250805`},{pattern:[`opus-4`,`claude-opus-4`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet-4-6`,`sonnet-4.6`,`claude-sonnet-4-6`],fallback:`claude-sonnet-4-6`},{pattern:[`sonnet-4.5`,`4-5-sonnet`,`sonnet-4-5`],fallback:`claude-sonnet-4-5-20250929`},{pattern:[`sonnet-4`,`claude-sonnet-4`],fallback:`claude-sonnet-4-20250514`},{pattern:[`haiku-4.5`,`4-5-haiku`,`haiku-4-5`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`haiku`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`opus`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet`],fallback:`claude-sonnet-4-5-20250929`}])if(e.some(e=>n.includes(e))&&t[r])return t[r];return t[`claude-sonnet-4-5-20250929`]||{name:`${e} (Unknown Model)`,input:3,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3,output:15}}static async calculateCostForEntry(e){let t=e.message?.usage;if(!t)return 0;let n=this.extractModelId(e),r=await this.getModelPricing(n),i=t.input_tokens||0,a=t.output_tokens||0,o=t.cache_creation_input_tokens||0,s=t.cache_read_input_tokens||0,c=i/1e6*r.input,l=a/1e6*r.output,u=s/1e6*r.cache_read,d=o/1e6*r.cache_write_5m;return c+l+d+u}static extractModelId(e){if(e.model&&typeof e.model==`string`)return e.model;let t=e.message;if(t?.model){let e=t.model;if(typeof e==`string`)return e;let n=e;return(typeof n?.id==`string`?n.id:null)||`claude-sonnet-4-5-20250929`}return e.model_id&&typeof e.model_id==`string`?e.model_id:`claude-sonnet-4-5-20250929`}};const xR=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function SR(e){if(typeof e==`string`)return xR.exec(e)?.[1]}function CR(e){let t=e?.todos;if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let{content:t,activeForm:r,status:i}=e,a=i===`in_progress`,o=a&&typeof r==`string`?r:t;typeof o==`string`&&n.push({text:o,active:a,done:i===`completed`})}return n}function wR(e){return typeof e==`string`?e:Array.isArray(e)?e.find(e=>typeof e==`object`&&!!e&&e.type===`text`&&typeof e.text==`string`)?.text??``:``}function TR(e,t){let n=e.message?.content,r=[],i=[],a;if(Array.isArray(n))for(let e of n){if(typeof e!=`object`||!e)continue;let t=e;switch(t.type){case`tool_use`:{let{id:e,name:n}=t;if(typeof e!=`string`||typeof n!=`string`)break;r.push({id:e,name:n}),n===`TodoWrite`&&(a=CR(t.input)??a);break}case`tool_result`:{let e=t.tool_use_id;typeof e==`string`&&i.push(e);break}default:break}}let o=t===`prompt`?SR(wR(n)):void 0;if(!(r.length===0&&i.length===0&&a===void 0&&o===void 0))return{...r.length>0&&{started:r},...i.length>0&&{finished:i},...a!==void 0&&{todos:a},...o!==void 0&&{command:o}}}function ER(e){if(e!==void 0)return[e];let t=g();return[p(t,`.config`,`claude`),p(t,`.claude`)].filter(e=>a(e))}async function DR(e){let t=[];for(let n of e){let e=p(n,`projects`);if(a(e))try{let n=await _I(e,{withFileTypes:!0});for(let r of n)if(r.isDirectory()){let n=p(e,r.name);t.push(n)}}catch(t){D(`Failed to read projects directory ${e}:`,t)}}return t}async function OR(e,t,n){let r=[],i=p(t,e,`subagents`);try{let t=(await _I(i)).filter(e=>e.startsWith(`agent-`)&&e.endsWith(`.jsonl`));for(let a of t){let t=p(i,a);if(n?.has(t)){r.push(t);continue}try{let n=(await vI(t,`utf-8`)).split(`
164
- `)[0];n&&JSON.parse(n).sessionId===e&&r.push(t)}catch{D(`Failed to check agent file ${t}`)}}}catch(e){D(`Failed to read subagents directory ${i}:`,e)}return r}function kR(e){let t=e.message;if((e.type||t?.role||t?.type)!==`user`)return;if(jR(t)===`tool_result`)return`tool-result`;let n=typeof e.origin==`object`&&e.origin!==null?e.origin.kind:void 0;if(n!==void 0&&n!==`human`)return`turn`;let r=wR(t?.content).trimStart();return r.startsWith(`[Request interrupted by user`)?`interrupt`:e.isMeta===!0||e.isCompactSummary===!0||AR.test(r)?`claude-code`:`prompt`}const AR=/^<(?:command-name|local-command-std(?:out|err)|bash-(?:input|stdout|stderr))>/;function jR(e){let t=e?.content;return Array.isArray(t)&&typeof t[0]==`object`&&t[0]?t[0].type:void 0}const MR=new Map;async function NR(e){try{let t=await yI(e),n=t.size,r=MR.get(e);if(r&&r.mtime===t.mtimeMs&&r.size===n)return D(`[parse-cache] hit ${e}`),MR.delete(e),MR.set(e,r),r.entries;let i;return n>1048576?(D(`Using streaming parser for large file ${e} (${Math.round(n/1024)}KB)`),i=await RR(e)):i=await IR(e),D(`Parsed ${i.length} entries from ${e}`),n>5242880?i:(MR.delete(e),MR.size>=16&&MR.delete(MR.keys().next().value),MR.set(e,{mtime:t.mtimeMs,size:n,entries:i}),i)}catch(t){if(t.code===`ENOENT`)return D(`Transcript not present yet: ${e}`),[];throw t}}function PR(e){if(!e.timestamp)return null;let t=e.message,n=t?.usage,r=kR(e);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}:void 0,costUSD:typeof e.costUSD==`number`?e.costUSD:void 0,isSidechain:e.isSidechain===!0,userEntry:r,activity:TR(e,r),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 FR(e){let t=[];for(let n of e.split(`
165
- `))if(n.trim())try{let e=PR(JSON.parse(n));e&&t.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`);continue}return t}async function IR(e){return FR(await vI(e,`utf-8`))}async function LR(e,t){let n=await bI(e,t===void 0?void 0:{offset:t.offset,ino:t.ino});if(n.kind!==`ok`)return n;let{buf:r,start:i,stamp:a,ino:o,reset:s}=n.value,c=r.lastIndexOf(10);return F(c<0?{entries:[],cursor:{offset:i,stamp:a,ino:o},reset:s}:{entries:FR(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,stamp:a,ino:o},reset:s})}async function RR(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=fe({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=PR(JSON.parse(t));e&&r.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`)}}),o.on(`close`,()=>{t(r)}),o.on(`error`,t=>{D(`Streaming parser error for ${e}:`,t),n(t)}),a.on(`error`,t=>{D(`File stream error for ${e}:`,t),n(t)})})}var zR=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 BR(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 VR=new Map,HR={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},UR={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function WR(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function GR(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function KR(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function qR(e,t,n,r){let i=WR(new Date(GR())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:KR(),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 bR.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=WR(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...HR};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 JR(e){let t=0,n=0,r=KR(),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)??{...HR};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:UR,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 YR(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 XR=class{sessions=new Map;flight=new zR;seeded=new Map;seededDay=``;rescanIntervalMs;speedFlight=new zR;staleAgeMs;log;renderTally={hits:0,misses:0};sweeps=0;scans={seed:0,rescan:0};sweepTimer=null;constructor(e={}){this.log=e.logger??Ft,this.staleAgeMs=e.staleAgeMs??864e5,this.rescanIntervalMs=e.rescanIntervalMs??6e4;let t=e.sweepIntervalMs??3e5;t>0&&(this.sweepTimer=setInterval(()=>this.sweepStale(),t),this.sweepTimer.unref())}getStats(){return{size:this.sessions.size,hits:this.renderTally.hits,misses:this.renderTally.misses,sweeps:this.sweeps,seeds:this.scans.seed,rescans:this.scans.rescan}}async getUsageInfo(e,t){let n=await this.ingest(e,t?.transcript_path,this.renderTally);if(n.kind===`failed`)return n;let r=n.kind===`ok`?n.value.sessionInfo:UR,i=t?.cost?.total_cost_usd??null;return F({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e,t,n){let r=WR(Aw(n)),i=ER(t);try{await this.ensureSeeded(r,i,n*1e3)}catch(e){return L(`usage seed: ${e instanceof Error?e.message:String(e)}`)}let a=await this.ingest(e?.session_id??``,e?.transcript_path,this.renderTally);if(a.kind===`failed`)return a;let o=i.map(e=>p(e,`projects`)+m),s={...HR},c=!1;for(let[t,{record:n}]of this.sessions){let i=n?.transcriptPath??``,a=t===e?.session_id||o.some(e=>i.startsWith(e))?n?.days??VR:VR;c||=a.has(r);let l=a.get(r)??HR;s.cost+=l.cost,s.input+=l.input,s.output+=l.output,s.cacheCreation+=l.cacheCreation,s.cacheRead+=l.cacheRead}return c?F({cost:s.cost,tokens:s.input+s.output+s.cacheCreation+s.cacheRead,tokenBreakdown:{input:s.input,output:s.output,cacheCreation:s.cacheCreation,cacheRead:s.cacheRead},date:r}):I}async observeSpeed(e,t,n){if(!e)return I;let r=pI(t);return this.speedFlight.run(`${e}:${r}`,async()=>{let i=await this.ingest(e,t,this.renderTally,r);if(i.kind===`failed`)return i;let a=BR(i.kind===`ok`?i.value.sessionInfo.tokenBreakdown:null,n),{ring:o}=this.hold(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(),F({...s!==void 0&&{prev:s},cur:a,samples:[...o]})})}async ingest(e,t,n,r){if(!e)return I;let i=r??pI(t),a=this.see(e)?.record;if(a&&i!==``&&a.transcriptStamp===i)return n.hits++,F(a);if(!t)return a?F(a):I;n.misses++;let o;try{o=await this.flight.run(`${e}:${i}`,async()=>{let n=this.sessions.get(e)?.record;return{prior:n,outcome:await this.refold(e,t,n)}})}catch(t){return L(`usage refold (${e}): ${t instanceof Error?t.message:String(t)}`)}let{prior:s,outcome:c}=o;if(c.kind!==`ok`)return c;let l={files:c.value.files,sessionInfo:c.value.sessionInfo,days:c.value.days,transcriptStamp:c.value.mainStamp,transcriptPath:t};return this.sessions.get(e)?.record===s&&(this.hold(e).record=l),F(l)}see(e){let t=this.sessions.get(e);return t&&(t.lastSeenAt=Date.now()),t}hold(e){let t=this.see(e);if(t)return t;let n={lastSeenAt:Date.now(),record:void 0,ring:[]};return this.sessions.set(e,n),n}async refold(e,t,n){let r=await OR(e,d(t),n===void 0?void 0:new Set(n.files.keys())),i=new Map,a=``;for(let e of[t,...r]){let r=n?.files.get(e),o=await LR(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 qR(r,l,s,c)),e===t&&(a=c.stamp)}return F({files:i,...JR(i),mainStamp:a})}ensureSeeded(e,t,n){this.seededDay!==e&&(this.seeded.clear(),this.seededDay=e);let r=t.join(`\0`),i=this.seeded.get(r);if(!i){let e=this.seed(t,`seed`),i={done:e,scanning:e,startedAtMs:n};return this.seeded.set(r,i),this.settle(r,i,e),e}return i.scanning===void 0&&n-i.startedAtMs>=this.rescanIntervalMs&&(i.startedAtMs=n,i.scanning=this.seed(t,`rescan`),this.settle(r,i,i.scanning)),i.done}settle(e,t,n){n.then(()=>{t.scanning=void 0},n=>{this.log(`warn`,`usageStore scan: ${n instanceof Error?n.message:String(n)}`),this.seeded.get(e)===t&&this.seeded.delete(e)})}async scanned(){await Promise.allSettled([...this.seeded.values()].map(e=>e.scanning))}async seed(e,t){let n=Date.now(),r=GR(),i=await DR(e),a=[];for(let e of i){let t;try{t=await _I(e)}catch{continue}for(let n of t){if(!n.endsWith(`.jsonl`))continue;let t=p(e,n),i;try{i=await yI(t)}catch{continue}i.mtimeMs<r||a.push({sessionId:n.slice(0,-6),path:t,stamp:mI(i)})}}let o={hits:0,misses:0};await YR(a,8,async e=>{let n=await this.ingest(e.sessionId,e.path,o,e.stamp);n.kind===`failed`&&this.log(`warn`,`usageStore ${t}: ${n.reason}`)}),this.log(`info`,`usageStore ${t} sessions=${a.length} read=${o.misses} dirs=${e.join(`,`)} ms=${Date.now()-n}`),this.scans[t]++}sweepStale(){let e=Date.now(),t=0,n=0,r=0;for(let[i,{lastSeenAt:a,record:o}]of this.sessions)if(!(e-a<=this.staleAgeMs)){if(o?.days.has(this.seededDay)){n++;continue}this.sessions.delete(i),t++,o===void 0&&r++}return t>0&&this.sweeps++,(t>0||n>0)&&this.log(`info`,`usageStore sweep dropped=${t} noRecord=${r} held=${n}`),t}close(){this.sweepTimer&&=(clearInterval(this.sweepTimer),null),this.sessions.clear(),this.seeded.clear()}},ZR=class{thresholds={LOW:50,MEDIUM:80};getContextUsageThresholds(){return this.thresholds}ratioPercentages(e,t){let n=Math.min(100,Math.max(0,Math.round(e/t*100)));return{percentage:n,contextLeftPercentage:Math.max(0,100-n)}}calculateContextFromHookData(e){let t=e.context_window;if(!t?.current_usage)return D(`No current_usage in hook data, falling back to transcript parsing`),null;let n=t.current_usage,r=t.context_window_size,i=(n.input_tokens||0)+(n.cache_creation_input_tokens||0)+(n.cache_read_input_tokens||0);D(`Native current_usage: input=${n.input_tokens}, cache_create=${n.cache_creation_input_tokens}, cache_read=${n.cache_read_input_tokens}, total=${i} (limit: ${r})`);let a=this.ratioPercentages(i,r);return{totalTokens:i,maxTokens:r,percentage:t.used_percentage==null?a.percentage:Math.round(t.used_percentage),contextLeftPercentage:t.remaining_percentage==null?a.contextLeftPercentage:Math.round(t.remaining_percentage)}}async calculateContextTokensFromTranscript(e,t){try{D(`Calculating context tokens from transcript: ${e}`);let n=await NR(e);if(n.length===0)return D(`No entries in transcript`),I;let r=null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t&&t.message?.usage?.input_tokens&&t.isSidechain!==!0){r=t,D(`Context segment: Found most recent entry at ${t.timestamp.toISOString()}, stopping search`);break}}if(r?.message?.usage){let e=r.message.usage,n=(e.input_tokens||0)+(e.cache_read_input_tokens||0)+(e.cache_creation_input_tokens||0);return D(`Most recent main chain context: ${n} tokens (limit: ${t})`),F({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return D(`No main chain entries with usage data found`),I}catch(e){return L(`context transcript: ${e instanceof Error?e.message:String(e)}`)}}async getContextInfo(e){let t=this.calculateContextFromHookData(e);if(t)return F(t);let n=e.context_window?.context_window_size??2e5;return this.calculateContextTokensFromTranscript(e.transcript_path,n)}},QR=class{states=new Map;constructor(e,t,n=256){this.empty=e,this.step=t,this.maxSessions=n}async read(e,t){let n=this.states.get(e),r=pI(t);if(n&&r!==``&&n.cursor.stamp===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await LR(t,n?.cursor);if(i.kind===`failed`)return i;if(i.kind===`absent`)return{kind:`ok`,value:n?.value??this.empty};let{entries:a,cursor:o,reset:s}=i.value,c=s||n===void 0?this.empty:n.value;for(let e of a)c=this.step(c,e);for(this.touch(e,{cursor:o,value:c});this.states.size>this.maxSessions;){let e=this.states.keys().next().value;if(e===void 0)break;this.states.delete(e)}return{kind:`ok`,value:c}}touch(e,t){this.states.delete(e),this.states.set(e,t)}};const $R={messageCount:0,nonPrompts:0,recent:[]},ez=new Set([`turn`,`interrupt`,`claude-code`]);function tz(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +(t.userEntry===`prompt`),nonPrompts:e.nonPrompts+ +!!ez.has(t.userEntry),recent:n.length>20?n.slice(-20):n}}function nz(e){let t=null,n=null;for(let r of e){let e=r.type||r.message?.role||r.message?.type;if(r.userEntry===`prompt`||r.userEntry===`turn`)t=r.timestamp;else if(e===`assistant`&&t){let e=(r.timestamp.getTime()-t.getTime())/1e3;e>.1&&e<300&&(n=e)}}return n}var rz=class{fold=new QR($R,tz);async getMetricsInfo(e,t){if(D(`Getting metrics from hook data for session: ${e}`),!t.cost)return I;let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?L(`metrics (${e}): ${n.reason}`):F({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:nz(n.value.recent),sessionDuration:t.cost.total_duration_ms/1e3,messageCount:n.value.messageCount,nonPrompts:n.value.nonPrompts,linesAdded:t.cost.total_lines_added,linesRemoved:t.cost.total_lines_removed})}};const iz={command:null,todos:[],pending:[],done:[]};function az(e,t){let n=e.findIndex(e=>e.name===t);return n<0?[...e,{name:t,count:1}]:e.map((e,t)=>t===n?{name:e.name,count:e.count+1}:e)}function oz(e,t){switch(t.userEntry){case`prompt`:return{...e,command:t.activity?.command??null,pending:[],done:[]};case`interrupt`:return{...e,pending:[]};case`turn`:case`tool-result`:case`claude-code`:case void 0:return e}}function sz(e,t){if(t.isSidechain)return e;let n=oz(e,t),r=t.activity;if(r===void 0)return n;let i=n.pending,a=n.done;r.started!==void 0&&(i=[...i,...r.started]);for(let e of r.finished??[]){let t=i.findIndex(t=>t.id===e);t<0||(a=az(a,i[t].name),i=[...i.slice(0,t),...i.slice(t+1)])}return{...n,pending:i,done:a,todos:r.todos??n.todos}}function cz(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>az(e,t.name),[]),done:e.done}}var lz=class{fold=new QR(iz,sz);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?L(`activity (${e}): ${n.reason}`):F(cz(n.value))}};function uz(e,t,n,r){return{bin:`tmux`,args:[`-S`,e.socket,...n],timeoutMs:2e3,category:t,stdinInput:r}}function dz(e,t){if(e.ok)return{kind:`ok`,stdout:e.stdout};if(e.reason===`rate-limited`)return{kind:`rate-limited`,reason:e.error??`rate-limited`};let n=e.error??[e.reason,e.stderr.trim()].filter(e=>e!==``).join(`: `);return{kind:`failed`,reason:`tmux ${t[0]} failed (${n})`}}function fz(e,t,n,r){return dz(Ne(uz(e,t,n,r)),n)}async function pz(e,t,n){return dz(await Me(uz(e,t,n)),n)}const mz=e=>`${e.socket}\n${e.pane}`;var hz=class{names=new Map;asking=new zR;constructor(e=Date.now){this.now=e}getSessionName(e){let t=mz(e),n=this.names.get(t);if(n&&this.now()-n.at<3e4)return Promise.resolve(n.outcome);let r=this.asking.run(t,()=>this.ask(t,e));return n?Promise.resolve(n.outcome):r}async ask(e,t){D(`Getting tmux session name for pane ${t.pane} on ${t.socket}`);let n=await pz(t,`tmux`,[`display-message`,`-p`,`-t`,t.pane,`#S`]),r=n.kind===`ok`?n.stdout.trim():``,i=n.kind===`ok`?r?F(r):I:L(n.reason);for(this.names.delete(e),this.names.set(e,{outcome:i,at:this.now()});this.names.size>64;)this.names.delete(this.names.keys().next().value);return i}};const gz=e=>JSON.stringify([e.sessionId,e.projectDir,e.cwd,e.claudeConfigDir,e.env===void 0?null:tt.map(t=>e.env?.[t]??null)]);var _z=class{readings=new Map;inFlight=new Map;constructor(e,t=Date.now){this.edge=e,this.now=t}getCeiling(e){let t=gz(e),n=this.readings.get(t);if(n&&this.now()-n.at<1e4)return Promise.resolve(n.outcome);let r=this.inFlight.get(t)??this.fetch(t,e);return n?Promise.resolve(n.outcome):r}fetch(e,t){let n=this.edge.locate(t),r=(n.kind===`ok`?this.edge.read(n.value,t):Promise.resolve(n)).then(t=>{if(this.inFlight.get(e)!==r)return t;for(this.readings.delete(e),this.readings.set(e,{outcome:t,at:this.now()});this.readings.size>64;)this.readings.delete(this.readings.keys().next().value);return t}).finally(()=>{this.inFlight.get(e)===r&&this.inFlight.delete(e)});return this.inFlight.set(e,r),r}move(e,t){let n=this.edge.locate(e);if(n.kind!==`ok`)throw Error(n.kind===`failed`?n.reason:`memento is not installed or not enabled for this project`);let r=gz(e);try{this.edge.move(n.value,e,t)}finally{this.readings.delete(r),this.inFlight.delete(r),this.fetch(r,e)}}};function vz(e){return{gitProvider:new ww({watchers:e.watchers,logger:e.logger}),usageStore:new XR({logger:e.logger}),contextProvider:new ZR,metricsProvider:new rz,activityProvider:new lz,tmuxService:new hz,mementoProvider:new _z(RI()),autoCompact:PO,log:e.logger}}function yz(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}const bz={kind:`hidden`},xz={kind:`shown`};function Sz(e,t){try{return yz(e,t)?xz:bz}catch(e){return{kind:`failed`,message:e instanceof Error?e.message:String(e)}}}function Cz(e,t){let n=G.fromFragments(e);return n.end=``,n.overflow=`ignore`,t!==void 0&&!t.isNull&&(n.style=t),n}function wz(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:`…`}):e.cellLength<t&&e.align(n.justify,t)}function Tz({lead:e,text:t,trail:n}){return[...e===void 0?[]:[e],t,...n===void 0?[]:[n]]}function Ez({text:e,placement:t,lead:n,trail:r}){return{text:Dz(e),placement:t,...n!==void 0&&{lead:Dz(n)},...r!==void 0&&{trail:Dz(r)}}}function Dz(e){let t=e.blankCopy(e.plain);t.style=dm(e.style).clearMetaAndLinks();for(let{start:n,end:r,style:i}of e.spans)t.stylize(dm(i).clearMetaAndLinks(),n,r);return t}function Oz(e){let t=Tz(e);if(t.length===1)return e.text;let n=Cz(t);return n.style=e.text.style,n}function kz(e,t){let{width:n,justify:r,truncate:i,baseStyle:a,padding:o,placement:s,lead:c=[],trail:l=[]}=t;if(e.length===0)return[];let u=Cz(e,a).pad(o),d=new G(` `.repeat(o)),f={placement:s,...c.length>0&&{lead:Cz([d,...c],a)},...l.length>0&&{trail:Cz([...l,d],a)}};if(n===`auto`)return[{text:u,...f}];let p={justify:r,truncate:i};return n===`fill`?[{text:u,fill:p,...f}]:(wz(u,n,p),[{text:u,...f}])}function Az(e,t){let n=()=>e.map(e=>({owner:Oz(e),placement:e.placement})),r=[];if(e.forEach(({fill:e},t)=>{e!==void 0&&r.push({at:t,how:e})}),r.length===0||!Number.isFinite(t.width))return n();let i=Im(e.map(Oz),t).split(`
166
- `);if(i.length>1)return n();let a=Math.max(0,t.width-Cm(i[0]??``)),o=Math.floor(a/r.length),s=a-o*r.length;return r.forEach(({at:t,how:n},i)=>{let a=o+(i===r.length-1?s:0),{text:c}=e[t];wz(c,c.cellLength+a,n)}),n()}function jz(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=Mz(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e){let e={frag:a,style:dm(a.style)};if(e.style.link){i();let r=Mz([e],t);r.plain.length>0&&n.push(r)}else r.push(e)}return i(),n}function Mz(e,t){let n=t!==void 0&&!t.isNull?t:void 0,r=e.map(e=>Nz(e.frag,n?n.add(e.style):e.style)),i=G.fromFragments(r);return i.end=``,i.overflow=`ignore`,r.length===1?i.style=r[0].style:n!==void 0&&(i.style=n),i}function Nz(e,t){let n=e.copy();return n.style=t,n}function Pz(e,t){if(e.look===void 0)throw Error(`${t} read the render's look before any render resolved one`);return e.look}function Fz(e,t,n,r){let i=new Map,a=Object.entries(t);for(let[t,o]of[...a.filter(([,e])=>!(`do`in e)),...a.filter(([,e])=>`do`in e)])i.set(t,Iz(e,t,o,n,r,i));return i}function Iz(e,t,n,r,i,a){if(`set`in n){let e=r.get(n.set)??n.set;if(`to`in n)return{kind:`set-literal`,key:n.set,value:n.to,stateVar:e};if(`from`in n){let t=fg(n.from,i);return{kind:`set-option`,key:n.set,stateVar:e,options:[...t.members],paletteOf:t.paletteOf,library:t.library}}return`int`in n?{kind:`set-int`,key:n.set,stateVar:e}:`cycle`in n?{kind:`set-cycle`,key:n.set,stateVar:e,members:n.cycle}:{kind:`set-bounded`,key:n.set,by:n.by}}if(`persist`in n){let e=wa.get(n.persist)??n.persist;if(`to`in n)return{kind:`persist-literal`,key:n.persist,value:n.to,stateVar:e};if(`from`in n){let t=fg(n.from,i);return{kind:`persist-option`,key:n.persist,stateVar:e,options:[...t.members],paletteOf:t.paletteOf,library:t.library}}if(`cycle`in n)return{kind:`persist-cycle`,key:n.persist,stateVar:e,members:n.cycle};if(`removeSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`remove`,target:n.removeSegment}};if(`insertSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`insert`,segment:n.insertSegment,anchor:n.anchor,relation:n.relation}};if(`insertSegmentFrom`in n){let e=fg(n.insertSegmentFrom,i);return{kind:`layout-op-option`,key:n.persist,anchor:n.anchor,relation:n.relation,options:[...e.members],paletteOf:e.paletteOf,library:e.library}}return{kind:`persist-bounded`,key:n.persist,by:n.by}}if(`copy`in n)return{kind:`copy`,text:zz(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:zz(e,n.open,t)};if(`reset`in n)return{kind:`reset`,key:n.reset};if(`doctor`in n)switch(n.doctor){case`run`:return{kind:`doctor-run`};case`fix`:return{kind:`doctor-fix`,check:n.check};case`mark`:return{kind:`doctor-mark`,check:n.check,mark:n.mark}}if(`ceiling`in n)return{kind:`ceiling`,args:gN(n)};if(`slash`in n)return{kind:`slash`,line:n.slash};if(`undo`in n)return{kind:`undo`};if(`redo`in n)return{kind:`redo`};if(`back`in n)return{kind:`back`};if(`rewind`in n)return{kind:`rewind`};if(`save`in n)return{kind:`save`};if(`preset`in n)return n.preset===`save`?{kind:`preset-save`}:{kind:`preset-delete`,name:zz(e,n.name,t)};if(`themeDefault`in n)return{kind:`theme-default-save`};let[o,...s]=n.do.map(e=>{let n=a.get(e);if(n===void 0)throw Error(`action "${t}" fires "${e}", which is not declared in this config`);return n});return{kind:`do`,head:o,rest:s}}function Lz(e){return e.kind===`do`?Lz(e.head):e}function Rz(e){switch(Lz(e).kind){case`set-option`:case`set-int`:case`persist-option`:case`layout-op-option`:return!0;case`set-literal`:case`set-bounded`:case`set-cycle`:case`copy`:case`open`:case`persist-literal`:case`persist-bounded`:case`persist-cycle`:case`reset`:case`layout-op`:case`undo`:case`redo`:case`back`:case`rewind`:case`save`:case`preset-save`:case`preset-delete`:case`theme-default-save`:case`doctor-run`:case`doctor-fix`:case`doctor-mark`:case`ceiling`:case`slash`:case`do`:return!1}}function zz(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function Bz(e,t){return e.has(t)?Wg(e.read(t)):``}function Vz(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function Hz(e,t,n,r){let i=new G(e,{style:H.combine([r,new H({link:t,bold:n})])});return i.overflow=`ignore`,i.end=``,i}function Uz(e,t,n=!1){let r=new H({link:t,bold:n?!0:void 0}),i=new G(e.plain,{style:H.combine([dm(e.style),r])});for(let t of e.spans)i.stylize(H.combine([dm(t.style),r]),t.start,t.end);return i.overflow=`ignore`,i.end=``,i}function Wz(e,t){return Math.max(e.members.indexOf(Bz(t,e.stateVar)),0)}function Gz(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=Bz(r,e.stateVar);return{effects:[{verb:yn,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=Bz(r,e.stateVar);return{effects:[{verb:yn,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=Bz(r,e.stateVar);return{effects:[{verb:yn,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(Wz(e,r)+1)%e.members.length];return{effects:[{verb:yn,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:N,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:bn,args:[Vz(e.text,FC(r))]}],active:!1};case`open`:return{effects:[{verb:xn,args:[Vz(e.target,FC(r))]}],active:!1};case`persist-literal`:{let t=Bz(r,e.stateVar);return{effects:[{verb:P,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=Bz(r,e.stateVar);return{effects:[{verb:P,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(Wz(e,r)+1)%e.members.length];return{effects:[{verb:P,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Tn,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:An,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:Mn,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Nn,args:[i]}],active:!1};case`back`:return{effects:[{verb:Pn,args:[i]}],active:!1};case`rewind`:return{effects:[{verb:Fn,args:[i]}],active:!1};case`save`:return{effects:[{verb:En,args:[i]}],active:!1};case`preset-save`:return{effects:[{verb:Dn,args:[i]}],active:!1};case`theme-default-save`:return{effects:[{verb:On,args:[i]}],active:!1};case`preset-delete`:return{effects:[{verb:kn,args:[i,Vz(e.name,FC(r))]}],active:!1};case`doctor-run`:return{effects:[{verb:Ln,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Rn,args:[i,e.check]}],active:!1};case`doctor-mark`:return{effects:[{verb:zn,args:[i,e.check,e.mark]}],active:!1};case`ceiling`:return{effects:[{verb:Vn,args:[i,...e.args]}],active:!1};case`slash`:return{effects:[{verb:Hn,args:[i,e.line]}],active:!1};case`layout-op`:return{effects:[{verb:jn,args:[i,e.key,$A(e.op)]}],active:!1};case`do`:{let a=Gz(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>Gz(e,t,void 0,r,i).effects)],active:a.active}}case`layout-op-option`:{let r={op:`insert`,segment:n??t,anchor:e.anchor,relation:e.relation};return{effects:[{verb:jn,args:[i,e.key,$A(r)]}],active:!1}}}}function Kz(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:er(`action "${e}"`,n,t.members.length,Wz(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]?.plain}}function qz(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}=Kz(e,Lz(r),t,i),s=Bz(i,`session.id`),{effects:c,active:l}=Gz(r,a.plain,o,i,s);return Uz(a,Gn(c),l)}function Jz(e){return{action:{fn:(t,...n)=>qz(t,n,e),argTypes:[`string`,`liftable`],arity:{kind:`variadic`},returnType:`T`}}}function Yz(e,t){return Hz(`✕`,Gn([{verb:yn,args:[Bz(e,`session.id`),t,Zn]}]),!1)}function Xz(e,t,n){return new H({bgcolor:V.fromRgba(t),color:V.fromRgba(Bf(e,t,n))})}function Zz({tint:e,text:t}){return new H({bgcolor:V.fromRgba(e),color:V.fromRgba(t)})}function Qz(e,t,n){return new H({color:V.fromRgba(ac(Af(e,`warning`),t,zf,n))})}function $z(e,t,n){return H.combine([Xz(e,t,n),Qz(e,t,n)])}function eB(e,t,n){return Xz(e.palette,sp(e.palette,e.disclosure,[t],n),n)}function tB(e){let t=V.fromRgba(Af(e,`background`)),n=G.fromFragments(nf.map(n=>new G(`▀`,{style:new H({color:V.fromRgba(Af(e,n)),bgcolor:t})})));return n.overflow=`ignore`,n.end=``,n}const nB=(e,t)=>{let n=typeof e==`string`?new G(e,{style:t}):e;return n.overflow=`ignore`,n.end=``,n},rB=e=>new H({bold:e});function iB(e,t,n,r,i,a){if(r===void 0)return(n,r,a,o)=>nB(a,H.combine([eB(e,{...n,distribution:t},i),rB(o)]));let o=Xz(e.palette,a,i);return(e,t,i,a)=>aB(i,H.combine([o,rB(a)]),r(t,n))}const aB=(e,t,n)=>nB(G.fromFragments([nB(e,t),nB(` `,t),tB(n)]));function oB(e,t){return t===void 0?(e,t,n)=>nB(n):(n,r,i)=>aB(i,void 0,t(r,e))}function sB(e,t,n,r,i){let a=Xz(e.palette,i,r);return(e,r,i,o)=>nB(G.fromFragments([nB(o?`[`:` `,a),tB(n(r,t)),nB(o?`]`:` `,a)]))}function cB(e,t,n){let r=t.map(t=>({label:t.label,indices:e.flatMap((e,n)=>e.group===t.id?[n]:[])})).filter(e=>e.indices.length>0);if(r.reduce((e,t)=>e+t.indices.length,0)!==e.length){let n=new Set(t.map(e=>e.id)),r=e.flatMap((e,t)=>n.has(e.group)?[]:[`#${t} (group "${e.group}")`]);throw Error(`library: ${r.join(`, `)} name a group the domain does not list (${[...n].join(`, `)})`)}return n?r.flatMap(e=>lB(e.indices,8).map(t=>[{label:e.label,indices:t}])):[r]}function lB(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}function uB(e,t){return new G(e).truncate(t,{marker:`…`}).plain}function dB(e){return{current:null,drawnAt:e}}function fB(e,t,n,r,i,a,o){let s={segName:t,placementId:n,palette:r,disclosure:i,tint:a,text:o,bg:void 0,drops:[]};return e.current=s,s}function pB(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 mB(e){return new G(e).cellLength}function hB(e){return Math.max(1,e.width-e.chromeCols-2*e.padding)}function gB(e){return Math.max(1,hB(e)-(mB(`✕`)+2*e.padding+e.seamCols))}function _B(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 vB(e,t,n){let r=mB(`←`)+1+mB(`→`)+1,i=_B(e,t,n);return(i.length>1?_B(e,t,n+r):i).map(e=>[{label:``,indices:e}])}function yB(e,t){let n=[];for(let t of e)n.length>0&&n.push(new G(` `)),n.push(t);let r=G.fromFragments(n);return r.overflow=t?`ignore`:void 0,r.end=``,r}function bB(e,t,n,r,i){let a=e.compiled.get(t);if(!a||a.kind!==n)throw Error(`${i} references action "${t}" which must be ${r}, got ${a?`a ${a.kind} action`:`no such action`}`);return a}function xB(e,t,n){let r=e.compiled.get(t),i=r&&Lz(r);if(!i||i.kind!==`set-option`&&i.kind!==`persist-option`&&i.kind!==`layout-op-option`)throw Error(`${n} references action "${t}" which must be a set-option, persist-option, or layout-op-option action ({ set, from }, { persist, from }, or { persist, insertSegmentFrom, anchor, relation }), got ${i?`a ${i.kind} action`:`no such action`}`);return i}function SB(e,t,n,r,i,a,o,s,c=[]){let l=a.compiled.get(e),u=a.store,d=Bz(u,`session.id`),f=`stateVar`in t?Bz(u,t.stateVar):void 0,p=(e,n)=>{let r=t.options[e];return o({index:e,count:t.options.length},r,n,r===f)},m=i?r.kind===`led`?gB(a):hB(a):1/0,h=(r.kind===`led`?0:mB(`✕`)+1)+c.reduce((e,t)=>e+mB(t.glyph)+1,0),g=t.library&&{groups:t.library.groups,entries:t.options.map(t.library.entry)},_=g===void 0?t.options.map((e,t)=>p(t,e)):[],v=g===void 0?vB(_.map(e=>e.cellLength),m,h):cB(g.entries,g.groups,i),y=parseInt(Bz(u,n.stateVar),10),b=e=>Math.max(0,v.findIndex(t=>t.some(t=>t.indices.includes(e)))),x=b(f===void 0?-1:t.options.indexOf(f)),S=Number.isInteger(y)?y<0?x:Math.min(y,v.length-1):0,C=v[S]??[],ee=e=>Gn([{verb:yn,args:[d,n.key,String(e)]}]),te=r.kind===`led`?[]:[{verb:yn,args:[d,...r.writes.flatMap(([e,t])=>[e,t])]}],ne=r.kind===`own`&&r.onPick?te:[],re=e=>Gn([...Gz(l,e,e,u,d).effects,...ne]),ie=(e,n)=>Uz(e,re(t.options[n])),ae=r.kind===`led`?[]:[Hz(`✕`,Gn(te),!1,s)];ae.push(...c.map(({glyph:e,option:r})=>Hz(e,Gn([...Gz(l,r,r,u,d).effects,{verb:yn,args:[d,n.key,String(b(t.options.indexOf(r)))]}]),!1))),S>0&&ae.push(Hz(`←`,ee(S-1),!1));let w=S<v.length-1?[Hz(`→`,ee(S+1),!1)]:[];if(g===void 0){let e=C.flatMap(e=>e.indices);return[yB([...ae,...e.map(e=>ie(_[e],e)),...w],i)]}let T=new H({bold:!0}),oe=v.length>1?` ${S+1}/${v.length}`:``,E=C.length===1?[new G(`${C[0].label}${oe}`,{style:T})]:[],se=[yB([...ae,...E,...w],i)];for(let e of C){C.length>1&&se.push(yB([new G(e.label,{style:T})],i));let n=Math.max(...e.indices.map(e=>mB(t.options[e])));for(let r of e.indices){let e=t.options[r],a=g.entries[r].description,o=a===void 0?void 0:Jd(a),s=` `.repeat(n-mB(e)+2),c=o===void 0?e:`${e}${s}${o}`;se.push(yB([ie(p(r,uB(c,m)),r)],i))}}return se}function CB(e,t){return{picker:{fn:(n,r,i,a,o,...s)=>{kC(`picker "${n}"`,[`closeOnPick`,`paged`,`inBody`],s);let c=bB(e,r,`set-int`,`an int action ({ set, int: true })`,`picker`);if(o===!0&&i===!0)throw Error(`{{ picker "${n}" … }} sets both closeOnPick and inBody; a picker in a body is closed by the body's ✕, so it has no close to fold into a pick`);let l=xB(e,n,`picker`);if(l.library!==void 0)throw Error(`{{ picker "${n}" … }} ranges a catalogue domain, which lays out as one row per member; a catalogue renders in a {{ menu }} body`);let u=pB(t,`{{ picker }}`);if(u.bg===void 0)throw Error(`{{ picker }} is not available while segments.${u.segName}'s own "bg:" is being evaluated — a picker is drawn on that background`);let[d]=SB(n,l,{key:c.key,stateVar:c.stateVar},o===!0?{kind:`led`}:{kind:`own`,writes:[[c.key,`-1`]],onPick:i===!0},a===!0,e,iB(u,vf(void 0),Pz(e,`{{ picker }}`),l.paletteOf,t.drawnAt(),u.bg),Qz(u.palette,u.bg,t.drawnAt()));return d},argTypes:[`string`,`string`,`bool`],arity:{kind:`variadic`},returnType:`T`}}}function wB(e,t){let n=e.length,r=Math.max(e.indexOf(t),0);return e=>((r+e)%n+n)%n}function TB(e,t,n,r,i){let a=Math.min(Math.floor((t-1)/2),i),o=n,s=0;for(;s<a;){let t=o+e(-(s+1))+1+e(s+1)+1;if(t>r)break;o=t,s+=1}return s}function EB(e,t,n,r,i,a){if(!(`stateVar`in t))throw Error(`carousel references action "${e}", which inserts a segment and holds no current value to centre on — a carousel needs a { set, from } or { persist, from } action`);let o=n.store;if(!o.has(t.stateVar))throw Error(`carousel references action "${e}", whose key "${t.stateVar}" no variable reads back, so there is no current value to centre on — declare { kind: "state", key: "${t.stateVar}" } among the variables`);let s=n.compiled.get(e),c=Bz(o,`session.id`),{options:l}=t,u=l.length;if(u===0)return yB([],!0);let d=Bz(o,t.stateVar),f=wB(l,d),p=e=>l[f(e)],m=new Map,h=e=>{let t=m.get(e);if(t!==void 0)return t;let n=Gn(Gz(s,p(e),p(e),o,c).effects);return m.set(e,n),n},g=e=>r({index:f(e),count:u},p(e),p(e),p(e)===d),_=new Map,v=e=>{let t=_.get(e);if(t!==void 0)return t;let n=Uz(g(e),h(e));return _.set(e,n),n},y=a===void 0?v(0):Uz(oB(Pz(n,`{{ carousel }}`),t.paletteOf)({index:f(0),count:u},p(0),p(0),!1),Gn(Gz(n.compiled.get(a),p(0),void 0,o,c).effects)),b=TB(e=>v(e).cellLength,u,mB(`◀`)+1+y.cellLength+1+mB(`▶`),gB(n),i),x=e=>Array.from({length:b},(t,n)=>v(e*(n+1)));return yB([...x(-1).reverse(),Hz(`◀`,h(-1),!1),y,Hz(`▶`,h(1),!1),...x(1)],!0)}function DB(e,t){return{carousel:{fn:(n,...r)=>{let[i,a,...o]=r;if(kC(`carousel "${n}"`,[`neighbours`,`centre`],o),i!==void 0&&!(Number.isInteger(i)&&i>=0))throw Error(`carousel "${n}": neighbours must be a whole number ≥ 0 (0 shows only ◀ CURRENT ▶), got ${String(i)}`);if(a!==void 0&&!(typeof a==`string`&&e.compiled.has(a)))throw Error(`carousel "${n}": centre must name a declared action, got ${JSON.stringify(a)}`);if(a!==void 0&&Rz(e.compiled.get(a)))throw Error(`carousel "${n}": centre "${a}" writes a value the template binds, and the centre binds none — name an action that writes a fixed value, a cycle, or a do of them`);let s=i??1/0,c=xB(e,n,`carousel`),l=pB(t,`{{ carousel }}`);if(l.bg===void 0)throw Error(`{{ carousel }} is not available while segments.${l.segName}'s own "bg:" is being evaluated — a carousel is drawn on that background`);return EB(n,c,e,iB(l,vf(void 0),Pz(e,`{{ carousel }}`),c.paletteOf,t.drawnAt(),l.bg),s,a)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function OB(e,t,n){let r=xB(e,t,n);if(!(`stateVar`in r))throw Error(`${n} references action "${t}", which inserts a segment and holds no current value — a ${n} needs a { set, from } or { persist, from } action`);if(r.paletteOf===void 0)throw Error(`${n} references action "${t}", whose options are not colour-valued — a swatch draws the palette an option puts in force, as the "themes", "placementThemes" and "styles" domains do`);return r}function kB(e,t,n){let r=Math.imul(e^e>>>16,73244475);return r=Math.imul(r^r>>>16,73244475),r^=r>>>16,(n+1+(r>>>0)%Math.max(t-1,1))%t}function AB(e,t,n,r){let i=OB(e,t,n),a=r??Bz(e.store,i.stateVar);if(!i.options.includes(a))throw Error(`${n} "${t}": "${a}" is not one of its options, so it has no palette to draw`);return i.paletteOf(a,Pz(e,`{{ ${n} }}`))}function jB(e,t,n){return{swatch:{fn:(t,...n)=>{let[r,...i]=n;if(kC(`swatch "${t}"`,[`option`],i),r!==void 0&&typeof r!=`string`)throw Error(`swatch "${t}": option must be text, got ${JSON.stringify(r)}`);return tB(AB(e,t,`swatch`,r))},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`},swatches:{fn:(r,i)=>{let a=OB(e,r,`swatches`),o=bB(e,i,`set-int`,`an int action ({ set, int: true })`,`swatches`),s=pB(t,`{{ swatches }}`);if(s.bg===void 0)throw Error(`{{ swatches }} is not available while segments.${s.segName}'s own "bg:" is being evaluated — a swatch row is drawn on that background`);let c=t.drawnAt(),{options:l}=a,u=l.length,[d]=SB(r,a,{key:o.key,stateVar:o.stateVar},{kind:`led`},!0,e,sB(s,Pz(e,`{{ swatches }}`),a.paletteOf,c,s.bg),Qz(s.palette,s.bg,c),u===0?[]:(()=>{let t=wB(l,Bz(e.store,a.stateVar));return[{glyph:`◀`,option:l[t(-1)]},{glyph:`?`,option:l[kB(n().getTime(),u,t(0))]},{glyph:`▶`,option:l[t(1)]}]})());return d},argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`T`}}}const MB=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function NB(e,t,n,r){let i=Qf(e,n,r),a=(t,n)=>({text:t,colour:n,ink:Bf(e,n,r)});return[[pf(t).map((n,i)=>{let a=jf(e,n);return{text:MB[i%MB.length],colour:a,ink:t.shade.text(e,n.hue,a,r)}})],[[a(`▾ open`,i.state),a(`menu`,i.plane)],[a(`warn`,Af(e,`warning`)),a(`error`,Af(e,`error`))]]]}function PB(e,t){let n=e.flatMap((e,t)=>e.map(({text:e,colour:n,ink:r},i)=>({gap:t>0&&i===0?` `:``,cell:new G(` ${e} `,{style:Zz({tint:n,text:r})})}))),r=[],i=0;for(let{gap:e,cell:a}of n){if(i+=e.length+a.cellLength,i>t)break;e!==``&&r.push(new G(e)),r.push(a)}return r}function FB(e,t,n,r,i){let a=NB(e,t,n,r).map(e=>PB(e,i)),o=G.fromFragments(a.flatMap((e,t)=>t===0?e:[new G(`
167
- `),...e]));return o.overflow=`ignore`,o.end=``,o}function IB(e,t){return{themePreview:{fn:(...n)=>{let[r,...i]=n;if(kC(`themePreview`,[`applyAction`],i),r!==void 0&&typeof r!=`string`)throw Error(`themePreview: applyAction must name a declared action, got ${JSON.stringify(r)}`);let{palette:a,decor:o}=Pz(e,`{{ themePreview }}`);return FB(r===void 0?a:AB(e,r,`themePreview`),o,{...pB(t,`{{ themePreview }}`).disclosure,depth:0},t.drawnAt(),gB(e))},argTypes:[`value`],arity:{kind:`variadic`},returnType:`T`}}}const LB=e=>e.slice(e.lastIndexOf(`.`)+1),RB=(e,t)=>{let n=new G(LB(e));return n.truncate(t,{marker:`…`}),n.plain};function zB(e,t){let n=e.map(e=>e.map(({name:e})=>mB(LB(e)))),r=e=>n.every(n=>n.reduce((t,n)=>t+Math.min(n,e)+2,0)<=t),i=Math.max(1,...n.flat());for(;i>1&&!r(i);)--i;return i}function BB(e,t,n,r){let i=zB(e,r),a=e.map(e=>{let a=[],o=0;for(let{name:s,address:c,palette:l}of e){let e=new G(` ${RB(s,i)} `,{style:Zz(dp(l,{kind:`bar`,decor:t,address:c},n))});if(o+=e.cellLength,o>r)break;a.push(e)}return a}),o=G.fromFragments(a.flatMap((e,t)=>t===0?e:[new G(`
168
- `),...e]));return o.overflow=`ignore`,o.end=``,o}function VB(e,t){return{layoutPreview:{fn:()=>BB(e.layout(),Pz(e,`{{ layoutPreview }}`).decor,t.drawnAt(),gB(e)),argTypes:[],arity:{kind:`exact`},returnType:`T`}}}function HB(e,t,n,r){let i=pB(r.activeSegment,`{{ menu }}`),a=r.action,o=vT(i.placementId,e,n.key),s=xT(o),c=_T(e),l=Bz(a.store,o)===c,u=Bz(a.store,`session.id`),d=l?Zn:c,f=Hz(er(`{{ menu "${e}" }}`,t,2,+!!l),Gn([{verb:yn,args:[u,o,d,s,`0`]}]),!1);return i.drops.push(...l?(()=>{let t=r.activeSegment.drawnAt(),c=Qf(i.palette,i.disclosure,t).plane,l=xB(a,e,`menu`);return SB(e,l,{key:s,stateVar:s},{kind:`own`,writes:[[o,Zn],[s,`0`]],onPick:n.closeOnPick},n.paged,a,iB(i,n.distribution,Pz(a,`{{ menu }}`),l.paletteOf,t,c),Qz(i.palette,c,t))})():[]),f}const UB=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function WB(e,t){let n=t[t.length-1],r=UB(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:TT(r??{})}}function GB(e){return{menu:{fn:(t,...n)=>{let{displays:r,options:i}=WB(t,n);return HB(t,r,i,e)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function KB(e){let{value:t,max:n,width:r,filled:i,empty:a,colourAt:o}=e,s=qB(t,n,r),c=[];for(let e=0;e<r;e++){let t=e<s,l=t&&o!==void 0?o(e*n/r):void 0;c.push(new G(t?i:a,{style:l===void 0?void 0:new H({color:l})}))}let l=G.fromFragments(c);return l.end=``,l.overflow=`ignore`,l}function qB(e,t,n){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?0:Math.min(n,Math.max(0,Math.round(e/t*n)))}function JB(e){let t={fn:(()=>{let t=pB(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:[],arity:{kind:`exact`},returnType:`string`},n={fn:(()=>pB(e,`{{ tint }}`).tint.hex),argTypes:[],arity:{kind:`exact`},returnType:`string`},r={fn:((t,n)=>{let{palette:r}=pB(e,`{{ keptOn }}`),i=Xs(r,t),a=Xs(r,n),o=Ho(sc(i,B.TRUECOLOR),sc(a,B.TRUECOLOR)),s=Math.min(zf,Math.max(o,3));return(oc(i,e.drawnAt(),(e,t)=>Ho(e,t(a))>=s)??i).hex}),argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`string`},i=hC(()=>pB(e,`{{ color }} / {{ ramp }} / {{ gauge }}`).palette),a={fn:((e,t,n,r,a,o,...s)=>{let c=o===void 0?void 0:[o,...YB(s)];return KB({value:e,max:t,width:n,filled:r,empty:a,colourAt:c===void 0?void 0:e=>String(i.ramp.fn(e,...c))})}),argTypes:[`float`,`float`,`int`,`string`,`string`,`string`],arity:{kind:`variadic`},returnType:`T`};return{...i,bgOf:t,tint:n,keptOn:r,gauge:a}}function YB(e){return e.flatMap(e=>{let t=e.indexOf(`:`),n=t<0?NaN:Number(e.slice(0,t));if(!Number.isFinite(n))throw Error(`{{ gauge }} stop "${e}" must be "<position>:<colour>", e.g. "80:error" or "80:#ff0000"`);return[n,e.slice(t+1)]})}function XB(e){let t=[],n=[];for(let r of e){if(!r.contains(`
167
+ `,l.join(e,`lib`),t.sessionId,t.cwd],env:zL(t),timeoutMs:3e3,category:`memento.read`});return n.ok?VL(n.stdout):L(BL(n))}function UL(e,t,n){let r=Ne({bin:l.join(e,FL),args:n.kind===`set`?[`set`,`session`,n.to]:[`clear`,`session`],env:zL(t),timeoutMs:5e3,category:`memento.move`});if(!r.ok)throw Error(BL(r))}function WL(){return{locate:e=>RL(di(e.claudeConfigDir),e.projectDir),read:HL,move:UL}}function GL(e,t,n){let r=n===void 0?``:`CLAUDE_CONFIG_DIR=${fr(n)} `,i=e.added_dirs.map(e=>` --add-dir ${fr(e)}`).join(``);return`cd ${fr(e.project_dir)} && ${r}claude --resume ${fr(t)}${i}`}function KL(e,t,n){let r=Yg(t(`preset`),e.globals.preset,e.presets),i=Qg(e,r),a=t(`edit.mode`)===`arrange`?e.editGlobals:{},o=ig(a.palette,t(`theme`),i.palette),s=vL(i,_L(o,e.themeDefaults));return{preset:r,presetCustomized:n(r),theme:o,style:xm(a.style,t(`style`),s.style,e.styles),effect:km(a.effect,t(`effect`),s.effect),endcaps:Pm(a.endcaps,t(`endcaps`),s.endcaps),variation:Hm(a.variation,t(`variation`),s.variation),shade:Gm(a.shade,t(`shade`),s.shade),separator:a.default_separator??s.default_separator,autoWrap:$m(a.autoWrap,t(`autoWrap`),s.autoWrap),padding:nh(a.padding,t(`padding`),s.padding),charset:a.charset??s.charset??`unicode`,updateNotice:eh(a.updateNotice,t(`updateNotice`),s.updateNotice),transitions:th(a.transitions,t(`transitions`),s.transitions),colorCompatibility:a.colorCompatibility??s.colorCompatibility??`truecolor`}}function qL(e,t){return{endcaps:e.endcaps,separator:e.separator,colorCompatibility:e.colorCompatibility,wrap:e.autoWrap,padding:e.padding,charset:e.charset,width:t}}function JL(e){return{theme:e.theme,style:e.style,effect:e.effect,preset:e.preset,variation:e.variation,shade:e.shade,transitions:e.transitions}}function YL(e){return{preset:{effective:e.preset,customized:e.presetCustomized,bundled:hL(e.preset)},endcaps:{effective:e.endcaps},variation:{effective:e.variation},shade:{effective:e.shade},charset:{effective:e.charset},colorCompatibility:{effective:e.colorCompatibility},autoWrap:{effective:e.autoWrap},padding:{effective:e.padding},updateNotice:{effective:e.updateNotice},transitions:{effective:e.transitions}}}const XL={prNumber:!0,prState:!0,prUrl:!0,prError:!0,prEarlier:!0};function ZL(e){return e?.prState===void 0?e?.prError===void 0?e?.prEarlier===void 0?`-`:`earlier-${e.prEarlier}`:`failed`:e.prState}const QL=10*1e3;function $L(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 eR(e,t){if(!(t<60))return e*3600/t}function tR(e,t,n,r){let i=r-t;if(i<50||i>QL)return;let a=n-e;if(!(a<=0))return a*1e3/i}function nR(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=tR(t.input,t.atMs,n.input,n.atMs),i=tR(t.output,t.atMs,n.output,n.atMs),a=tR(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 rR(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>QL)continue;let o=tR(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function iR(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function aR(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`,()=>iR(h.hostname())),i=n(`user`,()=>h.userInfo().username);return{host:{...r!==void 0&&{name:r},...i!==void 0&&{user:i},...e.ssh!==void 0&&{ssh:e.ssh}},failures:t}}function oR(e,t){let n=new Map;for(let[t,r]of Object.entries(e.variables))n.set(t,r);for(let[t,r]of Object.entries(e.segments))if(r.vars)for(let[e,i]of Object.entries(r.vars))n.set(`${t}.${e}`,i);let r=[],i=new Set,a=t=>y_(t,e.helpers).keys(),o=Qg(e,t);for(let e of mm){let t=o[e];if(hm(t))for(let e of a(t))r.push(e)}for(let n of fg(Zg(e,t).node)){if(n.when)for(let e of a(n.when))r.push(e);if(n.kind!==`segment`)continue;let t=e.segments[n.name];if(t){for(let e of[t.template,t.when,t.bg,t.fg])if(e)for(let t of a(e))r.push(t)}}let s=new Set;for(;r.length>0;){let e=r.pop();for(let t of cR(n,e)){if(i.has(t))continue;i.add(t);let e=n.get(t);if(e){if(e.kind===`input`)s.add(e.path);else if(e.kind===`template`)for(let t of a(e.template))r.push(t)}}}return s}function sR(e){let t=new Map;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=oR(e,n);return t.set(n,i),i}}function cR(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 lR(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function uR(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`)||t(`git.tracking`))&&{showUpstream:!0},...t(`git.repoName`)&&{showRepoName:!0},...t(`git.repoUrl`)&&{showRepoUrl:!0},...t(`git.operation`)&&{showOperation:!0},...t(`git.timeSinceCommit`)&&{showTimeSinceCommit:!0},...Object.keys(XL).some(e=>t(`git.${e}`))&&{showPullRequest:!0}}}async function dR(e,t,n,r,i,a,o,{configPath:s,...c}){let l=e=>lR(i,e),u=CT(t).getTime(),d=o.tmux??null,f=(e,t,n)=>t?n().catch(t=>L(`${e}: ${String(t)}`)):Promise.resolve(I),[p,m,h,g,_,v,y,b,x,S,C]=await Promise.all([f(`git`,l(`git`),()=>n.gitProvider.getGitInfo(r??e.workspace?.current_dir,uR(i),e.workspace?.project_dir)),f(`session`,l(`session.cost`)||l(`session.tokens`)||l(`burn`),()=>n.usageStore.getUsageInfo(e.session_id,e)),f(`today`,l(`today`),()=>n.usageStore.getTodayInfo(e,o.claudeConfigDir,t)),f(`context`,l(`context`)||l(`autocompact`),()=>n.contextProvider.getContextInfo(e)),f(`metrics`,l(`metrics`)||l(`burn`),()=>n.metricsProvider.getMetricsInfo(e.session_id,e)),f(`activity`,l(`activity`),()=>n.activityProvider.getActivityInfo(e.session_id,e)),f(`tmux`,l(`tmux.session`),()=>d===null?Promise.resolve(I):n.tmuxService.getSessionName(d)),f(`cache`,l(`cache`),()=>AL(e.transcript_path)),f(`speed`,l(`speed`),()=>n.usageStore.observeSpeed(e.session_id,e.transcript_path,u)),f(`memento`,l(`memento`),()=>n.mementoProvider.getCeiling(NL({sessionId:e.session_id,projectDir:e.workspace?.project_dir??``,cwd:r??e.workspace?.current_dir??``},o))),f(`autocompact`,l(`autocompact`),()=>Promise.resolve(n.autoCompact(ui(li(o.claudeConfigDir)))))]),ee=[],te=e=>{if(e.kind===`failed`){ee.push(e.reason);return}return e.kind===`ok`?e.value:void 0},ne=yR(p,u);ee.push(...ne.failures);let re=aR(o);ee.push(...re.failures);let ie=te(m),ae=te(h),w=te(g),T=te(_),oe=te(v),E=te(y),se=te(b),ce=mR(S);S.kind===`failed`&&ee.push(`memento: ${S.reason}`);let le=fR(C,w?.maxTokens);C.kind===`failed`&&ee.push(`autocompact: ${C.reason}`);for(let e of ee)n.log(`warn`,`provider fetch failed: ${e}`);let ue=e.rate_limits?.five_hour,de=e.rate_limits?.seven_day,fe=ue?$L(ue.used_percentage,ue.resets_at,18e6,u):void 0,pe=de?$L(de.used_percentage,de.resets_at,6048e5,u):void 0,me=ie?.session.cost,he=T?.sessionDuration,ge=l(`burn`)&&me!=null&&he!=null?eR(me,he):void 0,_e=te(x),ve=_e===void 0?void 0:nR(_e),ye=_e===void 0?void 0:rR(_e),be=ve!==void 0||ye!==void 0?{...ve,...ye!==void 0&&{history:ye}}:void 0,xe=vR(process.env.HOME??process.env.USERPROFILE),D=e.workspace?{...e.workspace,current_dir:vR(e.workspace.current_dir)??``,project_dir:vR(e.workspace.project_dir)??``,added_dirs:(e.workspace.added_dirs??[]).map(e=>vR(e)??e)}:e.workspace,Se=ie===void 0?void 0:_R({cost:ie.session.cost,tokens:ie.session.tokens}),Ce=ae===void 0?void 0:{cost:ae.cost,tokens:ae.tokens},we=T===void 0?void 0:_R({lastResponseTime:T.lastResponseTime,responseTime:T.responseTime,sessionDuration:T.sessionDuration,messageCount:T.messageCount,nonPrompts:T.nonPrompts,linesAdded:T.linesAdded,linesRemoved:T.linesRemoved}),Te=oe===void 0?void 0:hR(oe);return{...e,...D!==void 0&&{workspace:D},...xe!==void 0&&{home:xe},...ne.git!==void 0&&{git:ne.git},...d!==null&&{tmux:{pane:d.pane,...E!==void 0&&{session:E}}},host:re.host,...YL(a),history:n.history(e.session_id),navigation:{back:n.navigation(e.session_id)},...c,...s!==null&&{configPath:s},resumeCommand:GL(D,e.session_id,o.claudeConfigDir),...Se!==void 0&&{session:Se},...Ce!==void 0&&{today:Ce},...ge!==void 0&&{burn:{costPerHour:ge}},...be!==void 0&&{speed:be},...l(`block`)&&ue!==void 0&&{block:{nativeUtilization:ue.used_percentage,resetsAt:ue.resets_at,...fe!==void 0&&{etaMinutes:fe}}},...de!==void 0&&{weekly:{percentage:de.used_percentage,resetsAt:de.resets_at,...pe!==void 0&&{etaMinutes:pe}}},...se!==void 0&&{cache:{expiresAt:se}},...w!==void 0&&{context:{totalTokens:w.totalTokens,contextLeft:w.contextLeftPercentage}},...we!==void 0&&{metrics:we},...Te!==void 0&&{activity:Te},...ce!==void 0&&{memento:ce},...le!==void 0&&{autocompact:le}}}function fR(e,t){switch(e.kind){case`absent`:return;case`failed`:return{error:e.reason};case`ok`:return Rk(e.value,t)}}const pR=e=>e.trim().split(`
168
+ `).at(-1).trim();function mR(e){switch(e.kind){case`absent`:return;case`failed`:return{error:pR(e.reason)};case`ok`:{let{ceiling:t,session:n}=e.value;return{ceiling:t===`off`?0:t,off:t===`off`,session:n??``}}}}function hR(e){let t=e.todos.findIndex(e=>e.active),n=e.todos.length===0?void 0:{total:e.todos.length,completed:e.todos.filter(e=>e.done).length,...t>=0&&{position:t+1,active:e.todos[t].text}},r=gR(e.running),i=gR(e.done),a=r===void 0&&i===void 0?void 0:{...r!==void 0&&{running:r},...i!==void 0&&{done:i}};if(!(e.command===null&&n===void 0&&a===void 0))return{...e.command!==null&&{command:e.command},...n!==void 0&&{todo:n},...a!==void 0&&{tool:a}}}function gR(e){return e.length===0?void 0:e.map(e=>`${e.name}:${e.count}`).join(`,`)}function _R(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 vR(e){return e===void 0||e.length===0||l.sep!==`\\`?e:e.replace(/\\/g,`/`)}function yR(e,t){if(e.kind===`absent`)return{failures:[]};if(e.kind===`failed`)return{failures:[e.reason]};let n=e.value,r=[],i=(e,t)=>{if(!(t===void 0||t.kind===`absent`)){if(t.kind===`failed`){r.push(`git.${e}: ${t.reason}`);return}return t.value}},a=i(`aheadBehind`,n.aheadBehind),o=i(`sha`,n.sha),s=i(`operation`,n.operation),c=i(`timeSinceCommit`,n.committedAt),l=c===void 0?void 0:Math.floor((t-c)/1e3),u=i(`stash`,n.stashCount),d=i(`upstream`,n.upstream),f=n.upstream===void 0?void 0:i(`tracking`,Fw(n.upstream,n.aheadBehind)),p=i(`repoName`,n.repoName),m=i(`repoUrl`,n.repoUrl),h=n.pullRequest===void 0?void 0:Iw(n.pullRequest,n.head),g={};switch(h?.kind){case`ok`:g={prNumber:h.value.number,prState:h.value.state,prUrl:h.value.url};break;case`failed`:r.push(`git.pr: ${h.reason}`),g={prError:h.reason};break;case`earlier`:g={prEarlier:h.value.state};break;case`absent`:case void 0:break}return{git:{branch:n.branch,status:n.status,...a!==void 0&&{ahead:a.ahead,behind:a.behind},...n.workingTree!==void 0&&{staged:n.workingTree.staged,unstaged:n.workingTree.unstaged,untracked:n.workingTree.untracked,conflicts:n.workingTree.conflicts},...o!==void 0&&{sha:o},...s!==void 0&&{operation:s},...l!==void 0&&{timeSinceCommit:l},...u!==void 0&&{stash:u},...d!==void 0&&{upstream:d},...f!==void 0&&{tracking:f},...p!==void 0&&{repoName:p},...m!==void 0&&{repoUrl:m},...g},failures:r}}const bR={theme:e=>e.theme.kind===`decided`?e.theme.name:null,preset:e=>e.preset,style:e=>e.style.kind===`decided`?e.style.name:null,effect:e=>e.effect.kind===`decided`?e.effect.name:null,endcaps:e=>e.endcaps,variation:e=>e.variation,shade:e=>e.shade,transitions:e=>e.transitions?Km:qm,autoWrap:e=>e.autoWrap?Km:qm,padding:e=>String(e.padding),updateNotice:e=>e.updateNotice?Km:qm},xR=Object.entries(ba),SR=new Set(xa.map(e=>e.sessionKey)),CR=()=>!1;function wR(e,t){return KL(e,e=>SR.has(e)?t(e):null,CR)}const TR=[`preset`,`theme`];function ER(e,t,n){let r=new Set(TR.slice(0,n).map(e=>ba[e].sessionKey));return KL(e,e=>r.has(e)?t(e):null,CR)}function DR(e,t){let n=Array.from({length:TR.length+1},(n,r)=>ER(e,t,r));return e=>{let t=TR.indexOf(e);return n[t===-1?TR.length:t]}}function OR(e,t,n,r){return e.flatMap(([e,i])=>{let a=bR[e](t);return a===null||a===bR[e](n(e))?[]:[{...i,value:a,target:r(i)}]})}function kR(e,t,n){return bR[n](wR(e,t))}function AR(e,t){let n=wR(e,t);return OR(xR,n,DR(e,t),t=>jR(e,n.preset,t.configKey))}function jR(e,t,n){return n in(Xg(e.presets,t).globals??{})?GD(t,n):n}function MR(e,t,n){let r=Yg(t(ba.preset.sessionKey),e.globals.preset,e.presets),i=KD(n);return{key:i?.scope===`globals`?jR(e,r,i.field):n,globals:Qg(e,r)}}function NR(e,t){let{preset:n}=wR(e,t);return IR(e,n).flatMap(({id:e,setting:r,key:i,decl:a,saved:o})=>{let s=t(i),c=s===null?void 0:Ag(a,s);return c===void 0||kg(c)===kg(o)?[]:[{preset:n,id:e,setting:r,key:i,value:c}]})}function PR(e,t,n){let r=new Map(n.map(e=>[e.key,e.value]));return Jg(e.presets).flatMap(n=>{let i=IR(e,n);return[...new Set(i.filter(e=>r.has(e.key)).map(e=>e.id))].flatMap(e=>{let n=i.filter(t=>t.id===e);return Dg(Object.fromEntries(n.map(e=>[e.setting,e.decl])),Object.fromEntries(n.map(e=>{let n=r.get(e.key)??t(e.key),i=n===null?void 0:Ag(e.decl,n);return[e.setting,i??e.saved]}))).map(({message:t})=>`placement "${e}": ${t}`)})})}const FR=new WeakMap;function IR(e,t){let n=FR.get(e)??new Map;FR.set(e,n);let r=n.get(t);if(r!==void 0)return r;let i=[...fg(Zg(e,t).node)].flatMap(t=>t.kind!==`segment`||t.drafts===void 0?[]:Object.entries(t.drafts).map(([n,{id:r,key:i}])=>{let a=Tg(e.segments[t.name])[n];return{id:r,setting:n,key:i,decl:a,saved:t.settings?.[n]??a.default}})),a=[...new Map(i.map(e=>[e.key,e])).values()];return n.set(t,a),a}function LR(e,t){let n=wR(e,t);return{from:n.preset,globals:Xg(e.presets,n.preset).globals??{},picks:OR(xR.filter(([e])=>e!==`preset`),n,DR(e,t),e=>e.configKey),placements:NR(e,t)}}function RR(e,t){return KL({...e,globals:{palette:t},presets:{}},()=>null,CR)}function zR(e,t){let n=wR(e,t),r=bR.theme(n);if(r===null)return{kind:`rule`};let i=RR(e,r),a=Qg(e,n.preset),o=Object.fromEntries(_g.map(e=>[e,bR[e](a[e]===void 0?n:i)]));return{kind:`look`,theme:r,look:o,differs:_g.some(e=>o[e]!==bR[e](i))}}function BR(e){return{sessionKeys:xa.filter(t=>t.configKey===e).map(e=>e.sessionKey),fileKeys:[e,...wD(e)?mL.map(t=>GD(t,e)):[],...WD(e)?lm().map(t=>UD(t,e)):[]]}}function VR(e){return new Set(xa.map(e=>e.configKey).filter(t=>BR(t).fileKeys.some(t=>WR(e,UR(t)))))}function HR(e,t,n){let r=AR(e,n),i=new Set(r.map(e=>e.configKey)),a=Ea(e=>i.has(ba[e].configKey)||t.has(ba[e].configKey)),o=zR(e,n);return{unsaved:r.length+NR(e,n).length,resettable:a,themeDefault:o.kind===`look`&&o.differs?{differs:!0,theme:o.theme}:{differs:!1}}}function UR(e){let t=KD(e);if(t===null||t.scope===`preset-root`)throw Error(`reset layer "${e}" is not a value path`);return qD(t)}function WR(e,t){let[n,...r]=t;return n===void 0?e!==void 0:typeof e==`object`&&!!e&&WR(e[n],r)}const GR=lm(),KR=new Set(GR),qR=new Set(Am),JR=e=>e?KR.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${GR.join(`, `)})`}:{ok:!1,reason:`theme name is required`},YR=e=>e?qR.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown endcaps "${e}" (have: ${Am.join(`, `)})`}:{ok:!1,reason:`endcaps name is required`},XR=new Set([`1`,`true`]),ZR=new Set([`0`,`false`]),QR={endcaps:YR,theme:JR,"toolbar-expanded":e=>XR.has(e)?{ok:!0,value:`1`}:ZR.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}},$R=mM(QR,`state`,oz);function ez(e,t){return $R.register(e,t)}function tz(e){return $R.gateFor(e)}function nz(e,t){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:i_(e.from,t).members}}]:`int`in e?[{key:e.set,spec:{kind:`int`}}]:`cycle`in e?[{key:e.set,spec:{kind:`allow-list`,allowed:e.cycle}}]:[{key:e.set,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function rz(e){return e.filter(e=>e.spec.kind!==`allow-list`||!Object.hasOwn(QR,e.key))}function iz(e,t,n){let r=Da.get(n);if(r!==void 0)return kR(e,t,r);let i=Object.values(e.variables).find(e=>e.kind===`state`&&e.key===n);return i?.kind===`state`?i.default??null:null}function az(e){let t=Lj(e);return rz(Object.values(e.actions).flatMap(e=>nz(e,t)))}function oz(e){return fM(az(e))}const sz=`update.dismissed`,cz=`updateNotice`,lz=ba.updateNotice.sessionKey;function uz(e){return e.kind===`source`?e.newer.digest:yi(e.newer)}const dz=e=>`${e.version} [${Gh(e.digest)}]`;function fz(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:dz(e.newer),running:dz(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:yi(e.newer),running:yi(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${xi}@${yi(e.newer)}`,`install`]}}}}const pz={kind:`idle`},mz={kind:`running`};function hz(e,t,n){if(e===null)return[];let r=uz(e);if(!n.enabled||n.dismissed===r)return[];let i=fz(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(`
169
+ `),c=Gn([{verb:wn,args:[s]}]),l=t.kind===`running`?Nh(`[${i.busy}]`,c):Nh(`[${i.act}]`,Gn([{verb:In,args:[n.sessionId]}]));return[{severity:Mh,message:s,lines:[[Nh(a,c),l,Nh(`[dismiss]`,Gn([{verb:yn,args:[n.sessionId,sz,r]}])),Nh(`[disable]`,Gn([{verb:P,args:[n.sessionId,cz,`false`]},{verb:yn,args:[n.sessionId,lz,`false`]}]))],...o.map(e=>[Nh(e,c)])]}]}function gz(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 _z(e){switch(e.kind){case`current`:return[`info`,`build: current ${dz(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${dz(e.source)}, running ${dz(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function vz(e){switch(e.kind){case`current`:return[`info`,`release: current ${yi(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${yi(e.latest)}, running ${yi(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${yi(e.installed)}, latest ${yi(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function yz(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const bz=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function xz(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=bz(e.stderr)??e.error??bz(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function Sz(){let e=[gM(cz,[`false`]),ez(lz,[`false`]),ez(sz,[])];return()=>e.forEach(e=>e())}function Cz(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=pz,d=null,f=yz(s),p=yz(s),m=()=>gz(c,l);function h(){let e=m(),t=e===null?null:uz(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:ez(sz,[t])})}function g(){c=Yh(t,qh),f(_z(c)),h()}async function _(){l=Ci(Et,await Si(xi,a,i)),p(vz(l)),h()}return{arm(){Sz(),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>hz(m(),u,e),act(){let e=m();if(e===null)throw new K(`apply-update: nothing newer is known to apply`);let t=fz(e);if(u.kind===`running`)throw new K(`apply-update: already ${t.busy}`);u=mz,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),Me({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=pz,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=xz(n);u={kind:`failed`,identity:uz(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}var wz=class{static CACHE_DIR=ze();static USAGE_CACHE_DIR=l.join(this.CACHE_DIR,`usage`);static LOCKS_DIR=l.join(this.CACHE_DIR,`locks`);static isLocked(e){let t=l.join(this.LOCKS_DIR,e);if(!r.existsSync(t))return!1;try{let n=r.readFileSync(t,`utf-8`),i=parseInt(n.trim(),10);if(isNaN(i))return D(`Invalid PID in lock file ${e}, removing stale lock`),r.unlinkSync(t),!1;try{return process.kill(i,0),!0}catch(n){return n.code===`ESRCH`?(D(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(D(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return D(`Error reading lock file ${e}:`,t),!0}}static async acquireLock(e,t=5e3){await this.ensureCacheDirectories();let n=l.join(this.LOCKS_DIR,e),i=Date.now(),a=String(process.pid);for(;Date.now()-i<t;)try{return await r.promises.writeFile(n,a,{flag:`wx`}),D(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await de(50);else throw e}return D(`Failed to acquire lock for ${e} within ${t}ms`),!1}static async releaseLock(e){let t=l.join(this.LOCKS_DIR,e);try{await r.promises.unlink(t),D(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&D(`Error releasing lock for ${e}:`,t)}}static async ensureCacheDirectories(){try{await Promise.all([r.promises.mkdir(this.CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.USAGE_CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.LOCKS_DIR,{recursive:!0})])}catch(e){D(`Failed to create cache directories:`,e)}}static createProjectHash(e){return ae(`md5`).update(e).digest(`hex`).substring(0,8)}static async getUsageCache(e,t){await this.ensureCacheDirectories();let n=l.join(this.USAGE_CACHE_DIR,`${e}.json`),i=`${e}.usage.lock`;for(let a=0;a<3;a++){if(this.isLocked(i)){D(`Cache for ${e} is locked, waiting...`),await de(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(D(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(D(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return D(`No shared ${e} usage cache found`),null;D(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await de(75)}}return D(`Failed to read ${e} cache after 3 attempts.`),null}static deserializeDates(e){return Array.isArray(e)?e.map(e=>({...e,timestamp:new Date(e.timestamp)})):e}static async setUsageCache(e,t,n){let i=`${e}.usage.lock`;if(!await this.acquireLock(i)){D(`Could not acquire lock to set usage cache for ${e}`);return}try{await this.ensureCacheDirectories();let i=l.join(this.USAGE_CACHE_DIR,`${e}.json`),a=JSON.stringify({data:t,timestamp:n||Date.now()});await r.promises.writeFile(i,a,`utf-8`),D(`[CACHE-SET] ${e} disk cache stored`)}catch(t){D(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const Tz={"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 Ez=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 wz.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await wz.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new ee(this.GITHUB_PRICING_URL),n=ue({hostname:t.hostname,path:t.pathname,headers:{"User-Agent":`cc-candybar`,"Cache-Control":`no-cache`},timeout:5e3},t=>{if(t.statusCode!==200){D(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){D(`Response too large`),n.destroy(),e(null);return}r+=t}),t.on(`end`,()=>{try{let t=JSON.parse(r),n=t._meta,i={};for(let[e,n]of Object.entries(t))e!==`_meta`&&(i[e]=n);this.validatePricingData(i)?(D(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),D(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(D(`Invalid pricing data structure`),e(null))}catch(t){D(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{D(`Response error:`,t),e(null)})});n.on(`error`,t=>{D(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{D(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return D(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return D(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),D(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(D(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(Tz).length} models`),this.executionCache=Tz,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(Tz).length} models`),Tz)}static validatePricingData(e){if(!e||typeof e!=`object`)return!1;for(let[,t]of Object.entries(e)){if(!t||typeof t!=`object`)return!1;let e=t;if(typeof e.input!=`number`||typeof e.output!=`number`||typeof e.cache_read!=`number`)return!1}return!0}static async getModelPricing(e){if(this.modelPricingCache.has(e))return D(`[CACHE-HIT] Model pricing cache: ${e}`),this.modelPricingCache.get(e);let t=await this.getCurrentPricing(),n;return n=t[e]?t[e]:this.fuzzyMatchModel(e,t),this.modelPricingCache.set(e,n),D(`[CACHE-SET] Model pricing cache: ${e}`),n}static fuzzyMatchModel(e,t){let n=e.toLowerCase();for(let[e,r]of Object.entries(t))if(e.toLowerCase()===n)return r;for(let{pattern:e,fallback:r}of[{pattern:[`opus-4-6`,`claude-opus-4-6`],fallback:`claude-opus-4-6-20260205`},{pattern:[`opus-4-5`,`claude-opus-4-5`],fallback:`claude-opus-4-5-20251101`},{pattern:[`opus-4-1`,`claude-opus-4-1`],fallback:`claude-opus-4-1-20250805`},{pattern:[`opus-4`,`claude-opus-4`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet-4-6`,`sonnet-4.6`,`claude-sonnet-4-6`],fallback:`claude-sonnet-4-6`},{pattern:[`sonnet-4.5`,`4-5-sonnet`,`sonnet-4-5`],fallback:`claude-sonnet-4-5-20250929`},{pattern:[`sonnet-4`,`claude-sonnet-4`],fallback:`claude-sonnet-4-20250514`},{pattern:[`haiku-4.5`,`4-5-haiku`,`haiku-4-5`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`haiku`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`opus`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet`],fallback:`claude-sonnet-4-5-20250929`}])if(e.some(e=>n.includes(e))&&t[r])return t[r];return t[`claude-sonnet-4-5-20250929`]||{name:`${e} (Unknown Model)`,input:3,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3,output:15}}static async calculateCostForEntry(e){let t=e.message?.usage;if(!t)return 0;let n=this.extractModelId(e),r=await this.getModelPricing(n),i=t.input_tokens||0,a=t.output_tokens||0,o=t.cache_creation_input_tokens||0,s=t.cache_read_input_tokens||0,c=i/1e6*r.input,l=a/1e6*r.output,u=s/1e6*r.cache_read,d=o/1e6*r.cache_write_5m;return c+l+d+u}static extractModelId(e){if(e.model&&typeof e.model==`string`)return e.model;let t=e.message;if(t?.model){let e=t.model;if(typeof e==`string`)return e;let n=e;return(typeof n?.id==`string`?n.id:null)||`claude-sonnet-4-5-20250929`}return e.model_id&&typeof e.model_id==`string`?e.model_id:`claude-sonnet-4-5-20250929`}};const Dz=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function Oz(e){if(typeof e==`string`)return Dz.exec(e)?.[1]}function kz(e){let t=e?.todos;if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let{content:t,activeForm:r,status:i}=e,a=i===`in_progress`,o=a&&typeof r==`string`?r:t;typeof o==`string`&&n.push({text:o,active:a,done:i===`completed`})}return n}function Az(e){return typeof e==`string`?e:Array.isArray(e)?e.find(e=>typeof e==`object`&&!!e&&e.type===`text`&&typeof e.text==`string`)?.text??``:``}function jz(e,t){let n=e.message?.content,r=[],i=[],a;if(Array.isArray(n))for(let e of n){if(typeof e!=`object`||!e)continue;let t=e;switch(t.type){case`tool_use`:{let{id:e,name:n}=t;if(typeof e!=`string`||typeof n!=`string`)break;r.push({id:e,name:n}),n===`TodoWrite`&&(a=kz(t.input)??a);break}case`tool_result`:{let e=t.tool_use_id;typeof e==`string`&&i.push(e);break}default:break}}let o=t===`prompt`?Oz(Az(n)):void 0;if(!(r.length===0&&i.length===0&&a===void 0&&o===void 0))return{...r.length>0&&{started:r},...i.length>0&&{finished:i},...a!==void 0&&{todos:a},...o!==void 0&&{command:o}}}function Mz(e){if(e!==void 0)return[e];let t=g();return[p(t,`.config`,`claude`),p(t,`.claude`)].filter(e=>a(e))}async function Nz(e){let t=[];for(let n of e){let e=p(n,`projects`);if(a(e))try{let n=await CL(e,{withFileTypes:!0});for(let r of n)if(r.isDirectory()){let n=p(e,r.name);t.push(n)}}catch(t){D(`Failed to read projects directory ${e}:`,t)}}return t}async function Pz(e,t,n){let r=[],i=p(t,e,`subagents`);try{let t=(await CL(i)).filter(e=>e.startsWith(`agent-`)&&e.endsWith(`.jsonl`));for(let a of t){let t=p(i,a);if(n?.has(t)){r.push(t);continue}try{let n=(await wL(t,`utf-8`)).split(`
170
+ `)[0];n&&JSON.parse(n).sessionId===e&&r.push(t)}catch{D(`Failed to check agent file ${t}`)}}}catch(e){D(`Failed to read subagents directory ${i}:`,e)}return r}function Fz(e){let t=e.message;if((e.type||t?.role||t?.type)!==`user`)return;if(Lz(t)===`tool_result`)return`tool-result`;let n=typeof e.origin==`object`&&e.origin!==null?e.origin.kind:void 0;if(n!==void 0&&n!==`human`)return`turn`;let r=Az(t?.content).trimStart();return r.startsWith(`[Request interrupted by user`)?`interrupt`:e.isMeta===!0||e.isCompactSummary===!0||Iz.test(r)?`claude-code`:`prompt`}const Iz=/^<(?:command-name|local-command-std(?:out|err)|bash-(?:input|stdout|stderr))>/;function Lz(e){let t=e?.content;return Array.isArray(t)&&typeof t[0]==`object`&&t[0]?t[0].type:void 0}const Rz=new Map;async function zz(e){try{let t=await TL(e),n=t.size,r=Rz.get(e);if(r&&r.mtime===t.mtimeMs&&r.size===n)return D(`[parse-cache] hit ${e}`),Rz.delete(e),Rz.set(e,r),r.entries;let i;return n>1048576?(D(`Using streaming parser for large file ${e} (${Math.round(n/1024)}KB)`),i=await Wz(e)):i=await Hz(e),D(`Parsed ${i.length} entries from ${e}`),n>5242880?i:(Rz.delete(e),Rz.size>=16&&Rz.delete(Rz.keys().next().value),Rz.set(e,{mtime:t.mtimeMs,size:n,entries:i}),i)}catch(t){if(t.code===`ENOENT`)return D(`Transcript not present yet: ${e}`),[];throw t}}function Bz(e){if(!e.timestamp)return null;let t=e.message,n=t?.usage,r=Fz(e);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}:void 0,costUSD:typeof e.costUSD==`number`?e.costUSD:void 0,isSidechain:e.isSidechain===!0,userEntry:r,activity:jz(e,r),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 Vz(e){let t=[];for(let n of e.split(`
171
+ `))if(n.trim())try{let e=Bz(JSON.parse(n));e&&t.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`);continue}return t}async function Hz(e){return Vz(await wL(e,`utf-8`))}async function Uz(e,t){let n=await EL(e,t===void 0?void 0:{offset:t.offset,ino:t.ino});if(n.kind!==`ok`)return n;let{buf:r,start:i,stamp:a,ino:o,reset:s}=n.value,c=r.lastIndexOf(10);return F(c<0?{entries:[],cursor:{offset:i,stamp:a,ino:o},reset:s}:{entries:Vz(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,stamp:a,ino:o},reset:s})}async function Wz(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=fe({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=Bz(JSON.parse(t));e&&r.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`)}}),o.on(`close`,()=>{t(r)}),o.on(`error`,t=>{D(`Streaming parser error for ${e}:`,t),n(t)}),a.on(`error`,t=>{D(`File stream error for ${e}:`,t),n(t)})})}var Gz=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 Kz(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 qz=new Map,Jz={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},Yz={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function Xz(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function Zz(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function Qz(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function $z(e,t,n,r){let i=Xz(new Date(Zz())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:Qz(),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 Ez.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=Xz(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...Jz};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 eB(e){let t=0,n=0,r=Qz(),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)??{...Jz};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:Yz,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 tB(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 nB=class{sessions=new Map;flight=new Gz;seeded=new Map;seededDay=``;rescanIntervalMs;speedFlight=new Gz;staleAgeMs;log;renderTally={hits:0,misses:0};sweeps=0;scans={seed:0,rescan:0};sweepTimer=null;constructor(e={}){this.log=e.logger??Ft,this.staleAgeMs=e.staleAgeMs??864e5,this.rescanIntervalMs=e.rescanIntervalMs??6e4;let t=e.sweepIntervalMs??3e5;t>0&&(this.sweepTimer=setInterval(()=>this.sweepStale(),t),this.sweepTimer.unref())}getStats(){return{size:this.sessions.size,hits:this.renderTally.hits,misses:this.renderTally.misses,sweeps:this.sweeps,seeds:this.scans.seed,rescans:this.scans.rescan}}async getUsageInfo(e,t){let n=await this.ingest(e,t?.transcript_path,this.renderTally);if(n.kind===`failed`)return n;let r=n.kind===`ok`?n.value.sessionInfo:Yz,i=t?.cost?.total_cost_usd??null;return F({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e,t,n){let r=Xz(CT(n)),i=Mz(t);try{await this.ensureSeeded(r,i,n*1e3)}catch(e){return L(`usage seed: ${e instanceof Error?e.message:String(e)}`)}let a=await this.ingest(e?.session_id??``,e?.transcript_path,this.renderTally);if(a.kind===`failed`)return a;let o=i.map(e=>p(e,`projects`)+m),s={...Jz},c=!1;for(let[t,{record:n}]of this.sessions){let i=n?.transcriptPath??``,a=t===e?.session_id||o.some(e=>i.startsWith(e))?n?.days??qz:qz;c||=a.has(r);let l=a.get(r)??Jz;s.cost+=l.cost,s.input+=l.input,s.output+=l.output,s.cacheCreation+=l.cacheCreation,s.cacheRead+=l.cacheRead}return c?F({cost:s.cost,tokens:s.input+s.output+s.cacheCreation+s.cacheRead,tokenBreakdown:{input:s.input,output:s.output,cacheCreation:s.cacheCreation,cacheRead:s.cacheRead},date:r}):I}async observeSpeed(e,t,n){if(!e)return I;let r=yL(t);return this.speedFlight.run(`${e}:${r}`,async()=>{let i=await this.ingest(e,t,this.renderTally,r);if(i.kind===`failed`)return i;let a=Kz(i.kind===`ok`?i.value.sessionInfo.tokenBreakdown:null,n),{ring:o}=this.hold(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(),F({...s!==void 0&&{prev:s},cur:a,samples:[...o]})})}async ingest(e,t,n,r){if(!e)return I;let i=r??yL(t),a=this.see(e)?.record;if(a&&i!==``&&a.transcriptStamp===i)return n.hits++,F(a);if(!t)return a?F(a):I;n.misses++;let o;try{o=await this.flight.run(`${e}:${i}`,async()=>{let n=this.sessions.get(e)?.record;return{prior:n,outcome:await this.refold(e,t,n)}})}catch(t){return L(`usage refold (${e}): ${t instanceof Error?t.message:String(t)}`)}let{prior:s,outcome:c}=o;if(c.kind!==`ok`)return c;let l={files:c.value.files,sessionInfo:c.value.sessionInfo,days:c.value.days,transcriptStamp:c.value.mainStamp,transcriptPath:t};return this.sessions.get(e)?.record===s&&(this.hold(e).record=l),F(l)}see(e){let t=this.sessions.get(e);return t&&(t.lastSeenAt=Date.now()),t}hold(e){let t=this.see(e);if(t)return t;let n={lastSeenAt:Date.now(),record:void 0,ring:[]};return this.sessions.set(e,n),n}async refold(e,t,n){let r=await Pz(e,d(t),n===void 0?void 0:new Set(n.files.keys())),i=new Map,a=``;for(let e of[t,...r]){let r=n?.files.get(e),o=await Uz(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 $z(r,l,s,c)),e===t&&(a=c.stamp)}return F({files:i,...eB(i),mainStamp:a})}ensureSeeded(e,t,n){this.seededDay!==e&&(this.seeded.clear(),this.seededDay=e);let r=t.join(`\0`),i=this.seeded.get(r);if(!i){let e=this.seed(t,`seed`),i={done:e,scanning:e,startedAtMs:n};return this.seeded.set(r,i),this.settle(r,i,e),e}return i.scanning===void 0&&n-i.startedAtMs>=this.rescanIntervalMs&&(i.startedAtMs=n,i.scanning=this.seed(t,`rescan`),this.settle(r,i,i.scanning)),i.done}settle(e,t,n){n.then(()=>{t.scanning=void 0},n=>{this.log(`warn`,`usageStore scan: ${n instanceof Error?n.message:String(n)}`),this.seeded.get(e)===t&&this.seeded.delete(e)})}async scanned(){await Promise.allSettled([...this.seeded.values()].map(e=>e.scanning))}async seed(e,t){let n=Date.now(),r=Zz(),i=await Nz(e),a=[];for(let e of i){let t;try{t=await CL(e)}catch{continue}for(let n of t){if(!n.endsWith(`.jsonl`))continue;let t=p(e,n),i;try{i=await TL(t)}catch{continue}i.mtimeMs<r||a.push({sessionId:n.slice(0,-6),path:t,stamp:bL(i)})}}let o={hits:0,misses:0};await tB(a,8,async e=>{let n=await this.ingest(e.sessionId,e.path,o,e.stamp);n.kind===`failed`&&this.log(`warn`,`usageStore ${t}: ${n.reason}`)}),this.log(`info`,`usageStore ${t} sessions=${a.length} read=${o.misses} dirs=${e.join(`,`)} ms=${Date.now()-n}`),this.scans[t]++}sweepStale(){let e=Date.now(),t=0,n=0,r=0;for(let[i,{lastSeenAt:a,record:o}]of this.sessions)if(!(e-a<=this.staleAgeMs)){if(o?.days.has(this.seededDay)){n++;continue}this.sessions.delete(i),t++,o===void 0&&r++}return t>0&&this.sweeps++,(t>0||n>0)&&this.log(`info`,`usageStore sweep dropped=${t} noRecord=${r} held=${n}`),t}close(){this.sweepTimer&&=(clearInterval(this.sweepTimer),null),this.sessions.clear(),this.seeded.clear()}},rB=class{thresholds={LOW:50,MEDIUM:80};getContextUsageThresholds(){return this.thresholds}ratioPercentages(e,t){let n=Math.min(100,Math.max(0,Math.round(e/t*100)));return{percentage:n,contextLeftPercentage:Math.max(0,100-n)}}calculateContextFromHookData(e){let t=e.context_window;if(!t?.current_usage)return D(`No current_usage in hook data, falling back to transcript parsing`),null;let n=t.current_usage,r=t.context_window_size,i=(n.input_tokens||0)+(n.cache_creation_input_tokens||0)+(n.cache_read_input_tokens||0);D(`Native current_usage: input=${n.input_tokens}, cache_create=${n.cache_creation_input_tokens}, cache_read=${n.cache_read_input_tokens}, total=${i} (limit: ${r})`);let a=this.ratioPercentages(i,r);return{totalTokens:i,maxTokens:r,percentage:t.used_percentage==null?a.percentage:Math.round(t.used_percentage),contextLeftPercentage:t.remaining_percentage==null?a.contextLeftPercentage:Math.round(t.remaining_percentage)}}async calculateContextTokensFromTranscript(e,t){try{D(`Calculating context tokens from transcript: ${e}`);let n=await zz(e);if(n.length===0)return D(`No entries in transcript`),I;let r=null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t&&t.message?.usage?.input_tokens&&t.isSidechain!==!0){r=t,D(`Context segment: Found most recent entry at ${t.timestamp.toISOString()}, stopping search`);break}}if(r?.message?.usage){let e=r.message.usage,n=(e.input_tokens||0)+(e.cache_read_input_tokens||0)+(e.cache_creation_input_tokens||0);return D(`Most recent main chain context: ${n} tokens (limit: ${t})`),F({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return D(`No main chain entries with usage data found`),I}catch(e){return L(`context transcript: ${e instanceof Error?e.message:String(e)}`)}}async getContextInfo(e){let t=this.calculateContextFromHookData(e);if(t)return F(t);let n=e.context_window?.context_window_size??2e5;return this.calculateContextTokensFromTranscript(e.transcript_path,n)}},iB=class{states=new Map;constructor(e,t,n=256){this.empty=e,this.step=t,this.maxSessions=n}async read(e,t){let n=this.states.get(e),r=yL(t);if(n&&r!==``&&n.cursor.stamp===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await Uz(t,n?.cursor);if(i.kind===`failed`)return i;if(i.kind===`absent`)return{kind:`ok`,value:n?.value??this.empty};let{entries:a,cursor:o,reset:s}=i.value,c=s||n===void 0?this.empty:n.value;for(let e of a)c=this.step(c,e);for(this.touch(e,{cursor:o,value:c});this.states.size>this.maxSessions;){let e=this.states.keys().next().value;if(e===void 0)break;this.states.delete(e)}return{kind:`ok`,value:c}}touch(e,t){this.states.delete(e),this.states.set(e,t)}};const aB={messageCount:0,nonPrompts:0,recent:[]},oB=new Set([`turn`,`interrupt`,`claude-code`]);function sB(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +(t.userEntry===`prompt`),nonPrompts:e.nonPrompts+ +!!oB.has(t.userEntry),recent:n.length>20?n.slice(-20):n}}function cB(e){let t=null,n=null;for(let r of e){let e=r.type||r.message?.role||r.message?.type;if(r.userEntry===`prompt`||r.userEntry===`turn`)t=r.timestamp;else if(e===`assistant`&&t){let e=(r.timestamp.getTime()-t.getTime())/1e3;e>.1&&e<300&&(n=e)}}return n}var lB=class{fold=new iB(aB,sB);async getMetricsInfo(e,t){if(D(`Getting metrics from hook data for session: ${e}`),!t.cost)return I;let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?L(`metrics (${e}): ${n.reason}`):F({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:cB(n.value.recent),sessionDuration:t.cost.total_duration_ms/1e3,messageCount:n.value.messageCount,nonPrompts:n.value.nonPrompts,linesAdded:t.cost.total_lines_added,linesRemoved:t.cost.total_lines_removed})}};const uB={command:null,todos:[],pending:[],done:[]};function dB(e,t){let n=e.findIndex(e=>e.name===t);return n<0?[...e,{name:t,count:1}]:e.map((e,t)=>t===n?{name:e.name,count:e.count+1}:e)}function fB(e,t){switch(t.userEntry){case`prompt`:return{...e,command:t.activity?.command??null,pending:[],done:[]};case`interrupt`:return{...e,pending:[]};case`turn`:case`tool-result`:case`claude-code`:case void 0:return e}}function pB(e,t){if(t.isSidechain)return e;let n=fB(e,t),r=t.activity;if(r===void 0)return n;let i=n.pending,a=n.done;r.started!==void 0&&(i=[...i,...r.started]);for(let e of r.finished??[]){let t=i.findIndex(t=>t.id===e);t<0||(a=dB(a,i[t].name),i=[...i.slice(0,t),...i.slice(t+1)])}return{...n,pending:i,done:a,todos:r.todos??n.todos}}function mB(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>dB(e,t.name),[]),done:e.done}}var hB=class{fold=new iB(uB,pB);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?L(`activity (${e}): ${n.reason}`):F(mB(n.value))}};function gB(e,t,n,r){return{bin:`tmux`,args:[`-S`,e.socket,...n],timeoutMs:2e3,category:t,stdinInput:r}}function _B(e,t){if(e.ok)return{kind:`ok`,stdout:e.stdout};if(e.reason===`rate-limited`)return{kind:`rate-limited`,reason:e.error??`rate-limited`};let n=e.error??[e.reason,e.stderr.trim()].filter(e=>e!==``).join(`: `);return{kind:`failed`,reason:`tmux ${t[0]} failed (${n})`}}function vB(e,t,n,r){return _B(Ne(gB(e,t,n,r)),n)}async function yB(e,t,n){return _B(await Me(gB(e,t,n)),n)}const bB=e=>`${e.socket}\n${e.pane}`;var xB=class{names=new Map;asking=new Gz;constructor(e=Date.now){this.now=e}getSessionName(e){let t=bB(e),n=this.names.get(t);if(n&&this.now()-n.at<3e4)return Promise.resolve(n.outcome);let r=this.asking.run(t,()=>this.ask(t,e));return n?Promise.resolve(n.outcome):r}async ask(e,t){D(`Getting tmux session name for pane ${t.pane} on ${t.socket}`);let n=await yB(t,`tmux`,[`display-message`,`-p`,`-t`,t.pane,`#S`]),r=n.kind===`ok`?n.stdout.trim():``,i=n.kind===`ok`?r?F(r):I:L(n.reason);for(this.names.delete(e),this.names.set(e,{outcome:i,at:this.now()});this.names.size>64;)this.names.delete(this.names.keys().next().value);return i}};const SB=e=>JSON.stringify([e.sessionId,e.projectDir,e.cwd,e.claudeConfigDir,e.env===void 0?null:tt.map(t=>e.env?.[t]??null)]);var CB=class{readings=new Map;inFlight=new Map;constructor(e,t=Date.now){this.edge=e,this.now=t}getCeiling(e){let t=SB(e),n=this.readings.get(t);if(n&&this.now()-n.at<1e4)return Promise.resolve(n.outcome);let r=this.inFlight.get(t)??this.fetch(t,e);return n?Promise.resolve(n.outcome):r}fetch(e,t){let n=this.edge.locate(t),r=(n.kind===`ok`?this.edge.read(n.value,t):Promise.resolve(n)).then(t=>{if(this.inFlight.get(e)!==r)return t;for(this.readings.delete(e),this.readings.set(e,{outcome:t,at:this.now()});this.readings.size>64;)this.readings.delete(this.readings.keys().next().value);return t}).finally(()=>{this.inFlight.get(e)===r&&this.inFlight.delete(e)});return this.inFlight.set(e,r),r}move(e,t){let n=this.edge.locate(e);if(n.kind!==`ok`)throw Error(n.kind===`failed`?n.reason:`memento is not installed or not enabled for this project`);let r=SB(e);try{this.edge.move(n.value,e,t)}finally{this.readings.delete(r),this.inFlight.delete(r),this.fetch(r,e)}}};function wB(e){return{gitProvider:new _T({watchers:e.watchers,logger:e.logger}),usageStore:new nB({logger:e.logger}),contextProvider:new rB,metricsProvider:new lB,activityProvider:new hB,tmuxService:new xB,mementoProvider:new CB(WL()),autoCompact:Lk,log:e.logger}}function TB(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}const EB={kind:`hidden`},DB={kind:`shown`};function OB(e,t){try{return TB(e,t)?DB:EB}catch(e){return{kind:`failed`,message:e instanceof Error?e.message:String(e)}}}function kB(e,t){let n=G.fromFragments(e);return n.end=``,n.overflow=`ignore`,t!==void 0&&!t.isNull&&(n.style=t),n}function AB(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:`…`}):e.cellLength<t&&e.align(n.justify,t)}function jB({lead:e,text:t,trail:n}){return[...e===void 0?[]:[e],t,...n===void 0?[]:[n]]}function MB({text:e,placement:t,lead:n,trail:r}){return{text:NB(e),placement:t,...n!==void 0&&{lead:NB(n)},...r!==void 0&&{trail:NB(r)}}}function NB(e){let t=e.blankCopy(e.plain);t.style=ih(e.style).clearMetaAndLinks();for(let{start:n,end:r,style:i}of e.spans)t.stylize(ih(i).clearMetaAndLinks(),n,r);return t}function PB(e){let t=jB(e);if(t.length===1)return e.text;let n=kB(t);return n.style=e.text.style,n}function FB(e,t){let{width:n,justify:r,truncate:i,baseStyle:a,padding:o,placement:s,lead:c=[],trail:l=[]}=t;if(e.length===0)return[];let u=kB(e,a).pad(o),d=new G(` `.repeat(o)),f={placement:s,...c.length>0&&{lead:kB([d,...c],a)},...l.length>0&&{trail:kB([...l,d],a)}};if(n===`auto`)return[{text:u,...f}];let p={justify:r,truncate:i};return n===`fill`?[{text:u,fill:p,...f}]:(AB(u,n,p),[{text:u,...f}])}const IB=RegExp(`\\x1b\\[[0-9;]*m|${Ul.source}`,`g`);function LB(e){return Math.max(0,...e.split(`
172
+ `).map(e=>R(e.replace(IB,``))))}function RB(e,t){let n=()=>e.map(e=>({owner:PB(e),placement:e.placement})),r=[];if(e.forEach(({fill:e},t)=>{e!==void 0&&r.push({at:t,how:e})}),r.length===0||!Number.isFinite(t.width))return n();let i=Oh(e.map(PB),t).split(`
173
+ `);if(i.length>1)return n();let a=Math.max(0,t.width-LB(i[0]??``)),o=Math.floor(a/r.length),s=a-o*r.length;return r.forEach(({at:t,how:n},i)=>{let a=o+(i===r.length-1?s:0),{text:c}=e[t];AB(c,c.cellLength+a,n)}),n()}function zB(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=BB(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e){let e={frag:a,style:ih(a.style)};if(e.style.link){i();let r=BB([e],t);r.plain.length>0&&n.push(r)}else r.push(e)}return i(),n}function BB(e,t){let n=t!==void 0&&!t.isNull?t:void 0,r=e.map(e=>VB(e.frag,n?n.add(e.style):e.style)),i=G.fromFragments(r);return i.end=``,i.overflow=`ignore`,r.length===1?i.style=r[0].style:n!==void 0&&(i.style=n),i}function VB(e,t){let n=e.copy();return n.style=t,n}function HB(e,t){if(e.look===void 0)throw Error(`${t} read the render's look before any render resolved one`);return e.look}function UB(e,t,n,r){let i=new Map,a=Object.entries(t);for(let[t,o]of[...a.filter(([,e])=>!(`do`in e)),...a.filter(([,e])=>`do`in e)])i.set(t,WB(e,t,o,n,r,i));return i}function WB(e,t,n,r,i,a){if(`set`in n){let e=r.get(n.set)??n.set;if(`to`in n)return{kind:`set-literal`,key:n.set,value:n.to,stateVar:e};if(`from`in n){let t=i_(n.from,i);return{kind:`set-option`,key:n.set,stateVar:e,options:[...t.members],paletteOf:t.paletteOf,library:t.library}}return`int`in n?{kind:`set-int`,key:n.set,stateVar:e}:`cycle`in n?{kind:`set-cycle`,key:n.set,stateVar:e,members:n.cycle}:{kind:`set-bounded`,key:n.set,by:n.by}}if(`persist`in n){let e=wa.get(n.persist)??n.persist;if(`to`in n)return{kind:`persist-literal`,key:n.persist,value:n.to,stateVar:e};if(`from`in n){let t=i_(n.from,i);return{kind:`persist-option`,key:n.persist,stateVar:e,options:[...t.members],paletteOf:t.paletteOf,library:t.library}}if(`cycle`in n)return{kind:`persist-cycle`,key:n.persist,stateVar:e,members:n.cycle};if(`removeSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`remove`,target:n.removeSegment}};if(`insertSegment`in n)return{kind:`layout-op`,key:n.persist,op:{op:`insert`,segment:n.insertSegment,anchor:n.anchor,relation:n.relation}};if(`insertSegmentFrom`in n){let e=i_(n.insertSegmentFrom,i);return{kind:`layout-op-option`,key:n.persist,anchor:n.anchor,relation:n.relation,options:[...e.members],paletteOf:e.paletteOf,library:e.library}}return{kind:`persist-bounded`,key:n.persist,by:n.by}}if(`copy`in n)return{kind:`copy`,text:qB(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:qB(e,n.open,t)};if(`reset`in n)return{kind:`reset`,key:n.reset};if(`doctor`in n)switch(n.doctor){case`run`:return{kind:`doctor-run`};case`fix`:return{kind:`doctor-fix`,check:n.check};case`mark`:return{kind:`doctor-mark`,check:n.check,mark:n.mark}}if(`ceiling`in n)return{kind:`ceiling`,args:yP(n)};if(`slash`in n)return{kind:`slash`,line:n.slash};if(`undo`in n)return{kind:`undo`};if(`redo`in n)return{kind:`redo`};if(`back`in n)return{kind:`back`};if(`rewind`in n)return{kind:`rewind`};if(`save`in n)return{kind:`save`};if(`preset`in n)return n.preset===`save`?{kind:`preset-save`}:{kind:`preset-delete`,name:qB(e,n.name,t)};if(`themeDefault`in n)return{kind:`theme-default-save`};let[o,...s]=n.do.map(e=>{let n=a.get(e);if(n===void 0)throw Error(`action "${t}" fires "${e}", which is not declared in this config`);return n});return{kind:`do`,head:o,rest:s}}function GB(e){return e.kind===`do`?GB(e.head):e}function KB(e){switch(GB(e).kind){case`set-option`:case`set-int`:case`persist-option`:case`layout-op-option`:return!0;case`set-literal`:case`set-bounded`:case`set-cycle`:case`copy`:case`open`:case`persist-literal`:case`persist-bounded`:case`persist-cycle`:case`reset`:case`layout-op`:case`undo`:case`redo`:case`back`:case`rewind`:case`save`:case`preset-save`:case`preset-delete`:case`theme-default-save`:case`doctor-run`:case`doctor-fix`:case`doctor-mark`:case`ceiling`:case`slash`:case`do`:return!1}}function qB(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function JB(e,t){return e.has(t)?I_(e.read(t)):``}function YB(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function XB(e,t,n,r){let i=new G(e,{style:H.combine([r,new H({link:t,bold:n})])});return i.overflow=`ignore`,i.end=``,i}function ZB(e,t,n=!1){let r=new H({link:t,bold:n?!0:void 0}),i=new G(e.plain,{style:H.combine([ih(e.style),r])});for(let t of e.spans)i.stylize(H.combine([ih(t.style),r]),t.start,t.end);return i.overflow=`ignore`,i.end=``,i}function QB(e,t){return Math.max(e.members.indexOf(JB(t,e.stateVar)),0)}function $B(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=JB(r,e.stateVar);return{effects:[{verb:yn,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=JB(r,e.stateVar);return{effects:[{verb:yn,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=JB(r,e.stateVar);return{effects:[{verb:yn,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(QB(e,r)+1)%e.members.length];return{effects:[{verb:yn,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:N,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:bn,args:[YB(e.text,Ow(r))]}],active:!1};case`open`:return{effects:[{verb:xn,args:[YB(e.target,Ow(r))]}],active:!1};case`persist-literal`:{let t=JB(r,e.stateVar);return{effects:[{verb:P,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=JB(r,e.stateVar);return{effects:[{verb:P,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(QB(e,r)+1)%e.members.length];return{effects:[{verb:P,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Tn,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:An,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:Mn,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Nn,args:[i]}],active:!1};case`back`:return{effects:[{verb:Pn,args:[i]}],active:!1};case`rewind`:return{effects:[{verb:Fn,args:[i]}],active:!1};case`save`:return{effects:[{verb:En,args:[i]}],active:!1};case`preset-save`:return{effects:[{verb:Dn,args:[i]}],active:!1};case`theme-default-save`:return{effects:[{verb:On,args:[i]}],active:!1};case`preset-delete`:return{effects:[{verb:kn,args:[i,YB(e.name,Ow(r))]}],active:!1};case`doctor-run`:return{effects:[{verb:Ln,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Rn,args:[i,e.check]}],active:!1};case`doctor-mark`:return{effects:[{verb:zn,args:[i,e.check,e.mark]}],active:!1};case`ceiling`:return{effects:[{verb:Vn,args:[i,...e.args]}],active:!1};case`slash`:return{effects:[{verb:Hn,args:[i,e.line]}],active:!1};case`layout-op`:return{effects:[{verb:jn,args:[i,e.key,nM(e.op)]}],active:!1};case`do`:{let a=$B(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>$B(e,t,void 0,r,i).effects)],active:a.active}}case`layout-op-option`:{let r={op:`insert`,segment:n??t,anchor:e.anchor,relation:e.relation};return{effects:[{verb:jn,args:[i,e.key,nM(r)]}],active:!1}}}}function eV(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:er(`action "${e}"`,n,t.members.length,QB(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]?.plain}}function tV(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}=eV(e,GB(r),t,i),s=JB(i,`session.id`),{effects:c,active:l}=$B(r,a.plain,o,i,s);return ZB(a,Gn(c),l)}function nV(e){return{action:{fn:(t,...n)=>tV(t,n,e),argTypes:[`string`,`liftable`],arity:{kind:`variadic`},returnType:`T`}}}function rV(e,t){return XB(`✕`,Gn([{verb:yn,args:[JB(e,`session.id`),t,Zn]}]),!1)}function iV(e,t,n){return new H({bgcolor:V.fromRgba(t),color:V.fromRgba(Np(e,t,n))})}function aV({tint:e,text:t}){return new H({bgcolor:V.fromRgba(e),color:V.fromRgba(t)})}function oV(e,t,n){return new H({color:V.fromRgba(sc(Cp(e,`warning`),t,Mp,n))})}function sV(e,t,n){return H.combine([iV(e,t,n),oV(e,t,n)])}function cV(e,t,n){return iV(e.palette,em(e.palette,e.disclosure,[t],n),n)}function lV(e){let t=V.fromRgba(Cp(e,`background`)),n=G.fromFragments(Xf.map(n=>new G(`▀`,{style:new H({color:V.fromRgba(Cp(e,n)),bgcolor:t})})));return n.overflow=`ignore`,n.end=``,n}const uV=(e,t)=>{let n=typeof e==`string`?new G(e,{style:t}):e;return n.overflow=`ignore`,n.end=``,n},dV=e=>new H({bold:e});function fV(e,t,n,r,i,a){if(r===void 0)return(n,r,a,o)=>uV(a,H.combine([cV(e,{...n,distribution:t},i),dV(o)]));let o=iV(e.palette,a,i);return(e,t,i,a)=>pV(i,H.combine([o,dV(a)]),r(t,n))}const pV=(e,t,n)=>uV(G.fromFragments([uV(e,t),uV(` `,t),lV(n)]));function mV(e,t){return t===void 0?(e,t,n)=>uV(n):(n,r,i)=>pV(i,void 0,t(r,e))}function hV(e,t,n,r,i){let a=iV(e.palette,i,r);return(e,r,i,o)=>uV(G.fromFragments([uV(o?`[`:` `,a),lV(n(r,t)),uV(o?`]`:` `,a)]))}function gV(e,t,n){let r=t.map(t=>({label:t.label,indices:e.flatMap((e,n)=>e.group===t.id?[n]:[])})).filter(e=>e.indices.length>0);if(r.reduce((e,t)=>e+t.indices.length,0)!==e.length){let n=new Set(t.map(e=>e.id)),r=e.flatMap((e,t)=>n.has(e.group)?[]:[`#${t} (group "${e.group}")`]);throw Error(`library: ${r.join(`, `)} name a group the domain does not list (${[...n].join(`, `)})`)}return n?r.flatMap(e=>_V(e.indices,8).map(t=>[{label:e.label,indices:t}])):[r]}function _V(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}function vV(e,t){return new G(e).truncate(t,{marker:`…`}).plain}function yV(e){return{current:null,drawnAt:e}}function bV(e,t,n,r,i,a,o){let s={segName:t,placementId:n,palette:r,disclosure:i,tint:a,text:o,bg:void 0,drops:[]};return e.current=s,s}function xV(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 SV(e){return new G(e).cellLength}function CV(e){return Math.max(1,e.width-e.chromeCols-2*e.padding)}function wV(e){return Math.max(1,CV(e)-(SV(`✕`)+2*e.padding+e.seamCols))}function TV(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 EV(e,t,n){let r=SV(`←`)+1+SV(`→`)+1,i=TV(e,t,n);return(i.length>1?TV(e,t,n+r):i).map(e=>[{label:``,indices:e}])}function DV(e,t){let n=[];for(let t of e)n.length>0&&n.push(new G(` `)),n.push(t);let r=G.fromFragments(n);return r.overflow=t?`ignore`:void 0,r.end=``,r}function OV(e,t,n,r,i){let a=e.compiled.get(t);if(!a||a.kind!==n)throw Error(`${i} references action "${t}" which must be ${r}, got ${a?`a ${a.kind} action`:`no such action`}`);return a}function kV(e,t,n){let r=e.compiled.get(t),i=r&&GB(r);if(!i||i.kind!==`set-option`&&i.kind!==`persist-option`&&i.kind!==`layout-op-option`)throw Error(`${n} references action "${t}" which must be a set-option, persist-option, or layout-op-option action ({ set, from }, { persist, from }, or { persist, insertSegmentFrom, anchor, relation }), got ${i?`a ${i.kind} action`:`no such action`}`);return i}function AV(e,t,n,r,i,a,o,s,c=[]){let l=a.compiled.get(e),u=a.store,d=JB(u,`session.id`),f=`stateVar`in t?JB(u,t.stateVar):void 0,p=(e,n)=>{let r=t.options[e];return o({index:e,count:t.options.length},r,n,r===f)},m=i?r.kind===`led`?wV(a):CV(a):1/0,h=(r.kind===`led`?0:SV(`✕`)+1)+c.reduce((e,t)=>e+SV(t.glyph)+1,0),g=t.library&&{groups:t.library.groups,entries:t.options.map(t.library.entry)},_=g===void 0?t.options.map((e,t)=>p(t,e)):[],v=g===void 0?EV(_.map(e=>e.cellLength),m,h):gV(g.entries,g.groups,i),y=parseInt(JB(u,n.stateVar),10),b=e=>Math.max(0,v.findIndex(t=>t.some(t=>t.indices.includes(e)))),x=b(f===void 0?-1:t.options.indexOf(f)),S=Number.isInteger(y)?y<0?x:Math.min(y,v.length-1):0,C=v[S]??[],ee=e=>Gn([{verb:yn,args:[d,n.key,String(e)]}]),te=r.kind===`led`?[]:[{verb:yn,args:[d,...r.writes.flatMap(([e,t])=>[e,t])]}],ne=r.kind===`own`&&r.onPick?te:[],re=e=>Gn([...$B(l,e,e,u,d).effects,...ne]),ie=(e,n)=>ZB(e,re(t.options[n])),ae=r.kind===`led`?[]:[XB(`✕`,Gn(te),!1,s)];ae.push(...c.map(({glyph:e,option:r})=>XB(e,Gn([...$B(l,r,r,u,d).effects,{verb:yn,args:[d,n.key,String(b(t.options.indexOf(r)))]}]),!1))),S>0&&ae.push(XB(`←`,ee(S-1),!1));let w=S<v.length-1?[XB(`→`,ee(S+1),!1)]:[];if(g===void 0){let e=C.flatMap(e=>e.indices);return[DV([...ae,...e.map(e=>ie(_[e],e)),...w],i)]}let T=new H({bold:!0}),oe=v.length>1?` ${S+1}/${v.length}`:``,E=C.length===1?[new G(`${C[0].label}${oe}`,{style:T})]:[],se=[DV([...ae,...E,...w],i)];for(let e of C){C.length>1&&se.push(DV([new G(e.label,{style:T})],i));let n=Math.max(...e.indices.map(e=>SV(t.options[e])));for(let r of e.indices){let e=t.options[r],a=g.entries[r].description,o=a===void 0?void 0:Hf(a),s=` `.repeat(n-SV(e)+2),c=o===void 0?e:`${e}${s}${o}`;se.push(DV([ie(p(r,vV(c,m)),r)],i))}}return se}function jV(e,t){return{picker:{fn:(n,r,i,a,o,...s)=>{Sw(`picker "${n}"`,[`closeOnPick`,`paged`,`inBody`],s);let c=OV(e,r,`set-int`,`an int action ({ set, int: true })`,`picker`);if(o===!0&&i===!0)throw Error(`{{ picker "${n}" … }} sets both closeOnPick and inBody; a picker in a body is closed by the body's ✕, so it has no close to fold into a pick`);let l=kV(e,n,`picker`);if(l.library!==void 0)throw Error(`{{ picker "${n}" … }} ranges a catalogue domain, which lays out as one row per member; a catalogue renders in a {{ menu }} body`);let u=xV(t,`{{ picker }}`);if(u.bg===void 0)throw Error(`{{ picker }} is not available while segments.${u.segName}'s own "bg:" is being evaluated — a picker is drawn on that background`);let[d]=AV(n,l,{key:c.key,stateVar:c.stateVar},o===!0?{kind:`led`}:{kind:`own`,writes:[[c.key,`-1`]],onPick:i===!0},a===!0,e,fV(u,dp(void 0),HB(e,`{{ picker }}`),l.paletteOf,t.drawnAt(),u.bg),oV(u.palette,u.bg,t.drawnAt()));return d},argTypes:[`string`,`string`,`bool`],arity:{kind:`variadic`},returnType:`T`}}}function MV(e,t){let n=e.length,r=Math.max(e.indexOf(t),0);return e=>((r+e)%n+n)%n}function NV(e,t,n,r,i){let a=Math.min(Math.floor((t-1)/2),i),o=n,s=0;for(;s<a;){let t=o+e(-(s+1))+1+e(s+1)+1;if(t>r)break;o=t,s+=1}return s}function PV(e,t,n,r,i,a){if(!(`stateVar`in t))throw Error(`carousel references action "${e}", which inserts a segment and holds no current value to centre on — a carousel needs a { set, from } or { persist, from } action`);let o=n.store;if(!o.has(t.stateVar))throw Error(`carousel references action "${e}", whose key "${t.stateVar}" no variable reads back, so there is no current value to centre on — declare { kind: "state", key: "${t.stateVar}" } among the variables`);let s=n.compiled.get(e),c=JB(o,`session.id`),{options:l}=t,u=l.length;if(u===0)return DV([],!0);let d=JB(o,t.stateVar),f=MV(l,d),p=e=>l[f(e)],m=new Map,h=e=>{let t=m.get(e);if(t!==void 0)return t;let n=Gn($B(s,p(e),p(e),o,c).effects);return m.set(e,n),n},g=e=>r({index:f(e),count:u},p(e),p(e),p(e)===d),_=new Map,v=e=>{let t=_.get(e);if(t!==void 0)return t;let n=ZB(g(e),h(e));return _.set(e,n),n},y=a===void 0?v(0):ZB(mV(HB(n,`{{ carousel }}`),t.paletteOf)({index:f(0),count:u},p(0),p(0),!1),Gn($B(n.compiled.get(a),p(0),void 0,o,c).effects)),b=NV(e=>v(e).cellLength,u,SV(`◀`)+1+y.cellLength+1+SV(`▶`),wV(n),i),x=e=>Array.from({length:b},(t,n)=>v(e*(n+1)));return DV([...x(-1).reverse(),XB(`◀`,h(-1),!1),y,XB(`▶`,h(1),!1),...x(1)],!0)}function FV(e,t){return{carousel:{fn:(n,...r)=>{let[i,a,...o]=r;if(Sw(`carousel "${n}"`,[`neighbours`,`centre`],o),i!==void 0&&!(Number.isInteger(i)&&i>=0))throw Error(`carousel "${n}": neighbours must be a whole number ≥ 0 (0 shows only ◀ CURRENT ▶), got ${String(i)}`);if(a!==void 0&&!(typeof a==`string`&&e.compiled.has(a)))throw Error(`carousel "${n}": centre must name a declared action, got ${JSON.stringify(a)}`);if(a!==void 0&&KB(e.compiled.get(a)))throw Error(`carousel "${n}": centre "${a}" writes a value the template binds, and the centre binds none — name an action that writes a fixed value, a cycle, or a do of them`);let s=i??1/0,c=kV(e,n,`carousel`),l=xV(t,`{{ carousel }}`);if(l.bg===void 0)throw Error(`{{ carousel }} is not available while segments.${l.segName}'s own "bg:" is being evaluated — a carousel is drawn on that background`);return PV(n,c,e,fV(l,dp(void 0),HB(e,`{{ carousel }}`),c.paletteOf,t.drawnAt(),l.bg),s,a)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function IV(e,t,n){let r=kV(e,t,n);if(!(`stateVar`in r))throw Error(`${n} references action "${t}", which inserts a segment and holds no current value — a ${n} needs a { set, from } or { persist, from } action`);if(r.paletteOf===void 0)throw Error(`${n} references action "${t}", whose options are not colour-valued — a swatch draws the palette an option puts in force, as the "themes", "placementThemes" and "styles" domains do`);return r}function LV(e,t,n){let r=Math.imul(e^e>>>16,73244475);return r=Math.imul(r^r>>>16,73244475),r^=r>>>16,(n+1+(r>>>0)%Math.max(t-1,1))%t}function RV(e,t,n,r){let i=IV(e,t,n),a=r??JB(e.store,i.stateVar);if(!i.options.includes(a))throw Error(`${n} "${t}": "${a}" is not one of its options, so it has no palette to draw`);return i.paletteOf(a,HB(e,`{{ ${n} }}`))}function zV(e,t,n){return{swatch:{fn:(t,...n)=>{let[r,...i]=n;if(Sw(`swatch "${t}"`,[`option`],i),r!==void 0&&typeof r!=`string`)throw Error(`swatch "${t}": option must be text, got ${JSON.stringify(r)}`);return lV(RV(e,t,`swatch`,r))},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`},swatches:{fn:(r,i)=>{let a=IV(e,r,`swatches`),o=OV(e,i,`set-int`,`an int action ({ set, int: true })`,`swatches`),s=xV(t,`{{ swatches }}`);if(s.bg===void 0)throw Error(`{{ swatches }} is not available while segments.${s.segName}'s own "bg:" is being evaluated — a swatch row is drawn on that background`);let c=t.drawnAt(),{options:l}=a,u=l.length,[d]=AV(r,a,{key:o.key,stateVar:o.stateVar},{kind:`led`},!0,e,hV(s,HB(e,`{{ swatches }}`),a.paletteOf,c,s.bg),oV(s.palette,s.bg,c),u===0?[]:(()=>{let t=MV(l,JB(e.store,a.stateVar));return[{glyph:`◀`,option:l[t(-1)]},{glyph:`?`,option:l[LV(n().getTime(),u,t(0))]},{glyph:`▶`,option:l[t(1)]}]})());return d},argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`T`}}}const BV=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function VV(e,t,n,r){let i=Gp(e,n,r),a=(t,n)=>({text:t,colour:n,ink:Np(e,n,r)});return[[op(t).map((n,i)=>{let a=wp(e,n);return{text:BV[i%BV.length],colour:a,ink:t.shade.text(e,n.hue,a,r)}})],[[a(`▾ open`,i.state),a(`menu`,i.plane)],[a(`warn`,Cp(e,`warning`)),a(`error`,Cp(e,`error`))]]]}function HV(e,t){let n=e.flatMap((e,t)=>e.map(({text:e,colour:n,ink:r},i)=>({gap:t>0&&i===0?` `:``,cell:new G(` ${e} `,{style:aV({tint:n,text:r})})}))),r=[],i=0;for(let{gap:e,cell:a}of n){if(i+=e.length+a.cellLength,i>t)break;e!==``&&r.push(new G(e)),r.push(a)}return r}function UV(e,t,n,r,i){let a=VV(e,t,n,r).map(e=>HV(e,i)),o=G.fromFragments(a.flatMap((e,t)=>t===0?e:[new G(`
174
+ `),...e]));return o.overflow=`ignore`,o.end=``,o}function WV(e,t){return{themePreview:{fn:(...n)=>{let[r,...i]=n;if(Sw(`themePreview`,[`applyAction`],i),r!==void 0&&typeof r!=`string`)throw Error(`themePreview: applyAction must name a declared action, got ${JSON.stringify(r)}`);let{palette:a,decor:o}=HB(e,`{{ themePreview }}`);return UV(r===void 0?a:RV(e,r,`themePreview`),o,{...xV(t,`{{ themePreview }}`).disclosure,depth:0},t.drawnAt(),wV(e))},argTypes:[`value`],arity:{kind:`variadic`},returnType:`T`}}}const GV=e=>e.slice(e.lastIndexOf(`.`)+1),KV=(e,t)=>{let n=new G(GV(e));return n.truncate(t,{marker:`…`}),n.plain};function qV(e,t){let n=e.map(e=>e.map(({name:e})=>SV(GV(e)))),r=e=>n.every(n=>n.reduce((t,n)=>t+Math.min(n,e)+2,0)<=t),i=Math.max(1,...n.flat());for(;i>1&&!r(i);)--i;return i}function JV(e,t,n,r){let i=qV(e,r),a=e.map(e=>{let a=[],o=0;for(let{name:s,address:c,palette:l}of e){let e=new G(` ${KV(s,i)} `,{style:aV(im(l,{kind:`bar`,decor:t,address:c},n))});if(o+=e.cellLength,o>r)break;a.push(e)}return a}),o=G.fromFragments(a.flatMap((e,t)=>t===0?e:[new G(`
175
+ `),...e]));return o.overflow=`ignore`,o.end=``,o}function YV(e,t){return{layoutPreview:{fn:()=>JV(e.layout(),HB(e,`{{ layoutPreview }}`).decor,t.drawnAt(),wV(e)),argTypes:[],arity:{kind:`exact`},returnType:`T`}}}function XV(e,t,n,r){let i=xV(r.activeSegment,`{{ menu }}`),a=r.action,o=dE(i.placementId,e,n.key),s=mE(o),c=uE(e),l=JB(a.store,o)===c,u=JB(a.store,`session.id`),d=l?Zn:c,f=XB(er(`{{ menu "${e}" }}`,t,2,+!!l),Gn([{verb:yn,args:[u,o,d,s,`0`]}]),!1);return i.drops.push(...l?(()=>{let t=r.activeSegment.drawnAt(),c=Gp(i.palette,i.disclosure,t).plane,l=kV(a,e,`menu`);return AV(e,l,{key:s,stateVar:s},{kind:`own`,writes:[[o,Zn],[s,`0`]],onPick:n.closeOnPick},n.paged,a,fV(i,n.distribution,HB(a,`{{ menu }}`),l.paletteOf,t,c),oV(i.palette,c,t))})():[]),f}const ZV=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function QV(e,t){let n=t[t.length-1],r=ZV(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:vE(r??{})}}function $V(e){return{menu:{fn:(t,...n)=>{let{displays:r,options:i}=QV(t,n);return XV(t,r,i,e)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function eH(e){let{value:t,max:n,width:r,filled:i,empty:a,colourAt:o}=e,s=tH(t,n,r),c=[];for(let e=0;e<r;e++){let t=e<s,l=t&&o!==void 0?o(e*n/r):void 0;c.push(new G(t?i:a,{style:l===void 0?void 0:new H({color:l})}))}let l=G.fromFragments(c);return l.end=``,l.overflow=`ignore`,l}function tH(e,t,n){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?0:Math.min(n,Math.max(0,Math.round(e/t*n)))}function nH(e){let t={fn:(()=>{let t=xV(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:[],arity:{kind:`exact`},returnType:`string`},n={fn:(()=>xV(e,`{{ tint }}`).tint.hex),argTypes:[],arity:{kind:`exact`},returnType:`string`},r={fn:((t,n)=>{let{palette:r}=xV(e,`{{ keptOn }}`),i=Qs(r,t),a=Qs(r,n),o=Ho(lc(i,B.TRUECOLOR),lc(a,B.TRUECOLOR)),s=Math.min(Mp,Math.max(o,3));return(cc(i,e.drawnAt(),(e,t)=>Ho(e,t(a))>=s)??i).hex}),argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`string`},i=cw(()=>xV(e,`{{ color }} / {{ ramp }} / {{ gauge }}`).palette),a={fn:((e,t,n,r,a,o,...s)=>{let c=o===void 0?void 0:[o,...rH(s)];return eH({value:e,max:t,width:n,filled:r,empty:a,colourAt:c===void 0?void 0:e=>String(i.ramp.fn(e,...c))})}),argTypes:[`float`,`float`,`int`,`string`,`string`,`string`],arity:{kind:`variadic`},returnType:`T`};return{...i,bgOf:t,tint:n,keptOn:r,gauge:a}}function rH(e){return e.flatMap(e=>{let t=e.indexOf(`:`),n=t<0?NaN:Number(e.slice(0,t));if(!Number.isFinite(n))throw Error(`{{ gauge }} stop "${e}" must be "<position>:<colour>", e.g. "80:error" or "80:#ff0000"`);return[n,e.slice(t+1)]})}function iH(e){let t=[],n=[];for(let r of e){if(!r.contains(`
169
176
  `)){n.push(r);continue}let e=r.split(`
170
- `);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function ZB(e){let t=new Map;return e.map(e=>{let n=`${e.place}.${e.band}`,r=t.get(n)??0;return t.set(n,r+1),{line:e,row:`${n}#${r}`}})}function QB(e,t){let n=[],r=[],i;for(let a of t)(a.band===`own`?n:r).push(a),i??=a.cells.find(t=>t.placement.id===e)?.placement.ground;return{drawing:i===void 0?null:{own:r.length===0?n:[],ground:i},deeper:r}}function $B(e){return{...e,cells:e.cells.map(Ez)}}function eV(e,t){let n=t.flatMap(e=>e.filter(e=>e.place===`above`)),r=t.map(e=>e.filter(e=>e.place===`flow`));return[...n,...tV(e,r)]}function tV(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?[]:[{cells:t.flatMap(e=>e[0]?.cells??[]),band:`own`,place:`flow`},...t.flatMap(e=>e.slice(1))]}}function nV(e,t){let n=(e,r)=>t(e)?e.kind===`segment`?[{cells:[{name:e.name,address:r,settings:e.settings}],band:`own`,place:`flow`}]:eV(e.direction,e.children.map((t,i)=>n(t,[...r,rV(e,i)]))):[];return n(e,[]).map(e=>[...e.cells])}function rV(e,t){return{index:t,count:e.children.length,distribution:e.distribution,axis:hh[e.direction]}}const iV={compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:vf(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,xh(t.path,n)))}},render(e,t){return t.gate.kind===`failed`&&t.gate.report(),eV(e.direction,e.children.map((n,r)=>t.renderChild(n,t.gate.kind===`shown`,rV(e,r))))}},aV={drop:e=>e.place,above:()=>`above`},oV={drop:(e,t)=>({lead:t(),stays:e}),above:e=>({lead:e.slice(0,1).flatMap(e=>e.cells),stays:e.slice(1)})},sV={compile(e,t){return{kind:`segment`,when:t.when,name:e.name,id:gh(e),settings:t.placementSettings(e),...e.opens!==void 0&&{opens:{open:t.parse(rr(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,Sh(t.path)),key:e.opens.ref.key,placement:e.opens.placement}},...e.lead!==void 0&&{lead:t.parse(e.lead,`lead`)},...e.trail!==void 0&&{trail:t.parse(e.trail,`trail`)}}},render:(e,t)=>t.placed(e.id,cV(e,t))};function cV(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.gate.kind===`hidden`)return[];let a=LC(t.scope,e.settings);if(t.gate.kind===`failed`)return lV(e,a,t,t.gate.message);try{if(!yz(i.when,a))return[];let n=oh(e.settings.theme,t.palette),o={id:e.id,effect:e.settings.effect,ground:CD(n)},s=e.opens!==void 0&&yz(e.opens.open,t.scope),{styles:c,fragments:l,lead:u,trail:d,drops:f,open:p}=t.evaluateSegment(e,a,n,t.region,{bg:i.bg,fg:i.fg,body:i.template,lead:e.lead,trail:e.trail},s),m=p?c.trigger:c.closed,h={width:r.width??`auto`,justify:r.justify??`left`,truncate:r.truncate??`right`,baseStyle:m,padding:t.padding,placement:o},g=e.opens,_=g===void 0?[]:t.renderBody(g.body,s,c.disclosure).map(e=>({...e,place:aV[g.placement](e)})),v=XB(jz(l,m)).map((e,t)=>({cells:kz(e,{...h,lead:t===0?jz(u,m):[],trail:t===0?jz(d,m):[]}),band:`own`,place:`flow`})),y=f.map(e=>({cells:kz(jz([e],c.band),{...h,baseStyle:c.band}),band:`deeper`,place:`flow`})),b=(e,t,n)=>kz(jz([e],t),{...h,width:`auto`,baseStyle:t,padding:n}),x=_.findIndex(e=>e.band===`own`),{lead:S,stays:C}=g!==void 0&&x!==-1?oV[g.placement](v,()=>b(t.closeDisclosure(g.key),c.close,t.padding)):{lead:[],stays:v},ee=S.flatMap(e=>b(new G(` `.repeat(Tz(e).reduce((e,t)=>e+t.cellLength,0))),c.trigger,0)),te=(e,t)=>e.band===`own`?t===x?S:ee:[],ne=_.map((e,t)=>({cells:[...te(e,t),...e.cells],band:`deeper`,place:e.place})),re=[...C,...y];return t.perSegmentSink!==void 0&&t.perSegmentSink.set(e.id,[...re.flatMap(e=>e.cells),..._.flatMap(te)].flatMap(Tz)),[...re,...ne]}catch(n){return lV(e,a,t,n.message??String(n))}}function lV(e,t,n,r){n.onSegmentError?.(e.id,r);let i=r.replace(/\s*\n\s*/g,` `);return[{cells:kz([new G(`⚠ ${e.id}: ${i}`,{end:``})],{width:`auto`,justify:`left`,truncate:`right`,padding:0,placement:{id:e.id,effect:`bar`,ground:CD(n.palette)},lead:uV(e.lead,e,t,n),trail:uV(e.trail,e,t,n)}),band:`own`,place:`flow`}]}function uV(e,t,n,r){if(e===void 0)return[];try{return r.evaluateSegment(t,n,r.palette,r.region,{bg:void 0,fg:void 0,body:e,lead:void 0,trail:void 0},!1).fragments}catch(e){return r.onSegmentError?.(t.id,e.message??String(e)),[]}}const dV={container:iV,segment:sV};function fV(e){return dV[e]}function pV(e){if(`ttl`in e)return{kind:`ttl`,durationMs:Mw(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 mV(e,t){switch(Eh(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 hV(e,t,n,r){switch(n.kind){case`literal`:e.declareLiteral(t,n.value);break;case`dropped`:e.declareFailedDocument(t,n.reason);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:pV(n.cache),parse:mV(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cwd:r,cache:pV(n.cache),parse:mV(n.parse,n.default)});break;case`template`:e.declareTemplate(t,n.template,{varDefault:n.default});break;case`time`:e.declareTime(t,{format:n.layout,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 gV(e,t){let n=C_.EMPTY;for(let[r,i]of Object.entries(t))try{n=e.parse(`{{ define "${r}" }}${i}{{ end }}`,n).defines()}catch(e){throw Error(`Template parse error in helpers.${r}: ${e.message}`,{cause:e})}return n}const _V=(e,t,n,r,i)=>{let a=fI(t,dI(n,e.themeDefaults));return{variation:ff[r??Yp(void 0,null,a.variation)],shade:uf[i??Qp(void 0,null,a.shade)]}};function vV(e,t,n){let r=n.cwd,i={store:t.variableStore,compiled:new Map,chromeCols:jm({endcaps:`powerline`,charset:Wp}),width:80,padding:1,seamCols:Mm({endcaps:`powerline`,charset:Wp}),layout:()=>[],look:void 0},a=dB(t.drawnAt),o={action:i,activeSegment:a},s=Object.keys(e.styles),c=ng(e.presets),l=PA(e),u=PC({extraFuncs:{...Jz(i),...CB(i,a),...DB(i,a),...IB(i,a),...jB(i,a,t.now),...VB(i,a),...GB(o),...JB(a),styles:{fn:()=>s,argTypes:[],arity:{kind:`exact`}},presets:{fn:()=>c,argTypes:[],arity:{kind:`exact`}}},clock:t.now,drawnAt:t.drawnAt}),d=gV(u,e.helpers),f=e=>u.parse(e,d),p=new Map,m=e=>{let t=p.get(e);if(t!==void 0)return t;let n=f(e);return p.set(e,n),n},h=new Map;for(let[t,n]of Ta)n in e.variables&&h.set(t,n);for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&!h.has(n.key)&&h.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`&&!h.has(r.key)&&h.set(r.key,`${t}.${e}`);i.compiled=Fz(f,e.actions,h,l);let g=[];for(let[n,i]of Object.entries(e.variables))try{hV(t,n,i,r)}catch(e){g.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{hV(t,`${n}.${e}`,a,r)}catch(t){g.push(`Variable "${n}.${e}": ${t.message??String(t)}`)}let _=Object.create(null);for(let[t,n]of Object.entries(e.segments)){let e=(e,n,r=f)=>{try{return r(e)}catch(e){throw Error(`Template parse error in segments.${t}.${n}: ${e.message}`,{cause:e})}};_[t]={when:n.when===void 0?void 0:e(n.when,`when`,m),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`)}}let v=(e,t,n)=>{try{return m(e)}catch(e){throw Error(`Template parse error in ${t}.${n}: ${e.message}`,{cause:e})}},y=t.variableStore,b=t=>{let n=Nh(e.segments[t.name]),r=Object.create(null);for(let[e,i]of Object.entries(n))Object.defineProperty(r,e,{enumerable:!0,get:()=>zh(t,e,i,e=>String(y.read(e.variable)))});return Object.freeze(r)},x=(e,t)=>{let n={path:t,when:e.when===void 0?void 0:v(e.when,t,`when`),parse:(e,n)=>v(e,t,n),compileChild:x,placementSettings:b};return fV(e.kind).compile(e,n)},S=new Map;for(let t of c){let{node:n,path:r}=ag(e,t);S.set(t,x(n,r))}let C=new Map(xp.map(e=>[e,new Map])),ee=[[`globals`,e.globals],...Object.entries(e.presets).map(([e,t])=>[`presets.${e}.globals`,t.globals??{}])];for(let[e,t]of ee)for(let n of xp){let r=t[n];if(!Sp(r))continue;let i=`${e}.${n}`,a=C.get(n),o=a.get(r);a.set(r,o===void 0?{where:i,template:yV(f,i,r)}:{where:`${o.where}, ${i}`,template:o.template})}return{segments:_,roots:S,activeSegment:a,menuRuntime:o,globalExpressions:C,loadWarnings:g}}function yV(e,t,n){try{return e(n)}catch(e){throw Error(`${t} is not a valid template: ${e instanceof Error?e.message:String(e)}`)}}function bV(e,t,n){let r=e.globalExpressions.get(t).get(n);if(r===void 0)throw Error(`the ${t} rule ${JSON.stringify(n)} reached the render but no compiled template exists — registerDslConfig and the resolution disagree about isExpression`);return r}function xV(e,t,n,r){try{return t.template.evaluate(n).map(e=>e.plain).join(``)}catch(n){return r({kind:`rule`,slot:e,message:jp(t.where,e,`the rule failed — ${n instanceof Error?n.message:String(n)}`)}),Ap[e]}}function SV(e,t){return e.kind===`decided`?e.name:Ap[t]}function CV(e){return e.kind===`container`?e.children.flatMap(CV):[...e.name.startsWith(`edit.`)?[]:[e.id],...e.opens===void 0?[]:CV(e.opens.body)]}function wV(e,t,n,r,i,a,o,s,c){let{perSegmentSink:l,onSegmentError:u,onRenderWarning:d}=s??{},f=e=>d?.(e),p=new Set;r.renderAt(a),r.drawAt(Kp(o.colorCompatibility));let{preset:m=eg}=c??{},h=og(e,m),g=c?.style??Dp(`none`,e.styles),_=c?.theme??fh(void 0,null,h.palette),v=_V(e,h,_,c?.variation,c?.shade),y=c?.effect??Ip(void 0,null,h.effect),b=(e,t,n)=>({...i,term:{cols:o.width},theme:{effective:e},style:{effective:t},effect:{effective:n}});r.applyInput(b(SV(_,`palette`),SV(g,`style`),SV(y,`effect`))),t.menuRuntime.action.chromeCols=jm(o),t.menuRuntime.action.padding=o.padding,t.menuRuntime.action.width=o.width,t.menuRuntime.action.seamCols=Mm(o);let x=FC(n),S=wp(_,e=>{let n=bV(t,`palette`,e);return dh(xV(`palette`,n,x,f),n.where,e=>f({kind:`rule`,slot:`palette`,message:e}))}),C=wp(g,n=>Dp(xV(`style`,bV(t,`style`,n),x,f),e.styles)),ee=wp(y,e=>Fp(xV(`effect`,bV(t,`effect`,e),x,f)));(S!==_||C!==g||ee!==y)&&r.applyInput(b(S.name,C.name,ee.name));let te=S.value,ne=ch(te,C.value);t.menuRuntime.action.look={basePalette:te,palette:ne,decor:v};let re=(c?.effects??new xm(``)).motion(ee.value,a,{transitions:c?.transitions??cm(void 0,null,h.transitions),source:{config:t,preset:m,revision:r.stateRevision(),width:o.width},returned:QB,hold:$B});l?.clear();let ie=n=>{let r=e.segments[n],i=t.segments[n];return r!==void 0&&i!==void 0?{seg:r,compiled:i}:void 0},ae=(e,n,i,a,o,s)=>{try{let c=r.drawnAt(),{tint:l,text:u,disclosure:d}=dp(i,a,c),f=fB(t.activeSegment,e.name,e.id,i,d,l,u),m=TD(f,c,o.bg,o.fg,n),h=()=>Qf(i,d,c);s&&(f.bg=h().state);let g=o.body.evaluate(n),_=f.drops.length>0||s;if(_){let e=h();f.bg=e.state;for(let t of e.shortfalls)p.add(t)}let v=o.lead?.evaluate(n)??[],y=o.trail?.evaluate(n)??[];return{styles:{closed:m,get trigger(){return Xz(i,h().state,c)},get band(){return Xz(i,h().plane,c)},get close(){return $z(i,h().state,c)},disclosure:d},fragments:g,lead:v,trail:y,drops:f.drops,open:_}}finally{t.activeSegment.current=null}},w=(e,t,r)=>{let i=t?Sz(e.when,x):bz,a=i.kind===`failed`?{...i,report:()=>{let t=`when over ${CV(e).join(`, `)||`no placement`}`;f({kind:`when`,where:t,error:i.message,message:`${t}: ${i.message} — what it gates is hidden`})}}:i,s={scope:x,palette:ne,gate:a,padding:o.padding,region:r,perSegmentSink:l,onSegmentError:u,evaluateSegment:ae,lookupSegment:ie,renderChild:(e,t,n)=>w(e,t,lp(r,n)),renderBody:(e,t,n)=>w(e,a.kind===`shown`&&t,up(n)),closeDisclosure:e=>Yz(n,e),placed:re.placed};return fV(e.kind).render(e,s)},T=t.roots.get(m);if(T===void 0)throw Error(`Preset "${m}" has no compiled layout — registerDslConfig compiles one per declared preset and effectivePresetName collapses unknown names to "${eg}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);let oe=e=>{let n=Sz(e.when,x);if(e.kind===`container`)return n.kind===`shown`;if(GA(e.name)===void 0)return!1;if(n.kind!==`shown`)return n.kind===`failed`;try{return yz(t.segments[e.name].when,LC(x,e.settings))}catch{return!0}};t.menuRuntime.action.layout=()=>nV(T,oe).map(e=>e.flatMap(({name:e,address:t,settings:n})=>{let r=GA(e);return r===void 0?[]:[{name:r,address:t,palette:oh(n.theme,ne)}]}));let E=ZB(w(T,!0,cp(v))).map(({line:e,row:t})=>{let n=Az(e.cells,o);return Im(n.map(e=>e.owner),o,re.row(t,n))}).join(`
171
- `);re.drawn();for(let e of p)f({kind:`band-floor`,message:e});for(let[e,t]of r.cachePolicyFaults())f({kind:`refresh`,variable:e,error:t.message,message:`variable "${e}" cannot refresh: ${t.message}`});return E}function*TV(e){yield*Object.entries(e.variables??{});for(let[t,n]of Object.entries(e.segments??{}))for(let[e,r]of Object.entries(n.vars??{}))yield[`${t}.${e}`,r]}function*EV(e){for(let t of Object.values(e.segments))for(let e of[t.template,t.bg,t.fg,t.when])e!==void 0&&(yield e);for(let t of ng(e.presets)){for(let n of bh(ag(e,t).node))n.when!==void 0&&(yield n.when);let n=og(e,t);for(let e of xp){let t=n[e];Sp(t)&&(yield t)}}for(let[,t]of TV(e))t.kind===`template`&&(yield t.template),Oh(t)&&`key`in t.cache&&(yield t.cache.key);for(let t of Object.values(e.actions))`copy`in t&&(yield t.copy),`open`in t&&(yield t.open),`preset`in t&&t.preset===`delete`&&(yield t.name)}function DV(e,t){return e===t||t.startsWith(`${e}.`)||e.startsWith(`${t}.`)}function OV(e,t){let n=new Set,r=new Set,i=new Set;for(let e of EV(t)){for(let r of Dg(e,t.helpers).keys())n.add(r);for(let{name:n}of jg(e,t.helpers))r.add(n);for(let n of Mg(e,t.helpers))i.add(n)}for(let[,e]of TV(t))if(Oh(e)&&`depends_on`in e.cache)for(let t of e.cache.depends_on)n.add(t);let a=new Set(r);for(let e of r){let n=t.actions[e];if(n!==void 0&&`do`in n)for(let e of n.do)a.add(e)}let o=new Set,s=new Set;for(let e of a){let n=t.actions[e];if(n!==void 0&&(`set`in n&&o.add(n.set),`insertSegment`in n&&s.add(n.insertSegment),`insertSegmentFrom`in n&&Array.isArray(n.insertSegmentFrom)))for(let e of n.insertSegmentFrom)s.add(e)}for(let e of ng(t.presets))for(let n of bh(ag(t,e).node))n.kind===`segment`&&s.add(n.name);let c=(e,t)=>[...n].some(t=>DV(t,e))||t.kind===`state`&&o.has(t.key),l=e=>[...e].filter(e=>!mT(e)),u=(e,t,n)=>l(t).filter(e=>!n(e)).map(t=>({kind:e,name:t})),d=new Map(TV(e));return[...u(`variable`,d.keys(),e=>c(e,d.get(e))),...u(`action`,Object.keys(e.actions??{}),e=>a.has(e)),...u(`helper`,Object.keys(e.helpers??{}),e=>i.has(e)),...u(`segment`,Object.keys(e.segments??{}),e=>s.has(e))]}var kV=class{kind=`box`;cell;lastChangedAt;constructor(e,t,n){this.name=e,this.type=t,FV(e,t,n,`initial value`),this.cell=Vg.observable.box(n,{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){FV(this.name,this.type,e,`set value`),!Object.is(this.cell.get(),e)&&(this.cell.set(e),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}},AV=class{kind=`computed`;cell;constructor(e,t,n){this.name=e,this.type=t,this.cell=(0,Vg.computed)(()=>{let e=n();return FV(this.name,this.type,e,`computed result`),e},{keepAlive:!0})}read(){return this.cell.get()}lastUpdatedMs(){return null}},jV=class{kind=`document`;cell;lastChangedAt;constructor(e,t){this.name=e,this.cell=Vg.observable.box(PV(t),{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){let t=PV(e);NV(this.cell.get(),t)||(this.cell.set(t),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}};function MV(e){return JSON.stringify(e)}function NV(e,t){return MV(e)===MV(t)}function PV(e){return e.kind===`ok`?{kind:`ok`,value:Hg(e.value)}:e}function FV(e,t,n,r){let i=Ug(n);if(i!==t)throw TypeError(`Variable "${e}": ${r} type ${i} does not match declared type ${t}`)}var IV=class{nodes=Vg.observable.map(void 0,{deep:!1});defineBox(e,t,n){this.declare(e,new kV(e,t,n))}defineDocument(e,t){this.declare(e,new jV(e,t))}defineComputed(e,t,n){let r=e=>this.read(e);this.declare(e,new AV(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,Vg.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,Vg.runInAction)(()=>n.set(t))}runInAction(e){(0,Vg.runInAction)(e)}has(e){return this.nodes.has(e)}getType(e){return this.requireVar(e).type}getKind(e){return this.requireNode(e).kind}changeKey(e){let t=this.requireNode(e);if(t.kind===`document`)return MV(t.read());try{return String(t.read())}catch(e){return`failed:${e instanceof Error?e.message:String(e)}`}}getNode(e){let t=this.requireNode(e);return t.kind===`document`?{name:t.name,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}:{name:t.name,type:t.type,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}}names(){return[...this.nodes.keys()]}requireNode(e){let t=this.nodes.get(e);if(!t)throw ReferenceError(`Unknown variable "${e}"`);return t}requireVar(e){let t=this.requireNode(e);if(t.kind===`document`)throw TypeError(`Variable "${e}" is a document; read its fields by path (.${e}.<field>)`);return t}declare(e,t){if(this.nodes.has(e))throw Error(`Variable "${e}" is already declared`);(0,Vg.runInAction)(()=>this.nodes.set(e,t))}};function LV(e,{plugins:t,config:n}){let{checkout:r,loaded:i,dropped:a,unreached:o}=t,s=r===null?`-`:`${r.git?`git`:`dir`}:${r.root}`,c=e=>{let t=QP(e),r=t===void 0?void 0:n.variables[eF(t)];return r?.kind===`file`?r.path:`none`};return`config load ${e.join(` < `)||`<default>`}: plugins loaded=${i.length} dropped=${a.length} unplaced=${o.length} checkout=${s}`+i.map(e=>` +${e} data=${c(e)}`).join(``)+a.map(e=>` -${e.path} (${e.reason})`).join(``)+o.map(e=>` ~${e.path} (${e.reason})`).join(``)}function RV(e,t,n){return e+`\0`+t+`\0`+(n??``)}function zV(e,t){return new Set(ng(e.presets).filter(n=>ag(e,n).path===`root`?t.root!==void 0:t.presets?.[n]?.root!==void 0))}function BV(e,t){let n=new Map,{roots:r,loaded:i,dropped:a,unreached:o}=e.state.plugins;for(let t of[...wF(e.projectDir,e.cwd,e.configFile),...r,...i,...[...a,...o].map(e=>e.path)]){let{dir:e,name:r}=Lg(t),i=n.has(e)?n.get(e):new Set;i?.add(r),n.set(e,i)}for(let e of r){let{dir:t,name:r,leaf:i}=Lg(l.join(e,`_`));i&&r===`_`&&n.set(t,null)}return{files:t,dirs:[...n.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>t===null?{path:e}:{path:e,filenames:[...t].sort()})}}function VV(e){return e.filter(Boolean).join(`
172
- `)||null}function HV(e,t,n,r,i=()=>{}){let{layers:a,config:o,installed:s}=RF(t.layers,sI,{entered:i,warned:e=>n.push(...e)},{projectDir:t.projectDir,cwd:e});i(a.length===1?a[0].path:null);let c=a.at(-1)?.config??sI,l=a.find(e=>e.path===t.home)?.raw??{},u=new IV,d=new $w(u,o.globals.default_empty_value??``,r.gitService,r.sessionState),f;try{f=vV(o,d,{cwd:e}),n.push(...f.loadWarnings),YL(o),mj(o)}catch(e){throw d.dispose(),e}return{config:o,store:u,registry:d,compiled:f,neededInputPaths:tL(o),lastRenderCellsBySegment:new Map,authoredRoots:zV(c,l),fileHeldSettings:FL(l),unused:[...new Map(a.flatMap(e=>OV(e.raw,c)).map(e=>[`${e.kind}:${e.name}`,e])).values()],plugins:{checkout:s.checkout,roots:s.roots,loaded:[...s.rendering.values()],dropped:[...s.dropped,...a.flatMap(e=>e.plugins.dropped)],unreached:s.unreached,reached:s.reached,rendering:s.rendering}}}function UV(e,t,n,r){let i=EF(e,t,n),a={layers:i.kind===`chain`?i.layers:[],home:i.home,projectDir:e},o=[jF(e,t),kF(i)],s,c=null;try{s=HV(t,a,o,r,e=>{c=e})}catch(e){return e instanceof aT&&o.push(...e.warnings),{layers:a.layers,home:a.home,failedFile:c,warning:VV(o),state:null,error:e instanceof aT||e instanceof Error?e.message:String(e)}}return{layers:a.layers,home:a.home,warning:VV(o),state:s,error:null}}function WV(e,t,n){return HV(e,{layers:[],home:``,projectDir:t},[],n)}var GV=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=RV(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=UV(e,t,n,this.deps);a.state!==null&&A(`info`,LV(a.layers,a.state));let o={projectDir:e,cwd:t,configFile:n,configLayers:[],configHome:``,failedFile:null,lastError:a.error,lastWarning:a.warning,state:a.state??WV(t,e,this.deps),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.watcher?.release(),this.entries.delete(t)}}return this.refreshWatcher(o,a),this.observers.onReload?.(o),o}reload(e,t,n){this.reloadInto(this.getOrCreate(e,t,n))}reloadInto(e){let t=UV(e.projectDir,e.cwd,e.configFile,this.deps);e.lastWarning=t.warning,e.lastError=t.error,t.state!==null&&(A(`info`,LV(t.layers,t.state)),e.state.registry.dispose(),e.state=t.state),this.refreshWatcher(e,t),this.observers.onReload?.(e)}refreshWatcher(e,t){e.configLayers=t.layers,e.configHome=t.home,e.failedFile=t.error===null?null:t.failedFile;let n=BV(e,t.layers),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){A(`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 KV=16384;var qV=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<KV){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%KV}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:Et,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},effectCache:e.effectCache,watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null,handlerProbes:e.handlerProbes}}};function JV(e,t,n){let r=(r,i,a)=>{let o=i.filter(t).map(t=>({key:t,before:e.get(r,t)}));a();for(let{key:t,before:i}of o)n(r,t,i,e.get(r,t))};return{get:(t,n)=>e.get(t,n),revision:t=>e.revision(t),set:(t,n,i)=>r(t,[n],()=>e.set(t,n,i)),setBatch:(t,n)=>r(t,n.map(e=>e.key),()=>e.setBatch(t,n)),clear:(t,n)=>r(t,[n],()=>e.clear(t,n))}}const YV={load:()=>({}),save:()=>{},flush:()=>{}};var XV=class{sessions;storage;head=0;atom=(0,Vg.createAtom)(`SessionState`);constructor(e=YV,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=new Map(Object.entries(this.storage.load()).map(([e,t])=>[e,{values:new Map(Object.entries(t)),revision:++this.head}])),this.evictOldest(),this.persist()}get(e,t){this.atom.reportObserved();let n=this.sessions.get(e);return n?(this.touch(e,n),n.values.get(t)??null):null}revision(e){return this.atom.reportObserved(),this.sessions.get(e)?.revision??0}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,Vg.runInAction)(()=>{let n=this.sessions.get(e)??{values:new Map,revision:0};t.some(({key:e,value:t})=>n.values.get(e)!==t)&&(n.revision=++this.head);for(let{key:e,value:r}of t)n.values.set(e,r);this.touch(e,n),this.evictOldest(),this.persist(),this.atom.reportChanged()})}clear(e,t){(0,Vg.runInAction)(()=>{let n=this.sessions.get(e);n&&(n.values.delete(t)&&(n.revision=++this.head),n.values.size===0?this.sessions.delete(e):this.touch(e,n)),this.persist(),this.atom.reportChanged()})}prune(e){(0,Vg.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,{values:n}]of this.sessions)e[t]=Object.fromEntries(n);return e}};function ZV(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 QV=class{timer=null;pending=null;constructor(e,t=500,n=Ft){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 ZV(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(l.dirname(this.filePath),{recursive:!0});let t=`${this.filePath}.tmp`;r.writeFileSync(t,JSON.stringify(e),{mode:384}),r.chmodSync(t,384),r.renameSync(t,this.filePath),this.pending=null}catch(e){this.logger(`warn`,`session-state save failed: ${e.message}`)}}};const $V={default_empty_value:`string`,default_separator:`string`,palette:`string`,style:`string`,effect:`string`,preset:`string`,endcaps:`string`,variation:`string`,shade:`string`,autoWrap:`boolean`,padding:`number`,charset:`string`,updateNotice:`boolean`,transitions:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},eH=new Set([`1`,`true`]),tH=new Set([`0`,`false`,``]);function nH(e,t){let n=DH(e),r=n.scope===`segment-palette`?`string`:$V[n.field];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(eH.has(t))return`true`;if(tH.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function rH(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function iH(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(l.dirname(e),{recursive:!0}),Ie(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function aH(e){return/^\s*$/.test(e)?null:wr(e)}function oH(e,t){return e!==null&&Er(e,t)!==void 0}function sH(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(sH),...i}}return e}function cH(e){if(!Kh(e))return sH(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,sH(t)])),...n}}const lH=aI,uH=lH.segments,dH=lH.presets,fH=lH.root;function pH(e,t,n,r){if(!oH(e,t)&&n===void 0)throw new K(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function mH(e,t){let n=eD(t);return t.scope===`segment-palette`&&pH(e,[`segments`,t.segment],uH[t.segment],n.join(`.`)),n}function hH(e){return wr(Pr(e))}function gH(){return Object.entries(fH.rows).map(([e,t])=>{let n=sH(t);return{path:[`root`],fragment:hH({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function _H(e,t){let n=e===null?void 0:Er(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function vH(e,t){if(t===void 0)return null;let n=cH(t);return{path:e,fragment:hH(n),unit:{path:e,value:n}}}function yH(e,t){let n=[`presets`,t],r=[...n,`root`],i=dH[t];pH(e,n,i,r.join(`.`));let a=_H(e,r)??vH(r,i?.root);return a!==null&&ti(a.fragment)?a:null}function bH(e,t){let n=ei(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 xH(e,t){return[...gH(),_H(e,[`root`]),yH(e,t)].filter(e=>e!==null).reduce(bH,new Map)}function SH(e,t,n){for(let{node:r,...i}of xH(e,t).values())if(ri(r,n))return i;throw new K(`${CH(e,t).join(`.`)} holds no placement "${n}" — the bar you clicked is stale (it reloads on the next render), or the action names a placement the layout never held`)}function CH(e,t){return yH(e,t)?.path??[`root`]}function wH(e,t){return t.scope===`preset-root`?CH(e,t.preset):eD(t)}function TH(e,{unit:t}){return t===null?e:Jr(e,t.path,Pr(t.value),Mr)}function EH(e){let t=$E(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function DH(e){let t=EH(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function OH(e,t,n,r,i){i(t,n,zH(t,r)),iH(t.path,r,e.logger),e.record(t.path,n,r)}function kH(e,t,n){let r=MH(e,t,n);if(r.length>0)throw new K(`refused: ${e.above.join(`, `)} sets ${r.join(`, `)} over ${e.path}, so this click would change nothing on the bar — edit it there`)}const AH=()=>{};function jH(e,t){try{return t()}catch(t){throw!(t instanceof K)||e.above.length===0?t:new K(`${t.message} — or it is declared by ${e.above.join(`, `)}, which the bar does not edit`)}}function MH(e,t,n){let r=NH(e,t);if(r===null)return[];let i=new Set(LH(IH(r),IH(n)));return LH(FH(e,r),FH(e,n)).filter(e=>!i.has(e))}function NH(e,t){try{return PH(e,t)}catch(e){if(e instanceof aT)return null;throw e}}function PH(e,t){return RF(t===null?e.above:[e.path,...e.above],sI,{entered:()=>{},warned:()=>{}},{projectDir:e.projectDir,cwd:e.cwd},n=>n===e.path&&t!==null?t:r.readFileSync(n,`utf8`))}function FH(e,t){let[n]=t.layers;return n?.path===e.path?n.config:t.base}function IH(e){return e.layers.at(-1)?.config??e.base}function LH(e,t,n=``){return!RH(e)||!RH(t)?JSON.stringify(e)===JSON.stringify(t)?[]:[n]:[...new Set([...Object.keys(e),...Object.keys(t)])].flatMap(r=>LH(e[r],t[r],n===``?r:`${n}.${r}`))}function RH(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zH(e,t){try{return PH(e,t)}catch(e){throw e instanceof aT?new K(`refused: the config file would not load after this click — ${e.message}`):e}}function BH(e,t){let n=DH(t),r=aH(rH(e)??``),i=r===null?void 0:Er(r,eD(n));return i!==void 0&&`value`in i?i.value:void 0}function VH(e,t,n){HH(e,t,n,[])}function HH(e,t,n,r){let i=rH(t.path),a=n.reduce((e,[t,n])=>Jr(e,mH(aH(e),DH(t)),nH(t,n),Mr),i??``);OH(e,t,i,jH(t,()=>UH(a,t.path,r,e=>e)),kH)}function UH(e,t,n,r){return n.reduce((e,{preset:n,id:i,setting:a,value:o})=>{let s=r(e,n,i),c=SH(aH(s),n,i),l=si(TH(s,c),c.path,i,a,Pr(o));if(l===null)throw new K(`${c.path.join(`.`)} in ${t} has no placement "${i}" — the bar you clicked is stale (it reloads on the next render)`);return l},e)}function WH(e,t,n){let r=aH(e),i=[`presets`,t,`root`];for(let[a,{path:o,unit:s,node:c}]of xH(r,t)){if(!ri(c,n))continue;if(i.every((e,t)=>o[t]===e))return e;let l=s===null?Or(e,c):Pr(s.value);if(a!==`#`)return Jr(e,[...i,`rows`,a],l,Mr);if(yH(r,t)!==null)throw new K(`cannot give preset "${t}" its own copy of ${o.join(`.`)}: it already stages rows of its own over that tree`);return Jr(e,i,l,Mr)}return e}function GH(e,t){return Xr(e,t,t[0]===`presets`&&t.length>2&&!lI(t[1])?2:0)}function KH(e,t,n){let r=n.map(EH),i=rH(t.path);if(i===null)return;let a=r.reduce((e,t)=>GH(e,wH(aH(e),t)),i);a!==i&&OH(e,t,i,a,AH)}function qH(e){let t=e===null?void 0:Er(e,[`presets`]);return t?.kind===`object`?t.entries.map(e=>e.key):[]}function JH(e,t){let n=new Set([...cI,...qH(e),...t.above.flatMap(e=>Object.keys(_r.default.parse(r.readFileSync(e,`utf8`)).presets??{}))].map(iT));return Array.from({length:n.size+1},(e,t)=>`custom-${t+1}`).find(e=>!n.has(iT(e)))}function YH(e,t,n,r,i,a){let o=rH(t.path),s=aH(o??``),c=JH(s,t),l=[`presets`,c],u=jH(t,()=>yH(s,n)),d=[...u===null?[]:[[[...l,`root`],u.unit===null?Or(o??``,u.fragment):Pr(u.unit.value)]],...Object.keys(r).length===0?[]:[[[...l,`globals`],Pr(r)]]],f=i.map(([e,t])=>{let n=QE(c,e);return[mH(s,DH(n)),nH(n,t)]}),p=[...d,...f].reduce((e,[t,n])=>Jr(e,t,n,Mr),Jr(o??``,l,`{}`,Mr));return OH(e,t,o,jH(t,()=>UH(p,t.path,a.map(e=>({...e,preset:c})),WH)),kH),c}function XH(e,t,n,r){let i=rH(t.path);OH(e,t,i,Jr(i??``,[`themeDefaults`,n],Pr(r),Mr),kH)}function ZH(e,t,n){if(lI(n))throw new K(`cannot delete preset "${n}": it is bundled — reset its settings instead`);let r=[`presets`,n],i=rH(t.path),a=aH(i??``);if(i===null||a===null||Er(a,r)===void 0)throw new K(`cannot delete preset "${n}": ${t.path} declares no ${r.join(`.`)} — the bar you clicked is stale; it reloads on the next render`);let o=Er(a,[`globals`,`preset`]);OH(e,t,i,[r,...o?.kind===`string`&&o.value===n?[[`globals`,`preset`]]:[]].reduce((e,t)=>GH(e,t),i),AH)}function QH(e,t,n,r){let i=EH(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=rH(t.path),o=r.op===`remove`?r.target:r.anchor,s=jH(t,()=>SH(aH(a??``),i.preset,o)),c=TH(a??``,s),{after:l,placed:u}=$H(c,s.path,r,()=>{let e=zH(t,c).config;return ng(e.presets).map(t=>ag(e,t).node)});if(l===null)throw new K(`${s.path.join(`.`)} in ${t.path} has no placement "${o}" — the bar you clicked is stale (it reloads on the next render), or the action names a placement the layout never held`);return OH(e,t,a,l,kH),u}function $H(e,t,n,r){switch(n.op){case`remove`:return{after:ai(e,t,n.target),placed:null};case`insert`:{let i=tj(n.segment,n.anchor,r());return{after:oi(e,t,i,n.anchor,n.relation),placed:i}}}}const eU={load:()=>({}),save:()=>{}},tU=new Set(xa.map(e=>e.sessionKey)),nU=e=>tU.has(e)||e.startsWith(dD),rU=8*1024*1024,iU={past:[],future:[]},aU=e=>e.kind===`session`?`session:${e.key}`:`file:${e.file}`;var oU=class{state=new Map;constructor(e,t,n=eU){this.sessionState=e,this.logger=t,this.storage=n,this.state=new Map(Object.entries(n.load()))}useStorage(e){this.storage=e,this.state=new Map(Object.entries(e.load()))}depth(e){let{past:t,future:n,savepoint:r}=this.state.get(e)??iU;return{undo:t.length,redo:n.length,sinceEdit:r?.net.length??0}}history(e){return this.state.get(e)??iU}begin(){let e=new Map,t=(t,n)=>{let r=e.get(t)??new Map,i=r.get(aU(n));r.set(aU(n),i===void 0?n:{...n,before:i.before}),e.set(t,r)},n=new Map;return{sessionState:JV(this.sessionState,e=>nU(e)||e===`edit.mode`,(e,r,i,a)=>{if(r===`edit.mode`){let t=n.get(e);n.set(e,{before:t===void 0?i:t.before,after:a});return}t(e,{kind:`session`,key:r,before:i,after:a})}),file:(e,n,r,i)=>t(e,{kind:`file`,file:n,before:r,after:i}),commit:()=>{let t=new Map(e),r=new Map(n);e.clear(),n.clear();for(let e of new Set([...t.keys(),...r.keys()])){let n=[...t.get(e)?.values()??[]].filter(e=>e.before!==e.after),i=this.history(e),a=n.length===0?i:mU(i,n),o=r.get(e),s=o===void 0?a:vU(a,o);s!==i&&this.put(e,s)}}}}undo(e){let t=this.history(e),n=t.past.at(-1);if(n===void 0)throw new K(`undo: nothing to undo`);return this.apply(e,n,`before`,`undo`,gU(t,n)),n}rewind(e){let t=this.history(e),{savepoint:n}=t;if(n===void 0)throw new K(`rewind: edit mode has no savepoint — nothing to cancel`);let r=n.net.filter(t=>this.read(e,t)!==t.after),i=new Set(r.map(aU)),a=n.net.filter(e=>!i.has(aU(e))),o=lU(yU(_U(t,n),i));if(this.apply(e,a,`before`,`rewind`,{past:o,future:[],savepoint:{at:o.length,net:[],below:[]}}),r.length>0)throw new K(`rewind: ${r.map(xU).join(`, `)} changed since edit mode opened — kept as it is; everything else edit mode changed was put back`);return a}redo(e){let t=this.history(e),{past:n,future:r}=t,i=r.at(-1);if(i===void 0)throw new K(`redo: nothing to redo`);let a=[...n,i],o=lU(a);return this.apply(e,i,`after`,`redo`,{past:o,future:r.slice(0,-1),...dU(t.savepoint,a.length-o.length,i)}),i}apply(e,t,n,r,i){let a=n===`before`?`after`:`before`,o=t.filter(t=>this.read(e,t)!==t[a]);if(o.length>0){let t=new Set(o.map(aU)),{past:n,future:i,savepoint:a}=this.history(e);throw this.put(e,{past:yU(n,t),future:yU(i,t),...a!==void 0&&{savepoint:{at:yU([...n,...[...i].reverse()].slice(0,a.at),t).length,net:a.net.filter(e=>!t.has(aU(e))),below:yU(a.below,t)}}}),new K(`${r}: ${o.map(xU).join(`, `)} changed since that edit — refusing to overwrite it; this session's undo history no longer steps it`)}let s=[];try{for(let r of t)this.write(e,r,r[n]),s.push(r);this.put(e,i)}catch(t){try{for(let t of s.reverse())this.write(e,t,t[a])}catch(e){throw Error(`${t.message}; and putting the step back failed, so it is half-applied: ${e.message}`)}throw t}}read(e,t){return t.kind===`session`?this.sessionState.get(e,t.key):rH(t.file)}write(e,t,n){t.kind===`file`?iH(t.file,n,this.logger):n===null?this.sessionState.clear(e,t.key):this.sessionState.set(e,t.key,n)}put(e,t){let n=new Map(this.state);for(n.delete(e),(t.past.length>0||t.future.length>0||t.savepoint!==void 0)&&n.set(e,t);n.size>32||sU(n)>rU;){let[e,t]=n.entries().next().value;n.size>1?n.delete(e):t.past.length+t.future.length>0?n.set(e,cU(t)):(this.logger(`warn`,`settings-history: edit mode's changes for session ${e} exceed ${rU} bytes; cancel is no longer available`),n.delete(e))}this.storage.save(Object.fromEntries(n)),this.state=n}};function sU(e){let t=0;for(let{past:n,future:r,savepoint:i}of e.values())for(let e of[...n,...r,...i===void 0?[]:[i.net,...i.below]])for(let n of e)t+=(n.before?.length??0)+(n.after?.length??0);return t}function cU({past:e,future:t,savepoint:n}){return e.length>0?{past:e.slice(1),future:t,...dU(n,1,[])}:{past:e,future:t.slice(1),...dU(n,0,[])}}function lU(e){return e.slice(-50)}const uU=e=>e===pD.member;function dU(e,t,n){return e===void 0?{}:{savepoint:{at:Math.max(0,e.at-t),net:fU(e.net,n),below:e.below}}}function fU(e,t){let n=new Map(e.map(e=>[aU(e),e]));for(let e of t){let t=n.get(aU(e));n.set(aU(e),t===void 0?e:{...t,after:e.after})}return[...n.values()].filter(e=>e.before!==e.after)}const pU=e=>e.map(e=>({...e,before:e.after,after:e.before}));function mU(e,t){let n=[...e.past,t],r=lU(n),{savepoint:i}=e,a=i===void 0?0:Math.max(0,i.at-e.past.length);return{past:r,future:[],...dU(i&&{at:Math.min(i.at,e.past.length),net:i.net,below:[...hU(e.future,a),...i.below]},n.length-r.length,t)}}function hU(e,t){let n=Math.min(t,e.length);return e.slice(e.length-n).reverse()}function gU(e,t){return{past:e.past.slice(0,-1),future:lU([...e.future,t]),...dU(e.savepoint,0,pU(t))}}function _U(e,t){let{past:n,future:r}=e,i=n.slice(0,t.at);return[...i,...hU(r,t.at-i.length),...t.below]}function vU(e,t){if(uU(t.after)&&!uU(t.before))return{...e,savepoint:{at:e.past.length,net:[],below:[]}};if(!uU(t.after)&&uU(t.before)){let{past:t,future:n}=e;return{past:t,future:n}}return e}function yU(e,t){return e.map(e=>e.filter(e=>!t.has(aU(e)))).filter(e=>e.length>0)}function bU(e){return e.map(xU).join(`, `)}function xU(e){return e.kind===`session`?`session setting "${e.key}"`:e.file}function SU(e){if(typeof e!=`object`||!e)return!1;let t=e,n=e=>e===null||typeof e==`string`;return(t.kind===`session`&&typeof t.key==`string`||t.kind===`file`&&typeof t.file==`string`)&&n(t.before)&&n(t.after)}function CU(e){return Array.isArray(e)&&e.every(e=>Array.isArray(e)&&e.every(SU))}function wU(e){if(typeof e!=`object`||!e)return!1;let t=e;return Number.isInteger(t.at)&&t.at>=0&&Array.isArray(t.net)&&t.net.every(SU)&&CU(t.below)}function TU(e){if(typeof e!=`object`||!e)return!1;let t=e;return CU(t.past)&&CU(t.future)&&(t.savepoint===void 0||wU(t.savepoint))}function EU(e,t){let n=e=>e.kind===`file`||nU(e.key)?!0:(t.add(e.key),!1),r=e=>e.map(e=>e.filter(n)).filter(e=>e.length>0),{savepoint:i}=e,a=r(e.past),o=r(e.future);return i===void 0?{past:a,future:o}:{past:a,future:o,savepoint:{at:r(e.past.slice(0,i.at)).length,net:i.net.filter(n),below:r(i.below)}}}function DU(e,t){return{load:()=>{let n;try{n=r.readFileSync(e,`utf8`)}catch(e){let n=e.code;return n!==`ENOENT`&&t(`warn`,`settings-history read failed (${n}); starting empty`),{}}try{let e=JSON.parse(n);if(typeof e==`object`&&e&&!Array.isArray(e)&&Object.values(e).every(TU)){let n=new Set,r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,EU(t,n)]));return n.size>0&&t(`warn`,`settings-history load: dropped the changes to ${[...n].map(e=>`"${e}"`).join(`, `)}, no longer a setting`),r}}catch{}return t(`warn`,`settings-history load: unexpected shape, starting empty`),{}},save:n=>{try{r.mkdirSync(l.dirname(e),{recursive:!0}),Ie(e,JSON.stringify(n),384)}catch(e){let n=`settings-history write failed — the change landed but is not undoable: ${e.message}`;throw t(`error`,n),Error(n)}}}}const OU=e=>!nU(e)&&!CO(e)&&e!==`update.dismissed`;var kU=class{past=new Map;depth(e,t,n){return this.restorable(e,t,n).length}restorable(e,t,n){let r=new Map,i=n=>r.has(n)?r.get(n):t.get(e,n),a=[];for(let t of[...this.past.get(e)??[]].reverse())if(t.every(e=>i(e.key)===e.after&&(e.before===null||n.validate(e.key,e.before).ok))){a.unshift(t);for(let e of t)r.set(e.key,e.before)}return a}begin(e){let t=new Map;return{sessionState:JV(e,OU,(e,n,r,i)=>{let a=t.get(e)??new Map,o=a.get(n);a.set(n,{key:n,before:o?o.before:r,after:i}),t.set(e,a)}),commit:()=>{for(let[e,n]of t){let t=[...n.values()].filter(e=>e.before!==e.after);t.length>0&&this.push(e,t)}t.clear()}}}back(e,t,n){let r=this.past.get(e)??[],i=this.restorable(e,t,n),a=i.at(-1),o=r.length-i.length;if(a===void 0)throw this.put(e,i),new K(`back: nothing to go back to${o>0?` (${o} step(s) over a view since gone, discarded)`:``}`);return(0,Vg.runInAction)(()=>{let n=a.flatMap(({key:e,before:t})=>t===null?[]:[{key:e,value:t}]);n.length>0&&t.setBatch(e,n);for(let{key:n,before:r}of a)r===null&&t.clear(e,n)}),this.put(e,i.slice(0,-1)),{step:a,discarded:o}}push(e,t){let n=this.past.get(e)??[];this.put(e,[...n,t].slice(-20))}put(e,t){for(this.past.delete(e),t.length>0&&this.past.set(e,t);this.past.size>32;)this.past.delete(this.past.keys().next().value)}};const AU=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function jU(e,t){let n=e=>({kind:`failed`,reason:`${t} ${e}`}),r;try{r=JSON.parse(e)}catch(e){return n(`is not JSON: ${e.message}`)}if(!AU(r))return n(`is not an object`);for(let[e,t]of Object.entries(r)){if(!AU(t))return n(`holds ${JSON.stringify(e)} as something other than its sightings`);for(let[e,r]of Object.entries(t))if(!JD.includes(r))return n(`marks ${JSON.stringify(e)} ${JSON.stringify(r)}, not ${JD.join(` or `)}`)}return{kind:`ok`,value:r}}function MU(e,t,n,r){return{...e,[t]:{...e[t],[n]:r}}}function NU(e=l.join(Re(),`doctor-marks.json`)){let t=()=>{let t;try{t=r.readFileSync(e,`utf8`)}catch(t){return t.code===`ENOENT`?{kind:`ok`,value:{}}:{kind:`failed`,reason:`${e}: ${t.message}`}}return jU(t,e)};return{read:t,record:(n,i,a)=>{let o=t();if(o.kind===`failed`)throw Error(`doctor: the mark book could not be read: ${o.reason}`);r.mkdirSync(l.dirname(e),{recursive:!0}),Ie(e,`${JSON.stringify(MU(o.value,n,i,a),null,2)}\n`)}}}var PU=class extends Error{constructor(e){super(`the doctor looked at ${e} less than a second ago — click again`),this.name=`DoctorBusy`}};
177
+ `);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function aH(e){let t=new Map;return e.map(e=>{let n=`${e.place}.${e.band}`,r=t.get(n)??0;return t.set(n,r+1),{line:e,row:`${n}#${r}`}})}function oH(e,t){let n=[],r=[],i;for(let a of t)(a.band===`own`?n:r).push(a),i??=a.cells.find(t=>t.placement.id===e)?.placement.ground;return{drawing:i===void 0?null:{own:r.length===0?n:[],ground:i},deeper:r}}function sH(e){return{...e,cells:e.cells.map(MB)}}function cH(e,t){let n=t.flatMap(e=>e.filter(e=>e.place===`above`)),r=t.map(e=>e.filter(e=>e.place===`flow`));return[...n,...lH(e,r)]}function lH(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?[]:[{cells:t.flatMap(e=>e[0]?.cells??[]),band:`own`,place:`flow`},...t.flatMap(e=>e.slice(1))]}}function uH(e,t){let n=(e,r)=>t(e)?e.kind===`segment`?[{cells:[{name:e.name,address:r,settings:e.settings}],band:`own`,place:`flow`}]:cH(e.direction,e.children.map((t,i)=>n(t,[...r,dH(e,i)]))):[];return n(e,[]).map(e=>[...e.cells])}function dH(e,t){return{index:t,count:e.children.length,distribution:e.distribution,axis:sg[e.direction]}}const fH={compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:dp(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,pg(t.path,n)))}},render(e,t){return t.gate.kind===`failed`&&t.gate.report(),cH(e.direction,e.children.map((n,r)=>t.renderChild(n,t.gate.kind===`shown`,dH(e,r))))}},pH={drop:e=>e.place,above:()=>`above`},mH={drop:(e,t)=>({lead:t(),stays:e}),above:e=>({lead:e.slice(0,1).flatMap(e=>e.cells),stays:e.slice(1)})},hH={compile(e,t){return{kind:`segment`,when:t.when,name:e.name,id:cg(e),settings:t.placementSettings(e),...e.opens!==void 0&&{opens:{open:t.parse(rr(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,mg(t.path)),key:e.opens.ref.key,placement:e.opens.placement}},...e.lead!==void 0&&{lead:t.parse(e.lead,`lead`)},...e.trail!==void 0&&{trail:t.parse(e.trail,`trail`)}}},render:(e,t)=>t.placed(e.id,gH(e,t))};function gH(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.gate.kind===`hidden`)return[];let a=Aw(t.scope,e.settings);if(t.gate.kind===`failed`)return _H(e,a,t,t.gate.message);try{if(!TB(i.when,a))return[];let n=Qh(e.settings.theme,t.palette),o={id:e.id,effect:e.settings.effect,ground:gO(n)},s=e.opens!==void 0&&TB(e.opens.open,t.scope),{styles:c,fragments:l,lead:u,trail:d,drops:f,open:p}=t.evaluateSegment(e,a,n,t.region,{bg:i.bg,fg:i.fg,body:i.template,lead:e.lead,trail:e.trail},s),m=p?c.trigger:c.closed,h={width:r.width??`auto`,justify:r.justify??`left`,truncate:r.truncate??`right`,baseStyle:m,padding:t.padding,placement:o},g=e.opens,_=g===void 0?[]:t.renderBody(g.body,s,c.disclosure).map(e=>({...e,place:pH[g.placement](e)})),v=iH(zB(l,m)).map((e,t)=>({cells:FB(e,{...h,lead:t===0?zB(u,m):[],trail:t===0?zB(d,m):[]}),band:`own`,place:`flow`})),y=f.map(e=>({cells:FB(zB([e],c.band),{...h,baseStyle:c.band}),band:`deeper`,place:`flow`})),b=(e,t,n)=>FB(zB([e],t),{...h,width:`auto`,baseStyle:t,padding:n}),x=_.findIndex(e=>e.band===`own`),{lead:S,stays:C}=g!==void 0&&x!==-1?mH[g.placement](v,()=>b(t.closeDisclosure(g.key),c.close,t.padding)):{lead:[],stays:v},ee=S.flatMap(e=>b(new G(` `.repeat(jB(e).reduce((e,t)=>e+t.cellLength,0))),c.trigger,0)),te=(e,t)=>e.band===`own`?t===x?S:ee:[],ne=_.map((e,t)=>({cells:[...te(e,t),...e.cells],band:`deeper`,place:e.place})),re=[...C,...y];return t.perSegmentSink!==void 0&&t.perSegmentSink.set(e.id,[...re.flatMap(e=>e.cells),..._.flatMap(te)].flatMap(jB)),[...re,...ne]}catch(n){return _H(e,a,t,n.message??String(n))}}function _H(e,t,n,r){n.onSegmentError?.(e.id,r);let i=r.replace(/\s*\n\s*/g,` `);return[{cells:FB([new G(`⚠ ${e.id}: ${i}`,{end:``})],{width:`auto`,justify:`left`,truncate:`right`,padding:0,placement:{id:e.id,effect:`bar`,ground:gO(n.palette)},lead:vH(e.lead,e,t,n),trail:vH(e.trail,e,t,n)}),band:`own`,place:`flow`}]}function vH(e,t,n,r){if(e===void 0)return[];try{return r.evaluateSegment(t,n,r.palette,r.region,{bg:void 0,fg:void 0,body:e,lead:void 0,trail:void 0},!1).fragments}catch(e){return r.onSegmentError?.(t.id,e.message??String(e)),[]}}const yH={container:fH,segment:hH};function bH(e){return yH[e]}function xH(e){if(`ttl`in e)return{kind:`ttl`,durationMs:TT(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 SH(e,t){switch(vg(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 CH(e,t,n,r){switch(n.kind){case`literal`:e.declareLiteral(t,n.value);break;case`dropped`:e.declareFailedDocument(t,n.reason);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:xH(n.cache),parse:SH(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cwd:r,cache:xH(n.cache),parse:SH(n.parse,n.default)});break;case`template`:e.declareTemplate(t,n.template,{varDefault:n.default});break;case`time`:e.declareTime(t,{format:n.layout,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 wH(e,t){let n=hv.EMPTY;for(let[r,i]of Object.entries(t))try{n=e.parse(`{{ define "${r}" }}${i}{{ end }}`,n).defines()}catch(e){throw Error(`Template parse error in helpers.${r}: ${e.message}`,{cause:e})}return n}const TH=(e,t,n,r,i)=>{let a=vL(t,_L(n,e.themeDefaults));return{variation:ap[r??Hm(void 0,null,a.variation)],shade:rp[i??Gm(void 0,null,a.shade)]}};function EH(e,t,n){let r=n.cwd,i={store:t.variableStore,compiled:new Map,chromeCols:Ch({endcaps:`powerline`,charset:Lm}),width:80,padding:1,seamCols:wh({endcaps:`powerline`,charset:Lm}),layout:()=>[],look:void 0},a=yV(t.drawnAt),o={action:i,activeSegment:a},s=Object.keys(e.styles),c=Jg(e.presets),l=Lj(e),u=Dw({extraFuncs:{...nV(i),...jV(i,a),...FV(i,a),...WV(i,a),...zV(i,a,t.now),...YV(i,a),...$V(o),...nH(a),styles:{fn:()=>s,argTypes:[],arity:{kind:`exact`}},presets:{fn:()=>c,argTypes:[],arity:{kind:`exact`}}},clock:t.now,drawnAt:t.drawnAt}),d=wH(u,e.helpers),f=e=>u.parse(e,d),p=new Map,m=e=>{let t=p.get(e);if(t!==void 0)return t;let n=f(e);return p.set(e,n),n},h=new Map;for(let[t,n]of Ta)n in e.variables&&h.set(t,n);for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&!h.has(n.key)&&h.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`&&!h.has(r.key)&&h.set(r.key,`${t}.${e}`);i.compiled=UB(f,e.actions,h,l);let g=[];for(let[n,i]of Object.entries(e.variables))try{CH(t,n,i,r)}catch(e){g.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{CH(t,`${n}.${e}`,a,r)}catch(t){g.push(`Variable "${n}.${e}": ${t.message??String(t)}`)}let _=Object.create(null);for(let[t,n]of Object.entries(e.segments)){let e=(e,n,r=f)=>{try{return r(e)}catch(e){throw Error(`Template parse error in segments.${t}.${n}: ${e.message}`,{cause:e})}};_[t]={when:n.when===void 0?void 0:e(n.when,`when`,m),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`)}}let v=(e,t,n)=>{try{return m(e)}catch(e){throw Error(`Template parse error in ${t}.${n}: ${e.message}`,{cause:e})}},y=t.variableStore,b=t=>{let n=Tg(e.segments[t.name]),r=Object.create(null);for(let[e,i]of Object.entries(n))Object.defineProperty(r,e,{enumerable:!0,get:()=>jg(t,e,i,e=>String(y.read(e.variable)))});return Object.freeze(r)},x=(e,t)=>{let n={path:t,when:e.when===void 0?void 0:v(e.when,t,`when`),parse:(e,n)=>v(e,t,n),compileChild:x,placementSettings:b};return bH(e.kind).compile(e,n)},S=new Map;for(let t of c){let{node:n,path:r}=Zg(e,t);S.set(t,x(n,r))}let C=new Map(mm.map(e=>[e,new Map])),ee=[[`globals`,e.globals],...Object.entries(e.presets).map(([e,t])=>[`presets.${e}.globals`,t.globals??{}])];for(let[e,t]of ee)for(let n of mm){let r=t[n];if(!hm(r))continue;let i=`${e}.${n}`,a=C.get(n),o=a.get(r);a.set(r,o===void 0?{where:i,template:DH(f,i,r)}:{where:`${o.where}, ${i}`,template:o.template})}return{segments:_,roots:S,activeSegment:a,menuRuntime:o,globalExpressions:C,loadWarnings:g}}function DH(e,t,n){try{return e(n)}catch(e){throw Error(`${t} is not a valid template: ${e instanceof Error?e.message:String(e)}`)}}function OH(e,t,n){let r=e.globalExpressions.get(t).get(n);if(r===void 0)throw Error(`the ${t} rule ${JSON.stringify(n)} reached the render but no compiled template exists — registerDslConfig and the resolution disagree about isExpression`);return r}function kH(e,t,n,r){try{return t.template.evaluate(n).map(e=>e.plain).join(``)}catch(n){return r({kind:`rule`,slot:e,message:wm(t.where,e,`the rule failed — ${n instanceof Error?n.message:String(n)}`)}),Cm[e]}}function AH(e,t){return e.kind===`decided`?e.name:Cm[t]}function jH(e){return e.kind===`container`?e.children.flatMap(jH):[...e.name.startsWith(`edit.`)?[]:[e.id],...e.opens===void 0?[]:jH(e.opens.body)]}function MH(e,t,n,r,i,a,o,s,c){let{perSegmentSink:l,onSegmentError:u,onRenderWarning:d}=s??{},f=e=>d?.(e),p=new Set;r.renderAt(a),r.drawAt(zm(o.colorCompatibility));let{preset:m=Kg}=c??{},h=Qg(e,m),g=c?.style??bm(`none`,e.styles),_=c?.theme??ig(void 0,null,h.palette),v=TH(e,h,_,c?.variation,c?.shade),y=c?.effect??km(void 0,null,h.effect),b=(e,t,n)=>({...i,term:{cols:o.width},theme:{effective:e},style:{effective:t},effect:{effective:n}});r.applyInput(b(AH(_,`palette`),AH(g,`style`),AH(y,`effect`))),t.menuRuntime.action.chromeCols=Ch(o),t.menuRuntime.action.padding=o.padding,t.menuRuntime.action.width=o.width,t.menuRuntime.action.seamCols=wh(o);let x=Ow(n),S=_m(_,e=>{let n=OH(t,`palette`,e);return rg(kH(`palette`,n,x,f),n.where,e=>f({kind:`rule`,slot:`palette`,message:e}))}),C=_m(g,n=>bm(kH(`style`,OH(t,`style`,n),x,f),e.styles)),ee=_m(y,e=>Om(kH(`effect`,OH(t,`effect`,e),x,f)));(S!==_||C!==g||ee!==y)&&r.applyInput(b(S.name,C.name,ee.name));let te=S.value,ne=eg(te,C.value);t.menuRuntime.action.look={basePalette:te,palette:ne,decor:v};let re=(c?.effects??new mh(``)).motion(ee.value,a,{transitions:c?.transitions??th(void 0,null,h.transitions),source:{config:t,preset:m,revision:r.stateRevision(),width:o.width},returned:oH,hold:sH});l?.clear();let ie=n=>{let r=e.segments[n],i=t.segments[n];return r!==void 0&&i!==void 0?{seg:r,compiled:i}:void 0},ae=(e,n,i,a,o,s)=>{try{let c=r.drawnAt(),{tint:l,text:u,disclosure:d}=im(i,a,c),f=bV(t.activeSegment,e.name,e.id,i,d,l,u),m=vO(f,c,o.bg,o.fg,n),h=()=>Gp(i,d,c);s&&(f.bg=h().state);let g=o.body.evaluate(n),_=f.drops.length>0||s;if(_){let e=h();f.bg=e.state;for(let t of e.shortfalls)p.add(t)}let v=o.lead?.evaluate(n)??[],y=o.trail?.evaluate(n)??[];return{styles:{closed:m,get trigger(){return iV(i,h().state,c)},get band(){return iV(i,h().plane,c)},get close(){return sV(i,h().state,c)},disclosure:d},fragments:g,lead:v,trail:y,drops:f.drops,open:_}}finally{t.activeSegment.current=null}},w=(e,t,r)=>{let i=t?OB(e.when,x):EB,a=i.kind===`failed`?{...i,report:()=>{let t=`when over ${jH(e).join(`, `)||`no placement`}`;f({kind:`when`,where:t,error:i.message,message:`${t}: ${i.message} — what it gates is hidden`})}}:i,s={scope:x,palette:ne,gate:a,padding:o.padding,region:r,perSegmentSink:l,onSegmentError:u,evaluateSegment:ae,lookupSegment:ie,renderChild:(e,t,n)=>w(e,t,nm(r,n)),renderBody:(e,t,n)=>w(e,a.kind===`shown`&&t,rm(n)),closeDisclosure:e=>rV(n,e),placed:re.placed};return bH(e.kind).render(e,s)},T=t.roots.get(m);if(T===void 0)throw Error(`Preset "${m}" has no compiled layout — registerDslConfig compiles one per declared preset and effectivePresetName collapses unknown names to "${Kg}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);let oe=e=>{let n=OB(e.when,x);if(e.kind===`container`)return n.kind===`shown`;if(Jj(e.name)===void 0)return!1;if(n.kind!==`shown`)return n.kind===`failed`;try{return TB(t.segments[e.name].when,Aw(x,e.settings))}catch{return!0}};t.menuRuntime.action.layout=()=>uH(T,oe).map(e=>e.flatMap(({name:e,address:t,settings:n})=>{let r=Jj(e);return r===void 0?[]:[{name:r,address:t,palette:Qh(n.theme,ne)}]}));let E=aH(w(T,!0,tm(v))).map(({line:e,row:t})=>{let n=RB(e.cells,o);return Oh(n.map(e=>e.owner),o,re.row(t,n))}).join(`
178
+ `);re.drawn();for(let e of p)f({kind:`band-floor`,message:e});for(let[e,t]of r.cachePolicyFaults())f({kind:`refresh`,variable:e,error:t.message,message:`variable "${e}" cannot refresh: ${t.message}`});return E}function*NH(e){yield*Object.entries(e.variables??{});for(let[t,n]of Object.entries(e.segments??{}))for(let[e,r]of Object.entries(n.vars??{}))yield[`${t}.${e}`,r]}function*PH(e){for(let t of Object.values(e.segments))for(let e of[t.template,t.bg,t.fg,t.when])e!==void 0&&(yield e);for(let t of Jg(e.presets)){for(let n of fg(Zg(e,t).node))n.when!==void 0&&(yield n.when);let n=Qg(e,t);for(let e of mm){let t=n[e];hm(t)&&(yield t)}}for(let[,t]of NH(e))t.kind===`template`&&(yield t.template),bg(t)&&`key`in t.cache&&(yield t.cache.key);for(let t of Object.values(e.actions))`copy`in t&&(yield t.copy),`open`in t&&(yield t.open),`preset`in t&&t.preset===`delete`&&(yield t.name)}function FH(e,t){return e===t||t.startsWith(`${e}.`)||e.startsWith(`${t}.`)}function IH(e,t){let n=new Set,r=new Set,i=new Set;for(let e of PH(t)){for(let r of y_(e,t.helpers).keys())n.add(r);for(let{name:n}of C_(e,t.helpers))r.add(n);for(let n of w_(e,t.helpers))i.add(n)}for(let[,e]of NH(t))if(bg(e)&&`depends_on`in e.cache)for(let t of e.cache.depends_on)n.add(t);let a=new Set(r);for(let e of r){let n=t.actions[e];if(n!==void 0&&`do`in n)for(let e of n.do)a.add(e)}let o=new Set,s=new Set;for(let e of a){let n=t.actions[e];if(n!==void 0&&(`set`in n&&o.add(n.set),`insertSegment`in n&&s.add(n.insertSegment),`insertSegmentFrom`in n&&Array.isArray(n.insertSegmentFrom)))for(let e of n.insertSegmentFrom)s.add(e)}for(let e of Jg(t.presets))for(let n of fg(Zg(t,e).node))n.kind===`segment`&&s.add(n.name);let c=(e,t)=>[...n].some(t=>FH(t,e))||t.kind===`state`&&o.has(t.key),l=e=>[...e].filter(e=>!sE(e)),u=(e,t,n)=>l(t).filter(e=>!n(e)).map(t=>({kind:e,name:t})),d=new Map(NH(e));return[...u(`variable`,d.keys(),e=>c(e,d.get(e))),...u(`action`,Object.keys(e.actions??{}),e=>a.has(e)),...u(`helper`,Object.keys(e.helpers??{}),e=>i.has(e)),...u(`segment`,Object.keys(e.segments??{}),e=>s.has(e))]}var LH=class{kind=`box`;cell;lastChangedAt;constructor(e,t,n){this.name=e,this.type=t,UH(e,t,n,`initial value`),this.cell=N_.observable.box(n,{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){UH(this.name,this.type,e,`set value`),!Object.is(this.cell.get(),e)&&(this.cell.set(e),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}},RH=class{kind=`computed`;cell;constructor(e,t,n){this.name=e,this.type=t,this.cell=(0,N_.computed)(()=>{let e=n();return UH(this.name,this.type,e,`computed result`),e},{keepAlive:!0})}read(){return this.cell.get()}lastUpdatedMs(){return null}},zH=class{kind=`document`;cell;lastChangedAt;constructor(e,t){this.name=e,this.cell=N_.observable.box(HH(t),{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){let t=HH(e);VH(this.cell.get(),t)||(this.cell.set(t),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}};function BH(e){return JSON.stringify(e)}function VH(e,t){return BH(e)===BH(t)}function HH(e){return e.kind===`ok`?{kind:`ok`,value:P_(e.value)}:e}function UH(e,t,n,r){let i=F_(n);if(i!==t)throw TypeError(`Variable "${e}": ${r} type ${i} does not match declared type ${t}`)}var WH=class{nodes=N_.observable.map(void 0,{deep:!1});defineBox(e,t,n){this.declare(e,new LH(e,t,n))}defineDocument(e,t){this.declare(e,new zH(e,t))}defineComputed(e,t,n){let r=e=>this.read(e);this.declare(e,new RH(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,N_.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,N_.runInAction)(()=>n.set(t))}runInAction(e){(0,N_.runInAction)(e)}has(e){return this.nodes.has(e)}getType(e){return this.requireVar(e).type}getKind(e){return this.requireNode(e).kind}changeKey(e){let t=this.requireNode(e);if(t.kind===`document`)return BH(t.read());try{return String(t.read())}catch(e){return`failed:${e instanceof Error?e.message:String(e)}`}}getNode(e){let t=this.requireNode(e);return t.kind===`document`?{name:t.name,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}:{name:t.name,type:t.type,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}}names(){return[...this.nodes.keys()]}requireNode(e){let t=this.nodes.get(e);if(!t)throw ReferenceError(`Unknown variable "${e}"`);return t}requireVar(e){let t=this.requireNode(e);if(t.kind===`document`)throw TypeError(`Variable "${e}" is a document; read its fields by path (.${e}.<field>)`);return t}declare(e,t){if(this.nodes.has(e))throw Error(`Variable "${e}" is already declared`);(0,N_.runInAction)(()=>this.nodes.set(e,t))}};function GH(e,{plugins:t,config:n}){let{checkout:r,loaded:i,dropped:a,unreached:o}=t,s=r===null?`-`:`${r.git?`git`:`dir`}:${r.root}`,c=e=>{let t=tI(e),r=t===void 0?void 0:n.variables[rI(t)];return r?.kind===`file`?r.path:`none`};return`config load ${e.join(` < `)||`<default>`}: plugins loaded=${i.length} dropped=${a.length} unplaced=${o.length} checkout=${s}`+i.map(e=>` +${e} data=${c(e)}`).join(``)+a.map(e=>` -${e.path} (${e.reason})`).join(``)+o.map(e=>` ~${e.path} (${e.reason})`).join(``)}function KH(e,t,n){return e+`\0`+t+`\0`+(n??``)}function qH(e,t){return new Set(Jg(e.presets).filter(n=>Zg(e,n).path===`root`?t.root!==void 0:t.presets?.[n]?.root!==void 0))}function JH(e,t){let n=new Map,{roots:r,loaded:i,dropped:a,unreached:o}=e.state.plugins;for(let t of[...kI(e.projectDir,e.cwd,e.configFile),...r,...i,...[...a,...o].map(e=>e.path)]){let{dir:e,name:r}=k_(t),i=n.has(e)?n.get(e):new Set;i?.add(r),n.set(e,i)}for(let e of r){let{dir:t,name:r,leaf:i}=k_(l.join(e,`_`));i&&r===`_`&&n.set(t,null)}return{files:t,dirs:[...n.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>t===null?{path:e}:{path:e,filenames:[...t].sort()})}}function YH(e){return e.filter(Boolean).join(`
179
+ `)||null}function XH(e,t,n,r,i=()=>{}){let{layers:a,config:o,installed:s}=WI(t.layers,pL,{entered:i,warned:e=>n.push(...e)},{projectDir:t.projectDir,cwd:e});i(a.length===1?a[0].path:null);let c=a.at(-1)?.config??pL,l=a.find(e=>e.path===t.home)?.raw??{},u=new WH,d=new KT(u,o.globals.default_empty_value??``,r.gitService,r.sessionState),f;try{f=EH(o,d,{cwd:e}),n.push(...f.loadWarnings),tz(o),_M(o)}catch(e){throw d.dispose(),e}return{config:o,store:u,registry:d,compiled:f,neededInputPaths:sR(o),lastRenderCellsBySegment:new Map,authoredRoots:qH(c,l),fileHeldSettings:VR(l),unused:[...new Map(a.flatMap(e=>IH(e.raw,c)).map(e=>[`${e.kind}:${e.name}`,e])).values()],plugins:{checkout:s.checkout,roots:s.roots,loaded:[...s.rendering.values()],dropped:[...s.dropped,...a.flatMap(e=>e.plugins.dropped)],unreached:s.unreached,reached:s.reached,rendering:s.rendering}}}function ZH(e,t,n,r){let i=jI(e,t,n),a={layers:i.kind===`chain`?i.layers:[],home:i.home,projectDir:e},o=[II(e,t),PI(i)],s,c=null;try{s=XH(t,a,o,r,e=>{c=e})}catch(e){return e instanceof QT&&o.push(...e.warnings),{layers:a.layers,home:a.home,failedFile:c,warning:YH(o),state:null,error:e instanceof QT||e instanceof Error?e.message:String(e)}}return{layers:a.layers,home:a.home,warning:YH(o),state:s,error:null}}function QH(e,t,n){return XH(e,{layers:[],home:``,projectDir:t},[],n)}var $H=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=KH(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=ZH(e,t,n,this.deps);a.state!==null&&A(`info`,GH(a.layers,a.state));let o={projectDir:e,cwd:t,configFile:n,configLayers:[],configHome:``,failedFile:null,lastError:a.error,lastWarning:a.warning,state:a.state??QH(t,e,this.deps),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.watcher?.release(),this.entries.delete(t)}}return this.refreshWatcher(o,a),this.observers.onReload?.(o),o}reload(e,t,n){this.reloadInto(this.getOrCreate(e,t,n))}reloadInto(e){let t=ZH(e.projectDir,e.cwd,e.configFile,this.deps);e.lastWarning=t.warning,e.lastError=t.error,t.state!==null&&(A(`info`,GH(t.layers,t.state)),e.state.registry.dispose(),e.state=t.state),this.refreshWatcher(e,t),this.observers.onReload?.(e)}refreshWatcher(e,t){e.configLayers=t.layers,e.configHome=t.home,e.failedFile=t.error===null?null:t.failedFile;let n=JH(e,t.layers),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){A(`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 eU=16384;var tU=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<eU){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%eU}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:Et,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},effectCache:e.effectCache,watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null,handlerProbes:e.handlerProbes}}};function nU(e,t,n){let r=(r,i,a)=>{let o=i.filter(t).map(t=>({key:t,before:e.get(r,t)}));a();for(let{key:t,before:i}of o)n(r,t,i,e.get(r,t))};return{get:(t,n)=>e.get(t,n),revision:t=>e.revision(t),set:(t,n,i)=>r(t,[n],()=>e.set(t,n,i)),setBatch:(t,n)=>r(t,n.map(e=>e.key),()=>e.setBatch(t,n)),clear:(t,n)=>r(t,[n],()=>e.clear(t,n))}}const rU={load:()=>({}),save:()=>{},flush:()=>{}};var iU=class{sessions;storage;head=0;atom=(0,N_.createAtom)(`SessionState`);constructor(e=rU,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=new Map(Object.entries(this.storage.load()).map(([e,t])=>[e,{values:new Map(Object.entries(t)),revision:++this.head}])),this.evictOldest(),this.persist()}get(e,t){this.atom.reportObserved();let n=this.sessions.get(e);return n?(this.touch(e,n),n.values.get(t)??null):null}revision(e){return this.atom.reportObserved(),this.sessions.get(e)?.revision??0}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,N_.runInAction)(()=>{let n=this.sessions.get(e)??{values:new Map,revision:0};t.some(({key:e,value:t})=>n.values.get(e)!==t)&&(n.revision=++this.head);for(let{key:e,value:r}of t)n.values.set(e,r);this.touch(e,n),this.evictOldest(),this.persist(),this.atom.reportChanged()})}clear(e,t){(0,N_.runInAction)(()=>{let n=this.sessions.get(e);n&&(n.values.delete(t)&&(n.revision=++this.head),n.values.size===0?this.sessions.delete(e):this.touch(e,n)),this.persist(),this.atom.reportChanged()})}prune(e){(0,N_.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,{values:n}]of this.sessions)e[t]=Object.fromEntries(n);return e}};function aU(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 oU=class{timer=null;pending=null;constructor(e,t=500,n=Ft){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 aU(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(l.dirname(this.filePath),{recursive:!0});let t=`${this.filePath}.tmp`;r.writeFileSync(t,JSON.stringify(e),{mode:384}),r.chmodSync(t,384),r.renameSync(t,this.filePath),this.pending=null}catch(e){this.logger(`warn`,`session-state save failed: ${e.message}`)}}};const sU={default_empty_value:`string`,default_separator:`string`,palette:`string`,style:`string`,effect:`string`,preset:`string`,endcaps:`string`,variation:`string`,shade:`string`,autoWrap:`boolean`,padding:`number`,charset:`string`,updateNotice:`boolean`,transitions:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},cU=new Set([`1`,`true`]),lU=new Set([`0`,`false`,``]);function uU(e,t){let n=FU(e),r=n.scope===`segment-palette`?`string`:sU[n.field];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(cU.has(t))return`true`;if(lU.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function dU(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function fU(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(l.dirname(e),{recursive:!0}),Ie(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function pU(e){return/^\s*$/.test(e)?null:wr(e)}function mU(e,t){return e!==null&&Er(e,t)!==void 0}function hU(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(hU),...i}}return e}function gU(e){if(!Rg(e))return hU(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,hU(t)])),...n}}const _U=dL,vU=_U.segments,yU=_U.presets,bU=_U.root;function xU(e,t,n,r){if(!mU(e,t)&&n===void 0)throw new K(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function SU(e,t){let n=qD(t);return t.scope===`segment-palette`&&xU(e,[`segments`,t.segment],vU[t.segment],n.join(`.`)),n}function CU(e){return wr(Pr(e))}function wU(){return Object.entries(bU.rows).map(([e,t])=>{let n=hU(t);return{path:[`root`],fragment:CU({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function TU(e,t){let n=e===null?void 0:Er(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function EU(e,t){if(t===void 0)return null;let n=gU(t);return{path:e,fragment:CU(n),unit:{path:e,value:n}}}function DU(e,t){let n=[`presets`,t],r=[...n,`root`],i=yU[t];xU(e,n,i,r.join(`.`));let a=TU(e,r)??EU(r,i?.root);return a!==null&&ti(a.fragment)?a:null}function OU(e,t){let n=ei(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 kU(e,t){return[...wU(),TU(e,[`root`]),DU(e,t)].filter(e=>e!==null).reduce(OU,new Map)}function AU(e,t,n){for(let{node:r,...i}of kU(e,t).values())if(ri(r,n))return i;throw new K(`${jU(e,t).join(`.`)} holds no placement "${n}" — the bar you clicked is stale (it reloads on the next render), or the action names a placement the layout never held`)}function jU(e,t){return DU(e,t)?.path??[`root`]}function MU(e,t){return t.scope===`preset-root`?jU(e,t.preset):qD(t)}function NU(e,{unit:t}){return t===null?e:Jr(e,t.path,Pr(t.value),Mr)}function PU(e){let t=KD(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function FU(e){let t=PU(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function IU(e,t,n,r,i){i(t,n,qU(t,r)),fU(t.path,r,e.logger),e.record(t.path,n,r)}function LU(e,t,n){let r=BU(e,t,n);if(r.length>0)throw new K(`refused: ${e.above.join(`, `)} sets ${r.join(`, `)} over ${e.path}, so this click would change nothing on the bar — edit it there`)}const RU=()=>{};function zU(e,t){try{return t()}catch(t){throw!(t instanceof K)||e.above.length===0?t:new K(`${t.message} — or it is declared by ${e.above.join(`, `)}, which the bar does not edit`)}}function BU(e,t,n){let r=VU(e,t);if(r===null)return[];let i=new Set(GU(WU(r),WU(n)));return GU(UU(e,r),UU(e,n)).filter(e=>!i.has(e))}function VU(e,t){try{return HU(e,t)}catch(e){if(e instanceof QT)return null;throw e}}function HU(e,t){return WI(t===null?e.above:[e.path,...e.above],pL,{entered:()=>{},warned:()=>{}},{projectDir:e.projectDir,cwd:e.cwd},n=>n===e.path&&t!==null?t:r.readFileSync(n,`utf8`))}function UU(e,t){let[n]=t.layers;return n?.path===e.path?n.config:t.base}function WU(e){return e.layers.at(-1)?.config??e.base}function GU(e,t,n=``){return!KU(e)||!KU(t)?JSON.stringify(e)===JSON.stringify(t)?[]:[n]:[...new Set([...Object.keys(e),...Object.keys(t)])].flatMap(r=>GU(e[r],t[r],n===``?r:`${n}.${r}`))}function KU(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function qU(e,t){try{return HU(e,t)}catch(e){throw e instanceof QT?new K(`refused: the config file would not load after this click — ${e.message}`):e}}function JU(e,t){let n=FU(t),r=pU(dU(e)??``),i=r===null?void 0:Er(r,qD(n));return i!==void 0&&`value`in i?i.value:void 0}function YU(e,t,n){XU(e,t,n,[])}function XU(e,t,n,r){let i=dU(t.path),a=n.reduce((e,[t,n])=>Jr(e,SU(pU(e),FU(t)),uU(t,n),Mr),i??``);IU(e,t,i,zU(t,()=>ZU(a,t.path,r,e=>e)),LU)}function ZU(e,t,n,r){return n.reduce((e,{preset:n,id:i,setting:a,value:o})=>{let s=r(e,n,i),c=AU(pU(s),n,i),l=si(NU(s,c),c.path,i,a,Pr(o));if(l===null)throw new K(`${c.path.join(`.`)} in ${t} has no placement "${i}" — the bar you clicked is stale (it reloads on the next render)`);return l},e)}function QU(e,t,n){let r=pU(e),i=[`presets`,t,`root`];for(let[a,{path:o,unit:s,node:c}]of kU(r,t)){if(!ri(c,n))continue;if(i.every((e,t)=>o[t]===e))return e;let l=s===null?Or(e,c):Pr(s.value);if(a!==`#`)return Jr(e,[...i,`rows`,a],l,Mr);if(DU(r,t)!==null)throw new K(`cannot give preset "${t}" its own copy of ${o.join(`.`)}: it already stages rows of its own over that tree`);return Jr(e,i,l,Mr)}return e}function $U(e,t){return Xr(e,t,t[0]===`presets`&&t.length>2&&!hL(t[1])?2:0)}function eW(e,t,n){let r=n.map(PU),i=dU(t.path);if(i===null)return;let a=r.reduce((e,t)=>$U(e,MU(pU(e),t)),i);a!==i&&IU(e,t,i,a,RU)}function tW(e){let t=e===null?void 0:Er(e,[`presets`]);return t?.kind===`object`?t.entries.map(e=>e.key):[]}function nW(e,t){let n=new Set([...mL,...tW(e),...t.above.flatMap(e=>Object.keys(_r.default.parse(r.readFileSync(e,`utf8`)).presets??{}))].map(ZT));return Array.from({length:n.size+1},(e,t)=>`custom-${t+1}`).find(e=>!n.has(ZT(e)))}function rW(e,t,n,r,i,a){let o=dU(t.path),s=pU(o??``),c=nW(s,t),l=[`presets`,c],u=zU(t,()=>DU(s,n)),d=[...u===null?[]:[[[...l,`root`],u.unit===null?Or(o??``,u.fragment):Pr(u.unit.value)]],...Object.keys(r).length===0?[]:[[[...l,`globals`],Pr(r)]]],f=i.map(([e,t])=>{let n=GD(c,e);return[SU(s,FU(n)),uU(n,t)]}),p=[...d,...f].reduce((e,[t,n])=>Jr(e,t,n,Mr),Jr(o??``,l,`{}`,Mr));return IU(e,t,o,zU(t,()=>ZU(p,t.path,a.map(e=>({...e,preset:c})),QU)),LU),c}function iW(e,t,n,r){let i=dU(t.path);IU(e,t,i,Jr(i??``,[`themeDefaults`,n],Pr(r),Mr),LU)}function aW(e,t,n){if(hL(n))throw new K(`cannot delete preset "${n}": it is bundled — reset its settings instead`);let r=[`presets`,n],i=dU(t.path),a=pU(i??``);if(i===null||a===null||Er(a,r)===void 0)throw new K(`cannot delete preset "${n}": ${t.path} declares no ${r.join(`.`)} — the bar you clicked is stale; it reloads on the next render`);let o=Er(a,[`globals`,`preset`]);IU(e,t,i,[r,...o?.kind===`string`&&o.value===n?[[`globals`,`preset`]]:[]].reduce((e,t)=>$U(e,t),i),RU)}function oW(e,t,n,r){let i=PU(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=dU(t.path),o=r.op===`remove`?r.target:r.anchor,s=zU(t,()=>AU(pU(a??``),i.preset,o)),c=NU(a??``,s),{after:l,placed:u}=sW(c,s.path,r,()=>{let e=qU(t,c).config;return Jg(e.presets).map(t=>Zg(e,t).node)});if(l===null)throw new K(`${s.path.join(`.`)} in ${t.path} has no placement "${o}" — the bar you clicked is stale (it reloads on the next render), or the action names a placement the layout never held`);return IU(e,t,a,l,LU),u}function sW(e,t,n,r){switch(n.op){case`remove`:return{after:ai(e,t,n.target),placed:null};case`insert`:{let i=iM(n.segment,n.anchor,r());return{after:oi(e,t,i,n.anchor,n.relation),placed:i}}}}const cW={load:()=>({}),save:()=>{}},lW=new Set(xa.map(e=>e.sessionKey)),uW=e=>lW.has(e)||e.startsWith(iO),dW=8*1024*1024,fW={past:[],future:[]},pW=e=>e.kind===`session`?`session:${e.key}`:`file:${e.file}`;var mW=class{state=new Map;constructor(e,t,n=cW){this.sessionState=e,this.logger=t,this.storage=n,this.state=new Map(Object.entries(n.load()))}useStorage(e){this.storage=e,this.state=new Map(Object.entries(e.load()))}depth(e){let{past:t,future:n,savepoint:r}=this.state.get(e)??fW;return{undo:t.length,redo:n.length,sinceEdit:r?.net.length??0}}history(e){return this.state.get(e)??fW}begin(){let e=new Map,t=(t,n)=>{let r=e.get(t)??new Map,i=r.get(pW(n));r.set(pW(n),i===void 0?n:{...n,before:i.before}),e.set(t,r)},n=new Map;return{sessionState:nU(this.sessionState,e=>uW(e)||e===`edit.mode`,(e,r,i,a)=>{if(r===`edit.mode`){let t=n.get(e);n.set(e,{before:t===void 0?i:t.before,after:a});return}t(e,{kind:`session`,key:r,before:i,after:a})}),file:(e,n,r,i)=>t(e,{kind:`file`,file:n,before:r,after:i}),commit:()=>{let t=new Map(e),r=new Map(n);e.clear(),n.clear();for(let e of new Set([...t.keys(),...r.keys()])){let n=[...t.get(e)?.values()??[]].filter(e=>e.before!==e.after),i=this.history(e),a=n.length===0?i:SW(i,n),o=r.get(e),s=o===void 0?a:EW(a,o);s!==i&&this.put(e,s)}}}}undo(e){let t=this.history(e),n=t.past.at(-1);if(n===void 0)throw new K(`undo: nothing to undo`);return this.apply(e,n,`before`,`undo`,wW(t,n)),n}rewind(e){let t=this.history(e),{savepoint:n}=t;if(n===void 0)throw new K(`rewind: edit mode has no savepoint — nothing to cancel`);let r=n.net.filter(t=>this.read(e,t)!==t.after),i=new Set(r.map(pW)),a=n.net.filter(e=>!i.has(pW(e))),o=_W(DW(TW(t,n),i));if(this.apply(e,a,`before`,`rewind`,{past:o,future:[],savepoint:{at:o.length,net:[],below:[]}}),r.length>0)throw new K(`rewind: ${r.map(kW).join(`, `)} changed since edit mode opened — kept as it is; everything else edit mode changed was put back`);return a}redo(e){let t=this.history(e),{past:n,future:r}=t,i=r.at(-1);if(i===void 0)throw new K(`redo: nothing to redo`);let a=[...n,i],o=_W(a);return this.apply(e,i,`after`,`redo`,{past:o,future:r.slice(0,-1),...yW(t.savepoint,a.length-o.length,i)}),i}apply(e,t,n,r,i){let a=n===`before`?`after`:`before`,o=t.filter(t=>this.read(e,t)!==t[a]);if(o.length>0){let t=new Set(o.map(pW)),{past:n,future:i,savepoint:a}=this.history(e);throw this.put(e,{past:DW(n,t),future:DW(i,t),...a!==void 0&&{savepoint:{at:DW([...n,...[...i].reverse()].slice(0,a.at),t).length,net:a.net.filter(e=>!t.has(pW(e))),below:DW(a.below,t)}}}),new K(`${r}: ${o.map(kW).join(`, `)} changed since that edit — refusing to overwrite it; this session's undo history no longer steps it`)}let s=[];try{for(let r of t)this.write(e,r,r[n]),s.push(r);this.put(e,i)}catch(t){try{for(let t of s.reverse())this.write(e,t,t[a])}catch(e){throw Error(`${t.message}; and putting the step back failed, so it is half-applied: ${e.message}`)}throw t}}read(e,t){return t.kind===`session`?this.sessionState.get(e,t.key):dU(t.file)}write(e,t,n){t.kind===`file`?fU(t.file,n,this.logger):n===null?this.sessionState.clear(e,t.key):this.sessionState.set(e,t.key,n)}put(e,t){let n=new Map(this.state);for(n.delete(e),(t.past.length>0||t.future.length>0||t.savepoint!==void 0)&&n.set(e,t);n.size>32||hW(n)>dW;){let[e,t]=n.entries().next().value;n.size>1?n.delete(e):t.past.length+t.future.length>0?n.set(e,gW(t)):(this.logger(`warn`,`settings-history: edit mode's changes for session ${e} exceed ${dW} bytes; cancel is no longer available`),n.delete(e))}this.storage.save(Object.fromEntries(n)),this.state=n}};function hW(e){let t=0;for(let{past:n,future:r,savepoint:i}of e.values())for(let e of[...n,...r,...i===void 0?[]:[i.net,...i.below]])for(let n of e)t+=(n.before?.length??0)+(n.after?.length??0);return t}function gW({past:e,future:t,savepoint:n}){return e.length>0?{past:e.slice(1),future:t,...yW(n,1,[])}:{past:e,future:t.slice(1),...yW(n,0,[])}}function _W(e){return e.slice(-50)}const vW=e=>e===oO.member;function yW(e,t,n){return e===void 0?{}:{savepoint:{at:Math.max(0,e.at-t),net:bW(e.net,n),below:e.below}}}function bW(e,t){let n=new Map(e.map(e=>[pW(e),e]));for(let e of t){let t=n.get(pW(e));n.set(pW(e),t===void 0?e:{...t,after:e.after})}return[...n.values()].filter(e=>e.before!==e.after)}const xW=e=>e.map(e=>({...e,before:e.after,after:e.before}));function SW(e,t){let n=[...e.past,t],r=_W(n),{savepoint:i}=e,a=i===void 0?0:Math.max(0,i.at-e.past.length);return{past:r,future:[],...yW(i&&{at:Math.min(i.at,e.past.length),net:i.net,below:[...CW(e.future,a),...i.below]},n.length-r.length,t)}}function CW(e,t){let n=Math.min(t,e.length);return e.slice(e.length-n).reverse()}function wW(e,t){return{past:e.past.slice(0,-1),future:_W([...e.future,t]),...yW(e.savepoint,0,xW(t))}}function TW(e,t){let{past:n,future:r}=e,i=n.slice(0,t.at);return[...i,...CW(r,t.at-i.length),...t.below]}function EW(e,t){if(vW(t.after)&&!vW(t.before))return{...e,savepoint:{at:e.past.length,net:[],below:[]}};if(!vW(t.after)&&vW(t.before)){let{past:t,future:n}=e;return{past:t,future:n}}return e}function DW(e,t){return e.map(e=>e.filter(e=>!t.has(pW(e)))).filter(e=>e.length>0)}function OW(e){return e.map(kW).join(`, `)}function kW(e){return e.kind===`session`?`session setting "${e.key}"`:e.file}function AW(e){if(typeof e!=`object`||!e)return!1;let t=e,n=e=>e===null||typeof e==`string`;return(t.kind===`session`&&typeof t.key==`string`||t.kind===`file`&&typeof t.file==`string`)&&n(t.before)&&n(t.after)}function jW(e){return Array.isArray(e)&&e.every(e=>Array.isArray(e)&&e.every(AW))}function MW(e){if(typeof e!=`object`||!e)return!1;let t=e;return Number.isInteger(t.at)&&t.at>=0&&Array.isArray(t.net)&&t.net.every(AW)&&jW(t.below)}function NW(e){if(typeof e!=`object`||!e)return!1;let t=e;return jW(t.past)&&jW(t.future)&&(t.savepoint===void 0||MW(t.savepoint))}function PW(e,t){let n=e=>e.kind===`file`||uW(e.key)?!0:(t.add(e.key),!1),r=e=>e.map(e=>e.filter(n)).filter(e=>e.length>0),{savepoint:i}=e,a=r(e.past),o=r(e.future);return i===void 0?{past:a,future:o}:{past:a,future:o,savepoint:{at:r(e.past.slice(0,i.at)).length,net:i.net.filter(n),below:r(i.below)}}}function FW(e,t){return{load:()=>{let n;try{n=r.readFileSync(e,`utf8`)}catch(e){let n=e.code;return n!==`ENOENT`&&t(`warn`,`settings-history read failed (${n}); starting empty`),{}}try{let e=JSON.parse(n);if(typeof e==`object`&&e&&!Array.isArray(e)&&Object.values(e).every(NW)){let n=new Set,r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,PW(t,n)]));return n.size>0&&t(`warn`,`settings-history load: dropped the changes to ${[...n].map(e=>`"${e}"`).join(`, `)}, no longer a setting`),r}}catch{}return t(`warn`,`settings-history load: unexpected shape, starting empty`),{}},save:n=>{try{r.mkdirSync(l.dirname(e),{recursive:!0}),Ie(e,JSON.stringify(n),384)}catch(e){let n=`settings-history write failed — the change landed but is not undoable: ${e.message}`;throw t(`error`,n),Error(n)}}}}const IW=e=>!uW(e)&&!Ek(e)&&e!==`update.dismissed`;var LW=class{past=new Map;depth(e,t,n){return this.restorable(e,t,n).length}restorable(e,t,n){let r=new Map,i=n=>r.has(n)?r.get(n):t.get(e,n),a=[];for(let t of[...this.past.get(e)??[]].reverse())if(t.every(e=>i(e.key)===e.after&&(e.before===null||n.validate(e.key,e.before).ok))){a.unshift(t);for(let e of t)r.set(e.key,e.before)}return a}begin(e){let t=new Map;return{sessionState:nU(e,IW,(e,n,r,i)=>{let a=t.get(e)??new Map,o=a.get(n);a.set(n,{key:n,before:o?o.before:r,after:i}),t.set(e,a)}),commit:()=>{for(let[e,n]of t){let t=[...n.values()].filter(e=>e.before!==e.after);t.length>0&&this.push(e,t)}t.clear()}}}back(e,t,n){let r=this.past.get(e)??[],i=this.restorable(e,t,n),a=i.at(-1),o=r.length-i.length;if(a===void 0)throw this.put(e,i),new K(`back: nothing to go back to${o>0?` (${o} step(s) over a view since gone, discarded)`:``}`);return(0,N_.runInAction)(()=>{let n=a.flatMap(({key:e,before:t})=>t===null?[]:[{key:e,value:t}]);n.length>0&&t.setBatch(e,n);for(let{key:n,before:r}of a)r===null&&t.clear(e,n)}),this.put(e,i.slice(0,-1)),{step:a,discarded:o}}push(e,t){let n=this.past.get(e)??[];this.put(e,[...n,t].slice(-20))}put(e,t){for(this.past.delete(e),t.length>0&&this.past.set(e,t);this.past.size>32;)this.past.delete(this.past.keys().next().value)}};const RW=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function zW(e,t){let n=e=>({kind:`failed`,reason:`${t} ${e}`}),r;try{r=JSON.parse(e)}catch(e){return n(`is not JSON: ${e.message}`)}if(!RW(r))return n(`is not an object`);for(let[e,t]of Object.entries(r)){if(!RW(t))return n(`holds ${JSON.stringify(e)} as something other than its sightings`);for(let[e,r]of Object.entries(t))if(!KO.includes(r))return n(`marks ${JSON.stringify(e)} ${JSON.stringify(r)}, not ${KO.join(` or `)}`)}return{kind:`ok`,value:r}}function BW(e,t,n,r){return{...e,[t]:{...e[t],[n]:r}}}function VW(e=l.join(Re(),`doctor-marks.json`)){let t=()=>{let t;try{t=r.readFileSync(e,`utf8`)}catch(t){return t.code===`ENOENT`?{kind:`ok`,value:{}}:{kind:`failed`,reason:`${e}: ${t.message}`}}return zW(t,e)};return{read:t,record:(n,i,a)=>{let o=t();if(o.kind===`failed`)throw Error(`doctor: the mark book could not be read: ${o.reason}`);r.mkdirSync(l.dirname(e),{recursive:!0}),Ie(e,`${JSON.stringify(BW(o.value,n,i,a),null,2)}\n`)}}}var HW=class extends Error{constructor(e){super(`the doctor looked at ${e} less than a second ago — click again`),this.name=`DoctorBusy`}};
173
180
  /*!
174
181
  * Copyright (c) Squirrel Chat et al., All rights reserved.
175
182
  * SPDX-License-Identifier: BSD-3-Clause
@@ -197,9 +204,9 @@ print(json.dumps({"ceiling": "off" if ceiling == math.inf else ceiling,
197
204
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
198
205
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
199
206
  */
200
- function FU(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function IU(e,t,n){let r=e.split(/\r?\n/),i=``,a=(Math.log10(t+1)|0)+1;for(let e=t-1;e<=t+1;e++){let o=r[e-1];o&&(i+=e.toString().padEnd(a,` `),i+=`: `,i+=o,i+=`
207
+ function UW(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function WW(e,t,n){let r=e.split(/\r?\n/),i=``,a=(Math.log10(t+1)|0)+1;for(let e=t-1;e<=t+1;e++){let o=r[e-1];o&&(i+=e.toString().padEnd(a,` `),i+=`: `,i+=o,i+=`
201
208
  `,e===t&&(i+=` `.repeat(a+n+2),i+=`^
202
- `))}return i}var $=class e extends Error{line;column;codeblock;constructor(e,t){let[n,r]=FU(t.toml,t.ptr),i=IU(t.toml,n,r);super(`Invalid TOML document: ${e}\n\n${i}`,t),this.line=n,this.column=r,this.codeblock=i}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}};
209
+ `))}return i}var $=class e extends Error{line;column;codeblock;constructor(e,t){let[n,r]=UW(t.toml,t.ptr),i=WW(t.toml,n,r);super(`Invalid TOML document: ${e}\n\n${i}`,t),this.line=n,this.column=r,this.codeblock=i}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}};
203
210
  /*!
204
211
  * Copyright (c) Squirrel Chat et al., All rights reserved.
205
212
  * SPDX-License-Identifier: BSD-3-Clause
@@ -227,7 +234,7 @@ function FU(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().lengt
227
234
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
228
235
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
229
236
  */
230
- function LU(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,i=n===39,a=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);a&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let o=``,s=e.p,c=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),a&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))c&&=3;else if(n<32&&n!==9||n===127)$.x(`control characters are not allowed in strings`,e);else if((!c||c===3)&&n===r&&(!a||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(a&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!c){let t=e.s.slice(s,e.p);o=o?o+t:t}return e.p+=a?3:1,o}else if(!c)!i&&n===92&&(o+=e.s.slice(s,s=e.p),c=1);else if(c===1)if(n===120||n===117||n===85){let t=e.p++-1,r=0,i=n===120?2:n===117?4:8;for(let t=0;t<i;t++,e.p++){let t=e.s.charCodeAt(e.p),n=t>=48&&t<=57?t-48:t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:-1;n<0&&$.x(`invalid non-hex character in unicode escape`,e),r=r<<4|n}(r<0||r>1114111||r>=55296&&r<=57343)&&$.x(`invalid unicode escape`,e,t),o+=String.fromCodePoint(r),s=e.p--,c=0}else a&&(n===32||n===9)?c=2:(n===98?o+=`\b`:n===116?o+=` `:n===110?o+=`
237
+ function GW(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,i=n===39,a=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);a&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let o=``,s=e.p,c=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),a&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))c&&=3;else if(n<32&&n!==9||n===127)$.x(`control characters are not allowed in strings`,e);else if((!c||c===3)&&n===r&&(!a||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(a&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!c){let t=e.s.slice(s,e.p);o=o?o+t:t}return e.p+=a?3:1,o}else if(!c)!i&&n===92&&(o+=e.s.slice(s,s=e.p),c=1);else if(c===1)if(n===120||n===117||n===85){let t=e.p++-1,r=0,i=n===120?2:n===117?4:8;for(let t=0;t<i;t++,e.p++){let t=e.s.charCodeAt(e.p),n=t>=48&&t<=57?t-48:t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:-1;n<0&&$.x(`invalid non-hex character in unicode escape`,e),r=r<<4|n}(r<0||r>1114111||r>=55296&&r<=57343)&&$.x(`invalid unicode escape`,e,t),o+=String.fromCodePoint(r),s=e.p--,c=0}else a&&(n===32||n===9)?c=2:(n===98?o+=`\b`:n===116?o+=` `:n===110?o+=`
231
238
  `:n===102?o+=`\f`:n===114?o+=`\r`:n===101?o+=`\x1B`:n===34?o+=`"`:n===92?o+=`\\`:$.x(`unrecognised escape sequence`,e),s=e.p+1,c=0);else n!==32&&n!==9&&(c===2&&$.x(`invalid escape: only line-ending whitespace may be escaped`,e,s),c=+(!i&&n===92),s=e.p);$.x(`unfinished string`,e,t)}
232
239
  /*!
233
240
  * Copyright (c) Squirrel Chat et al., All rights reserved.
@@ -256,7 +263,7 @@ function LU(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,i=n===39,a=n===e.s.charCode
256
263
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
257
264
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
258
265
  */
259
- let RU=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i;var zU=class e extends Date{#e=!1;#t=!1;#n=null;constructor(e,t,n){let r=!0,i=!0,a=`Z`,o;if(typeof e==`string`)if(t)prep:{if(t<3){if(+e.slice(11,13)>23){e=``;break prep}t===2?(a=null,e+=`Z`):(o=e.charCodeAt(e.length-1))!==90&&o!==122&&(a=e.slice(e.length-6)),n&&(e=e.slice(0,10)+`T`+e.slice(11))}else t===4&&(e=+e.slice(0,2)>23?``:`0000-01-01T${e}Z`);r=t!==4,i=t!==3}else{let t=e.match(RU);t?(t[1]||(r=!1,e=`0000-01-01T${e}`),i=!!t[2],i&&e[10]===` `&&(e=e.replace(` `,`T`)),t[2]&&+t[2]>23?e=``:(a=t[3]||null,!a&&i&&(e+=`Z`))):e=``}super(e),isNaN(this.getTime())||(this.#e=r,this.#t=i,this.#n=a)}isDateTime(){return this.#e&&this.#t}isLocal(){return!this.#e||!this.#t||!this.#n}isDate(){return this.#e&&!this.#t}isTime(){return this.#t&&!this.#e}isValid(){return this.#e||this.#t}toISOString(){let e=super.toISOString();if(this.isDate())return e.slice(0,10);if(this.isTime())return e.slice(11,23);if(this.#n===null)return e.slice(0,-1);if(this.#n===`Z`||this.#n===`z`)return e;let t=this.#n.slice(1,3)*60+ +this.#n.slice(4,6);return t=this.#n[0]===`-`?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#n}static wrapAsOffsetDateTime(t,n=`Z`){let r=new e(t);return r.#n=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#n=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#t=!1,n.#n=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#e=!1,n.#n=null,n}};
266
+ let KW=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i;var qW=class e extends Date{#e=!1;#t=!1;#n=null;constructor(e,t,n){let r=!0,i=!0,a=`Z`,o;if(typeof e==`string`)if(t)prep:{if(t<3){if(+e.slice(11,13)>23){e=``;break prep}t===2?(a=null,e+=`Z`):(o=e.charCodeAt(e.length-1))!==90&&o!==122&&(a=e.slice(e.length-6)),n&&(e=e.slice(0,10)+`T`+e.slice(11))}else t===4&&(e=+e.slice(0,2)>23?``:`0000-01-01T${e}Z`);r=t!==4,i=t!==3}else{let t=e.match(KW);t?(t[1]||(r=!1,e=`0000-01-01T${e}`),i=!!t[2],i&&e[10]===` `&&(e=e.replace(` `,`T`)),t[2]&&+t[2]>23?e=``:(a=t[3]||null,!a&&i&&(e+=`Z`))):e=``}super(e),isNaN(this.getTime())||(this.#e=r,this.#t=i,this.#n=a)}isDateTime(){return this.#e&&this.#t}isLocal(){return!this.#e||!this.#t||!this.#n}isDate(){return this.#e&&!this.#t}isTime(){return this.#t&&!this.#e}isValid(){return this.#e||this.#t}toISOString(){let e=super.toISOString();if(this.isDate())return e.slice(0,10);if(this.isTime())return e.slice(11,23);if(this.#n===null)return e.slice(0,-1);if(this.#n===`Z`||this.#n===`z`)return e;let t=this.#n.slice(1,3)*60+ +this.#n.slice(4,6);return t=this.#n[0]===`-`?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#n}static wrapAsOffsetDateTime(t,n=`Z`){let r=new e(t);return r.#n=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#n=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#t=!1,n.#n=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#e=!1,n.#n=null,n}};
260
267
  /*!
261
268
  * Copyright (c) Squirrel Chat et al., All rights reserved.
262
269
  * SPDX-License-Identifier: BSD-3-Clause
@@ -284,7 +291,7 @@ let RU=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[
284
291
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
285
292
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
286
293
  */
287
- function BU(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function VU(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function HU(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||$.x(`document contains excessively nested structures. aborting.`,e);let t=r===91?$U(e):QU(e);return e.d++,t}return r===34||r===39?LU(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&$.x(`invalid value`,e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&$.x(`invalid value`,e,n),e.p++,!1):r===43||r===45?UU(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?KU(e,r,t):e.s.charCodeAt(e.p+2)===58?qU(e,r,t):UU(e,e.p,r,0,t)}function UU(e,t,n,r,i){let a=n,o=0,s=!1;if(a===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&$.x(`invalid value`,e,t),e.p++,(r||1)/0;if(a===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&$.x(`invalid value`,e,t),e.p++,NaN;if(a===48){if(++e.p>=e.s.length||VU(a=e.s.charCodeAt(e.p),i))return e.bi===!0?0n:0;if(!r){if(a===120)return WU(e,t,16,i);if(a===98)return WU(e,t,2,i);if(a===111)return WU(e,t,8,i)}a===46?o=2:a===101||a===69?o=4:$.x(`illegal leading zero`,e,t)}else BU(a)||$.x(`invalid value`,e,t);for(;++e.p<e.s.length&&(a=e.s.charCodeAt(e.p),!VU(a,i));)o||=1,a===95?(o&1||$.x(`illegal underscore`,e),o+=11,s=!0):o===1&&a===46?o=2:(o===1||o===3)&&(a===101||a===69)?o=4:o===4&&(a===43||a===45)?o=6:BU(a)?o>9?o-=11:o&1||o++:$.x(`illegal character in numeric literal`,e);if(!o){let t=(n-48)*(r||1);return e.bi===!0?BigInt(t):t}o&1||$.x(`unfinished numeric value`,e,t);let c=e.s.slice(t,e.p);return s&&(c=c.replaceAll(`_`,``)),o>1?parseFloat(c):GU(e,c,10,t)}function WU(e,t,n,r){let i,a=1;for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!VU(i,r));)i===95?(a&1&&$.x(`illegal underscore`,e),a=3):BU(i,n)?a&1&&a--:$.x(`illegal character in numeric literal`,e);a&1&&$.x(`unfinished numeric value`,e);let o=e.s.slice(t+2,e.p);return a&&(o=o.replaceAll(`_`,``)),GU(e,o,n,t)}function GU(e,t,n,r){if(e.bi!==!0)int:{let i=parseInt(t,n);if(!Number.isSafeInteger(i)){if(e.bi)break int;$.x(`integer value cannot be represented losslessly`,e,r)}return i}return BigInt(n===10?t:(n===2?`0b`:n===8?`0o`:`0x`)+t)}function KU(e,t,n){let r=e.p++,i;if(!BU(t)||!BU(e.s.charCodeAt(e.p++))||!BU(e.s.charCodeAt(e.p++))||!BU(e.s.charCodeAt(e.p++)))return UU(e,e.p=r,t,0,n);if(e.p+=5,BU(e.s.charCodeAt(e.p++))||$.x(`invalid date-time: date part is malformed`,e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(i=!0,!BU(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116)return JU(e,e.s.slice(r,e.p),3,!1,r);if(e.s.charCodeAt(e.p+=3)!==58&&$.x(`invalid date-time: time part is malformed`,e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;BU(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122)return JU(e,e.s.slice(r,++e.p),1,i,r,`[+00:00]`);if(t===43||t===45)return JU(e,e.s.slice(r,e.p+=6),1,i,r,!e.ld&&`[`+e.s.slice(e.p-6,e.p)+`]`)}return JU(e,e.s.slice(r,e.p),2,i,r)}function qU(e,t,n){let r=e.p;if(!BU(t)||!BU(e.s.charCodeAt(++e.p)))return UU(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;BU(e.s.charCodeAt(++e.p)););return JU(e,e.s.slice(r,e.p),4,!1,r)}function JU(e,t,n,r,i,a){if(e.ld){let a=new zU(t,n,r);return a.isValid()||$.x(`invalid date`,e,i),a}try{switch(a&&(t+=a),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(t){$.x(t instanceof Error?t.message:``+t,e,i)}}
294
+ function JW(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function YW(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function XW(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||$.x(`document contains excessively nested structures. aborting.`,e);let t=r===91?sG(e):oG(e);return e.d++,t}return r===34||r===39?GW(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&$.x(`invalid value`,e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&$.x(`invalid value`,e,n),e.p++,!1):r===43||r===45?ZW(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?eG(e,r,t):e.s.charCodeAt(e.p+2)===58?tG(e,r,t):ZW(e,e.p,r,0,t)}function ZW(e,t,n,r,i){let a=n,o=0,s=!1;if(a===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&$.x(`invalid value`,e,t),e.p++,(r||1)/0;if(a===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&$.x(`invalid value`,e,t),e.p++,NaN;if(a===48){if(++e.p>=e.s.length||YW(a=e.s.charCodeAt(e.p),i))return e.bi===!0?0n:0;if(!r){if(a===120)return QW(e,t,16,i);if(a===98)return QW(e,t,2,i);if(a===111)return QW(e,t,8,i)}a===46?o=2:a===101||a===69?o=4:$.x(`illegal leading zero`,e,t)}else JW(a)||$.x(`invalid value`,e,t);for(;++e.p<e.s.length&&(a=e.s.charCodeAt(e.p),!YW(a,i));)o||=1,a===95?(o&1||$.x(`illegal underscore`,e),o+=11,s=!0):o===1&&a===46?o=2:(o===1||o===3)&&(a===101||a===69)?o=4:o===4&&(a===43||a===45)?o=6:JW(a)?o>9?o-=11:o&1||o++:$.x(`illegal character in numeric literal`,e);if(!o){let t=(n-48)*(r||1);return e.bi===!0?BigInt(t):t}o&1||$.x(`unfinished numeric value`,e,t);let c=e.s.slice(t,e.p);return s&&(c=c.replaceAll(`_`,``)),o>1?parseFloat(c):$W(e,c,10,t)}function QW(e,t,n,r){let i,a=1;for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!YW(i,r));)i===95?(a&1&&$.x(`illegal underscore`,e),a=3):JW(i,n)?a&1&&a--:$.x(`illegal character in numeric literal`,e);a&1&&$.x(`unfinished numeric value`,e);let o=e.s.slice(t+2,e.p);return a&&(o=o.replaceAll(`_`,``)),$W(e,o,n,t)}function $W(e,t,n,r){if(e.bi!==!0)int:{let i=parseInt(t,n);if(!Number.isSafeInteger(i)){if(e.bi)break int;$.x(`integer value cannot be represented losslessly`,e,r)}return i}return BigInt(n===10?t:(n===2?`0b`:n===8?`0o`:`0x`)+t)}function eG(e,t,n){let r=e.p++,i;if(!JW(t)||!JW(e.s.charCodeAt(e.p++))||!JW(e.s.charCodeAt(e.p++))||!JW(e.s.charCodeAt(e.p++)))return ZW(e,e.p=r,t,0,n);if(e.p+=5,JW(e.s.charCodeAt(e.p++))||$.x(`invalid date-time: date part is malformed`,e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(i=!0,!JW(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116)return nG(e,e.s.slice(r,e.p),3,!1,r);if(e.s.charCodeAt(e.p+=3)!==58&&$.x(`invalid date-time: time part is malformed`,e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;JW(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122)return nG(e,e.s.slice(r,++e.p),1,i,r,`[+00:00]`);if(t===43||t===45)return nG(e,e.s.slice(r,e.p+=6),1,i,r,!e.ld&&`[`+e.s.slice(e.p-6,e.p)+`]`)}return nG(e,e.s.slice(r,e.p),2,i,r)}function tG(e,t,n){let r=e.p;if(!JW(t)||!JW(e.s.charCodeAt(++e.p)))return ZW(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;JW(e.s.charCodeAt(++e.p)););return nG(e,e.s.slice(r,e.p),4,!1,r)}function nG(e,t,n,r,i,a){if(e.ld){let a=new qW(t,n,r);return a.isValid()||$.x(`invalid date`,e,i),a}try{switch(a&&(t+=a),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(t){$.x(t instanceof Error?t.message:``+t,e,i)}}
288
295
  /*!
289
296
  * Copyright (c) Squirrel Chat et al., All rights reserved.
290
297
  * SPDX-License-Identifier: BSD-3-Clause
@@ -312,7 +319,7 @@ function BU(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48
312
319
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
313
320
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
314
321
  */
315
- function YU(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&$.x(`control characters are not allowed in comments`,e)}}function XU(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;YU(e)}}
322
+ function rG(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&$.x(`control characters are not allowed in comments`,e)}}function iG(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;rG(e)}}
316
323
  /*!
317
324
  * Copyright (c) Squirrel Chat et al., All rights reserved.
318
325
  * SPDX-License-Identifier: BSD-3-Clause
@@ -340,7 +347,7 @@ function YU(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)br
340
347
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
341
348
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
342
349
  */
343
- function ZU(e,t=61){let n,r=0,i=[],a,o=e.s.charCodeAt(n=e.p);do if(o===t)return r||$.x(`unexpected end of key`,e),r===1&&i.push(e.s.slice(a,e.p)),e.p++,i;else o===46?(r||$.x(`illegal empty bare key`,e),r===1&&i.push(e.s.slice(a,e.p)),r=0):!r&&(o===34||o===39)?(o===e.s.charCodeAt(e.p+1)&&o===e.s.charCodeAt(e.p+2)&&$.x(`illegal quoted key: multiline strings are not allowed`,e),i.push(LU(e)),r=2,e.p--):o===32||o===9?r===1&&(i.push(e.s.slice(a,e.p)),r=2):r===2||o<48&&o!==45||o>57&&o<65||o>90&&o<97&&o!==95||o>122?$.x(`illegal character in key`,e):r||(r=1,a=e.p);while(o=e.s.charCodeAt(++e.p));$.x(`incomplete key-value: cannot find end of key`,e,n)}function QU(e){let t=e.p++,n=Object.create(null),r=new Set,i;for(;e.p<e.s.length;){if(XU(e),(i=e.s.charCodeAt(e.p))===125)return e.p++,n;let t,a=n,o=!1,s=e.p,c=ZU(e);for(let n=0;n<c.length;n++){n&&(a=o?a[t]:a[t]=Object.create(null)),t=c[n],(o=Object.hasOwn(a,t))&&(typeof a[t]!=`object`||r.has(a[t]))&&$.x(`trying to redefine an already defined value`,e,s);let i=t===`__proto__`;if(e.uk&&(i||t===`constructor`)){a=e.uk!==1&&$.x(`document contains an unsafe property`,e,s);break}!o&&i&&Object.defineProperty(a,t,{enumerable:!0,configurable:!0,writable:!0})}o&&$.x(`trying to redefine an already defined value`,e,s),XU(e,!0,!0);let l=HU(e,125);if(a&&typeof(a[t]=l)==`object`&&r.add(l),XU(e),(i=e.s.charCodeAt(e.p++))===125)return n;i!==44&&$.x(`expected comma or end of structure`,e,e.p-1)}$.x(`unfinished table`,e,t)}function $U(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(XU(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(HU(e,93)),XU(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&$.x(`expected comma or end of structure`,e,e.p-1)}$.x(`unfinished array`,e,t)}
350
+ function aG(e,t=61){let n,r=0,i=[],a,o=e.s.charCodeAt(n=e.p);do if(o===t)return r||$.x(`unexpected end of key`,e),r===1&&i.push(e.s.slice(a,e.p)),e.p++,i;else o===46?(r||$.x(`illegal empty bare key`,e),r===1&&i.push(e.s.slice(a,e.p)),r=0):!r&&(o===34||o===39)?(o===e.s.charCodeAt(e.p+1)&&o===e.s.charCodeAt(e.p+2)&&$.x(`illegal quoted key: multiline strings are not allowed`,e),i.push(GW(e)),r=2,e.p--):o===32||o===9?r===1&&(i.push(e.s.slice(a,e.p)),r=2):r===2||o<48&&o!==45||o>57&&o<65||o>90&&o<97&&o!==95||o>122?$.x(`illegal character in key`,e):r||(r=1,a=e.p);while(o=e.s.charCodeAt(++e.p));$.x(`incomplete key-value: cannot find end of key`,e,n)}function oG(e){let t=e.p++,n=Object.create(null),r=new Set,i;for(;e.p<e.s.length;){if(iG(e),(i=e.s.charCodeAt(e.p))===125)return e.p++,n;let t,a=n,o=!1,s=e.p,c=aG(e);for(let n=0;n<c.length;n++){n&&(a=o?a[t]:a[t]=Object.create(null)),t=c[n],(o=Object.hasOwn(a,t))&&(typeof a[t]!=`object`||r.has(a[t]))&&$.x(`trying to redefine an already defined value`,e,s);let i=t===`__proto__`;if(e.uk&&(i||t===`constructor`)){a=e.uk!==1&&$.x(`document contains an unsafe property`,e,s);break}!o&&i&&Object.defineProperty(a,t,{enumerable:!0,configurable:!0,writable:!0})}o&&$.x(`trying to redefine an already defined value`,e,s),iG(e,!0,!0);let l=XW(e,125);if(a&&typeof(a[t]=l)==`object`&&r.add(l),iG(e),(i=e.s.charCodeAt(e.p++))===125)return n;i!==44&&$.x(`expected comma or end of structure`,e,e.p-1)}$.x(`unfinished table`,e,t)}function sG(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(iG(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(XW(e,93)),iG(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&$.x(`expected comma or end of structure`,e,e.p-1)}$.x(`unfinished array`,e,t)}
344
351
  /*!
345
352
  * Copyright (c) Squirrel Chat et al., All rights reserved.
346
353
  * SPDX-License-Identifier: BSD-3-Clause
@@ -368,7 +375,7 @@ function ZU(e,t=61){let n,r=0,i=[],a,o=e.s.charCodeAt(n=e.p);do if(o===t)return
368
375
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
369
376
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
370
377
  */
371
- function eW(e,t,n,r,i){let a=n,o=r,s,c=!1,l;for(let n=0;n<t.length;n++){if(n){if(a=c?a[s]:a[s]=Object.create(null),o=(l=o[s]).c,i===0&&(l.t===1||l.t===2))return null;if(l.t===2){let e=a.length-1;a=a[e],o=o[e].c}}if(s=t[n],(c=Object.hasOwn(a,s))&&o[s]?.t===0&&o[s]?.d)return null;if(!c){let r=s===`__proto__`;if(e.uk&&(r||s===`constructor`))return!1;r&&(Object.defineProperty(a,s,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(o,s,{enumerable:!0,configurable:!0,writable:!0})),o[s]={t:n<t.length-1&&i===2?3:i,d:!1,i:0,c:Object.create(null)}}}if(l=o[s],l.t!==i&&!(i===1&&l.t===3)||(i===2&&(l.d||(l.d=!0,a[s]=[]),a[s].push(a=Object.create(null)),l.c[l.i++]=l={t:1,d:!1,i:0,c:Object.create(null)}),l.d))return null;if(l.d=!0,i===1)a=c?a[s]:a[s]=Object.create(null);else if(i===0&&c)return null;return[s,a,l.c]}function tW(e,t,n){(t===null||e.uk===2)&&$.x(t===null?`trying to redefine an already defined table or value`:`document contains an unsafe property`,e,n)}function nW(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour===`throw`?2:+(t.unsafeKeyBehaviour===`drop`)},r=Object.create(null),i=Object.create(null),a,o=!1,s=r,c=i;for(e.charCodeAt(0)===65279&&n.p++,XU(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let t=e.charCodeAt(++n.p)===91;a=n.p+=+t,o=!1;let l=ZU(n,93);t&&(e.charCodeAt(n.p)!==93&&$.x(`expected end of table array declaration`,n),n.p++);let u=eW(n,l,r,i,t?2:1);u?(c=u[2],s=u[1]):(tW(n,u,a),o=!0)}else{a=n.p;let e=eW(n,ZU(n),s,c,0);!e&&!o&&tW(n,e,a),XU(n,!0,!0);let t=HU(n,void 0);e&&!o&&(e[1][e[0]]=t)}XU(n,!0),n.p<e.length&&(a=e.charCodeAt(n.p))!==10&&(a!==13||e.charCodeAt(n.p+1)!==10)&&$.x(`each key-value declaration must be followed by an end-of-line`,n),XU(n)}return r}``.isWellFormed;
378
+ function cG(e,t,n,r,i){let a=n,o=r,s,c=!1,l;for(let n=0;n<t.length;n++){if(n){if(a=c?a[s]:a[s]=Object.create(null),o=(l=o[s]).c,i===0&&(l.t===1||l.t===2))return null;if(l.t===2){let e=a.length-1;a=a[e],o=o[e].c}}if(s=t[n],(c=Object.hasOwn(a,s))&&o[s]?.t===0&&o[s]?.d)return null;if(!c){let r=s===`__proto__`;if(e.uk&&(r||s===`constructor`))return!1;r&&(Object.defineProperty(a,s,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(o,s,{enumerable:!0,configurable:!0,writable:!0})),o[s]={t:n<t.length-1&&i===2?3:i,d:!1,i:0,c:Object.create(null)}}}if(l=o[s],l.t!==i&&!(i===1&&l.t===3)||(i===2&&(l.d||(l.d=!0,a[s]=[]),a[s].push(a=Object.create(null)),l.c[l.i++]=l={t:1,d:!1,i:0,c:Object.create(null)}),l.d))return null;if(l.d=!0,i===1)a=c?a[s]:a[s]=Object.create(null);else if(i===0&&c)return null;return[s,a,l.c]}function lG(e,t,n){(t===null||e.uk===2)&&$.x(t===null?`trying to redefine an already defined table or value`:`document contains an unsafe property`,e,n)}function uG(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour===`throw`?2:+(t.unsafeKeyBehaviour===`drop`)},r=Object.create(null),i=Object.create(null),a,o=!1,s=r,c=i;for(e.charCodeAt(0)===65279&&n.p++,iG(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let t=e.charCodeAt(++n.p)===91;a=n.p+=+t,o=!1;let l=aG(n,93);t&&(e.charCodeAt(n.p)!==93&&$.x(`expected end of table array declaration`,n),n.p++);let u=cG(n,l,r,i,t?2:1);u?(c=u[2],s=u[1]):(lG(n,u,a),o=!0)}else{a=n.p;let e=cG(n,aG(n),s,c,0);!e&&!o&&lG(n,e,a),iG(n,!0,!0);let t=XW(n,void 0);e&&!o&&(e[1][e[0]]=t)}iG(n,!0),n.p<e.length&&(a=e.charCodeAt(n.p))!==10&&(a!==13||e.charCodeAt(n.p+1)!==10)&&$.x(`each key-value declaration must be followed by an end-of-line`,n),iG(n)}return r}``.isWellFormed;
372
379
  /*!
373
380
  * Copyright (c) Squirrel Chat et al., All rights reserved.
374
381
  * SPDX-License-Identifier: BSD-3-Clause
@@ -396,7 +403,7 @@ function eW(e,t,n,r,i){let a=n,o=r,s,c=!1,l;for(let n=0;n<t.length;n++){if(n){if
396
403
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
397
404
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
398
405
  */
399
- const rW=e=>e.codePointAt(0).toString(16).toUpperCase(),iW=String.raw`
406
+ const dG=e=>e.codePointAt(0).toString(16).toUpperCase(),fG=String.raw`
400
407
  ObjC.import("AppKit");
401
408
  ObjC.import("CoreText");
402
409
  function lacksOf(font, points) {
@@ -443,34 +450,36 @@ function run(argv) {
443
450
  : iterm(argv[1], points),
444
451
  );
445
452
  }
446
- `;function aW(e){let t=Ne({bin:`osascript`,args:[`-l`,`JavaScript`,`-e`,iW,...e],timeoutMs:3e3,category:`doctor.font`});if(!t.ok){if(t.reason===`rate-limited`)throw new PU(`the font`);return{kind:`failed`,reason:`osascript failed (${t.error??`${t.reason}: ${t.stderr.trim()}`})`}}let n;try{n=JSON.parse(t.stdout)}catch{return{kind:`failed`,reason:`osascript answered ${JSON.stringify(t.stdout.trim())}, not JSON`}}return typeof n==`object`&&n&&`error`in n?{kind:`failed`,reason:n.error}:{kind:`ok`,value:n}}const oW=e=>e.map(e=>String.fromCodePoint(parseInt(e,16))),sW=e=>[...e].map(rW).join(`,`);function cW(e,t){let n=aW([`font`,e.kind,e.name,sW(t)]);if(n.kind===`failed`)return n;let{lacks:r}=n.value;return{kind:`ok`,value:{font:e.name,lacks:r===null?null:oW(r)}}}function lW(e,t){if(e.font===null)return{kind:`failed`,reason:`iTerm2 profile ${JSON.stringify(e.name)} names no font`};let n=`iTerm2 profile ${JSON.stringify(e.name)}`+(e.nonAscii?`, its non-ASCII font`:``)+(e.powerline?`, built-in Powerline glyphs on`:``),r=e.lacks===null||!e.powerline?e.lacks:e.lacks.filter(e=>!LD(t,e));return{kind:`ok`,value:{font:e.font,from:n,lacks:r}}}const uW=e=>e.kind===`ok`&&e.value.lacks!==null&&e.value.lacks.length===0;function dW(e,t,n){if(e.length===0)return{kind:`failed`,reason:t===null?`iTerm2 has no profiles in its preferences`:`iTerm2 has no profile named ${JSON.stringify(t)}`};let r=e.map(e=>lW(e,n));if(t!==null)return r[0];let i=r.find(e=>!uW(e));return i===void 0?{kind:`ok`,value:{font:[...new Set(r.flatMap(e=>e.kind===`ok`?[e.value.font]:[]))].join(`, `),from:`every iTerm2 profile, since the session does not say which draws the bar`,lacks:[]}}:i.kind===`failed`?i:{kind:`ok`,value:{...i.value,from:`${i.value.from}, one of its profiles, and the session does not say which draws the bar`}}}function fW(e,t,n){if(process.platform!==`darwin`)return{kind:`failed`,reason:`iTerm2 runs only on macOS`};let r=t.ITERM_PROFILE??null,i=aW([`iterm`,r??``,sW(n)]);return i.kind===`failed`?i:dW(i.value.profiles.map(e=>({...e,lacks:e.lacks===null?null:oW(e.lacks)})),r,e)}function pW(e,t){let n=e.split(`
447
- `).filter(e=>e!==``).map(e=>{let t=e.indexOf(` `);return t<=0?null:{family:e.slice(0,t),ranges:e.slice(t+1).split(/\s+/).filter(e=>e!==``).map(e=>{let[t,n=t]=e.split(`-`).map(e=>parseInt(e,16));return[t,n]})}});if(n.length===0||n.some(e=>e===null))return{kind:`failed`,reason:`fc-match answered ${JSON.stringify(e.slice(0,200))}, not families and their charsets`};let r=n.flatMap(e=>e.ranges),i=[...t].filter(e=>{let t=e.codePointAt(0);return!r.some(([e,n])=>e<=t&&t<=n)});return{kind:`ok`,value:{font:n[0].family,lacks:i}}}const mW=e=>e.replace(/[\\:,=-]/g,`\\$&`);function hW(e,t){let n=Ne({bin:`fc-match`,args:[`--sort`,`--format`,`%{family[0]} %{charset}
448
- `,`:family=${mW(e)}`],timeoutMs:3e3,category:`doctor.font`});if(!n.ok){if(n.reason===`rate-limited`)throw new PU(`the font`);return{kind:`failed`,reason:`fc-match failed (${n.error??`${n.reason}: ${n.stderr.trim()}`})`}}return pW(n.stdout,t)}function gW(e,t){return process.platform===`darwin`?cW(e,t):hW(e.name,t)}function _W(e,t){let n=t||l.join(e,`.config`);return[l.join(n,`alacritty`,`alacritty.toml`),l.join(n,`alacritty.toml`),l.join(e,`.config`,`alacritty`,`alacritty.toml`),l.join(e,`.alacritty.toml`)]}function vW(e){return e===`darwin`?`Menlo`:`monospace`}const yW=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function bW(e){let t=yW(e.font)?e.font:{},n=yW(t.normal)?t.normal:{},r=(yW(e.general)?e.general:{}).import??e.import??[];return{family:typeof n.family==`string`?n.family:null,imports:Array.isArray(r)?r.filter(e=>typeof e==`string`):[]}}function xW(e,t,n){let i;try{i=r.readFileSync(e,`utf8`)}catch(t){return{kind:`failed`,reason:`cannot read ${e}: ${t.message}`}}let a;try{a=nW(i)}catch(t){return{kind:`failed`,reason:`cannot parse ${e}: ${t.message}`}}let o=bW(a);if(o.family!==null)return{kind:`ok`,value:{family:o.family,from:e}};if(n===5)return{kind:`ok`,value:null};let s=null;for(let i of o.imports){let a=i.startsWith(`~/`)?l.join(t,i.slice(2)):l.resolve(l.dirname(e),i);if(!r.existsSync(a))continue;let o=xW(a,t,n+1);if(o.kind===`failed`)return o;s=o.value??s}return{kind:`ok`,value:s}}function SW(e,t){let n=h.homedir(),i=_W(n,e.XDG_CONFIG_HOME).find(e=>r.existsSync(e)),a=i===void 0?{kind:`ok`,value:null}:xW(i,n,0);if(a.kind===`failed`)return a;let o=a.value?.family??vW(process.platform),s=a.value?.from??(i===void 0?`Alacritty's default, no config file`:`Alacritty's default, ${i} sets none`),c=gW({kind:`family`,name:o},t);if(c.kind===`failed`)return c;let{font:l,lacks:u}=c.value;return{kind:`ok`,value:{font:l,from:l===o?s:`${s}; ${o} as fontconfig matches it`,lacks:u}}}const CW={iterm2:fW,alacritty:(e,t,n)=>SW(t,n)};function wW(e,t,n){return CW[e.name](e.version,t,n)}function TW(e){let t=e.replace(/\n$/,``);if(t===` `)return{kind:`ok`,value:null};let n=t.split(` `),[r,i,a,o]=n;return n.length!==4||!/^[1-9]\d*$/.test(o)?{kind:`failed`,reason:`tmux answered ${JSON.stringify(e)}, not the four fields asked for`}:{kind:`ok`,value:{features:r.split(`,`).filter(e=>e!==``),termtype:i,termname:a,pid:Number(o)}}}const EW=/^(sshd|mosh-server)\b/;function DW(e,t){let n=new Map;for(let t of e.split(`
449
- `)){let e=/^\s*(\d+)\s+(\d+)\s+(.*)$/.exec(t);if(e===null)continue;let r=e[3].trim();n.set(Number(e[1]),{ppid:Number(e[2]),name:r.slice(r.lastIndexOf(`/`)+1)})}if(!n.has(t))return{kind:`failed`,reason:`process ${t} is not running`};let r=new Set;for(let e=n.get(t);e!==void 0;e=n.get(e.ppid)){if(EW.test(e.name))return{kind:`ok`,value:!0};if(r.has(e.ppid))break;r.add(e.ppid)}return{kind:`ok`,value:!1}}function OW(e){let t=Ne({bin:`ps`,args:[`-A`,`-o`,`pid=,ppid=,comm=`],timeoutMs:2e3,category:`doctor.process`});if(!t.ok){if(t.reason===`rate-limited`)throw new PU(`the processes`);return{kind:`failed`,reason:`ps failed (${t.error??`${t.reason}: ${t.stderr.trim()}`})`}}return DW(t.stdout,e)}function kW(e){let t=fz(e,`doctor.tmux`,[`display`,`-p`,`-t`,e.pane,`#{client_termfeatures} #{client_termtype} #{client_termname} #{client_pid}`]);if(t.kind===`rate-limited`)throw new PU(`tmux`);return t.kind===`failed`?{kind:`failed`,reason:t.reason}:TW(t.stdout)}function AW(e){return{probeTmux:kW,remoteLogin:OW,fontInUse:wW,loadConfig:e,marks:NU()}}function jW(e){let t={layers:e.layers,warnings:e.warning===null?[]:e.warning.split(`
450
- `)};return e.error===null?{...t,kind:`loaded`,unused:e.unused}:{...t,kind:`failed`,error:e.error}}function MW(e){let{env:t,statusLine:n}=pi(e);if(t!==void 0&&!mi(t))throw Error(`cannot read ${e}: \`env\` is not an object`);return{path:e,env:t??{},statusLine:n===void 0?{kind:`absent`}:mi(n)?{kind:`present`,refreshInterval:n.refreshInterval}:{kind:`not-an-object`,value:n}}}function NW(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,client:e.probeTmux(t)}}function PW(e,t,n,r){let i=n.terminalEnv;if(t.kind===`unreported`)return{kind:`unreported`};if(t.kind===`inside`&&t.client.kind===`failed`)return{kind:`unasked`,reason:t.client.reason};if(t.kind===`inside`&&t.client.kind===`ok`&&t.client.value===null)return{kind:`unasked`,reason:`tmux has no client attached to the pane's session`};if(t.kind===`outside`&&i===void 0)return{kind:`unreported`};let a=t.kind===`inside`&&t.client.kind===`ok`?t.client.value:null,o=a===null?qD(i??{}):KD(a);if(o.kind===`unknown`)return o;let{name:s,version:c}=o.terminal;if(zD(s))return{kind:`bundling`,name:s,version:c};let{ITERM_PROFILE:l,...u}=i??{},d=a===null?{kind:`ok`,value:n.ssh===!0}:e.remoteLogin(a.pid);return{kind:`configured`,name:s,version:c,font:d.kind===`failed`?{kind:`failed`,reason:`whether the terminal is remote could not be asked: ${d.reason}`}:d.value?{kind:`failed`,reason:`the terminal is on the far side of a remote login, so its font is on the machine it runs on`}:e.fontInUse({name:s,version:c},a===null?i??{}:u,r)}}function FW(e){return{kind:`arrived`,handler:e,bar:Et}}function IW(e,t,n){let r=new Map;for(let i of bh(ag(e,t).node)){if(i.kind!==`segment`)continue;let t=Nh(e.segments[i.name])[jh],a=zh(i,jh,t,e=>n(e.key));a===`bar`||a===`none`||r.set(i.drafts?.effect?.id??gh(i),a)}return[...r].map(([e,t])=>({placement:e,effect:t}))}function LW(e,t,n,r){let i=e.loadConfig(n),a=BI(i.config,r,()=>!1),o=NW(e,t.tmux),s=[...new Set([...Fm(a),...Pm(JSON.stringify(i.config))])].join(``);return{tmux:o,nerdFont:s===``?{kind:`none`}:{kind:`glyphs`,glyphs:s,terminal:PW(e,o,t,s)},marks:e.marks.read(),config:jW(i),effect:a.effect,placementEffects:IW(i.config,a.preset,r),transitions:a.transitions,claudeSettings:MW(ui(li(t.claudeConfigDir)))}}function RW(e,t){let n=t.claudeSettings.path;switch(e.kind){case`claude-settings`:{let i=Jr(fi(n),e.path,JSON.stringify(e.value),Nr);return r.mkdirSync(l.dirname(n),{recursive:!0}),Ie(n,i),{...t,claudeSettings:MW(n)}}default:return e.kind}}const zW={connectMs:200,budgetMs:500};async function BW(e){let n=e.includes(`--json`),r=await VW();if(r.kind!==`ok`&&(t.stderr.write(`daemon-stats: ${Tt(r)}\n`),t.exit(1)),n){t.stdout.write(JSON.stringify(r.value,null,2)+`
451
- `);return}t.stdout.write(GW(r.value))}function VW(){return yt({kind:`stats`},zW,e=>`stats`in e?e.stats:void 0)}function HW(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/1024/1024).toFixed(1)}MB`}function UW(e,t){let n=e+t;return n===0?`n/a`:`${(e/n*100).toFixed(1)}%`}function WW(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 GW(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 ${WW(e.uptimeSec)}`),t.push(` rss ${HW(e.rssBytes)}`),t.push(` heapUsed ${HW(e.heapUsedBytes)}`),t.push(` heapTotal ${HW(e.heapTotalBytes)}`),t.push(` external ${HW(e.externalBytes)}`),t.push(` arrayBuffers ${HW(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 ${UW(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 ${UW(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(``),t.push(`effectCache`),t.push(` sessions ${e.effectCache.sessions}`),t.push(` effects ${e.effectCache.effects}`),t.push(``),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(`
453
+ `;function pG(e){let t=Ne({bin:`osascript`,args:[`-l`,`JavaScript`,`-e`,fG,...e],timeoutMs:3e3,category:`doctor.font`});if(!t.ok){if(t.reason===`rate-limited`)throw new HW(`the font`);return{kind:`failed`,reason:`osascript failed (${t.error??`${t.reason}: ${t.stderr.trim()}`})`}}let n;try{n=JSON.parse(t.stdout)}catch{return{kind:`failed`,reason:`osascript answered ${JSON.stringify(t.stdout.trim())}, not JSON`}}return typeof n==`object`&&n&&`error`in n?{kind:`failed`,reason:n.error}:{kind:`ok`,value:n}}const mG=e=>e.map(e=>String.fromCodePoint(parseInt(e,16))),hG=e=>[...e].map(dG).join(`,`);function gG(e,t){let n=pG([`font`,e.kind,e.name,hG(t)]);if(n.kind===`failed`)return n;let{lacks:r}=n.value;return{kind:`ok`,value:{font:e.name,lacks:r===null?null:mG(r)}}}function _G(e,t){if(e.font===null)return{kind:`failed`,reason:`iTerm2 profile ${JSON.stringify(e.name)} names no font`};let n=`iTerm2 profile ${JSON.stringify(e.name)}`+(e.nonAscii?`, its non-ASCII font`:``)+(e.powerline?`, built-in Powerline glyphs on`:``),r=e.lacks===null||!e.powerline?e.lacks:e.lacks.filter(e=>!PO(t,e));return{kind:`ok`,value:{font:e.font,from:n,lacks:r}}}const vG=e=>e.kind===`ok`&&e.value.lacks!==null&&e.value.lacks.length===0;function yG(e,t,n){if(e.length===0)return{kind:`failed`,reason:t===null?`iTerm2 has no profiles in its preferences`:`iTerm2 has no profile named ${JSON.stringify(t)}`};let r=e.map(e=>_G(e,n));if(t!==null)return r[0];let i=r.find(e=>!vG(e));return i===void 0?{kind:`ok`,value:{font:[...new Set(r.flatMap(e=>e.kind===`ok`?[e.value.font]:[]))].join(`, `),from:`every iTerm2 profile, since the session does not say which draws the bar`,lacks:[]}}:i.kind===`failed`?i:{kind:`ok`,value:{...i.value,from:`${i.value.from}, one of its profiles, and the session does not say which draws the bar`}}}function bG(e,t,n){if(process.platform!==`darwin`)return{kind:`failed`,reason:`iTerm2 runs only on macOS`};let r=t.ITERM_PROFILE??null,i=pG([`iterm`,r??``,hG(n)]);return i.kind===`failed`?i:yG(i.value.profiles.map(e=>({...e,lacks:e.lacks===null?null:mG(e.lacks)})),r,e)}function xG(e,t){let n=e.split(`
454
+ `).filter(e=>e!==``).map(e=>{let t=e.indexOf(` `);return t<=0?null:{family:e.slice(0,t),ranges:e.slice(t+1).split(/\s+/).filter(e=>e!==``).map(e=>{let[t,n=t]=e.split(`-`).map(e=>parseInt(e,16));return[t,n]})}});if(n.length===0||n.some(e=>e===null))return{kind:`failed`,reason:`fc-match answered ${JSON.stringify(e.slice(0,200))}, not families and their charsets`};let r=n.flatMap(e=>e.ranges),i=[...t].filter(e=>{let t=e.codePointAt(0);return!r.some(([e,n])=>e<=t&&t<=n)});return{kind:`ok`,value:{font:n[0].family,lacks:i}}}const SG=e=>e.replace(/[\\:,=-]/g,`\\$&`);function CG(e,t){let n=Ne({bin:`fc-match`,args:[`--sort`,`--format`,`%{family[0]} %{charset}
455
+ `,`:family=${SG(e)}`],timeoutMs:3e3,category:`doctor.font`});if(!n.ok){if(n.reason===`rate-limited`)throw new HW(`the font`);return{kind:`failed`,reason:`fc-match failed (${n.error??`${n.reason}: ${n.stderr.trim()}`})`}}return xG(n.stdout,t)}function wG(e,t){return process.platform===`darwin`?gG(e,t):CG(e.name,t)}function TG(e,t){let n=t||l.join(e,`.config`);return[l.join(n,`alacritty`,`alacritty.toml`),l.join(n,`alacritty.toml`),l.join(e,`.config`,`alacritty`,`alacritty.toml`),l.join(e,`.alacritty.toml`)]}function EG(e){return e===`darwin`?`Menlo`:`monospace`}const DG=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function OG(e){let t=DG(e.font)?e.font:{},n=DG(t.normal)?t.normal:{},r=(DG(e.general)?e.general:{}).import??e.import??[];return{family:typeof n.family==`string`?n.family:null,imports:Array.isArray(r)?r.filter(e=>typeof e==`string`):[]}}function kG(e,t,n){let i;try{i=r.readFileSync(e,`utf8`)}catch(t){return{kind:`failed`,reason:`cannot read ${e}: ${t.message}`}}let a;try{a=uG(i)}catch(t){return{kind:`failed`,reason:`cannot parse ${e}: ${t.message}`}}let o=OG(a);if(o.family!==null)return{kind:`ok`,value:{family:o.family,from:e}};if(n===5)return{kind:`ok`,value:null};let s=null;for(let i of o.imports){let a=i.startsWith(`~/`)?l.join(t,i.slice(2)):l.resolve(l.dirname(e),i);if(!r.existsSync(a))continue;let o=kG(a,t,n+1);if(o.kind===`failed`)return o;s=o.value??s}return{kind:`ok`,value:s}}function AG(e,t){let n=h.homedir(),i=TG(n,e.XDG_CONFIG_HOME).find(e=>r.existsSync(e)),a=i===void 0?{kind:`ok`,value:null}:kG(i,n,0);if(a.kind===`failed`)return a;let o=a.value?.family??EG(process.platform),s=a.value?.from??(i===void 0?`Alacritty's default, no config file`:`Alacritty's default, ${i} sets none`),c=wG({kind:`family`,name:o},t);if(c.kind===`failed`)return c;let{font:l,lacks:u}=c.value;return{kind:`ok`,value:{font:l,from:l===o?s:`${s}; ${o} as fontconfig matches it`,lacks:u}}}const jG={iterm2:bG,alacritty:(e,t,n)=>AG(t,n)};function MG(e,t,n){return jG[e.name](e.version,t,n)}function NG(e,t){let n;try{n=JSON.parse(e)}catch(e){return{kind:`failed`,reason:`${t} is not JSON: ${e.message}`}}return Array.isArray(n)&&n.every(e=>typeof e==`string`)?{kind:`ok`,value:n}:{kind:`failed`,reason:`${t} is not a list of terminals`}}function PG(e=l.join(Re(),`doctor-clicked-terminals.json`)){let t=()=>{let t;try{t=r.readFileSync(e,`utf8`)}catch(t){return t.code===`ENOENT`?{kind:`ok`,value:[]}:{kind:`failed`,reason:`${e}: ${t.message}`}}return NG(t,e)};return{read:t,record:n=>{let i=t();if(i.kind===`failed`)throw Error(`doctor: the clicked terminals could not be read: ${i.reason}`);i.value.includes(n)||(r.mkdirSync(l.dirname(e),{recursive:!0}),Ie(e,`${JSON.stringify([...i.value,n],null,2)}\n`))}}}function FG(e){let t=e.replace(/\n$/,``);if(t===` `)return{kind:`ok`,value:null};let n=t.split(` `),[r,i,a,o]=n;return n.length!==4||!/^[1-9]\d*$/.test(o)?{kind:`failed`,reason:`tmux answered ${JSON.stringify(e)}, not the four fields asked for`}:{kind:`ok`,value:{features:r.split(`,`).filter(e=>e!==``),termtype:i,termname:a,pid:Number(o)}}}const IG=/^(sshd|mosh-server)\b/;function LG(e,t){let n=new Map;for(let t of e.split(`
456
+ `)){let e=/^\s*(\d+)\s+(\d+)\s+(.*)$/.exec(t);if(e===null)continue;let r=e[3].trim();n.set(Number(e[1]),{ppid:Number(e[2]),name:r.slice(r.lastIndexOf(`/`)+1)})}if(!n.has(t))return{kind:`failed`,reason:`process ${t} is not running`};let r=new Set;for(let e=n.get(t);e!==void 0;e=n.get(e.ppid)){if(IG.test(e.name))return{kind:`ok`,value:!0};if(r.has(e.ppid))break;r.add(e.ppid)}return{kind:`ok`,value:!1}}function RG(e){let t=Ne({bin:`ps`,args:[`-A`,`-o`,`pid=,ppid=,comm=`],timeoutMs:2e3,category:`doctor.process`});if(!t.ok){if(t.reason===`rate-limited`)throw new HW(`the processes`);return{kind:`failed`,reason:`ps failed (${t.error??`${t.reason}: ${t.stderr.trim()}`})`}}return LG(t.stdout,e)}function zG(e){let t=vB(e,`doctor.tmux`,[`display`,`-p`,`-t`,e.pane,`#{client_termfeatures} #{client_termtype} #{client_termname} #{client_pid}`]);if(t.kind===`rate-limited`)throw new HW(`tmux`);return t.kind===`failed`?{kind:`failed`,reason:t.reason}:FG(t.stdout)}function BG(e){return{probeTmux:zG,remoteLogin:RG,fontInUse:MG,loadConfig:e,marks:VW(),clicked:PG()}}function VG(e){let t={layers:e.layers,warnings:e.warning===null?[]:e.warning.split(`
457
+ `)};return e.error===null?{...t,kind:`loaded`,unused:e.unused}:{...t,kind:`failed`,error:e.error}}function HG(e){let{env:t,statusLine:n}=pi(e);if(t!==void 0&&!mi(t))throw Error(`cannot read ${e}: \`env\` is not an object`);return{path:e,env:t??{},statusLine:n===void 0?{kind:`absent`}:mi(n)?{kind:`present`,refreshInterval:n.refreshInterval}:{kind:`not-an-object`,value:n}}}function UG(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,client:e.probeTmux(t)}}function WG(e,t){switch(e.kind){case`unreported`:return{kind:`unreported`};case`outside`:return t===void 0?{kind:`unreported`}:{kind:`seen`,identified:VO(t),tmuxClient:null};case`inside`:{if(e.client.kind===`failed`)return{kind:`unasked`,reason:e.client.reason};let t=e.client.value;return t===null?{kind:`unasked`,reason:`tmux has no client attached to the pane's session`}:{kind:`seen`,identified:BO(t),tmuxClient:t}}}}function GG(e,t,n,r){if(t.kind!==`seen`)return t;let{identified:i,tmuxClient:a}=t,o=n.terminalEnv;if(i.kind!==`known`)return i;let{name:s,version:c}=i.terminal;if(AO(s))return{kind:`bundling`,name:s,version:c};if(!jO(s))return{kind:`unread`,name:s,version:c};let{ITERM_PROFILE:l,...u}=o??{},d=a===null?{kind:`ok`,value:n.ssh===!0}:e.remoteLogin(a.pid);return{kind:`configured`,name:s,version:c,font:d.kind===`failed`?{kind:`failed`,reason:`whether the terminal is remote could not be asked: ${d.reason}`}:d.value?{kind:`failed`,reason:`the terminal is on the far side of a remote login, so its font is on the machine it runs on`}:e.fontInUse({name:s,version:c},a===null?o??{}:u,r)}}function KG(e){return{kind:`arrived`,handler:e,bar:Et}}function qG(e,t,n){let r=new Map;for(let i of fg(Zg(e,t).node)){if(i.kind!==`segment`)continue;let t=Tg(e.segments[i.name])[Cg],a=jg(i,Cg,t,e=>n(e.key));a===`bar`||a===`none`||r.set(i.drafts?.effect?.id??cg(i),a)}return[...r].map(([e,t])=>({placement:e,effect:t}))}function JG(e,t,n,r){let i=e.loadConfig(n),a=KL(i.config,r,()=>!1),o=UG(e,t.tmux),s=WG(o,t.terminalEnv),c=[...new Set([...Dh(a),...Eh(JSON.stringify(i.config))])].join(``);return{tmux:o,terminal:s,nerdFont:c===``?{kind:`none`}:{kind:`glyphs`,glyphs:c,terminal:GG(e,s,t,c)},marks:e.marks.read(),clicked:e.clicked.read(),config:VG(i),effect:a.effect,placementEffects:qG(i.config,a.preset,r),transitions:a.transitions,claudeSettings:HG(ui(li(t.claudeConfigDir)))}}function YG(e,t){let n=t.claudeSettings.path;switch(e.kind){case`claude-settings`:{let i=Jr(fi(n),e.path,JSON.stringify(e.value),Nr);return r.mkdirSync(l.dirname(n),{recursive:!0}),Ie(n,i),{...t,claudeSettings:HG(n)}}default:return e.kind}}const XG={connectMs:200,budgetMs:500};async function ZG(e){let n=e.includes(`--json`),r=await QG();if(r.kind!==`ok`&&(t.stderr.write(`daemon-stats: ${Tt(r)}\n`),t.exit(1)),n){t.stdout.write(JSON.stringify(r.value,null,2)+`
458
+ `);return}t.stdout.write(nK(r.value))}function QG(){return yt({kind:`stats`},XG,e=>`stats`in e?e.stats:void 0)}function $G(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/1024/1024).toFixed(1)}MB`}function eK(e,t){let n=e+t;return n===0?`n/a`:`${(e/n*100).toFixed(1)}%`}function tK(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 nK(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 ${tK(e.uptimeSec)}`),t.push(` rss ${$G(e.rssBytes)}`),t.push(` heapUsed ${$G(e.heapUsedBytes)}`),t.push(` heapTotal ${$G(e.heapTotalBytes)}`),t.push(` external ${$G(e.externalBytes)}`),t.push(` arrayBuffers ${$G(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 ${eK(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 ${eK(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(``),t.push(`effectCache`),t.push(` sessions ${e.effectCache.sessions}`),t.push(` effects ${e.effectCache.effects}`),t.push(``),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(`
452
459
  `)+`
453
- `}const KW=e=>({kind:`ok`,value:e}),qW=e=>({kind:`failed`,reason:e});var JW=class{arrivals=[];arrive(e){this.arrivals=[...this.arrivals,e].slice(-16)}list(){return this.arrivals}};const YW=/^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/;function XW(e){return YW.test(e)?e:null}function ZW(e){let t=e.opener();if(t.kind===`failed`)return t;if(t.value===null)return KW(null);let n=t.value,r=e.script(n);if(r.kind===`failed`)return KW({app:n,missing:qW(`its script could not be read (${r.reason})`)});let i=Fi(r.value);return KW({app:n,missing:i===null?qW("its script is not one `cc-candybar install` wrote"):KW([i.node,i.script].filter(t=>!e.exists(t)))})}async function QW(e,t){let n=e.now()+5e3;for(;e.now()<n;){await e.pause();let n=await e.daemon(),r=n.kind===`ok`?n.value.arrivals.find(e=>e.nonce===t):void 0;if(n.kind===`ok`&&r!==void 0)return{kind:`arrived`,handler:r.handler,bar:n.value.version}}return null}async function $W(e){if(e.platform!==`darwin`)return{kind:`unsupported`};if(e.sockets.own!==e.sockets.handler)return{kind:`unprobed`,reason:`this shell's daemon is at ${e.sockets.own} (CC_CANDYBAR_SOCKET); the URL handler delivers links to ${e.sockets.handler}`};let t=await e.daemon();if(t.kind===`failed`)return{kind:`unprobed`,reason:`the daemon could not be asked whether a link arrives: ${t.reason}`};let n=e.nonce(),r=e.open(`${_n}://${Bn}/${n}`);return(r===null?await QW(e,n):null)??{kind:`lost`,unopened:r,opener:ZW(e)}}function eG(e,t,n){let r=Ne({bin:t,args:[...n],category:e,timeoutMs:5e3});return r.ok?KW(r.stdout):qW(r.stderr.trim()||r.error||r.reason)}const tG=`ObjC.import("AppKit");var u = $.NSWorkspace.sharedWorkspace.URLForApplicationToOpenURL($.NSURL.URLWithString("${_n}://probe"));u.isNil() ? "" : u.path.js`;async function nG(){let e=await VW();if(e.kind!==`ok`)return qW(Tt(e).split(`
454
- `).join(` — `));let{version:t,handlerProbes:n}=e.value;return Array.isArray(n)?KW({version:t,arrivals:n}):qW(`the running daemon (${t}) predates this check`)}function rG(){return{platform:process.platform,sockets:{own:Ve(),handler:He()},now:Date.now,nonce:w,daemon:nG,open:e=>{let t=eG(`doctor.open`,`/usr/bin/open`,[`-g`,e]);return t.kind===`ok`?null:t.reason},pause:()=>new Promise(e=>setTimeout(e,100)),opener:()=>{let e=eG(`doctor.launch-services`,`/usr/bin/osascript`,[`-l`,`JavaScript`,`-e`,tG]);if(e.kind===`failed`)return e;let t=e.value.trim();return KW(t===``?null:t)},script:e=>eG(`doctor.osadecompile`,`/usr/bin/osadecompile`,[Ii(e)]),exists:r.existsSync}}const iG=/^─{20,}/,aG=/^❯(\s|$)/,oG=/›\s*stashed$/;function sG(e){if(e.inMode)return{kind:`in-mode`};let t=e.screen.map(e=>e.trimEnd()),n=t.flatMap((e,t)=>iG.test(e)?[t]:[]).at(-2);return n===void 0||!aG.test(t[n+1]??``)?{kind:`no-prompt`}:oG.test(t[n-1]??``)?{kind:`stashed`}:{kind:`ready`}}const cG={"in-mode":`the Claude Code pane is in tmux copy mode — leave it (q) and click again`,stashed:`Claude Code is holding a stashed prompt (ctrl+s) — restore or send it, then click again`,"no-prompt":`Claude Code is not at its prompt (a dialog or picker is open) — close it and click again`};function lG(e,t,n){if(t===void 0)return{kind:`refused`,reason:`this session's statusline client reports no tmux facts (it predates this daemon) — rebuild or reinstall cc-candybar`};if(t===null)return{kind:`refused`,reason:`this Claude Code is not running inside tmux — the bar can only type into a tmux pane`};let r=sG(e.read(t));if(r.kind!==`ready`)return{kind:`refused`,reason:cG[r.kind]};let i=e.type(t,n);return i.kind===`typed`?{kind:`typed`,pane:t.pane}:i}const uG=`cc-candybar-slash`;function dG(e,t,n,r){let i=fz(e,t,n,r);if(i.kind===`failed`)throw Error(i.reason);return i}function fG(e){let t=dG(e,`claude-input.read`,[`display`,`-p`,`-t`,e.pane,`#{pane_in_mode}`,`;`,`capture-pane`,`-p`,`-t`,e.pane]);if(t.kind===`rate-limited`)throw Error(t.reason);let[n=``,...r]=t.stdout.split(`
455
- `);return{inMode:n!==`0`,screen:r}}function pG(e,t){let n=dG(e,`claude-input.type`,[`load-buffer`,`-b`,uG,`-`,`;`,`send-keys`,`-t`,e.pane,`C-s`,`;`,`paste-buffer`,`-p`,`-d`,`-b`,uG,`-t`,e.pane,`;`,`send-keys`,`-t`,e.pane,`Enter`],t);return n.kind===`ok`?{kind:`typed`}:{kind:`refused`,reason:`cc-candybar typed a command moments ago — click again in a second (${n.reason})`}}function mG(){return{read:fG,type:pG}}function hG(e){if(!e)throw new K(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new K(`invalid session id "${e}"`);return e}function gG(e){return _G(()=>decodeURIComponent(e))}function _G(e){try{return e()}catch(e){throw e instanceof URIError?new K(`malformed wire encoding: ${e.message}`):e}}function vG(e,t){let n=Ne({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 yG=(e,t)=>vG(gG(e),t),bG=(e,t)=>{let n=Ne({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,gG(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`})`)}},xG=(e,t)=>vG(gG(e),t),SG=(e,t)=>vG(gG(e),t),CG=(e,t)=>{let n=hG(gG(e));t.navigating.get(n,`toolbar-expanded`)?t.navigating.clear(n,`toolbar-expanded`):t.navigating.set(n,`toolbar-expanded`,`1`)},wG=(e,t)=>{let[n=``,...r]=_G(()=>Wn(e)),i=hG(n),a=YL(IG(t,i));if(r.length===0)throw new K(`set-state: <key>/<value> is required (have keys: ${a.listKeys().join(`, `)})`);if(r.length%2!=0)throw new K(`set-state: expected even-count <key>/<value> pairs, got ${r.length} segment(s) after session id (have keys: ${a.listKeys().join(`, `)})`);let o=[];for(let e=0;e<r.length;e+=2){let t=r[e],n=r[e+1];if(!t)throw new K(`set-state: empty key at pair ${e/2+1} (expected <sessionId>/<key>/<value>[/<key>/<value>...] segments)`);let i=a.validate(t,n);if(!i.ok)throw new K(`set-state: pair ${e/2+1}: ${i.reason}`);o.push({key:t,value:i.value})}OG(t,i,`set-state`,o),t.navigating.setBatch(i,o);let s=o.map(e=>`${e.key}=${e.value}`).join(` `);t.dlog(`info`,`set-state: ${s} (session=${i})`)},TG=/^-?\d+$/;function EG(e,t,n,r){let i=e+t;return i>r?e===r?n:r:i<n?e===n?r:n:i}const DG=(e,t)=>{let[n=``,r=``,i=``]=_G(()=>Wn(e)),a=hG(n);if(!r)throw new K(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!TG.test(i))throw new K(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=IG(t,a),c=YL(s),l=c.rangeParamsFor(r);if(!l)throw new K(`step-state: key "${r}" is not a bounded (range) state key (have keys: ${c.listKeys().join(`, `)})`);let u=t.sessionState.get(a,r),d=u&&TG.test(u)?kG(l,parseInt(u,10)):AG(`step-state`,r,l,QL(s,e=>t.sessionState.get(a,e),r)),f=EG(d,o,l.min,l.max),p=c.validate(r,String(f));if(!p.ok)throw new K(`step-state: ${p.reason}`);OG(t,a,`step-state`,[{key:r,value:p.value}]),t.navigating.set(a,r,p.value),t.dlog(`info`,`step-state: ${r} ${d}→${p.value} (by ${o}, session=${a})`)};function OG(e,t,n,r){let i=r.filter(e=>e.key.startsWith(dD));if(i.length===0)return;let a=OL(IG(e,t),n=>e.sessionState.get(t,n),i);if(a.length>0)throw new K(`${n}: refused — ${a.join(`; `)}`)}function kG(e,t){return Math.max(e.min,Math.min(e.max,t))}function AG(e,t,n,r){if(r===null)return n.min;if(!TG.test(r))throw new K(`${e}: "${t}" shows ${JSON.stringify(r)} before any click, not an integer to step`);return kG(n,parseInt(r,10))}const jG=`render-origin`;function MG(e){return JSON.stringify(e)}function NG(e){let t;try{t=JSON.parse(e)}catch{throw new K(`render origin is not JSON: ${e}`)}if(typeof t!=`object`||!t)throw new K(`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 K(`render origin has the wrong shape: ${e}`);return{projectDir:n,cwd:r,configFile:i}}function PG(e,t){let n=e.sessionState.get(t,jG);if(n===null)throw new K(`session ${t} has not rendered yet — no config to act on`);return NG(n)}function FG(e,t,n){let r=e.sessionState.get(t,jG);if(r===null)return;let i=NG(r),{path:a}=LG(i);n.some(e=>e.kind===`file`&&e.file===a)&&e.reloadConfig(i)}function IG(e,t){return e.configFor(PG(e,t))}function LG(e){return OF(e.projectDir,e.cwd,e.configFile??void 0)}function RG(e,t){return{record:(n,r,i)=>e.journal.file(t,n,r,i),logger:e.dlog}}const zG=(e,t)=>{let[n=``,r=``,i=``]=_G(()=>Wn(e)),a=hG(n),o=PG(t,a),s=t.configFor(o),c=mj(s);if(!r)throw new K(`set-config: <key>/<value> is required (have keys: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new K(`set-config: ${l.reason}`);let u=LG(o),d=EL(s,e=>t.sessionState.get(a,e),r);VH(RG(t,a),u,[[d.key,l.value]]),t.reloadConfig(o),t.dlog(`info`,`set-config: ${d.key}=${l.value} → ${u.path} (session=${a})`)},BG=(e,t)=>{let[n=``,r=``,i=``]=_G(()=>Wn(e)),a=hG(n);if(!r)throw new K(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!TG.test(i))throw new K(`step-config: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=PG(t,a),c=t.configFor(s),l=mj(c),u=l.rangeParamsFor(r);if(!u)throw new K(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${l.listKeys().join(`, `)})`);let d=LG(s),f=EL(c,e=>t.sessionState.get(a,e),r),p=BH(d.path,f.key),m=typeof p==`number`?kG(u,p):AG(`step-config`,r,u,gj(f.globals,r)),h=EG(m,o,u.min,u.max),g=l.validate(r,String(h));if(!g.ok)throw new K(`step-config: ${g.reason}`);VH(RG(t,a),d,[[f.key,g.value]]),t.reloadConfig(s),t.dlog(`info`,`step-config: ${f.key} ${m}→${g.value} (by ${o}) → ${d.path} (session=${a})`)},VG=(e,t)=>{let[n=``]=_G(()=>Wn(e)),r=hG(n),i=PG(t,r),a=t.configFor(i),o=e=>t.sessionState.get(r,e),s=wL(a,o),c=DL(a,o);if(s.length+c.length===0){t.dlog(`info`,`save: nothing unsaved (session=${r})`);return}let l=YL(a),u=s.map(e=>{let t=l.validate(e.sessionKey,e.value);if(!t.ok)throw new K(`save: ${t.reason}`);return[e.target,t.value]});UG(`save`,l,c);let d=LG(i);HH(RG(t,r),d,u,c),t.reloadConfig(i);for(let e of[...s.map(e=>e.sessionKey),...c.map(e=>e.key)])t.sessionState.clear(r,e);t.dlog(`info`,`save: ${[...u.map(([e,t])=>`${e}=${t}`),...c.map(HG)].join(` `)} → ${d.path} (session=${r})`)},HG=e=>`${e.preset}/${e.id}.settings.${e.setting}=${Lh(e.value)}`;function UG(e,t,n){for(let r of n){let n=t.validate(r.key,Lh(r.value));if(!n.ok)throw new K(`${e}: ${n.reason}`)}}const WG=(e,t)=>{let[n=``]=_G(()=>Wn(e)),r=hG(n),i=PG(t,r),a=t.configFor(i),o=jL(a,e=>t.sessionState.get(r,e)),s=YL(a),c=o.picks.map(e=>{let t=s.validate(e.sessionKey,e.value);if(!t.ok)throw new K(`save-preset: ${t.reason}`);return[e.configKey,t.value]});UG(`save-preset`,s,o.placements);let l=LG(i),u=YH(RG(t,r),l,o.from,o.globals,c,o.placements);t.reloadConfig(i);for(let e of[...xa.map(e=>e.sessionKey),...o.placements.map(e=>e.key)])t.sessionState.clear(r,e);t.sessionState.set(r,ba.preset.sessionKey,u),t.dlog(`info`,`save-preset: ${[`${u} from=${o.from}`,...c.map(([e,t])=>`${e}=${t}`),...o.placements.map(HG)].join(` `)} → ${l.path} (session=${r})`)},GG=(e,t)=>{let[n=``]=_G(()=>Wn(e)),r=hG(n),i=PG(t,r),a=NL(t.configFor(i),e=>t.sessionState.get(r,e));if(a.kind===`rule`)throw new K(`save-theme-default: the theme is chosen by a rule (globals.palette), so there is no name to save as a theme's default — pick one in the menu first`);let o=LG(i);XH(RG(t,r),o,a.theme,a.look),t.reloadConfig(i);let s=new Set(wL(t.configFor(i),e=>t.sessionState.get(r,e)).map(e=>e.sessionKey)),c=Th.map(e=>ba[e].sessionKey).filter(e=>!s.has(e));for(let e of c)t.sessionState.clear(r,e);t.dlog(`info`,`save-theme-default: ${a.theme} ${Th.map(e=>`${e}=${a.look[e]}`).join(` `)} → ${o.path} (session=${r})`)},KG=(e,t)=>{let[n=``,r=``]=_G(()=>Wn(e)),i=hG(n);if(!r)throw new K(`delete-preset: <name> is required (shape: <sessionId>/<name>)`);let a=PG(t,i),o=LG(a);ZH(RG(t,i),o,r),t.reloadConfig(a);let s=ba.preset.sessionKey;t.sessionState.get(i,s)===r&&t.sessionState.clear(i,s),t.dlog(`info`,`delete-preset: ${r} ← ${o.path} (session=${i})`)},qG=(e,t)=>{let[n=``,...r]=_G(()=>Wn(e)),i=hG(n),a=PG(t,i),o=mj(t.configFor(a)).listKeys(),s=r.length===0?[``]:r.filter(e=>!o.includes(e));if(s.length>0)throw new K(`reset-config: unknown config key "${s.join(`", "`)}" (have: ${o.join(`, `)})`);let c=LG(a),l=r.map(PL),u=l.flatMap(e=>e.fileKeys),d=l.flatMap(e=>e.sessionKeys);KH(RG(t,i),c,u),t.reloadConfig(a);for(let e of d)t.sessionState.clear(i,e);t.dlog(`info`,`reset-config: ${[...u,...d.map(e=>`session:${e}`)].join(` `)} ← ${c.path} (session=${i})`)};function JG(e,t){let n=(e,t)=>[...bh(ag(e,t).node)].filter(e=>e.kind===`segment`),r=new Set(ng(t.presets).flatMap(e=>n(t,e).map(t=>fD(iT(e),gh(t)))));return ng(e.presets).flatMap(t=>n(e,t).map(e=>({member:fD(iT(t),gh(e)),node:e})).filter(({member:e})=>!r.has(e)))}function YG(e,t){return e.flatMap(({member:e,node:n})=>[...Object.values(n.drafts??{}).map(e=>e.key),...e===t?[oD]:[]])}const XG=(e,t)=>{let[n=``,r=``,i=``]=_G(()=>Wn(e)),a=hG(n),o=PG(t,a),s=t.configFor(o),c=mj(s);if(!r)throw new K(`apply-layout-op: <key>/<op> is required (have: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new K(`apply-layout-op: ${l.reason}`);let u=ej(l.value);if(u===null)throw new K(`apply-layout-op: "${l.value}" is not a layout op token`);let d=LG(o),f=QH(RG(t,a),d,r,u);t.reloadConfig(o);let p=YG(JG(s,t.configFor(o)),t.sessionState.get(a,oD)).filter(e=>t.sessionState.get(a,e)!==null);for(let e of p)t.sessionState.clear(a,e);t.dlog(`info`,`apply-layout-op: ${r} ${l.value} → ${d.path} placed=${JSON.stringify(f)} released=${JSON.stringify(p)} (session=${a})`)},ZG=(e,t)=>{let[n=``]=_G(()=>Wn(e)),r=hG(n);t.journal.commit();let i=t.history.undo(r);FG(t,r,i),t.dlog(`info`,`undo: restored ${bU(i)} (session=${r})`)},QG=(e,t)=>{let n=hG(gG(e)),{step:r,discarded:i}=t.navigation.back(n,t.sessionState,YL(IG(t,n))),a=r.map(e=>`${e.key}=${e.before??`∅`}`).join(` `);t.dlog(`info`,`back: ${a} discarded=${i} (session=${n})`)},$G=(e,t)=>{let n=hG(gG(e));t.journal.commit();let r=t.history.rewind(n);FG(t,n,r),t.dlog(`info`,`rewind: put back ${bU(r)||`nothing`} as edit mode found it (session=${n})`)},eK=(e,t)=>{let[n=``]=_G(()=>Wn(e)),r=hG(n);t.journal.commit();let i=t.history.redo(r);FG(t,r,i),t.dlog(`info`,`redo: re-applied ${bU(i)} (session=${r})`)},tK=(e,t)=>{hG(gG(e)),t.applyUpdate()},nK=`client-hints`;function rK(e,t){let n=e.sessionState.get(t,nK);if(n===null)throw new K(`session ${t} has not rendered yet — no client facts are recorded for it`);let r;try{r=JSON.parse(n)}catch{throw new K(`client hints record is not JSON: ${n}`)}if(typeof r!=`object`||!r)throw new K(`client hints record is not an object: ${n}`);return ot(r)}function iK(e,t,n){let r=dO(n);e.sessionState.setBatch(t,_O(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed(${1+(e.verdict.more?.length??0)})`}`).join(` `)} ${hO(n.nerdFont,n.marks)} (session=${t})`)}function aK(e,t){let n;try{n=LW(e.doctor,rK(e,t),PG(e,t),n=>e.sessionState.get(t,n))}catch(e){throw e instanceof PU?new K(e.message):e}return{...n,urlHandler:FW(e.clientVersion)}}const oK=(e,t)=>{let n=hG(gG(e));iK(t,n,aK(t,n))},sK=(e,t)=>{let n=XW(gG(e));if(n===null)throw new K(`doctor-probe: the value is not a probe nonce`);t.probes.arrive({nonce:n,handler:t.clientVersion}),t.dlog(`info`,`doctor-probe: arrived nonce=${n} handler=${t.clientVersion??`unreported`}`)},cK=(e,t)=>{let[n=``,r=``]=_G(()=>Wn(e)),i=hG(n),a=fO(r);if(a===void 0)throw new K(`doctor-fix: unknown check "${r}"`);let o=aK(t,i),s=a.probe(o);if(s.ok||s.fix===void 0)throw new K(`doctor-fix: ${a.label} — ${s.ok?`nothing to fix`:s.reason}`);let c=RW(s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.path.join(`.`)}=${JSON.stringify(s.fix.value)} (session=${i})`),iK(t,i,c)},lK=(e,t)=>{let[n=``,r=``,i=``]=_G(()=>Wn(e)),a=hG(n),o=fO(r);if(o===void 0)throw new K(`doctor-mark: unknown check "${r}"`);if(!JD.includes(i))throw new K(`doctor-mark: the mark is ${JSON.stringify(i)}, not ${JD.join(` or `)}`);let s=aK(t,a),c=o.probe(s);if(c.ok||c.sighting===void 0)throw new K(`doctor-mark: ${o.label} — ${c.ok?`nothing to mark`:`shows nothing to look at`}`);if(s.marks.kind===`failed`)throw new K(`doctor-mark: ${s.marks.reason}`);let l=[o.name,c.sighting.id,i];t.doctor.marks.record(...l),t.dlog(`info`,`doctor-mark: ${o.name} ${i} on ${c.sighting.id} (session=${a})`),iK(t,a,{...s,marks:{kind:`ok`,value:MU(s.marks.value,...l)}})},uK=(e,t)=>{let[n=``,...r]=_G(()=>Wn(e)),i=hG(n),a=PG(t,i),o=Object.values(t.configFor(a).actions).filter(e=>`ceiling`in e).find(e=>{let t=gN(e);return t.length===r.length&&t.every((e,t)=>e===r[t])});if(o===void 0)throw new K(`ceiling: "${r.join(` `)}" is not a move this config declares`);let s=o.ceiling===`set`?{kind:`set`,to:o.to}:{kind:`clear`},c=DI({sessionId:i,projectDir:a.projectDir,cwd:a.cwd},rK(t,i));t.memento.move(c,s),t.dlog(`info`,`ceiling: ${r.join(` `)} (session=${i} claudeConfigDir=${c.claudeConfigDir})`)},dK=(e,t)=>{let[n=``,r=``]=_G(()=>Wn(e)),i=hG(n),a=Object.values(t.configFor(PG(t,i)).actions).filter(e=>`slash`in e),o=a.find(e=>e.slash===r);if(o===void 0)throw new K(`${JSON.stringify(r)} is not a command this config declares (it declares: ${[...new Set(a.map(e=>e.slash))].join(`, `)||`none`})`);let s=lG(t.claudeInput,rK(t,i).tmux,o.slash);if(s.kind===`refused`)throw t.dlog(`warn`,`slash: ${r} refused — ${s.reason} (session=${i})`),new K(`${r} was not typed: ${s.reason}`);t.dlog(`info`,`slash: typed ${r} into ${s.pane} (session=${i})`)},fK=`config-override`,pK=new Map([[bn,yG],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new K(`load-config: expected <sessionId>/<path> (missing separator)`);let r=hG(_G(()=>decodeURIComponent(e.slice(0,n)))),i=_G(()=>decodeURIComponent(e.slice(n+1))).trim();if(i!==``){if(!i.startsWith(`/`))throw new K(`load-config: path must be absolute, got "${i}"`);if(!/\.(json5?|json)$/.test(i))throw new K(`load-config: path must end with .json5 or .json, got "${i}"`)}i===``?(t.sessionState.clear(r,fK),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,fK,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[xn,bG],[yn,wG],[N,DG],[P,zG],[Tn,BG],[An,qG],[En,VG],[Dn,WG],[On,GG],[kn,KG],[jn,XG],[Mn,ZG],[Nn,eK],[Pn,QG],[Fn,$G],[Cn,xG],[wn,SG],[Sn,CG],[In,tK],[Ln,oK],[Rn,cK],[zn,lK],[Bn,sK],[Vn,uK],[Hn,dK]]),mK=new Set([yn,N,P,Tn,An,En,Dn,On,kn,jn,Mn,Nn,Pn,Fn,Sn,In,Ln,Rn,zn,Vn,Hn]),hK=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Jn(Kn(e))){if(!i&&mK.has(a)){let e=Wn(o);e.length>0&&e[0]&&(i=e[0])}let e=pK.get(a);if(!e){n.push(`unknown effect verb "${a}"`);continue}try{e(o,t)}catch(e){e instanceof K||(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(`
456
- `));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new K(e)}};function gK(e){return(t,n)=>{let r=n.history.begin(),i=n.navigation.begin(r.sessionState),a=[];try{e(t,{...n,sessionState:r.sessionState,journal:r,navigating:i.sessionState})}catch(e){a.push(e)}i.commit();try{r.commit()}catch(e){a.push(e)}if(a.length===1)throw a[0];if(a.length>1)throw Error(a.map(e=>String(e.message??e)).join(`; `))}}const _K=new Map([...pK,[vn,hK]].map(([e,t])=>[e,gK(t)]));Object.freeze([..._K.keys()]);const vK=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`]),yK=[[`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`]],bK=[[`workspace.added_dirs`,`string-list`]];function xK(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of yK){let i=wK(n,e);if(i==null)t.missingRequired.push(e);else{let n=SK(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let[e,r]of bK){let i=wK(n,e),a=i===void 0?r:CK(i);a!==r&&t.typeMismatches.push({path:e,expected:r,got:a})}for(let e of Object.keys(n))vK.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function SK(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function CK(e){return Array.isArray(e)&&e.every(e=>SK(e)===`string`)?`string-list`:SK(e)}function wK(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 TK(e,t){switch(e){case`vars`:return{what:e,vars:EK(t)};case`segments`:return{what:e,segments:jK(t)};case`config`:return{what:e,config:FK(t)}}}function EK(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=kK(r),a=t.names().sort(),o=[];for(let e of a){let r=t.getNode(e),a=DK(r),s=n.getLastError(e);o.push({name:e,source:i.get(e)??null,...a,lastError:s===void 0?null:{timestampMs:s.timestamp,message:s.message},ageMs:OK(r.lastUpdatedMs())})}return o}function DK(e){if(e.kind!==`document`)try{return{type:e.type,value:e.read()}}catch(t){return{type:e.type,value:t instanceof Error?t.message:String(t)}}let t=e.read();switch(t.kind){case`ok`:return{type:`document`,value:JSON.stringify(t.value)};case`absent`:return{type:`document`,value:`(not yet scanned)`};case`failed`:return{type:`document`,value:t.reason}}}function OK(e){return e===null?null:Math.max(0,Date.now()-e)}function kK(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,AK(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}`,AK(i));return t}function AK(e){return e.kind}function jK(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=NK(n),o=MK(n),s=[];for(let e of a){let t=n.segments[e];t&&s.push({name:e,description:t.description??null,template:t.template,referencedVars:PK(t.template,n.helpers,i),placements:(o.get(e)??[]).map(e=>({id:e,lastRender:r.get(e)??null}))})}return s}function MK(e){let t=new Map;for(let n of ng(e.presets))for(let r of bh(ag(e,n).node)){if(r.kind!==`segment`)continue;let e=t.get(r.name)??[],n=gh(r);e.includes(n)||t.set(r.name,[...e,n])}return t}function NK(e){let t=[],n=new Set;for(let r of bh(Yh(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 PK(e,t,n){let r=new Set;for(let i of Dg(e,t).keys()){if(n.has(i)){r.add(i);continue}let e=i.split(`.`);for(;e.length>1;){e.pop();let t=e.join(`.`);if(n.has(t)){r.add(t);break}}}return Array.from(r).sort()}function FK(e){return e===null?null:e.config}const IK=[`vars`,`segments`,`config`];function LK(e){return typeof e==`string`&&IK.includes(e)}function RK(e){return Math.max(1,e-2)}var zK=class{written=new Map;constructor(e){this.dir=e}pathFor(e){return l.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}`}}};function BK(e,t){for(let n of Object.entries(t))e.push(n)}const VK={ok:`info`,"bad-request":`warn`,threw:`error`};function HK(e){switch(e.kind){case`ok`:return[];case`bad-request`:return[[`problems`,e.problems.join(`; `)]];case`threw`:return[[`error`,y(e.error)]]}}const UK=/^[^\s"=\\]+$/,WK=e=>UK.test(e)?e:JSON.stringify(e);function GK(e,t,n){let r=[...e,[`took`,`${n}ms`],[`outcome`,t.kind],...HK(t)];return{level:VK[t.kind],line:`render${r.map(([e,t])=>` ${e}=${WK(t)}`).join(``)}`}}const KK=new qV,qK=new JW;Ae(KK.launchStats);const JK=new _w({counters:KK,logger:A}),YK=vz({watchers:JK,logger:A}),{gitProvider:XK,usageStore:ZK,mementoProvider:QK}=YK,$K=new XV,eq=new oU($K,A),tq=new kU,nq=new Sm,rq=new zK($e()),iq=new GV({gitService:XK,sessionState:$K,watchers:JK},{observers:{onReload:e=>A(`info`,`config loaded projectDir=${e.projectDir} cwd=${e.cwd} files=${e.configLayers.join(` < `)||`<bundled default>`} error=${e.lastError===null?`none`:JSON.stringify(e.lastError)} warning=${e.lastWarning===null?`none`:JSON.stringify(e.lastWarning)}`)}}),aq=60*1e3;function oq(){let e=import.meta.url,n=[];e.startsWith(`file://`)&&n.push(ne(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){A(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),Sq(0);return}}catch(e){A(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,aq),a.unref())},checkNow:o}}const sq=oq(),cq=_R({entryUrl:import.meta.url,intervalMs:aq,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>sq.checkNow(),log:A});let lq=null,uq=null,dq=0;function fq(){t.on(`uncaughtException`,e=>{A(`error`,`uncaughtException: ${e.stack||e.message}`),Sq(1)}),t.on(`unhandledRejection`,e=>{A(`error`,`unhandledRejection: ${String(e)}`),Sq(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{A(`info`,`received ${e}, shutting down`),Sq(0)});try{dq=Wt(t.env)}catch(e){A(`error`,`refusing to boot: ${e.message}`),Sq(1);return}lq=sa(t.pid);let e=_a(ya(lq));if(!e.decision.allow){A(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),Sq(1);return}uq=e.registryPath,r.mkdirSync(Be(),{recursive:!0}),We(Ve()),$K.useStorage(new QV(qe(),500,A)),eq.useStorage(DU(Je(),A)),ua({anchor:la(t.env),isAlive:da,onOrphaned:e=>{A(`info`,`parent watchdog: ${e}; shutting down`),Sq(0)}}),pq(S.createServer({allowHalfOpen:!1},e=>{Cq(e)}),Ve(),!1)}function pq(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){A(`error`,`server error: ${i.message}`),Sq(1);return}if(r){A(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}mq(e,n)}),e.listen(n,()=>hq(n))}function mq(e,n){let i=Zi(Qi(Ge(n)),(e,t)=>oa(e,t,{readStartTime:aa,pidAlive:da}));if(i.kind===`attach-and-exit`){A(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}A(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){A(`error`,`cannot unlink stale socket ${n}: ${e.message}`),Sq(1);return}}pq(e,n,!0)}function hq(e){let n=ta(e);if(n.kind!==`present`){A(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),Sq(0);return}yq(e);try{r.chmodSync(e,384)}catch(e){A(`warn`,`chmod socket failed: ${e.message}`)}A(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(C.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(dq/1048576)}MB`),sn();let i=rq.reset();i!==null&&A(`warn`,`diagnostic dump wipe failed: ${i}`),sq.arm(),cq.arm(),vq(),gq(e,n.identity)}function gq(e,n){ia({bound:n,myPid:t.pid,readIdentity:()=>ta(e),readLease:()=>Qi(Ge(e)),shutdown:e=>Sq(e),log:A}).arm()}let _q=null;function vq(){_q=Jt(Zt(KK.startedAt.getTime(),e=>Sq(e),{rssLimitBytes:dq})),_q.arm()}function yq(e){let n=$i(Ge(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:lq});n!==null&&A(`warn`,`lease write failed: ${n}`)}let bq=0,xq=!1;function Sq(e){if(!xq){xq=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{XK.close()}catch(e){A(`warn`,`gitService close failed: ${e.message}`)}try{ZK.close()}catch(e){A(`warn`,`usageStore close failed: ${e.message}`)}try{JK.closeAll()}catch(e){A(`warn`,`watcherRegistry close failed: ${e.message}`)}try{$K.flush()}catch(e){A(`warn`,`sessionState flush failed: ${e.message}`)}ea(Ke(),t.pid),uq!==null&&va(uq,t.pid,ha,e=>r.unlinkSync(e)),t.exit(e)}}function Cq(e){bq++,KK.inFlight=bq;let t=!1,n=(n,r)=>{if(t){r!==null&&A(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>Sq(r);try{e.end(k(n),i)}catch(e){A(`warn`,`response write failed: ${e.message}`),i?.()}},r=!1,i=setTimeout(()=>{r=!0,KK.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),a=_t(e=>{Eq(e,()=>r).then(e=>n(e.resp,e.exitAfterFlush)).catch(e=>{A(`error`,`handler threw: ${y(e)}`),n(Tq(e),null)})},e=>{A(`warn`,`frame parse failed: ${e.message}`),n({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)});e.on(`data`,a),e.on(`error`,e=>{A(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(i),bq=Math.max(0,bq-1),KK.inFlight=bq})}const wq=e=>({resp:e,exitAfterFlush:null}),Tq=e=>({ok:!1,error:e instanceof Error?e.message:y(e),code:`RENDER_FAILED`,daemonV:3});async function Eq(e,t){if(!e||typeof e!=`object`||typeof e.v!=`number`)return wq({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?A(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):A(`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 wq({ok:!0,stats:KK.snapshot({gitCache:XK.getStats(),usageCache:ZK.getStats(),renderCacheSize:iq.size,effectCache:nq.getStats(),watchersActive:JK.size(),nextRestartReason:_q?.describeNextRestart()??null,handlerProbes:qK.list()})});if(e.kind===`render`){KK.requestsTotal++;let n=new Date,r=kw(n),i=n.getTime(),a=[],o=await Pq(e,r,a).catch(e=>({outcome:{kind:`threw`,error:e},resp:Tq(e)}));o.outcome.kind!==`ok`&&KK.requestsErrored++,BK(a,{timedOut:t()?`Y`:`N`});let{level:s,line:c}=GK(a,o.outcome,Date.now()-i);return A(s,c),wq(o.resp)}if(e.kind===`click`)return wq(Nq(e.verb,e.value,ht(e.clientVersion)));if(e.kind===`debug`){if(!LK(e.what))return wq({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${IK.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=iq.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?jq(t.lastRenderCellsBySegment,t.config.globals.charset??`unicode`,t.config.globals.colorCompatibility??`truecolor`):Aq};return wq({ok:!0,debug:TK(e.what,n)})}return wq({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function Dq(e,t){let{values:n,tokens:r}=b({args:e.slice(1),options:{config:{type:`string`}},strict:!1,tokens:!0,allowPositionals:!0}),i=[...new Set((r??[]).filter(e=>e.kind===`option`&&e.name!==`config`).map(e=>`--${e.name}`))];return{configFile:qP(t,n.config),unknownFlagsError:i.length>0?`Unknown flags: ${i.join(`, `)}`:null}}const Oq={sessionState:$K,dlog:A,applyUpdate:()=>cq.act(),doctor:AW(e=>{let t=[e.projectDir,e.cwd,e.configFile??void 0];iq.reload(...t);let n=iq.getOrCreate(...t);return{layers:n.configLayers,error:n.lastError,warning:n.lastWarning,unused:n.state.unused,config:n.state.config}}),probes:qK,memento:QK,claudeInput:mG(),history:eq,navigation:tq,configFor:e=>iq.getOrCreate(e.projectDir,e.cwd,e.configFile??void 0).state.config,reloadConfig:e=>iq.reload(e.projectDir,e.cwd,e.configFile??void 0)};Oq.reloadConfig;const kq={endcaps:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,charset:Wp,width:1/0},Aq=new Map;function jq(e,t,n){let r=new Map;for(let[i,a]of e)r.set(i,Im(a,{...kq,charset:t,colorCompatibility:n}));return r}const Mq={...YK,history:e=>eq.depth(e)};function Nq(e,t,n){let r=_K.get(e);if(!r)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return r(t,{...Oq,clientVersion:n}),{ok:!0,output:``}}catch(e){let t=e instanceof K?`BAD_REQUEST`:`RENDER_FAILED`;return{ok:!1,error:String(e instanceof Error?e.message:e),code:t,daemonV:3}}}async function Pq(e,t,n){let{report:r}=xK(e.hookData);for(let e of r.unknownTopLevelFields)A(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let i=[];for(let e of r.missingRequired)i.push(`missing required field '${e}'`);for(let{path:e,expected:t,got:n}of r.typeMismatches)i.push(`field '${e}' expected ${t}, got ${n}`);if(f(e.cwd)||i.push(`request 'cwd' is not an absolute path: "${e.cwd}"`),i.length>0)return{outcome:{kind:`bad-request`,problems:i},resp:{ok:!1,error:`malformed hookData: ${i.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3}};BK(n,{sid:e.hookData.session_id,at:t.toFixed(3)});let a=e.hookData.workspace.project_dir,{configFile:o,unknownFlagsError:s}=Dq(e.args,e.cwd),c=e.hookData.session_id,l=ot(e),u=st(e,l),d=ct(u);BK(n,{termCols:String(l.termCols??`?`),termRows:String(l.termRows??`?`),refused:u.map(e=>e.hint).join(`,`)||`-`});let p=JSON.stringify(l);$K.get(c,`client-hints`)!==p&&$K.set(c,nK,p);let m=$K.get(c,`config-override`)??o??l.configEnv,h=iq.getOrCreate(a,e.cwd,m),g=MG({projectDir:a,cwd:e.cwd,configFile:m??null});$K.get(c,`render-origin`)!==g&&$K.set(c,jG,g);let _=l.termCols,v=RK(_??120),y=Lm(l.termRows);BK(n,{width:String(v)});let{authoredRoots:b}=h.state,x=t=>$K.get(e.hookData.session_id,t),S=BI(h.state.config,x,e=>b.has(e)),C=await aL(e.hookData,t,{...Mq,navigation:e=>tq.depth(e,$K,YL(h.state.config))},e.cwd,h.state.neededInputPaths(S.preset),S,l,{...IL(h.state.config,h.state.fileHeldSettings,x),configPath:h.configLayers.includes(h.configHome)?h.configHome:null});BK(n,{prompts:String(C.metrics?.messageCount??`-`),nonPrompts:String(C.metrics?.nonPrompts??`-`),pr:GI(C.git)});let ee=[],te=VI(S,v),ne=nq.of(c),re=wV(h.state.config,h.state.compiled,h.state.store,h.state.registry,C,t,te,{perSegmentSink:h.state.lastRenderCellsBySegment,onRenderWarning:e=>ee.push(e)},{...HI(S),effects:ne}),ie=$K.get(e.hookData.session_id,`click.error`);ie&&$K.clear(e.hookData.session_id,`click.error`);let ae=[s,d,h.lastError,ie].filter(Boolean).join(`
457
- `),w=cq.notice({sessionId:c,dismissed:$K.get(c,tR),enabled:S.updateNotice}),T=h.lastError===null?null:h.failedFile,oe=[...h.lastWarning===null?[]:[{kind:`load`,message:h.lastWarning}],...ee],E=Hm(ae,w,oe.map(e=>e.message).join(`
458
- `)),se=rq.sync(c,E===null?null:Wm(E));se!==null&&A(`warn`,`diagnostic dump failed: ${se}`);let ce=Gm(re,E,{fullText:se===null?{kind:`file`,path:rq.pathFor(c)}:{kind:`unavailable`,reason:se},failedConfigFile:T},{width:v,rowCap:y,colorCompatibility:S.colorCompatibility}),le=XK.getStats(),ue=ZK.getStats(),de=ne.lastFrame(),fe=de.own.map(e=>`${e.placement}:${e.effect}@${e.t.toFixed(3)}`).join(`,`)||`-`,pe=e=>e.map(e=>`${e.placement}@${e.t.toFixed(3)}`).join(`,`)||`-`,me=oe.map(e=>{switch(e.kind){case`rule`:return`rule:${e.slot}`;case`refresh`:return`refresh:${e.variable}`;case`load`:case`band-floor`:case`when`:return e.kind}}).join(`,`)||`-`;return BK(n,{git:`${le.size}/${le.hits}h/${le.misses}m`,usage:`${ue.size}/${ue.hits}h/${ue.misses}m`,effect:de.effect,effectT:de.t.toFixed(3),effectRows:`${de.made}made/${de.reused}reused`,effectOwn:fe,fadeBasis:de.basis,stateRev:String(de.revision),fades:pe(de.fades),leaves:pe(de.leaves),err:ae?`Y`:`N`,upd:String(w.length),warn:me}),{outcome:{kind:`ok`},resp:{ok:!0,output:ce+`
459
- `}}}const Fq={connectMs:200,budgetMs:500};async function Iq(e,n){let r=n.includes(`--json`),i=await Lq(e);if(i.kind!==`ok`&&(t.stderr.write(`${e}: ${Tt(i)}\n`),t.exit(1)),r){t.stdout.write(JSON.stringify(i.value,null,2)+`
460
- `);return}t.stdout.write(Rq(i.value))}function Lq(e){return yt({kind:`debug`,what:e},Fq,e=>`debug`in e?e.debug:void 0)}function Rq(e){switch(e.what){case`vars`:return zq(e.vars);case`segments`:return Bq(e.segments);case`config`:return Vq(e.config);default:return e}}function zq(e){if(e.length===0)return`no variables (DSL not active)
461
- `;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?``:` ${Uq(a.ageMs)}`,o=a.lastError?` ✗ ${a.lastError.message}`:``;t.push(` ${a.name.padEnd(n)} ${(a.source??`—`).padEnd(r)} ${a.type.padEnd(i)} ${Hq(a.value)}${e}${o}`)}return t.join(`
460
+ `}const rK=e=>({kind:`ok`,value:e}),iK=e=>({kind:`failed`,reason:e});var aK=class{arrivals=[];arrive(e){this.arrivals=[...this.arrivals,e].slice(-16)}list(){return this.arrivals}};const oK=/^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/;function sK(e){return oK.test(e)?e:null}function cK(e){let t=e.opener();if(t.kind===`failed`)return t;if(t.value===null)return rK(null);let n=t.value,r=e.script(n);if(r.kind===`failed`)return rK({app:n,missing:iK(`its script could not be read (${r.reason})`)});let i=Fi(r.value);return rK({app:n,missing:i===null?iK("its script is not one `cc-candybar install` wrote"):rK([i.node,i.script].filter(t=>!e.exists(t)))})}async function lK(e,t){let n=e.now()+5e3;for(;e.now()<n;){await e.pause();let n=await e.daemon(),r=n.kind===`ok`?n.value.arrivals.find(e=>e.nonce===t):void 0;if(n.kind===`ok`&&r!==void 0)return{kind:`arrived`,handler:r.handler,bar:n.value.version}}return null}async function uK(e){if(e.platform!==`darwin`)return{kind:`unsupported`};if(e.sockets.own!==e.sockets.handler)return{kind:`unprobed`,reason:`this shell's daemon is at ${e.sockets.own} (CC_CANDYBAR_SOCKET); the URL handler delivers links to ${e.sockets.handler}`};let t=await e.daemon();if(t.kind===`failed`)return{kind:`unprobed`,reason:`the daemon could not be asked whether a link arrives: ${t.reason}`};let n=e.nonce(),r=e.open(`${_n}://${Bn}/${n}`);return(r===null?await lK(e,n):null)??{kind:`lost`,unopened:r,opener:cK(e)}}function dK(e,t,n){let r=Ne({bin:t,args:[...n],category:e,timeoutMs:5e3});return r.ok?rK(r.stdout):iK(r.stderr.trim()||r.error||r.reason)}const fK=`ObjC.import("AppKit");var u = $.NSWorkspace.sharedWorkspace.URLForApplicationToOpenURL($.NSURL.URLWithString("${_n}://probe"));u.isNil() ? "" : u.path.js`;async function pK(){let e=await QG();if(e.kind!==`ok`)return iK(Tt(e).split(`
461
+ `).join(` — `));let{version:t,handlerProbes:n}=e.value;return Array.isArray(n)?rK({version:t,arrivals:n}):iK(`the running daemon (${t}) predates this check`)}function mK(){return{platform:process.platform,sockets:{own:Ve(),handler:He()},now:Date.now,nonce:w,daemon:pK,open:e=>{let t=dK(`doctor.open`,`/usr/bin/open`,[`-g`,e]);return t.kind===`ok`?null:t.reason},pause:()=>new Promise(e=>setTimeout(e,100)),opener:()=>{let e=dK(`doctor.launch-services`,`/usr/bin/osascript`,[`-l`,`JavaScript`,`-e`,fK]);if(e.kind===`failed`)return e;let t=e.value.trim();return rK(t===``?null:t)},script:e=>dK(`doctor.osadecompile`,`/usr/bin/osadecompile`,[Ii(e)]),exists:r.existsSync}}const hK=/^─{20,}/,gK=/^❯(\s|$)/,_K=/›\s*stashed$/;function vK(e){if(e.inMode)return{kind:`in-mode`};let t=e.screen.map(e=>e.trimEnd()),n=t.flatMap((e,t)=>hK.test(e)?[t]:[]).at(-2);return n===void 0||!gK.test(t[n+1]??``)?{kind:`no-prompt`}:_K.test(t[n-1]??``)?{kind:`stashed`}:{kind:`ready`}}const yK={"in-mode":`the Claude Code pane is in tmux copy mode — leave it (q) and click again`,stashed:`Claude Code is holding a stashed prompt (ctrl+s) — restore or send it, then click again`,"no-prompt":`Claude Code is not at its prompt (a dialog or picker is open) — close it and click again`};function bK(e,t,n){if(t===void 0)return{kind:`refused`,reason:`this session's statusline client reports no tmux facts (it predates this daemon) — rebuild or reinstall cc-candybar`};if(t===null)return{kind:`refused`,reason:`this Claude Code is not running inside tmux — the bar can only type into a tmux pane`};let r=vK(e.read(t));if(r.kind!==`ready`)return{kind:`refused`,reason:yK[r.kind]};let i=e.type(t,n);return i.kind===`typed`?{kind:`typed`,pane:t.pane}:i}const xK=`cc-candybar-slash`;function SK(e,t,n,r){let i=vB(e,t,n,r);if(i.kind===`failed`)throw Error(i.reason);return i}function CK(e){let t=SK(e,`claude-input.read`,[`display`,`-p`,`-t`,e.pane,`#{pane_in_mode}`,`;`,`capture-pane`,`-p`,`-t`,e.pane]);if(t.kind===`rate-limited`)throw Error(t.reason);let[n=``,...r]=t.stdout.split(`
462
+ `);return{inMode:n!==`0`,screen:r}}function wK(e,t){let n=SK(e,`claude-input.type`,[`load-buffer`,`-b`,xK,`-`,`;`,`send-keys`,`-t`,e.pane,`C-s`,`;`,`paste-buffer`,`-p`,`-d`,`-b`,xK,`-t`,e.pane,`;`,`send-keys`,`-t`,e.pane,`Enter`],t);return n.kind===`ok`?{kind:`typed`}:{kind:`refused`,reason:`cc-candybar typed a command moments ago — click again in a second (${n.reason})`}}function TK(){return{read:CK,type:wK}}function EK(e){if(!e)throw new K(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new K(`invalid session id "${e}"`);return e}function DK(e){return OK(()=>decodeURIComponent(e))}function OK(e){try{return e()}catch(e){throw e instanceof URIError?new K(`malformed wire encoding: ${e.message}`):e}}function kK(e,t){let n=Ne({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 AK=(e,t)=>kK(DK(e),t),jK=(e,t)=>{let n=Ne({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,DK(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`})`)}},MK=(e,t)=>kK(DK(e),t),NK=(e,t)=>kK(DK(e),t),PK=(e,t)=>{let n=EK(DK(e));t.navigating.get(n,`toolbar-expanded`)?t.navigating.clear(n,`toolbar-expanded`):t.navigating.set(n,`toolbar-expanded`,`1`)},FK=(e,t)=>{let[n=``,...r]=OK(()=>Wn(e)),i=EK(n),a=tz(qK(t,i));if(r.length===0)throw new K(`set-state: <key>/<value> is required (have keys: ${a.listKeys().join(`, `)})`);if(r.length%2!=0)throw new K(`set-state: expected even-count <key>/<value> pairs, got ${r.length} segment(s) after session id (have keys: ${a.listKeys().join(`, `)})`);let o=[];for(let e=0;e<r.length;e+=2){let t=r[e],n=r[e+1];if(!t)throw new K(`set-state: empty key at pair ${e/2+1} (expected <sessionId>/<key>/<value>[/<key>/<value>...] segments)`);let i=a.validate(t,n);if(!i.ok)throw new K(`set-state: pair ${e/2+1}: ${i.reason}`);o.push({key:t,value:i.value})}zK(t,i,`set-state`,o),t.navigating.setBatch(i,o);let s=o.map(e=>`${e.key}=${e.value}`).join(` `);t.dlog(`info`,`set-state: ${s} (session=${i})`)},IK=/^-?\d+$/;function LK(e,t,n,r){let i=e+t;return i>r?e===r?n:r:i<n?e===n?r:n:i}const RK=(e,t)=>{let[n=``,r=``,i=``]=OK(()=>Wn(e)),a=EK(n);if(!r)throw new K(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!IK.test(i))throw new K(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=qK(t,a),c=tz(s),l=c.rangeParamsFor(r);if(!l)throw new K(`step-state: key "${r}" is not a bounded (range) state key (have keys: ${c.listKeys().join(`, `)})`);let u=t.sessionState.get(a,r),d=u&&IK.test(u)?BK(l,parseInt(u,10)):VK(`step-state`,r,l,iz(s,e=>t.sessionState.get(a,e),r)),f=LK(d,o,l.min,l.max),p=c.validate(r,String(f));if(!p.ok)throw new K(`step-state: ${p.reason}`);zK(t,a,`step-state`,[{key:r,value:p.value}]),t.navigating.set(a,r,p.value),t.dlog(`info`,`step-state: ${r} ${d}→${p.value} (by ${o}, session=${a})`)};function zK(e,t,n,r){let i=r.filter(e=>e.key.startsWith(iO));if(i.length===0)return;let a=PR(qK(e,t),n=>e.sessionState.get(t,n),i);if(a.length>0)throw new K(`${n}: refused — ${a.join(`; `)}`)}function BK(e,t){return Math.max(e.min,Math.min(e.max,t))}function VK(e,t,n,r){if(r===null)return n.min;if(!IK.test(r))throw new K(`${e}: "${t}" shows ${JSON.stringify(r)} before any click, not an integer to step`);return BK(n,parseInt(r,10))}const HK=`render-origin`;function UK(e){return JSON.stringify(e)}function WK(e){let t;try{t=JSON.parse(e)}catch{throw new K(`render origin is not JSON: ${e}`)}if(typeof t!=`object`||!t)throw new K(`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 K(`render origin has the wrong shape: ${e}`);return{projectDir:n,cwd:r,configFile:i}}function GK(e,t){let n=e.sessionState.get(t,HK);if(n===null)throw new K(`session ${t} has not rendered yet — no config to act on`);return WK(n)}function KK(e,t,n){let r=e.sessionState.get(t,HK);if(r===null)return;let i=WK(r),{path:a}=JK(i);n.some(e=>e.kind===`file`&&e.file===a)&&e.reloadConfig(i)}function qK(e,t){return e.configFor(GK(e,t))}function JK(e){return NI(e.projectDir,e.cwd,e.configFile??void 0)}function YK(e,t){return{record:(n,r,i)=>e.journal.file(t,n,r,i),logger:e.dlog}}const XK=(e,t)=>{let[n=``,r=``,i=``]=OK(()=>Wn(e)),a=EK(n),o=GK(t,a),s=t.configFor(o),c=_M(s);if(!r)throw new K(`set-config: <key>/<value> is required (have keys: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new K(`set-config: ${l.reason}`);let u=JK(o),d=MR(s,e=>t.sessionState.get(a,e),r);YU(YK(t,a),u,[[d.key,l.value]]),t.reloadConfig(o),t.dlog(`info`,`set-config: ${d.key}=${l.value} → ${u.path} (session=${a})`)},ZK=(e,t)=>{let[n=``,r=``,i=``]=OK(()=>Wn(e)),a=EK(n);if(!r)throw new K(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!IK.test(i))throw new K(`step-config: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=GK(t,a),c=t.configFor(s),l=_M(c),u=l.rangeParamsFor(r);if(!u)throw new K(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${l.listKeys().join(`, `)})`);let d=JK(s),f=MR(c,e=>t.sessionState.get(a,e),r),p=JU(d.path,f.key),m=typeof p==`number`?BK(u,p):VK(`step-config`,r,u,yM(f.globals,r)),h=LK(m,o,u.min,u.max),g=l.validate(r,String(h));if(!g.ok)throw new K(`step-config: ${g.reason}`);YU(YK(t,a),d,[[f.key,g.value]]),t.reloadConfig(s),t.dlog(`info`,`step-config: ${f.key} ${m}→${g.value} (by ${o}) → ${d.path} (session=${a})`)},QK=(e,t)=>{let[n=``]=OK(()=>Wn(e)),r=EK(n),i=GK(t,r),a=t.configFor(i),o=e=>t.sessionState.get(r,e),s=AR(a,o),c=NR(a,o);if(s.length+c.length===0){t.dlog(`info`,`save: nothing unsaved (session=${r})`);return}let l=tz(a),u=s.map(e=>{let t=l.validate(e.sessionKey,e.value);if(!t.ok)throw new K(`save: ${t.reason}`);return[e.target,t.value]});eq(`save`,l,c);let d=JK(i);XU(YK(t,r),d,u,c),t.reloadConfig(i);for(let e of[...s.map(e=>e.sessionKey),...c.map(e=>e.key)])t.sessionState.clear(r,e);t.dlog(`info`,`save: ${[...u.map(([e,t])=>`${e}=${t}`),...c.map($K)].join(` `)} → ${d.path} (session=${r})`)},$K=e=>`${e.preset}/${e.id}.settings.${e.setting}=${kg(e.value)}`;function eq(e,t,n){for(let r of n){let n=t.validate(r.key,kg(r.value));if(!n.ok)throw new K(`${e}: ${n.reason}`)}}const tq=(e,t)=>{let[n=``]=OK(()=>Wn(e)),r=EK(n),i=GK(t,r),a=t.configFor(i),o=LR(a,e=>t.sessionState.get(r,e)),s=tz(a),c=o.picks.map(e=>{let t=s.validate(e.sessionKey,e.value);if(!t.ok)throw new K(`save-preset: ${t.reason}`);return[e.configKey,t.value]});eq(`save-preset`,s,o.placements);let l=JK(i),u=rW(YK(t,r),l,o.from,o.globals,c,o.placements);t.reloadConfig(i);for(let e of[...xa.map(e=>e.sessionKey),...o.placements.map(e=>e.key)])t.sessionState.clear(r,e);t.sessionState.set(r,ba.preset.sessionKey,u),t.dlog(`info`,`save-preset: ${[`${u} from=${o.from}`,...c.map(([e,t])=>`${e}=${t}`),...o.placements.map($K)].join(` `)} → ${l.path} (session=${r})`)},nq=(e,t)=>{let[n=``]=OK(()=>Wn(e)),r=EK(n),i=GK(t,r),a=zR(t.configFor(i),e=>t.sessionState.get(r,e));if(a.kind===`rule`)throw new K(`save-theme-default: the theme is chosen by a rule (globals.palette), so there is no name to save as a theme's default — pick one in the menu first`);let o=JK(i);iW(YK(t,r),o,a.theme,a.look),t.reloadConfig(i);let s=new Set(AR(t.configFor(i),e=>t.sessionState.get(r,e)).map(e=>e.sessionKey)),c=_g.map(e=>ba[e].sessionKey).filter(e=>!s.has(e));for(let e of c)t.sessionState.clear(r,e);t.dlog(`info`,`save-theme-default: ${a.theme} ${_g.map(e=>`${e}=${a.look[e]}`).join(` `)} → ${o.path} (session=${r})`)},rq=(e,t)=>{let[n=``,r=``]=OK(()=>Wn(e)),i=EK(n);if(!r)throw new K(`delete-preset: <name> is required (shape: <sessionId>/<name>)`);let a=GK(t,i),o=JK(a);aW(YK(t,i),o,r),t.reloadConfig(a);let s=ba.preset.sessionKey;t.sessionState.get(i,s)===r&&t.sessionState.clear(i,s),t.dlog(`info`,`delete-preset: ${r} ← ${o.path} (session=${i})`)},iq=(e,t)=>{let[n=``,...r]=OK(()=>Wn(e)),i=EK(n),a=GK(t,i),o=_M(t.configFor(a)).listKeys(),s=r.length===0?[``]:r.filter(e=>!o.includes(e));if(s.length>0)throw new K(`reset-config: unknown config key "${s.join(`", "`)}" (have: ${o.join(`, `)})`);let c=JK(a),l=r.map(BR),u=l.flatMap(e=>e.fileKeys),d=l.flatMap(e=>e.sessionKeys);eW(YK(t,i),c,u),t.reloadConfig(a);for(let e of d)t.sessionState.clear(i,e);t.dlog(`info`,`reset-config: ${[...u,...d.map(e=>`session:${e}`)].join(` `)} ← ${c.path} (session=${i})`)};function aq(e,t){let n=(e,t)=>[...fg(Zg(e,t).node)].filter(e=>e.kind===`segment`),r=new Set(Jg(t.presets).flatMap(e=>n(t,e).map(t=>aO(ZT(e),cg(t)))));return Jg(e.presets).flatMap(t=>n(e,t).map(e=>({member:aO(ZT(t),cg(e)),node:e})).filter(({member:e})=>!r.has(e)))}function oq(e,t){return e.flatMap(({member:e,node:n})=>[...Object.values(n.drafts??{}).map(e=>e.key),...e===t?[$D]:[]])}const sq=(e,t)=>{let[n=``,r=``,i=``]=OK(()=>Wn(e)),a=EK(n),o=GK(t,a),s=t.configFor(o),c=_M(s);if(!r)throw new K(`apply-layout-op: <key>/<op> is required (have: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new K(`apply-layout-op: ${l.reason}`);let u=rM(l.value);if(u===null)throw new K(`apply-layout-op: "${l.value}" is not a layout op token`);let d=JK(o),f=oW(YK(t,a),d,r,u);t.reloadConfig(o);let p=oq(aq(s,t.configFor(o)),t.sessionState.get(a,$D)).filter(e=>t.sessionState.get(a,e)!==null);for(let e of p)t.sessionState.clear(a,e);t.dlog(`info`,`apply-layout-op: ${r} ${l.value} → ${d.path} placed=${JSON.stringify(f)} released=${JSON.stringify(p)} (session=${a})`)},cq=(e,t)=>{let[n=``]=OK(()=>Wn(e)),r=EK(n);t.journal.commit();let i=t.history.undo(r);KK(t,r,i),t.dlog(`info`,`undo: restored ${OW(i)} (session=${r})`)},lq=(e,t)=>{let n=EK(DK(e)),{step:r,discarded:i}=t.navigation.back(n,t.sessionState,tz(qK(t,n))),a=r.map(e=>`${e.key}=${e.before??`∅`}`).join(` `);t.dlog(`info`,`back: ${a} discarded=${i} (session=${n})`)},uq=(e,t)=>{let n=EK(DK(e));t.journal.commit();let r=t.history.rewind(n);KK(t,n,r),t.dlog(`info`,`rewind: put back ${OW(r)||`nothing`} as edit mode found it (session=${n})`)},dq=(e,t)=>{let[n=``]=OK(()=>Wn(e)),r=EK(n);t.journal.commit();let i=t.history.redo(r);KK(t,r,i),t.dlog(`info`,`redo: re-applied ${OW(i)} (session=${r})`)},fq=(e,t)=>{EK(DK(e)),t.applyUpdate()},pq=`client-hints`;function mq(e,t){let n=e.sessionState.get(t,pq);if(n===null)throw new K(`session ${t} has not rendered yet — no client facts are recorded for it`);let r;try{r=JSON.parse(n)}catch{throw new K(`client hints record is not JSON: ${n}`)}if(typeof r!=`object`||!r)throw new K(`client hints record is not an object: ${n}`);return ot(r)}function hq(e,t,n){let r=pk(n);e.sessionState.setBatch(t,bk(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed(${1+(e.verdict.more?.length??0)})`}`).join(` `)} ${vk(n.nerdFont,n.marks)} ${_k(n.terminal,n.clicked)} (session=${t})`)}function gq(e,t){let n;try{n=JG(e.doctor,mq(e,t),GK(e,t),n=>e.sessionState.get(t,n))}catch(e){throw e instanceof HW?new K(e.message):e}return{...n,urlHandler:KG(e.clientVersion),askedBy:`click`,clicked:_q(e,n)}}function _q(e,{terminal:t,clicked:n}){let r=t.kind===`seen`?HO(t.identified):null;if(r===null||n.kind===`failed`)return n;try{e.doctor.clicked.record(r)}catch(t){return e.dlog(`warn`,`doctor: clicked terminal not filed for ${JSON.stringify(r)}: ${t instanceof Error?t.message:String(t)}`),n}return{kind:`ok`,value:n.value.includes(r)?n.value:[...n.value,r]}}const vq=(e,t)=>{let n=EK(DK(e));hq(t,n,gq(t,n))},yq=(e,t)=>{let n=sK(DK(e));if(n===null)throw new K(`doctor-probe: the value is not a probe nonce`);t.probes.arrive({nonce:n,handler:t.clientVersion}),t.dlog(`info`,`doctor-probe: arrived nonce=${n} handler=${t.clientVersion??`unreported`}`)},bq=(e,t)=>{let[n=``,r=``]=OK(()=>Wn(e)),i=EK(n),a=mk(r);if(a===void 0)throw new K(`doctor-fix: unknown check "${r}"`);let o=gq(t,i),s=a.probe(o);if(s.ok||s.fix===void 0)throw new K(`doctor-fix: ${a.label} — ${s.ok?`nothing to fix`:s.reason}`);let c=YG(s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.path.join(`.`)}=${JSON.stringify(s.fix.value)} (session=${i})`),hq(t,i,c)},xq=(e,t)=>{let[n=``,r=``,i=``]=OK(()=>Wn(e)),a=EK(n),o=mk(r);if(o===void 0)throw new K(`doctor-mark: unknown check "${r}"`);if(!KO.includes(i))throw new K(`doctor-mark: the mark is ${JSON.stringify(i)}, not ${KO.join(` or `)}`);let s=gq(t,a),c=o.probe(s);if(c.ok||c.sighting===void 0)throw new K(`doctor-mark: ${o.label} — ${c.ok?`nothing to mark`:`shows nothing to look at`}`);if(s.marks.kind===`failed`)throw new K(`doctor-mark: ${s.marks.reason}`);let l=[o.name,c.sighting.id,i];t.doctor.marks.record(...l),t.dlog(`info`,`doctor-mark: ${o.name} ${i} on ${c.sighting.id} (session=${a})`),hq(t,a,{...s,marks:{kind:`ok`,value:BW(s.marks.value,...l)}})},Sq=(e,t)=>{let[n=``,...r]=OK(()=>Wn(e)),i=EK(n),a=GK(t,i),o=Object.values(t.configFor(a).actions).filter(e=>`ceiling`in e).find(e=>{let t=yP(e);return t.length===r.length&&t.every((e,t)=>e===r[t])});if(o===void 0)throw new K(`ceiling: "${r.join(` `)}" is not a move this config declares`);let s=o.ceiling===`set`?{kind:`set`,to:o.to}:{kind:`clear`},c=NL({sessionId:i,projectDir:a.projectDir,cwd:a.cwd},mq(t,i));t.memento.move(c,s),t.dlog(`info`,`ceiling: ${r.join(` `)} (session=${i} claudeConfigDir=${c.claudeConfigDir})`)},Cq=(e,t)=>{let[n=``,r=``]=OK(()=>Wn(e)),i=EK(n),a=Object.values(t.configFor(GK(t,i)).actions).filter(e=>`slash`in e),o=a.find(e=>e.slash===r);if(o===void 0)throw new K(`${JSON.stringify(r)} is not a command this config declares (it declares: ${[...new Set(a.map(e=>e.slash))].join(`, `)||`none`})`);let s=bK(t.claudeInput,mq(t,i).tmux,o.slash);if(s.kind===`refused`)throw t.dlog(`warn`,`slash: ${r} refused — ${s.reason} (session=${i})`),new K(`${r} was not typed: ${s.reason}`);t.dlog(`info`,`slash: typed ${r} into ${s.pane} (session=${i})`)},wq=`config-override`,Tq=new Map([[bn,AK],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new K(`load-config: expected <sessionId>/<path> (missing separator)`);let r=EK(OK(()=>decodeURIComponent(e.slice(0,n)))),i=OK(()=>decodeURIComponent(e.slice(n+1))).trim();if(i!==``){if(!i.startsWith(`/`))throw new K(`load-config: path must be absolute, got "${i}"`);if(!/\.(json5?|json)$/.test(i))throw new K(`load-config: path must end with .json5 or .json, got "${i}"`)}i===``?(t.sessionState.clear(r,wq),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,wq,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[xn,jK],[yn,FK],[N,RK],[P,XK],[Tn,ZK],[An,iq],[En,QK],[Dn,tq],[On,nq],[kn,rq],[jn,sq],[Mn,cq],[Nn,dq],[Pn,lq],[Fn,uq],[Cn,MK],[wn,NK],[Sn,PK],[In,fq],[Ln,vq],[Rn,bq],[zn,xq],[Bn,yq],[Vn,Sq],[Hn,Cq]]),Eq=new Set([yn,N,P,Tn,An,En,Dn,On,kn,jn,Mn,Nn,Pn,Fn,Sn,In,Ln,Rn,zn,Vn,Hn]),Dq=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Jn(Kn(e))){if(!i&&Eq.has(a)){let e=Wn(o);e.length>0&&e[0]&&(i=e[0])}let e=Tq.get(a);if(!e){n.push(`unknown effect verb "${a}"`);continue}try{e(o,t)}catch(e){e instanceof K||(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(`
463
+ `));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new K(e)}};function Oq(e){return(t,n)=>{let r=n.history.begin(),i=n.navigation.begin(r.sessionState),a=[];try{e(t,{...n,sessionState:r.sessionState,journal:r,navigating:i.sessionState})}catch(e){a.push(e)}i.commit();try{r.commit()}catch(e){a.push(e)}if(a.length===1)throw a[0];if(a.length>1)throw Error(a.map(e=>String(e.message??e)).join(`; `))}}const kq=new Map([...Tq,[vn,Dq]].map(([e,t])=>[e,Oq(t)]));Object.freeze([...kq.keys()]);const Aq=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`]),jq=[[`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`]],Mq=[[`workspace.added_dirs`,`string-list`]];function Nq(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of jq){let i=Iq(n,e);if(i==null)t.missingRequired.push(e);else{let n=Pq(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let[e,r]of Mq){let i=Iq(n,e),a=i===void 0?r:Fq(i);a!==r&&t.typeMismatches.push({path:e,expected:r,got:a})}for(let e of Object.keys(n))Aq.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function Pq(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function Fq(e){return Array.isArray(e)&&e.every(e=>Pq(e)===`string`)?`string-list`:Pq(e)}function Iq(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 Lq(e,t){switch(e){case`vars`:return{what:e,vars:Rq(t)};case`segments`:return{what:e,segments:Uq(t)};case`config`:return{what:e,config:qq(t)}}}function Rq(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=Vq(r),a=t.names().sort(),o=[];for(let e of a){let r=t.getNode(e),a=zq(r),s=n.getLastError(e);o.push({name:e,source:i.get(e)??null,...a,lastError:s===void 0?null:{timestampMs:s.timestamp,message:s.message},ageMs:Bq(r.lastUpdatedMs())})}return o}function zq(e){if(e.kind!==`document`)try{return{type:e.type,value:e.read()}}catch(t){return{type:e.type,value:t instanceof Error?t.message:String(t)}}let t=e.read();switch(t.kind){case`ok`:return{type:`document`,value:JSON.stringify(t.value)};case`absent`:return{type:`document`,value:`(not yet scanned)`};case`failed`:return{type:`document`,value:t.reason}}}function Bq(e){return e===null?null:Math.max(0,Date.now()-e)}function Vq(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,Hq(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}`,Hq(i));return t}function Hq(e){return e.kind}function Uq(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=Gq(n),o=Wq(n),s=[];for(let e of a){let t=n.segments[e];t&&s.push({name:e,description:t.description??null,template:t.template,referencedVars:Kq(t.template,n.helpers,i),placements:(o.get(e)??[]).map(e=>({id:e,lastRender:r.get(e)??null}))})}return s}function Wq(e){let t=new Map;for(let n of Jg(e.presets))for(let r of fg(Zg(e,n).node)){if(r.kind!==`segment`)continue;let e=t.get(r.name)??[],n=cg(r);e.includes(n)||t.set(r.name,[...e,n])}return t}function Gq(e){let t=[],n=new Set;for(let r of fg(Vg(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 Kq(e,t,n){let r=new Set;for(let i of y_(e,t).keys()){if(n.has(i)){r.add(i);continue}let e=i.split(`.`);for(;e.length>1;){e.pop();let t=e.join(`.`);if(n.has(t)){r.add(t);break}}}return Array.from(r).sort()}function qq(e){return e===null?null:e.config}const Jq=[`vars`,`segments`,`config`];function Yq(e){return typeof e==`string`&&Jq.includes(e)}function Xq(e){return Math.max(1,e-2)}var Zq=class{written=new Map;constructor(e){this.dir=e}pathFor(e){return l.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}`}}};function Qq(e,t){for(let n of Object.entries(t))e.push(n)}const $q={ok:`info`,"bad-request":`warn`,threw:`error`};function eJ(e){switch(e.kind){case`ok`:return[];case`bad-request`:return[[`problems`,e.problems.join(`; `)]];case`threw`:return[[`error`,y(e.error)]]}}const tJ=/^[^\s"=\\]+$/,nJ=e=>tJ.test(e)?e:JSON.stringify(e);function rJ(e,t,n){let r=[...e,[`took`,`${n}ms`],[`outcome`,t.kind],...eJ(t)];return{level:$q[t.kind],line:`render${r.map(([e,t])=>` ${e}=${nJ(t)}`).join(``)}`}}const iJ=new tU,aJ=new aK;Ae(iJ.launchStats);const oJ=new uT({counters:iJ,logger:A}),sJ=wB({watchers:oJ,logger:A}),{gitProvider:cJ,usageStore:lJ,mementoProvider:uJ}=sJ,dJ=new iU,fJ=new mW(dJ,A),pJ=new LW,mJ=new hh,hJ=new Zq($e()),gJ=new $H({gitService:cJ,sessionState:dJ,watchers:oJ},{observers:{onReload:e=>A(`info`,`config loaded projectDir=${e.projectDir} cwd=${e.cwd} files=${e.configLayers.join(` < `)||`<bundled default>`} error=${e.lastError===null?`none`:JSON.stringify(e.lastError)} warning=${e.lastWarning===null?`none`:JSON.stringify(e.lastWarning)}`)}}),_J=60*1e3;function vJ(){let e=import.meta.url,n=[];e.startsWith(`file://`)&&n.push(ne(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){A(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),PJ(0);return}}catch(e){A(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,_J),a.unref())},checkNow:o}}const yJ=vJ(),bJ=Cz({entryUrl:import.meta.url,intervalMs:_J,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>yJ.checkNow(),log:A});let xJ=null,SJ=null,CJ=0;function wJ(){t.on(`uncaughtException`,e=>{A(`error`,`uncaughtException: ${e.stack||e.message}`),PJ(1)}),t.on(`unhandledRejection`,e=>{A(`error`,`unhandledRejection: ${String(e)}`),PJ(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{A(`info`,`received ${e}, shutting down`),PJ(0)});try{CJ=Wt(t.env)}catch(e){A(`error`,`refusing to boot: ${e.message}`),PJ(1);return}xJ=sa(t.pid);let e=_a(ya(xJ));if(!e.decision.allow){A(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),PJ(1);return}SJ=e.registryPath,r.mkdirSync(Be(),{recursive:!0}),We(Ve()),dJ.useStorage(new oU(qe(),500,A)),fJ.useStorage(FW(Je(),A)),ua({anchor:la(t.env),isAlive:da,onOrphaned:e=>{A(`info`,`parent watchdog: ${e}; shutting down`),PJ(0)}}),TJ(S.createServer({allowHalfOpen:!1},e=>{FJ(e)}),Ve(),!1)}function TJ(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){A(`error`,`server error: ${i.message}`),PJ(1);return}if(r){A(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}EJ(e,n)}),e.listen(n,()=>DJ(n))}function EJ(e,n){let i=Zi(Qi(Ge(n)),(e,t)=>oa(e,t,{readStartTime:aa,pidAlive:da}));if(i.kind===`attach-and-exit`){A(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}A(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){A(`error`,`cannot unlink stale socket ${n}: ${e.message}`),PJ(1);return}}TJ(e,n,!0)}function DJ(e){let n=ta(e);if(n.kind!==`present`){A(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),PJ(0);return}jJ(e);try{r.chmodSync(e,384)}catch(e){A(`warn`,`chmod socket failed: ${e.message}`)}A(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(C.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(CJ/1048576)}MB`),sn();let i=hJ.reset();i!==null&&A(`warn`,`diagnostic dump wipe failed: ${i}`),yJ.arm(),bJ.arm(),AJ(),OJ(e,n.identity)}function OJ(e,n){ia({bound:n,myPid:t.pid,readIdentity:()=>ta(e),readLease:()=>Qi(Ge(e)),shutdown:e=>PJ(e),log:A}).arm()}let kJ=null;function AJ(){kJ=Jt(Zt(iJ.startedAt.getTime(),e=>PJ(e),{rssLimitBytes:CJ})),kJ.arm()}function jJ(e){let n=$i(Ge(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:xJ});n!==null&&A(`warn`,`lease write failed: ${n}`)}let MJ=0,NJ=!1;function PJ(e){if(!NJ){NJ=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{cJ.close()}catch(e){A(`warn`,`gitService close failed: ${e.message}`)}try{lJ.close()}catch(e){A(`warn`,`usageStore close failed: ${e.message}`)}try{oJ.closeAll()}catch(e){A(`warn`,`watcherRegistry close failed: ${e.message}`)}try{dJ.flush()}catch(e){A(`warn`,`sessionState flush failed: ${e.message}`)}ea(Ke(),t.pid),SJ!==null&&va(SJ,t.pid,ha,e=>r.unlinkSync(e)),t.exit(e)}}function FJ(e){MJ++,iJ.inFlight=MJ;let t=!1,n=(n,r)=>{if(t){r!==null&&A(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>PJ(r);try{e.end(k(n),i)}catch(e){A(`warn`,`response write failed: ${e.message}`),i?.()}},r=!1,i=setTimeout(()=>{r=!0,iJ.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),a=_t(e=>{RJ(e,()=>r).then(e=>n(e.resp,e.exitAfterFlush)).catch(e=>{A(`error`,`handler threw: ${y(e)}`),n(LJ(e),null)})},e=>{A(`warn`,`frame parse failed: ${e.message}`),n({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)});e.on(`data`,a),e.on(`error`,e=>{A(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(i),MJ=Math.max(0,MJ-1),iJ.inFlight=MJ})}const IJ=e=>({resp:e,exitAfterFlush:null}),LJ=e=>({ok:!1,error:e instanceof Error?e.message:y(e),code:`RENDER_FAILED`,daemonV:3});async function RJ(e,t){if(!e||typeof e!=`object`||typeof e.v!=`number`)return IJ({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?A(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):A(`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 IJ({ok:!0,stats:iJ.snapshot({gitCache:cJ.getStats(),usageCache:lJ.getStats(),renderCacheSize:gJ.size,effectCache:mJ.getStats(),watchersActive:oJ.size(),nextRestartReason:kJ?.describeNextRestart()??null,handlerProbes:aJ.list()})});if(e.kind===`render`){iJ.requestsTotal++;let n=new Date,r=ST(n),i=n.getTime(),a=[],o=await KJ(e,r,a).catch(e=>({outcome:{kind:`threw`,error:e},resp:LJ(e)}));o.outcome.kind!==`ok`&&iJ.requestsErrored++,Qq(a,{timedOut:t()?`Y`:`N`});let{level:s,line:c}=rJ(a,o.outcome,Date.now()-i);return A(s,c),IJ(o.resp)}if(e.kind===`click`)return IJ(GJ(e.verb,e.value,ht(e.clientVersion)));if(e.kind===`debug`){if(!Yq(e.what))return IJ({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${Jq.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=gJ.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?UJ(t.lastRenderCellsBySegment,t.config.globals.charset??`unicode`,t.config.globals.colorCompatibility??`truecolor`):HJ};return IJ({ok:!0,debug:Lq(e.what,n)})}return IJ({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function zJ(e,t){let{values:n,tokens:r}=b({args:e.slice(1),options:{config:{type:`string`}},strict:!1,tokens:!0,allowPositionals:!0}),i=[...new Set((r??[]).filter(e=>e.kind===`option`&&e.name!==`config`).map(e=>`--${e.name}`))];return{configFile:XF(t,n.config),unknownFlagsError:i.length>0?`Unknown flags: ${i.join(`, `)}`:null}}const BJ={sessionState:dJ,dlog:A,applyUpdate:()=>bJ.act(),doctor:BG(e=>{let t=[e.projectDir,e.cwd,e.configFile??void 0];gJ.reload(...t);let n=gJ.getOrCreate(...t);return{layers:n.configLayers,error:n.lastError,warning:n.lastWarning,unused:n.state.unused,config:n.state.config}}),probes:aJ,memento:uJ,claudeInput:TK(),history:fJ,navigation:pJ,configFor:e=>gJ.getOrCreate(e.projectDir,e.cwd,e.configFile??void 0).state.config,reloadConfig:e=>gJ.reload(e.projectDir,e.cwd,e.configFile??void 0)};BJ.reloadConfig;const VJ={endcaps:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,charset:Lm,width:1/0},HJ=new Map;function UJ(e,t,n){let r=new Map;for(let[i,a]of e)r.set(i,Oh(a,{...VJ,charset:t,colorCompatibility:n}));return r}const WJ={...sJ,history:e=>fJ.depth(e)};function GJ(e,t,n){let r=kq.get(e);if(!r)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return r(t,{...BJ,clientVersion:n}),{ok:!0,output:``}}catch(e){let t=e instanceof K?`BAD_REQUEST`:`RENDER_FAILED`;return{ok:!1,error:String(e instanceof Error?e.message:e),code:t,daemonV:3}}}async function KJ(e,t,n){let{report:r}=Nq(e.hookData);for(let e of r.unknownTopLevelFields)A(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let i=[];for(let e of r.missingRequired)i.push(`missing required field '${e}'`);for(let{path:e,expected:t,got:n}of r.typeMismatches)i.push(`field '${e}' expected ${t}, got ${n}`);if(f(e.cwd)||i.push(`request 'cwd' is not an absolute path: "${e.cwd}"`),i.length>0)return{outcome:{kind:`bad-request`,problems:i},resp:{ok:!1,error:`malformed hookData: ${i.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3}};Qq(n,{sid:e.hookData.session_id,at:t.toFixed(3)});let a=e.hookData.workspace.project_dir,{configFile:o,unknownFlagsError:s}=zJ(e.args,e.cwd),c=e.hookData.session_id,l=ot(e),u=st(e,l),d=ct(u);Qq(n,{termCols:String(l.termCols??`?`),termRows:String(l.termRows??`?`),refused:u.map(e=>e.hint).join(`,`)||`-`});let p=JSON.stringify(l);dJ.get(c,`client-hints`)!==p&&dJ.set(c,pq,p);let m=dJ.get(c,`config-override`)??o??l.configEnv,h=gJ.getOrCreate(a,e.cwd,m),g=UK({projectDir:a,cwd:e.cwd,configFile:m??null});dJ.get(c,`render-origin`)!==g&&dJ.set(c,HK,g);let _=l.termCols,v=Xq(_??120),y=kh(l.termRows);Qq(n,{width:String(v)});let{authoredRoots:b}=h.state,x=t=>dJ.get(e.hookData.session_id,t),S=KL(h.state.config,x,e=>b.has(e)),C=await dR(e.hookData,t,{...WJ,navigation:e=>pJ.depth(e,dJ,tz(h.state.config))},e.cwd,h.state.neededInputPaths(S.preset),S,l,{...HR(h.state.config,h.state.fileHeldSettings,x),configPath:h.configLayers.includes(h.configHome)?h.configHome:null});Qq(n,{prompts:String(C.metrics?.messageCount??`-`),nonPrompts:String(C.metrics?.nonPrompts??`-`),pr:ZL(C.git)});let ee=[],te=qL(S,v),ne=mJ.of(c),re=MH(h.state.config,h.state.compiled,h.state.store,h.state.registry,C,t,te,{perSegmentSink:h.state.lastRenderCellsBySegment,onRenderWarning:e=>ee.push(e)},{...JL(S),effects:ne}),ie=dJ.get(e.hookData.session_id,`click.error`);ie&&dJ.clear(e.hookData.session_id,`click.error`);let ae=[s,d,h.lastError,ie].filter(Boolean).join(`
464
+ `),w=bJ.notice({sessionId:c,dismissed:dJ.get(c,sz),enabled:S.updateNotice}),T=h.lastError===null?null:h.failedFile,oe=[...h.lastWarning===null?[]:[{kind:`load`,message:h.lastWarning}],...ee],E=Ph(ae,w,oe.map(e=>e.message).join(`
465
+ `)),se=hJ.sync(c,E===null?null:Ih(E));se!==null&&A(`warn`,`diagnostic dump failed: ${se}`);let ce=Lh(re,E,{fullText:se===null?{kind:`file`,path:hJ.pathFor(c)}:{kind:`unavailable`,reason:se},failedConfigFile:T},{width:v,rowCap:y,colorCompatibility:S.colorCompatibility}),le=cJ.getStats(),ue=lJ.getStats(),de=ne.lastFrame(),fe=de.own.map(e=>`${e.placement}:${e.effect}@${e.t.toFixed(3)}`).join(`,`)||`-`,pe=e=>e.map(e=>`${e.placement}@${e.t.toFixed(3)}`).join(`,`)||`-`,me=oe.map(e=>{switch(e.kind){case`rule`:return`rule:${e.slot}`;case`refresh`:return`refresh:${e.variable}`;case`load`:case`band-floor`:case`when`:return e.kind}}).join(`,`)||`-`;return Qq(n,{git:`${le.size}/${le.hits}h/${le.misses}m`,usage:`${ue.size}/${ue.hits}h/${ue.misses}m`,effect:de.effect,effectT:de.t.toFixed(3),effectRows:`${de.made}made/${de.reused}reused`,effectOwn:fe,fadeBasis:de.basis,stateRev:String(de.revision),fades:pe(de.fades),leaves:pe(de.leaves),err:ae?`Y`:`N`,upd:String(w.length),warn:me}),{outcome:{kind:`ok`},resp:{ok:!0,output:ce+`
466
+ `}}}const qJ={connectMs:200,budgetMs:500};async function JJ(e,n){let r=n.includes(`--json`),i=await YJ(e);if(i.kind!==`ok`&&(t.stderr.write(`${e}: ${Tt(i)}\n`),t.exit(1)),r){t.stdout.write(JSON.stringify(i.value,null,2)+`
467
+ `);return}t.stdout.write(XJ(i.value))}function YJ(e){return yt({kind:`debug`,what:e},qJ,e=>`debug`in e?e.debug:void 0)}function XJ(e){switch(e.what){case`vars`:return ZJ(e.vars);case`segments`:return QJ(e.segments);case`config`:return $J(e.config);default:return e}}function ZJ(e){if(e.length===0)return`no variables (DSL not active)
468
+ `;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?``:` ${tY(a.ageMs)}`,o=a.lastError?` ✗ ${a.lastError.message}`:``;t.push(` ${a.name.padEnd(n)} ${(a.source??`—`).padEnd(r)} ${a.type.padEnd(i)} ${eY(a.value)}${e}${o}`)}return t.join(`
462
469
  `)+`
463
- `}function Bq(e){if(e.length===0)return`no segments (DSL not active)
470
+ `}function QJ(e){if(e.length===0)return`no segments (DSL not active)
464
471
  `;let t=[`segments (${e.length})`,``];for(let n of e){t.push(` ${n.name}`),n.description!==null&&t.push(` shows ${n.description}`),t.push(` template ${n.template}`),n.referencedVars.length>0&&t.push(` vars ${n.referencedVars.join(`, `)}`);for(let{id:e,lastRender:r}of n.placements)r!==null&&t.push(` last ${e}: ${r}`)}return t.join(`
465
472
  `)+`
466
- `}function Vq(e){return e===null?`config: DSL not active
473
+ `}function $J(e){return e===null?`config: DSL not active
467
474
  `:JSON.stringify(e,null,2)+`
468
- `}function Hq(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function Uq(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function Wq(){let e=Kq();return e===null?null:r.readFileSync(e,`utf-8`)}function Gq(){let e;try{e=Wq()}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 Kq(){let e=l.join(`schema`,`cc-candybar.schema.json`),n=t.argv[1];if(n===void 0)return null;let i=l.dirname(l.resolve(n));for(;;){let t=l.join(i,e);if(r.existsSync(t))return t;let n=l.dirname(i);if(n===i)return null;i=n}}function qq(e,t){return qP(t,e.CC_CANDYBAR_CONFIG)}const Jq=5e3;function Yq(e,t,n){let r=`/home/tester`,i=Math.floor(n),a=`test0a1b-2c3d-4e5f-6a7b-8c9d0e1f2a3b`,o={current_dir:`${r}/code/cc-candybar/src`,project_dir:`${r}/code/cc-candybar`,added_dirs:[]};return{hook_event_name:`Status`,session_id:a,version:`1.15.0`,home:r,cwd:`${r}/code/cc-candybar/src`,transcript_path:`${r}/.claude/projects/x/test.jsonl`,model:{id:`claude-opus-4-8`,display_name:`Opus 4.8`},workspace:o,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`,tracking:`tracked`,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:i+2*3600},weekly:{percentage:21,resetsAt:i+5*86400},cache:{expiresAt:i+900},tmux:{pane:`%0`,session:`work`},host:{name:`tester-box`,user:`tester`,ssh:!0},autocompact:FO(4e5,1e6),...UI(e),history:{undo:1,redo:1,sinceEdit:1},navigation:{back:1},unsaved:1,resettable:Ea(()=>!0),themeDefault:{differs:!0,theme:`<theme>`},resumeCommand:zI(o,a,void 0),configPath:t??`${r}/.config/cc-candybar/config.json5`}}function Xq(e,t){let n=EF(e,e),r=kF(n);return r!==null&&t.push(r),n.kind===`chain`?n.layers:[]}async function Zq(e,n=t.cwd()){let i=[],a=qP(n,e)??null,o=a===null?Xq(n,i):[a];if(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 s=jF(n,n);s!==null&&i.push(s);try{return{kind:`clean`,layers:o,warnings:i,rendered:await eJ(o,n,i)}}catch(e){let t=e;return typeof t==`object`&&t&&typeof t.code==`string`&&typeof t.path==`string`&&o.includes(t.path)&&typeof t.message==`string`?{kind:`unreadable`,path:t.path,message:t.message}:(e instanceof aT&&i.push(...e.warnings),{kind:`fatal`,layers:o,message:e instanceof aT||e instanceof Error?e.message:String(e),warnings:i})}}async function Qq(e,t,n){let r=RF(e,sI,{entered:()=>{},warned:e=>n.push(...e)},{projectDir:t,cwd:t}),{config:i}=r,a=new IV,o=new $w(a,i.globals.default_empty_value??``,void 0,new XV);try{let s=vV(i,o,{cwd:t});n.push(...s.loadWarnings);let c=await o.settled(Jq);return c.length>0&&n.push(`source${c.length===1?``:`s`} still running after ${Jq} ms, rendered with fallback values: ${c.join(`, `)}`),{layers:e,droppedPlugins:[...r.installed.dropped,...r.layers.flatMap(e=>e.plugins.dropped)],config:i,compiled:s,store:a,registry:o}}catch(e){throw o.dispose(),e}}function $q({layers:e,config:t,compiled:n,store:r,registry:i},a,o,s){let c=new Map,l=new Set;return{rendered:wV(t,n,r,i,Yq(a,e.at(-1)??null,s),s,VI(a,o),{onSegmentError:(e,t)=>c.set(`segment "${e}"`,t),onRenderWarning:e=>{switch(e.kind){case`rule`:c.set(`${e.slot} rule`,e.message);return;case`when`:c.set(e.where,e.error);return;case`refresh`:c.set(`variable "${e.variable}"`,`cannot refresh: ${e.error}`);return;case`band-floor`:l.add(e.message);return;default:}}},HI(a)),failures:c,advisories:l}}async function eJ(e,t,n){let r=await Qq(e,t,n),{config:i}=r,a=kw(new Date);try{let e=gR();try{YL(i),mj(i)}finally{e()}let t=rg(null,i.globals.preset,i.presets),o=(e,t)=>{let n=BI(i,t=>t===`preset`?e:null,()=>t),o;try{o=$q(r,n,200,a)}catch(e){o={failures:new Map([[`render`,e instanceof Error?e.message:String(e)]]),advisories:new Set}}return{preset:e,customized:t,...o}},s=o(t,!1),c=[s,o(t,!0),...ng(i.presets).filter(e=>e!==t).flatMap(e=>[o(e,!1),o(e,!0)])],l=e=>{let n=new Map;for(let t of c)for(let r of e(t)){let e=n.get(r)??new Map;e.set(t.preset,(e.get(t.preset)??new Set).add(t.customized)),n.set(r,e)}return[...n].map(([e,n])=>n.get(t)?.has(!1)?e:`${e} (under ${[...n].map(([e,n])=>[...e===t?[]:[`preset "${e}"`],...n.has(!1)?[]:[`.preset.customized = true`]].join(`, `)).join(`; `)})`)};n.push(...l(e=>e.advisories));let u=l(e=>[...e.failures].map(([e,t])=>`${e}: ${t}`)),d=s.rendered,f=r.droppedPlugins.length,p=[...f>0?[`${f} plugin${f===1?``:`s`} did not load (named in the warnings)`]:[],...u.length>0||d===void 0?[`config renders with ${u.length} render error${u.length===1?``:`s`} (the daemon would show them on the bar):\n`+u.map(e=>` ${e}`).join(`
475
+ `}function eY(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function tY(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function nY(){let e=iY();return e===null?null:r.readFileSync(e,`utf-8`)}function rY(){let e;try{e=nY()}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 iY(){let e=l.join(`schema`,`cc-candybar.schema.json`),n=t.argv[1];if(n===void 0)return null;let i=l.dirname(l.resolve(n));for(;;){let t=l.join(i,e);if(r.existsSync(t))return t;let n=l.dirname(i);if(n===i)return null;i=n}}function aY(e,t){return XF(t,e.CC_CANDYBAR_CONFIG)}const oY=5e3;function sY(e,t,n){let r=`/home/tester`,i=Math.floor(n),a=`test0a1b-2c3d-4e5f-6a7b-8c9d0e1f2a3b`,o={current_dir:`${r}/code/cc-candybar/src`,project_dir:`${r}/code/cc-candybar`,added_dirs:[]};return{hook_event_name:`Status`,session_id:a,version:`1.15.0`,home:r,cwd:`${r}/code/cc-candybar/src`,transcript_path:`${r}/.claude/projects/x/test.jsonl`,model:{id:`claude-opus-4-8`,display_name:`Opus 4.8`},workspace:o,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`,tracking:`tracked`,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:i+2*3600},weekly:{percentage:21,resetsAt:i+5*86400},cache:{expiresAt:i+900},tmux:{pane:`%0`,session:`work`},host:{name:`tester-box`,user:`tester`,ssh:!0},autocompact:Rk(4e5,1e6),...YL(e),history:{undo:1,redo:1,sinceEdit:1},navigation:{back:1},unsaved:1,resettable:Ea(()=>!0),themeDefault:{differs:!0,theme:`<theme>`},resumeCommand:GL(o,a,void 0),configPath:t??`${r}/.config/cc-candybar/config.json5`}}function cY(e,t){let n=jI(e,e),r=PI(n);return r!==null&&t.push(r),n.kind===`chain`?n.layers:[]}async function lY(e,n=t.cwd()){let i=[],a=XF(n,e)??null,o=a===null?cY(n,i):[a];if(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 s=II(n,n);s!==null&&i.push(s);try{return{kind:`clean`,layers:o,warnings:i,rendered:await fY(o,n,i)}}catch(e){let t=e;return typeof t==`object`&&t&&typeof t.code==`string`&&typeof t.path==`string`&&o.includes(t.path)&&typeof t.message==`string`?{kind:`unreadable`,path:t.path,message:t.message}:(e instanceof QT&&i.push(...e.warnings),{kind:`fatal`,layers:o,message:e instanceof QT||e instanceof Error?e.message:String(e),warnings:i})}}async function uY(e,t,n){let r=WI(e,pL,{entered:()=>{},warned:e=>n.push(...e)},{projectDir:t,cwd:t}),{config:i}=r,a=new WH,o=new KT(a,i.globals.default_empty_value??``,void 0,new iU);try{let s=EH(i,o,{cwd:t});n.push(...s.loadWarnings);let c=await o.settled(oY);return c.length>0&&n.push(`source${c.length===1?``:`s`} still running after ${oY} ms, rendered with fallback values: ${c.join(`, `)}`),{layers:e,droppedPlugins:[...r.installed.dropped,...r.layers.flatMap(e=>e.plugins.dropped)],config:i,compiled:s,store:a,registry:o}}catch(e){throw o.dispose(),e}}function dY({layers:e,config:t,compiled:n,store:r,registry:i},a,o,s){let c=new Map,l=new Set;return{rendered:MH(t,n,r,i,sY(a,e.at(-1)??null,s),s,qL(a,o),{onSegmentError:(e,t)=>c.set(`segment "${e}"`,t),onRenderWarning:e=>{switch(e.kind){case`rule`:c.set(`${e.slot} rule`,e.message);return;case`when`:c.set(e.where,e.error);return;case`refresh`:c.set(`variable "${e.variable}"`,`cannot refresh: ${e.error}`);return;case`band-floor`:l.add(e.message);return;default:}}},JL(a)),failures:c,advisories:l}}async function fY(e,t,n){let r=await uY(e,t,n),{config:i}=r,a=ST(new Date);try{let e=Sz();try{tz(i),_M(i)}finally{e()}let t=Yg(null,i.globals.preset,i.presets),o=(e,t)=>{let n=KL(i,t=>t===`preset`?e:null,()=>t),o;try{o=dY(r,n,200,a)}catch(e){o={failures:new Map([[`render`,e instanceof Error?e.message:String(e)]]),advisories:new Set}}return{preset:e,customized:t,...o}},s=o(t,!1),c=[s,o(t,!0),...Jg(i.presets).filter(e=>e!==t).flatMap(e=>[o(e,!1),o(e,!0)])],l=e=>{let n=new Map;for(let t of c)for(let r of e(t)){let e=n.get(r)??new Map;e.set(t.preset,(e.get(t.preset)??new Set).add(t.customized)),n.set(r,e)}return[...n].map(([e,n])=>n.get(t)?.has(!1)?e:`${e} (under ${[...n].map(([e,n])=>[...e===t?[]:[`preset "${e}"`],...n.has(!1)?[]:[`.preset.customized = true`]].join(`, `)).join(`; `)})`)};n.push(...l(e=>e.advisories));let u=l(e=>[...e.failures].map(([e,t])=>`${e}: ${t}`)),d=s.rendered,f=r.droppedPlugins.length,p=[...f>0?[`${f} plugin${f===1?``:`s`} did not load (named in the warnings)`]:[],...u.length>0||d===void 0?[`config renders with ${u.length} render error${u.length===1?``:`s`} (the daemon would show them on the bar):\n`+u.map(e=>` ${e}`).join(`
469
476
  `)]:[]];if(p.length>0||d===void 0)throw Error(p.join(`
470
- `));return d}finally{r.registry.dispose()}}function tJ(e){return e.map(e=>`warning: ${e}\n`).join(``)}function nJ(e,t=!1){switch(e.kind){case`clean`:return{stdout:`✓ ${e.layers.join(` < `)||`bundled default (no config file found)`}: config OK${e.warnings.length>0?` (${e.warnings.length} warning${e.warnings.length===1?``:`s`})`:``}\n`+(t?`${e.rendered}\n`:``),stderr:tJ(e.warnings),code:0};case`fatal`:return{stdout:``,stderr:tJ(e.warnings)+`✗ ${e.layers.join(` < `)||`<default>`}\n${e.message}\n`,code:1};case`unreadable`:return{stdout:``,stderr:`check: cannot read ${e.path}: ${e.message}\n`,code:2}}}const rJ=`--render`,iJ=`Usage: cc-candybar check [${rJ}] [config-file]\n`;function aJ(e){let t=e.filter(e=>e.startsWith(`--`)),n=e.filter(e=>!e.startsWith(`--`)),r=t.filter(e=>e!==rJ);return r.length>0?{kind:`usage`,message:`check: unknown option ${r.join(` `)}\n${iJ}`}:n.length>1||n[0]===``?{kind:`usage`,message:`check: expected at most one non-empty path\n${iJ}`}:{kind:`run`,target:n[0],render:t.includes(rJ)}}async function oJ(e){let n=aJ(e),r=n.kind===`usage`?{stdout:``,stderr:n.message,code:2}:nJ(await Zq(n.target??qq(t.env,t.cwd())),n.render);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const sJ=`${Zd}${Xd}`;function cJ(e){return`${sJ}⚠ cc-candybar: ${lJ(e)}\n`}function lJ(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: ${Yd(e.message,60)}`;case`render_failed`:return`render failed: ${Yd(e.message,60)}`;case`malformed_response`:return`malformed daemon response: ${Yd(e.message,60)}`}}function uJ(e){switch(e.kind){case`ok`:return{output:e.value,kick:!1,debug:null};case`transient`:return{output:`
471
- `,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:cJ(e),kick:!1,debug:`daemon refused request (permanent: ${e.cause}) — not kicking`}}}function dJ(e,t){if(e!==void 0&&/^\+?\d+$/.test(e)){let t=Number(e);if(t>0&&t<=4294967295)return t}if(t&&t>0)return t}const fJ=[`SSH_CONNECTION`,`SSH_CLIENT`,`SSH_TTY`];function pJ(e,t,n){return{termCols:dJ(e.COLUMNS,n.columns),termRows:dJ(e.LINES,n.rows),ssh:fJ.some(t=>(e[t]??``)!==``),tmux:PD(e),configEnv:qq(e,t),claudeConfigDir:ci(e,t),mementoEnv:nt(e,t),terminalEnv:it(e)}}const mJ=` (fix: click the settings menu (${Qn} by default) › 🧰 tools › 🩺 doctor, then [fix] on the bar)`,hJ=`mark them ✓ shapes or ✗ boxes in the bar's doctor, and this command reads your mark: the settings menu (${Qn} by default) › 🧰 tools › 🩺 doctor`;function gJ({check:e,verdict:t}){return t.ok?`✓ ${e.label}\n`:`✗ ${e.label} — ${t.reason}${t.fix===void 0?``:mJ}\n`+(t.more??[]).map(e=>` ${e}\n`).join(``)+(t.sighting===void 0?``:` look: ${t.sighting.glyphs} — ${hJ}\n`)}function _J(e){let t={sessionState:new XV},n=UV(e.projectDir,e.cwd,e.configFile??void 0,t),r=n.state??WV(e.cwd,e.projectDir,t);return r.registry.dispose(),{layers:n.layers,error:n.error,warning:n.warning,unused:r.unused,config:r.config}}async function vJ(e,t,n,r,i=void 0){let a;try{a={...LW(e,pJ(n,r,{}),{projectDir:r,cwd:r,configFile:qP(r,i)??qq(n,r)??null},()=>null),urlHandler:await $W(t)}}catch(e){return{stdout:``,stderr:`doctor: ${e instanceof Error?e.message:String(e)}\n`,code:2}}let o=dO(a);return{stdout:o.map(gJ).join(``),stderr:``,code:+!o.every(e=>e.verdict.ok)}}async function yJ(e){(e.length>1||e[0]===``||e[0]?.startsWith(`--`))&&(t.stderr.write(`doctor: expected at most one config file
477
+ `));return d}finally{r.registry.dispose()}}function pY(e){return e.map(e=>`warning: ${e}\n`).join(``)}function mY(e,t=!1){switch(e.kind){case`clean`:return{stdout:`✓ ${e.layers.join(` < `)||`bundled default (no config file found)`}: config OK${e.warnings.length>0?` (${e.warnings.length} warning${e.warnings.length===1?``:`s`})`:``}\n`+(t?`${e.rendered}\n`:``),stderr:pY(e.warnings),code:0};case`fatal`:return{stdout:``,stderr:pY(e.warnings)+`✗ ${e.layers.join(` < `)||`<default>`}\n${e.message}\n`,code:1};case`unreadable`:return{stdout:``,stderr:`check: cannot read ${e.path}: ${e.message}\n`,code:2}}}const hY=`--render`,gY=`Usage: cc-candybar check [${hY}] [config-file]\n`;function _Y(e){let t=e.filter(e=>e.startsWith(`--`)),n=e.filter(e=>!e.startsWith(`--`)),r=t.filter(e=>e!==hY);return r.length>0?{kind:`usage`,message:`check: unknown option ${r.join(` `)}\n${gY}`}:n.length>1||n[0]===``?{kind:`usage`,message:`check: expected at most one non-empty path\n${gY}`}:{kind:`run`,target:n[0],render:t.includes(hY)}}async function vY(e){let n=_Y(e),r=n.kind===`usage`?{stdout:``,stderr:n.message,code:2}:mY(await lY(n.target??aY(t.env,t.cwd())),n.render);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const yY=/^[a-z][a-z0-9+.-]*:\/\//i,bY=/^[^@\s/]+@[^:\s/]+:/,xY=/^([A-Za-z0-9-]+\/[A-Za-z0-9._-]+?)(?:\.git)?$/;function SY(e){if(!URL.canParse(e))return e;let t=new URL(e);return t.password===``?e:(t.password=`***`,t.href)}function CY(e,t,n){let r=YF(t,e);if(n(r))return{kind:`path`,dir:r};if(yY.test(e)||bY.test(e))return{kind:`git`,url:e,shown:SY(e)};let i=xY.exec(e);if(i){let e=`https://github.com/${i[1]}.git`;return{kind:`git`,url:e,shown:e}}return{error:`"${e}" is not a directory, a GitHub repo slug (owner/repo) or a git URL`}}function wY(e,t){let n=l.join(e,SI),r=TI(n);if(`error`in r)throw Error(`${t}: could not list ${SI}: ${r.error}`);if(r.folders.length===0)throw Error(`${t} has no plugins: none at ${SI}/<name>/${$F}`);return r.folders.map(e=>l.join(n,e,$F))}function TY(e,t,n){let r=(n,...r)=>{let i=Ne({bin:`git`,args:r,env:n,category:`plugin.git`});if(!i.ok)throw Error(`git ${r.map(n=>n===e?t:n).join(` `)} failed (${i.reason}): ${i.stderr.trim()||i.error||``}`);return i.stdout},i={...process.env,GIT_TERMINAL_PROMPT:`0`};for(let e of r(i,`rev-parse`,`--local-env-vars`).split(`
478
+ `))delete i[e];r(i,`clone`,`--quiet`,`--depth`,`1`,`--filter=blob:none`,`--sparse`,`--`,e,n),r(i,`-C`,n,`sparse-checkout`,`set`,`--no-cone`,`/${SI}/`)}function EY(e,t){switch(e.kind){case`path`:return t(e.dir);case`git`:{let n=r.mkdtempSync(l.join(h.tmpdir(),`cc-candybar-plugin-`));try{return TY(e.url,e.shown,l.join(n,`repo`)),t(l.join(n,`repo`))}finally{r.rmSync(n,{recursive:!0,force:!0})}}}}function DY(e){let t;try{t=r.lstatSync(e)}catch(e){if(e.code===`ENOENT`)return`installed`;throw e}if(t.isDirectory())return`updated`;if(t.isSymbolicLink())return`replaced`;throw Error(`${e} is a file, not a plugin folder: move it, then install again`)}function OY(e,t,n,i){switch(i){case`updated`:r.renameSync(l.join(e,$F),l.join(t,$F));return;case`replaced`:r.renameSync(t,n),r.renameSync(e,t);return;case`installed`:r.renameSync(e,t);return}}function kY(e,t,n){let i=wY(e,n);r.mkdirSync(t,{recursive:!0});let a=r.mkdtempSync(l.join(t,`.install-`));try{let o=i.map(e=>{let t=l.join(a,l.basename(l.dirname(e)));r.mkdirSync(t);try{r.copyFileSync(e,l.join(t,$F))}catch(e){if(e.code!==`ENOENT`)throw e}return t}),s=HI(o.map(e=>l.join(e,$F)),pL,{root:e,git:!1});if(s.length>0)throw Error(s.map(e=>`${n}: ${l.join(SI,l.relative(a,e.path))} would not load: ${e.reason.split(a).join(l.join(n,SI))}`).join(`
479
+ `));let c=o.map(e=>{let n=l.basename(e),r=l.join(t,n);return{folder:e,name:n,target:r,placed:DY(r)}}),u=[];try{for(let{folder:e,name:t,target:n,placed:r}of c)OY(e,n,l.join(a,`.replaced-${t}`),r),u.push(t)}catch(e){throw Error(`${e.message} (placed before it: ${u.join(`, `)||`none`})`)}return c.map(({target:e,placed:t})=>({path:l.join(e,$F),placed:t}))}finally{r.rmSync(a,{recursive:!0,force:!0})}}function AY(e){let[t,n,...r]=e;if(t!==`install`||n===void 0||r.length>0)return console.error(`Usage: cc-candybar plugin install <path | owner/repo | git URL>`),2;let i=CY(n,process.cwd(),RT);if(`error`in i)return console.error(`plugin install: ${i.error}`),2;try{let e=i.kind===`path`?i.dir:i.shown,t=EY(i,t=>kY(t,xI(),e));for(let{path:n,placed:r}of t)console.log(`${r} plugin ${l.basename(l.dirname(n))} → ${n} (from ${e})`);return 0}catch(e){return console.error(`plugin install: ${e.message}`),1}}const jY=`${Gf}${Wf}`;function MY(e){return`${jY}⚠ cc-candybar: ${NY(e)}\n`}function NY(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: ${Uf(e.message,60)}`;case`render_failed`:return`render failed: ${Uf(e.message,60)}`;case`malformed_response`:return`malformed daemon response: ${Uf(e.message,60)}`}}function PY(e){switch(e.kind){case`ok`:return{output:e.value,kick:!1,debug:null};case`transient`:return{output:`
480
+ `,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:MY(e),kick:!1,debug:`daemon refused request (permanent: ${e.cause}) — not kicking`}}}function FY(e,t){if(e!==void 0&&/^\+?\d+$/.test(e)){let t=Number(e);if(t>0&&t<=4294967295)return t}if(t&&t>0)return t}const IY=[`SSH_CONNECTION`,`SSH_CLIENT`,`SSH_TTY`];function LY(e,t,n){return{termCols:FY(e.COLUMNS,n.columns),termRows:FY(e.LINES,n.rows),ssh:IY.some(t=>(e[t]??``)!==``),tmux:DO(e),configEnv:aY(e,t),claudeConfigDir:ci(e,t),mementoEnv:nt(e,t),terminalEnv:it(e)}}const RY=` (fix: click the settings menu (${Qn} by default) › 🧰 tools › 🩺 doctor, then [fix] on the bar)`,zY=`mark them ✓ shapes or ✗ boxes in the bar's doctor, and this command reads your mark: the settings menu (${Qn} by default) › 🧰 tools › 🩺 doctor`;function BY({check:e,verdict:t}){return t.ok?`✓ ${e.label}\n`:`✗ ${e.label} — ${t.reason}${t.fix===void 0?``:RY}\n`+(t.more??[]).map(e=>` ${e}\n`).join(``)+(t.sighting===void 0?``:` look: ${t.sighting.glyphs} — ${zY}\n`)}function VY(e){let t={sessionState:new iU},n=ZH(e.projectDir,e.cwd,e.configFile??void 0,t),r=n.state??QH(e.cwd,e.projectDir,t);return r.registry.dispose(),{layers:n.layers,error:n.error,warning:n.warning,unused:r.unused,config:r.config}}async function HY(e,t,n,r,i=void 0){let a;try{a={...JG(e,LY(n,r,{}),{projectDir:r,cwd:r,configFile:XF(r,i)??aY(n,r)??null},()=>null),urlHandler:await uK(t),askedBy:`command`}}catch(e){return{stdout:``,stderr:`doctor: ${e instanceof Error?e.message:String(e)}\n`,code:2}}let o=pk(a);return{stdout:o.map(BY).join(``),stderr:``,code:+!o.every(e=>e.verdict.ok)}}async function UY(e){(e.length>1||e[0]===``||e[0]?.startsWith(`--`))&&(t.stderr.write(`doctor: expected at most one config file
472
481
  Usage: cc-candybar doctor [config-file]
473
- `),t.exit(2));let n=t.cwd(),r=await vJ(AW(_J),rG(),t.env,n,e[0]);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const bJ=e=>e.some(e=>t.argv.includes(e));function xJ(){console.log(jD)}async function SJ(){try{bJ(kD.help)&&(xJ(),t.exit(0)),bJ(kD.version)&&(console.log(`cc-candybar ${Et}`),t.exit(0));let e=t.argv[2];if(e===`install`&&(await Yi(t.argv.slice(3)),t.exit(0)),e===`install-url-handler`&&(Wi(),t.exit(0)),e===`url-handle`){await Ki(t.argv[3]);return}if(e===`daemon`){fq();return}if(e===`daemon-stats`&&(await BW(t.argv.slice(3)),t.exit(0)),e===`check`||e===`lint`){await oJ(t.argv.slice(3));return}if(e===`schema`){Gq();return}if(e===`doctor`){await yJ(t.argv.slice(3));return}LK(e)&&(await Iq(e,t.argv.slice(3)),t.exit(0)),t.stdin.isTTY===!0&&(console.error(`Error: This tool requires input from Claude Code
482
+ `),t.exit(2));let n=t.cwd(),r=await HY(BG(VY),mK(),t.env,n,e[0]);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const WY=e=>e.some(e=>t.argv.includes(e));function GY(){console.log(wO)}async function KY(){try{WY(SO.help)&&(GY(),t.exit(0)),WY(SO.version)&&(console.log(`cc-candybar ${Et}`),t.exit(0));let e=t.argv[2];if(e===`install`&&(await Yi(t.argv.slice(3)),t.exit(0)),e===`install-url-handler`&&(Wi(),t.exit(0)),e===`url-handle`){await Ki(t.argv[3]);return}if(e===`daemon`){wJ();return}if(e===`daemon-stats`&&(await ZG(t.argv.slice(3)),t.exit(0)),e===`check`||e===`lint`){await vY(t.argv.slice(3));return}if(e===`plugin`&&t.exit(AY(t.argv.slice(3))),e===`schema`){rY();return}if(e===`doctor`){await UY(t.argv.slice(3));return}Yq(e)&&(await JJ(e,t.argv.slice(3)),t.exit(0)),t.stdin.isTTY===!0&&(console.error(`Error: This tool requires input from Claude Code
474
483
 
475
484
  cc-candybar is designed to be used as a Claude Code statusLine command.
476
485
  It reads hook data from stdin and outputs formatted statusline.
@@ -486,4 +495,4 @@ Add to ~/.claude/settings.json:
486
495
  Run with --help for more options.
487
496
 
488
497
  To test output manually:
489
- echo '{"session_id":"test-session","workspace":{"project_dir":"/path/to/project"},"model":{"id":"claude-sonnet-4-5","display_name":"Claude"}}' | cc-candybar`),t.exit(1)),D(`Working directory: ${t.cwd()}`),D(`Process args:`,t.argv);let r=await n(t.stdin);D(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),xJ(),t.exit(1));let i=uJ(await At(r,t.argv,t.cwd(),pJ(t.env,t.cwd(),t.stderr)));i.debug!==null&&D(i.debug),i.kick&&Qt(),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)}}SJ();export{};
498
+ echo '{"session_id":"test-session","workspace":{"project_dir":"/path/to/project"},"model":{"id":"claude-sonnet-4-5","display_name":"Claude"}}' | cc-candybar`),t.exit(1)),D(`Working directory: ${t.cwd()}`),D(`Process args:`,t.argv);let r=await n(t.stdin);D(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),GY(),t.exit(1));let i=PY(await At(r,t.argv,t.cwd(),LY(t.env,t.cwd(),t.stderr)));i.debug!==null&&D(i.debug),i.kick&&Qt(),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)}}KY();export{};