@promptctl/cc-candybar 1.139.0 → 1.139.1
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 +56 -56
- package/package.json +6 -6
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,setImmediate as le,setInterval as ue}from"node:timers";import{get as de}from"node:https";import{setTimeout as fe}from"node:timers/promises";import{createInterface as pe}from"node:readline";var me=Object.create,he=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,_e=Object.getOwnPropertyNames,ve=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty,be=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),xe=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=_e(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ye.call(e,s)&&s!==n&&he(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ge(t,s))||r.enumerable});return e},Se=(e,t,n)=>(n=e==null?{}:me(ve(e)),xe(t||!e||!e.__esModule?he(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}function Ce(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 we={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3,"doctor.font":1e3,"doctor.process":1e3,"claude-input.type":1e3},Te=new Map;function Ee(e){let t=we[e];if(t===void 0)return{allowed:!0};let n=Te.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 De(e){Te.set(e,Date.now())}function Oe(e){return e.env??process.env}function ke(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 Ae=null;function je(e){Ae=e}function Me(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Ne(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=Ee(e.category);if(!t.allowed)return ke(e.category,t.minIntervalMs,t.sinceLastMs);De(e.category);let n=Date.now();return Ae?.onStart(e.category),new Promise(t=>{let r;try{r=_(e.bin,e.args??[],{cwd:e.cwd,env:Oe(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){Ae?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Ce(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),Ae?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{Me(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:Ce(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 O(e){let t=Ee(e.category);if(!t.allowed)return ke(e.category,t.minIntervalMs,t.sinceLastMs);De(e.category);let n=Date.now();Ae?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=v(e.bin,e.args??[],{cwd:e.cwd,env:Oe(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});Ae?.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:Ce(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 Ae?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Ce(t,e.cwd)}}}function Pe(e){let t=Ee(e.category);if(!t.allowed)return ke(e.category,t.minIntervalMs,t.sinceLastMs);De(e.category);let n=Date.now();Ae?.onStart(e.category);let r=Fe(e);return Ae?.onEnd(e.category,Date.now()-n),r}function Fe(e){let t;try{t=_(e.bin,e.args??[],{cwd:e.cwd,env:Oe(e),detached:!0,stdio:`ignore`})}catch(t){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Ce(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=k(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 k(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 ft=1e4;function pt(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>ft?ft: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 A=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function gt(e){return _t(JSON.stringify(e))}function _t(e){let t=Buffer.from(e,`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function vt(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 A(`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 A(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function yt(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=vt(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(gt(t))})}async function bt(e,t,n){let r=null;try{r=await Tt(Ve(),t.connectMs);let i=await yt(r,{v:3,...e},t.budgetMs);return Ct(e.kind,i,n)}catch(e){return wt(e)}finally{r&&r.destroy()}}function xt(e,t){return typeof e==`string`?e:t}function St(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function Ct(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=xt(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:St(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 wt(e){if(e instanceof A||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 Tt(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 Et(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 Dt=`1.139.0`,Ot={connectMs:50,budgetMs:150},kt={connectMs:50,budgetMs:200};function At(e){let t=e.output;return typeof t==`string`?t:void 0}function jt(e,t,n,r){return bt({kind:`render`,hookData:e,args:t,cwd:n,...r},Ot,At)}function Mt(e,t){return bt({kind:`click`,verb:e,value:t,clientVersion:Dt},kt,At)}let Nt=null;function Pt(e){if(Nt!==null)return Nt;r.mkdirSync(l.dirname(e),{recursive:!0});try{Nt=r.statSync(e).size}catch{Nt=0}return Nt}function Ft(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{}Nt=0}const It=(e,t)=>D(t);function j(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=et(),t=Pt(e);r.appendFileSync(e,n),Nt=t+Buffer.byteLength(n,`utf8`),Nt>=5242880&&Ft(e)}catch(e){Nt=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}function Lt(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,setImmediate as le,setInterval as ue}from"node:timers";import{get as de}from"node:https";import{setTimeout as fe}from"node:timers/promises";import{createInterface as pe}from"node:readline";var me=Object.create,he=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,_e=Object.getOwnPropertyNames,ve=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty,be=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),xe=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=_e(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ye.call(e,s)&&s!==n&&he(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ge(t,s))||r.enumerable});return e},Se=(e,t,n)=>(n=e==null?{}:me(ve(e)),xe(t||!e||!e.__esModule?he(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}function Ce(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 we={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3,"doctor.font":1e3,"doctor.process":1e3,"claude-input.type":1e3},Te=new Map;function Ee(e){let t=we[e];if(t===void 0)return{allowed:!0};let n=Te.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 De(e){Te.set(e,Date.now())}function Oe(e){return e.env??process.env}function ke(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 Ae=null;function je(e){Ae=e}function Me(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Ne(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=Ee(e.category);if(!t.allowed)return ke(e.category,t.minIntervalMs,t.sinceLastMs);De(e.category);let n=Date.now();return Ae?.onStart(e.category),new Promise(t=>{let r;try{r=_(e.bin,e.args??[],{cwd:e.cwd,env:Oe(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){Ae?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Ce(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),Ae?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{Me(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:Ce(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 O(e){let t=Ee(e.category);if(!t.allowed)return ke(e.category,t.minIntervalMs,t.sinceLastMs);De(e.category);let n=Date.now();Ae?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=v(e.bin,e.args??[],{cwd:e.cwd,env:Oe(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});Ae?.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:Ce(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 Ae?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Ce(t,e.cwd)}}}function Pe(e){let t=Ee(e.category);if(!t.allowed)return ke(e.category,t.minIntervalMs,t.sinceLastMs);De(e.category);let n=Date.now();Ae?.onStart(e.category);let r=Fe(e);return Ae?.onEnd(e.category,Date.now()-n),r}function Fe(e){let t;try{t=_(e.bin,e.args??[],{cwd:e.cwd,env:Oe(e),detached:!0,stdio:`ignore`})}catch(t){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Ce(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=k(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 k(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 ft=1e4;function pt(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>ft?ft: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 A=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function gt(e){return _t(JSON.stringify(e))}function _t(e){let t=Buffer.from(e,`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function vt(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 A(`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 A(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function yt(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=vt(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(gt(t))})}async function bt(e,t,n){let r=null;try{r=await Tt(Ve(),t.connectMs);let i=await yt(r,{v:3,...e},t.budgetMs);return Ct(e.kind,i,n)}catch(e){return wt(e)}finally{r&&r.destroy()}}function xt(e,t){return typeof e==`string`?e:t}function St(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function Ct(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=xt(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:St(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 wt(e){if(e instanceof A||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 Tt(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 Et(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 Dt=`1.139.1`,Ot={connectMs:50,budgetMs:150},kt={connectMs:50,budgetMs:200};function At(e){let t=e.output;return typeof t==`string`?t:void 0}function jt(e,t,n,r){return bt({kind:`render`,hookData:e,args:t,cwd:n,...r},Ot,At)}function Mt(e,t){return bt({kind:`click`,verb:e,value:t,clientVersion:Dt},kt,At)}let Nt=null;function Pt(e){if(Nt!==null)return Nt;r.mkdirSync(l.dirname(e),{recursive:!0});try{Nt=r.statSync(e).size}catch{Nt=0}return Nt}function Ft(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{}Nt=0}const It=(e,t)=>D(t);function j(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=et(),t=Pt(e);r.appendFileSync(e,n),Nt=t+Buffer.byteLength(n,`utf8`),Nt>=5242880&&Ft(e)}catch(e){Nt=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}function Lt(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 Rt(e,t){return e===`darwin`?[zt(`footprint`,[`-p`,String(t)]),zt(`vmmap`,[`--summary`,String(t)])]:e===`linux`?[Bt(`/proc/self/smaps_rollup`),Bt(`/proc/self/status`)]:[]}function zt(e,t){return{name:`${e} ${t.join(` `)}`,read:()=>{let n=O({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}`}${Vt(n.stderr)}`}}}}function Bt(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 Vt(e){let t=e.split(`
|
|
4
4
|
`).map(e=>e.trim()).find(e=>e.length>0);return t===void 0?``:` (${t})`}const Ht=`CC_CANDYBAR_RSS_LIMIT_MB`;function M(e){let t=e[Ht];if(t===void 0)return 512;let n=/^\d+$/.test(t)?Number(t):NaN;if(!Number.isSafeInteger(n)||n<=0)throw Error(`${Ht} must be a positive integer (MB), got ${JSON.stringify(t)}`);return n}function Ut(e){return M(e)*2}const Wt=1024*1024;function Gt(e){return M(e)*Wt}const Kt={memoryReport:{prefix:`memory-`,suffix:`.txt`},heapSnapshot:{prefix:`heap-`,suffix:`.heapsnapshot`}};function qt(e,t,n){let{prefix:r,suffix:i}=Kt[t];return l.join(e,`${r}${n}${i}`)}function Jt(e){for(let t of Object.keys(Kt)){let{prefix:n,suffix:r}=Kt[t];if(e.startsWith(n)&&e.endsWith(r))return t}return null}function N(e){let t=e.rssLimitBytes??512*Wt,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=qt(e.snapshotDir,`memoryReport`,o);e.writeMemoryReport(t,e.captureMemoryReport()),e.log(`info`,`memory report written: ${t}`)}),Yt(e.log,`heap snapshot`,()=>{let t=qt(e.snapshotDir,`heapSnapshot`,o);e.log(`info`,`heap snapshot written: ${e.writeHeapSnapshot(t)}`)}),Yt(e.log,`artifact rotation`,()=>{Zt(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 Xt(e){let t=e.slice(e.lastIndexOf(`/`)+1),n=Jt(t);if(n===null)return t;let{prefix:r,suffix:i}=Kt[n];return t.slice(r.length,t.length-i.length)}function Zt(e,t,n){let r=new Map;for(let t of e){let e=Xt(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 Qt(e,t,n={}){let i=Be();return{now:()=>Date.now(),pid:process.pid,snapshotDir:i,log:j,memoryBytes:()=>{let e=process.memoryUsage();return{rss:e.rss,heapTotal:e.heapTotal}},captureMemoryReport:()=>Lt(Rt(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=>Jt(e)!==null).map(e=>l.join(i,e))}catch{return[]}},removeFile:e=>r.unlinkSync(e),shutdown:t,startedAtMs:e,...n}}function $t(e={}){if(gn()!==null)return;let n=e.spawn??_n,r=pn();if(r.kind===`contended`){let e=tn();e!==null&&e>2e3&&(t.stderr.write(`cc-candybar: spawn-lock held ${e}ms (likely crashed holder) — spawning unlocked\n`),en(n));return}if(r.kind===`error`){t.stderr.write(`cc-candybar: spawn-lock unavailable (${r.reason}) — spawning unlocked\n`),en(n);return}try{en(n)}finally{hn()}}function en(e){ln()&&nn(e)}function tn(){try{let e=r.statSync(Xe());return Date.now()-e.mtimeMs}catch{return null}}function nn(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 rn(e,t){return e===null?{kind:`allow`}:e<-1e4?{kind:`allow-future-garbage`,futureMs:-e}:e<t?{kind:`deny`}:{kind:`allow`}}function an(e){return Math.min(3e3*2**Math.min(Math.max(e,0),5),6e4)}function on(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 sn(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 cn(){try{r.unlinkSync(Qe())}catch(e){e.code!==`ENOENT`&&t.stderr.write(`cc-candybar: could not reset spawn.backoff: ${e.message}\n`)}}function ln(){let e=Ze(),n=Qe(),r=on(n),i=rn(un(e),an(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`),dn(e),sn(n,Math.min(r+1,5)),!0)}function un(e){try{return Date.now()-r.statSync(e).mtimeMs}catch{return null}}function dn(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 fn=null;function pn(){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 fn={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(!mn(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 mn(e){try{let t=r.statSync(e);return Date.now()-t.mtimeMs>1e4}catch{return!0}}function hn(){if(!fn)return;let{fd:e,path:t}=fn;fn=null;try{r.closeSync(e)}catch{}try{r.unlinkSync(t)}catch{}}function gn(){try{return r.mkdirSync(Be(),{recursive:!0}),null}catch(e){return`mkdir ${Be()}: ${e.message}`}}function _n(){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 vn=`cc-candybar`,yn=`dispatch`,bn=`set-state`,xn=`step-state`,Sn=`copy`,Cn=`open-vscode`,wn=`toolbar-toggle`,P=`show-config-error`,Tn=`show-config-warning`,En=`set-config`,Dn=`step-config`,On=`save`,kn=`save-preset`,An=`save-theme-default`,jn=`delete-preset`,Mn=`reset-config`,Nn=`apply-layout-op`,Pn=`undo`,Fn=`redo`,In=`back`,Ln=`rewind`,Rn=`apply-update`,zn=`doctor-run`,Bn=`doctor-fix`,Vn=`doctor-mark`,Hn=`doctor-probe`,Un=`ceiling`,Wn=`slash`;function Gn(e){return e.map(encodeURIComponent).join(`/`)}function Kn(e){return e.length===0?[]:e.split(`/`).map(decodeURIComponent)}function qn(e){return`${vn}://${yn}/${e.map(e=>`e=${encodeURIComponent(`${e.verb}/${Gn(e.args)}`)}`).join(`&`)}`}function Jn(e){return new te(e).getAll(`e`).map(Qn)}const Yn=new Set([bn,Mn]);function Xn(e){return e.reduce((e,t)=>{let n=e.at(-1),r=n&&Zn(n,t);return r?[...e.slice(0,-1),r]:[...e,t]},[])}function Zn(e,t){if(e.verb!==t.verb||!Yn.has(e.verb))return;let[n,r]=[Qn(e.value),Qn(t.value)];return n.verb===r.verb?{verb:e.verb,value:`${n.verb}/${n.value}/${r.value}`}:void 0}function Qn(e){let t=e.indexOf(`/`);return t===-1?{verb:e,value:``}:{verb:e.slice(0,t),value:e.slice(t+1)}}const $n=`closed`,er=`🍫`;function tr(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 nr(e,t,n,r){let i=tr(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function rr(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function ir(e,t,n,r,i){return{kind:`segment`,name:e,opens:{ref:t,body:n,placement:r},...i!==void 0&&{when:i}}}function ar(e,...t){return`{{ and ${[e,...t].map(or).join(` `)} }}`}function or(e){return`(eq .${e.variable} "${rr(e.member)}")`}function sr(e,t,n){return`{{ ${cr(e,lr(t),lr(n))} }}`}function cr(e,t,n){return`action "${e}" ${t} ${n}`}function lr(e){return`"${rr(e)}"`}function ur(e,t){return{kind:`state`,key:e,default:t}}function dr(e,t){return{set:e,cycle:[$n,t]}}const fr=/^[A-Za-z0-9_./,:@%+-][A-Za-z0-9_./,:@%+=-]*$/;function pr(e){return`'${e.replaceAll(`'`,`'\\''`)}'`}function mr(e){return fr.test(e)?e:pr(e)}var hr=be(((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]/})),gr=be(((e,t)=>{let n=hr();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)}}})),_r=be(((e,t)=>{let n=gr(),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===`
|
|
@@ -37,41 +37,41 @@ import{createRequire as e}from"node:module";import t from"node:process";import{j
|
|
|
37
37
|
`),process.exit(1)}function Yi(e){switch(e.cause){case`version_mismatch`:return`url-handle: daemon rejected click (version mismatch: client v${e.clientV} ≠ daemon v${e.daemonV})`;case`bad_request`:return`url-handle: daemon rejected click (bad request: ${e.message})`;case`render_failed`:return`url-handle: daemon rejected click (handler failed: ${e.message})`;case`malformed_response`:return`url-handle: daemon rejected click (malformed response: ${e.message})`}}function Xi(){return`✓ install complete.
|
|
38
38
|
Restart Claude Code to pick up the new statusline.
|
|
39
39
|
Tip: every bar carries a settings menu — click it (${er} by\n default) for quick actions, preset switching, edit mode, and clickable\n theme/style/variation/shade/endcaps/wrap/padding controls.\n`}async function Zi(e){let t=e.includes(`--force`),n=e.filter(e=>e!==`--force`),r=n.length>0?n:[...Oi],i=Ui();process.platform===`darwin`?Gi(i.distPath):process.stdout.write(`Skipping URL handler (cmd-click verbs are macOS-only).
|
|
40
|
-
`),Qi(i.binPath,r,t),process.stdout.write(Xi());let a=Ei(Ci,Ti(Dt,await wi(Ci,fetch,`https://registry.npmjs.org`)));process[a.stream].write(a.text)}function Qi(e,t,n,i){let a=i??fi(di(ui(process.env,process.cwd())));r.mkdirSync(l.dirname(a),{recursive:!0});let o=hi(a).statusLine,s=gi(o)?o.command:void 0,c=[e,mr(e),pr(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=Ai(e,t);Ie(a,(gi(o)?[[[`statusLine`,`type`],`command`],[[`statusLine`,`command`],d]]:[[[`statusLine`],{type:`command`,command:d}]]).reduce((e,[t,n])=>Xr(e,t,JSON.stringify(n,null,2),Fr),mi(a))),process.stdout.write(`Updated ${a}\n`)}function $i(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 ea(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 ta(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 na(e,t){let n=ea(e);if(n.kind===`owned`&&n.pid===t)try{r.unlinkSync(e)}catch{}}function ra(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 ia(e,t,n,r){let i=aa(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 aa(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 oa(e){let t=!1;function n(){let n=ia(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 sa(e,t=O){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 ca(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 la(e,t=sa){let n=t(e);return n.kind===`start`?n.token:null}const ua=`CC_CANDYBAR_PARENT_PID`;function da(e){let t=e[ua];if(t===void 0)return{kind:`outlives-nobody`};let n=Number.parseInt(t,10);if(!Number.isInteger(n)||n<=0)throw Error(`${ua} must be a positive integer pid, got ${JSON.stringify(t)}`);return{kind:`anchored`,pid:n}}function fa(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 pa(e){try{return t.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function ma(){let e=Number(process.env.CC_CANDYBAR_DAEMON_CEILING??``);return Number.isInteger(e)&&e>0?e:16}function ha(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 ga(e){try{return r.readdirSync(e).filter(e=>e.endsWith(`.json`)).map(t=>l.join(e,t))}catch{return[]}}function _a(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 va(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 ya(e){if(!e.isolated)return{decision:ha(!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=ha(!0,va(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 ba(e,t,n,r){let i=n(e);if(i!==null&&i.pid===t)try{r(e)}catch{}}function xa(e,t={}){return{isolated:!!process.env.CC_CANDYBAR_SOCKET,registryDir:Ye(),ceiling:ma(),pid:process.pid,startTime:e,isSameLiveProcess:(e,t)=>ca(e,t,{readStartTime:sa,pidAlive:pa}),listFiles:ga,readEntry:_a,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 Sa={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`}},Ca=Object.values(Sa),wa=[{configKey:`colorCompatibility`,effectiveVar:`colorCompatibility.effective`}],Ta=new Set(wa.map(e=>e.configKey)),Ea=new Map([...Ca,...wa].map(e=>[e.configKey,e.effectiveVar])),Da=new Map(Ca.map(e=>[e.sessionKey,e.effectiveVar]));function Oa(e){return Object.fromEntries(Object.keys(Sa).map(t=>[t,e(t)]))}const ka=new Map(Object.keys(Sa).map(e=>[Sa[e].sessionKey,e]));function Aa({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 ja=Aa();function Ma(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return!e.includes(`\x1B`)&&!e.includes(``)?e:e.replace(ja,``)}const Na=[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],Pa=[12288,12288,65281,65376,65504,65510],Fa=[8361,8361,65377,65470,65474,65479,65482,65487,65490,65495,65498,65500,65512,65518],Ia=[32,126,162,163,165,166,172,172,175,175,10214,10221,10629,10630],La=[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],Ra=(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},za=Na[0],Ba=Na.at(-1),Va=Pa[0],Ha=Pa.at(-1);Fa[0],Fa.at(-1),Ia[0],Ia.at(-1);const Ua=La[0],Wa=La.at(-1),Ga=19968,[Ka,qa]=Ja(La);function Ja(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(Ga>=i&&Ga<=a)return[i,a];a-i>n-t&&(t=i,n=a)}return[t,n]}const Ya=e=>e<za||e>Ba?!1:Ra(Na,e),Xa=e=>e<Va||e>Ha?!1:Ra(Pa,e),Za=e=>e>=Ka&&e<=qa?!0:e<Ua||e>Wa?!1:Ra(La,e);function Qa(e){if(!Number.isSafeInteger(e))throw TypeError(`Expected a code point, got \`${typeof e}\`.`)}function $a(e,{ambiguousAsWide:t=!1}={}){return Qa(e),Xa(e)||Za(e)||t&&Ya(e)?2:1}const eo=new Intl.Segmenter,to=RegExp(`[^\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Nonspacing_Mark}\\p{Enclosing_Mark}\\p{Surrogate}]`,`v`),no=RegExp(`\\p{Spacing_Mark}`,`v`),ro=RegExp(`^\\p{RGI_Emoji}$`,`v`),io=/^[\d#*]\u20E3$/,ao=/\p{Extended_Pictographic}/gu;function oo(e){if(e.length>50)return!1;if(io.test(e))return!0;if(e.includes(``)){let t=e.match(ao);return t!==null&&t.length>=2}return!1}function so(e){let t=e.search(to);return t===-1?void 0:e.slice(t)}function co(e){return e>=4352&&e<=4447||e>=43360&&e<=43388}function lo(e){return e>=4448&&e<=4519||e>=55216&&e<=55238}function uo(e){return e>=4520&&e<=4607||e>=55243&&e<=55291}function fo(e){return co(e)||lo(e)||uo(e)}function po(e,t){let n=[];for(let t of e)to.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(!fo(i)){if(r===0)return;for(let i=e;i<n.length;i++)r+=$a(n[i],t);return r}if(co(i)&&lo(n[e+1])){r+=2,e+=uo(n[e+2])?2:1;continue}r+=$a(i,t)}return r}function mo(e,t){let n=0,r=!0;for(let i of e){if(r){r=!1;continue}(no.test(i)||i>=``&&i<=``)&&(n+=$a(i.codePointAt(0),t))}return n}function ho(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=Ma(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 eo.segment(i)){let t=so(e);if(t===void 0)continue;if(ro.test(e)||oo(e)){a+=2;continue}let n=po(t,o);if(n!==void 0){a+=n;continue}let r=t.codePointAt(0);a+=$a(r,o),a+=mo(t,o)}return a}var go=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 _o=new go;function R(e){return e.length===0?0:e.length<=64?_o.get(e,ho):ho(e)}function vo(e){return e}function yo(e){return e}function bo(e){return e>0?Math.floor(e):0}function xo(e,t){if(t<=0)return[``,e];if(t>=R(e))return[e,``];let n=ko(e,t);return[n+` `.repeat(t-R(n)),e.slice(n.length)]}function So(e,t){let n=ko(e,t),r=t-R(n),[i=``]=r>0?Oo(e,yo(n.length)):[];return[n+` `.repeat(r),` `.repeat(R(i)-r)+e.slice(n.length+i.length)]}function Co(e,t){if(t<=0||e.length===0)return[e];let n=[],r=yo(0);for(;r<e.length;){let i=No(e,r,t);n.push(e.slice(r,i)),r=i}return n}let wo,To;function Eo(e){return To?.text!==e&&(wo??=new Intl.Segmenter(void 0,{granularity:`grapheme`}),To={text:e,segments:wo.segment(e)}),To.segments}function Do(e){return Array.from(Oo(e,yo(0)))}function*Oo(e,t){let n=Eo(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=yo(t)}}function ko(e,t){return e.slice(0,jo(Oo(e,yo(0)),t))}function Ao(e,t){return e.slice(e.length-jo(Do(e).reverse(),t))}function jo(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 Mo(e,t,n){return yo(t+jo(Oo(e,t),n))}function No(e,t,n){let[r=``]=Oo(e,t);return yo(Math.max(Mo(e,t,n),t+r.length))}function Po(e){if(!Number.isInteger(e)||e<1)throw RangeError(`tabSize must be a positive integer, got ${e}`);return e}function Fo(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 Io=class{name;dark;vars;constructor(e,t,n){this.name=e,this.dark=t;let r=n.get(`background`),i=r===void 0?Ro(e):Lo(e,r);this.vars=new Map([...n].map(([e,t])=>[e,i(t,e)]))}get(e){return this.vars.get(e)}};function Lo(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 Ro(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 zo(e){return e.toString(16).padStart(2,`0`)}function Bo(e){return Number.isInteger(e)&&e>=0&&e<=255}function Vo(e,t){if(!Bo(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,Vo(`red`,e),Vo(`green`,t),Vo(`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=`#`+zo(this.red)+zo(this.green)+zo(this.blue);return this.alpha===1?e:e+zo(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 Ho=new z(0,0,0);function Uo(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 Wo(e,t){return Go(Uo(e),Uo(t))}function Go(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function Ko(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 qo=class{colors;firstIndex;matchMemo=new go;readableMemo=new go;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(Uo),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=Ko(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=Uo(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=Go(c,r),u=l>=n,d=u?-Ko(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=>Ko(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 Jo(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 Yo={truecolor:B.TRUECOLOR,256:B.EIGHT_BIT,ansi:B.STANDARD,none:null},Xo=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 Zo(e={}){let t=$o(e).NO_COLOR;if(t!==void 0&&t!==``)return null;let n=Qo($o(e));return n===void 0?ts(e):n}function Qo(e){let t=e.FORCE_COLOR;if(t===void 0||t===``)return;let n=Xo.get(t);return n===void 0?B.STANDARD:n}function $o(e){return e.env??(typeof process<`u`?process.env:{})}function es(e){let t=e.TERM;return t===`dumb`||t===`unknown`}function ts(e){let t=$o(e);if(!(e.isTTY??(typeof process<`u`?process.stdout?.isTTY??!1:!1))||es(t))return null;let n=t.TERM??``,r=t.COLORTERM;if(r===`truecolor`||r===`24bit`)return B.TRUECOLOR;let i=Xo.get(n);if(i!==void 0)return i;let a=t.TERM_PROGRAM;if(a!==void 0){let e=Xo.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 ns(e,t){return e===`auto`?{colorSystem:Zo(t),hyperlinks:(Qo($o(t??{}))??null)!==null||ts(t??{})!==null}:{colorSystem:typeof e==`string`?rs(e):e,hyperlinks:!0}}function rs(e,t){if(e===`auto`)return Zo(t);if(Object.hasOwn(Yo,e))return Yo[e];throw new is(`Unknown color system name: ${JSON.stringify(e)} (expected "auto", "truecolor", "256", "ansi", or "none")`)}var is=class extends Error{constructor(e){super(e),this.name=`ColorParseError`}};const as=new go;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:ks.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||Jo(this.type)<Jo(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?Ps(e,this.type).ansiColors.get(this.number):ks.get(this.number);case B.STANDARD:case B.WINDOWS:return Ps(e,this.type).ansiColors.get(this.number);case B.DEFAULT:{let n=Ps(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 is(`A blend cannot mix "default", which is no colour`);if(e.value!==void 0&&e.value.alpha<1)throw new is(`A blend's ends are opaque; "${e.name}" is translucent`)}if(!(r>=0&&r<=1))throw new is(`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(Cs(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 ds(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?[os(t)]:[]].reduce((e,n)=>Ko(n[1],t)<Ko(e[1],t)?n:e)[0]}static indexed(e,t){let n=ss.get(t)??new Map;ss.set(t,n);let r=n.get(e)??cs(e,t);return n.set(e,r),r}static matchMove(t,n,r,i,a){let o=e.matchOn(n,r,i,a);return Ko(t,n)<=Ko(o.getTruecolor(i,a),n)?void 0:o}static parse(e){return as.get(e.toLowerCase().trim(),gs)}performDowngrade(t){let n=this.getTruecolor(Ps(void 0,t));switch(t){case B.EIGHT_BIT:return e.fromAnsi(Fs(t).match(n));case B.STANDARD:case B.WINDOWS:{let r=this.number!==void 0&&this.number<16?this.number:Fs(t).match(n);return new e(`color(${r})`,t,r)}case B.TRUECOLOR:return this;case B.DEFAULT:return e.default()}}};function os(e){let t=As.match(e);return[V.fromAnsi(t),As.get(t)]}const ss=new WeakMap;function cs(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}=As;return[...n(),...Array.from({length:t},(t,n)=>[V.fromAnsi(e+n),As.get(e+n)])]}}}function ls(e,t,n,r){return Cs(e.getTruecolor(r),t.getTruecolor(r),n)}function us(e){return e.fixedValue?.hex??(e.number===void 0?e.name:`color(${e.number})`)}var ds=class extends V{from;to;t;constructor(e,t,n){super(`blend(${us(e)},${us(t)},${n})`,B.TRUECOLOR,void 0,ls(e,t,n)),this.from=e,this.to=t,this.t=n}get fixedValue(){}getTruecolor(e){return ls(this.from,this.to,this.t,e)}};const fs=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,ps=/^color\((\d+)\)$/,ms=/^blend\((.*)\)$/,hs=/^\s*(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?\s*$/;function gs(e){if(e===`default`||e===``)return V.default();let t=Ls[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,Ss(e));let n=fs.exec(e);if(n){let t=vs(e,n[1],`red`),r=vs(e,n[2],`green`),i=vs(e,n[3],`blue`);return new V(e,B.TRUECOLOR,void 0,new z(t,r,i))}let r=ps.exec(e);if(r){let t=vs(e,r[1],`number`);return new V(e,t<16?B.STANDARD:B.EIGHT_BIT,t)}let i=ms.exec(e);if(i){let t=_s(i[1]),n=t[2]??``;if(t.length!==3||!hs.test(n))throw new is(`ColorSpec "${e}": a blend is blend(<color>,<color>,<fraction>)`);return V.blend(V.parse(t[0]),V.parse(t[1]),Number(n))}throw new is(`Failed to parse color: "${e}"`)}function _s(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 vs(e,t,n){let r=parseInt(t,10);if(!Bo(r))throw new is(`ColorSpec "${e}": ${n} ${t} is out of range (0-255)`);return r}const ys=/^[0-9a-fA-F]+$/,bs={6:`RRGGBB`,8:`RRGGBBAA`};function xs(e,t,n,r){if(!r.includes(n.length)||!ys.test(n)){let n=r.map(e=>t+bs[e]).join(` or `);throw new is(`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 Ss(e){return xs(e,`#`,e.startsWith(`#`)?e.slice(1):``,[6,8])}function Cs(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 ws=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 Ts(){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 Es(){let e=Ts(),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 Ds(){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 Os=new qo(Ts()),ks=new qo(Es()),As=new qo(Es().slice(16),16),js=new qo(Ds()),Ms=new ws(new z(0,0,0),new z(255,255,255),Os,new Io(`default`,!0,new Map)),Ns=new ws(js.get(0),js.get(7),js,new Io(`windows`,!0,new Map));function Ps(e,t){return e??(t===B.WINDOWS?Ns:Ms)}function Fs(e){switch(e){case B.EIGHT_BIT:return As;case B.STANDARD:return Os;case B.WINDOWS:return js}}function Is(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 Ls=Is({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}),Rs=[`default`,...Object.keys(Ls)];var zs;const Bs=[`l`,`c`,`h`,`alpha`],Vs=Object.freeze({hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:0});Object.freeze({hueShift:0,chromaScale:1,lightnessScale:-1,lightnessShift:1});function Hs(e){return e.hueShift%360==0&&e.chromaScale===1&&e.lightnessScale===1&&e.lightnessShift===0}function Us(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Ws(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function Gs(e){return e<0?0:e>1?1:e}const Ks=1e-4,qs=1e-7,Js=(e,t)=>e<qs?0:t,Ys=(e,t,n)=>e*(1-n)+t*n,Xs=e=>{let t=e%360;return t<0?t+360:t};function Zs(e,t,n){return e>=-Ks&&e<=1+Ks&&t>=-Ks&&t<=1+Ks&&n>=-Ks&&n<=1+Ks}var H=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=Us(t),o=Us(n),s=Us(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=Xs(180/Math.PI*Math.atan2(g,h));return new zs(m,_,Js(_,v),i)}toRgba(){let e=Gs(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(Gs(Ws(r))*255),Math.round(Gs(Ws(i))*255),Math.round(Gs(Ws(a))*255),this.alpha)}applyKey(e){if(Hs(e))return this;let t=Gs(this.l*e.lightnessScale+e.lightnessShift),n=Math.max(0,this.c*e.chromaScale),r=Xs(this.h+e.hueShift);return new zs(t,n,Js(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 Bs){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>=qs,o=e.c>=qs,s=Xs(a?this.h:o?e.h:0),c=Xs(o?e.h:s),l=c-s,u=l<-180?s-360:s,d=l>180?c-360:c,f=Ys(this.c,e.c,n);return new zs(Ys(this.l,e.l,t),f,Js(f,Xs(Ys(u,d,r))),Ys(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(Zs(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);Zs(r.r,r.g,r.b)?i=t:a=t}return i}};zs=H;var Qs=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 $s(e,t){let n=t.trim();if(n.startsWith(`#`))try{return Ss(n)}catch(e){throw e instanceof is?new Qs(t,e.message,{cause:e}):e}let r=e.get(n);if(r===void 0)throw new Qs(t,`no such variable in palette ${JSON.stringify(e.name)}`+ec(e,n));return r}function ec(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 tc(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 nc(e){let t=Math.round(e);return t<0?0:t>255?255:t}function rc(e){let{h:t,s:n,l:r}=e;if(n===0){let e=nc(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(nc((s+u)*255),nc((c+u)*255),nc((l+u)*255))}function ic(e){return e<0?0:e>1?1:e}function ac(e,t){let n=tc(e);return n.l=ic(n.l-.1*t),rc(n)}function oc(e,t,n){return Cs(t,e,ic(n))}function sc(e,t=Ho){return Uo(fc(e,t))>.179?new z(0,0,0):new z(255,255,255)}function cc(e,t,n=4.5,r=B.TRUECOLOR,i=Ho,a){let o=fc(t,i),s=mc(e,o,n,sc(o)),c=pc(r,a);if(c===void 0)return s;let l=dc(c,o);return Wo(dc(c,s),l)>=n?s:c.written.get(c.shown.matchReadable(e.compositeOver(o),l,n))}function lc(e,t,n,r=Ho,i){let a=fc(e,r),o=pc(t,i),s=e=>dc(o,fc(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 uc(e,t,n=Ho,r){return dc(pc(t,r),fc(e,n))}function dc(e,t){return e===void 0?t:V.fromRgba(t).downgrade(e.depth).getTruecolor(e.terminal)}function fc(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 pc(e,t){let n=Ps(t,e);switch(e){case B.EIGHT_BIT:return{depth:e,terminal:n,written:Fs(e),shown:Fs(e)};case B.STANDARD:case B.WINDOWS:return{depth:e,terminal:n,written:Fs(e),shown:n.ansiColors};case B.TRUECOLOR:case B.DEFAULT:return}}function mc(e,t,n,r){let i=e.compositeOver(t);if(Wo(i,t)>=n)return i;let a=H.fromRgba(i),o=+(Uo(r)>.179);if(Wo(new H(o,a.c,a.h,a.alpha).toRgba(),t)<n)return sc(t);let s=a.l,c=o;for(let e=0;e<20;e++){let e=(s+c)/2;Wo(new H(e,a.c,a.h,a.alpha).toRgba(),t)>=n?c=e:s=e}return new H(c,a.c,a.h,a.alpha).toRgba()}const hc=.7,gc=[`primary`,`secondary`,`accent`,`success`,`warning`,`error`];function _c(e,t,n){let r=Lo(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 gc)o.set(e,a[e]);o.set(`foreground-muted`,Cs(a.foreground,a.background,hc)),o.set(`background-muted`,Cs(a.background,a.foreground,hc)),o.set(`surface`,Cs(a.background,a.foreground,.05));let s=sc(a.background);for(let e of gc){let t=a[e],n=Cs(t,a.background,hc);o.set(`${e}-muted`,n),o.set(`text-${e}`,vc(oc(t,s,.66),n,a.background)),o.set(`on-${e}`,sc(t))}return new Io(e,t,o)}function vc(e,t,n){return mc(e,t,4.5,sc(n))}const yc={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`}},bc={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`}},xc={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`}},Sc={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`}},Cc={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`}},wc={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`}},Tc=[`black`,`red`,`green`,`yellow`,`blue`,`magenta`,`cyan`,`white`,`brightBlack`,`brightRed`,`brightGreen`,`brightYellow`,`brightBlue`,`brightMagenta`,`brightCyan`,`brightWhite`],Ec=Object.fromEntries(Tc.map((e,t)=>[e,Os.get(t).hex])),Dc={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`},Oc={"atom-one-dark":yc,"atom-one-light":bc,"catppuccin-frappe":xc,"catppuccin-latte":Sc,"catppuccin-macchiato":Cc,"catppuccin-mocha":wc,cyberpunk:{name:`cyberpunk`,dark:!0,ansi:Dc,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:Ec,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:Ec,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:Dc,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`}}},kc=Object.freeze(Object.keys(Oc).sort()),Ac=new Map;function jc(){return kc}function Mc(e){if(!Nc(e))return null;let t=Ac.get(e);if(t!==void 0)return t;let n=Ic(Oc[e]);return Ac.set(e,n),n}function Nc(e){return Object.hasOwn(Oc,e)}function Pc(e){let t=Oc[e],n=Fc(t,`background`),r=Lo(t.name,n),i=e=>r(Fc(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 qo(Tc.map(e=>Rc(t.ansi[e],t.name,`ansi.${e}`)))}}function Fc(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 Lc(n,e.name,t)}function Ic(e){let t=new Map;for(let[n,r]of Object.entries(e.vars))t.set(n,Lc(r,e.name,`var ${n}`));for(let n of gc){let r=Fc(e,`text-${n}`);t.set(`text-${n}`,vc(r,Fc(e,`${n}-muted`),Fc(e,`background`)))}return new Io(e.name,e.dark,t)}function Lc(e,t,n){try{return Ss(e)}catch(e){throw e instanceof is?Error(`Theme ${t}: ${n}: ${e.message}`,{cause:e}):e}}function Rc(e,t,n){let r=Lc(e,t,n);if(r.alpha!==1)throw Error(`Theme ${t}: ${n} has alpha in ${JSON.stringify(e)} (expected #RRGGBB)`);return r}function zc(e){return new ws(e.bg,e.fg,e.ansi,_c(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 Bc=zc(Pc(`default`));zc(Pc(`svg-export`)),zc(Pc(`monokai`)),zc(Pc(`nord`)),zc(Pc(`gruvbox`)),zc(Pc(`dracula`)),zc(Pc(`tokyo-night`)),zc(Pc(`flexoki`)),zc(Pc(`cyberpunk`)),zc(Pc(`catppuccin-mocha`)),zc(Pc(`catppuccin-latte`)),zc(Pc(`catppuccin-frappe`)),zc(Pc(`catppuccin-macchiato`)),zc(Pc(`solarized-dark`)),zc(Pc(`solarized-light`)),zc(Pc(`rose-pine`)),zc(Pc(`rose-pine-moon`)),zc(Pc(`rose-pine-dawn`)),zc(Pc(`atom-one-dark`)),zc(Pc(`atom-one-light`)),zc(Pc(`textual-dark`)),zc(Pc(`textual-light`)),zc(Pc(`textual-ansi`));const Vc=new Set([`error`,`success`,`warning`]);function Hc(e){let t=e.indexOf(`-`);return t===-1?e:e.slice(0,t)}function Uc(e){return Vc.has(Hc(e))}function Wc(e,t,n){if(Hs(t))return new Io(n??e.name,e.dark,e.vars);let r={...t,hueShift:0},i=new Map;for(let[n,a]of e.vars){let e=Uc(n)?r:t;i.set(n,H.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=H.fromRgba(a).l<.5;return new Io(n??e.name,o,i)}var Gc=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:H.fromRgba(r.color).mix(H.fromRgba(i.color),a).toRgba()}};function Kc(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 qc(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 Jc=e=>e,Yc=qc(1,`jump-end`),Xc={linear:Jc,ease:Kc(.25,.1,.25,1),"ease-in":Kc(.42,0,1,1),"ease-out":Kc(0,0,.58,1),"ease-in-out":Kc(.42,0,.58,1),"step-start":qc(1,`jump-start`),"step-end":Yc,step:Yc,sine:e=>(1-Math.cos(Math.PI*e))/2};function Zc(e){if(!Object.hasOwn(Xc,e))throw RangeError(`unknown ease ${JSON.stringify(e)}; expected one of `+Object.keys(Xc).map(e=>JSON.stringify(e)).join(`, `));return Xc[e]}function Qc(e,t){if(!Number.isFinite(t)||t<=0)throw RangeError(`${e} must be a positive number of seconds, got ${t}`)}function $c(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}function el(e){return e===0?Number.MIN_VALUE:(tl[0]=e,nl[0]+=e>0?1n:-1n,tl[0])}const tl=new Float64Array(1),nl=new BigUint64Array(tl.buffer);function rl(e){if(e.length===0)throw RangeError(`a beat needs at least one hold`);e.forEach((e,t)=>Qc(`beat hold ${t}`,e));let t=e.reduce((e,t)=>e+t,0),n=[],r=0;for(let t of e)n.push(r),r+=t;let i=[...e],a=e=>{let t=i.length-1;for(;n[t]>e;)t--;return t},o=(e,r,o,s)=>{let c=r*t+n[o];for(let n=0;a($c(e,c,t))!==o;n++){if(n===8)throw RangeError(`${e}: hold ${o} (${i[o]} s) is finer than time resolves near t = ${s}`);c=el(c)}return c},s=(e,n)=>Math.round((e-n)/t);return{holds:i,period:t,at(e){return a($c(`Beat.at`,e,t))},start(e){let n=$c(`Beat.start`,e,t);return o(`Beat.start`,s(e,n),a(n),e)},end(e){let n=$c(`Beat.end`,e,t),r=a(n),c=r===i.length-1;return o(`Beat.end`,s(e,n)+ +!!c,c?0:r+1,e)}}}const il={once(e,t){if(!Number.isFinite(e))throw RangeError(`Phase.once start must be finite, got ${e}`);return Qc(`Phase.once duration`,t),n=>Math.min(1,Math.max(0,(n-e)/t))},loop(e){return Qc(`Phase.loop period`,e),t=>$c(`Phase.loop`,t,e)/e},pingPong(e){Qc(`Phase.pingPong period`,e);let t=il.loop(e);return e=>1-Math.abs(2*t(e)-1)}};function al(e,t){return{owner:e.owner,row:e.row,col:e.col+t,inner:e.inner&&al(e.inner,t)}}function ol(e,t){for(let n=e;n;n=n.inner)if(n.owner===t)return!0;return!1}const sl=[`bold`,`dim`,`italic`,`underline`,`blink`,`blink2`,`reverse`,`conceal`,`strike`,`underline2`,`frame`,`encircle`,`overline`],cl={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},ll={b:`bold`,d:`dim`,i:`italic`,u:`underline`,s:`strike`,r:`reverse`,o:`overline`,uu:`underline2`};var ul=class extends Error{constructor(e,t){super(e,t),this.name=`StyleSyntaxError`}};const dl=new go;var U=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=Sl(e.color),this.bgcolor=Cl(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(al(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&&El(this.anchor,e.anchor)&&this.nextChange===e.nextChange}drawnColors(e){let t=Ho,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[...sl.filter(e=>this[e]===!0).map(e=>`${cl[e]}`),...t.color?.getAnsiCodes(!0)??[],...t.bgcolor?.getAnsiCodes(!1)??[]].join(`;`)}toString(){if(this.isNull)return`none`;let e=[];for(let t of sl)this[t]===!1&&e.push(`not ${t}`);for(let t of sl)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 fl}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=fl;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`?fl:dl.get(n,xl)}};const fl=new U,pl=/^[a-z][a-z0-9._-]*$/;function ml(e,t){return e instanceof U?e.add(t):e===``?t:typeof e==`string`?{under:e,over:t}:{under:e.under,over:e.over.add(t)}}var hl=class{styles;constructor(e={},t){if(this.styles=new Map,t?.inherit!==!1)for(let[e,t]of Object.entries(wl))this.styles.set(e,t);for(let[t,n]of Object.entries(e)){if(!pl.test(t))throw Error(`Invalid style name: "${t}" (must be lowercase, start with letter, contain only letters, digits, ".", "-", "_")`);this.styles.set(t,U.parse(n))}}get(e){return this.styles.get(e)}resolve(e){return e instanceof U?e:typeof e==`string`?this.styles.get(e)??U.parse(e):this.resolve(e.under).add(e.over)}has(e){return this.styles.has(e)}};const gl=new Set(sl),_l=[`not`,`on`,`link`,...sl,...Rs];function vl(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 yl(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:vl(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 bl(e,t,n){try{return V.parse(e)}catch(r){throw new ul(`${t} "${e}"${yl(e,n)}: ${String(r)}`,{cause:r})}}function xl(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 ul(`Expected attribute after "not" in style definition`);let i=ll[e]??e;if(!gl.has(i))throw new ul(`Invalid attribute: "${e}"${yl(e,sl)}`);n[i]=!1,r++;continue}if(e===`on`){r++;let e=t[r];if(!e)throw new ul(`Expected color after "on" in style definition`);n.bgcolor=bl(e,`Invalid background color`,Rs),r++;continue}if(e===`link`){r++;let e=t[r];e&&(n.link=e),r++;continue}let i=ll[e]??e;if(gl.has(i)){n[i]=!0,r++;continue}n.color=bl(e,`Invalid style definition`,_l),r++}return new U(n)}function Sl(e){if(e!==void 0)return e instanceof V?e:V.parse(e)}function Cl(e){let t=Sl(e);return t?.value?.alpha===0?void 0:t}const wl={none:fl,reset:new U({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 U({bold:!0}),dim:new U({dim:!0}),italic:new U({italic:!0}),underline:new U({underline:!0}),blink:new U({blink:!0}),blink2:new U({blink2:!0}),reverse:new U({reverse:!0}),conceal:new U({conceal:!0}),strike:new U({strike:!0}),underline2:new U({underline2:!0}),frame:new U({frame:!0}),encircle:new U({encircle:!0}),overline:new U({overline:!0}),"table.header":new U({bold:!0}),"table.footer":new U({bold:!0}),"table.cell":fl,"table.title":new U({italic:!0}),"table.caption":new U({italic:!0,dim:!0}),"repr.ellipsis":U.parse(`yellow`),"repr.indent":U.parse(`dim green`),"repr.error":U.parse(`bold red`),"repr.str":U.parse(`not bold not italic green`),"repr.brace":U.parse(`bold`),"repr.comma":U.parse(`bold`),"repr.ipv4":U.parse(`bold bright_green`),"repr.ipv6":U.parse(`bold bright_green`),"repr.eui48":U.parse(`bold bright_green`),"repr.eui64":U.parse(`bold bright_green`),"repr.tag_start":U.parse(`bold`),"repr.tag_name":U.parse(`bold bright_magenta`),"repr.tag_contents":U.parse(`default`),"repr.tag_end":U.parse(`bold`),"repr.attrib_name":U.parse(`not italic yellow`),"repr.attrib_equal":U.parse(`bold`),"repr.attrib_value":U.parse(`not italic magenta`),"repr.number":U.parse(`bold not italic cyan`),"repr.number_complex":U.parse(`bold not italic cyan`),"repr.bool_true":U.parse(`italic bright_green`),"repr.bool_false":U.parse(`italic bright_red`),"repr.none":U.parse(`italic magenta`),"repr.url":U.parse(`not bold not italic underline bright_blue`),"repr.uuid":U.parse(`not bold bright_yellow`),"repr.call":U.parse(`bold magenta`),"repr.path":U.parse(`magenta`),"repr.filename":U.parse(`bright_magenta`),"log.time":U.parse(`cyan dim`),"log.message":fl,"log.path":U.parse(`dim`),"log.line_no":U.parse(`cyan`),"log.level":fl,"rule.line":U.parse(`bright_green`),"rule.text":fl,"strip.separator":U.parse(`bright_black`),"strip.rail":U.parse(`bright_black`),"json.brace":U.parse(`bold`),"json.bool_true":U.parse(`italic bright_green`),"json.bool_false":U.parse(`italic bright_red`),"json.key":U.parse(`bold blue`),"json.null":U.parse(`italic magenta`),"json.number":U.parse(`bold not italic cyan`),"json.str":U.parse(`not bold not italic green`),"syntax.keyword":U.parse(`bold magenta`),"syntax.constant":U.parse(`italic bright_magenta`),"syntax.string":U.parse(`green`),"syntax.number":U.parse(`cyan`),"syntax.comment":U.parse(`dim italic`),"syntax.line_number":U.parse(`dim`),"syntax.line_number.highlight":U.parse(`bold grey93 on grey27`),"markdown.h1":U.parse(`bold underline`),"markdown.h2":U.parse(`bold`),"markdown.h3":U.parse(`bold dim`),"markdown.h4":U.parse(`bold dim italic`),"markdown.code":U.parse(`bold dark_turquoise on grey11`),"markdown.hr":U.parse(`yellow`),"markdown.link":U.parse(`bright_blue`),"markdown.link_url":U.parse(`blue`),"markdown.table.border":U.parse(`cyan`),"markdown.table.header":U.parse(`not bold cyan`),"progress.description":fl,"progress.percentage":U.parse(`magenta`),"progress.remaining":U.parse(`cyan`),"progress.elapsed":U.parse(`yellow`),"progress.spinner":U.parse(`green`),"progress.download":U.parse(`green`),"progress.filesize":U.parse(`green`),"progress.filesize.total":U.parse(`green`),"progress.data.speed":U.parse(`red`),"bar.back":U.parse(`grey23`),"bar.complete":U.parse(`rgb(249,38,114)`),"bar.finished":U.parse(`rgb(114,156,31)`),"bar.pulse":U.parse(`rgb(249,38,114)`),"scrollbar.thumb":fl,"scrollbar.track":U.parse(`grey37`),tree:fl,"tree.guide":fl,"status.spinner":U.parse(`green`),"status.message":fl,prompt:fl,"prompt.choices":U.parse(`bold magenta`),"prompt.default":U.parse(`bold cyan`),"prompt.invalid":U.parse(`red`),"prompt.invalid.choice":U.parse(`red`),"inspect.attr":U.parse(`yellow italic`),"inspect.attr.dunder":U.parse(`yellow italic dim`),"inspect.callable":U.parse(`bold magenta`),"inspect.error":U.parse(`bold red`),"inspect.help":U.parse(`cyan`),"inspect.doc":U.parse(`dim`),"inspect.value.border":U.parse(`green`),"traceback.border":U.parse(`red`),"traceback.text":U.parse(`red`),"traceback.title":U.parse(`bold red`),"traceback.exc_type":U.parse(`bold bright_red`),"traceback.exc_value":fl,"traceback.offset":U.parse(`bold bright_red`),"scope.border":U.parse(`blue`),"scope.key":U.parse(`italic`),"scope.key.special":U.parse(`dim italic`),pretty:fl,"iso8601.date":U.parse(`blue`),"iso8601.time":U.parse(`magenta`),"iso8601.timezone":U.parse(`yellow`),"iso8601.year":fl,"iso8601.month":fl,"iso8601.day":fl,"iso8601.week":fl,"iso8601.hour":fl,"iso8601.minute":fl,"iso8601.second":fl,"iso8601.frac":fl,"iso8601.ms":fl,"iso8601.hyphen":fl},Tl=new hl;function El(e,t){return e===t?!0:!e||!t?!1:e.owner===t.owner&&e.row===t.row&&e.col===t.col&&El(e.inner,t.inner)}var Dl;(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`})(Dl||={});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]=So(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??U.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&&
|
|
40
|
+
`),Qi(i.binPath,r,t),process.stdout.write(Xi());let a=Ei(Ci,Ti(Dt,await wi(Ci,fetch,`https://registry.npmjs.org`)));process[a.stream].write(a.text)}function Qi(e,t,n,i){let a=i??fi(di(ui(process.env,process.cwd())));r.mkdirSync(l.dirname(a),{recursive:!0});let o=hi(a).statusLine,s=gi(o)?o.command:void 0,c=[e,mr(e),pr(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=Ai(e,t);Ie(a,(gi(o)?[[[`statusLine`,`type`],`command`],[[`statusLine`,`command`],d]]:[[[`statusLine`],{type:`command`,command:d}]]).reduce((e,[t,n])=>Xr(e,t,JSON.stringify(n,null,2),Fr),mi(a))),process.stdout.write(`Updated ${a}\n`)}function $i(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 ea(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 ta(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 na(e,t){let n=ea(e);if(n.kind===`owned`&&n.pid===t)try{r.unlinkSync(e)}catch{}}function ra(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 ia(e,t,n,r){let i=aa(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 aa(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 oa(e){let t=!1;function n(){let n=ia(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 sa(e,t=O){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 ca(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 la(e,t=sa){let n=t(e);return n.kind===`start`?n.token:null}const ua=`CC_CANDYBAR_PARENT_PID`;function da(e){let t=e[ua];if(t===void 0)return{kind:`outlives-nobody`};let n=Number.parseInt(t,10);if(!Number.isInteger(n)||n<=0)throw Error(`${ua} must be a positive integer pid, got ${JSON.stringify(t)}`);return{kind:`anchored`,pid:n}}function fa(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 pa(e){try{return t.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function ma(){let e=Number(process.env.CC_CANDYBAR_DAEMON_CEILING??``);return Number.isInteger(e)&&e>0?e:16}function ha(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 ga(e){try{return r.readdirSync(e).filter(e=>e.endsWith(`.json`)).map(t=>l.join(e,t))}catch{return[]}}function _a(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 va(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 ya(e){if(!e.isolated)return{decision:ha(!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=ha(!0,va(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 ba(e,t,n,r){let i=n(e);if(i!==null&&i.pid===t)try{r(e)}catch{}}function xa(e,t={}){return{isolated:!!process.env.CC_CANDYBAR_SOCKET,registryDir:Ye(),ceiling:ma(),pid:process.pid,startTime:e,isSameLiveProcess:(e,t)=>ca(e,t,{readStartTime:sa,pidAlive:pa}),listFiles:ga,readEntry:_a,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 Sa={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`}},Ca=Object.values(Sa),wa=[{configKey:`colorCompatibility`,effectiveVar:`colorCompatibility.effective`}],Ta=new Set(wa.map(e=>e.configKey)),Ea=new Map([...Ca,...wa].map(e=>[e.configKey,e.effectiveVar])),Da=new Map(Ca.map(e=>[e.sessionKey,e.effectiveVar]));function Oa(e){return Object.fromEntries(Object.keys(Sa).map(t=>[t,e(t)]))}const ka=new Map(Object.keys(Sa).map(e=>[Sa[e].sessionKey,e])),Aa=[[0,0,0],[768,879,0],[1155,1161,0],[1425,1469,0],[1471,1471,0],[1473,1474,0],[1476,1477,0],[1479,1479,0],[1552,1562,0],[1564,1564,0],[1611,1631,0],[1648,1648,0],[1750,1756,0],[1759,1764,0],[1767,1768,0],[1770,1773,0],[1809,1809,0],[1840,1866,0],[1958,1968,0],[2027,2035,0],[2045,2045,0],[2070,2073,0],[2075,2083,0],[2085,2087,0],[2089,2093,0],[2137,2139,0],[2199,2207,0],[2250,2273,0],[2275,2307,0],[2362,2364,0],[2366,2383,0],[2385,2391,0],[2402,2403,0],[2433,2435,0],[2492,2492,0],[2494,2500,0],[2503,2504,0],[2507,2509,0],[2519,2519,0],[2530,2531,0],[2558,2558,0],[2561,2563,0],[2620,2620,0],[2622,2626,0],[2631,2632,0],[2635,2637,0],[2641,2641,0],[2672,2673,0],[2677,2677,0],[2689,2691,0],[2748,2748,0],[2750,2757,0],[2759,2761,0],[2763,2765,0],[2786,2787,0],[2810,2815,0],[2817,2819,0],[2876,2876,0],[2878,2884,0],[2887,2888,0],[2891,2893,0],[2901,2903,0],[2914,2915,0],[2946,2946,0],[3006,3010,0],[3014,3016,0],[3018,3021,0],[3031,3031,0],[3072,3076,0],[3132,3132,0],[3134,3140,0],[3142,3144,0],[3146,3149,0],[3157,3158,0],[3170,3171,0],[3201,3203,0],[3260,3260,0],[3262,3268,0],[3270,3272,0],[3274,3277,0],[3285,3286,0],[3298,3299,0],[3315,3315,0],[3328,3331,0],[3387,3388,0],[3390,3396,0],[3398,3400,0],[3402,3405,0],[3415,3415,0],[3426,3427,0],[3457,3459,0],[3530,3530,0],[3535,3540,0],[3542,3542,0],[3544,3551,0],[3570,3571,0],[3633,3633,0],[3636,3642,0],[3655,3662,0],[3761,3761,0],[3764,3772,0],[3784,3790,0],[3864,3865,0],[3893,3893,0],[3895,3895,0],[3897,3897,0],[3902,3903,0],[3953,3972,0],[3974,3975,0],[3981,3991,0],[3993,4028,0],[4038,4038,0],[4139,4158,0],[4182,4185,0],[4190,4192,0],[4194,4196,0],[4199,4205,0],[4209,4212,0],[4226,4237,0],[4239,4239,0],[4250,4253,0],[4352,4447,2],[4448,4607,0],[4957,4959,0],[5906,5909,0],[5938,5940,0],[5970,5971,0],[6002,6003,0],[6068,6099,0],[6109,6109,0],[6155,6159,0],[6277,6278,0],[6313,6313,0],[6432,6443,0],[6448,6459,0],[6679,6683,0],[6741,6750,0],[6752,6780,0],[6783,6783,0],[6832,6877,0],[6880,6891,0],[6912,6916,0],[6964,6980,0],[7019,7027,0],[7040,7042,0],[7073,7085,0],[7142,7155,0],[7204,7223,0],[7376,7378,0],[7380,7400,0],[7405,7405,0],[7412,7412,0],[7415,7417,0],[7616,7679,0],[8203,8207,0],[8232,8238,0],[8288,8303,0],[8400,8432,0],[8986,8987,2],[9001,9002,2],[9193,9196,2],[9200,9200,2],[9203,9203,2],[9725,9726,2],[9748,9749,2],[9776,9783,2],[9800,9811,2],[9855,9855,2],[9866,9871,2],[9875,9875,2],[9889,9889,2],[9898,9899,2],[9917,9918,2],[9924,9925,2],[9934,9934,2],[9940,9940,2],[9962,9962,2],[9970,9971,2],[9973,9973,2],[9978,9978,2],[9981,9981,2],[9989,9989,2],[9994,9995,2],[10024,10024,2],[10060,10060,2],[10062,10062,2],[10067,10069,2],[10071,10071,2],[10133,10135,2],[10160,10160,2],[10175,10175,2],[11035,11036,2],[11088,11088,2],[11093,11093,2],[11503,11505,0],[11647,11647,0],[11744,11775,0],[11904,11929,2],[11931,12019,2],[12032,12245,2],[12272,12329,2],[12330,12335,0],[12336,12350,2],[12353,12438,2],[12441,12442,0],[12443,12543,2],[12549,12591,2],[12593,12643,2],[12644,12644,0],[12645,12686,2],[12688,12773,2],[12783,12830,2],[12832,12871,2],[12880,42124,2],[42128,42182,2],[42607,42610,0],[42612,42621,0],[42654,42655,0],[42736,42737,0],[43010,43010,0],[43014,43014,0],[43019,43019,0],[43043,43047,0],[43052,43052,0],[43136,43137,0],[43188,43205,0],[43232,43249,0],[43263,43263,0],[43302,43309,0],[43335,43347,0],[43360,43388,2],[43392,43395,0],[43443,43456,0],[43493,43493,0],[43561,43574,0],[43587,43587,0],[43596,43597,0],[43643,43645,0],[43696,43696,0],[43698,43700,0],[43703,43704,0],[43710,43711,0],[43713,43713,0],[43755,43759,0],[43765,43766,0],[44003,44010,0],[44012,44013,0],[44032,55203,2],[55216,55295,0],[63744,64255,2],[64286,64286,0],[65024,65039,0],[65040,65049,2],[65056,65071,0],[65072,65106,2],[65108,65126,2],[65128,65131,2],[65279,65279,0],[65281,65376,2],[65440,65440,0],[65504,65510,2],[65520,65531,0],[66045,66045,0],[66272,66272,0],[66422,66426,0],[68097,68099,0],[68101,68102,0],[68108,68111,0],[68152,68154,0],[68159,68159,0],[68325,68326,0],[68900,68903,0],[68969,68973,0],[69291,69292,0],[69370,69375,0],[69446,69456,0],[69506,69509,0],[69632,69634,0],[69688,69702,0],[69744,69744,0],[69747,69748,0],[69759,69762,0],[69808,69818,0],[69826,69826,0],[69888,69890,0],[69927,69940,0],[69957,69958,0],[70003,70003,0],[70016,70018,0],[70067,70080,0],[70089,70092,0],[70094,70095,0],[70188,70199,0],[70206,70206,0],[70209,70209,0],[70367,70378,0],[70400,70403,0],[70459,70460,0],[70462,70468,0],[70471,70472,0],[70475,70477,0],[70487,70487,0],[70498,70499,0],[70502,70508,0],[70512,70516,0],[70584,70592,0],[70594,70594,0],[70597,70597,0],[70599,70602,0],[70604,70608,0],[70610,70610,0],[70625,70626,0],[70709,70726,0],[70750,70750,0],[70832,70851,0],[71087,71093,0],[71096,71104,0],[71132,71133,0],[71216,71232,0],[71339,71351,0],[71453,71467,0],[71724,71738,0],[71984,71989,0],[71991,71992,0],[71995,71998,0],[72e3,72e3,0],[72002,72003,0],[72145,72151,0],[72154,72160,0],[72164,72164,0],[72193,72202,0],[72243,72249,0],[72251,72254,0],[72263,72263,0],[72273,72283,0],[72330,72345,0],[72544,72551,0],[72751,72758,0],[72760,72767,0],[72850,72871,0],[72873,72886,0],[73009,73014,0],[73018,73018,0],[73020,73021,0],[73023,73029,0],[73031,73031,0],[73098,73102,0],[73104,73105,0],[73107,73111,0],[73459,73462,0],[73472,73473,0],[73475,73475,0],[73524,73530,0],[73534,73538,0],[73562,73562,0],[78896,78912,0],[78919,78933,0],[90398,90415,0],[92912,92916,0],[92976,92982,0],[94031,94031,0],[94033,94087,0],[94095,94098,0],[94176,94179,2],[94180,94180,0],[94192,94193,0],[94194,94198,2],[94208,101589,2],[101631,101662,2],[101760,101874,2],[110576,110579,2],[110581,110587,2],[110589,110590,2],[110592,110882,2],[110898,110898,2],[110928,110930,2],[110933,110933,2],[110948,110951,2],[110960,111355,2],[113821,113822,0],[113824,113827,0],[118528,118573,0],[118576,118598,0],[119141,119145,0],[119149,119170,0],[119173,119179,0],[119210,119213,0],[119362,119364,0],[119552,119638,2],[119648,119670,2],[121344,121398,0],[121403,121452,0],[121461,121461,0],[121476,121476,0],[121499,121503,0],[121505,121519,0],[122880,122886,0],[122888,122904,0],[122907,122913,0],[122915,122916,0],[122918,122922,0],[123023,123023,0],[123184,123190,0],[123566,123566,0],[123628,123631,0],[124140,124143,0],[124398,124399,0],[124643,124643,0],[124646,124646,0],[124654,124655,0],[124661,124661,0],[125136,125142,0],[125252,125258,0],[126980,126980,2],[127183,127183,2],[127374,127374,2],[127377,127386,2],[127488,127490,2],[127504,127547,2],[127552,127560,2],[127568,127569,2],[127584,127589,2],[127744,127776,2],[127789,127797,2],[127799,127868,2],[127870,127891,2],[127904,127946,2],[127951,127955,2],[127968,127984,2],[127988,127988,2],[127992,127994,2],[127995,127999,0],[128e3,128062,2],[128064,128064,2],[128066,128252,2],[128255,128317,2],[128331,128334,2],[128336,128359,2],[128378,128378,2],[128405,128406,2],[128420,128420,2],[128507,128591,2],[128640,128709,2],[128716,128716,2],[128720,128722,2],[128725,128728,2],[128732,128735,2],[128747,128748,2],[128756,128764,2],[128992,129003,2],[129008,129008,2],[129292,129338,2],[129340,129349,2],[129351,129535,2],[129648,129660,2],[129664,129674,2],[129678,129734,2],[129736,129736,2],[129741,129756,2],[129759,129770,2],[129775,129784,2],[131072,196605,2],[196608,262141,2],[917504,921599,0]],ja=new Set([35,42,48,49,50,51,52,53,54,55,56,57,169,174,8252,8265,8482,8505,8596,8597,8598,8599,8600,8601,8617,8618,9e3,9167,9197,9198,9199,9201,9202,9208,9209,9210,9410,9642,9643,9654,9664,9723,9724,9728,9729,9730,9731,9732,9742,9745,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9823,9824,9827,9829,9830,9832,9851,9854,9874,9876,9877,9878,9879,9881,9883,9884,9888,9895,9904,9905,9928,9935,9937,9939,9961,9968,9969,9972,9975,9976,9977,9986,9992,9993,9996,9997,9999,10002,10004,10006,10013,10017,10035,10036,10052,10055,10083,10084,10145,10548,10549,11013,11014,11015,127344,127345,127358,127359,127777,127780,127781,127782,127783,127784,127785,127786,127787,127788,127798,127869,127894,127895,127897,127898,127899,127902,127903,127947,127948,127949,127950,127956,127957,127958,127959,127960,127961,127962,127963,127964,127965,127966,127967,127987,127989,127991,128063,128065,128253,128329,128330,128367,128368,128371,128372,128373,128374,128375,128376,128377,128391,128394,128395,128396,128397,128400,128421,128424,128433,128434,128444,128450,128451,128452,128465,128466,128467,128476,128477,128478,128481,128483,128488,128495,128499,128506,128715,128717,128718,128719,128736,128737,128738,128739,128740,128741,128745,128752,128755]);function Ma(e){if(e<32||e>=127&&e<160)return 0;let t=0,n=Aa.length-1;for(;t<=n;){let r=t+n>>1,[i,a,o]=Aa[r];if(e<i)n=r-1;else if(e>a)t=r+1;else return o}return 1}function Na(e){return ja.has(e)}var Pa=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 Fa=new Pa,Ia=/[\u200d\ufe0f]/,La=/^[ -~]*$/;function Ra(e){let t=0,n=!1,r=!1;for(let i of e){let e=i.codePointAt(0);if(r)r=!1;else if(e===8205)r=!0;else if(e===65039)t+=+!!n,n=!1;else{let r=Ma(e);t+=r,n=r>0?Na(e):n}}return t}function za(e){if(La.test(e))return e.length;if(!Ia.test(e))return Ra(e);let t=0;for(let{segment:n}of Ja().segment(e))t+=Ra(n);return t}function R(e){return e.length===0?0:e.length<=64?Fa.get(e,za):za(e)}function Ba(e){return e}function Va(e){return e}function Ha(e){return e>0?Math.floor(e):0}function Ua(e,t){if(t<=0)return[``,e];if(t>=R(e))return[e,``];let n=Qa(e,t);return[n+` `.repeat(t-R(n)),e.slice(n.length)]}function Wa(e,t){let n=[],r=0,i=0,a=0,o=0,s=0;for(let c of Za(e,Va(0))){if(s===t.length)break;let l=o+R(c),u=o;for(;s<t.length&&t[s]<l;s++){let l=t[s];n.push(` `.repeat(i)+e.slice(r,a)+` `.repeat(l-u)),i=0,r=l===o?a:a+c.length,u=l}u>o&&(i=l-u),a+=c.length,o=l}return n.push(` `.repeat(i)+e.slice(r)),n}function Ga(e,t){if(t<=0||e.length===0)return[e];let n=[],r=Va(0);for(;r<e.length;){let i=no(e,r,t);n.push(e.slice(r,i)),r=i}return n}let Ka,qa;function Ja(){return Ka??=new Intl.Segmenter(void 0,{granularity:`grapheme`})}function Ya(e){return qa?.text!==e&&(qa={text:e,segments:Ja().segment(e)}),qa.segments}function Xa(e){return Array.from(Za(e,Va(0)))}function*Za(e,t){let n=Ya(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=Va(t)}}function Qa(e,t){return e.slice(0,eo(Za(e,Va(0)),t))}function $a(e,t){return e.slice(e.length-eo(Xa(e).reverse(),t))}function eo(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 to(e,t,n){return Va(t+eo(Za(e,t),n))}function no(e,t,n){let[r=``]=Za(e,t);return Va(Math.max(to(e,t,n),t+r.length))}function ro(e){if(!Number.isInteger(e)||e<1)throw RangeError(`tabSize must be a positive integer, got ${e}`);return e}function io(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 ao=class{name;dark;vars;constructor(e,t,n){this.name=e,this.dark=t;let r=n.get(`background`),i=r===void 0?so(e):oo(e,r);this.vars=new Map([...n].map(([e,t])=>[e,i(t,e)]))}get(e){return this.vars.get(e)}};function oo(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 so(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 co(e){return e.toString(16).padStart(2,`0`)}function lo(e){return Number.isInteger(e)&&e>=0&&e<=255}function uo(e,t){if(!lo(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,uo(`red`,e),uo(`green`,t),uo(`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=`#`+co(this.red)+co(this.green)+co(this.blue);return this.alpha===1?e:e+co(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 fo=new z(0,0,0);function po(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 mo(e,t){return ho(po(e),po(t))}function ho(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function go(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 _o=class{colors;firstIndex;matchMemo=new Pa;readableMemo=new Pa;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(po),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=go(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=po(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=ho(c,r),u=l>=n,d=u?-go(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=>go(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 vo(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 yo={truecolor:B.TRUECOLOR,256:B.EIGHT_BIT,ansi:B.STANDARD,none:null},bo=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 xo(e={}){let t=Co(e).NO_COLOR;if(t!==void 0&&t!==``)return null;let n=So(Co(e));return n===void 0?To(e):n}function So(e){let t=e.FORCE_COLOR;if(t===void 0||t===``)return;let n=bo.get(t);return n===void 0?B.STANDARD:n}function Co(e){return e.env??(typeof process<`u`?process.env:{})}function wo(e){let t=e.TERM;return t===`dumb`||t===`unknown`}function To(e){let t=Co(e);if(!(e.isTTY??(typeof process<`u`?process.stdout?.isTTY??!1:!1))||wo(t))return null;let n=t.TERM??``,r=t.COLORTERM;if(r===`truecolor`||r===`24bit`)return B.TRUECOLOR;let i=bo.get(n);if(i!==void 0)return i;let a=t.TERM_PROGRAM;if(a!==void 0){let e=bo.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 Eo(e,t){return e===`auto`?{colorSystem:xo(t),hyperlinks:(So(Co(t??{}))??null)!==null||To(t??{})!==null}:{colorSystem:typeof e==`string`?Do(e):e,hyperlinks:!0}}function Do(e,t){if(e===`auto`)return xo(t);if(Object.hasOwn(yo,e))return yo[e];throw new Oo(`Unknown color system name: ${JSON.stringify(e)} (expected "auto", "truecolor", "256", "ansi", or "none")`)}var Oo=class extends Error{constructor(e){super(e),this.name=`ColorParseError`}};const ko=new Pa;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:$o.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||vo(this.type)<vo(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?is(e,this.type).ansiColors.get(this.number):$o.get(this.number);case B.STANDARD:case B.WINDOWS:return is(e,this.type).ansiColors.get(this.number);case B.DEFAULT:{let n=is(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 Oo(`A blend cannot mix "default", which is no colour`);if(e.value!==void 0&&e.value.alpha<1)throw new Oo(`A blend's ends are opaque; "${e.name}" is translucent`)}if(!(r>=0&&r<=1))throw new Oo(`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(qo(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 Fo(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?[Ao(t)]:[]].reduce((e,n)=>go(n[1],t)<go(e[1],t)?n:e)[0]}static indexed(e,t){let n=jo.get(t)??new Map;jo.set(t,n);let r=n.get(e)??Mo(e,t);return n.set(e,r),r}static matchMove(t,n,r,i,a){let o=e.matchOn(n,r,i,a);return go(t,n)<=go(o.getTruecolor(i,a),n)?void 0:o}static parse(e){return ko.get(e.toLowerCase().trim(),Bo)}performDowngrade(t){let n=this.getTruecolor(is(void 0,t));switch(t){case B.EIGHT_BIT:return e.fromAnsi(as(t).match(n));case B.STANDARD:case B.WINDOWS:{let r=this.number!==void 0&&this.number<16?this.number:as(t).match(n);return new e(`color(${r})`,t,r)}case B.TRUECOLOR:return this;case B.DEFAULT:return e.default()}}};function Ao(e){let t=es.match(e);return[V.fromAnsi(t),es.get(t)]}const jo=new WeakMap;function Mo(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}=es;return[...n(),...Array.from({length:t},(t,n)=>[V.fromAnsi(e+n),es.get(e+n)])]}}}function No(e,t,n,r){return qo(e.getTruecolor(r),t.getTruecolor(r),n)}function Po(e){return e.fixedValue?.hex??(e.number===void 0?e.name:`color(${e.number})`)}var Fo=class extends V{from;to;t;constructor(e,t,n){super(`blend(${Po(e)},${Po(t)},${n})`,B.TRUECOLOR,void 0,No(e,t,n)),this.from=e,this.to=t,this.t=n}get fixedValue(){}getTruecolor(e){return No(this.from,this.to,this.t,e)}};const Io=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,Lo=/^color\((\d+)\)$/,Ro=/^blend\((.*)\)$/,zo=/^\s*(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?\s*$/;function Bo(e){if(e===`default`||e===``)return V.default();let t=ss[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,Ko(e));let n=Io.exec(e);if(n){let t=Ho(e,n[1],`red`),r=Ho(e,n[2],`green`),i=Ho(e,n[3],`blue`);return new V(e,B.TRUECOLOR,void 0,new z(t,r,i))}let r=Lo.exec(e);if(r){let t=Ho(e,r[1],`number`);return new V(e,t<16?B.STANDARD:B.EIGHT_BIT,t)}let i=Ro.exec(e);if(i){let t=Vo(i[1]),n=t[2]??``;if(t.length!==3||!zo.test(n))throw new Oo(`ColorSpec "${e}": a blend is blend(<color>,<color>,<fraction>)`);return V.blend(V.parse(t[0]),V.parse(t[1]),Number(n))}throw new Oo(`Failed to parse color: "${e}"`)}function Vo(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 Ho(e,t,n){let r=parseInt(t,10);if(!lo(r))throw new Oo(`ColorSpec "${e}": ${n} ${t} is out of range (0-255)`);return r}const Uo=/^[0-9a-fA-F]+$/,Wo={6:`RRGGBB`,8:`RRGGBBAA`};function Go(e,t,n,r){if(!r.includes(n.length)||!Uo.test(n)){let n=r.map(e=>t+Wo[e]).join(` or `);throw new Oo(`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 Ko(e){return Go(e,`#`,e.startsWith(`#`)?e.slice(1):``,[6,8])}function qo(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 Jo=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 Yo(){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 Xo(){let e=Yo(),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 Zo(){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 Qo=new _o(Yo()),$o=new _o(Xo()),es=new _o(Xo().slice(16),16),ts=new _o(Zo()),ns=new Jo(new z(0,0,0),new z(255,255,255),Qo,new ao(`default`,!0,new Map)),rs=new Jo(ts.get(0),ts.get(7),ts,new ao(`windows`,!0,new Map));function is(e,t){return e??(t===B.WINDOWS?rs:ns)}function as(e){switch(e){case B.EIGHT_BIT:return es;case B.STANDARD:return Qo;case B.WINDOWS:return ts}}function os(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 ss=os({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}),cs=[`default`,...Object.keys(ss)];var ls;const us=[`l`,`c`,`h`,`alpha`],ds=Object.freeze({hueShift:0,chromaScale:1,lightnessScale:1,lightnessShift:0});Object.freeze({hueShift:0,chromaScale:1,lightnessScale:-1,lightnessShift:1});function fs(e){return e.hueShift%360==0&&e.chromaScale===1&&e.lightnessScale===1&&e.lightnessShift===0}function ps(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function ms(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function hs(e){return e<0?0:e>1?1:e}const gs=1e-4,_s=1e-7,vs=(e,t)=>e<_s?0:t,ys=(e,t,n)=>e*(1-n)+t*n,bs=e=>{let t=e%360;return t<0?t+360:t};function xs(e,t,n){return e>=-gs&&e<=1+gs&&t>=-gs&&t<=1+gs&&n>=-gs&&n<=1+gs}var H=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=ps(t),o=ps(n),s=ps(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=bs(180/Math.PI*Math.atan2(g,h));return new ls(m,_,vs(_,v),i)}toRgba(){let e=hs(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(hs(ms(r))*255),Math.round(hs(ms(i))*255),Math.round(hs(ms(a))*255),this.alpha)}applyKey(e){if(fs(e))return this;let t=hs(this.l*e.lightnessScale+e.lightnessShift),n=Math.max(0,this.c*e.chromaScale),r=bs(this.h+e.hueShift);return new ls(t,n,vs(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 us){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>=_s,o=e.c>=_s,s=bs(a?this.h:o?e.h:0),c=bs(o?e.h:s),l=c-s,u=l<-180?s-360:s,d=l>180?c-360:c,f=ys(this.c,e.c,n);return new ls(ys(this.l,e.l,t),f,vs(f,bs(ys(u,d,r))),ys(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(xs(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);xs(r.r,r.g,r.b)?i=t:a=t}return i}};ls=H;var Ss=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 Cs(e,t){let n=t.trim();if(n.startsWith(`#`))try{return Ko(n)}catch(e){throw e instanceof Oo?new Ss(t,e.message,{cause:e}):e}let r=e.get(n);if(r===void 0)throw new Ss(t,`no such variable in palette ${JSON.stringify(e.name)}`+ws(e,n));return r}function ws(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 Ts(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 Es(e){let t=Math.round(e);return t<0?0:t>255?255:t}function Ds(e){let{h:t,s:n,l:r}=e;if(n===0){let e=Es(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(Es((s+u)*255),Es((c+u)*255),Es((l+u)*255))}function Os(e){return e<0?0:e>1?1:e}function ks(e,t){let n=Ts(e);return n.l=Os(n.l-.1*t),Ds(n)}function As(e,t,n){return qo(t,e,Os(n))}function js(e,t=fo){return po(Is(e,t))>.179?new z(0,0,0):new z(255,255,255)}function Ms(e,t,n=4.5,r=B.TRUECOLOR,i=fo,a){let o=Is(t,i),s=Rs(e,o,n,js(o)),c=Ls(r,a);if(c===void 0)return s;let l=Fs(c,o);return mo(Fs(c,s),l)>=n?s:c.written.get(c.shown.matchReadable(e.compositeOver(o),l,n))}function Ns(e,t,n,r=fo,i){let a=Is(e,r),o=Ls(t,i),s=e=>Fs(o,Is(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 Ps(e,t,n=fo,r){return Fs(Ls(t,r),Is(e,n))}function Fs(e,t){return e===void 0?t:V.fromRgba(t).downgrade(e.depth).getTruecolor(e.terminal)}function Is(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 Ls(e,t){let n=is(t,e);switch(e){case B.EIGHT_BIT:return{depth:e,terminal:n,written:as(e),shown:as(e)};case B.STANDARD:case B.WINDOWS:return{depth:e,terminal:n,written:as(e),shown:n.ansiColors};case B.TRUECOLOR:case B.DEFAULT:return}}function Rs(e,t,n,r){let i=e.compositeOver(t);if(mo(i,t)>=n)return i;let a=H.fromRgba(i),o=+(po(r)>.179);if(mo(new H(o,a.c,a.h,a.alpha).toRgba(),t)<n)return js(t);let s=a.l,c=o;for(let e=0;e<20;e++){let e=(s+c)/2;mo(new H(e,a.c,a.h,a.alpha).toRgba(),t)>=n?c=e:s=e}return new H(c,a.c,a.h,a.alpha).toRgba()}const zs=.7,Bs=[`primary`,`secondary`,`accent`,`success`,`warning`,`error`];function Vs(e,t,n){let r=oo(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 Bs)o.set(e,a[e]);o.set(`foreground-muted`,qo(a.foreground,a.background,zs)),o.set(`background-muted`,qo(a.background,a.foreground,zs)),o.set(`surface`,qo(a.background,a.foreground,.05));let s=js(a.background);for(let e of Bs){let t=a[e],n=qo(t,a.background,zs);o.set(`${e}-muted`,n),o.set(`text-${e}`,Hs(As(t,s,.66),n,a.background)),o.set(`on-${e}`,js(t))}return new ao(e,t,o)}function Hs(e,t,n){return Rs(e,t,4.5,js(n))}const Us={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`}},Ws={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`}},Gs={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`}},Ks={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`}},qs={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`}},Js={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`}},Ys=[`black`,`red`,`green`,`yellow`,`blue`,`magenta`,`cyan`,`white`,`brightBlack`,`brightRed`,`brightGreen`,`brightYellow`,`brightBlue`,`brightMagenta`,`brightCyan`,`brightWhite`],Xs=Object.fromEntries(Ys.map((e,t)=>[e,Qo.get(t).hex])),Zs={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`},Qs={"atom-one-dark":Us,"atom-one-light":Ws,"catppuccin-frappe":Gs,"catppuccin-latte":Ks,"catppuccin-macchiato":qs,"catppuccin-mocha":Js,cyberpunk:{name:`cyberpunk`,dark:!0,ansi:Zs,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:Xs,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:Xs,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:Zs,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`}}},$s=Object.freeze(Object.keys(Qs).sort()),ec=new Map;function tc(){return $s}function nc(e){if(!rc(e))return null;let t=ec.get(e);if(t!==void 0)return t;let n=oc(Qs[e]);return ec.set(e,n),n}function rc(e){return Object.hasOwn(Qs,e)}function ic(e){let t=Qs[e],n=ac(t,`background`),r=oo(t.name,n),i=e=>r(ac(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 _o(Ys.map(e=>cc(t.ansi[e],t.name,`ansi.${e}`)))}}function ac(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 sc(n,e.name,t)}function oc(e){let t=new Map;for(let[n,r]of Object.entries(e.vars))t.set(n,sc(r,e.name,`var ${n}`));for(let n of Bs){let r=ac(e,`text-${n}`);t.set(`text-${n}`,Hs(r,ac(e,`${n}-muted`),ac(e,`background`)))}return new ao(e.name,e.dark,t)}function sc(e,t,n){try{return Ko(e)}catch(e){throw e instanceof Oo?Error(`Theme ${t}: ${n}: ${e.message}`,{cause:e}):e}}function cc(e,t,n){let r=sc(e,t,n);if(r.alpha!==1)throw Error(`Theme ${t}: ${n} has alpha in ${JSON.stringify(e)} (expected #RRGGBB)`);return r}function lc(e){return new Jo(e.bg,e.fg,e.ansi,Vs(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 uc=lc(ic(`default`));lc(ic(`svg-export`)),lc(ic(`monokai`)),lc(ic(`nord`)),lc(ic(`gruvbox`)),lc(ic(`dracula`)),lc(ic(`tokyo-night`)),lc(ic(`flexoki`)),lc(ic(`cyberpunk`)),lc(ic(`catppuccin-mocha`)),lc(ic(`catppuccin-latte`)),lc(ic(`catppuccin-frappe`)),lc(ic(`catppuccin-macchiato`)),lc(ic(`solarized-dark`)),lc(ic(`solarized-light`)),lc(ic(`rose-pine`)),lc(ic(`rose-pine-moon`)),lc(ic(`rose-pine-dawn`)),lc(ic(`atom-one-dark`)),lc(ic(`atom-one-light`)),lc(ic(`textual-dark`)),lc(ic(`textual-light`)),lc(ic(`textual-ansi`));const dc=new Set([`error`,`success`,`warning`]);function fc(e){let t=e.indexOf(`-`);return t===-1?e:e.slice(0,t)}function pc(e){return dc.has(fc(e))}function mc(e,t,n){if(fs(t))return new ao(n??e.name,e.dark,e.vars);let r={...t,hueShift:0},i=new Map;for(let[n,a]of e.vars){let e=pc(n)?r:t;i.set(n,H.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=H.fromRgba(a).l<.5;return new ao(n??e.name,o,i)}function hc(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 _c(e=>d(m(e)))}function gc(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 _c(t=>Math.min(i,Math.floor(t*e)+a)/i)}const _c=e=>t=>{let n=Math.min(1,Math.max(0,t));return n===1?1:e(n)},vc=_c(e=>e),yc=gc(1,`jump-end`),bc=_c(e=>(1-Math.cos(Math.PI*e))/2),xc=.001,Sc={stiffness:100,damping:10,mass:1};function Cc(e={}){let{stiffness:t,damping:n,mass:r}={...Sc,...e};for(let[e,i]of[[`stiffness`,t],[`damping`,n],[`mass`,r]])Rc(`spring ${e}`,i);let i=Math.sqrt(t/r),a=n/(2*Math.sqrt(t*r)),o=a*i,{displacement:s,seconds:c}=a<1?Tc(i,a,o):Ec(i,a,o);return{seconds:c,ease:_c(e=>1-s(e*c))}}function wc(e,t,n){for(let r=0;r<64;r++){let r=(t+n)/2;Math.abs(e(r))>.001?t=r:n=r}return n}function Tc(e,t,n){let r=e*Math.sqrt(1-t*t),i=n/r,a=e=>Math.exp(-n*e)*(Math.cos(r*e)+i*Math.sin(r*e)),o=Math.ceil(Math.log(1/xc)/(n*Math.PI/r));return{displacement:a,seconds:wc(a,(o-1)*Math.PI/r,(o*Math.PI-Math.atan(1/i))/r)}}function Ec(e,t,n){let{displacement:r,far:i}=t===1?Dc(e):Oc(e,t,n);return{displacement:r,seconds:wc(r,0,i)}}function Dc(e){return{displacement:t=>Math.exp(-e*t)*(1+e*t),far:10/e}}function Oc(e,t,n){let r=Math.sqrt(t*t-1),i=e*r,a=e/(t+r),o=n+i,s=n/i;return{displacement:e=>((1+s)*Math.exp(-a*e)+(1-s)*Math.exp(-o*e))/2,far:Math.log((1+s)/(2*xc))/a}}const kc=[{until:1/2.75,centre:0,floor:0},{until:2/2.75,centre:1.5/2.75,floor:.75},{until:2.5/2.75,centre:2.25/2.75,floor:.9375},{until:1/0,centre:2.625/2.75,floor:.984375}],Ac=_c(e=>{let t=kc.find(({until:t})=>e<t);return 7.5625*(e-t.centre)**2+t.floor}),jc=1.70158,Mc=_c(e=>e**3+jc*e**2*(e-1)),Nc=_c(e=>{let t=e-1;return 1+t**3+jc*t**2*(t+1)}),Pc=2*Math.PI/3,Fc=_c(e=>2**(-10*e)*Math.sin((10*e-.75)*Pc)+1),Ic={linear:vc,ease:hc(.25,.1,.25,1),"ease-in":hc(.42,0,1,1),"ease-out":hc(0,0,.58,1),"ease-in-out":hc(.42,0,.58,1),"step-start":gc(1,`jump-start`),"step-end":yc,step:yc,sine:bc,spring:Cc().ease,bounce:Ac,"back-in":Mc,"back-out":Nc,elastic:Fc};function Lc(e){if(!Object.hasOwn(Ic,e))throw RangeError(`unknown ease ${JSON.stringify(e)}; expected one of `+Object.keys(Ic).map(e=>JSON.stringify(e)).join(`, `));return Ic[e]}function Rc(e,t,n=``){if(!(Number.isFinite(t)&&t>0))throw RangeError(`${e} must be a positive number${n}, got ${t}`)}function zc(e,t){Rc(e,t,` of seconds`)}function Bc(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}function Vc(e){return e===0?Number.MIN_VALUE:(Hc[0]=e,Uc[0]+=e>0?1n:-1n,Hc[0])}const Hc=new Float64Array(1),Uc=new BigUint64Array(Hc.buffer);function Wc(e,t,n){let r=e;for(let e=0;!t(r);e++){if(e===8)throw RangeError(n());r=Vc(r)}return r}function Gc(e,t){if(!Number.isFinite(e))throw RangeError(`firstReaching needs a finite guess, got ${e}`);let n=e,r=e;for(let i=Vc(Math.abs(e))-Math.abs(e);t(n);i*=2){if(n===-Number.MAX_VALUE)return-1/0;r=n,n=Math.max(e-i,-Number.MAX_VALUE)}for(let i=Vc(Math.abs(e))-Math.abs(e);!t(r);i*=2){if(r===Number.MAX_VALUE)return 1/0;n=r,r=Math.min(e+i,Number.MAX_VALUE)}for(;;){let e=n+(r-n)/2;if(e<=n||e>=r)return r;t(e)?r=e:n=e}}function Kc(e){if(e.length===0)throw RangeError(`a beat needs at least one hold`);e.forEach((e,t)=>zc(`beat hold ${t}`,e));let t=e.reduce((e,t)=>e+t,0),n=[],r=0;for(let t of e)n.push(r),r+=t;let i=[...e],a=e=>{let t=i.length-1;for(;n[t]>e;)t--;return t},o=(e,r,o,s)=>Wc(r*t+n[o],n=>a(Bc(e,n,t))===o,()=>`${e}: hold ${o} (${i[o]} s) is finer than time resolves near t = ${s}`),s=(e,n)=>Math.round((e-n)/t);return{holds:i,period:t,at(e){return a(Bc(`Beat.at`,e,t))},lastChange(e){let n=Bc(`Beat.lastChange`,e,t);return o(`Beat.lastChange`,s(e,n),a(n),e)},nextChange(e){let n=Bc(`Beat.nextChange`,e,t),r=a(n),c=r===i.length-1;return o(`Beat.nextChange`,s(e,n)+ +!!c,c?0:r+1,e)}}}const qc={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=>Bc(`Phase.loop`,t,e)/e},pingPong(e){zc(`Phase.pingPong period`,e);let t=qc.loop(e);return e=>1-Math.abs(2*t(e)-1)}},Jc={constant(e){return{at:()=>e,nextChange:()=>1/0,lastChange:()=>-1/0}},continuous(e){return{at:e,nextChange:e=>e,lastChange:e=>e}},map(e,t){return{at:n=>t(e.at(n)),nextChange:t=>e.nextChange(t),lastChange:t=>e.lastChange(t)}},all(e){return{at:t=>e.map(e=>e.at(t)),nextChange:t=>Math.min(...e.map(e=>e.nextChange(t))),lastChange:t=>Math.max(...e.map(e=>e.lastChange(t)))}},sequence(e,t,n){zc(`Animation.sequence seconds`,t);let r=e=>Number.isFinite(e)?Gc(e+t,n=>n-t>=e):e;return{at:r=>r-t>=0?n.at(r-t):e.at(r),nextChange(i){let a=i-t;return a<0?Math.min(e.nextChange(i),t):Math.max(i,r(n.nextChange(a)))},lastChange(i){let a=i-t;return a<0?e.lastChange(i):Math.min(i,Math.max(t,r(n.lastChange(a))))}}}};function Yc(e,t,n){for(let[n,r]of[[`from`,e],[`to`,t]])if(!Number.isFinite(r))throw RangeError(`tween ${n} must be finite, got ${r}`);let{ease:r,seconds:i}=n,a=qc.once(0,i);return e===t?Jc.constant(e):{at(n){let i=r(a(n));return(1-i)*e+i*t},nextChange:e=>e<0?0:e<i?e:1/0,lastChange:e=>e<0?-1/0:e<i?e:i}}var Xc=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:H.fromRgba(r.color).mix(H.fromRgba(i.color),a).toRgba()}over(e){let t=this.stops[0].at,n=this.stops[this.stops.length-1].at;return Jc.map(Yc(t,n,{seconds:e,ease:Ic.linear}),e=>this.at(e))}};function Zc(e,t){if(!Number.isFinite(t))throw RangeError(`${e} must be a finite number of seconds, got ${t}`);return t}const Qc=e=>Zc(`Timeline host time`,e);function $c(e){if(!Number.isFinite(e)||e===0)throw RangeError(`Timeline rate must be finite and not zero, got ${e}`);return e}function el(e,t,n,r){let i=Qc(t);return e.playing?{playing:!0,origin:i,time:n,rate:r}:{playing:!1,time:n,rate:r}}function tl(e,{origin:t,time:n,rate:r}){let i=e=>n+r*(e-t),a=r>0,o=a?t=>e.nextChange(t):t=>e.lastChange(t),s=a?t=>e.lastChange(t):t=>e.nextChange(t),c=a?(e,t)=>e>=t:(e,t)=>e<t,l=e=>{let a=t+(e-n)/r;return Number.isFinite(a)?Gc(a,t=>c(i(t),e)):a};return{at:t=>e.at(i(Qc(t))),nextChange(e){let t=Qc(e),n=i(t),r=o(n);return r===n?t:Math.max(t,l(r))},lastChange(e){let t=Qc(e),n=i(t),r=s(n);return r===n?t:Math.min(t,l(r))}}}const nl={play(e,t=1){return{playing:!0,origin:Zc(`Timeline.play origin`,e),time:0,rate:$c(t)}},at(e,t){let n=Qc(t);return e.playing?e.time+e.rate*(n-e.origin):e.time},pause(e,t){return{playing:!1,time:nl.at(e,t),rate:e.rate}},resume(e,t){return{playing:!0,origin:Qc(t),time:nl.at(e,t),rate:e.rate}},seek(e,t,n){return el(e,t,Zc(`Timeline.seek time`,n),e.rate)},withRate(e,t,n){return el(e,t,nl.at(e,t),$c(n))},run(e,t){return e.playing?tl(t,e):{at:n=>t.at(nl.at(e,n)),nextChange:e=>(Qc(e),1/0),lastChange:e=>(Qc(e),-1/0)}}};function rl(e,t){return{owner:e.owner,row:e.row,col:e.col+t,inner:e.inner&&rl(e.inner,t)}}function il(e,t){for(let n=e;n;n=n.inner)if(n.owner===t)return!0;return!1}const al=[`bold`,`dim`,`italic`,`underline`,`blink`,`blink2`,`reverse`,`conceal`,`strike`,`underline2`,`frame`,`encircle`,`overline`],ol={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},sl={b:`bold`,d:`dim`,i:`italic`,u:`underline`,s:`strike`,r:`reverse`,o:`overline`,uu:`underline2`};var cl=class extends Error{constructor(e,t){super(e,t),this.name=`StyleSyntaxError`}};const ll=new Pa;var U=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=yl(e.color),this.bgcolor=bl(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||void 0,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(rl(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&&Cl(this.anchor,e.anchor)&&this.nextChange===e.nextChange}drawnColors(e){let t=fo,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[...al.filter(e=>this[e]===!0).map(e=>`${ol[e]}`),...t.color?.getAnsiCodes(!0)??[],...t.bgcolor?.getAnsiCodes(!1)??[]].join(`;`)}toString(){if(this.isNull)return`none`;let e=[];for(let t of al)this[t]===!1&&e.push(`not ${t}`);for(let t of al)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 W}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=W;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`?W:ll.get(n,vl)}};const W=new U,ul=/^[a-z][a-z0-9._-]*$/;function dl(e,t){return e instanceof U?e.add(t):e===``?t:typeof e==`string`?{under:e,over:t}:{under:e.under,over:e.over.add(t)}}var fl=class{styles;constructor(e={},t){if(this.styles=new Map,t?.inherit!==!1)for(let[e,t]of Object.entries(xl))this.styles.set(e,t);for(let[t,n]of Object.entries(e)){if(!ul.test(t))throw Error(`Invalid style name: "${t}" (must be lowercase, start with letter, contain only letters, digits, ".", "-", "_")`);this.styles.set(t,U.parse(n))}}get(e){return this.styles.get(e)}resolve(e){return e instanceof U?e:typeof e==`string`?this.styles.get(e)??U.parse(e):this.resolve(e.under).add(e.over)}has(e){return this.styles.has(e)}};const pl=new Set(al),ml=[`not`,`on`,`link`,...al,...cs];function hl(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 gl(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:hl(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 _l(e,t,n){try{return V.parse(e)}catch(r){throw new cl(`${t} "${e}"${gl(e,n)}: ${String(r)}`,{cause:r})}}function vl(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 cl(`Expected attribute after "not" in style definition`);let i=sl[e]??e;if(!pl.has(i))throw new cl(`Invalid attribute: "${e}"${gl(e,al)}`);n[i]=!1,r++;continue}if(e===`on`){r++;let e=t[r];if(!e)throw new cl(`Expected color after "on" in style definition`);n.bgcolor=_l(e,`Invalid background color`,cs),r++;continue}if(e===`link`){r++;let e=t[r];e&&(n.link=e),r++;continue}let i=sl[e]??e;if(pl.has(i)){n[i]=!0,r++;continue}n.color=_l(e,`Invalid style definition`,ml),r++}return new U(n)}function yl(e){if(e!==void 0)return e instanceof V?e:V.parse(e)}function bl(e){let t=yl(e);return t?.value?.alpha===0?void 0:t}const xl={none:W,reset:new U({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 U({bold:!0}),dim:new U({dim:!0}),italic:new U({italic:!0}),underline:new U({underline:!0}),blink:new U({blink:!0}),blink2:new U({blink2:!0}),reverse:new U({reverse:!0}),conceal:new U({conceal:!0}),strike:new U({strike:!0}),underline2:new U({underline2:!0}),frame:new U({frame:!0}),encircle:new U({encircle:!0}),overline:new U({overline:!0}),"table.header":new U({bold:!0}),"table.footer":new U({bold:!0}),"table.cell":W,"table.title":new U({italic:!0}),"table.caption":new U({italic:!0,dim:!0}),"repr.ellipsis":U.parse(`yellow`),"repr.indent":U.parse(`dim green`),"repr.error":U.parse(`bold red`),"repr.str":U.parse(`not bold not italic green`),"repr.brace":U.parse(`bold`),"repr.comma":U.parse(`bold`),"repr.ipv4":U.parse(`bold bright_green`),"repr.ipv6":U.parse(`bold bright_green`),"repr.eui48":U.parse(`bold bright_green`),"repr.eui64":U.parse(`bold bright_green`),"repr.tag_start":U.parse(`bold`),"repr.tag_name":U.parse(`bold bright_magenta`),"repr.tag_contents":U.parse(`default`),"repr.tag_end":U.parse(`bold`),"repr.attrib_name":U.parse(`not italic yellow`),"repr.attrib_equal":U.parse(`bold`),"repr.attrib_value":U.parse(`not italic magenta`),"repr.number":U.parse(`bold not italic cyan`),"repr.number_complex":U.parse(`bold not italic cyan`),"repr.bool_true":U.parse(`italic bright_green`),"repr.bool_false":U.parse(`italic bright_red`),"repr.none":U.parse(`italic magenta`),"repr.url":U.parse(`not bold not italic underline bright_blue`),"repr.uuid":U.parse(`not bold bright_yellow`),"repr.call":U.parse(`bold magenta`),"repr.path":U.parse(`magenta`),"repr.filename":U.parse(`bright_magenta`),"log.time":U.parse(`cyan dim`),"log.message":W,"log.path":U.parse(`dim`),"log.line_no":U.parse(`cyan`),"log.level":W,"rule.line":U.parse(`bright_green`),"rule.text":W,"strip.separator":U.parse(`bright_black`),"strip.rail":U.parse(`bright_black`),"json.brace":U.parse(`bold`),"json.bool_true":U.parse(`italic bright_green`),"json.bool_false":U.parse(`italic bright_red`),"json.key":U.parse(`bold blue`),"json.null":U.parse(`italic magenta`),"json.number":U.parse(`bold not italic cyan`),"json.str":U.parse(`not bold not italic green`),"syntax.keyword":U.parse(`bold magenta`),"syntax.constant":U.parse(`italic bright_magenta`),"syntax.string":U.parse(`green`),"syntax.number":U.parse(`cyan`),"syntax.comment":U.parse(`dim italic`),"syntax.line_number":U.parse(`dim`),"syntax.line_number.highlight":U.parse(`bold grey93 on grey27`),"markdown.h1":U.parse(`bold underline`),"markdown.h2":U.parse(`underline magenta`),"markdown.h3":U.parse(`bold magenta`),"markdown.h4":U.parse(`italic magenta`),"markdown.h5":U.parse(`italic`),"markdown.h6":U.parse(`dim`),"markdown.code":U.parse(`bold dark_turquoise on grey11`),"markdown.em":U.parse(`italic`),"markdown.strong":U.parse(`bold`),"markdown.s":U.parse(`strike`),"markdown.kbd":U.parse(`bold bright_yellow`),"markdown.block_quote":U.parse(`magenta`),"markdown.hr":U.parse(`dim`),"markdown.item":W,"markdown.item.bullet":U.parse(`bold`),"markdown.item.number":U.parse(`cyan`),"markdown.link":U.parse(`bright_blue`),"markdown.link_url":U.parse(`underline blue`),"markdown.table.border":U.parse(`cyan`),"markdown.table.header":U.parse(`not bold cyan`),"progress.description":W,"progress.percentage":U.parse(`magenta`),"progress.remaining":U.parse(`cyan`),"progress.elapsed":U.parse(`yellow`),"progress.spinner":U.parse(`green`),"progress.download":U.parse(`green`),"progress.filesize":U.parse(`green`),"progress.filesize.total":U.parse(`green`),"progress.data.speed":U.parse(`red`),"bar.back":U.parse(`grey23`),"bar.complete":U.parse(`rgb(249,38,114)`),"bar.finished":U.parse(`rgb(114,156,31)`),"bar.pulse":U.parse(`rgb(249,38,114)`),"scrollbar.thumb":W,"scrollbar.track":U.parse(`grey37`),tree:W,"tree.guide":W,"status.spinner":U.parse(`green`),"status.message":W,prompt:W,"prompt.choices":U.parse(`bold magenta`),"prompt.default":U.parse(`bold cyan`),"prompt.invalid":U.parse(`red`),"prompt.invalid.choice":U.parse(`red`),"inspect.attr":U.parse(`yellow italic`),"inspect.attr.dunder":U.parse(`yellow italic dim`),"inspect.callable":U.parse(`bold magenta`),"inspect.error":U.parse(`bold red`),"inspect.help":U.parse(`cyan`),"inspect.doc":U.parse(`dim`),"inspect.value.border":U.parse(`green`),"traceback.border":U.parse(`red`),"traceback.text":U.parse(`red`),"traceback.title":U.parse(`bold red`),"traceback.exc_type":U.parse(`bold bright_red`),"traceback.exc_value":W,"traceback.offset":U.parse(`bold bright_red`),"scope.border":U.parse(`blue`),"scope.key":U.parse(`italic`),"scope.key.special":U.parse(`dim italic`),pretty:W,"iso8601.date":U.parse(`blue`),"iso8601.time":U.parse(`magenta`),"iso8601.timezone":U.parse(`yellow`),"iso8601.year":W,"iso8601.month":W,"iso8601.day":W,"iso8601.week":W,"iso8601.hour":W,"iso8601.minute":W,"iso8601.second":W,"iso8601.frac":W,"iso8601.ms":W,"iso8601.hyphen":W},Sl=new fl;function Cl(e,t){return e===t?!0:!e||!t?!1:e.owner===t.owner&&e.row===t.row&&e.col===t.col&&Cl(e.inner,t.inner)}var wl;(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`})(wl||={});var G=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){return t>=this.cellLength?[this,new e(``)]:t<=0?[new e(``),this]:this.cutAt([t])}cutAt(t){return Wa(this.text,t).map((n,r)=>new e(n,r===0?this.style:this.style?.shiftedBy(t[r-1])))}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??U.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&&rl(e,t-r)}r=e}}static*applyStyle(t,n,r){let i=n?.isNull?void 0:n,a=r?.isNull?void 0:r;if(!i&&!a){yield*t;return}for(let n of t){if(n.isControl){yield n;continue}let t=n.style;i&&(t=i.add(t)),a&&(t=t?t.add(a):a),yield new e(n.text,t,n.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
|
-
`);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(
|
|
45
|
-
`);for(let e=0;e<t.length;e++){e>0&&(i=0);let[n]=
|
|
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}
|
|
47
|
-
`,this._tabSize=
|
|
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(
|
|
49
|
-
`),n=t.reduce((e,t)=>Math.max(e,R(t)),0),r=t.flatMap(zl),i=r.length>0?r.reduce((e,t)=>Math.max(e,t),0):n,a=
|
|
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*cu(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 lu=Object.freeze({name:`join`});var uu=class{fg;bg;constructor(e,t){this.fg=e,this.bg=t}};function du(e,t){for(let n=e;n;n=n.inner){if(t.has(n.owner))return{fg:!0,bg:!0};if(n.owner instanceof uu){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 fu(e,t,n,r){let i=e.join(t,n,r);return{render:e=>W.anchorLines([[...i.render(e)]],lu)[0]}}function pu(e){return{render:t=>W.anchorLines([[...e.render(t)]],e)[0]}}var mu=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*fu(this.joiner,null,t[0],{index:0}).render(n);for(let e=0;e<t.length;e++){let r=t[e];yield*pu(r).render(n);let i=e+1<t.length?t[e+1]:null;yield*fu(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 hu=[`seam`,`divider`,`lead`,`tail`];function*gu(e){yield e,`mix`in e&&(yield*gu(e.mix[0]),yield*gu(e.mix[1]))}const _u=e=>typeof e.glyph==`string`?[e.glyph]:e.glyph.oneOf,vu=(e,t,n,r)=>{let i=_u(e);return i[Math.floor(parseInt(Ul(`${t}:${n}:${r}`),16)/2**32*i.length)]},yu=e=>R(_u(e)[0]??``),bu=e=>e.reduce((e,t)=>e+yu(t),0);function xu(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([xu(e,t,n),xu(i,t,n),a])})}return n(`has a colour that is not a Paint: ${JSON.stringify(e)}`)}const Su=(e,t,n)=>e===`ground`?e:xu(e,t,n),Cu={seam:void 0,divider:void 0,lead:`left`,tail:`right`},wu={seam:`seam`,divider:`seam`,lead:`caps`,tail:`caps`};function Tu(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=_u(e);return o.length===0&&r(`has an empty oneOf`),o.some(t=>R(t)!==yu(e))&&r(`has oneOf members of different widths`),t===`ascii`&&!o.every(kl)&&r(`is not ASCII`),Object.freeze({glyph:typeof e.glyph==`string`?e.glyph:Object.freeze({oneOf:Object.freeze([...o])}),fg:Su(e.fg,Cu[n],r),bg:Su(e.bg,Cu[n],r)})}function Eu(e,t,n,r){let i=e,a=wu[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 Du=(e,t)=>(n,r)=>Tu(n,e,t,r),Ou=(e,t)=>(n,r)=>{if(!(`cap`in n))return Tu(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)}`)},ku=e=>[bu(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 Au(e){let t=t=>{let n=Eu(e,t,`seam`,Ou(t,`seam`)),r=e[t].divider===e[t].seam?n:Eu(e,t,`divider`,Ou(t,`divider`)),[i,a]=[ku(n),ku(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 ju(e){let t=t=>Object.freeze({lead:Eu(e,t,`lead`,Du(t,`lead`)),tail:Eu(e,t,`tail`,Du(t,`tail`))});return Object.freeze({glyph:t(`glyph`),ascii:t(`ascii`)})}function Mu(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 Nu=(e,t)=>e.some(e=>[e.fg,e.bg].some(e=>e!==`ground`&&[...gu(e)].some(e=>`edge`in e&&e.edge===t&&e.part===`bg`)));function Pu(e){let t=[...e.seam,...e.divider];return{shape:e,reads:{seam:{left:Nu(t,`left`),right:Nu(t,`right`)},lead:Nu(e.lead,`right`),tail:Nu(e.tail,`left`)}}}function Fu(e){return e!==void 0&&!e.isDefault?e:void 0}function Iu(e){return e.flattenAlpha(Ho)}function Lu(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?H.fromRgba(i).deltaE(H.fromRgba(a))<.04:n.number===void 0?n.name===r.name:n.number===r.number}function Ru(e,t,n){if(`edge`in e){let n=t[e.edge];if(e.part===`fg`)return n?.color;let r=Fu(n?.bgcolor);return r&&Iu(r)}if(`role`in e)return jl(n,e.role).color;let[r,i,a]=e.mix,o=Ru(r,t,n),s=Ru(i,t,n);return o&&s&&V.blend(o,s,a)}function zu(e,t,n){return e.fg===`ground`?new U({color:e.bg===`ground`?void 0:Ru(e.bg,t,n),reverse:!0}):new U({color:Ru(e.fg,t,n),bgcolor:e.bg===`ground`?void 0:Ru(e.bg,t,n)})}const Bu=e=>hu.flatMap(t=>e[t].flatMap(_u)).join(``);var Vu=class{seam;caps;_forms;constructor(e,t){this.seam=Au(e),this.caps=ju(t),this._forms={glyph:Pu(Mu(this.seam.glyph,this.caps.glyph)),ascii:Pu(Mu(this.seam.ascii,this.caps.ascii))}}join(e,t,{index:n}){let r=this._forms;return{*render(i){let{shape:a,reads:o}=Al(i,r.glyph,r.ascii,e=>Bu(e.shape)),s={left:e?.edgeStyle(`right`,i),right:t?.edgeStyle(`left`,i)},c=Fu(s.left?.bgcolor),l=Fu(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 uu(h(t.fg),h(t.bg));return new W(vu(t,e,n,r),zu(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&&Lu(e.style,i.colorSystem))?g(`divider`):_}}}};const Hu={edge:`left`,part:`bg`},Uu={edge:`right`,part:`bg`},Wu={edge:`left`,part:`fg`},Gu={mix:[Hu,Uu,1/2]},Ku=`ground`,qu={cap:`lead`},Ju={cap:`tail`},Yu=(e,t)=>({glyph:e,ascii:t}),Xu={glyph:``,thin:``,ascii:`>`,asciiThin:`>`},Zu={glyph:``,thin:``,ascii:`/`,asciiThin:`/`},Qu={glyph:``,thin:``,ascii:`\\`,asciiThin:`\\`},$u={glyph:``,thin:``,ascii:`}`,asciiThin:`}`},ed={glyph:``,thin:``,ascii:`#`,asciiThin:`>`},td={glyph:``,thin:``,ascii:`]`,asciiThin:`>`},nd={glyph:``,thin:``,ascii:`)`,asciiThin:`)`},rd=(e,t)=>({seam:[{glyph:e,fg:Hu,bg:Uu}],divider:[{glyph:t,fg:Wu,bg:Hu}]}),id=e=>Yu(rd(e.glyph,e.thin),rd(e.ascii,e.asciiThin));function ad(e,t){let n=e=>({mix:[Hu,Uu,e]}),r={glyph:` `,fg:Wu,bg:Hu};return{seam:[{glyph:e,fg:Hu,bg:n(1/3)},{glyph:e,fg:n(1/3),bg:n(2/3)},{glyph:e,fg:n(2/3),bg:Uu}],divider:[r,{glyph:t,fg:Wu,bg:Hu},r]}}function od(e){let t=[Ju,...e,qu];return{seam:t,divider:t}}function sd(e,t){let n=[{glyph:e,fg:t,bg:Gu}];return{seam:n,divider:n}}function cd(e){return{seam:sd({oneOf:e},Hu).seam,divider:[{glyph:{oneOf:e},fg:Wu,bg:Gu}]}}const ld=[{glyph:` | `,fg:{role:`strip.separator`},bg:Ku}],ud={seam:ld,divider:ld},dd={glyph:` `,fg:Wu,bg:Ku},fd=e=>({glyph:e,fg:{role:`strip.rail`},bg:Ku}),pd=Object.freeze({powerline:Au(id(Xu)),prism:Au(Yu(ad(Xu.glyph,Xu.thin),ad(Xu.ascii,Xu.asciiThin))),slant:Au(id(Zu)),backslant:Au(id(Qu)),flame:Au(id($u)),pixel:Au(id(ed)),ice:Au(id(td)),bubble:Au(id(nd)),capsule:Au(Yu(od([dd]),od([dd]))),wrapper:Au(Yu(od([]),od([]))),metro:Au(Yu(od([fd(`──`)]),od([fd(`--`)]))),stitch:Au(Yu(sd(`┊`,Wu),sd(`:`,Wu))),torn:Au(Yu(cd([`▚▞`,`▞▚`,`▘▗`,`▝▖`,`▖▝`,`▗▘`]),cd([`/\\`,`\\/`]))),plain:Au(Yu(ud,ud))}),md=e=>Yu({lead:[{glyph:e.glyph,fg:Ku,bg:Uu}],tail:[{glyph:e.glyph,fg:Hu,bg:Ku}]},{lead:[],tail:[{glyph:e.ascii,fg:Hu,bg:Ku}]}),hd=(e,t)=>({lead:[{glyph:e,fg:Uu,bg:Ku}],tail:[{glyph:t,fg:Hu,bg:Ku}]}),gd={lead:[],tail:[]},_d=Object.freeze({powerline:ju(md(Xu)),slant:ju(md(Zu)),backslant:ju(md(Qu)),flame:ju(md($u)),pixel:ju(md(ed)),ice:ju(md(td)),bubble:ju(md(nd)),capsule:ju(Yu(hd(``,``),hd(`(`,`)`))),wrapper:ju(Yu(hd(``,``),hd(`<`,`>`))),flat:ju(Yu(gd,gd))}),vd=Object.freeze({powerline:new Vu(pd.powerline,_d.powerline),prism:new Vu(pd.prism,_d.powerline),slant:new Vu(pd.slant,_d.slant),backslant:new Vu(pd.backslant,_d.backslant),flame:new Vu(pd.flame,_d.flame),pixel:new Vu(pd.pixel,_d.pixel),ice:new Vu(pd.ice,_d.ice),bubble:new Vu(pd.bubble,_d.bubble),capsule:new Vu(pd.capsule,_d.capsule),wrapper:new Vu(pd.wrapper,_d.wrapper),metro:new Vu(pd.metro,_d.capsule),stitch:new Vu(pd.stitch,_d.flat),torn:new Vu(pd.torn,_d.flat),plain:new Vu(pd.plain,_d.flat)});function yd(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:`${ql(o)}${a}]8;;\\`}function bd(e,t){let n=[];for(let r of e)n.push(yd(r,t));return n.join(``)}function xd(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=ns(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 bd(e.render(s),o)}function Sd(e){return e.end=``,e.plain=e.plain.replaceAll(`
|
|
51
|
-
`,` `),e.expandTabs()}
|
|
52
|
-
`?void 0:{row:t,col:n,anchor:i&&
|
|
53
|
-
`?[t+1,0]:[t,n+R(e)],a+=R(e),{glyph:e,cell:r}})}})}function kd(e){return[e.underline,e.underline2,e.strike,e.overline,e.frame,e.encircle].some(e=>e===!0)}function Ad(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||kd(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()!==``&&!ol(t.style.anchor,lu)?[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 jd(e,...t){let n=new Set(t),r=e=>du(e.anchor,n),i=({fg:e,bg:t})=>e||t,a=e=>({...e,cells:()=>e.cells().filter(e=>i(r(e)))});return wd((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)=>Cd(e,t,a(n)))}function Md(e,t){return t?{fg:e.bg,bg:e.fg}:e}function Nd(e,t,n,r){let i=t.bg.compositeOver(Ho),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 Pd(e,t){return Fd(e.color,t.color,!0)&&Fd(e.bgcolor,t.bgcolor,!1)}function Fd(e,t,n){return e===t||Id(e,n)===Id(t,n)}function Id(e,t){return e?.getAnsiCodes(t).join(`;`)??``}function Ld(e,t){return Rd(e.fg,t.fg)&&Rd(e.bg,t.bg)}function Rd(e,t){return e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha}const zd=(()=>{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]})(),Bd=e=>e*e*e*(e*(e*6-15)+10),Vd=(e,t,n)=>e+n*(t-e);function Hd(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 Ud(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=Bd(e),u=Bd(t),d=Bd(n),f=zd[o]+s,p=zd[f]+c,m=zd[f+1]+c,h=zd[o+1]+s,g=zd[h]+c,_=zd[h+1]+c;return Vd(Vd(Vd(Hd(zd[p],e,t,n),Hd(zd[g],e-1,t,n),l),Vd(Hd(zd[m],e,t-1,n),Hd(zd[_],e-1,t-1,n),l),u),Vd(Vd(Hd(zd[p+1],e,t,n-1),Hd(zd[g+1],e-1,t,n-1),l),Vd(Hd(zd[m+1],e,t-1,n-1),Hd(zd[_+1],e-1,t-1,n-1),l),u),d)}function Wd(e,t,n,r){let i=0,a=1,o=0;for(let s=0;s<r;s++){let r=2**s;i+=a*Ud(e*r,t*r,n*r),o+=a,a/=2}return i/o}function Gd(e,t){let n=Math.sin(e*12.9898+t*78.233)*43758.5453;return n-Math.floor(n)}function Kd(e,t,n){let r=Math.min(1,Math.max(0,(n-e)/(t-e)));return r*r*(3-2*r)}const qd=Array.from({length:48},(e,t)=>(t+1)/48);function Jd(e,t){return Math.min(Wo(e.fg,e.bg),4.5)-(t===B.TRUECOLOR?.01:0)}const Yd=[`fg`,`bg`];function Xd({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=>Yd.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=>H.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=Yd.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=Jd(r,t),c=(t,n)=>rf(i,r[t],(t===a?e:o)*n);return qd.every(e=>{let i=Td.shows(r,{fg:c(`fg`,e),bg:c(`bg`,e)},t,n);return Wo(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 Zd(e,t){let n=new WeakMap;return tf(ef(e,r=>{let i=t??r.colors,a=[Qd(r),`|`,...i].join(` `),o=n.get(r.theme)??new go;return n.set(r.theme,o),o.get(a,()=>Xd(r,i,e.touch))}))}function Qd({depth:e,pairs:t}){return[e,...t.map($d)].join(` `)}function $d({fg:e,bg:t,terminal:n,reverse:r}){return`${e.hex}/${t.hex}/${n.fg}/${n.bg}/${r}`}function ef(e,t){return(n,r)=>{let i=t(r),a=e.field(n,r);return({fg:t,bg:n},r)=>{let o=Math.round(cf(a(r))*48)/48,s=(t,n)=>rf(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 tf(e){return wd((t,n)=>nf(n.depth)?e=>e:e(t,n),(t,n)=>nf(n.depth)?1/0:Cd(e,t,n))}function nf(e){switch(e){case B.DEFAULT:case B.STANDARD:case B.WINDOWS:return!0;case B.EIGHT_BIT:case B.TRUECOLOR:return!1}}function rf(e,t,n){return n===0?t:e(t,n)}function af(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 of={shimmer:{seconds:109,ease:Xc.linear,swing:.9},pulse:{seconds:43,ease:Xc.linear,swing:.85},sparkle:{seconds:139,ease:Xc.linear,swing:.95},wheel:{seconds:907,ease:Xc.linear,swing:1},fade:{seconds:20,ease:Xc[`ease-in-out`],swing:1},dissolve:{seconds:30,ease:Xc[`ease-in-out`],swing:1}},sf={sun:new z(255,228,176),firefly:new z(222,245,140)},cf=e=>Math.min(1,Math.max(0,e));function lf(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 H((1-n)*e.l+n*t.l,Math.hypot(i,a),Math.atan2(a,i)/r,e.alpha)}function uf(e){let t=H.fromRgba(e);return(e,n)=>{let r=H.fromRgba(e);return lf(r,new H(Math.max(r.l,t.l),t.c,t.h,t.alpha),n).toRgba()}}const df=(e,t)=>t*e[e.length-1][0];function ff(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 pf(e,t,n){let r=df(e,n),i=t=>{let r=0;for(let i=0;i<24;i++)r+=ff(e,(i+.5)/24*t,n);return r*t};return i(Math.min(Math.max(t,0),r))/i(r)}const mf=[[.24,1],[.6,0]];function hf(e,t,n){af(e);let r=.9+.2*Gd(n,3.1),i=t=>.1*Ud(t/(3*e.seconds),.5,.5+n),a=i(0);return{touch:uf(t),field:t=>{let o=r*t/e.seconds+i(t)-a,s=Math.floor(o),c=.7+.3*Kd(-.5,.5,Ud(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 gf=e=>Math.abs(e)>=1?0:(1-e*e)**3;function _f(e,t,n,r){af(e);let i=e.seconds,a=i/2,o=e=>Kd(-.4,.4,Ud(e/7,3.3,5.5+r)),s=.7,c=.51,l=.4,u=(e,n,u)=>{let d=o(e),f=(Gd(e,7.5+r)<.35+.6*d)*(.3+.7*d*(.6+.4*Gd(e,8.5+r))),p=i*u/80*(c+l*Gd(e,5.5+r)),m=cf((n-(e+s*Gd(e,6.5+r))*a)/p);return{strength:f,centre:m*u-t+.06*u*Math.sin(Math.PI*m)*Ud(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(-((Ud(e,t,n)/.8)**2));return{touch:uf(n),field:(n,i)=>{let[a,o]=Cf(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*gf((i.col-a-n)/t));let c=i.row+r,l=.8*Ud(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 vf(e,t,n){af(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*Ud(e*1.7+.2,.3+t*2.9,.5+n),l=i+Gd(e+t*1013,.7+n)*r,u=Math.floor(l/r),d=Gd(u,s+1)<.15?0:1,f=.5+.5*Gd(u,s+2),p=Gd(u,s+3)*(1-df(mf,f)),m=l/r-u-p;return{x:a+c*8+5*(2*Gd(u,s+4)-1)+5*f*(2*Gd(u,s+5)-1)*pf(mf,m,f)+1.5*Ud(s,.1,i*.035),y:o+t*3+.6*Ud(s,2.2,i*.035),glow:d*ff(mf,m,f)}};return{touch:uf(t),field:(t,n)=>{let r=n.cells(),[s,c]=Cf(r.map(e=>e.col)),[l,u]=Cf(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*gf(Math.hypot(t.col-r.x,2*(t.row-r.y))/5))}return e.swing*e.ease(n)}}}}function yf(e,t){return(n,r)=>{let{theme:i}=r,a=e(n,r),o=H.fromRgba(i.backgroundColor);return(e,n)=>{let r=t*(1-cf(a(n)));if(r===0)return e;let i=lf(H.fromRgba(e.bg),o,r);return{fg:lf(H.fromRgba(e.fg),i,r).toRgba(),bg:i.toRgba()}}}}function bf(e){let t=new Map;return n=>{let r=`${n.row}:${n.col}`,i=t.get(r)??cf(.5+1.1*Wd(n.col*.09+1.4*Ud(n.col*.035,n.row*.2+2.6,e+.5),n.row*.45,e,3));return t.set(r,i),i}}function xf(e,t){let n=t=>t>=e.seconds;return{effect:wd(t,e=>n(e)?1/0:e),done:n}}function Sf(e,t){let n=new Map,r=e=>`${e.row}:${e.col}`;return i=>{let[a,o]=Cf(i.map(t)),s=(o>a?.55:0)*e.seconds,c=il.once(0,e.seconds-s),l=e=>{let n=o>a?cf((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 Cf(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 wf(e,t){af(e);let n=Sf(e,bf(1.7+t));return xf(e,yf((t,r)=>{let i=n(r.cells());return n=>e.ease(i(n).progress(t))},e.swing))}const Tf={depth:.4,from:.5,to:.95,maskFrom:.35,maskTo:.75,late:.6};function Ef(e,t){af(e);let n=bf(9.3+t),r=Sf(e,bf(4.2+t)),{depth:i,from:a,to:o,maskFrom:s,maskTo:c,late:l}=Tf;return xf(e,yf((t,u)=>{let d=r(u.cells());return r=>{let{along:u,progress:f}=d(r),p=e.ease(f(t)),m=cf((p-a)/(o-a)),h=i*Kd(s,c,n(r))*(1-l+l*u)*Math.sin(Math.PI*m)**2;return 1-p+h}},e.swing))}const Df=[211,337];function Of(e,t){af(e);let n=e.seconds,r=e=>Gd(Number.parseInt(e.slice(1),16)*1e-4,17.3+t),i=(e,n)=>Ud(n/Df[0],5.9+97*e,t)+.5*Ud(n/Df[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 tf((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 go;o.set(s,d);let f=d.get(Qd(t),()=>Pf(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=Lf(i,s),m=new Map,h=(t,n)=>{let r=kf(t,a(n,e));return Rf(r.looks,t,i===B.TRUECOLOR?r.either.map(Ff):p,f.get(u(t,n))??jf)},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 kf(e,t){if(t===0)return{looks:e,either:[e]};let n=H.fromRgba(e),r=Uo(e),i=e=>new H(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]=Uo(i(e))<r?[e,o]:[a,e]}return{looks:i(o),either:[i(a),i(o)]}}const Af=e=>Math.log(Wo(e,new z(0,0,0))),jf={lo:-1/0,hi:1/0},Mf={lo:1/0,hi:-1/0},Nf=Math.log(1.031);function Pf(e,t,n){let r=new Map;for(let i of e.filter(e=>Jd(e,t)>1)){let e=(Math.log(Wo(i.fg,i.bg))-Math.log(Jd(i,t)))/Yd.filter(e=>n(i,e)!==void 0).length;for(let t of Yd){let a=n(i,t);if(a===void 0)continue;let[o,s]=[Af(i[t]),Af(i[t===`fg`?`bg`:`fg`])],{lo:c,hi:l}=r.get(a)??jf;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<Nf?Mf:{lo:t,hi:n}]))}const Ff=e=>({color:e,looks:H.fromRgba(e),stop:Af(e)}),If=new WeakMap;function Lf(e,t){let n=V.indexed(e,t),r=If.get(n)??n.map(([,e])=>Ff(e));return If.set(n,r),r}function Rf(e,t,n,{lo:r,hi:i}){return zf(e,[Ff(t),...n.filter(({stop:e})=>e>=r&&e<=i)]).color}function zf(e,t){let n=H.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 Bf={loops:{shimmer:(e,t=of.shimmer)=>Zd(_f(t,24,sf.sun,e.z)),pulse:(e,t=of.pulse)=>Zd(hf(t,sf.sun,e.z)),sparkle:(e,t=of.sparkle)=>Zd(vf(t,sf.firefly,e.z)),wheel:(e,t=of.wheel)=>Of(t,e.z)},transitions:{fade:(e,t=of.fade)=>wf(t,e.z),dissolve:(e,t=of.dissolve)=>Ef(t,e.z)}};var Vf=class{beat;width;_shown;constructor(e){this.beat=rl(e.map(e=>e.seconds));let t=e.map(e=>Sd(e.text.copy())),n=t.map(e=>e.cellLength);this.width=Math.max(...n),this._shown=t.map((e,t)=>(e.noWrap=!0,e.overflow=`crop`,e.padRight(this.width-n[t])))}text(e){return this._shown[this.beat.at(e)].copy().stylize(new U({nextChange:this.beat.end(e)}))}};function Hf(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const Uf={segments:[],width:0},Wf={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Gf(e,t){return Wf[e](t)}function Kf(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 qf=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=>Hf(pu(t),e)),o=n=>i?Hf(fu(i,null,t[n],{index:n}),e):Uf,s=n=>i?Hf(fu(i,t[n],null,{index:n+1}),e):Uf,c=(n,r)=>i?Hf(fu(i,t[n],t[r],{index:r}),e):Uf,l=[],u=null,d=r>0?{segments:[new W(` `.repeat(r))],width:r}:Uf;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=Gf(p,i),o=Kf(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=Hf(t[i],e).width,o=this.joiner?Hf(fu(this.joiner,null,t[i],{index:i}),e).width:0,s=this.joiner?Hf(fu(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+=Hf(fu(this.joiner,t[i-1],t[i],{index:i}),e).width))}return this.joiner&&(r+=Hf(fu(this.joiner,null,t[0],{index:0}),e).width,r+=Hf(fu(this.joiner,t[t.length-1],null,{index:t.length}),e).width),{minimum:n,maximum:r}}};function Jf(e){return e<32||e===127||e>=128&&e<=159}function Yf(e){let t=``;for(let n of e)t+=Jf(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function Xf(e,t){let n=Yf(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const Zf=`\x1B[38;2;255;255;255m`,Qf=`\x1B[48;2;200;40;40m`;function $f(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 ep={fg:$f(Zf),bg:$f(Qf)},tp={fg:$f(`\x1B[38;2;0;0;0m`),bg:$f(`\x1B[48;2;220;160;40m`)},np=new hl({"strip.separator":`default`,"strip.rail":`default`});function rp(e){return np.resolve(e)}function ip(){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 ap=[`primary`,`secondary`,`accent`],op=[`darken-3`,`darken-2`,`darken-1`,`base`,`lighten-1`,`lighten-2`,`lighten-3`],sp={"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`},cp=(e,t)=>`${e}${sp[t]}`,lp=(e,t,n,r)=>Hp(e,n,r),up=(e,t,n,r)=>Wp(e,Mp(e,`text-${t}`),n,r),dp=e=>({tones:[op[e],op[e+2],op[e+1]],text:lp}),fp={muted:{tones:[`muted`],text:up},deepest:dp(0),deeper:dp(1),middle:dp(2),brighter:dp(3),brightest:dp(4)},pp=1/0,mp={accent:{hues:[`secondary`,`accent`],run:pp},duo:{hues:[`primary`,`secondary`],run:pp},mono:{hues:[`primary`],run:pp},alt:{hues:[`secondary`,`accent`],run:3}},hp=e=>e.variation.hues.flatMap(t=>e.shade.tones.map(e=>({hue:t,shade:e}))),gp=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},_p=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],vp=e=>typeof e==`string`&&_p.includes(e),yp={"van-der-corput":gp,"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},bp=e=>yp[e??`van-der-corput`];function xp(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 Sp=(e,t)=>Math.floor(e*t),Cp=(e,t)=>Math.round(e*t)%t;function wp(e){return e===void 0?0:e.distribution(e.index,e.count)}function Tp(e,t,n){let r=e[n(wp(t),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function Ep(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 Dp=(e,t)=>Sp(wp(t),e.hues.length);function Op(e,t){let{row:n,cell:r}=Ep(t);return kp(e,n,r)}function kp(e,t,n){let{hues:r,run:i}=e.variation,a=n===void 0?0:Math.floor(n.index/i),o=r[(Dp(e.variation,t)+a)%r.length];if(o===void 0)throw Error(`decorEntryFor: empty variation`);return{hue:o,shade:Tp(e.shade.tones,n,Cp)}}function Ap(e,t){let{row:n,cell:r}=Ep(t),i=r===void 0?[void 0]:Array.from({length:r.count},(e,t)=>({...r,index:t}));return[...new Map(i.map(t=>kp(e,n,t)).map(e=>[cp(e.hue,e.shade),e])).values()].sort((e,t)=>ap.indexOf(e.hue)-ap.indexOf(t.hue)||jp.indexOf(e.shade)-jp.indexOf(t.shade))}const jp=[...op,`muted`];function Mp(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 Np=(e,t)=>Mp(e,cp(t.hue,t.shade)),Pp=2.2,Fp=(e,t)=>t.map(t=>Np(e,t)),Ip=e=>t=>uc(t,e),Lp=Ip(B.TRUECOLOR);function Rp(e,t,n,r){return zp(e,`${t}|${n.map(e=>e.hex).join(`+`)}|${r}`,()=>Bp(e,t,n,r))}const zp=ip();function Bp(e,t,n,r){let i=n.map(Lp),a=Mp(e,t),o=new z(0,0,0),s=new z(255,255,255),c=(e,t)=>H.fromRgba(a).mixAxes(H.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=Ip(e),n=i.map(t);return e=>Math.min(1/0,...n.map(n=>Wo(t(e),n)))},p=f(B.TRUECOLOR),m=f(r),h=e=>lc(e,r,(e,t)=>i.every(n=>Wo(e,t(n))>=Pp)),g=e=>p(e)>=2.2&&h(e)!==void 0,_=(e,t)=>{let n=n=>Wo(Lp(n),e)-Wo(Lp(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)=>Uo(e)-Uo(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 Vp=4.5;function Hp(e,t,n){return Up(e,`${t.hex}|${n}`,()=>{let r=sc(t);return Wp(e,[`background`,`foreground`].map(t=>Mp(e,t)).reduce((e,t)=>Wo(r,t)<Wo(r,e)?t:e),t,n)})}const Up=ip();function Wp(e,t,n,r){return Gp(e,`${t.hex}|${n.hex}|${r}`,()=>cc(t,n,Vp,r))}const Gp=ip();function Kp(e,t,n){return t.depth===0?Fp(e,t.ground):qp(e,t,n)}const qp=(e,t,n)=>t.depth===0?[]:[im(e,{...t,depth:t.depth-1},n).plane],Jp=(e,{short:t},n)=>t===null?[]:[`theme "${e.name}": no open-trigger colour stands ${Pp}: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`],Yp=(e,t,n)=>t>=$p.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 ${$p.triggerPlane} that tells them apart; another style clears it`],Xp={base:.42,perDepth:.14,cap:.75},Zp={floor:.12,span:.8};function Qp(e,t){return ap[(ap.indexOf(e)+t)%ap.length]}const $p={triggerPlane:.1,nestedPlane:.035};function em(e,t,n){return tm(e,`${nm(t)}|${n}`,()=>{let r=Rp(e,Qp(t.hue,t.depth),Kp(e,t,n),n),{state:i}=r,a=cm(e,t,i,n),o=lc(im(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=Ip(n);return{state:i,plane:o,shortfalls:n===B.DEFAULT?[]:[...Jp(e,r,n),...Yp(e,rm(s(i),s(o)),n)]}})}const tm=ip(),nm=({hue:e,depth:t,ground:n})=>`${e}|${t}|${n.map(e=>cp(e.hue,e.shade)).join(`+`)}`,rm=(e,t)=>H.fromRgba(e).deltaE(H.fromRgba(t));function im(e,t,n){return am(e,`${nm(t)}|${n}`,()=>om(e,t,n))}const am=ip();function om(e,t,n){let{anchor:r}=Rp(e,Qp(t.hue,t.depth),Kp(e,t,n),n),i=Math.min(Xp.cap,Xp.base+Xp.perDepth*t.depth),a=(t,n)=>Cs(r,Mp(e,t),n),o=qp(e,t,n),s=e=>rm(Lp(r),Lp(e))>=$p.triggerPlane&&o.every(t=>rm(Lp(t),Lp(e))>=$p.nestedPlane),c=a(`background`,i);return{state:r,plane:[c,a(`foreground`,i),a(`background`,Xp.cap),a(`foreground`,Xp.cap),...sm.toSorted((e,t)=>Math.abs(e-i)-Math.abs(t-i)).flatMap(e=>[a(`background`,e),a(`foreground`,e)])].find(s)??c}}const sm=Array.from({length:12},(e,t)=>(t+1)/12);function cm(e,t,n,r){let{hue:i,depth:a,ground:o}=t,s=t=>im(e,{hue:i,depth:t,ground:o},r).state,c=t=>im(e,{hue:i,depth:t,ground:o},r).plane,l=c(a),u=(e,t)=>rm(Lp(l),Lp(t))>=e?e:0,d=Rp(e,Qp(i,a+1),Kp(e,{hue:i,depth:a+1,ground:o},r),r),f=Wo(Lp(l),Lp(d.anchor))>=2.2?Pp:0,p=(e,t)=>(n,r)=>rm(n,r(e))>=t;return[p(n,u($p.triggerPlane,s(a))),(e,t)=>Wo(e,t(d.state))>=f,...a>0?[p(em(e,{hue:i,depth:a-1,ground:o},r).plane,u($p.nestedPlane,c(a-1)))]:[]]}function lm(e,t,n,r){let i=em(e,t,r),a=im(e,t,r),o=e=>Cs(a.plane,a.state,e),s=Zp.floor+Zp.span*xp(n),c=Zp.floor+Zp.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=lc(o(s+(c-s)*e/12),r,l);if(t!==void 0)return t}return o(s)}const um=e=>({kind:`bar`,decor:e,address:[]}),dm=(e,t)=>({...e,address:[...e.address,t]}),fm=e=>({kind:`band`,band:e,address:[]});function pm(e,t,n){switch(t.kind){case`bar`:{let{decor:r,address:i}=t,a=Op(r,i),o=Np(e,a),s;return{tint:o,text:r.shade.text(e,a.hue,o,n),disclosure:{hue:`accent`,depth:0,get ground(){return s??=Ap(r,i)}}}}case`band`:{let{band:r,address:i}=t,a=lm(e,r,i,n);return{tint:a,text:Hp(e,a,n),disclosure:{...r,depth:r.depth+1}}}}}const mm=new Map([[`dark`,`textual-dark`],[`light`,`textual-light`]]);function hm(e){let t=typeof e==`string`?mm.get(e):void 0;return t===void 0?``:` — "${e}" was retired; write "${t}", the same palette`}const gm=`textual-dark`;function _m(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function vm(){return jc()}function ym(){return[`bar`,...vm()]}let bm;function xm(e){return bm??=new Set(ym()),bm.has(e)}function Sm(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return _m(e===void 0?null:a(e),t,a(n??r),r,a)}const Cm=[`style`,`palette`,`effect`];function wm(e){return e!==void 0&&e.includes(`{{`)}function Tm(e,t,n,r,i){let a=wm(n)?{kind:`expression`,source:n}:i(n??r.name);return _m(e===void 0?null:i(e),t,a,r,i)}function Em(e,t){return e.kind===`decided`?e:t(e.source)}const Dm=`none`;function Om(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function km(e,t){return Om(e,t)??Om(`none`,t)??{kind:`decided`,name:`none`,value:Vs}}function Am(e,t,n,r){return Tm(e,t,n,km(Dm,r),e=>Om(e,r))}const jm=`none`,Mm={style:Dm,palette:gm,effect:jm};function Nm(e,t,n){return`${e} rendered "${Mm[t]}": ${n}`}const Pm=Object.freeze([jm,...Object.keys(Bf.loops)]),Fm=Object.freeze([`bar`,...Pm]);function Im(e){let t=Pm.find(t=>t===e);return t===void 0?null:{kind:`decided`,name:e,value:t}}function Lm(e){return Im(e)??{kind:`decided`,name:`none`,value:`none`}}function Rm(e,t,n){return Tm(e,t,n,Lm(jm),Im)}const zm=Object.freeze(Object.keys(vd));function Bm(e){return zm.includes(e)}const Vm=[`powerline`,`capsule`,`plain`];function Hm(e){return Vm.includes(e)}function Um(e,t,n){return _m(e,t,n,`powerline`,e=>Bm(e)?e:null)}const Wm=[`truecolor`,`256`,`ansi`,`none`];function Gm(e){return rs(e)??B.DEFAULT}const Km=Object.keys(mp);function qm(e){return Km.includes(e)}function Jm(e,t,n){return _m(e,t,n,`accent`,e=>qm(e)?e:null)}const Ym=Object.keys(fp);function Xm(e){return Ym.includes(e)}function Zm(e,t,n){return _m(e,t,n,`middle`,e=>Xm(e)?e:null)}const Qm=`true`,$m=`false`,eh=[Qm,$m],th={min:0,max:16};function nh(e){return e===`true`?!0:e===`false`?!1:null}function rh(e,t){let n=Number(e);return Number.isInteger(n)&&String(n)===e&&n>=t.min&&n<=t.max?n:null}function ih(e){return rh(e,th)}function ah(e,t,n){return _m(e,t,n,!0,nh)}function oh(e,t,n){return _m(e,t,n,!0,nh)}function sh(e,t,n){return _m(e,t,n,!1,nh)}function ch(e,t,n){return _m(e,t,n,1,ih)}const lh={kind:`still`};function uh(e){return e.effect!==`none`||e.own.some(e=>e.effect!==`none`)||e.fades.length>0||e.leaves.length>0}const dh=Symbol(`bar`);function fh(e){return e.name!==jm}function ph(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 mh=Bc;function hh(e,t){let n=new ws(t,mh.foregroundColor,mh.ansiColors,mh.palette);return(t,r)=>e(t,{...r,theme:n})}function gh(e,t){return(n,r)=>jd(()=>e(n,r),...t)(n,r)}function _h(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 vh=4096;var yh=class{inForce=null;placements=new Map;made=new Map;drawn=null;frame={effect:jm,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:dh,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=Bf.transitions[e]({z:_h(`${this.key}@${n}`)*vh});return{name:e,since:t,transition:{effect:hh(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=_h(t.scope===dh?e:`${e}@${t.scope}`),l=a?i.effect:Bf.loops[t.name]({z:o*vh});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:jd(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(fh),r=te(t);if(n.length===0&&r.length===0)return lh;let a=`${this.key}#${e}`;return{kind:`moving`,wrap:e=>new Td(e,ph([...n.map(e=>{let t=C(a,e);return{t:e.t,effect:e.owners===void 0?t:gh(t,e.owners)}}),...r]),{t:i.t,key:a,theme:mh})}},drawn:()=>{this.inForce=r,this.placements=o,this.made=c,this.drawn=d===`off`?null:{source:n.source,placements:p},this.frame=g}}}},bh=class{sessions=new Map;constructor(e=256){this.maxSessions=e}of(e){let t=this.sessions.get(e)??new yh(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 xh(e,t){return xd(e,{...t,theme:np,onStyleError:e=>{throw e}})}const Sh=new Map;function Ch(e){let t=Sh.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}=vd.plain,a=new Vu({glyph:n(r.glyph),ascii:r.ascii},i);return Sh.set(e,a),a}function wh(e,t){return e===`plain`&&t!==void 0?Ch(t):vd[e]}const Th=new Map;function Eh(e){let t=JSON.stringify([e.endcaps,e.separator??null]),n=Th.get(t);if(n!==void 0)return n;let r=wh(e.endcaps,e.separator),i=e=>new G(`x`,{end:``,overflow:`ignore`,style:new U({bgcolor:e})}),a=e=>new G(xh(new mu(e,r),{colorSystem:null}).replace(/\n$/,``)).cellLength,o=a([i(`#101010`)]),s={chrome:o-1,seam:a([i(`#101010`),i(`#202020`)])-o-1};return Th.set(t,s),s}function Dh(e){return Eh(e).chrome}function Oh(e){return Eh(e).seam}const kh=/[\u{E000}-\u{F8FF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu;function Ah(e){return[...new Set(e.match(kh)??[])].join(``)}function jh(e){let t=wh(e.endcaps,e.separator),n=e=>new G(`x`,{end:``,style:new U({bgcolor:e})});return Ah(xh(new mu([n(`#101010`),n(`#202020`),n(`#202020`)],t),{colorSystem:null}))}function Mh(e,t,n=lh){if(e.length===0)return``;let r=wh(t.endcaps,t.separator),i=t.wrap&&Number.isFinite(t.width),a={colorSystem:t.colorCompatibility,...i?{width:t.width}:{}},o=i?new qf([...e],{joiner:r}):new mu([...e],r),s=xh(n.kind===`still`?o:n.wrap(o),a);if(!s.endsWith(`
|
|
54
|
-
`))throw Error(`renderStripCells: rich-js strip output did not end its last line`);return s.slice(0,-1)}function
|
|
55
|
-
`)}function
|
|
56
|
-
`);return e?`${l}\n${e}`:l}function
|
|
57
|
-
`))}function Wh(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new U({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: ${Yf(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(Yf(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`,Mh([m],r)}const Gh=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function Kh(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function qh(e,t){return r.readdirSync(t).filter(Gh).sort().flatMap(n=>{let i=l.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?qh(e,i):[[l.relative(e,i).split(l.sep).join(`/`),Kh(i,a)]]})}function Jh(e){let t=ie.createHash(`sha256`);for(let[n,r]of qh(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const Yh=e=>e.slice(0,7);function Xh(e){return l.dirname(l.dirname(e))}function Zh(){let e=Qh();if(e===null)throw Error("this bundle carries no source digest (build via `pnpm build`, which stamps it)");return{version:Dt,digest:e}}function Qh(){return`63e20909f95d35d165bf2aa05a086bf10bd35062293e6e1469131b4102cad9b0`}function $h(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 eg(e,t){try{let n=Xh(ne(e)),i=l.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=Jh(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:$h(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 tg=new Map;function ng(e){let t=ig(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 rg(e,t){return e===`bar`?t:ng(e)}function ig(e){let t=tg.get(e);if(t!==void 0)return t;let n=Mc(e);return n===null?null:(tg.set(e,n),n)}function ag(e,t){return og(e,`${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,()=>Wc(e,t))}const og=ip();function sg(e){let t=ig(e);return t===null?null:{kind:`decided`,name:e,value:t}}function cg(e,t,n){let r=sg(e);return r===null?(n(Nm(t,`palette`,`"${e}" names no installed theme${hm(e)}`)),ug()):r}function lg(e,t,n){return Tm(e,t,n,ug(),sg)}function ug(){return{kind:`decided`,name:gm,value:ng(gm)}}const dg=[`vertical`,`horizontal`],fg={vertical:`row`,horizontal:`cell`};function pg(e){return e.id??e.name}function mg(e){return[..._g(e)].flatMap(e=>e.kind===`segment`?[pg(e)]:[])}function hg(e,t){if(!t.has(e))return e;let n=2;for(;t.has(`${e}-${n}`);)n++;return`${e}-${n}`}function gg(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*_g(e){yield e;for(let t of xg(e))yield*_g(t)}const vg=(e,t)=>`${e}.children[${t}]`,yg=e=>`${e}.opens.body`;function*bg(e,t){if(yield[e,t],e.kind===`container`)for(let[n,r]of e.children.entries())yield*bg(r,vg(t,n));else e.opens!==void 0&&(yield*bg(e.opens.body,yg(t)))}function xg(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}const Sg=[`shade`,`variation`,`style`];function Cg(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const wg=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function Tg(e){return e.kind===`file`||e.kind===`shell`}const Eg=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`];function*Dg(e){for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&(yield[t,n]);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))r.kind===`state`&&(yield[`${t}.${e}`,r])}const Og=`theme`,kg=`effect`,Ag=[Og,kg];function jg(e){return{...e.settings,[Og]:{label:Og,domain:`theme`,default:e.palette??`bar`},[kg]:{label:kg,domain:Fm,default:`bar`}}}function Mg(e){let t=e?.domain;return typeof t==`object`&&`min`in t?t:void 0}function Ng(e,t){return Object.entries(e).flatMap(([n,r])=>{let i=Mg(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 Pg(e,t){let{domain:n}=e;return n===`bool`?typeof t==`boolean`:n===`theme`?typeof t==`string`&&xm(t):`min`in n?typeof t==`number`&&Number.isInteger(t)&&t>=n.min&&t<=n.max:typeof t==`string`&&n.includes(t)}function Fg(e){return String(e)}function Ig(e,t){let{domain:n}=e;if(typeof n==`object`&&`min`in n)return rh(t,n)??void 0;let r=n===`bool`?t===`true`?!0:t===`false`?!1:t:t;return Pg(e,r)?r:void 0}function Lg(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:Ig(n,o))??i}function Rg(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 zg=[`left`,`center`,`right`],Bg=[`right`,`left`,`middle`],Vg=/^[A-Za-z_][A-Za-z0-9_]*$/;function Hg(e){return`#${e+1}`}const Ug={rows:{}};function Wg(e){return`rows`in e}function Gg(e){return Object.fromEntries(e.map((e,t)=>[Hg(t),e]))}function Kg(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:Gg(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:Gg([n])}}function qg(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function Jg(e){return Wg(e)?qg(e):e}function*Yg(e,t){if(!Wg(e)){yield*bg(e,t);return}yield[qg(e),t];for(let[n,r]of Object.entries(e.rows))yield*bg(r,`${t}.rows.${n}`)}function Xg(e,t){return Wg(e)?{...t,...e,rows:{...t.rows,...e.rows}}:Kg(e)}function Zg(e){if(!Wg(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}const Qg=`default`,$g={};function e_(e){return[...new Set([Qg,...Object.keys(e)])]}function t_(e,t,n){return Sm(void 0,e,t,Qg,n)}function n_(e,t){let n={[Qg]:$g,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${Qg}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function r_(e,t){let n=n_(e.presets,t).root??Ug;return{node:qg(Xg(n,e.root)),path:Zg(n)?`presets.${t}.root`:`root`}}function i_(e,t){return{...e.globals,...n_(e.presets,t).globals}}const a_=new Map;function o_(e,t,n){a_.set(e,{permanent:!0,resolve:t,paletteOf:n})}o_(`themes`,()=>vm(),e=>ng(e));const s_=`placementThemes`;o_(s_,ym,(e,t)=>rg(e,t.palette)),o_(`endcaps`,()=>zm),o_(`variations`,()=>Km),o_(`shades`,()=>Ym),o_(`colorCompatibilities`,()=>Wm);function c_(e){return new Map([[`styles`,{members:Object.keys(e.styles),paletteOf:(t,n)=>ag(n.basePalette,e.styles[t])}],[`presets`,{members:e_(e.presets)}]])}function l_(e){return[...new Set([...a_.keys(),...e.keys()])]}function u_(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=a_.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(f_(e,t))}const d_=new Map([[`looks`,`styles`],[`progressions`,`variations`]]);function f_(e,t){let n=d_.get(e);return`unknown option domain "${e}"${n===void 0?``:` — it was renamed "${n}"; write from: "${n}"`} (have: ${l_(t).join(`, `)})`}const p_=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g;function*m_(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 h_=`[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*`,g_=RegExp(`^(?:(\\$)(?:\\.(${h_}))?|\\.(${h_})?)(?=[\\s)]|$)`);function __(e,t,n){let r=g_.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 v_=/^(\w+)\b\s*([\s\S]*)$/;function*y_(e,t){let n=[t];for(let r of m_(e)){let e=r.replace(/^-(?=\s)/,``).trim(),[,i=``,a=``]=v_.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:__(r[1],s,t);continue}yield{code:e,dot:o},i===`if`&&n.push(o),i===`with`&&n.push(__(a,o,t)),(i===`range`||i===`define`||i===`block`)&&n.push(null)}}const b_=/(?<![.$])\btemplate\s+$/;function*x_(e,t,n){let r=0;for(let i of[...e.matchAll(p_)]){let a=i.index+i[0].length;b_.test(e.slice(r,i.index))&&(yield{name:i[0].slice(1,-1),at:__(e.slice(a),t,n)}),r=a}}function*S_(e,t){let n=new Set;function*r(e,i,a,o){for(let{code:s,dot:c}of[...y_(e,i)]){yield{code:s,dot:c,root:i,via:a};for(let e of[...x_(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 C_=RegExp(`(?<![A-Za-z0-9_)$])(\\$?)\\.(${h_})`,`g`);function*w_({code:e,dot:t,root:n}){let r=e.replace(p_,``);for(let e of[...r.matchAll(C_)]){let r=e[1]===`$`?n:t;r!==null&&(yield`${r}${e[2]}`)}}function T_(e,t){let n=new Map;for(let r of S_(e,t))for(let e of w_(r))n.has(e)||n.set(e,r.via);return n}const E_=/(?<![.$])\b(action|picker|menu|carousel|swatches|swatch|themePreview)\s+$/,D_={action:1,picker:2,menu:1,carousel:2,swatch:1,swatches:2,themePreview:1};function*O_(e){let t=0,n=0,r=0,i=`action`;for(let a of[...e.matchAll(p_)]){let o=e.slice(t,a.index),s=E_.exec(o);if(s!==null)n=D_[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 k_(e,t){let n=new Map;for(let{code:r,via:i}of S_(e,t))for(let{name:e,site:t}of O_(r)){let r=`${e}\0${i??`\0`}`;n.has(r)||n.set(r,{name:e,site:t,via:i})}return[...n.values()]}function A_(e,t){return new Set([...j_(e,t)].filter(e=>Object.hasOwn(t,e)))}function j_(e,t){let n=new Set;for(let{code:r,dot:i,root:a}of S_(e,t))for(let{name:e}of x_(r,i,a))n.add(e);return n}function M_(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 N_(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),P_(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 P_(e){return e.kind===`dropped`||(e.kind===`shell`||e.kind===`file`)&&Cg(e.parse)===`json`}function F_(e){let t=l.basename(e),n=l.dirname(e);for(;;){let r=I_(n);if(r!==null)return{dir:r,name:t,leaf:n===l.dirname(e)};t=l.basename(n),n=l.dirname(n)}}function I_(e){try{return r.statSync(e).isDirectory()?r.realpathSync(e):null}catch{return null}}var L_=be((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()===zt}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 j.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=Bt,n=Bt){let r=new Ut(e);return t!==Bt&&(r.onBOL=new Set([t])),n!==Bt&&(r.onBUOL=new Set([n])),r}function _(e,t){return kt(e,t)}function v(e,t,n){return e===null||typeof e!=`object`&&typeof e!=`function`||et(e)?e:Array.isArray(e)?on.array(e,{name:n}):o(e)?on.object(e,void 0,{name:n}):u(e)?on.map(e,{name:n}):d(e)?on.set(e,{name:n}):typeof e!=`function`||Ue(e)||Ze(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:Ue(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 Ue(n)||(n=c(n)),(t=s.i)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n}:i==`method`?(Ue(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)||!Ze(e.h[t]))&&this.u(e,t,n,!1)===null?0:Ze(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 Ze(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 Ze(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,Pt({},this.i,{get:n.get,set:n.set}),r)}function E(e,t,n){function r(e){let n=Pt({},i.i,{get:t,context:e});return n.name||=`ObservableObject.${a.toString()}`,new vn(n)}let i=e,{name:a,addInitializer:o}=n,s;return o(function(){let e=St(this)[M],n=this,i=e.j.get(a);i instanceof vn&&i.derivation!==t&&e.j.delete(a),(e.O??=new Map).set(a,()=>r(n))}),function(){let e=this[M],n=e.j.get(a);if(n instanceof vn&&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=St(e)[M];return(n.V??=new Map).set(o,()=>new gn(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[M]??r(this,t.get.call(this)))._(o)},set(e){return(this[M]??r(this,e)).M(o,e)},init(e){return r(this,e),e}}}function de(e){return{t:qt,i:e,o:fe,u:pe}}function fe(e,t,n,r){var i,a,o;if(n.get)return un.o(e,t,n,r);if(n.set){let i=Ue(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?tn:on;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?un.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?tn:on).u(e,t,n,r))}function me(e,t){return Pt(function(n,r){if(r&&typeof r.kind==`string`)return t(e,n,r)},e)}function he(e){return e||Yt}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(),mn&&(hn.value=e,It(i,`name`,hn)),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{Se(a)}}function xe(e,t){let n=P.trackingDerivation,r=!t||!n;O();let i=P.allowStateChanges;r&&Oe();let a={R:r,k:n,C:i,I:P.allowStateReads,P:!1,T:0,B:pn++,D:fn};return fn=a.B,a}function Se(e){fn!==e.B&&t(30),fn=e.D,e.N!==void 0&&(P.suppressReactionErrors=!0),Pe(),e.R&&ke(e.k),P.suppressReactionErrors=!1}function D(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(yn(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 O(){P.inBatch++}function Pe(){--P.inBatch===0&&(Re(),!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 vn&&n.G())}P.pendingUnobservations=[]}finally{P.isRunningUnobservations=!1}}())}function Fe(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.L)==null||t.forEach(Fe))}function Ie(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 Le(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 Re(){P.inBatch>0||P.isRunningReactions||Dn(ze)}function ze(){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 Be(e){return me(e,C)}function Ve(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)?Be(b(e?An:kn,{name:t,autoAction:e})):void 0}}function He(e){return be(0,!1,e,this,void 0)}function Ue(e){return r(e)&&!0===e.isMobxAction}function We(e,t=Rt){function n(){e(a)}var r;let i=t?.name??`Autorun`,a;if(t.scheduler||t.delay){let e=Ge(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 Ge(e){return e.scheduler?e.scheduler:e.delay?t=>setTimeout(t,e.delay):zn}function Ke(e,t,n,i){let a=typeof i==`function`?Tt(t,n):Tt(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 qe(e,t,n,r){let i=Ht(t);return Ot(()=>{let t=St(e,r)[M];Vt(i).forEach(e=>{t.u(e,i[e],!n||!(e in n)||n[e])})}),e}function Je(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(Je)),t}function Ye(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),Ye)),t}function Xe(e){r(e.cancel)&&e.cancel()}function Ze(e){return!0===e?.isMobXFlow}function Qe(e,t){var n;if(t===void 0)return yn(e);if(!1===wt(e))return!1;let r=e[M];return(n=r.O)!=null&&n.has(t)?!0:r.j.has(t)?yn(Tt(e,t)):!1}function $e(e,t){if(!e)return!1;if(t!==void 0){if(wt(e)){var n,r;let i=e[M];return i.j.has(t)||!((n=i.O)==null||!n.has(t))||!((r=i.V)==null||!r.has(t))}return!1}return wt(e)||!!e[M]||Wt(e)||On(e)||yn(e)}function et(e){return $e(e)}function tt(e){return wt(e)?e[M].nt():rr(e)||or(e)?Array.from(e.keys()):yt(e)?e.map((e,t)=>t):void t(5)}function nt(e,n){return wt(e)?e[M].et(n):rr(e)||or(e)?e.has(n):yt(e)?n>=0&&n<e.length:void t(10)}function rt(e){if(wt(e))return e[M].it();t(38)}function it(e,t,n){if(yn(e)){let r,i=!0;return We(()=>{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}),pt(e,t)}function at(e,t,n){return e.set(t,n),n}function ot(e,t){if(typeof e!=`object`||!e||e instanceof Date||!et(e))return e;if(_n(e)||yn(e))return ot(e.get(),t);if(t.has(e))return t.get(e);if(yt(e)){let n=at(t,e,Array(e.length));return e.forEach((e,r)=>{n[r]=ot(e,t)}),n}if(or(e)){let n=at(t,e,new Set);return e.forEach(e=>{n.add(ot(e,t))}),n}if(rr(e)){let n=at(t,e,new Map);return e.forEach((e,r)=>{n.set(r,ot(e,t))}),n}{let n=at(t,e,{});return rt(e).forEach(r=>{j.propertyIsEnumerable.call(e,r)&&(n[r]=ot(e[r],t))}),n}}function st(e,t){O();try{return e.apply(t)}finally{Pe()}}function ct(e,t,n){let r;if(typeof n.timeout==`number`){let e=Error(`WHEN_TIMEOUT`);r=setTimeout(()=>{if(!a[M].isDisposed){if(a(),!n.onError)throw e;n.onError(e)}},n.timeout)}n.name=`When`;let i=ye(`When-effect`,t);var a=We(t=>{D(!1,e)&&(t.dispose(),r&&clearTimeout(r),i())},n);return a}function lt(e){return e[M]}function ut(e){return e.st!==void 0&&e.st.length>0}function dt(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 k(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 ft(e){return e.ot!==void 0&&e.ot.length>0}function pt(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 mt(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 ht(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!==j;){let t=Ft(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 A(e,t){typeof Array.prototype[e]==`function`&&(Qn[e]=t(e))}function gt(e){return function(){let t=this[M];t.ct.reportObserved();let n=t.ht(t.j);return n[e].apply(n,arguments)}}function _t(e){return function(t,n){let r=this[M];return r.ct.reportObserved(),r.ht(r.j)[e]((e,r)=>t.call(n,e,r,this))}}function vt(e){return function(){let t=this[M];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 yt(e){return a(e)&&$n(e[M])}function bt(e){return e[Symbol.toStringTag]=`MapIterator`,Mt(e)}function xt(e){return e[Symbol.toStringTag]=`SetIterator`,Mt(e)}function St(e,t){if(p(e,M))return e;let n=t?.name??`ObservableObject`;return c(e,M,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 N[r]??(N[r]=de({deep:t,autoBind:n}))}(e):void 0}(t))),e}function Ct(e){return sr[e]||(sr[e]={get(){return this[M]._(e)},set(t){return this[M].M(e,t)}})}function wt(e){return!!a(e)&&ur(e[M])}function Tt(e,n){if(typeof e==`object`&&e){if(yt(e))return n!==void 0&&t(23),e[M].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,Dt(e)),r}if(wt(e)){if(!n)return t(26);let r=e[M],i=r.j.get(n)??r.vt(n)??r.bt(n);return i||t(27,n,Dt(e)),i}if(Wt(e)||yn(e)||On(e))return e}else if(r(e)&&On(e[M]))return e[M];t(28)}function Et(e,n){return e||t(29),n===void 0?Wt(e)||yn(e)||On(e)||rr(e)||or(e)?e:e[M]?e[M]:void t(24,e):Et(Tt(e,n))}function Dt(e,t){let n;if(t!==void 0)n=Tt(e,t);else{if(Ue(e))return e.name;n=wt(e)||rr(e)||or(e)?Et(e):Tt(e)}return n.tt}function Ot(e){let t=Oe();O();try{return e()}finally{Pe(),ke(t)}}function kt(e,t,n=-1){return At(e,t,n)}function At(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=jt(e),t=jt(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(!At(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)||!At(e[o],t[o],n-1,i,a))return!1}}return i.pop(),a.pop(),!0}function jt(e){return yt(e)?e.slice():u(e)||rr(e)||d(e)||or(e)?Array.from(e.entries()):e}function Mt(e){return e[Symbol.iterator]=Nt,Pt(Object.create(fr),e)}function Nt(){return this}Object.defineProperty(e,`__esModule`,{value:!0});let Pt=Object.assign,Ft=Object.getOwnPropertyDescriptor,It=Object.defineProperty,j=Object.prototype,Lt=[];Object.freeze(Lt);let Rt={};Object.freeze(Rt);let zt=Object.toString(),Bt=()=>{},Vt=Reflect.ownKeys,Ht=Object.getOwnPropertyDescriptors,M=Symbol(`mobx administration`);var Ut=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 Ie(this)}reportChanged(){O(),Le(this),Pe()}toString(){return this.tt}};let Wt=l(`Atom`,Ut),Gt=Object.is,Kt={t:`override`,o:function(){return 0},u:function(){t(44,this.t)}},qt=`true`,Jt=de(),N=[Jt],Yt={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Yt);let Xt=se(`observable`),Zt=se(`observable.ref`,{A:y}),Qt=se(`observable.shallow`,{A:function(e,t,n){return e==null||wt(e)||yt(e)||rr(e)||or(e)?e:Array.isArray(e)?on.array(e,{name:n,deep:!1}):o(e)?on.object(e,void 0,{name:n,deep:!1}):u(e)?on.map(e,{name:n,deep:!1}):d(e)?on.set(e,{name:n,deep:!1}):void 0}}),$t=se(`observable.struct`,{A:function(e,t){return kt(e,t)?t:e}}),en={box(e,t){let n=he(t);return new gn(e,_e(n),n.name,!0,n.equals)},array(e,t){let n=he(t);return function(e,t,n=`ObservableArray`,r=!1){return Ot(()=>{let i=new Zn(n,t,r);It(i.j,M,{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)=>Ot(()=>qe(function(e,t){var n;return(n=(e=St(e,t))[M]).v??(n.v=new Proxy(e,Kn))}({},n),e,t))},tn=ge(Zt),nn=ge(Qt),rn=ge(Xt),an=ge($t);var on=Pt(function(e,t,n){return t&&typeof t.kind==`string`?ue(Xt,e,t):et(e)?e:o(e)?on.object(e,t,n):Array.isArray(e)?on.array(e,t):u(e)?on.map(e,t):d(e)?on.set(e,t):typeof e==`object`&&e?e:on.box(e,t)},Xt,en);let sn=`computed`,cn=w(sn),ln=ve(w(`computed.struct`,{equals:_})),un=function(e,t){if(t&&typeof t.kind==`string`)return E(cn,e,t);if(o(e))return ve(w(sn,e));let n=o(t)?t:{};return n.get=e,n.name||=e.name||``,new vn(n)};var dn;Pt(un,cn);let fn=0,pn=1,mn=(dn=Ft(()=>{},`name`)?.configurable)!=null&&dn,hn={value:`action`,configurable:!0,writable:!1,enumerable:!1};var gn=class extends Ut{constructor(e,t,n=`ObservableValue`,r=!0,i=Gt){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(ut(this)){let t=k(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(),ft(this)&&mt(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 _n=l(`ObservableValue`,gn);var vn=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||Gt,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(Ie(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(Fe)}else we(this)&&(this.Nt(),O(),this.rt=this.Rt(!1),Pe());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 yn=l(`ComputedValue`,vn);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),Re())}X(){if(!this.isDisposed){O(),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,Pe()}}track(e){if(this.isDisposed)return;O(),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),Pe()}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||(O(),Ee(this),Pe()))}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[M]=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=Ve(!1);Pt(Fn,jn);let In=Ve(!0);Pt(In,Nn);let Ln=Be(Mn),Rn=Be(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=Pt(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&&Xe(o);let e=t.return(void 0),n=Promise.resolve(e.value);n.then(Bt,Bt),Xe(n),a(new Vn)}catch(e){a(e)}}),s};return a.isMobXFlow=!0,a},Hn),Gn=me(Un,ie),Kn={has:(e,t)=>lt(e).et(t),get:(e,t)=>lt(e).Tt(t),set(e,t,n){var r;return!!i(t)&&((r=lt(e).Bt(t,n,!0))==null||r)},deleteProperty(e,t){var n;return!!i(t)&&((n=lt(e).Dt(t,!0))==null||n)},defineProperty(e,t,n){var r;return(r=lt(e).l(t,n))==null||r},ownKeys:e=>lt(e).it(),preventExtensions(e){t(13)}},qn=Symbol(`mobx-keys`),Jn=`splice`,Yn=`update`,Xn={get(e,t){let n=e[M];return t===M?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[M];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 Ut(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=Lt),ut(this)){let r=k(this,{object:this.v,type:Jn,index:e,removedCount:t,added:n});if(!r)return Lt;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=ft(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&&mt(this,i)}Ft(e,t,n){let r=ft(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&&mt(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(ut(this)){let n=k(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[M];return t.wt(0,t.j.length,e)},toJSON(){return this.slice()},splice(e,t,...n){let r=this[M];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[M].wt(e,t,n)},push(...e){let t=this[M];return t.wt(t.j.length,0,e),t.j.length},pop(){return this.splice(Math.max(this[M].j.length-1,0),1)[0]},shift(){return this.splice(0,1)[0]},unshift(...e){let t=this[M];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[M],n=t.ht(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};A(`at`,gt),A(`concat`,gt),A(`flat`,gt),A(`includes`,gt),A(`indexOf`,gt),A(`join`,gt),A(`lastIndexOf`,gt),A(`slice`,gt),A(`toString`,gt),A(`toLocaleString`,gt),A(`toSorted`,gt),A(`toSpliced`,gt),A(`with`,gt),A(`every`,_t),A(`filter`,_t),A(`find`,_t),A(`findIndex`,_t),A(`findLast`,_t),A(`findLastIndex`,_t),A(`flatMap`,_t),A(`forEach`,_t),A(`map`,_t),A(`some`,_t),A(`toReversed`,_t),A(`reduce`,vt),A(`reduceRight`,vt);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[M]=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,Ot(()=>{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 gn(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(ut(this)){let r=k(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(ut(this)&&!k(this,{type:tr,object:this,name:e}))return!1;if(this.et(e)){let t=ft(this),n=t?{observableKind:`map`,debugObjectName:this.tt,type:tr,object:this,oldValue:this.ft.get(e).rt,name:e}:null;return st(()=>{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&&mt(this,n),!0}return!1}Gt(e,t){let n=this.ft.get(e);if((t=n.jt(t))!==P.UNCHANGED){let r=ft(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:Yn,object:this,oldValue:n.rt,name:e,newValue:t}:null;n.Ot(t),r&&mt(this,i)}}Jt(e,t){st(()=>{var n;let r=new gn(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=ft(this);n&&mt(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 bt({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 bt({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)),st(()=>{o(e)?function(e){let t=Object.keys(e),n=Object.getOwnPropertySymbols(e);return n.length?[...t,...n.filter(t=>j.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(){st(()=>{De(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return st(()=>{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[M]=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),Ot(()=>{this.ct=g(this.tt),e&&this.replace(e)})}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}clear(){st(()=>{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(ut(this)){let t=k(this,{type:`add`,object:this,newValue:e});if(!t)return this;e=t.newValue}if(!this.has(e)){st(()=>{e=this.A(e,void 0),this.ft.add(e),this.ct.reportChanged()});let t=ft(this);t&&mt(this,t?{observableKind:`set`,debugObjectName:this.tt,type:`add`,object:this,newValue:e}:null)}return this}delete(e){if(ut(this)&&!k(this,{type:tr,object:this,oldValue:e}))return!1;if(this.has(e)){let t=ft(this),n=t?{observableKind:`set`,debugObjectName:this.tt,type:tr,object:this,oldValue:e}:null;return st(()=>{this.ct.reportChanged(),this.ft.delete(e)}),t&&mt(this,n),!0}return!1}has(e){return this.ct.reportObserved(),this.ft.has(this.Wt(e))}entries(){let e=this.values();return xt({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 xt({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)?st(()=>{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=Jt){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 Ut(`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 vn)return n.set(t),!0;if(ut(this)){let n=k(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=ft(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&&mt(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 gn(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{O();let r=this.Dt(e);if(!r)return r;if(ut(this)){let n=k(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=Pt({},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{Pe()}return!0}S(e,t,n,r=!1){try{O();let i=this.Dt(e);if(!i)return i;if(ut(this)){let n=k(this,{object:this.v||this.h,name:e,type:`add`,newValue:t});if(!n)return null;t=n.newValue}let a=Ct(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 gn(t,n,`ObservableObject.key`,!1);this.j.set(e,s),this.Yt(e,s.rt)}finally{Pe()}return!0}m(e,t,n=!1){try{O();let r=this.Dt(e);if(!r)return r;if(ut(this)&&!k(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=Ct(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 vn(t)),this.Yt(e,void 0)}finally{Pe()}return!0}Dt(e,t=!1){if(!p(this.h,e))return!0;if(ut(this)&&!k(this,{object:this.v||this.h,name:e,type:cr}))return null;try{var n;O();let r=ft(this),i=this.j.get(e),a;if(i||!r||(a=Ft(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 gn&&(a=i.rt),Le(i)),this.lt.reportChanged(),(n=this.Qt)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&mt(this,{type:cr,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{Pe()}return!0}Yt(e,t){var n;let r=ft(this);r&&r&&mt(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(),Vt(this.h)}nt(){return this.lt.reportObserved(),Object.keys(this.h)}};let ur=l(`ObservableObjectAdministration`,lr),dr=j.toString,fr=globalThis.Iterator?.prototype||{};e.$mobx=M,e.FlowCancellationError=Vn,e.ObservableMap=nr,e.ObservableSet=ar,e.Reaction=Tn,e._allowStateChanges=D,e._allowStateChangesInsideComputed=He,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=Se,e._getAdministration=Et,e._getGlobalState=function(){return P},e._interceptReads=function(e,t,n){let r;return rr(e)||yt(e)||_n(e)?r=Et(e):wt(e)&&(r=Et(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=We,e.compareDefault=Gt,e.compareIdentity=function(e,t){return e===t},e.compareShallow=function(e,t){return kt(e,t,1)},e.compareStructural=_,e.computed=un,e.computedStruct=ln,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(wt(e))return e[M].l(n,r);t(39)},e.entries=function(e){return wt(e)?tt(e).map(t=>[t,e[t]]):rr(e)?tt(e).map(t=>[t,e.get(t)]):or(e)?Array.from(e.entries()):yt(e)?e.map((e,t)=>[t,e]):void t(7)},e.extendObservable=qe,e.flow=Wn,e.flowBound=Gn,e.flowResult=function(e){return e},e.get=function(e,n){if(nt(e,n))return wt(e)?e[M].Tt(n):rr(e)?e.get(n):yt(e)?e[n]:void t(11)},e.getAtom=Tt,e.getDebugName=Dt,e.getDependencyTree=function(e,t){return Je(Tt(e,t))},e.getObserverTree=function(e,t){return Ye(Tt(e,t))},e.has=nt,e.intercept=function(e,t,n){return r(n)?function(e,t,n){return dt(Et(e,t),n)}(e,t,n):function(e,t){return dt(Et(e),t)}(e,t)},e.isAction=Ue,e.isBoxedObservable=_n,e.isComputed=function(e){return Qe(e)},e.isComputedProp=function(e,t){return Qe(e,t)},e.isFlow=Ze,e.isFlowCancellationError=function(e){return e instanceof Vn},e.isObservable=et,e.isObservableArray=yt,e.isObservableMap=rr,e.isObservableObject=wt,e.isObservableProp=function(e,t){return $e(e,t)},e.isObservableSet=or,e.keys=tt,e.makeAutoObservable=function(e,t,n){return o(e)?qe(e,e,t,n):(Ot(()=>{let r=St(e,n)[M];if(!e[qn]){let t=Object.getPrototypeOf(e),n=new Set([...Vt(e),...Vt(t)]);n.delete(`constructor`),n.delete(M),c(t,qn,n)}e[qn].forEach(e=>ht(r,e,!t||!(e in t)||t[e]))}),e)},e.makeObservable=function(e,t,n){return Ot(()=>{let r=St(e,n)[M];Vt(t).forEach(e=>ht(r,e,t[e]))}),e},e.observable=on,e.observableDeep=rn,e.observableRef=tn,e.observableShallow=nn,e.observableStruct=an,e.observe=function(e,t,n,i){return r(n)?function(e,t,n,r){return it(Et(e,t),n,r)}(e,t,n,i):function(e,t,n){let r=Et(e);if(yt(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)&&!wt(e))return it(r,t,n);return pt(r,t)}(e,t,n)},e.onBecomeObserved=function(e,t,n){return Ke(`onBO`,e,t,n)},e.onBecomeUnobserved=function(e,t,n){return Ke(`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=Kt,e.ownKeys=rt,e.reaction=function(e,t,n=Rt){function r(){if(p=!1,h.isDisposed)return;let t=!1,r=d;h.track(()=>{let n=D(!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=Ge(n),d,f=!0,p=!1,m=n.equals||Gt,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){wt(e)?e[M].Dt(n):rr(e)||or(e)?e.delete(n):yt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=He,e.set=function e(n,r,i){if(arguments.length===2&&!or(n)){O();let t=r;try{for(let r in t)e(n,r,t[r])}finally{Pe()}return}wt(n)?n[M].Bt(r,i):rr(n)?n.set(r,i):or(n)?n.add(r):yt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(42,r),O(),r>=n.length&&(n.length=r+1),n[r]=i,Pe()):t(8)},e.spy=function(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}},e.toJS=function(e){return ot(e,new Map)},e.transaction=st,e.untracked=De,e.values=function(e){return wt(e)?tt(e).map(t=>e[t]):rr(e)?tt(e).map(t=>e.get(t)):or(e)?Array.from(e.values()):yt(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 Pt(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:()=>null});let r,i,a=new Promise((n,a)=>{var o;let s=ct(e,n,Pt({},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):ct(e,t,n||{})}})),R_=be((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++N.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 cn(this)}reportChanged(){rn(),ln(this),an()}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)?k.array(e,{name:n}):g(e)?k.object(e,void 0,{name:n}):x(e)?k.map(e,{name:n}):C(e)?k.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)||gi(e)||vi(e))return e;if(Array.isArray(e))return k.array(e,{name:r,deep:!1});if(g(e))return k.object(e,void 0,{name:r,deep:!1});if(x(e))return k.map(e,{name:r,deep:!1});if(C(e))return k.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_:Se};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 Se(e,t,r,i){n(44,this.annotationType_)}function D(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=>bt(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=N.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:bt(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=N.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 O(e,t){return{annotationType_:e,options_:t,make_:Pe,extend_:Fe}}function Pe(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Fe(e,t,n,i){return Le(e,this,t,n),e.defineComputedProperty_(t,r({},this.options_,{get:n.get,set:n.set}),i)}function Ie(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 kt(o)}return o(function(){let e=Ci(this)[E],n=this,r=e.values_.get(a);r instanceof kt&&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 kt&&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 Le(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 Re(e,t){return{annotationType_:e,options_:t,make_:ze,extend_:Be}}function ze(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Be(e,t,n,r){return He(e,this,t,n),e.defineObservableProperty_(t,n.value,this.options_?.enhancer_??me,r)}function Ve(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 Dt(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 He(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 Ue=We();function We(e){return{annotationType_:`true`,options_:e,make_:qe,extend_:Je}}let Ge=[Ue];function Ke(e){let t=e.deep!==!1,n=!!e.autoBind,r=!t|(n?2:0);return Ge[r]??(Ge[r]=We({deep:t,autoBind:n}))}function qe(e,t,n,r){var i;if(n.get)return A.make_(e,t,n,r);if(n.set){let i=Rn(n.set)?n.set:bt(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:N.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?ct:k;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 Je(e,t,n,r){var i;return n.get?A.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:N.safeDescriptors?e.isPlainObject_:!0,set:bt(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?ct:k).extend_(e,t,n,r))}function Ye(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 Xe={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Xe);function Ze(e){return e||Xe}let Qe=Re(`observable`),$e=Re(`observable.ref`,{enhancer_:ge}),et=Re(`observable.shallow`,{enhancer_:he}),tt=Re(`observable.struct`,{enhancer_:_e});function nt(e){return Ye(e,Ve)}function rt(e){return e.deep===!0?me:e.deep===!1?ge:at(e.defaultDecorator)}function it(e){return e?e.defaultDecorator??Ke(e):void 0}function at(e){return e?e.options_?.enhancer_??me:me}function ot(e,t,n){return t&&typeof t.kind==`string`?Ve(Qe,e,t):br(e)?e:g(e)?k.object(e,t,n):Array.isArray(e)?k.array(e,t):x(e)?k.map(e,t):C(e)?k.set(e,t):typeof e==`object`&&e?e:k.box(e,t)}let st={box(e,t){let n=Ze(t);return new Dt(e,rt(n),n.name,!0,n.equals)},array(e,t){let n=Ze(t);return ai(e,rt(n),n.name)},map(e,t){let n=Ze(t);return new hi(e,rt(n),n.name)},set(e,t){let n=Ze(t);return new L(e,rt(n),n.name)},object(e,t,n){return Mi(()=>Yn(Wr({},n),e,t))}},ct=nt($e),lt=nt(et),ut=nt(Qe),dt=nt(tt);var k=r(ot,Qe,st);let ft=`computed`;function pt(e){return Ye(e,Ie)}let mt=O(ft),ht=pt(O(`computed.struct`,{equals:de})),A=function(e,t){if(t&&typeof t.kind==`string`)return Ie(mt,e,t);if(g(e))return pt(O(ft,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 kt(r)};r(A,mt);let gt=0,_t=1,vt=i(()=>{},`name`)?.configurable??!1,yt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function bt(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 xt(e,r,t,i||this,arguments)}return o.isMobxAction=!0,o.toString=()=>t.toString(),vt&&(yt.value=e,a(o,`name`,yt)),o}function xt(e,t,n,r,i){let a=St(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Ct(a)}}function St(e,t,n,r){let i=yn()&&!!e,a=0;i&&(a=Date.now(),xn({type:P,name:e,object:n,arguments:r?Array.from(r):s}));let o=N.trackingDerivation,c=!t||!o;rn();let l=N.allowStateChanges;c&&(Vt(),l=Tt(!0));let u=N.allowStateReads;M(!0);let d={runAsAction_:c,prevDerivation_:o,prevAllowStateChanges_:l,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:_t++,parentActionId_:gt};return gt=d.actionId_,d}function Ct(e){gt!==e.actionId_&&n(30),gt=e.parentActionId_,e.error_!==void 0&&(N.suppressReactionErrors=!0),Et(e.prevAllowStateChanges_),Ut(e.prevAllowStateReads_),an(),e.runAsAction_&&Ht(e.prevDerivation_),e.notifySpy_&&Cn({time:Date.now()-e.startTime_}),N.suppressReactionErrors=!1}function wt(e,t){let n=Tt(e);try{return t()}finally{Et(n)}}function Tt(e){let t=N.allowStateChanges;return N.allowStateChanges=e,t}function Et(e){N.allowStateChanges=e}var Dt=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&&yn()&&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!==N.UNCHANGED){let n=yn();n&&xn({type:ni,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Cn()}}prepareNewValue_(e){if(Ft(this),Gr(this)){let t=qr(this,{object:this,type:ni,newValue:e});if(!t)return N.UNCHANGED;e=t.newValue}return e=this.enhancer_(e,this.value_,this.name_),this.equals_(this.value_,e)?N.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 Ot=b(`ObservableValue`,Dt);var kt=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 jt(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_=bt(this.name_+`-setter`,e.set)),this.equals_=e.equals||pe,this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}onBecomeStale_(){dn(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),N.inBatch===0&&(!this.observers_||this.observers_.size===0)&&!this.keepAlive_)Nt(this)&&(this.warnAboutUntrackedRead_(),rn(),this.value_=this.computeValue_(!1),an());else{let e=this.isBeingObserved;if(cn(this),Nt(this)){let e=N.trackingContext;!e&&(this.keepAlive_||this.isBeingObserved)&&(N.trackingContext=this),this.trackAndCompute()&&un(this),N.trackingContext=e}else !e&&this.isBeingObserved&&this.observing_.forEach(sn)}let e=this.value_;if(Mt(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||Mt(e)||Mt(n)||!this.equals_(e,n);return r&&(this.value_=n,yn()&&bn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r}computeValue_(e){this.isComputing=!0;let t=Tt(!1),n;if(e)n=j(this,this.derivation,this.scope_);else if(N.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new jt(e)}return Et(t),this.isComputing=!1,n}suspend_(){this.keepAlive_||(zt(this),this.value_=void 0)}warnAboutUntrackedRead_(){(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:N.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 At=b(`ComputedValue`,kt);var jt=class{constructor(e){this.cause=void 0,this.cause=e}};function Mt(e){return e instanceof jt}function Nt(e){switch(e.dependenciesState_){case 0:return!1;case-1:case 2:return!0;case 1:{let t=M(!0),n=Vt(),r=e.observing_,i=r.length;for(let a=0;a<i;a++){let i=r[a];if(At(i)){if(N.disableErrorBoundaries)i.get();else try{i.get()}catch{return Ht(n),Ut(t),!0}if(e.dependenciesState_===2)return Ht(n),Ut(t),!0}}return Wt(e),Ht(n),Ut(t),!1}}}function Pt(){return N.trackingDerivation!==null}function Ft(e){let t=!!e.observers_&&e.observers_.size>0;!N.allowStateChanges&&(t||N.enforceActions===`always`)&&console.warn(`[MobX] `+(N.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){!N.allowStateReads&&N.observableRequiresReaction&&console.warn(`[mobx] Observable '${e.name_}' being read outside a reactive context.`)}function j(e,t,n){let r=M(!0);Wt(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++N.runId;let i=N.trackingDerivation;N.trackingDerivation=e,N.inBatch++;let a;if(N.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new jt(e)}return N.inBatch--,N.trackingDerivation=i,Rt(e),Lt(e),Ut(r),a}function Lt(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:N.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '${e.name_}' is created/updated without reading any observable value.`)}function Rt(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&&tn(n,e),n.diffValue=0}for(;i--;){let t=n[i];t.diffValue===1&&(t.diffValue=0,en(t,e))}r!==0&&(e.dependenciesState_=r,e.onBecomeStale_())}function zt(e){let t=e.observing_;e.observing_=[];let n=t.length;for(;n--;)tn(t[n],e);e.dependenciesState_=-1}function Bt(e){let t=Vt();try{return e()}finally{Ht(t)}}function Vt(){let e=N.trackingDerivation;return N.trackingDerivation=null,e}function Ht(e){N.trackingDerivation=e}function M(e){let t=N.allowStateReads;return N.allowStateReads=e,t}function Ut(e){N.allowStateReads=e}function Wt(e){if(e.dependenciesState_===0)return;e.dependenciesState_=0;let t=e.observing_,n=t.length;for(;n--;)t[n].lowestObserverState_=0}let Gt=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`];var Kt=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 qt=!0,Jt=!1,N=function(){let e=globalThis;return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(qt=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==7&&(qt=!1),qt?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Kt):(setTimeout(()=>{Jt||n(35)},1),new Kt)}();function Yt(){if((N.pendingReactions.length||N.inBatch||N.isRunningReactions)&&n(36),Jt=!0,qt){let e=globalThis;--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),N=new Kt}}function Xt(){return N}function Zt(){let e=new Kt;for(let t in e)Gt.indexOf(t)===-1&&(N[t]=e[t]);N.allowStateChanges=!N.enforceActions}function Qt(e){return!!e.observers_&&e.observers_.size>0}function $t(e){return e.observers_??new Set}function en(e,t){(e.observers_??=new Set).add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function tn(e,t){let n=e.observers_;n&&(n.delete(t),n.size===0&&nn(e))}function nn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,N.pendingUnobservations.push(e))}function rn(){N.inBatch++}function an(){--N.inBatch===0&&(hn(),!N.isRunningUnobservations&&N.pendingUnobservations.length>0&&on())}function on(){N.isRunningUnobservations=!0;try{let e=N.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 kt&&n.suspend_())}N.pendingUnobservations=[]}finally{N.isRunningUnobservations=!1}}function sn(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.observing_)==null||t.forEach(sn))}function cn(e){It(e);let t=N.trackingDerivation;return t===null?((!e.observers_||e.observers_.size===0)&&N.inBatch>0&&nn(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&N.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function ln(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 un(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 dn(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 fn=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,N.pendingReactions.push(this),hn())}runReaction_(){if(!this.isDisposed){rn(),this.isScheduled=!1;let e=N.trackingContext;if(N.trackingContext=this,Nt(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&yn()&&bn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}N.trackingContext=e,an()}}track(e){if(this.isDisposed)return;rn();let t=yn(),n;t&&(n=Date.now(),xn({name:this.name_,type:`reaction`})),this.isRunning=!0;let r=N.trackingContext;N.trackingContext=this;let i=j(this,e,void 0);N.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&zt(this),Mt(i)&&this.reportExceptionInDerivation_(i.cause),t&&Cn({time:Date.now()-n}),an()}reportExceptionInDerivation_(e){if(this.errorHandler_){this.errorHandler_(e,this);return}if(N.disableErrorBoundaries)throw e;let t=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '${this}'`;N.suppressReactionErrors?console.warn(`[mobx] (error in reaction '${this.name_}' suppressed, fix error of causing action below)`):console.error(t,e),yn()&&bn({type:`error`,name:this.name_,message:t,error:``+e}),N.globalReactionErrorHandlers.forEach(t=>t(e,this))}dispose(){if(!this.isDisposed){var e;this.isDisposed=!0,(e=this.removeAbortListener_)==null||e.call(this),this.isRunning||(rn(),zt(this),an())}}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 pn(e){return N.globalReactionErrorHandlers.push(e),()=>{let t=N.globalReactionErrorHandlers.indexOf(e);t>=0&&N.globalReactionErrorHandlers.splice(t,1)}}let mn=e=>e();function hn(){N.inBatch>0||N.isRunningReactions||mn(gn)}function gn(){N.isRunningReactions=!0;let e=N.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_()}N.isRunningReactions=!1}let _n=b(`Reaction`,fn);function vn(e){let t=mn;mn=n=>e(()=>t(n))}function yn(){return!!N.spyListeners.length}function bn(e){if(!N.spyListeners.length)return;let t=N.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 N.spyListeners.push(e),d(()=>{N.spyListeners=N.spyListeners.filter(t=>t!==e)})}let P=`action`,Tn=`autoAction`,En=`<unnamed action>`,Dn=D(P),On=D(`action.bound`,{bound:!0}),kn=D(Tn,{autoAction:!0}),An=D(`autoAction.bound`,{autoAction:!0,bound:!0});function jn(e){return Ye(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 bt(t.name||En,t,e);if(p(r))return bt(t,r,e);if(m(t))return jn(D(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 xt(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 fn(i,function(){this.track(s)},t.onError,t.requiresObservable);else{let e=Vn(t),n=!1;o=new fn(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 fn(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=wt(!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&&Yt();let{enforceActions:t}=e;if(t!==void 0){let e=t===qn?qn:t===`observed`;N.enforceActions=e,N.allowStateChanges=!(e===!0||e===qn)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(t=>{t in e&&(N[t]=!!e[t])}),N.allowStateReads=!N.observableRequiresReaction,N.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&vn(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`),gi(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 Qt(e)&&(t.observers=Array.from($t(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 Ye(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(gi(e)||fi(e)||Ot(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 At(e);if(Ei(e)===!1)return!1;let r=e[E];return(n=r.lazyComputedKeys_)!=null&&n.has(t)?!0:r.values_.has(t)?At(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(gi(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)||_n(e)||At(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(gi(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(gi(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(gi(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)){rn();let n=t;try{for(let t in n)Tr(e,t,n[t])}finally{an()}return}Ei(e)?e[E].set_(t,r):gi(e)?e.set(t,r):vi(e)?e.add(t):fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(42,t),rn(),t>=e.length&&(e.length=t+1),e[t]=r,an()):n(8)}function Er(e,t){Ei(e)?e[E].delete_(t):gi(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(gi(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(gi(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(gi(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(At(e)){let r=!0,i;return zn(()=>{let a=e.get();if(!r||n){let n=Vt();t({observableKind:`computed`,debugObjectName:e.name_,type:ni,object:e,newValue:a,oldValue:i}),Ht(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(Ot(e)||At(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(gi(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){rn();try{return e.apply(t)}finally{an()}}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=bt(n.name+`-effect`,t);var a=zn(t=>{wt(!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=Vt();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{Ht(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=Vt(),r=e.changeListeners_;if(r){r=r.slice();for(let e=0,n=r.length;e<n;e++)r[e](t);Ht(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){Ft(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_&&yn(),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_&&yn(),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){Ft(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 N.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort(){N.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(!N.trackingDerivation)return this.has_(e);let t=this.hasMap_.get(e);if(!t){let n=t=new Dt(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(Ft(this.keysAtom_),Gr(this)&&!qr(this,{type:mi,object:this,name:e}))return!1;if(this.has_(e)){let t=yn(),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!==N.UNCHANGED){let r=yn(),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){Ft(this.keysAtom_),Rr(()=>{var n;let r=new Dt(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=yn(),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 gi(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(()=>{Bt(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return Rr(()=>{let t=F(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`}},gi=b(`ObservableMap`,hi);function _i(e){return e[Symbol.toStringTag]=`MapIterator`,Ri(e)}function F(e){if(x(e)||gi(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 I={};var L=class{constructor(e,t=me,n=`ObservableSet@`+u()){this.name_=void 0,this[E]=I,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(()=>{Bt(()=>{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(Ft(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=yn(),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=yn(),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`,L);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=Ue){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 kt)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!==N.UNCHANGED){let r=Jr(this),i=yn(),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 N.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(!N.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;let t=this.pendingKeys_.get(e);return t||(t=new Dt(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){Ft(this.keysAtom_);try{rn();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{an()}return!0}defineObservableProperty_(e,t,n,r=!1){Ft(this.keysAtom_);try{rn();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:N.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 Dt(t,n,`${this.name_}.${e.toString()}`,!1);this.values_.set(e,c),this.notifyPropertyAddition_(e,c.value_)}finally{an()}return!0}defineComputedProperty_(e,t,n=!1){Ft(this.keysAtom_);try{rn();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:N.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 kt(t)),this.notifyPropertyAddition_(e,void 0)}finally{an()}return!0}delete_(e,t=!1){if(Ft(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;rn();let r=Jr(this),a=yn(),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 Dt&&(s=o.value_),ln(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{an()}return!0}notifyPropertyAddition_(e,t){var n;let r=Jr(this),i=yn();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),it(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(gi(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)||At(e)||_n(e))return e}else if(p(e)&&_n(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)||At(e)||_n(e)||gi(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)||gi(e)||vi(e)?Ai(e):ki(e);return n.name_}function Mi(e){let t=Vt(),n=Tt(!0);rn();try{return e()}finally{an(),Et(n),Ht(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)||gi(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=L,e.Reaction=fn,e._allowStateChanges=wt,e._allowStateChangesInsideComputed=Ln,e._allowStateReadsEnd=Ut,e._allowStateReadsStart=M,e._autoAction=Pn,e._autoActionBound=In,e._endAction=Ct,e._getAdministration=Ai,e._getGlobalState=Xt,e._interceptReads=fr,e._isComputingDerivation=Pt,e._resetGlobalState=Zt,e._startAction=St,e.action=Nn,e.actionBound=Fn,e.autorun=zn,e.compareDefault=pe,e.compareIdentity=ue,e.compareShallow=fe,e.compareStructural=de,e.computed=A,e.computedStruct=ht,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=Ot,e.isComputed=_r,e.isComputedProp=vr,e.isFlow=dr,e.isFlowCancellationError=rr,e.isObservable=br,e.isObservableArray=fi,e.isObservableMap=gi,e.isObservableObject=Ei,e.isObservableProp=xr,e.isObservableSet=vi,e.keys=Sr,e.makeAutoObservable=$r,e.makeObservable=Zr,e.observable=k,e.observableDeep=ut,e.observableRef=ct,e.observableShallow=lt,e.observableStruct=dt,e.observe=jr,e.onBecomeObserved=Wn,e.onBecomeUnobserved=Gn,e.onReactionError=pn,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=Bt,e.values=Cr,e.when=zr})),z_=be(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=L_():t.exports=R_()}))();function B_(e){if(Array.isArray(e))return Object.freeze(e.map(B_));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]=B_(r);return Object.freeze(t)}return e}function V_(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 H_(e){return typeof e==`string`?e:String(e)}function U_(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 W_(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 G_=class extends Error{constructor(e,t){super(t),this.variable=e}};function K_(e){return e instanceof G_||e instanceof Error&&e.cause!==void 0&&K_(e.cause)}var q_=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?nv(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}},J_=class extends q_{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},Y_=class extends q_{name=`EvalError`;kind=`EvalError`},X_=class extends Y_{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=rv(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}},Z_=class extends Y_{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}},Q_=class extends Y_{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}},$_=class extends Q_{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)}`}},ev=class extends Y_{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},tv=class extends Y_{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function nv(e,t){let n=e.split(`
|
|
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(Ba(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
|
+
`);for(let e=0;e<t.length;e++){e>0&&(i=0);let[n]=Ua(t[e],Ba(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}Tl(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;for(let a of e){let e=r+a.cellLength,o=[];for(;i<t.length&&t[i]<e;i++){let e=t[i];e<=r?n.push([]):o.push(Ba(e-r))}let[s,...c]=o.length===0?[a]:a.cutAt(o);n[n.length-1].push(s);for(let e of c)n.push(e.hasText?[e]:[]);r=e}for(;i<t.length;i++)n.push([]);return n[n.length-1].length===0&&n.pop(),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 Tl(e,t){return e===t?!0:!e||!t?!1:e.equals(t)}const El=e=>/^[\x00-\x7F]*$/.test(e);function Dl(e,t,n,r=String){return e.asciiOnly===!0&&!El(r(t))?n:t}function Ol(e,t){return(e.theme??Sl).resolve(t)}U.parse(`default on default`);function kl(e){return{...e,maxWidth:Ha(e.maxWidth)}}function Al(e){return Ha(e.maxWidth)<1}function jl(e,t){let n=Al(t)?`held`:`drawn`;if(t.onPresent?.(e,n),n===`drawn`)return e.render(t);if(Fl(e))for(let n of e.contents())jl(n,t);return[]}function Ml(e){return{...e,onPresent:void 0}}function Nl(e,t){let n=kl(e);if(Number.isFinite(n.maxWidth))return n;let r=t.measure(Ml(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:Ha(r)}}function Pl(e){return typeof e==`object`&&!!e&&`measure`in e&&typeof e.measure==`function`}function Fl(e){return`contents`in e&&typeof e.contents==`function`}var Il=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(Al(t))return new e(0,0);if(!Pl(n))return new e(0,t.maxWidth);let{minimum:r,maximum:i}=n.measure(Ml(t));return new e(r,Math.min(i,t.maxWidth)).normalize()}};function*Ll(e){let t=/\s*\S+\s*/y;for(let n=t.exec(e);n!==null;n=t.exec(e))yield n[0]}function Rl(e){return R(e.trimEnd())}function zl(e){return Array.from(Ll(e),Rl)}function Bl(e,t){let n=Ga(e,t);return R(n[0])>t?[``,...n]:n}function Vl(e,t,n){if(t<=0)return[];let r=[],i=e=>{e>0&&r.push(Ba(e))},a=0,o=0;for(let r of Ll(e)){let e=Rl(r);if(t-a>=e)a+=R(r);else if(n.fold&&e>t){let e=Bl(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 Hl=new TextEncoder;function Ul(e){let t=2166136261;for(let n of Hl.encode(e))t=Math.imul(t^n,16777619);return(t>>>0).toString(16).padStart(8,`0`)}const Wl=`\\x1b\\x07\\x9c`,Gl=RegExp(`[${Wl}]`,`g`);function Kl(e){return e.replace(Gl,``)}function ql(e){let t=Kl(e);return`\x1b]8;id=${Ul(t)};${t}\x1b\\`}const Jl=RegExp(`\\x1b\\]8;([^;${Wl}]*);([^${Wl}]*)(?:\\x1b\\\\|\\x07|\\x9c)`);new RegExp(Jl.source,`g`);const Yl=/[\x00-\x08\x0B-\x1F\x7F-\x9F\u202A-\u202E\u2066-\u206F]/g;function Xl(e){return e.replace(Yl,``)}const Zl=/\s+$/;function Ql(e){return e.map(e=>e.text).join(``)}function $l(e){return R(Zl.exec(Ql(e))?.[0]??``)}function eu(e){let t=e.link;if(!t)return e;let n=Kl(t);return n===t?e:e.withLink(n)}function tu(e){return typeof e==`string`?e:e instanceof U?nu(e):{under:e.under,over:nu(e.over)}}function nu(e){return eu(e.anchor?e.withAnchor(void 0):e)}function ru(e){return e instanceof U?e.isNull:e===``}function iu(e,t){return eu(t instanceof U?t:typeof t==`string`?au(e,t):au(e,t.under).add(t.over))}function au(e,t){try{return Ol(e,t)}catch(n){if(!(n instanceof cl))throw n;return e.onStyleError?.(n,t),W}}var ou=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)}},K=class e{_text;_spans;_style;_justify;_overflow;_end;_tabSize;_noWrap;constructor(e,t){this._text=e?Xl(e):``,this._spans=[],this._style=tu(t?.style??W),this._justify=t?.justify,this._overflow=t?.overflow,this._end=t?.end??`
|
|
47
|
+
`,this._tabSize=ro(t?.tabSize??8),this._noWrap=t?.noWrap??!1}get plain(){return this._text}set plain(e){let t=Xl(e);this._text=t;let n=t.length;this._spans=this._spans.map(e=>e.end>n?new ou(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(io(this._text,this._tabSize).text)}get hasContent(){return this._text.length>0}get style(){return this._style}set style(e){this._style=tu(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 iu(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(iu(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=Xl(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 ou(t,n,e.style))}return l}_addSpan(e,t,n){let r=tu(n);ru(r)||this._spans.push(new ou(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=Xl(t??` `).repeat(e);return this._spans=this._spans.map(e=>e.move(n.length)),this._text=n+this._text+n,this}expandTabs(){let e=io(this._text,this._tabSize);return this._spans=this._spans.map(t=>new ou(e.offsetOf(t.start),e.offsetOf(t.end),t.style)),this._text=e.text,this}padLeft(e,t){let n=Xl(t??` `).repeat(e);return this._spans=this._spans.map(e=>e.move(n.length)),this._text=n+this._text,this}padRight(e,t){return this._text+=Xl(t??` `).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=Ha(e),i=Qa(Xl(t?.marker??`…`),r),a=Ba(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=Ba(Math.floor(a/2)),s=Ba(a-o),c=Qa(this._text,o).length,l=this._text.length-$a(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 ou(e.start,f,e.style)),e.end>p&&h.push(new ou(p+m,e.end+m,e.style)));return this._text=u+i+d,this._spans=h,this}_cropRightTo(e){this.plain=Qa(this._text,e)}_cropLeftTo(e){let t=this._text.length-$a(this._text,e).length,n=-t;this._spans=this._spans.map(e=>{if(!(e.end<=t))return new ou(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=io(this._text,this._tabSize),n=this.resolvedStyle(e),{segments:r,covered:i}=this._buildSegments(t,n,e),a=su(r,i);r.push(G.line());let o=G.splitLines(r),s=Ha(Nl(e,this).maxWidth),c=this._overflow??e.overflow??`fold`,l=this._noWrap||(e.noWrap??!1),u=c===`ignore`?Ha(1/0):s,d=l?Ha(1/0):u,f=c===`ignore`?void 0:this._justify??e.justify,p=Dl(e,`…`,`.`);for(let e=0;e<o.length;e+=1){let t=o[e],r=a[e],i=e<o.length-1,l=Vl(Ql(t),d,{fold:c===`fold`}),m=G.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 G.line())}this._end&&(yield new G(this._end))}measure(e){let t=io(this._text,this._tabSize).text.split(`
|
|
49
|
+
`),n=t.reduce((e,t)=>Math.max(e,R(t)),0),r=t.flatMap(zl),i=r.length>0?r.reduce((e,t)=>Math.max(e,t),0):n,a=Ha(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=iu(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 G(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=G.adjustLineLength(e,G.getLineLength(e)-$l(e),void 0,!1),o=Math.max(n-G.getLineLength(r),0),s=i===`center`?Math.floor(o/2):o;yield*cu(r,t,s,o-s,a);break}case`left`:yield*cu(e,t,0,Math.max(n-G.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=G.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 G(` `.repeat(o[e]),i.isNull?void 0:i))}return f}*_fitLine(e,t,n,r){let i=G.getLineLength(e);if(i-$l(e)<=t){yield*G.adjustLineLength(e,Math.min(i,t),void 0,!1);return}if(n===`ellipsis`&&t>0){yield*G.adjustLineLength(e,t-1,void 0,!1),yield new G(r);return}yield*G.adjustLineLength(e,t,void 0,!1)}};function su(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*cu(e,t,n,r,i){if(n+r===0)return yield*e;let a=e.filter(e=>e.text!==``),o=e=>` `.repeat(e),s=G.getLineLength(a);if(s===0)return yield new G(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 G(o(n)+a[0].text+o(r),i);return}n>0&&(yield new G(o(n)+(l?a[0].text:``),i)),yield*a.slice(d,f),r>0&&(yield new G((u?a[c].text:``)+o(r),i))}const lu=Object.freeze({name:`join`});var uu=class{fg;bg;constructor(e,t){this.fg=e,this.bg=t}};function du(e,t){for(let n=e;n;n=n.inner){if(t.has(n.owner))return{fg:!0,bg:!0};if(n.owner instanceof uu){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 fu(e,t,n,r){let i=e.join(t,n,r);return{render:e=>G.anchorLines([[...jl(i,e)]],lu)[0]}}function pu(e){return{render:t=>G.anchorLines([[...jl(e,t)]],e)[0]}}var mu=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*jl(fu(this.joiner,null,t[0],{index:0}),n);for(let e=0;e<t.length;e++){let r=t[e];yield*jl(pu(r),n);let i=e+1<t.length?t[e+1]:null;yield*jl(fu(this.joiner,r,i,{index:e+1}),n)}yield G.line()}contents(){return this.items}measure(e){let t=0;for(let n of jl(this,e))t+=n.cellLength;return{minimum:t,maximum:t}}};const hu=[`seam`,`divider`,`lead`,`tail`];function*gu(e){yield e,`mix`in e&&(yield*gu(e.mix[0]),yield*gu(e.mix[1]))}const _u=e=>typeof e.glyph==`string`?[e.glyph]:e.glyph.oneOf,vu=(e,t,n,r)=>{let i=_u(e);return i[Math.floor(parseInt(Ul(`${t}:${n}:${r}`),16)/2**32*i.length)]},yu=e=>R(_u(e)[0]??``),bu=e=>e.reduce((e,t)=>e+yu(t),0);function xu(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([xu(e,t,n),xu(i,t,n),a])})}return n(`has a colour that is not a Paint: ${JSON.stringify(e)}`)}const Su=(e,t,n)=>e===`ground`?e:xu(e,t,n),Cu={seam:void 0,divider:void 0,lead:`left`,tail:`right`},wu={seam:`seam`,divider:`seam`,lead:`caps`,tail:`caps`};function Tu(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=_u(e);return o.length===0&&r(`has an empty oneOf`),o.some(t=>R(t)!==yu(e))&&r(`has oneOf members of different widths`),t===`ascii`&&!o.every(El)&&r(`is not ASCII`),Object.freeze({glyph:typeof e.glyph==`string`?e.glyph:Object.freeze({oneOf:Object.freeze([...o])}),fg:Su(e.fg,Cu[n],r),bg:Su(e.bg,Cu[n],r)})}function Eu(e,t,n,r){let i=e,a=wu[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 Du=(e,t)=>(n,r)=>Tu(n,e,t,r),Ou=(e,t)=>(n,r)=>{if(!(`cap`in n))return Tu(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)}`)},ku=e=>[bu(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 Au(e){let t=t=>{let n=Eu(e,t,`seam`,Ou(t,`seam`)),r=e[t].divider===e[t].seam?n:Eu(e,t,`divider`,Ou(t,`divider`)),[i,a]=[ku(n),ku(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 ju(e){let t=t=>Object.freeze({lead:Eu(e,t,`lead`,Du(t,`lead`)),tail:Eu(e,t,`tail`,Du(t,`tail`))});return Object.freeze({glyph:t(`glyph`),ascii:t(`ascii`)})}function Mu(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 Nu=(e,t)=>e.some(e=>[e.fg,e.bg].some(e=>e!==`ground`&&[...gu(e)].some(e=>`edge`in e&&e.edge===t&&e.part===`bg`)));function Pu(e){let t=[...e.seam,...e.divider];return{shape:e,reads:{seam:{left:Nu(t,`left`),right:Nu(t,`right`)},lead:Nu(e.lead,`right`),tail:Nu(e.tail,`left`)}}}function Fu(e){return e!==void 0&&!e.isDefault?e:void 0}function Iu(e){return e.flattenAlpha(fo)}function Lu(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?H.fromRgba(i).deltaE(H.fromRgba(a))<.04:n.number===void 0?n.name===r.name:n.number===r.number}function Ru(e,t,n){if(`edge`in e){let n=t[e.edge];if(e.part===`fg`)return n?.color;let r=Fu(n?.bgcolor);return r&&Iu(r)}if(`role`in e)return Ol(n,e.role).color;let[r,i,a]=e.mix,o=Ru(r,t,n),s=Ru(i,t,n);return o&&s&&V.blend(o,s,a)}function zu(e,t,n){return e.fg===`ground`?new U({color:e.bg===`ground`?void 0:Ru(e.bg,t,n),reverse:!0}):new U({color:Ru(e.fg,t,n),bgcolor:e.bg===`ground`?void 0:Ru(e.bg,t,n)})}const Bu=e=>hu.flatMap(t=>e[t].flatMap(_u)).join(``);var Vu=class{seam;caps;_forms;constructor(e,t){this.seam=Au(e),this.caps=ju(t),this._forms={glyph:Pu(Mu(this.seam.glyph,this.caps.glyph)),ascii:Pu(Mu(this.seam.ascii,this.caps.ascii))}}join(e,t,{index:n}){let r=this._forms;return{*render(i){let{shape:a,reads:o}=Dl(i,r.glyph,r.ascii,e=>Bu(e.shape)),s={left:e?.edgeStyle(`right`,i),right:t?.edgeStyle(`left`,i)},c=Fu(s.left?.bgcolor),l=Fu(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 uu(h(t.fg),h(t.bg));return new G(vu(t,e,n,r),zu(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&&Lu(e.style,i.colorSystem))?g(`divider`):_}}}};const Hu={edge:`left`,part:`bg`},Uu={edge:`right`,part:`bg`},Wu={edge:`left`,part:`fg`},Gu={mix:[Hu,Uu,1/2]},Ku=`ground`,qu={cap:`lead`},Ju={cap:`tail`},Yu=(e,t)=>({glyph:e,ascii:t}),Xu={glyph:``,thin:``,ascii:`>`,asciiThin:`>`},Zu={glyph:``,thin:``,ascii:`/`,asciiThin:`/`},Qu={glyph:``,thin:``,ascii:`\\`,asciiThin:`\\`},$u={glyph:``,thin:``,ascii:`}`,asciiThin:`}`},ed={glyph:``,thin:``,ascii:`#`,asciiThin:`>`},td={glyph:``,thin:``,ascii:`]`,asciiThin:`>`},nd={glyph:``,thin:``,ascii:`)`,asciiThin:`)`},rd=(e,t)=>({seam:[{glyph:e,fg:Hu,bg:Uu}],divider:[{glyph:t,fg:Wu,bg:Hu}]}),id=e=>Yu(rd(e.glyph,e.thin),rd(e.ascii,e.asciiThin));function ad(e,t){let n=e=>({mix:[Hu,Uu,e]}),r={glyph:` `,fg:Wu,bg:Hu};return{seam:[{glyph:e,fg:Hu,bg:n(1/3)},{glyph:e,fg:n(1/3),bg:n(2/3)},{glyph:e,fg:n(2/3),bg:Uu}],divider:[r,{glyph:t,fg:Wu,bg:Hu},r]}}function od(e){let t=[Ju,...e,qu];return{seam:t,divider:t}}function sd(e,t){let n=[{glyph:e,fg:t,bg:Gu}];return{seam:n,divider:n}}function cd(e){return{seam:sd({oneOf:e},Hu).seam,divider:[{glyph:{oneOf:e},fg:Wu,bg:Gu}]}}const ld=[{glyph:` | `,fg:{role:`strip.separator`},bg:Ku}],ud={seam:ld,divider:ld},dd={glyph:` `,fg:Wu,bg:Ku},fd=e=>({glyph:e,fg:{role:`strip.rail`},bg:Ku}),pd=Object.freeze({powerline:Au(id(Xu)),prism:Au(Yu(ad(Xu.glyph,Xu.thin),ad(Xu.ascii,Xu.asciiThin))),slant:Au(id(Zu)),backslant:Au(id(Qu)),flame:Au(id($u)),pixel:Au(id(ed)),ice:Au(id(td)),bubble:Au(id(nd)),capsule:Au(Yu(od([dd]),od([dd]))),wrapper:Au(Yu(od([]),od([]))),metro:Au(Yu(od([fd(`──`)]),od([fd(`--`)]))),stitch:Au(Yu(sd(`┊`,Wu),sd(`:`,Wu))),torn:Au(Yu(cd([`▚▞`,`▞▚`,`▘▗`,`▝▖`,`▖▝`,`▗▘`]),cd([`/\\`,`\\/`]))),plain:Au(Yu(ud,ud))}),md=e=>Yu({lead:[{glyph:e.glyph,fg:Ku,bg:Uu}],tail:[{glyph:e.glyph,fg:Hu,bg:Ku}]},{lead:[],tail:[{glyph:e.ascii,fg:Hu,bg:Ku}]}),hd=(e,t)=>({lead:[{glyph:e,fg:Uu,bg:Ku}],tail:[{glyph:t,fg:Hu,bg:Ku}]}),gd={lead:[],tail:[]},_d=Object.freeze({powerline:ju(md(Xu)),slant:ju(md(Zu)),backslant:ju(md(Qu)),flame:ju(md($u)),pixel:ju(md(ed)),ice:ju(md(td)),bubble:ju(md(nd)),capsule:ju(Yu(hd(``,``),hd(`(`,`)`))),wrapper:ju(Yu(hd(``,``),hd(`<`,`>`))),flat:ju(Yu(gd,gd))}),vd=Object.freeze({powerline:new Vu(pd.powerline,_d.powerline),prism:new Vu(pd.prism,_d.powerline),slant:new Vu(pd.slant,_d.slant),backslant:new Vu(pd.backslant,_d.backslant),flame:new Vu(pd.flame,_d.flame),pixel:new Vu(pd.pixel,_d.pixel),ice:new Vu(pd.ice,_d.ice),bubble:new Vu(pd.bubble,_d.bubble),capsule:new Vu(pd.capsule,_d.capsule),wrapper:new Vu(pd.wrapper,_d.wrapper),metro:new Vu(pd.metro,_d.capsule),stitch:new Vu(pd.stitch,_d.flat),torn:new Vu(pd.torn,_d.flat),plain:new Vu(pd.plain,_d.flat)});function yd(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:`${ql(o)}${a}]8;;\\`}function bd(e,t){let n=[];for(let r of e)n.push(yd(r,t));return n.join(``)}function xd(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=Eo(i===void 0?B.TRUECOLOR:i,r),o={colorSystem:t?.noColor?null:a.colorSystem,hyperlinks:t?.hyperlinks??a.hyperlinks};return bd(jl(e,{maxWidth:n,isTerminal:!1,asciiOnly:t?.asciiOnly??!1,theme:t?.theme,onStyleError:t?.onStyleError,highlight:t?.highlight,highlighter:t?.highlighter,colorSystem:o.colorSystem}),o)}function Sd(e){return e.end=``,e.plain=e.plain.replaceAll(`
|
|
51
|
+
`,` `),e.expandTabs()}var Cd=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=jl(this.renderable,e);return e.colorSystem===null?t:this._moved(t,e)}*contents(){yield this.renderable}*_moved(e,t){let n=t.colorSystem??B.TRUECOLOR,r=Td(e,n,this.theme),i=Ed(r),a=this.effect(Od(r,()=>i,n,this.theme));yield*G.applyStyle(this._recolored(i,a.at(this.t),n),new U({nextChange:a.nextChange(this.t)}))}*_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:Ad(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&&Fd(a.colors,i)?a.drawn:this.respec(o,s,i,n);a!==void 0&&Md(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=>Md(e.drawn,o))){yield r;continue}let f=0;for(let t of d){let n=e.shiftedBy(f),r=Md(t.drawn,o)?n:n.add(U.fromColor(t.drawn.color,t.drawn.bgcolor));yield new G(t.text,r),f+=t.cells}}}measure(e){return Il.get(e,this.renderable)}static shows(e,t,n,r){let i=Ad(e,e.reverse),a=jd(i,Ad(t,e.reverse),n,r);return Ad({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=jd(t,n,r,this.theme);return{color:i.fg??e.color,bgcolor:i.bg??e.bgcolor}}seed(e,t){return Number.parseInt(Ul(`${this.key}:${e}:${t}`),16)/4294967296}};const wd=V.default();function Td(e,t,n){return[...e].map(e=>{if(e.isControl)return{segment:e,look:void 0};let r=e.style??U.null(),i=r.drawnColors(t),a={fg:(i.color??wd).getTruecolor(n,!0),bg:(i.bgcolor??wd).getTruecolor(n,!1)},o=r.reverse===!0,s=Ad({fg:i.color?.isDefault??!0,bg:i.bgcolor?.isDefault??!0},o);return{segment:e,look:{style:r,wire:i,slots:a,pair:{...Ad(a,o),terminal:s,reverse:o}}}})}function Ed(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:[...Xa(e.text)].map(e=>{let r=e===`
|
|
52
|
+
`?void 0:{row:t,col:n,anchor:i&&rl(i,a)};return[t,n]=e===`
|
|
53
|
+
`?[t+1,0]:[t,n+R(e)],a+=R(e),{glyph:e,cell:r}})}})}function Dd(e){return[e.underline,e.underline2,e.strike,e.overline,e.frame,e.encircle].some(e=>e===!0)}function Od(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||Dd(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()!==``&&!il(t.style.anchor,lu)?[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 kd(e,...t){let n=new Set(t),r=e=>du(e.anchor,n),i=({fg:e,bg:t})=>e||t,a=e=>({...e,cells:()=>e.cells().filter(e=>i(r(e)))});return t=>Jc.map(e(a(t)),e=>(t,n)=>{let a=r(n);if(!i(a))return t;let o=e(t,n);return{fg:a.fg?o.fg:t.fg,bg:a.bg?o.bg:t.bg}})}function Ad(e,t){return t?{fg:e.bg,bg:e.fg}:e}function jd(e,t,n,r){let i=t.bg.compositeOver(fo),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 Md(e,t){return Nd(e.color,t.color,!0)&&Nd(e.bgcolor,t.bgcolor,!1)}function Nd(e,t,n){return e===t||Pd(e,n)===Pd(t,n)}function Pd(e,t){return e?.getAnsiCodes(t).join(`;`)??``}function Fd(e,t){return Id(e.fg,t.fg)&&Id(e.bg,t.bg)}function Id(e,t){return e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha}const Ld=(()=>{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]})(),Rd=e=>e*e*e*(e*(e*6-15)+10),zd=(e,t,n)=>e+n*(t-e);function Bd(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 Vd(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=Rd(e),u=Rd(t),d=Rd(n),f=Ld[o]+s,p=Ld[f]+c,m=Ld[f+1]+c,h=Ld[o+1]+s,g=Ld[h]+c,_=Ld[h+1]+c;return zd(zd(zd(Bd(Ld[p],e,t,n),Bd(Ld[g],e-1,t,n),l),zd(Bd(Ld[m],e,t-1,n),Bd(Ld[_],e-1,t-1,n),l),u),zd(zd(Bd(Ld[p+1],e,t,n-1),Bd(Ld[g+1],e-1,t,n-1),l),zd(Bd(Ld[m+1],e,t-1,n-1),Bd(Ld[_+1],e-1,t-1,n-1),l),u),d)}function Hd(e,t,n,r){let i=0,a=1,o=0;for(let s=0;s<r;s++){let r=2**s;i+=a*Vd(e*r,t*r,n*r),o+=a,a/=2}return i/o}function Ud(e,t){let n=Math.sin(e*12.9898+t*78.233)*43758.5453;return n-Math.floor(n)}function Wd(e,t,n){let r=Math.min(1,Math.max(0,(n-e)/(t-e)));return r*r*(3-2*r)}const Gd=Array.from({length:48},(e,t)=>(t+1)/48);function Kd(e,t){return Math.min(mo(e.fg,e.bg),4.5)-(t===B.TRUECOLOR?.01:0)}const qd=[`fg`,`bg`];function Jd({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=>qd.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=>H.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=qd.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=Kd(r,t),c=(t,n)=>tf(i,r[t],(t===a?e:o)*n);return Gd.every(e=>{let i=Cd.shows(r,{fg:c(`fg`,e),bg:c(`bg`,e)},t,n);return mo(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 Yd(e,t){let n=new WeakMap;return $d(Qd(e,r=>{let i=t??r.colors,a=[Xd(r),`|`,...i].join(` `),o=n.get(r.theme)??new Pa;return n.set(r.theme,o),o.get(a,()=>Jd(r,i,e.touch))}))}function Xd({depth:e,pairs:t}){return[e,...t.map(Zd)].join(` `)}function Zd({fg:e,bg:t,terminal:n,reverse:r}){return`${e.hex}/${t.hex}/${n.fg}/${n.bg}/${r}`}function Qd(e,t){return n=>{let r=t(n);return Jc.continuous(t=>{let i=e.field(t,n);return({fg:t,bg:n},a)=>{let o=Math.round(of(i(a))*48)/48,s=(t,n)=>tf(e.touch,t,(n?0:r.get(t.hex)??0)*o);return{fg:s(t,a.terminal.fg),bg:s(n,a.terminal.bg)}}})}}function $d(e){return t=>ef(t.depth)?Jc.constant(e=>e):e(t)}function ef(e){switch(e){case B.DEFAULT:case B.STANDARD:case B.WINDOWS:return!0;case B.EIGHT_BIT:case B.TRUECOLOR:return!1}}function tf(e,t,n){return n===0?t:e(t,n)}function nf(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 rf={shimmer:{seconds:109,ease:Ic.linear,swing:.9},pulse:{seconds:43,ease:Ic.linear,swing:.85},sparkle:{seconds:139,ease:Ic.linear,swing:.95},wheel:{seconds:907,ease:Ic.linear,swing:1},fade:{seconds:20,ease:Ic[`ease-in-out`],swing:1},dissolve:{seconds:30,ease:Ic[`ease-in-out`],swing:1}},af={sun:new z(255,228,176),firefly:new z(222,245,140)},of=e=>Math.min(1,Math.max(0,e));function sf(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 H((1-n)*e.l+n*t.l,Math.hypot(i,a),Math.atan2(a,i)/r,e.alpha)}function cf(e){let t=H.fromRgba(e);return(e,n)=>{let r=H.fromRgba(e);return sf(r,new H(Math.max(r.l,t.l),t.c,t.h,t.alpha),n).toRgba()}}const lf=(e,t)=>t*e[e.length-1][0];function uf(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 df(e,t,n){let r=lf(e,n),i=t=>{let r=0;for(let i=0;i<24;i++)r+=uf(e,(i+.5)/24*t,n);return r*t};return i(Math.min(Math.max(t,0),r))/i(r)}const ff=[[.24,1],[.6,0]];function pf(e,t,n){nf(e);let r=.9+.2*Ud(n,3.1),i=t=>.1*Vd(t/(3*e.seconds),.5,.5+n),a=i(0);return{touch:cf(t),field:t=>{let o=r*t/e.seconds+i(t)-a,s=Math.floor(o),c=.7+.3*Wd(-.5,.5,Vd(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 mf=e=>Math.abs(e)>=1?0:(1-e*e)**3;function hf(e,t,n,r){nf(e);let i=e.seconds,a=i/2,o=e=>Wd(-.4,.4,Vd(e/7,3.3,5.5+r)),s=.7,c=.51,l=.4,u=(e,n,u)=>{let d=o(e),f=(Ud(e,7.5+r)<.35+.6*d)*(.3+.7*d*(.6+.4*Ud(e,8.5+r))),p=i*u/80*(c+l*Ud(e,5.5+r)),m=of((n-(e+s*Ud(e,6.5+r))*a)/p);return{strength:f,centre:m*u-t+.06*u*Math.sin(Math.PI*m)*Vd(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(-((Vd(e,t,n)/.8)**2));return{touch:cf(n),field:(n,i)=>{let[a,o]=xf(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*mf((i.col-a-n)/t));let c=i.row+r,l=.8*Vd(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 gf(e,t,n){nf(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*Vd(e*1.7+.2,.3+t*2.9,.5+n),l=i+Ud(e+t*1013,.7+n)*r,u=Math.floor(l/r),d=Ud(u,s+1)<.15?0:1,f=.5+.5*Ud(u,s+2),p=Ud(u,s+3)*(1-lf(ff,f)),m=l/r-u-p;return{x:a+c*8+5*(2*Ud(u,s+4)-1)+5*f*(2*Ud(u,s+5)-1)*df(ff,m,f)+1.5*Vd(s,.1,i*.035),y:o+t*3+.6*Vd(s,2.2,i*.035),glow:d*uf(ff,m,f)}};return{touch:cf(t),field:(t,n)=>{let r=n.cells(),[s,c]=xf(r.map(e=>e.col)),[l,u]=xf(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*mf(Math.hypot(t.col-r.x,2*(t.row-r.y))/5))}return e.swing*e.ease(n)}}}}function _f(e,t){return n=>{let r=H.fromRgba(n.theme.backgroundColor);return Jc.continuous(i=>{let a=e(i,n);return(e,n)=>{let i=t*(1-of(a(n)));if(i===0)return e;let o=sf(H.fromRgba(e.bg),r,i);return{fg:sf(H.fromRgba(e.fg),o,i).toRgba(),bg:o.toRgba()}}})}}function vf(e){let t=new Map;return n=>{let r=`${n.row}:${n.col}`,i=t.get(r)??of(.5+1.1*Hd(n.col*.09+1.4*Vd(n.col*.035,n.row*.2+2.6,e+.5),n.row*.45,e,3));return t.set(r,i),i}}function yf(e,t){let n=t=>t>=e.seconds;return{effect:r=>{let i=t(r);return{at:e=>i.at(e),nextChange:e=>n(e)?1/0:i.nextChange(e),lastChange:t=>n(t)?e.seconds:i.lastChange(t)}},done:n}}function bf(e,t){let n=new Map,r=e=>`${e.row}:${e.col}`;return i=>{let[a,o]=xf(i.map(t)),s=(o>a?.55:0)*e.seconds,c=qc.once(0,e.seconds-s),l=e=>{let n=o>a?of((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 xf(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 Sf(e,t){nf(e);let n=bf(e,vf(1.7+t));return yf(e,_f((t,r)=>{let i=n(r.cells());return n=>e.ease(i(n).progress(t))},e.swing))}const Cf={depth:.4,from:.5,to:.95,maskFrom:.35,maskTo:.75,late:.6};function wf(e,t){nf(e);let n=vf(9.3+t),r=bf(e,vf(4.2+t)),{depth:i,from:a,to:o,maskFrom:s,maskTo:c,late:l}=Cf;return yf(e,_f((t,u)=>{let d=r(u.cells());return r=>{let{along:u,progress:f}=d(r),p=e.ease(f(t)),m=of((p-a)/(o-a)),h=i*Wd(s,c,n(r))*(1-l+l*u)*Math.sin(Math.PI*m)**2;return 1-p+h}},e.swing))}const Tf=[211,337];function Ef(e,t){nf(e);let n=e.seconds,r=e=>Ud(Number.parseInt(e.slice(1),16)*1e-4,17.3+t),i=(e,n)=>Vd(n/Tf[0],5.9+97*e,t)+.5*Vd(n/Tf[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 $d(e=>{let{colors:t,fills:n,depth:r,theme:i}=e,s=(e,n)=>!e&&t.has(n.hex),c=(e,t,r)=>n.has(e.hex)||!r?e.hex:t.hex,l=(e,t)=>`${e.hex} ${t}`,u=o.get(i)??new Pa;o.set(i,u);let d=u.get(Xd(e),()=>Mf(e.pairs,r,(e,t)=>{let n=t===`fg`?`bg`:`fg`;return s(e.terminal[t],e[t])?l(e[t],c(e[t],e[n],s(e.terminal[n],e[n]))):void 0})),f=Ff(r,i);return Jc.continuous(e=>{let t=new Map,n=(t,n)=>{let i=Df(t,a(n,e));return If(i.looks,t,r===B.TRUECOLOR?i.either.map(Nf):f,d.get(l(t,n))??kf)},i=(e,r)=>{let i=t.get(l(e,r))??n(e,r);return t.set(l(e,r),i),i};return(e,t)=>{let n={fg:s(t.terminal.fg,e.fg),bg:s(t.terminal.bg,e.bg)},r=(e,t,n,r)=>t?i(e,c(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 Df(e,t){if(t===0)return{looks:e,either:[e]};let n=H.fromRgba(e),r=po(e),i=e=>new H(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]=po(i(e))<r?[e,o]:[a,e]}return{looks:i(o),either:[i(a),i(o)]}}const Of=e=>Math.log(mo(e,new z(0,0,0))),kf={lo:-1/0,hi:1/0},Af={lo:1/0,hi:-1/0},jf=Math.log(1.031);function Mf(e,t,n){let r=new Map;for(let i of e.filter(e=>Kd(e,t)>1)){let e=(Math.log(mo(i.fg,i.bg))-Math.log(Kd(i,t)))/qd.filter(e=>n(i,e)!==void 0).length;for(let t of qd){let a=n(i,t);if(a===void 0)continue;let[o,s]=[Of(i[t]),Of(i[t===`fg`?`bg`:`fg`])],{lo:c,hi:l}=r.get(a)??kf;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<jf?Af:{lo:t,hi:n}]))}const Nf=e=>({color:e,looks:H.fromRgba(e),stop:Of(e)}),Pf=new WeakMap;function Ff(e,t){let n=V.indexed(e,t),r=Pf.get(n)??n.map(([,e])=>Nf(e));return Pf.set(n,r),r}function If(e,t,n,{lo:r,hi:i}){return Lf(e,[Nf(t),...n.filter(({stop:e})=>e>=r&&e<=i)]).color}function Lf(e,t){let n=H.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 Rf={loops:{shimmer:(e,t=rf.shimmer)=>Yd(hf(t,24,af.sun,e.z)),pulse:(e,t=rf.pulse)=>Yd(pf(t,af.sun,e.z)),sparkle:(e,t=rf.sparkle)=>Yd(gf(t,af.firefly,e.z)),wheel:(e,t=rf.wheel)=>Ef(t,e.z)},transitions:{fade:(e,t=rf.fade)=>Sf(t,e.z),dissolve:(e,t=rf.dissolve)=>wf(t,e.z)}};var zf=class{beat;width;_shown;constructor(e){this.beat=Kc(e.map(e=>e.seconds));let t=e.map(e=>Sd(e.text.copy())),n=t.map(e=>e.cellLength);this.width=Math.max(...n),this._shown=t.map((e,t)=>(e.noWrap=!0,e.overflow=`crop`,e.padRight(this.width-n[t])))}at(e){return this._shown[this.beat.at(e)].copy()}nextChange(e){return this.beat.nextChange(e)}lastChange(e){return this.beat.lastChange(e)}};function Bf(e,t){return e.at(t).copy().stylize(new U({nextChange:e.nextChange(t)}))}function Vf(e,t){let n=[...jl(e,t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const Hf={segments:[],width:0},Uf={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Wf(e,t){return Uf[e](t)}function Gf(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 Kf=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`}contents(){return this.items}*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=>Vf(pu(t),e)),o=n=>i?Vf(fu(i,null,t[n],{index:n}),e):Hf,s=n=>i?Vf(fu(i,t[n],null,{index:n+1}),e):Hf,c=(n,r)=>i?Vf(fu(i,t[n],t[r],{index:r}),e):Hf,l=[],u=null,d=r>0?{segments:[new G(` `.repeat(r))],width:r}:Hf;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=Wf(p,i),o=Gf(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new G(` `.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 G(` `.repeat(e)))}yield*t.blocks[e].segments}yield G.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=Vf(t[i],e).width,o=this.joiner?Vf(fu(this.joiner,null,t[i],{index:i}),e).width:0,s=this.joiner?Vf(fu(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+=Vf(fu(this.joiner,t[i-1],t[i],{index:i}),e).width))}return this.joiner&&(r+=Vf(fu(this.joiner,null,t[0],{index:0}),e).width,r+=Vf(fu(this.joiner,t[t.length-1],null,{index:t.length}),e).width),{minimum:n,maximum:r}}};function qf(e){return e<32||e>=127&&e<=159||e>=8234&&e<=8238||e>=8294&&e<=8303}function Jf(e){let t=``;for(let n of e)t+=qf(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function Yf(e,t){let n=Jf(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const Xf=`\x1B[38;2;255;255;255m`,Zf=`\x1B[48;2;200;40;40m`;function Qf(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 $f={fg:Qf(Xf),bg:Qf(Zf)},ep={fg:Qf(`\x1B[38;2;0;0;0m`),bg:Qf(`\x1B[48;2;220;160;40m`)},tp=new fl({"strip.separator":`default`,"strip.rail":`default`});function np(e){return tp.resolve(e)}function rp(){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 ip=[`primary`,`secondary`,`accent`],ap=[`darken-3`,`darken-2`,`darken-1`,`base`,`lighten-1`,`lighten-2`,`lighten-3`],op={"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`},sp=(e,t)=>`${e}${op[t]}`,cp=(e,t,n,r)=>Vp(e,n,r),lp=(e,t,n,r)=>Up(e,jp(e,`text-${t}`),n,r),up=e=>({tones:[ap[e],ap[e+2],ap[e+1]],text:cp}),dp={muted:{tones:[`muted`],text:lp},deepest:up(0),deeper:up(1),middle:up(2),brighter:up(3),brightest:up(4)},fp=1/0,pp={accent:{hues:[`secondary`,`accent`],run:fp},duo:{hues:[`primary`,`secondary`],run:fp},mono:{hues:[`primary`],run:fp},alt:{hues:[`secondary`,`accent`],run:3}},mp=e=>e.variation.hues.flatMap(t=>e.shade.tones.map(e=>({hue:t,shade:e}))),hp=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},gp=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],_p=e=>typeof e==`string`&&gp.includes(e),vp={"van-der-corput":hp,"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},yp=e=>vp[e??`van-der-corput`];function bp(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 xp=(e,t)=>Math.floor(e*t),Sp=(e,t)=>Math.round(e*t)%t;function Cp(e){return e===void 0?0:e.distribution(e.index,e.count)}function wp(e,t,n){let r=e[n(Cp(t),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function Tp(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 Ep=(e,t)=>xp(Cp(t),e.hues.length);function Dp(e,t){let{row:n,cell:r}=Tp(t);return Op(e,n,r)}function Op(e,t,n){let{hues:r,run:i}=e.variation,a=n===void 0?0:Math.floor(n.index/i),o=r[(Ep(e.variation,t)+a)%r.length];if(o===void 0)throw Error(`decorEntryFor: empty variation`);return{hue:o,shade:wp(e.shade.tones,n,Sp)}}function kp(e,t){let{row:n,cell:r}=Tp(t),i=r===void 0?[void 0]:Array.from({length:r.count},(e,t)=>({...r,index:t}));return[...new Map(i.map(t=>Op(e,n,t)).map(e=>[sp(e.hue,e.shade),e])).values()].sort((e,t)=>ip.indexOf(e.hue)-ip.indexOf(t.hue)||Ap.indexOf(e.shade)-Ap.indexOf(t.shade))}const Ap=[...ap,`muted`];function jp(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 Mp=(e,t)=>jp(e,sp(t.hue,t.shade)),Np=2.2,Pp=(e,t)=>t.map(t=>Mp(e,t)),Fp=e=>t=>Ps(t,e),Ip=Fp(B.TRUECOLOR);function Lp(e,t,n,r){return Rp(e,`${t}|${n.map(e=>e.hex).join(`+`)}|${r}`,()=>zp(e,t,n,r))}const Rp=rp();function zp(e,t,n,r){let i=n.map(Ip),a=jp(e,t),o=new z(0,0,0),s=new z(255,255,255),c=(e,t)=>H.fromRgba(a).mixAxes(H.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=Fp(e),n=i.map(t);return e=>Math.min(1/0,...n.map(n=>mo(t(e),n)))},p=f(B.TRUECOLOR),m=f(r),h=e=>Ns(e,r,(e,t)=>i.every(n=>mo(e,t(n))>=Np)),g=e=>p(e)>=2.2&&h(e)!==void 0,_=(e,t)=>{let n=n=>mo(Ip(n),e)-mo(Ip(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)=>po(e)-po(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 Bp=4.5;function Vp(e,t,n){return Hp(e,`${t.hex}|${n}`,()=>{let r=js(t);return Up(e,[`background`,`foreground`].map(t=>jp(e,t)).reduce((e,t)=>mo(r,t)<mo(r,e)?t:e),t,n)})}const Hp=rp();function Up(e,t,n,r){return Wp(e,`${t.hex}|${n.hex}|${r}`,()=>Ms(t,n,Bp,r))}const Wp=rp();function Gp(e,t,n){return t.depth===0?Pp(e,t.ground):Kp(e,t,n)}const Kp=(e,t,n)=>t.depth===0?[]:[rm(e,{...t,depth:t.depth-1},n).plane],qp=(e,{short:t},n)=>t===null?[]:[`theme "${e.name}": no open-trigger colour stands ${Np}: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`],Jp=(e,t,n)=>t>=Qp.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 ${Qp.triggerPlane} that tells them apart; another style clears it`],Yp={base:.42,perDepth:.14,cap:.75},Xp={floor:.12,span:.8};function Zp(e,t){return ip[(ip.indexOf(e)+t)%ip.length]}const Qp={triggerPlane:.1,nestedPlane:.035};function $p(e,t,n){return em(e,`${tm(t)}|${n}`,()=>{let r=Lp(e,Zp(t.hue,t.depth),Gp(e,t,n),n),{state:i}=r,a=sm(e,t,i,n),o=Ns(rm(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=Fp(n);return{state:i,plane:o,shortfalls:n===B.DEFAULT?[]:[...qp(e,r,n),...Jp(e,nm(s(i),s(o)),n)]}})}const em=rp(),tm=({hue:e,depth:t,ground:n})=>`${e}|${t}|${n.map(e=>sp(e.hue,e.shade)).join(`+`)}`,nm=(e,t)=>H.fromRgba(e).deltaE(H.fromRgba(t));function rm(e,t,n){return im(e,`${tm(t)}|${n}`,()=>am(e,t,n))}const im=rp();function am(e,t,n){let{anchor:r}=Lp(e,Zp(t.hue,t.depth),Gp(e,t,n),n),i=Math.min(Yp.cap,Yp.base+Yp.perDepth*t.depth),a=(t,n)=>qo(r,jp(e,t),n),o=Kp(e,t,n),s=e=>nm(Ip(r),Ip(e))>=Qp.triggerPlane&&o.every(t=>nm(Ip(t),Ip(e))>=Qp.nestedPlane),c=a(`background`,i);return{state:r,plane:[c,a(`foreground`,i),a(`background`,Yp.cap),a(`foreground`,Yp.cap),...om.toSorted((e,t)=>Math.abs(e-i)-Math.abs(t-i)).flatMap(e=>[a(`background`,e),a(`foreground`,e)])].find(s)??c}}const om=Array.from({length:12},(e,t)=>(t+1)/12);function sm(e,t,n,r){let{hue:i,depth:a,ground:o}=t,s=t=>rm(e,{hue:i,depth:t,ground:o},r).state,c=t=>rm(e,{hue:i,depth:t,ground:o},r).plane,l=c(a),u=(e,t)=>nm(Ip(l),Ip(t))>=e?e:0,d=Lp(e,Zp(i,a+1),Gp(e,{hue:i,depth:a+1,ground:o},r),r),f=mo(Ip(l),Ip(d.anchor))>=2.2?Np:0,p=(e,t)=>(n,r)=>nm(n,r(e))>=t;return[p(n,u(Qp.triggerPlane,s(a))),(e,t)=>mo(e,t(d.state))>=f,...a>0?[p($p(e,{hue:i,depth:a-1,ground:o},r).plane,u(Qp.nestedPlane,c(a-1)))]:[]]}function cm(e,t,n,r){let i=$p(e,t,r),a=rm(e,t,r),o=e=>qo(a.plane,a.state,e),s=Xp.floor+Xp.span*bp(n),c=Xp.floor+Xp.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=Ns(o(s+(c-s)*e/12),r,l);if(t!==void 0)return t}return o(s)}const lm=e=>({kind:`bar`,decor:e,address:[]}),um=(e,t)=>({...e,address:[...e.address,t]}),dm=e=>({kind:`band`,band:e,address:[]});function fm(e,t,n){switch(t.kind){case`bar`:{let{decor:r,address:i}=t,a=Dp(r,i),o=Mp(e,a),s;return{tint:o,text:r.shade.text(e,a.hue,o,n),disclosure:{hue:`accent`,depth:0,get ground(){return s??=kp(r,i)}}}}case`band`:{let{band:r,address:i}=t,a=cm(e,r,i,n);return{tint:a,text:Vp(e,a,n),disclosure:{...r,depth:r.depth+1}}}}}const pm=new Map([[`dark`,`textual-dark`],[`light`,`textual-light`]]);function mm(e){let t=typeof e==`string`?pm.get(e):void 0;return t===void 0?``:` — "${e}" was retired; write "${t}", the same palette`}const hm=`textual-dark`;function gm(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function _m(){return tc()}function vm(){return[`bar`,..._m()]}let ym;function bm(e){return ym??=new Set(vm()),ym.has(e)}function xm(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return gm(e===void 0?null:a(e),t,a(n??r),r,a)}const Sm=[`style`,`palette`,`effect`];function Cm(e){return e!==void 0&&e.includes(`{{`)}function wm(e,t,n,r,i){let a=Cm(n)?{kind:`expression`,source:n}:i(n??r.name);return gm(e===void 0?null:i(e),t,a,r,i)}function Tm(e,t){return e.kind===`decided`?e:t(e.source)}const Em=`none`;function Dm(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function Om(e,t){return Dm(e,t)??Dm(`none`,t)??{kind:`decided`,name:`none`,value:ds}}function km(e,t,n,r){return wm(e,t,n,Om(Em,r),e=>Dm(e,r))}const Am=`none`,jm={style:Em,palette:hm,effect:Am};function Mm(e,t,n){return`${e} rendered "${jm[t]}": ${n}`}const Nm=Object.freeze([Am,...Object.keys(Rf.loops)]),Pm=Object.freeze([`bar`,...Nm]);function Fm(e){let t=Nm.find(t=>t===e);return t===void 0?null:{kind:`decided`,name:e,value:t}}function Im(e){return Fm(e)??{kind:`decided`,name:`none`,value:`none`}}function Lm(e,t,n){return wm(e,t,n,Im(Am),Fm)}const Rm=Object.freeze(Object.keys(vd));function zm(e){return Rm.includes(e)}const Bm=[`powerline`,`capsule`,`plain`];function Vm(e){return Bm.includes(e)}function Hm(e,t,n){return gm(e,t,n,`powerline`,e=>zm(e)?e:null)}const Um=[`truecolor`,`256`,`ansi`,`none`];function Wm(e){return Do(e)??B.DEFAULT}const Gm=Object.keys(pp);function Km(e){return Gm.includes(e)}function qm(e,t,n){return gm(e,t,n,`accent`,e=>Km(e)?e:null)}const Jm=Object.keys(dp);function Ym(e){return Jm.includes(e)}function Xm(e,t,n){return gm(e,t,n,`middle`,e=>Ym(e)?e:null)}const Zm=`true`,Qm=`false`,$m=[Zm,Qm],eh={min:0,max:16};function th(e){return e===`true`?!0:e===`false`?!1:null}function nh(e,t){let n=Number(e);return Number.isInteger(n)&&String(n)===e&&n>=t.min&&n<=t.max?n:null}function rh(e){return nh(e,eh)}function ih(e,t,n){return gm(e,t,n,!0,th)}function ah(e,t,n){return gm(e,t,n,!0,th)}function oh(e,t,n){return gm(e,t,n,!1,th)}function sh(e,t,n){return gm(e,t,n,1,rh)}const ch={kind:`still`};function lh(e){return e.effect!==`none`||e.own.some(e=>e.effect!==`none`)||e.fades.length>0||e.leaves.length>0}const uh=Symbol(`bar`);function dh(e){return e.name!==Am}function fh(e,t){return n=>Jc.map(Jc.all(t.map(({t,effect:r})=>nl.run(nl.play(e-t),r(n)))),e=>(t,n)=>e.reduce((e,t)=>t(e,n),t))}const ph=uc;function mh(e,t){let n=new Jo(t,ph.foregroundColor,ph.ansiColors,ph.palette);return t=>e({...t,theme:n})}function hh(e,t){return n=>kd(()=>e(n),...t)(n)}function gh(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 _h=4096;var vh=class{inForce=null;placements=new Map;made=new Map;drawn=null;frame={effect:Am,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:uh,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=Rf.transitions[e]({z:gh(`${this.key}@${n}`)*_h});return{name:e,since:t,transition:{effect:mh(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=gh(t.scope===uh?e:`${e}@${t.scope}`),l=a?i.effect:Rf.loops[t.name]({z:o*_h});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:kd(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(dh),r=te(t);if(n.length===0&&r.length===0)return ch;let a=`${this.key}#${e}`;return{kind:`moving`,wrap:e=>new Cd(e,fh(i.t,[...n.map(e=>{let t=C(a,e);return{t:e.t,effect:e.owners===void 0?t:hh(t,e.owners)}}),...r]),{t:i.t,key:a,theme:ph})}},drawn:()=>{this.inForce=r,this.placements=o,this.made=c,this.drawn=d===`off`?null:{source:n.source,placements:p},this.frame=g}}}},yh=class{sessions=new Map;constructor(e=256){this.maxSessions=e}of(e){let t=this.sessions.get(e)??new vh(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 bh(e,t){return xd(e,{...t,theme:tp,onStyleError:e=>{throw e}})}const xh=new Map;function Sh(e){let t=xh.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}=vd.plain,a=new Vu({glyph:n(r.glyph),ascii:r.ascii},i);return xh.set(e,a),a}function Ch(e,t){return e===`plain`&&t!==void 0?Sh(t):vd[e]}const wh=new Map;function Th(e){let t=JSON.stringify([e.endcaps,e.separator??null]),n=wh.get(t);if(n!==void 0)return n;let r=Ch(e.endcaps,e.separator),i=e=>new K(`x`,{end:``,overflow:`ignore`,style:new U({bgcolor:e})}),a=e=>new K(bh(new mu(e,r),{colorSystem:null}).replace(/\n$/,``)).cellLength,o=a([i(`#101010`)]),s={chrome:o-1,seam:a([i(`#101010`),i(`#202020`)])-o-1};return wh.set(t,s),s}function Eh(e){return Th(e).chrome}function Dh(e){return Th(e).seam}const Oh=/[\u{E000}-\u{F8FF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu;function kh(e){return[...new Set(e.match(Oh)??[])].join(``)}function Ah(e){let t=Ch(e.endcaps,e.separator),n=e=>new K(`x`,{end:``,style:new U({bgcolor:e})});return kh(bh(new mu([n(`#101010`),n(`#202020`),n(`#202020`)],t),{colorSystem:null}))}function jh(e,t,n=ch){if(e.length===0)return``;let r=Ch(t.endcaps,t.separator),i=t.wrap&&Number.isFinite(t.width),a={colorSystem:t.colorCompatibility,...i?{width:t.width}:{}},o=i?new Kf([...e],{joiner:r}):new mu([...e],r),s=bh(n.kind===`still`?o:n.wrap(o),a);if(!s.endsWith(`
|
|
54
|
+
`))throw Error(`renderStripCells: rich-js strip output did not end its last line`);return s.slice(0,-1)}function Mh(e){return Math.min(20,e??20)}const Nh={heading:`ERROR`,glyph:`⚠`,colors:$f},Ph={heading:`WARNING`,glyph:`⚠`,colors:ep},Fh={heading:`UPDATE`,glyph:`⬆`,colors:ep};function Ih(e,t){return{text:Jf(e),link:t}}function Lh(e,t,n){let[r,...i]=[Rh(e,Nh,P),t,Rh(n,Ph,Tn)].flat();return r===void 0?null:{channels:[r,...i]}}function Rh(e,t,n){let r=qn([{verb:n,args:[e]}]),[i,...a]=e.split(/\r\n|\r|\n/).map(e=>Ih(e,r)).filter(e=>e.text!==``).map(e=>[e]);return i===void 0?[]:[{severity:t,message:e,lines:[i,...a]}]}function zh(e){return e.channels.map(e=>`${e.severity.heading}\n${e.message}\n`).join(`
|
|
55
|
+
`)}function Bh(e,t,n,r){if(t===null)return e;let i=Vh(r),a=t.channels.flatMap(e=>Hh(e,i)),o=n.failedConfigFile!==null||a.length>r.rowCap,s=a.slice(0,r.rowCap-Number(o)),c=o?[Uh(t,n,a.length-s.length,i)]:[],l=[...s,...c].join(`
|
|
56
|
+
`);return e?`${l}\n${e}`:l}function Vh(e){return{endcaps:`plain`,separator:``,width:e.width,wrap:!0,padding:0,colorCompatibility:e.colorCompatibility}}function Hh(e,t){let n=new U({bgcolor:e.severity.colors.bg,color:e.severity.colors.fg}),r=Ba(Math.max(2,t.width-1)),i=(e,t)=>new K(`${e} `,{style:t,end:``,overflow:`ignore`});return e.lines.flatMap((a,o)=>jh([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=>Ga(e,r)).map(e=>i(e,t))})],t).split(`
|
|
57
|
+
`))}function Uh(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new U({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new K(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: ${Jf(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(Jf(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=K.fromFragments([...d,...p]).truncate(r.width);return m.overflow=`ignore`,jh([m],r)}const Wh=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function Gh(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function Kh(e,t){return r.readdirSync(t).filter(Wh).sort().flatMap(n=>{let i=l.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?Kh(e,i):[[l.relative(e,i).split(l.sep).join(`/`),Gh(i,a)]]})}function qh(e){let t=ie.createHash(`sha256`);for(let[n,r]of Kh(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const Jh=e=>e.slice(0,7);function Yh(e){return l.dirname(l.dirname(e))}function Xh(){let e=Zh();if(e===null)throw Error("this bundle carries no source digest (build via `pnpm build`, which stamps it)");return{version:Dt,digest:e}}function Zh(){return`fa0c2a6ae87a7d55a9d4b72256a6883d7ee566c1750a8eca8e4a4624d2f57a23`}function Qh(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 $h(e,t){try{let n=Yh(ne(e)),i=l.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=qh(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:Qh(n),digest:o},running:a}}catch(e){return{kind:`unchecked`,reason:e.message}}}var q=class extends Error{constructor(e){super(e),this.name=`BadVerbArgs`}};const eg=new Map;function tg(e){let t=rg(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 ng(e,t){return e===`bar`?t:tg(e)}function rg(e){let t=eg.get(e);if(t!==void 0)return t;let n=nc(e);return n===null?null:(eg.set(e,n),n)}function ig(e,t){return ag(e,`${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,()=>mc(e,t))}const ag=rp();function og(e){let t=rg(e);return t===null?null:{kind:`decided`,name:e,value:t}}function sg(e,t,n){let r=og(e);return r===null?(n(Mm(t,`palette`,`"${e}" names no installed theme${mm(e)}`)),lg()):r}function cg(e,t,n){return wm(e,t,n,lg(),og)}function lg(){return{kind:`decided`,name:hm,value:tg(hm)}}const ug=[`vertical`,`horizontal`],dg={vertical:`row`,horizontal:`cell`};function fg(e){return e.id??e.name}function pg(e){return[...gg(e)].flatMap(e=>e.kind===`segment`?[fg(e)]:[])}function mg(e,t){if(!t.has(e))return e;let n=2;for(;t.has(`${e}-${n}`);)n++;return`${e}-${n}`}function hg(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*gg(e){yield e;for(let t of bg(e))yield*gg(t)}const _g=(e,t)=>`${e}.children[${t}]`,vg=e=>`${e}.opens.body`;function*yg(e,t){if(yield[e,t],e.kind===`container`)for(let[n,r]of e.children.entries())yield*yg(r,_g(t,n));else e.opens!==void 0&&(yield*yg(e.opens.body,vg(t)))}function bg(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}const xg=[`shade`,`variation`,`style`];function Sg(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const Cg=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function wg(e){return e.kind===`file`||e.kind===`shell`}const Tg=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`];function*Eg(e){for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&(yield[t,n]);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))r.kind===`state`&&(yield[`${t}.${e}`,r])}const Dg=`theme`,Og=`effect`,kg=[Dg,Og];function Ag(e){return{...e.settings,[Dg]:{label:Dg,domain:`theme`,default:e.palette??`bar`},[Og]:{label:Og,domain:Pm,default:`bar`}}}function jg(e){let t=e?.domain;return typeof t==`object`&&`min`in t?t:void 0}function Mg(e,t){return Object.entries(e).flatMap(([n,r])=>{let i=jg(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 Ng(e,t){let{domain:n}=e;return n===`bool`?typeof t==`boolean`:n===`theme`?typeof t==`string`&&bm(t):`min`in n?typeof t==`number`&&Number.isInteger(t)&&t>=n.min&&t<=n.max:typeof t==`string`&&n.includes(t)}function Pg(e){return String(e)}function Fg(e,t){let{domain:n}=e;if(typeof n==`object`&&`min`in n)return nh(t,n)??void 0;let r=n===`bool`?t===`true`?!0:t===`false`?!1:t:t;return Ng(e,r)?r:void 0}function Ig(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:Fg(n,o))??i}function Lg(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 Rg=[`left`,`center`,`right`],zg=[`right`,`left`,`middle`],Bg=/^[A-Za-z_][A-Za-z0-9_]*$/;function Vg(e){return`#${e+1}`}const Hg={rows:{}};function Ug(e){return`rows`in e}function Wg(e){return Object.fromEntries(e.map((e,t)=>[Vg(t),e]))}function Gg(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:Wg(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:Wg([n])}}function Kg(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function qg(e){return Ug(e)?Kg(e):e}function*Jg(e,t){if(!Ug(e)){yield*yg(e,t);return}yield[Kg(e),t];for(let[n,r]of Object.entries(e.rows))yield*yg(r,`${t}.rows.${n}`)}function Yg(e,t){return Ug(e)?{...t,...e,rows:{...t.rows,...e.rows}}:Gg(e)}function Xg(e){if(!Ug(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}const Zg=`default`,Qg={};function $g(e){return[...new Set([Zg,...Object.keys(e)])]}function e_(e,t,n){return xm(void 0,e,t,Zg,n)}function t_(e,t){let n={[Zg]:Qg,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${Zg}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function n_(e,t){let n=t_(e.presets,t).root??Hg;return{node:Kg(Yg(n,e.root)),path:Xg(n)?`presets.${t}.root`:`root`}}function r_(e,t){return{...e.globals,...t_(e.presets,t).globals}}const i_=new Map;function a_(e,t,n){i_.set(e,{permanent:!0,resolve:t,paletteOf:n})}a_(`themes`,()=>_m(),e=>tg(e));const o_=`placementThemes`;a_(o_,vm,(e,t)=>ng(e,t.palette)),a_(`endcaps`,()=>Rm),a_(`variations`,()=>Gm),a_(`shades`,()=>Jm),a_(`colorCompatibilities`,()=>Um);function s_(e){return new Map([[`styles`,{members:Object.keys(e.styles),paletteOf:(t,n)=>ig(n.basePalette,e.styles[t])}],[`presets`,{members:$g(e.presets)}]])}function c_(e){return[...new Set([...i_.keys(),...e.keys()])]}function l_(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=i_.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(d_(e,t))}const u_=new Map([[`looks`,`styles`],[`progressions`,`variations`]]);function d_(e,t){let n=u_.get(e);return`unknown option domain "${e}"${n===void 0?``:` — it was renamed "${n}"; write from: "${n}"`} (have: ${c_(t).join(`, `)})`}const f_=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g;function*p_(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 m_=`[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*`,h_=RegExp(`^(?:(\\$)(?:\\.(${m_}))?|\\.(${m_})?)(?=[\\s)]|$)`);function g_(e,t,n){let r=h_.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 __=/^(\w+)\b\s*([\s\S]*)$/;function*v_(e,t){let n=[t];for(let r of p_(e)){let e=r.replace(/^-(?=\s)/,``).trim(),[,i=``,a=``]=__.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:g_(r[1],s,t);continue}yield{code:e,dot:o},i===`if`&&n.push(o),i===`with`&&n.push(g_(a,o,t)),(i===`range`||i===`define`||i===`block`)&&n.push(null)}}const y_=/(?<![.$])\btemplate\s+$/;function*b_(e,t,n){let r=0;for(let i of[...e.matchAll(f_)]){let a=i.index+i[0].length;y_.test(e.slice(r,i.index))&&(yield{name:i[0].slice(1,-1),at:g_(e.slice(a),t,n)}),r=a}}function*x_(e,t){let n=new Set;function*r(e,i,a,o){for(let{code:s,dot:c}of[...v_(e,i)]){yield{code:s,dot:c,root:i,via:a};for(let e of[...b_(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 S_=RegExp(`(?<![A-Za-z0-9_)$])(\\$?)\\.(${m_})`,`g`);function*C_({code:e,dot:t,root:n}){let r=e.replace(f_,``);for(let e of[...r.matchAll(S_)]){let r=e[1]===`$`?n:t;r!==null&&(yield`${r}${e[2]}`)}}function w_(e,t){let n=new Map;for(let r of x_(e,t))for(let e of C_(r))n.has(e)||n.set(e,r.via);return n}const T_=/(?<![.$])\b(action|picker|menu|carousel|swatches|swatch|themePreview)\s+$/,E_={action:1,picker:2,menu:1,carousel:2,swatch:1,swatches:2,themePreview:1};function*D_(e){let t=0,n=0,r=0,i=`action`;for(let a of[...e.matchAll(f_)]){let o=e.slice(t,a.index),s=T_.exec(o);if(s!==null)n=E_[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 O_(e,t){let n=new Map;for(let{code:r,via:i}of x_(e,t))for(let{name:e,site:t}of D_(r)){let r=`${e}\0${i??`\0`}`;n.has(r)||n.set(r,{name:e,site:t,via:i})}return[...n.values()]}function k_(e,t){return new Set([...A_(e,t)].filter(e=>Object.hasOwn(t,e)))}function A_(e,t){let n=new Set;for(let{code:r,dot:i,root:a}of x_(e,t))for(let{name:e}of b_(r,i,a))n.add(e);return n}function j_(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 M_(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),N_(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 N_(e){return e.kind===`dropped`||(e.kind===`shell`||e.kind===`file`)&&Sg(e.parse)===`json`}function P_(e){let t=l.basename(e),n=l.dirname(e);for(;;){let r=F_(n);if(r!==null)return{dir:r,name:t,leaf:n===l.dirname(e)};t=l.basename(n),n=l.dirname(n)}}function F_(e){try{return r.statSync(e).isDirectory()?r.realpathSync(e):null}catch{return null}}var I_=be((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()===zt}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 j.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=Bt,n=Bt){let r=new Ut(e);return t!==Bt&&(r.onBOL=new Set([t])),n!==Bt&&(r.onBUOL=new Set([n])),r}function _(e,t){return kt(e,t)}function v(e,t,n){return e===null||typeof e!=`object`&&typeof e!=`function`||et(e)?e:Array.isArray(e)?on.array(e,{name:n}):o(e)?on.object(e,void 0,{name:n}):u(e)?on.map(e,{name:n}):d(e)?on.set(e,{name:n}):typeof e!=`function`||Ue(e)||Ze(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:Ue(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 Ue(n)||(n=c(n)),(t=s.i)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n}:i==`method`?(Ue(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)||!Ze(e.h[t]))&&this.u(e,t,n,!1)===null?0:Ze(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 Ze(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 Ze(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,Pt({},this.i,{get:n.get,set:n.set}),r)}function E(e,t,n){function r(e){let n=Pt({},i.i,{get:t,context:e});return n.name||=`ObservableObject.${a.toString()}`,new vn(n)}let i=e,{name:a,addInitializer:o}=n,s;return o(function(){let e=St(this)[M],n=this,i=e.j.get(a);i instanceof vn&&i.derivation!==t&&e.j.delete(a),(e.O??=new Map).set(a,()=>r(n))}),function(){let e=this[M],n=e.j.get(a);if(n instanceof vn&&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=St(e)[M];return(n.V??=new Map).set(o,()=>new gn(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[M]??r(this,t.get.call(this)))._(o)},set(e){return(this[M]??r(this,e)).M(o,e)},init(e){return r(this,e),e}}}function de(e){return{t:qt,i:e,o:fe,u:pe}}function fe(e,t,n,r){var i,a,o;if(n.get)return un.o(e,t,n,r);if(n.set){let i=Ue(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?tn:on;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?un.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?tn:on).u(e,t,n,r))}function me(e,t){return Pt(function(n,r){if(r&&typeof r.kind==`string`)return t(e,n,r)},e)}function he(e){return e||Yt}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(),mn&&(hn.value=e,It(i,`name`,hn)),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{Se(a)}}function xe(e,t){let n=P.trackingDerivation,r=!t||!n;O();let i=P.allowStateChanges;r&&Oe();let a={R:r,k:n,C:i,I:P.allowStateReads,P:!1,T:0,B:pn++,D:fn};return fn=a.B,a}function Se(e){fn!==e.B&&t(30),fn=e.D,e.N!==void 0&&(P.suppressReactionErrors=!0),Pe(),e.R&&ke(e.k),P.suppressReactionErrors=!1}function D(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(yn(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 O(){P.inBatch++}function Pe(){--P.inBatch===0&&(Re(),!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 vn&&n.G())}P.pendingUnobservations=[]}finally{P.isRunningUnobservations=!1}}())}function Fe(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.L)==null||t.forEach(Fe))}function Ie(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 Le(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 Re(){P.inBatch>0||P.isRunningReactions||Dn(ze)}function ze(){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 Be(e){return me(e,C)}function Ve(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)?Be(b(e?An:kn,{name:t,autoAction:e})):void 0}}function He(e){return be(0,!1,e,this,void 0)}function Ue(e){return r(e)&&!0===e.isMobxAction}function We(e,t=Rt){function n(){e(a)}var r;let i=t?.name??`Autorun`,a;if(t.scheduler||t.delay){let e=Ge(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 Ge(e){return e.scheduler?e.scheduler:e.delay?t=>setTimeout(t,e.delay):zn}function Ke(e,t,n,i){let a=typeof i==`function`?Tt(t,n):Tt(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 qe(e,t,n,r){let i=Ht(t);return Ot(()=>{let t=St(e,r)[M];Vt(i).forEach(e=>{t.u(e,i[e],!n||!(e in n)||n[e])})}),e}function Je(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(Je)),t}function Ye(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),Ye)),t}function Xe(e){r(e.cancel)&&e.cancel()}function Ze(e){return!0===e?.isMobXFlow}function Qe(e,t){var n;if(t===void 0)return yn(e);if(!1===wt(e))return!1;let r=e[M];return(n=r.O)!=null&&n.has(t)?!0:r.j.has(t)?yn(Tt(e,t)):!1}function $e(e,t){if(!e)return!1;if(t!==void 0){if(wt(e)){var n,r;let i=e[M];return i.j.has(t)||!((n=i.O)==null||!n.has(t))||!((r=i.V)==null||!r.has(t))}return!1}return wt(e)||!!e[M]||Wt(e)||On(e)||yn(e)}function et(e){return $e(e)}function tt(e){return wt(e)?e[M].nt():rr(e)||or(e)?Array.from(e.keys()):yt(e)?e.map((e,t)=>t):void t(5)}function nt(e,n){return wt(e)?e[M].et(n):rr(e)||or(e)?e.has(n):yt(e)?n>=0&&n<e.length:void t(10)}function rt(e){if(wt(e))return e[M].it();t(38)}function it(e,t,n){if(yn(e)){let r,i=!0;return We(()=>{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}),pt(e,t)}function at(e,t,n){return e.set(t,n),n}function ot(e,t){if(typeof e!=`object`||!e||e instanceof Date||!et(e))return e;if(_n(e)||yn(e))return ot(e.get(),t);if(t.has(e))return t.get(e);if(yt(e)){let n=at(t,e,Array(e.length));return e.forEach((e,r)=>{n[r]=ot(e,t)}),n}if(or(e)){let n=at(t,e,new Set);return e.forEach(e=>{n.add(ot(e,t))}),n}if(rr(e)){let n=at(t,e,new Map);return e.forEach((e,r)=>{n.set(r,ot(e,t))}),n}{let n=at(t,e,{});return rt(e).forEach(r=>{j.propertyIsEnumerable.call(e,r)&&(n[r]=ot(e[r],t))}),n}}function st(e,t){O();try{return e.apply(t)}finally{Pe()}}function ct(e,t,n){let r;if(typeof n.timeout==`number`){let e=Error(`WHEN_TIMEOUT`);r=setTimeout(()=>{if(!a[M].isDisposed){if(a(),!n.onError)throw e;n.onError(e)}},n.timeout)}n.name=`When`;let i=ye(`When-effect`,t);var a=We(t=>{D(!1,e)&&(t.dispose(),r&&clearTimeout(r),i())},n);return a}function lt(e){return e[M]}function ut(e){return e.st!==void 0&&e.st.length>0}function dt(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 k(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 ft(e){return e.ot!==void 0&&e.ot.length>0}function pt(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 mt(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 ht(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!==j;){let t=Ft(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 A(e,t){typeof Array.prototype[e]==`function`&&(Qn[e]=t(e))}function gt(e){return function(){let t=this[M];t.ct.reportObserved();let n=t.ht(t.j);return n[e].apply(n,arguments)}}function _t(e){return function(t,n){let r=this[M];return r.ct.reportObserved(),r.ht(r.j)[e]((e,r)=>t.call(n,e,r,this))}}function vt(e){return function(){let t=this[M];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 yt(e){return a(e)&&$n(e[M])}function bt(e){return e[Symbol.toStringTag]=`MapIterator`,Mt(e)}function xt(e){return e[Symbol.toStringTag]=`SetIterator`,Mt(e)}function St(e,t){if(p(e,M))return e;let n=t?.name??`ObservableObject`;return c(e,M,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 N[r]??(N[r]=de({deep:t,autoBind:n}))}(e):void 0}(t))),e}function Ct(e){return sr[e]||(sr[e]={get(){return this[M]._(e)},set(t){return this[M].M(e,t)}})}function wt(e){return!!a(e)&&ur(e[M])}function Tt(e,n){if(typeof e==`object`&&e){if(yt(e))return n!==void 0&&t(23),e[M].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,Dt(e)),r}if(wt(e)){if(!n)return t(26);let r=e[M],i=r.j.get(n)??r.vt(n)??r.bt(n);return i||t(27,n,Dt(e)),i}if(Wt(e)||yn(e)||On(e))return e}else if(r(e)&&On(e[M]))return e[M];t(28)}function Et(e,n){return e||t(29),n===void 0?Wt(e)||yn(e)||On(e)||rr(e)||or(e)?e:e[M]?e[M]:void t(24,e):Et(Tt(e,n))}function Dt(e,t){let n;if(t!==void 0)n=Tt(e,t);else{if(Ue(e))return e.name;n=wt(e)||rr(e)||or(e)?Et(e):Tt(e)}return n.tt}function Ot(e){let t=Oe();O();try{return e()}finally{Pe(),ke(t)}}function kt(e,t,n=-1){return At(e,t,n)}function At(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=jt(e),t=jt(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(!At(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)||!At(e[o],t[o],n-1,i,a))return!1}}return i.pop(),a.pop(),!0}function jt(e){return yt(e)?e.slice():u(e)||rr(e)||d(e)||or(e)?Array.from(e.entries()):e}function Mt(e){return e[Symbol.iterator]=Nt,Pt(Object.create(fr),e)}function Nt(){return this}Object.defineProperty(e,`__esModule`,{value:!0});let Pt=Object.assign,Ft=Object.getOwnPropertyDescriptor,It=Object.defineProperty,j=Object.prototype,Lt=[];Object.freeze(Lt);let Rt={};Object.freeze(Rt);let zt=Object.toString(),Bt=()=>{},Vt=Reflect.ownKeys,Ht=Object.getOwnPropertyDescriptors,M=Symbol(`mobx administration`);var Ut=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 Ie(this)}reportChanged(){O(),Le(this),Pe()}toString(){return this.tt}};let Wt=l(`Atom`,Ut),Gt=Object.is,Kt={t:`override`,o:function(){return 0},u:function(){t(44,this.t)}},qt=`true`,Jt=de(),N=[Jt],Yt={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Yt);let Xt=se(`observable`),Zt=se(`observable.ref`,{A:y}),Qt=se(`observable.shallow`,{A:function(e,t,n){return e==null||wt(e)||yt(e)||rr(e)||or(e)?e:Array.isArray(e)?on.array(e,{name:n,deep:!1}):o(e)?on.object(e,void 0,{name:n,deep:!1}):u(e)?on.map(e,{name:n,deep:!1}):d(e)?on.set(e,{name:n,deep:!1}):void 0}}),$t=se(`observable.struct`,{A:function(e,t){return kt(e,t)?t:e}}),en={box(e,t){let n=he(t);return new gn(e,_e(n),n.name,!0,n.equals)},array(e,t){let n=he(t);return function(e,t,n=`ObservableArray`,r=!1){return Ot(()=>{let i=new Zn(n,t,r);It(i.j,M,{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)=>Ot(()=>qe(function(e,t){var n;return(n=(e=St(e,t))[M]).v??(n.v=new Proxy(e,Kn))}({},n),e,t))},tn=ge(Zt),nn=ge(Qt),rn=ge(Xt),an=ge($t);var on=Pt(function(e,t,n){return t&&typeof t.kind==`string`?ue(Xt,e,t):et(e)?e:o(e)?on.object(e,t,n):Array.isArray(e)?on.array(e,t):u(e)?on.map(e,t):d(e)?on.set(e,t):typeof e==`object`&&e?e:on.box(e,t)},Xt,en);let sn=`computed`,cn=w(sn),ln=ve(w(`computed.struct`,{equals:_})),un=function(e,t){if(t&&typeof t.kind==`string`)return E(cn,e,t);if(o(e))return ve(w(sn,e));let n=o(t)?t:{};return n.get=e,n.name||=e.name||``,new vn(n)};var dn;Pt(un,cn);let fn=0,pn=1,mn=(dn=Ft(()=>{},`name`)?.configurable)!=null&&dn,hn={value:`action`,configurable:!0,writable:!1,enumerable:!1};var gn=class extends Ut{constructor(e,t,n=`ObservableValue`,r=!0,i=Gt){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(ut(this)){let t=k(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(),ft(this)&&mt(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 _n=l(`ObservableValue`,gn);var vn=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||Gt,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(Ie(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(Fe)}else we(this)&&(this.Nt(),O(),this.rt=this.Rt(!1),Pe());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 yn=l(`ComputedValue`,vn);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),Re())}X(){if(!this.isDisposed){O(),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,Pe()}}track(e){if(this.isDisposed)return;O(),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),Pe()}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||(O(),Ee(this),Pe()))}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[M]=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=Ve(!1);Pt(Fn,jn);let In=Ve(!0);Pt(In,Nn);let Ln=Be(Mn),Rn=Be(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=Pt(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&&Xe(o);let e=t.return(void 0),n=Promise.resolve(e.value);n.then(Bt,Bt),Xe(n),a(new Vn)}catch(e){a(e)}}),s};return a.isMobXFlow=!0,a},Hn),Gn=me(Un,ie),Kn={has:(e,t)=>lt(e).et(t),get:(e,t)=>lt(e).Tt(t),set(e,t,n){var r;return!!i(t)&&((r=lt(e).Bt(t,n,!0))==null||r)},deleteProperty(e,t){var n;return!!i(t)&&((n=lt(e).Dt(t,!0))==null||n)},defineProperty(e,t,n){var r;return(r=lt(e).l(t,n))==null||r},ownKeys:e=>lt(e).it(),preventExtensions(e){t(13)}},qn=Symbol(`mobx-keys`),Jn=`splice`,Yn=`update`,Xn={get(e,t){let n=e[M];return t===M?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[M];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 Ut(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=Lt),ut(this)){let r=k(this,{object:this.v,type:Jn,index:e,removedCount:t,added:n});if(!r)return Lt;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=ft(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&&mt(this,i)}Ft(e,t,n){let r=ft(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&&mt(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(ut(this)){let n=k(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[M];return t.wt(0,t.j.length,e)},toJSON(){return this.slice()},splice(e,t,...n){let r=this[M];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[M].wt(e,t,n)},push(...e){let t=this[M];return t.wt(t.j.length,0,e),t.j.length},pop(){return this.splice(Math.max(this[M].j.length-1,0),1)[0]},shift(){return this.splice(0,1)[0]},unshift(...e){let t=this[M];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[M],n=t.ht(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};A(`at`,gt),A(`concat`,gt),A(`flat`,gt),A(`includes`,gt),A(`indexOf`,gt),A(`join`,gt),A(`lastIndexOf`,gt),A(`slice`,gt),A(`toString`,gt),A(`toLocaleString`,gt),A(`toSorted`,gt),A(`toSpliced`,gt),A(`with`,gt),A(`every`,_t),A(`filter`,_t),A(`find`,_t),A(`findIndex`,_t),A(`findLast`,_t),A(`findLastIndex`,_t),A(`flatMap`,_t),A(`forEach`,_t),A(`map`,_t),A(`some`,_t),A(`toReversed`,_t),A(`reduce`,vt),A(`reduceRight`,vt);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[M]=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,Ot(()=>{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 gn(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(ut(this)){let r=k(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(ut(this)&&!k(this,{type:tr,object:this,name:e}))return!1;if(this.et(e)){let t=ft(this),n=t?{observableKind:`map`,debugObjectName:this.tt,type:tr,object:this,oldValue:this.ft.get(e).rt,name:e}:null;return st(()=>{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&&mt(this,n),!0}return!1}Gt(e,t){let n=this.ft.get(e);if((t=n.jt(t))!==P.UNCHANGED){let r=ft(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:Yn,object:this,oldValue:n.rt,name:e,newValue:t}:null;n.Ot(t),r&&mt(this,i)}}Jt(e,t){st(()=>{var n;let r=new gn(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=ft(this);n&&mt(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 bt({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 bt({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)),st(()=>{o(e)?function(e){let t=Object.keys(e),n=Object.getOwnPropertySymbols(e);return n.length?[...t,...n.filter(t=>j.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(){st(()=>{De(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return st(()=>{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[M]=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),Ot(()=>{this.ct=g(this.tt),e&&this.replace(e)})}Wt(e){return this.dehancer===void 0?e:this.dehancer(e)}clear(){st(()=>{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(ut(this)){let t=k(this,{type:`add`,object:this,newValue:e});if(!t)return this;e=t.newValue}if(!this.has(e)){st(()=>{e=this.A(e,void 0),this.ft.add(e),this.ct.reportChanged()});let t=ft(this);t&&mt(this,t?{observableKind:`set`,debugObjectName:this.tt,type:`add`,object:this,newValue:e}:null)}return this}delete(e){if(ut(this)&&!k(this,{type:tr,object:this,oldValue:e}))return!1;if(this.has(e)){let t=ft(this),n=t?{observableKind:`set`,debugObjectName:this.tt,type:tr,object:this,oldValue:e}:null;return st(()=>{this.ct.reportChanged(),this.ft.delete(e)}),t&&mt(this,n),!0}return!1}has(e){return this.ct.reportObserved(),this.ft.has(this.Wt(e))}entries(){let e=this.values();return xt({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 xt({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)?st(()=>{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=Jt){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 Ut(`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 vn)return n.set(t),!0;if(ut(this)){let n=k(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=ft(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&&mt(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 gn(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{O();let r=this.Dt(e);if(!r)return r;if(ut(this)){let n=k(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=Pt({},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{Pe()}return!0}S(e,t,n,r=!1){try{O();let i=this.Dt(e);if(!i)return i;if(ut(this)){let n=k(this,{object:this.v||this.h,name:e,type:`add`,newValue:t});if(!n)return null;t=n.newValue}let a=Ct(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 gn(t,n,`ObservableObject.key`,!1);this.j.set(e,s),this.Yt(e,s.rt)}finally{Pe()}return!0}m(e,t,n=!1){try{O();let r=this.Dt(e);if(!r)return r;if(ut(this)&&!k(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=Ct(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 vn(t)),this.Yt(e,void 0)}finally{Pe()}return!0}Dt(e,t=!1){if(!p(this.h,e))return!0;if(ut(this)&&!k(this,{object:this.v||this.h,name:e,type:cr}))return null;try{var n;O();let r=ft(this),i=this.j.get(e),a;if(i||!r||(a=Ft(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 gn&&(a=i.rt),Le(i)),this.lt.reportChanged(),(n=this.Qt)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&mt(this,{type:cr,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{Pe()}return!0}Yt(e,t){var n;let r=ft(this);r&&r&&mt(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(),Vt(this.h)}nt(){return this.lt.reportObserved(),Object.keys(this.h)}};let ur=l(`ObservableObjectAdministration`,lr),dr=j.toString,fr=globalThis.Iterator?.prototype||{};e.$mobx=M,e.FlowCancellationError=Vn,e.ObservableMap=nr,e.ObservableSet=ar,e.Reaction=Tn,e._allowStateChanges=D,e._allowStateChangesInsideComputed=He,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=Se,e._getAdministration=Et,e._getGlobalState=function(){return P},e._interceptReads=function(e,t,n){let r;return rr(e)||yt(e)||_n(e)?r=Et(e):wt(e)&&(r=Et(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=We,e.compareDefault=Gt,e.compareIdentity=function(e,t){return e===t},e.compareShallow=function(e,t){return kt(e,t,1)},e.compareStructural=_,e.computed=un,e.computedStruct=ln,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(wt(e))return e[M].l(n,r);t(39)},e.entries=function(e){return wt(e)?tt(e).map(t=>[t,e[t]]):rr(e)?tt(e).map(t=>[t,e.get(t)]):or(e)?Array.from(e.entries()):yt(e)?e.map((e,t)=>[t,e]):void t(7)},e.extendObservable=qe,e.flow=Wn,e.flowBound=Gn,e.flowResult=function(e){return e},e.get=function(e,n){if(nt(e,n))return wt(e)?e[M].Tt(n):rr(e)?e.get(n):yt(e)?e[n]:void t(11)},e.getAtom=Tt,e.getDebugName=Dt,e.getDependencyTree=function(e,t){return Je(Tt(e,t))},e.getObserverTree=function(e,t){return Ye(Tt(e,t))},e.has=nt,e.intercept=function(e,t,n){return r(n)?function(e,t,n){return dt(Et(e,t),n)}(e,t,n):function(e,t){return dt(Et(e),t)}(e,t)},e.isAction=Ue,e.isBoxedObservable=_n,e.isComputed=function(e){return Qe(e)},e.isComputedProp=function(e,t){return Qe(e,t)},e.isFlow=Ze,e.isFlowCancellationError=function(e){return e instanceof Vn},e.isObservable=et,e.isObservableArray=yt,e.isObservableMap=rr,e.isObservableObject=wt,e.isObservableProp=function(e,t){return $e(e,t)},e.isObservableSet=or,e.keys=tt,e.makeAutoObservable=function(e,t,n){return o(e)?qe(e,e,t,n):(Ot(()=>{let r=St(e,n)[M];if(!e[qn]){let t=Object.getPrototypeOf(e),n=new Set([...Vt(e),...Vt(t)]);n.delete(`constructor`),n.delete(M),c(t,qn,n)}e[qn].forEach(e=>ht(r,e,!t||!(e in t)||t[e]))}),e)},e.makeObservable=function(e,t,n){return Ot(()=>{let r=St(e,n)[M];Vt(t).forEach(e=>ht(r,e,t[e]))}),e},e.observable=on,e.observableDeep=rn,e.observableRef=tn,e.observableShallow=nn,e.observableStruct=an,e.observe=function(e,t,n,i){return r(n)?function(e,t,n,r){return it(Et(e,t),n,r)}(e,t,n,i):function(e,t,n){let r=Et(e);if(yt(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)&&!wt(e))return it(r,t,n);return pt(r,t)}(e,t,n)},e.onBecomeObserved=function(e,t,n){return Ke(`onBO`,e,t,n)},e.onBecomeUnobserved=function(e,t,n){return Ke(`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=Kt,e.ownKeys=rt,e.reaction=function(e,t,n=Rt){function r(){if(p=!1,h.isDisposed)return;let t=!1,r=d;h.track(()=>{let n=D(!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=Ge(n),d,f=!0,p=!1,m=n.equals||Gt,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){wt(e)?e[M].Dt(n):rr(e)||or(e)?e.delete(n):yt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=He,e.set=function e(n,r,i){if(arguments.length===2&&!or(n)){O();let t=r;try{for(let r in t)e(n,r,t[r])}finally{Pe()}return}wt(n)?n[M].Bt(r,i):rr(n)?n.set(r,i):or(n)?n.add(r):yt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(42,r),O(),r>=n.length&&(n.length=r+1),n[r]=i,Pe()):t(8)},e.spy=function(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}},e.toJS=function(e){return ot(e,new Map)},e.transaction=st,e.untracked=De,e.values=function(e){return wt(e)?tt(e).map(t=>e[t]):rr(e)?tt(e).map(t=>e.get(t)):or(e)?Array.from(e.values()):yt(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 Pt(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:()=>null});let r,i,a=new Promise((n,a)=>{var o;let s=ct(e,n,Pt({},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):ct(e,t,n||{})}})),L_=be((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++N.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 cn(this)}reportChanged(){rn(),ln(this),an()}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)?k.array(e,{name:n}):g(e)?k.object(e,void 0,{name:n}):x(e)?k.map(e,{name:n}):C(e)?k.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)||gi(e)||vi(e))return e;if(Array.isArray(e))return k.array(e,{name:r,deep:!1});if(g(e))return k.object(e,void 0,{name:r,deep:!1});if(x(e))return k.map(e,{name:r,deep:!1});if(C(e))return k.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_:Se};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 Se(e,t,r,i){n(44,this.annotationType_)}function D(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=>bt(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=N.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:bt(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=N.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 O(e,t){return{annotationType_:e,options_:t,make_:Pe,extend_:Fe}}function Pe(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Fe(e,t,n,i){return Le(e,this,t,n),e.defineComputedProperty_(t,r({},this.options_,{get:n.get,set:n.set}),i)}function Ie(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 kt(o)}return o(function(){let e=Ci(this)[E],n=this,r=e.values_.get(a);r instanceof kt&&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 kt&&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 Le(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 Re(e,t){return{annotationType_:e,options_:t,make_:ze,extend_:Be}}function ze(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function Be(e,t,n,r){return He(e,this,t,n),e.defineObservableProperty_(t,n.value,this.options_?.enhancer_??me,r)}function Ve(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 Dt(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 He(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 Ue=We();function We(e){return{annotationType_:`true`,options_:e,make_:qe,extend_:Je}}let Ge=[Ue];function Ke(e){let t=e.deep!==!1,n=!!e.autoBind,r=!t|(n?2:0);return Ge[r]??(Ge[r]=We({deep:t,autoBind:n}))}function qe(e,t,n,r){var i;if(n.get)return A.make_(e,t,n,r);if(n.set){let i=Rn(n.set)?n.set:bt(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:N.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?ct:k;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 Je(e,t,n,r){var i;return n.get?A.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:N.safeDescriptors?e.isPlainObject_:!0,set:bt(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?ct:k).extend_(e,t,n,r))}function Ye(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 Xe={deep:!0,name:void 0,defaultDecorator:void 0};Object.freeze(Xe);function Ze(e){return e||Xe}let Qe=Re(`observable`),$e=Re(`observable.ref`,{enhancer_:ge}),et=Re(`observable.shallow`,{enhancer_:he}),tt=Re(`observable.struct`,{enhancer_:_e});function nt(e){return Ye(e,Ve)}function rt(e){return e.deep===!0?me:e.deep===!1?ge:at(e.defaultDecorator)}function it(e){return e?e.defaultDecorator??Ke(e):void 0}function at(e){return e?e.options_?.enhancer_??me:me}function ot(e,t,n){return t&&typeof t.kind==`string`?Ve(Qe,e,t):br(e)?e:g(e)?k.object(e,t,n):Array.isArray(e)?k.array(e,t):x(e)?k.map(e,t):C(e)?k.set(e,t):typeof e==`object`&&e?e:k.box(e,t)}let st={box(e,t){let n=Ze(t);return new Dt(e,rt(n),n.name,!0,n.equals)},array(e,t){let n=Ze(t);return ai(e,rt(n),n.name)},map(e,t){let n=Ze(t);return new hi(e,rt(n),n.name)},set(e,t){let n=Ze(t);return new L(e,rt(n),n.name)},object(e,t,n){return Mi(()=>Yn(Wr({},n),e,t))}},ct=nt($e),lt=nt(et),ut=nt(Qe),dt=nt(tt);var k=r(ot,Qe,st);let ft=`computed`;function pt(e){return Ye(e,Ie)}let mt=O(ft),ht=pt(O(`computed.struct`,{equals:de})),A=function(e,t){if(t&&typeof t.kind==`string`)return Ie(mt,e,t);if(g(e))return pt(O(ft,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 kt(r)};r(A,mt);let gt=0,_t=1,vt=i(()=>{},`name`)?.configurable??!1,yt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function bt(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 xt(e,r,t,i||this,arguments)}return o.isMobxAction=!0,o.toString=()=>t.toString(),vt&&(yt.value=e,a(o,`name`,yt)),o}function xt(e,t,n,r,i){let a=St(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Ct(a)}}function St(e,t,n,r){let i=yn()&&!!e,a=0;i&&(a=Date.now(),xn({type:P,name:e,object:n,arguments:r?Array.from(r):s}));let o=N.trackingDerivation,c=!t||!o;rn();let l=N.allowStateChanges;c&&(Vt(),l=Tt(!0));let u=N.allowStateReads;M(!0);let d={runAsAction_:c,prevDerivation_:o,prevAllowStateChanges_:l,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:_t++,parentActionId_:gt};return gt=d.actionId_,d}function Ct(e){gt!==e.actionId_&&n(30),gt=e.parentActionId_,e.error_!==void 0&&(N.suppressReactionErrors=!0),Et(e.prevAllowStateChanges_),Ut(e.prevAllowStateReads_),an(),e.runAsAction_&&Ht(e.prevDerivation_),e.notifySpy_&&Cn({time:Date.now()-e.startTime_}),N.suppressReactionErrors=!1}function wt(e,t){let n=Tt(e);try{return t()}finally{Et(n)}}function Tt(e){let t=N.allowStateChanges;return N.allowStateChanges=e,t}function Et(e){N.allowStateChanges=e}var Dt=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&&yn()&&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!==N.UNCHANGED){let n=yn();n&&xn({type:ni,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Cn()}}prepareNewValue_(e){if(Ft(this),Gr(this)){let t=qr(this,{object:this,type:ni,newValue:e});if(!t)return N.UNCHANGED;e=t.newValue}return e=this.enhancer_(e,this.value_,this.name_),this.equals_(this.value_,e)?N.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 Ot=b(`ObservableValue`,Dt);var kt=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 jt(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_=bt(this.name_+`-setter`,e.set)),this.equals_=e.equals||pe,this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}onBecomeStale_(){dn(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),N.inBatch===0&&(!this.observers_||this.observers_.size===0)&&!this.keepAlive_)Nt(this)&&(this.warnAboutUntrackedRead_(),rn(),this.value_=this.computeValue_(!1),an());else{let e=this.isBeingObserved;if(cn(this),Nt(this)){let e=N.trackingContext;!e&&(this.keepAlive_||this.isBeingObserved)&&(N.trackingContext=this),this.trackAndCompute()&&un(this),N.trackingContext=e}else !e&&this.isBeingObserved&&this.observing_.forEach(sn)}let e=this.value_;if(Mt(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||Mt(e)||Mt(n)||!this.equals_(e,n);return r&&(this.value_=n,yn()&&bn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r}computeValue_(e){this.isComputing=!0;let t=Tt(!1),n;if(e)n=j(this,this.derivation,this.scope_);else if(N.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new jt(e)}return Et(t),this.isComputing=!1,n}suspend_(){this.keepAlive_||(zt(this),this.value_=void 0)}warnAboutUntrackedRead_(){(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:N.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 At=b(`ComputedValue`,kt);var jt=class{constructor(e){this.cause=void 0,this.cause=e}};function Mt(e){return e instanceof jt}function Nt(e){switch(e.dependenciesState_){case 0:return!1;case-1:case 2:return!0;case 1:{let t=M(!0),n=Vt(),r=e.observing_,i=r.length;for(let a=0;a<i;a++){let i=r[a];if(At(i)){if(N.disableErrorBoundaries)i.get();else try{i.get()}catch{return Ht(n),Ut(t),!0}if(e.dependenciesState_===2)return Ht(n),Ut(t),!0}}return Wt(e),Ht(n),Ut(t),!1}}}function Pt(){return N.trackingDerivation!==null}function Ft(e){let t=!!e.observers_&&e.observers_.size>0;!N.allowStateChanges&&(t||N.enforceActions===`always`)&&console.warn(`[MobX] `+(N.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){!N.allowStateReads&&N.observableRequiresReaction&&console.warn(`[mobx] Observable '${e.name_}' being read outside a reactive context.`)}function j(e,t,n){let r=M(!0);Wt(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++N.runId;let i=N.trackingDerivation;N.trackingDerivation=e,N.inBatch++;let a;if(N.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new jt(e)}return N.inBatch--,N.trackingDerivation=i,Rt(e),Lt(e),Ut(r),a}function Lt(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:N.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '${e.name_}' is created/updated without reading any observable value.`)}function Rt(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&&tn(n,e),n.diffValue=0}for(;i--;){let t=n[i];t.diffValue===1&&(t.diffValue=0,en(t,e))}r!==0&&(e.dependenciesState_=r,e.onBecomeStale_())}function zt(e){let t=e.observing_;e.observing_=[];let n=t.length;for(;n--;)tn(t[n],e);e.dependenciesState_=-1}function Bt(e){let t=Vt();try{return e()}finally{Ht(t)}}function Vt(){let e=N.trackingDerivation;return N.trackingDerivation=null,e}function Ht(e){N.trackingDerivation=e}function M(e){let t=N.allowStateReads;return N.allowStateReads=e,t}function Ut(e){N.allowStateReads=e}function Wt(e){if(e.dependenciesState_===0)return;e.dependenciesState_=0;let t=e.observing_,n=t.length;for(;n--;)t[n].lowestObserverState_=0}let Gt=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`];var Kt=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 qt=!0,Jt=!1,N=function(){let e=globalThis;return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(qt=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==7&&(qt=!1),qt?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Kt):(setTimeout(()=>{Jt||n(35)},1),new Kt)}();function Yt(){if((N.pendingReactions.length||N.inBatch||N.isRunningReactions)&&n(36),Jt=!0,qt){let e=globalThis;--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),N=new Kt}}function Xt(){return N}function Zt(){let e=new Kt;for(let t in e)Gt.indexOf(t)===-1&&(N[t]=e[t]);N.allowStateChanges=!N.enforceActions}function Qt(e){return!!e.observers_&&e.observers_.size>0}function $t(e){return e.observers_??new Set}function en(e,t){(e.observers_??=new Set).add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function tn(e,t){let n=e.observers_;n&&(n.delete(t),n.size===0&&nn(e))}function nn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,N.pendingUnobservations.push(e))}function rn(){N.inBatch++}function an(){--N.inBatch===0&&(hn(),!N.isRunningUnobservations&&N.pendingUnobservations.length>0&&on())}function on(){N.isRunningUnobservations=!0;try{let e=N.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 kt&&n.suspend_())}N.pendingUnobservations=[]}finally{N.isRunningUnobservations=!1}}function sn(e){var t;e.isBeingObserved||(e.isBeingObserved=!0,e.onBO(),(t=e.observing_)==null||t.forEach(sn))}function cn(e){It(e);let t=N.trackingDerivation;return t===null?((!e.observers_||e.observers_.size===0)&&N.inBatch>0&&nn(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&N.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function ln(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 un(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 dn(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 fn=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,N.pendingReactions.push(this),hn())}runReaction_(){if(!this.isDisposed){rn(),this.isScheduled=!1;let e=N.trackingContext;if(N.trackingContext=this,Nt(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&yn()&&bn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}N.trackingContext=e,an()}}track(e){if(this.isDisposed)return;rn();let t=yn(),n;t&&(n=Date.now(),xn({name:this.name_,type:`reaction`})),this.isRunning=!0;let r=N.trackingContext;N.trackingContext=this;let i=j(this,e,void 0);N.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&zt(this),Mt(i)&&this.reportExceptionInDerivation_(i.cause),t&&Cn({time:Date.now()-n}),an()}reportExceptionInDerivation_(e){if(this.errorHandler_){this.errorHandler_(e,this);return}if(N.disableErrorBoundaries)throw e;let t=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '${this}'`;N.suppressReactionErrors?console.warn(`[mobx] (error in reaction '${this.name_}' suppressed, fix error of causing action below)`):console.error(t,e),yn()&&bn({type:`error`,name:this.name_,message:t,error:``+e}),N.globalReactionErrorHandlers.forEach(t=>t(e,this))}dispose(){if(!this.isDisposed){var e;this.isDisposed=!0,(e=this.removeAbortListener_)==null||e.call(this),this.isRunning||(rn(),zt(this),an())}}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 pn(e){return N.globalReactionErrorHandlers.push(e),()=>{let t=N.globalReactionErrorHandlers.indexOf(e);t>=0&&N.globalReactionErrorHandlers.splice(t,1)}}let mn=e=>e();function hn(){N.inBatch>0||N.isRunningReactions||mn(gn)}function gn(){N.isRunningReactions=!0;let e=N.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_()}N.isRunningReactions=!1}let _n=b(`Reaction`,fn);function vn(e){let t=mn;mn=n=>e(()=>t(n))}function yn(){return!!N.spyListeners.length}function bn(e){if(!N.spyListeners.length)return;let t=N.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 N.spyListeners.push(e),d(()=>{N.spyListeners=N.spyListeners.filter(t=>t!==e)})}let P=`action`,Tn=`autoAction`,En=`<unnamed action>`,Dn=D(P),On=D(`action.bound`,{bound:!0}),kn=D(Tn,{autoAction:!0}),An=D(`autoAction.bound`,{autoAction:!0,bound:!0});function jn(e){return Ye(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 bt(t.name||En,t,e);if(p(r))return bt(t,r,e);if(m(t))return jn(D(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 xt(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 fn(i,function(){this.track(s)},t.onError,t.requiresObservable);else{let e=Vn(t),n=!1;o=new fn(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 fn(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=wt(!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&&Yt();let{enforceActions:t}=e;if(t!==void 0){let e=t===qn?qn:t===`observed`;N.enforceActions=e,N.allowStateChanges=!(e===!0||e===qn)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(t=>{t in e&&(N[t]=!!e[t])}),N.allowStateReads=!N.observableRequiresReaction,N.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&vn(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`),gi(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 Qt(e)&&(t.observers=Array.from($t(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 Ye(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(gi(e)||fi(e)||Ot(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 At(e);if(Ei(e)===!1)return!1;let r=e[E];return(n=r.lazyComputedKeys_)!=null&&n.has(t)?!0:r.values_.has(t)?At(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(gi(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)||_n(e)||At(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(gi(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(gi(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(gi(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)){rn();let n=t;try{for(let t in n)Tr(e,t,n[t])}finally{an()}return}Ei(e)?e[E].set_(t,r):gi(e)?e.set(t,r):vi(e)?e.add(t):fi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(42,t),rn(),t>=e.length&&(e.length=t+1),e[t]=r,an()):n(8)}function Er(e,t){Ei(e)?e[E].delete_(t):gi(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(gi(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(gi(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(gi(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(At(e)){let r=!0,i;return zn(()=>{let a=e.get();if(!r||n){let n=Vt();t({observableKind:`computed`,debugObjectName:e.name_,type:ni,object:e,newValue:a,oldValue:i}),Ht(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(Ot(e)||At(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(gi(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){rn();try{return e.apply(t)}finally{an()}}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=bt(n.name+`-effect`,t);var a=zn(t=>{wt(!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=Vt();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{Ht(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=Vt(),r=e.changeListeners_;if(r){r=r.slice();for(let e=0,n=r.length;e<n;e++)r[e](t);Ht(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){Ft(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_&&yn(),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_&&yn(),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){Ft(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 N.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort(){N.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(!N.trackingDerivation)return this.has_(e);let t=this.hasMap_.get(e);if(!t){let n=t=new Dt(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(Ft(this.keysAtom_),Gr(this)&&!qr(this,{type:mi,object:this,name:e}))return!1;if(this.has_(e)){let t=yn(),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!==N.UNCHANGED){let r=yn(),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){Ft(this.keysAtom_),Rr(()=>{var n;let r=new Dt(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=yn(),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 gi(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(()=>{Bt(()=>{for(let e of this.keys())this.delete(e)})})}replace(e){return Rr(()=>{let t=F(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`}},gi=b(`ObservableMap`,hi);function _i(e){return e[Symbol.toStringTag]=`MapIterator`,Ri(e)}function F(e){if(x(e)||gi(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 I={};var L=class{constructor(e,t=me,n=`ObservableSet@`+u()){this.name_=void 0,this[E]=I,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(()=>{Bt(()=>{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(Ft(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=yn(),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=yn(),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`,L);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=Ue){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 kt)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!==N.UNCHANGED){let r=Jr(this),i=yn(),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 N.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(!N.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;let t=this.pendingKeys_.get(e);return t||(t=new Dt(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){Ft(this.keysAtom_);try{rn();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{an()}return!0}defineObservableProperty_(e,t,n,r=!1){Ft(this.keysAtom_);try{rn();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:N.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 Dt(t,n,`${this.name_}.${e.toString()}`,!1);this.values_.set(e,c),this.notifyPropertyAddition_(e,c.value_)}finally{an()}return!0}defineComputedProperty_(e,t,n=!1){Ft(this.keysAtom_);try{rn();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:N.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 kt(t)),this.notifyPropertyAddition_(e,void 0)}finally{an()}return!0}delete_(e,t=!1){if(Ft(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;rn();let r=Jr(this),a=yn(),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 Dt&&(s=o.value_),ln(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{an()}return!0}notifyPropertyAddition_(e,t){var n;let r=Jr(this),i=yn();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),it(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(gi(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)||At(e)||_n(e))return e}else if(p(e)&&_n(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)||At(e)||_n(e)||gi(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)||gi(e)||vi(e)?Ai(e):ki(e);return n.name_}function Mi(e){let t=Vt(),n=Tt(!0);rn();try{return e()}finally{an(),Et(n),Ht(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)||gi(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=L,e.Reaction=fn,e._allowStateChanges=wt,e._allowStateChangesInsideComputed=Ln,e._allowStateReadsEnd=Ut,e._allowStateReadsStart=M,e._autoAction=Pn,e._autoActionBound=In,e._endAction=Ct,e._getAdministration=Ai,e._getGlobalState=Xt,e._interceptReads=fr,e._isComputingDerivation=Pt,e._resetGlobalState=Zt,e._startAction=St,e.action=Nn,e.actionBound=Fn,e.autorun=zn,e.compareDefault=pe,e.compareIdentity=ue,e.compareShallow=fe,e.compareStructural=de,e.computed=A,e.computedStruct=ht,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=Ot,e.isComputed=_r,e.isComputedProp=vr,e.isFlow=dr,e.isFlowCancellationError=rr,e.isObservable=br,e.isObservableArray=fi,e.isObservableMap=gi,e.isObservableObject=Ei,e.isObservableProp=xr,e.isObservableSet=vi,e.keys=Sr,e.makeAutoObservable=$r,e.makeObservable=Zr,e.observable=k,e.observableDeep=ut,e.observableRef=ct,e.observableShallow=lt,e.observableStruct=dt,e.observe=jr,e.onBecomeObserved=Wn,e.onBecomeUnobserved=Gn,e.onReactionError=pn,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=Bt,e.values=Cr,e.when=zr})),R_=be(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=I_():t.exports=L_()}))();function z_(e){if(Array.isArray(e))return Object.freeze(e.map(z_));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]=z_(r);return Object.freeze(t)}return e}function B_(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 V_(e){return typeof e==`string`?e:String(e)}function H_(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 U_(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 W_=class extends Error{constructor(e,t){super(t),this.variable=e}};function G_(e){return e instanceof W_||e instanceof Error&&e.cause!==void 0&&G_(e.cause)}var K_=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?tv(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}},q_=class extends K_{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},J_=class extends K_{name=`EvalError`;kind=`EvalError`},Y_=class extends J_{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=nv(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}},X_=class extends J_{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}},Z_=class extends J_{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 Z_{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)}`}},$_=class extends J_{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},ev=class extends J_{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function tv(e,t){let n=e.split(`
|
|
58
58
|
`),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(`
|
|
59
|
-
`)}function
|
|
59
|
+
`)}function nv(e,t){if(t.length===0)return[];let n=t.map(t=>({name:t,dist:rv(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 rv(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 iv(e){throw Error(`unhandled node kind: ${JSON.stringify(e)}`)}const av=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`]]),ov={left:`{{`,right:`}}`};var sv=class{src;leftDelim;rightDelim;offset=0;line=1;column=1;mode=`text`;pending;constructor(e,t=ov){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 q_(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&&cv(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);cv(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);cv(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(;cv(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`;cv(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&&(uv(e)||lv(e)&&uv(this.src[this.offset+1]??``)||e===`.`&&uv(this.src[this.offset+1]??``)))return this.readNumber(t);if(e===`.`)return this.readDotOrField(t);if(e!==void 0&&hv(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===`
|
|
60
60
|
`)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===`
|
|
61
|
-
`)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(
|
|
61
|
+
`)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(lv(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);dv(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);fv(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);pv(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);return this.finishNumber(t,e)}}for(;uv(this.src[this.offset]??``)||this.src[this.offset]===`_`;)this.advanceBy(1);if(this.src[this.offset]===`.`)for(this.advanceBy(1);uv(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),lv(this.src[this.offset]??``)&&this.advanceBy(1);uv(this.src[this.offset]??``);)this.advanceBy(1);return this.src[this.offset]===`i`&&this.advanceBy(1),this.finishNumber(t,e)}isHexFloatTail(e){return dv(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);gv(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&hv(this.src[this.offset+1]??``);)for(this.advanceBy(1);gv(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),!hv(this.src[this.offset]??``))return this.makeToken(`Dot`,`.`,e);for(;gv(this.src[this.offset]??``);)this.advanceBy(1);for(;this.src[this.offset]===`.`&&hv(this.src[this.offset+1]??``);)for(this.advanceBy(1);gv(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(;gv(this.src[this.offset]??``);)this.advanceBy(1);let n=this.src.slice(t,this.offset),r=av.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===`
|
|
62
62
|
`)this.advanceBy(1);else return}}advanceBy(e){for(let t=0;t<e;t++){let e=this.src[this.offset];this.offset+=1,e===`
|
|
63
|
-
`?(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
|
|
64
|
-
`}function
|
|
65
|
-
`;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 J_(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function Fv(e,t,n){let r=Pv(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new J_(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function Iv(e,t){if(t(e)!==!1)for(let n of Lv(e))Iv(n,t)}function Lv(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 av(e)}}const Rv=Symbol(`go-template-js.MISSING`);function zv(e,t){if(e==null)return Rv;if(e instanceof Map)return e.has(t)?e.get(t):Rv;if(Array.isArray(e))return Rv;if(typeof e==`object`){let n=e;return t in n?n[t]:Rv}return Rv}function Bv(e,t){let n=e;for(let e of t){if(n===Rv)return Rv;n=zv(n,e)}return n}function Vv(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)=>Vv(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)||!Vv(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=>Vv(e[n],t[n])):!1}return!1}const Hv=new WeakSet;function Uv(e){return Hv.add(e),e}function Wv(e){return Hv.has(e)}function Gv(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 Kv(e,t){return{eq:{fn:(e,...t)=>t.some(t=>Yv(e,t)),argTypes:[`comparable`,`comparable`],arity:{kind:`variadic`}},ne:{fn:(e,t)=>!Yv(e,t),argTypes:[`comparable`,`comparable`],arity:{kind:`exact`}},lt:{fn:(e,t)=>Xv(e,t)<0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},le:{fn:(e,t)=>Xv(e,t)<=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},gt:{fn:(e,t)=>Xv(e,t)>0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},ge:{fn:(e,t)=>Xv(e,t)>=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},len:{fn:e=>Zv(e),argTypes:[`sized`],arity:{kind:`exact`}},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=Qv(n,e);return n},argTypes:[`collection`,`index-key`],arity:{kind:`variadic`}},slice:{fn:(e,...t)=>ey(e,t),argTypes:[`sliceable`,`int`],arity:{kind:`variadic`}},print:{fn:(...t)=>ry(t,e),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},println:{fn:(...t)=>`${ry(t,e)}\n`,argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},printf:{fn:(n,...r)=>fy(n,r,e,t),argTypes:[`string`,`stringifiable`],arity:{kind:`variadic`},returnType:`string`},toString:{fn:n=>hy(n,e,t),argTypes:[`value`],arity:{kind:`exact`},returnType:`string`},toStrings:{fn:n=>n.map(n=>hy(n,e,t)),argTypes:[`list`],arity:{kind:`exact`}},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`],arity:{kind:`variadic`}},html:{fn:(...t)=>oy(ry(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},js:{fn:(...t)=>ly(ry(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},urlquery:{fn:(...t)=>dy(ry(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},not:{fn:e=>!Gv(e),argTypes:[`truthy`],arity:{kind:`exact`}}}}function qv(){return{and:Uv({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!Gv(t))return t;return t}}),or:Uv({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),Gv(t))return t;return t}})}}function Jv(e,t){return{...Kv(e,t),...qv()}}function Yv(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):Vv(e,t)}function Xv(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 Zv(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Qv(e,t){if(Array.isArray(e)||typeof e==`string`){let n=$v(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 ${ty(t)}`);return e[t]}throw Error(`index: cannot index ${ty(e)}`)}function $v(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 ${ny(e)}`);if(n<0||n>t)throw Error(`index out of range: ${String(e)}`);return n}function ey(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]=$v(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 ty(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function ny(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 ry(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+=iy(a,t),r=o}return n}function iy(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const ay={"\0":`�`,'"':`"`,"'":`'`,"&":`&`,"<":`<`,">":`>`};function oy(e){return e.replace(/[\0"'&<>]/g,e=>ay[e]??e)}const sy={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},cy=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function ly(e){let t=``;for(let n of e){let e=sy[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!cy.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const uy=new TextEncoder;function dy(e){let t=``,n=uy.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 fy(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+=py(l??``,u,d,n,r),o=c+1}return i}function py(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?my(t,n):my(t,iy(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${ny(n)}=${iy(n,r)})`:my(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return my(t,hy(n,r,i));case`q`:return my(t,JSON.stringify(iy(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${ny(n)}=${iy(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return my(t,Number(n).toFixed(i))}case`t`:return my(t,Gv(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 my(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${ny(n)}=${iy(n,r)})`:typeof n==`bigint`?my(t,n.toString(16)):my(t,Math.trunc(n).toString(16));default:return`%!${e}(${ny(n)}=${iy(n,r)})`}}function my(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 hy(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>hy(e,t,n)).join(` `)}]`:e instanceof Map?gy([...e.entries()],t,n):_y(e)?gy(Object.entries(e),t,n):String(e)}function gy(e,t,n){let r=e=>hy(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 _y(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 vy(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function yy(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function by(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 xy(e,t,n){e.vars.set(t,n)}const Sy=[`string`,`int`,`truncating-int`,`float`,`bool`,`T`,`ordered`,`list`,`dict`,`sized`,`comparable`,`stringifiable`,`liftable`,`callable`,`collection`,`index-key`,`sliceable`,`truthy`,`reflective`,`value`,`serializable`],Cy=new Set([`default`,`zero`,`error`]);function wy(e){if(e===void 0)return`default`;if(Cy.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${Ty(e)}`)}function Ty(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 Ey(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${Ty(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${Ty(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${Ty(e.right)}`);return{left:e.left,right:e.right}}}function Dy(e){switch(e.kind){case`exact`:return!1;case`variadic`:return!0;case`alternating`:return!0}}function Oy(e){let t=new Set(Sy);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 ${Sy.join(`, `)}`)}),Dy(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 ky=Object.freeze({kind:`break`}),Ay=Object.freeze({kind:`continue`}),jy={kind:`none`};let My;(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{My=(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 Ny(e){let t=new Set,n=e=>{Iv(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 Py={kind:`dynamic`};function Fy(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=nb(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:Py}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return Py;let t=e.cmds[0];if(t===void 0)return Py;let n=t.args[0];return n===void 0||n.type!==`Identifier`?Py:{kind:`call`,name:n.ident,args:t.args.slice(1).map(Fy)}}default:return Py}}function Iy(e){let t=[],n=e=>{Iv(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(Fy);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 Ly=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??Gy,this.isT=e.isT??Ry,this.missingKey=wy(e.missingKey),this.delims=Ey(e.delims),this.funcs=Oy({...Jv(this.toString,this.isT),...e.funcs??{}})}parse(e,t){let n=Sv(e,this.delims,t);return My(n.source,e=>this.evalParsed(n,e),n.defines,Ny(n),Iy(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=vy(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 ky;case`Continue`:throw Ay;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 Y_(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:av(e)}}evalIf(e,t,n){Gv(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(Gv(r)){let i=yy(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=$y(r);try{if(a.length===0){e.elseList&&this.evalList(e.elseList,t,n);return}for(let[r,o]of a){let a=yy(t,o);if(i.length===1)xy(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;xy(a,e,r),xy(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===Ay)continue;throw e}}}catch(e){if(e===ky)return;throw e}}evalTemplateInvoke(e,t,n){let r=bv(n.defines,e.name);if(!r)throw new Y_(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=yy(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=yy(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=bv(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 Y_(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,jy);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)xy(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 Y_(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new Y_(`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 X_(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=Wv(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){By(e,t,n,r,i.source,this.toString,this.fromString,this.isT);try{return t.fn(...n)}catch(t){throw t instanceof Q_?new Q_(t.funcName,t.argIndex,t.expected,t.receivedSummary,r,{source:i.source}):t instanceof tv?new tv(t.message,r,{source:i.source}):t instanceof q_?t:new Y_(`error calling ${e}: ${Zy(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 nb(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 X_(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 Y_(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=Bv(e,t);if(i!==Rv)return i;if(this.missingKey===`error`)throw new ev(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=by(t,i);if(!a.found)throw new Y_(`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(hy(e,this.toString,this.isT)))}};const Ry=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function zy(e){return new Ly(e)}function By(e,t,n,r,i,a=Gy,o=Wy,s=Ry){let{argTypes:c,arity:l}=t,u=Vy(c,l);if(n.length<u.minimum||n.length>u.maximum)throw new Z_(e,u,n.length,r,{source:i});let d=Hy(c,l),f=-1,p=-1;for(let t=0;t<n.length;t++){let c=d(t),l=n[t];if(!Uy(c,l,a,s))throw(c===`int`||c===`truncating-int`)&&(typeof l==`number`||typeof l==`bigint`)?new $_(e,t+1,l,r,{source:i}):new Q_(e,t+1,Xy(c),Qy(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(!qy(n[f],l))throw new Q_(e,t+1,`${Xy(`ordered`)} of the same kind as ${Qy(n[f])}`,Qy(l),r,{source:i})}if(c===`comparable`){if(p===-1)p=t;else if(!Jy(n[p],l))throw new Q_(e,t+1,`${Xy(`comparable`)} of the same kind as ${Qy(n[p])}`,Qy(l),r,{source:i})}}}function Vy(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 Hy(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 Uy(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 _y(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||_y(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||_y(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||_y(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 Ky(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Wy(e){return e}function Gy(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 Q_(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,Qy(e),{line:0,column:0,offset:0})}function Ky(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function qy(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function Jy(e,t){let n=Yy(e),r=Yy(t);return n===`nil`||r===`nil`?!0:n===r}function Yy(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 Xy(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 Zy(e){return e instanceof Error?e.message:String(e)}function Qy(e){return e===null?`null`:e===void 0?`undefined`:Array.isArray(e)?`array`:e instanceof Map?`Map`:typeof e}function $y(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?eb([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?eb(Object.entries(e)):[]}function eb(e){return[...e].sort((e,t)=>tb(e[0],t[0]))}function tb(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 nb(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 rb(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function ib(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 ab(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 ob(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=ab(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 sb(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=ab(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 cb(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 lb(e){return JSON.stringify(e)??`null`}function ub(){return{atoi:{fn:e=>rb(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},int:{fn:e=>ob(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`int`},int64:{fn:e=>sb(e),argTypes:[`value`],arity:{kind:`exact`}},float64:{fn:e=>ib(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`float`},toDecimal:{fn:e=>cb(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},toRawJson:{fn:e=>lb(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}const db={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function fb(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*db[a],n=n.slice(e[0].length)}return t?-r:r}function pb(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<db.us?`${Math.floor(n)}ns`:n<db.ms?mb(n,db.us,3,`µs`):n<db.s?mb(n,db.ms,6,`ms`):hb(n),t?`-${r}`:r}function mb(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 hb(e){let t=Math.floor(e/db.h);e-=t*db.h;let n=Math.floor(e/db.m);e-=n*db.m;let r=Math.floor(e/db.s),i=e-r*db.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 gb(e){return e*db.s}function _b(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 vb(e,t){let n=t().getTime()-_b(e).getTime();return pb(Math.round(n/1e3)*1e9)}const yb=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],bb=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],xb=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],Sb=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Cb(e){return e<10?`0${e}`:String(e)}function wb(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function Tb(e){return e<10?` ${e}`:String(e)}function Eb(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${Cb(Math.floor(n/60))}${Cb(n%60)}`}function Db(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${Cb(Math.floor(n/60))}:${Cb(n%60)}`}function Ob(e){return`${e>=0?`+`:`-`}${Cb(Math.floor(Math.abs(e)/60))}`}function kb(e){return e===0?`Z`:Eb(e)}function Ab(e){return e===0?`Z`:Db(e)}function jb(e){return e===0?`Z`:Ob(e)}function Mb(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const Nb=[[`.000000000`,e=>`.${Mb(e.ms,9,!1)}`],[`.999999999`,e=>{let t=Mb(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${Mb(e.ms,6,!1)}`],[`.999999`,e=>{let t=Mb(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${wb(e.ms)}`],[`.999`,e=>{let t=wb(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>yb[e.month-1]??`January`],[`Monday`,e=>xb[e.weekday]??`Monday`],[`Z07:00`,e=>Ab(e.offsetMinutes)],[`-07:00`,e=>Db(e.offsetMinutes)],[`Z0700`,e=>kb(e.offsetMinutes)],[`-0700`,e=>Eb(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>bb[e.month-1]??`Jan`],[`Mon`,e=>Sb[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>Ob(e.offsetMinutes)],[`Z07`,e=>jb(e.offsetMinutes)],[`15`,e=>Cb(e.hour)],[`01`,e=>Cb(e.month)],[`02`,e=>Cb(e.day)],[`_2`,e=>Tb(e.day)],[`03`,e=>Cb(e.hour12)],[`04`,e=>Cb(e.minute)],[`05`,e=>Cb(e.second)],[`06`,e=>Cb(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 Pb(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of Nb)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const Fb={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function Ib(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const Lb=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function Rb(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=Ib(new Intl.DateTimeFormat(`en-US`,{...Fb,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=Ib(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=zb(Ib(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=Lb.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 zb(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 Bb(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function Vb(e,t){return Pb(e,Rb(_b(t),Bb()))}function Hb(e,t,n){return Pb(e,Rb(_b(t),n))}function Ub(e,t){let n=_b(t),r=fb(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function Wb(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:pb(gb(t))}return typeof e==`bigint`?pb(gb(Number(e))):typeof e==`number`?pb(gb(e)):`0s`}const Gb=36e11*24*365,Kb=36e11*24*30,qb=36e11*24,Jb=36e11,Yb=6e10,Xb=1e9;function Zb(e){let t=fb(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>Gb?`${Math.floor(n/Gb)}y`:n>Kb?`${Math.floor(n/Kb)}mo`:n>qb?`${Math.floor(n/qb)}d`:n>Jb?`${Math.floor(n/Jb)}h`:n>Yb?`${Math.floor(n/Yb)}m`:n>Xb?`${Math.floor(n/Xb)}s`:`0s`}function Qb(e){let t=Rb(_b(e),Bb());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function $b(e,t){let n=Rb(_b(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function ex(e){return e()}const tx=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],nx=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function rx(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function ix(e,t,n){return[e.slice(t,t+n),t+n]}function ax(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 ox(e,t){for(let[n,r]of tx.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function sx(e,t){for(let[n,r]of nx.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function cx(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 lx(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 ux(e,t){if(e[t]===` `){let[n,r]=ax(e,t+1,1,1);return[n,r]}return ax(e,t,1,2)}function dx(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]=ax(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=ax(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=ax(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function fx(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]=ax(e,t+1,2,2);return[n*r*60,i]}return dx(e,t,n)}function px(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 mx(e,t,n){let[r,i]=ix(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function hx(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=ox(t,n);return i.month=e,[r,i]}case`Monday`:return[cx(t,n),i];case`Jan`:{let[e,r]=sx(t,n);return i.month=e,[r,i]}case`Mon`:return[lx(t,n),i];case`2006`:{let[e,r]=ax(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=ax(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=ax(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=ax(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=ux(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=ax(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=ax(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=ax(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=ax(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=ax(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=ax(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=ax(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=ax(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=ax(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[px(t,n),i];case`-0700`:{let[e,r]=dx(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=dx(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]=ax(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=fx(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=fx(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=fx(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]=mx(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]=mx(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]=mx(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 gx=`.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 _x(e,t){let n=0,r=0,i=rx();for(;n<e.length;){let a=!1;for(let o of gx)if(e.startsWith(o,n)){let[e,s]=hx(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 vx(e,t){return _x(e,t)}function yx(e){return String(Math.floor(_b(e).getTime()/1e3))}function bx(e=()=>new Date){return{now:{fn:()=>ex(e),argTypes:[],arity:{kind:`exact`}},date:{fn:(e,t)=>Vb(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},dateInZone:{fn:(e,t,n)=>Hb(e,t,n),argTypes:[`string`,`value`,`string`],arity:{kind:`exact`}},dateModify:{fn:(e,t)=>Ub(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},htmlDate:{fn:e=>Qb(e),argTypes:[`value`],arity:{kind:`exact`}},htmlDateInZone:{fn:(e,t)=>$b(e,t),argTypes:[`value`,`string`],arity:{kind:`exact`}},duration:{fn:e=>Wb(e),argTypes:[`value`],arity:{kind:`exact`}},durationRound:{fn:e=>Zb(e),argTypes:[`value`],arity:{kind:`exact`}},toDate:{fn:(e,t)=>vx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},ago:{fn:t=>vb(t,e),argTypes:[`value`],arity:{kind:`exact`}},unixEpoch:{fn:e=>yx(e),argTypes:[`value`],arity:{kind:`exact`}}}}function xx(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 Sx(...e){for(let t of e)if(!xx(t))return t}function Cx(e,t){return xx(t)?e:t}function wx(e){return JSON.parse(e)}function Tx(e,t,n){return Gv(n)?e:t}function Ex(e){return JSON.stringify(e)??`null`}function Dx(e){return JSON.stringify(e,null,2)??`null`}function Ox(){return{default:{fn:(e,t)=>Cx(e,t),argTypes:[`value`,`truthy`],arity:{kind:`variadic`}},empty:{fn:e=>xx(e),argTypes:[`truthy`],arity:{kind:`exact`}},coalesce:{fn:(...e)=>Sx(...e),argTypes:[`truthy`],arity:{kind:`variadic`}},ternary:{fn:(e,t,n)=>Tx(e,t,n),argTypes:[`value`,`value`,`truthy`],arity:{kind:`exact`}},fromJson:{fn:e=>wx(e),argTypes:[`string`],arity:{kind:`exact`}},toJson:{fn:e=>Ex(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`},toPrettyJson:{fn:e=>Dx(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}function kx(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function Ax(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 kx(...t)}function jx(e,t){return e[t]}function Mx(e,t){return t in e}function Nx(e){return Object.keys(e)}function Px(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 Fx(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function Ix(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 Lx(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Rx(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function zx(e,t,n){return e[t]=n,e}function Bx(e,t){return delete e[t],e}function Vx(e){return Object.values(e)}function Hx(){return{dict:{fn:(...e)=>kx(...e),argTypes:[`string`,`value`],arity:{kind:`alternating`,minimum:0}},get:{fn:(e,t)=>jx(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},set:{fn:(e,t,n)=>zx(e,t,n),argTypes:[`dict`,`string`,`value`],arity:{kind:`exact`}},unset:{fn:(e,t)=>Bx(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},keys:{fn:e=>Nx(e),argTypes:[`dict`],arity:{kind:`variadic`}},values:{fn:e=>Vx(e),argTypes:[`dict`],arity:{kind:`exact`}},pluck:{fn:(e,...t)=>Rx(e,...t),argTypes:[`string`,`dict`],arity:{kind:`variadic`}},pick:{fn:(e,...t)=>Lx(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},omit:{fn:(e,...t)=>Ix(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},hasKey:{fn:(e,t)=>Mx(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},merge:{fn:(e,...t)=>Px(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}},mergeOverwrite:{fn:(e,...t)=>Fx(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}}}}function Ux(e){throw new tv(e)}function Wx(){return{fail:{fn:e=>Ux(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 Gx(...e){for(let t of e)if(xx(t))return!1;return!0}function Kx(...e){for(let t of e)if(!xx(t))return!0;return!1}function qx(e,t){return[...e,t]}function Jx(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 Yx(e){return e.filter(e=>!xx(e))}function Xx(...e){let t=[];for(let n of e)t.push(...n);return t}const Zx={line:0,column:0,offset:0};function Qx(e,t,n,r){return new Q_(e,t,n,r,Zx)}function $x(...e){if(e.length<3)throw Qx(`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(!tS(t))throw Qx(`dig`,e.length-1,`dict`,nS(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw Qx(`dig`,e,`string`,nS(r[e]));return eS(t,n,r,e.length)}function eS(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(!tS(a))throw Qx(`dig`,r-1,`dict at intermediate key`,nS(a));return eS(a,t,n.slice(1),r)}function tS(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function nS(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function rS(e){return e[0]}function iS(e,t){return t.some(t=>Vv(t,e))}function aS(e){return e.slice(0,-1)}function oS(e){return e[e.length-1]}function sS(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function cS(...e){return e}function lS(e,t){return[t,...e]}function uS(e){return e.slice(1)}function dS(e){return[...e].reverse()}function fS(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function pS(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function mS(e){let t=[];for(let n of e)t.some(e=>Vv(e,n))||t.push(n);return t}function hS(e,...t){return e.filter(e=>!t.some(t=>Vv(t,e)))}function gS(){return{list:{fn:(...e)=>cS(...e),argTypes:[`value`],arity:{kind:`variadic`}},first:{fn:e=>rS(e),argTypes:[`list`],arity:{kind:`exact`}},last:{fn:e=>oS(e),argTypes:[`list`],arity:{kind:`exact`}},rest:{fn:e=>uS(e),argTypes:[`list`],arity:{kind:`exact`}},initial:{fn:e=>aS(e),argTypes:[`list`],arity:{kind:`exact`}},len:{fn:e=>sS(e),argTypes:[`sized`],arity:{kind:`exact`}},reverse:{fn:e=>dS(e),argTypes:[`list`],arity:{kind:`exact`}},uniq:{fn:e=>mS(e),argTypes:[`list`],arity:{kind:`exact`}},without:{fn:(e,...t)=>hS(e,...t),argTypes:[`list`,`value`],arity:{kind:`variadic`}},has:{fn:(e,t)=>iS(e,t),argTypes:[`value`,`list`],arity:{kind:`exact`}},compact:{fn:e=>Yx(e),argTypes:[`list`],arity:{kind:`exact`}},slice:{fn:(e,t,n)=>fS(e,t,n),argTypes:[`list`,`truncating-int`],arity:{kind:`variadic`}},concat:{fn:(...e)=>Xx(...e),argTypes:[`list`],arity:{kind:`variadic`}},chunk:{fn:(e,t)=>Jx(e,t),argTypes:[`int`,`list`],arity:{kind:`exact`}},prepend:{fn:(e,t)=>lS(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},append:{fn:(e,t)=>qx(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},sortAlpha:{fn:e=>pS(e),argTypes:[`list`],arity:{kind:`exact`},returnType:`list`},push:{fn:(e,t)=>qx(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},tuple:{fn:(...e)=>cS(...e),argTypes:[`value`],arity:{kind:`variadic`}},dig:{fn:(...e)=>$x(...e),argTypes:[`value`],arity:{kind:`variadic`}},all:{fn:(...e)=>Gx(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`},any:{fn:(...e)=>Kx(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`}}}function _S(...e){return e.reduce((e,t)=>e+t,0)}function vS(e){return e+1}function yS(e){return e+1}function bS(...e){return e.reduce((e,t)=>e+t,0)}function xS(e){return Math.ceil(e)}function SS(e,t){return Math.trunc(e/t)}function CS(e,...t){return t.reduce((e,t)=>e/t,e)}function wS(e){return Math.floor(e)}function TS(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function ES(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function DS(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function OS(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function kS(e,t){return e%t}function AS(...e){return e.reduce((e,t)=>e*t,1)}function jS(...e){return e.reduce((e,t)=>e*t,1)}function MS(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function NS(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 PS(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),NS(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return NS(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:NS(n,i+t,r).join(` `)}default:return``}}function FS(e,t){return e-t}function IS(e,...t){return t.reduce((e,t)=>e-t,e)}function LS(e){return NS(0,e,e<0?-1:1)}function RS(){return{add:{fn:(...e)=>_S(...e),argTypes:[`truncating-int`],arity:{kind:`variadic`}},sub:{fn:(e,t)=>FS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mul:{fn:(...e)=>AS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},div:{fn:(e,t)=>SS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mod:{fn:(e,t)=>kS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},min:{fn:(...e)=>DS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},max:{fn:(...e)=>TS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},floor:{fn:e=>wS(e),argTypes:[`float`],arity:{kind:`exact`}},ceil:{fn:e=>xS(e),argTypes:[`float`],arity:{kind:`exact`}},round:{fn:(e,t)=>MS(e,t),argTypes:[`float`,`int`,`float`],arity:{kind:`variadic`}},addf:{fn:(...e)=>bS(...e),argTypes:[`float`],arity:{kind:`variadic`}},subf:{fn:(e,...t)=>IS(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},mulf:{fn:(...e)=>jS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},divf:{fn:(e,...t)=>CS(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},add1:{fn:e=>vS(e),argTypes:[`truncating-int`],arity:{kind:`exact`}},add1f:{fn:e=>yS(e),argTypes:[`float`],arity:{kind:`exact`}},maxf:{fn:(...e)=>ES(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},minf:{fn:(...e)=>OS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},biggest:{fn:(...e)=>TS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},seq:{fn:(...e)=>PS(...e),argTypes:[`int`],arity:{kind:`variadic`},returnType:`string`},until:{fn:e=>LS(e),argTypes:[`int`],arity:{kind:`exact`},returnType:`list`},untilStep:{fn:(e,t,n)=>NS(e,t,n),argTypes:[`int`,`int`,`int`],arity:{kind:`exact`},returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function zS(e){return Array.from(e)}function BS(e,t){return e===``?zS(t):t.split(e)}function VS(e,t){let n=zS(t);return n.length<=e||e<4?t:`${n.slice(0,e-3).join(``)}...`}function HS(e,t,n){let r=zS(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},US=/^[-_\s]$/,WS=/^\p{P}$/u,GS=/^\p{L}$/u,KS=/^\p{Lu}$/u,qS=/^\p{N}$/u;function JS(e){return e!==void 0&&US.test(e)}function YS(e){return e!==void 0&&GS.test(e)}function XS(e){return e!==void 0&&KS.test(e)}function ZS(e){return e!==void 0&&qS.test(e)}function QS(e){return e!==void 0&&WS.test(e)}function $S(e,t){if(t>=e.length)return{word:{wt:q.Invalid,text:``},next:t};let n=e[t],r=t+1;if(JS(n)){for(;r<e.length&&JS(e[r]);)r++;return{word:{wt:q.Connector,text:e.slice(t,r).join(``)},next:r}}if(QS(n)){for(;r<e.length&&QS(e[r]);)r++;return{word:{wt:q.Punct,text:e.slice(t,r).join(``)},next:r}}if(XS(n)){if(r>=e.length)return{word:{wt:q.UpperCase,text:n},next:r};if(XS(e[r])){let n=r;for(;n<e.length&&XS(e[n]);)n++;return n<e.length&&YS(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(YS(e[r])){let n=r+1;for(;n<e.length&&YS(e[n])&&!XS(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(YS(n)){for(;r<e.length&&YS(e[r])&&!XS(e[r]);)r++;return{word:{wt:q.Alphabet,text:e.slice(t,r).join(``)},next:r}}if(ZS(n)){for(;r<e.length&&ZS(e[r]);)r++;return{word:{wt:q.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!JS(e[r])&&!YS(e[r])&&!ZS(e[r])&&!QS(e[r]);)r++;return{word:{wt:q.Other,text:e.slice(t,r).join(``)},next:r}}function eC(e,t,n){if(t.wt!==q.UpperCase&&t.wt!==q.Connector){e.push(t.text);return}for(let r of t.text)JS(r)?e.push(n):XS(r)?e.push(r.toLowerCase()):e.push(r)}function tC(e,t){if(e.length===0)return``;let n=zS(e),r=[],{word:i,next:a}=$S(n,0);for(;a<n.length;){i.wt!==q.Connector&&eC(r,i,t);let e=i,o=i;if({word:i,next:a}=$S(n,a),e.wt===q.Number){for(;i.wt===q.Alphabet||i.wt===q.Number;)eC(r,i,t),{word:i,next:a}=$S(n,a);i.wt!==q.Invalid&&i.wt!==q.Punct&&i.wt!==q.Connector&&r.push(t);continue}if(e.wt===q.Connector){eC(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}=$S(n,a),i.wt!==q.Alphabet){eC(r,s,t),i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t);continue}for(r.push(t),eC(r,s,t);i.wt===q.Alphabet||i.wt===q.Number;)eC(r,i,t),{word:i,next:a}=$S(n,a);i.wt!==q.Invalid&&i.wt!==q.Connector&&i.wt!==q.Punct&&r.push(t)}return eC(r,i,t),r.join(``).toLowerCase()}function nC(e){if(e.length===0)return``;let t=zS(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!JS(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++,JS(i)&&JS(e)){n.push(e);continue}JS(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function rC(e){return nC(e)}function iC(...e){return e.join(` `)}function aC(e,t){return t.includes(e)}function oC(e,t){return t.startsWith(e)}function sC(e,t){return t.endsWith(e)}function cC(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
|
|
63
|
+
`?(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 cv(e){return e===` `||e===` `||e===`\r`||e===`
|
|
64
|
+
`}function lv(e){return e===`+`||e===`-`}function uv(e){return e>=`0`&&e<=`9`}function dv(e){return uv(e)||e>=`a`&&e<=`f`||e>=`A`&&e<=`F`}function fv(e){return e>=`0`&&e<=`7`}function pv(e){return e===`0`||e===`1`}function mv(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`}function hv(e){return mv(e)||e===`_`}function gv(e){return hv(e)||uv(e)}let _v,vv;function yv(e,t){return vv(e,t)}var bv=class e{static EMPTY=new e(new Map,void 0);#e;#t;constructor(e,t){this.#e=e,this.#t=t}static{_v=(t,n)=>new e(t,n),vv=(e,t)=>e.#e.get(t)??(e.#t&&vv(e.#t,t))}has(e){return vv(this,e)!==void 0}};function xv(e,t,n=bv.EMPTY){return new Sv(e,t,n).parseTemplate()}var Sv=class{lex;buf=[];defines=new Map;inherit;source;rangeDepth=0;constructor(e,t,n){this.source=e,this.inherit=n,this.lex=t?new sv(e,t):new sv(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:Tv(n)});return n}errAt(e,t,n={}){return new q_(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 ${Tv(e)}`,{found:Tv(e)})}return{root:e,defines:_v(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=wv(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 Cv(e,t);let r=this.parseAction();r!==null&&t.push(r);continue}throw this.errAt(n,`unexpected ${Tv(n)} at top level`,{found:Tv(n)})}return Cv(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 q_(`{{${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 q_(`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:Tv(e)});return Nv(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(!Ev(e.type))throw this.errAt(e,"missing command after `|`",{expected:`command`,found:Tv(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=[Dv(this.next())];for(;this.peek().type===`Comma`;)this.next(),n.push(Dv(this.expect(`Variable`,`$variable`)));return{vars:n,isAssign:this.next().type===`Assign`}}parseCommand(){let e=this.peek().pos,t=[this.parsePrimary()];for(;Ev(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 Dv(e);case`Identifier`:return{type:`Identifier`,pos:e.pos,ident:e.value};case`String`:return{type:`String`,pos:e.pos,raw:e.value,value:Nv(e.value,e.pos,this.source)};case`Number`:return kv(e);case`Char`:return Av(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 ${Tv(e)}`,{expected:`command argument`,found:Tv(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 Cv(e,t){return{type:`List`,pos:e,nodes:t}}function wv(e){return{trimLeft:e.trimLeft===!0,trimRight:e.trimRight===!0}}function Tv(e){return e.type===`EOF`?`end of input`:e.value||e.type}function Ev(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 Dv(e){return{type:`Variable`,pos:e.pos,idents:Ov(e.value)}}function Ov(e){let t=e.indexOf(`.`);return t===-1?[e]:[e.slice(0,t),...e.slice(t+1).split(`.`)]}function kv(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=jv(i);return{...s,intValue:e}}if(a){let e=Mv(i);return{...s,floatValue:e}}let c=Mv(i);return{...s,complexValue:[0,c]}}function Av(e,t){let n=Pv(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 jv(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 Mv(e){return Number(e)}function Nv(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+=`
|
|
65
|
+
`;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 q_(`bad escape sequence \\${o}`,t,{expected:`valid escape sequence`,found:`\\${o}`,source:n})}}return r}function Pv(e,t,n){let r=Nv(`"${e.slice(1,-1).replace(/"/g,`\\"`)}"`,t,n);if(r.length===0)throw new q_(`empty rune literal`,t,{source:n});return r.codePointAt(0)??0}function Fv(e,t){if(t(e)!==!1)for(let n of Iv(e))Fv(n,t)}function Iv(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 iv(e)}}const Lv=Symbol(`go-template-js.MISSING`);function Rv(e,t){if(e==null)return Lv;if(e instanceof Map)return e.has(t)?e.get(t):Lv;if(Array.isArray(e))return Lv;if(typeof e==`object`){let n=e;return t in n?n[t]:Lv}return Lv}function zv(e,t){let n=e;for(let e of t){if(n===Lv)return Lv;n=Rv(n,e)}return n}function Bv(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)=>Bv(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)||!Bv(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=>Bv(e[n],t[n])):!1}return!1}const Vv=new WeakSet;function Hv(e){return Vv.add(e),e}function Uv(e){return Vv.has(e)}function Wv(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 Gv(e,t){return{eq:{fn:(e,...t)=>t.some(t=>Jv(e,t)),argTypes:[`comparable`,`comparable`],arity:{kind:`variadic`}},ne:{fn:(e,t)=>!Jv(e,t),argTypes:[`comparable`,`comparable`],arity:{kind:`exact`}},lt:{fn:(e,t)=>Yv(e,t)<0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},le:{fn:(e,t)=>Yv(e,t)<=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},gt:{fn:(e,t)=>Yv(e,t)>0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},ge:{fn:(e,t)=>Yv(e,t)>=0,argTypes:[`ordered`,`ordered`],arity:{kind:`exact`}},len:{fn:e=>Xv(e),argTypes:[`sized`],arity:{kind:`exact`}},index:{fn:(e,...t)=>{let n=e;for(let e of t)n=Zv(n,e);return n},argTypes:[`collection`,`index-key`],arity:{kind:`variadic`}},slice:{fn:(e,...t)=>$v(e,t),argTypes:[`sliceable`,`int`],arity:{kind:`variadic`}},print:{fn:(...t)=>ny(t,e),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},println:{fn:(...t)=>`${ny(t,e)}\n`,argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},printf:{fn:(n,...r)=>dy(n,r,e,t),argTypes:[`string`,`stringifiable`],arity:{kind:`variadic`},returnType:`string`},toString:{fn:n=>my(n,e,t),argTypes:[`value`],arity:{kind:`exact`},returnType:`string`},toStrings:{fn:n=>n.map(n=>my(n,e,t)),argTypes:[`list`],arity:{kind:`exact`}},call:{fn:(e,...t)=>e(...t),argTypes:[`callable`,`value`],arity:{kind:`variadic`}},html:{fn:(...t)=>ay(ny(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},js:{fn:(...t)=>cy(ny(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},urlquery:{fn:(...t)=>uy(ny(t,e)),argTypes:[`stringifiable`],arity:{kind:`variadic`},returnType:`string`},not:{fn:e=>!Wv(e),argTypes:[`truthy`],arity:{kind:`exact`}}}}function Kv(){return{and:Hv({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!0;for(let n of e)if(t=n(),!Wv(t))return t;return t}}),or:Hv({argTypes:[`truthy`,`truthy`],arity:{kind:`variadic`},fn:(...e)=>{let t=!1;for(let n of e)if(t=n(),Wv(t))return t;return t}})}}function qv(e,t){return{...Gv(e,t),...Kv()}}function Jv(e,t){return typeof e==`number`&&typeof t==`bigint`?BigInt(e)===t:typeof e==`bigint`&&typeof t==`number`?e===BigInt(t):Bv(e,t)}function Yv(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 Xv(e){return typeof e==`string`||Array.isArray(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function Zv(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 ${ey(t)}`);return e[t]}throw Error(`index: cannot index ${ey(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 ${ty(e)}`);if(n<0||n>t)throw Error(`index out of range: ${String(e)}`);return n}function $v(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 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?`<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 ny(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+=ry(a,t),r=o}return n}function ry(e,t){return e==null?`<nil>`:typeof e==`string`?e:t(e)}const iy={"\0":`�`,'"':`"`,"'":`'`,"&":`&`,"<":`<`,">":`>`};function ay(e){return e.replace(/[\0"'&<>]/g,e=>iy[e]??e)}const oy={"\\":`\\\\`,"'":`\\'`,'"':`\\"`,"<":`\\u003C`,">":`\\u003E`,"&":`\\u0026`,"=":`\\u003D`},sy=/^[\p{L}\p{M}\p{N}\p{P}\p{S}]$/u;function cy(e){let t=``;for(let n of e){let e=oy[n];if(e!==void 0){t+=e;continue}let r=n.codePointAt(0);if(r<32||r>=128&&!sy.test(n)){t+=`\\u${r.toString(16).toUpperCase().padStart(4,`0`)}`;continue}t+=n}return t}const ly=new TextEncoder;function uy(e){let t=``,n=ly.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 dy(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+=fy(l??``,u,d,n,r),o=c+1}return i}function fy(e,t,n,r,i){switch(e){case`s`:return typeof n==`string`?py(t,n):py(t,ry(n,r));case`d`:return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${ty(n)}=${ry(n,r)})`:py(t,String(typeof n==`bigint`?n:Math.trunc(n)));case`v`:return py(t,my(n,r,i));case`q`:return py(t,JSON.stringify(ry(n,r)));case`f`:{if(typeof n!=`number`&&typeof n!=`bigint`)return`%!${e}(${ty(n)}=${ry(n,r)})`;let i=t.includes(`.`)?Number(t.split(`.`)[1]):6;return py(t,Number(n).toFixed(i))}case`t`:return py(t,Wv(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 py(t,r)}return typeof n!=`number`&&typeof n!=`bigint`?`%!${e}(${ty(n)}=${ry(n,r)})`:typeof n==`bigint`?py(t,n.toString(16)):py(t,Math.trunc(n).toString(16));default:return`%!${e}(${ty(n)}=${ry(n,r)})`}}function py(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 my(e,t,n){return e==null?`<nil>`:typeof e==`string`?e:n(e)?t(e):Array.isArray(e)?`[${e.map(e=>my(e,t,n)).join(` `)}]`:e instanceof Map?hy([...e.entries()],t,n):gy(e)?hy(Object.entries(e),t,n):String(e)}function hy(e,t,n){let r=e=>my(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 gy(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 _y(e){return{dot:e,root:e,parent:void 0,vars:new Map}}function vy(e,t){return{dot:t,root:e.root,parent:e,vars:new Map}}function yy(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 by(e,t,n){e.vars.set(t,n)}const xy=[`string`,`int`,`truncating-int`,`float`,`bool`,`T`,`ordered`,`list`,`dict`,`sized`,`comparable`,`stringifiable`,`liftable`,`callable`,`collection`,`index-key`,`sliceable`,`truthy`,`reflective`,`value`,`serializable`],Sy=new Set([`default`,`zero`,`error`]);function Cy(e){if(e===void 0)return`default`;if(Sy.has(e))return e;throw Error(`EngineConfig.missingKey: expected "default" | "zero" | "error", got ${wy(e)}`)}function wy(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 Ty(e){if(e!==void 0){if(typeof e!=`object`||!e)throw Error(`EngineConfig.delims: expected { left, right } object, got ${wy(e)}`);if(typeof e.left!=`string`||e.left.length===0)throw Error(`EngineConfig.delims.left: expected non-empty string, got ${wy(e.left)}`);if(typeof e.right!=`string`||e.right.length===0)throw Error(`EngineConfig.delims.right: expected non-empty string, got ${wy(e.right)}`);return{left:e.left,right:e.right}}}function Ey(e){switch(e.kind){case`exact`:return!1;case`variadic`:return!0;case`alternating`:return!0}}function Dy(e){let t=new Set(xy);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 ${xy.join(`, `)}`)}),Ey(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 Oy=Object.freeze({kind:`break`}),ky=Object.freeze({kind:`continue`}),Ay={kind:`none`};let jy;(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{jy=(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 My(e){let t=new Set,n=e=>{Fv(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 Ny={kind:`dynamic`};function Py(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=tb(e);return typeof t==`number`||typeof t==`bigint`?{kind:`literal`,value:t}:Ny}case`Pipe`:{if(e.decls.length!==0||e.cmds.length!==1)return Ny;let t=e.cmds[0];if(t===void 0)return Ny;let n=t.args[0];return n===void 0||n.type!==`Identifier`?Ny:{kind:`call`,name:n.ident,args:t.args.slice(1).map(Py)}}default:return Ny}}function Fy(e){let t=[],n=e=>{Fv(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(Py);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 Iy=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??Wy,this.isT=e.isT??Ly,this.missingKey=Cy(e.missingKey),this.delims=Ty(e.delims),this.funcs=Dy({...qv(this.toString,this.isT),...e.funcs??{}})}parse(e,t){let n=xv(e,this.delims,t);return jy(n.source,e=>this.evalParsed(n,e),n.defines,My(n),Fy(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=_y(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 Oy;case`Continue`:throw ky;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 J_(`unexpected ${e.type} at statement position`,e.pos,{source:n.source});default:iv(e)}}evalIf(e,t,n){Wv(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(Wv(r)){let i=vy(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=vy(t,o);if(i.length===1)by(a,i[0]?.idents[0]??`$`,o);else if(i.length>=2){let e=i[0]?.idents[0]??`$`,t=i[1]?.idents[0]??`$`;by(a,e,r),by(a,t,o)}try{this.evalList(e.list,a,n)}catch(e){if(e===ky)continue;throw e}}}catch(e){if(e===Oy)return;throw e}}evalTemplateInvoke(e,t,n){let r=yv(n.defines,e.name);if(!r)throw new J_(`template ${JSON.stringify(e.name)} is not defined`,e.pos,{source:n.source});let i=vy(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=vy(t,e.pipe?this.evalPipe(e.pipe,t,n):t.dot),i=yv(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 J_(`empty pipeline`,e.pos,{source:n.source});let r=this.evalCommand(e.cmds[0],t,n,Ay);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)by(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 J_(`empty command`,e.pos,{source:n.source});let i=e.args[0];if(i.type!==`Identifier`){if(e.args.length>1)throw new J_(`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 Y_(i.ident,i.pos,{source:n.source,available:Object.keys(this.funcs)});let o=e.args.slice(1),s=Uv(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){zy(e,t,n,r,i.source,this.toString,this.fromString,this.isT);try{return t.fn(...n)}catch(t){throw t instanceof Z_?new Z_(t.funcName,t.argIndex,t.expected,t.receivedSummary,r,{source:i.source}):t instanceof ev?new ev(t.message,r,{source:i.source}):t instanceof K_?t:new J_(`error calling ${e}: ${Xy(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 tb(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 Y_(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 J_(`cannot evaluate ${e.type} as a value`,e.pos,{source:n.source})}}resolveFieldChain(e,t,n,r){let i=zv(e,t);if(i!==Lv)return i;if(this.missingKey===`error`)throw new $_(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=yy(t,i);if(!a.found)throw new J_(`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(my(e,this.toString,this.isT)))}};const Ly=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map);function Ry(e){return new Iy(e)}function zy(e,t,n,r,i,a=Wy,o=Uy,s=Ly){let{argTypes:c,arity:l}=t,u=By(c,l);if(n.length<u.minimum||n.length>u.maximum)throw new X_(e,u,n.length,r,{source:i});let d=Vy(c,l),f=-1,p=-1;for(let t=0;t<n.length;t++){let c=d(t),l=n[t];if(!Hy(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 Z_(e,t+1,Yy(c),Zy(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(!Ky(n[f],l))throw new Z_(e,t+1,`${Yy(`ordered`)} of the same kind as ${Zy(n[f])}`,Zy(l),r,{source:i})}if(c===`comparable`){if(p===-1)p=t;else if(!qy(n[p],l))throw new Z_(e,t+1,`${Yy(`comparable`)} of the same kind as ${Zy(n[p])}`,Zy(l),r,{source:i})}}}function By(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 Vy(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 Hy(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 gy(t);case`sized`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||t instanceof Set||gy(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||gy(t);case`callable`:return typeof t==`function`;case`collection`:return typeof t==`string`||Array.isArray(t)||t instanceof Map||gy(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 Gy(t);default:throw Error(`invalid ArgType: ${String(e)}`)}}function Uy(e){return e}function Wy(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 Z_(`<engine.toString>`,1,`string (or a consumer-supplied toString that flattens T)`,Zy(e),{line:0,column:0,offset:0})}function Gy(e){try{return JSON.stringify(e)!==void 0}catch{return!1}}function Ky(e,t){return typeof e==typeof t||typeof e==`number`&&typeof t==`bigint`||typeof e==`bigint`&&typeof t==`number`}function qy(e,t){let n=Jy(e),r=Jy(t);return n===`nil`||r===`nil`?!0:n===r}function Jy(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 Yy(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 Xy(e){return e instanceof Error?e.message:String(e)}function Zy(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?$y([...e.entries()]):e instanceof Set?[...e.values()].map((e,t)=>[t,e]):typeof e==`object`?$y(Object.entries(e)):[]}function $y(e){return[...e].sort((e,t)=>eb(e[0],t[0]))}function eb(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 tb(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 nb(e){if(!/^[+-]?\d+$/.test(e))return 0;let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:0}function rb(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 ib(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 ab(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=ib(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 ob(e){if(typeof e==`bigint`)return e;if(typeof e==`number`)return BigInt(Math.trunc(e));if(typeof e==`string`){let t=ib(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 sb(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 cb(e){return JSON.stringify(e)??`null`}function lb(){return{atoi:{fn:e=>nb(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},int:{fn:e=>ab(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`int`},int64:{fn:e=>ob(e),argTypes:[`value`],arity:{kind:`exact`}},float64:{fn:e=>rb(e),argTypes:[`value`],arity:{kind:`exact`},returnType:`float`},toDecimal:{fn:e=>sb(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`int`},toRawJson:{fn:e=>cb(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}const ub={h:36e11,m:6e10,s:1e9,ms:1e6,us:1e3,µs:1e3,ns:1};function db(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*ub[a],n=n.slice(e[0].length)}return t?-r:r}function fb(e){if(e===0)return`0s`;let t=!1,n=e;n<0&&(t=!0,n=-n);let r;return r=n<ub.us?`${Math.floor(n)}ns`:n<ub.ms?pb(n,ub.us,3,`µs`):n<ub.s?pb(n,ub.ms,6,`ms`):mb(n),t?`-${r}`:r}function pb(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 mb(e){let t=Math.floor(e/ub.h);e-=t*ub.h;let n=Math.floor(e/ub.m);e-=n*ub.m;let r=Math.floor(e/ub.s),i=e-r*ub.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 hb(e){return e*ub.s}function gb(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 _b(e,t){let n=t().getTime()-gb(e).getTime();return fb(Math.round(n/1e3)*1e9)}const vb=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],yb=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],bb=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],xb=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Sb(e){return e<10?`0${e}`:String(e)}function Cb(e){return e<10?`00${e}`:e<100?`0${e}`:String(e)}function wb(e){return e<10?` ${e}`:String(e)}function Tb(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${Sb(Math.floor(n/60))}${Sb(n%60)}`}function Eb(e){let t=e>=0?`+`:`-`,n=Math.abs(e);return`${t}${Sb(Math.floor(n/60))}:${Sb(n%60)}`}function Db(e){return`${e>=0?`+`:`-`}${Sb(Math.floor(Math.abs(e)/60))}`}function Ob(e){return e===0?`Z`:Tb(e)}function kb(e){return e===0?`Z`:Eb(e)}function Ab(e){return e===0?`Z`:Db(e)}function jb(e,t,n){let r=e*1e6,i=String(r).padStart(9,`0`).slice(0,t);return n?i.replace(/0+$/,``):i}const Mb=[[`.000000000`,e=>`.${jb(e.ms,9,!1)}`],[`.999999999`,e=>{let t=jb(e.ms,9,!0);return t?`.${t}`:``}],[`.000000`,e=>`.${jb(e.ms,6,!1)}`],[`.999999`,e=>{let t=jb(e.ms,6,!0);return t?`.${t}`:``}],[`.000`,e=>`.${Cb(e.ms)}`],[`.999`,e=>{let t=Cb(e.ms).replace(/0+$/,``);return t?`.${t}`:``}],[`January`,e=>vb[e.month-1]??`January`],[`Monday`,e=>bb[e.weekday]??`Monday`],[`Z07:00`,e=>kb(e.offsetMinutes)],[`-07:00`,e=>Eb(e.offsetMinutes)],[`Z0700`,e=>Ob(e.offsetMinutes)],[`-0700`,e=>Tb(e.offsetMinutes)],[`2006`,e=>String(e.year)],[`Jan`,e=>yb[e.month-1]??`Jan`],[`Mon`,e=>xb[e.weekday]??`Mon`],[`MST`,e=>e.tzAbbr],[`-07`,e=>Db(e.offsetMinutes)],[`Z07`,e=>Ab(e.offsetMinutes)],[`15`,e=>Sb(e.hour)],[`01`,e=>Sb(e.month)],[`02`,e=>Sb(e.day)],[`_2`,e=>wb(e.day)],[`03`,e=>Sb(e.hour12)],[`04`,e=>Sb(e.minute)],[`05`,e=>Sb(e.second)],[`06`,e=>Sb(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 Nb(e,t){let n=``,r=0;for(;r<e.length;){let i=!1;for(let[a,o]of Mb)if(e.startsWith(a,r)){n+=o(t),r+=a.length,i=!0;break}i||(n+=e[r++])}return n}const Pb={year:`numeric`,month:`2-digit`,day:`2-digit`,weekday:`long`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1};function Fb(e){let t=new Map;for(let n of e)t.set(n.type,n.value);return t}const Ib=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function Lb(e,t){let n;try{new Intl.DateTimeFormat(`en-US`,{timeZone:t}),n=t}catch{n=`UTC`}let r=Fb(new Intl.DateTimeFormat(`en-US`,{...Pb,timeZone:n}).formatToParts(e)),i=parseInt(r.get(`hour`)??`0`,10)%24,a=Fb(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`short`}).formatToParts(e)).get(`timeZoneName`)??n,o=Rb(Fb(new Intl.DateTimeFormat(`en-US`,{timeZone:n,timeZoneName:`shortOffset`}).formatToParts(e)).get(`timeZoneName`)??`GMT`),s=Ib.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 Rb(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 zb(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function Bb(e,t){return Nb(e,Lb(gb(t),zb()))}function Vb(e,t,n){return Nb(e,Lb(gb(t),n))}function Hb(e,t){let n=gb(t),r=db(e);return Number.isNaN(r)?n:new Date(n.getTime()+r/1e6)}function Ub(e){if(typeof e==`string`){let t=parseInt(e,10);return Number.isNaN(t)?`0s`:fb(hb(t))}return typeof e==`bigint`?fb(hb(Number(e))):typeof e==`number`?fb(hb(e)):`0s`}const Wb=36e11*24*365,Gb=36e11*24*30,Kb=36e11*24,qb=36e11,Jb=6e10,Yb=1e9;function Xb(e){let t=db(String(e));if(Number.isNaN(t))return`0s`;let n=Math.abs(t);return n>Wb?`${Math.floor(n/Wb)}y`:n>Gb?`${Math.floor(n/Gb)}mo`:n>Kb?`${Math.floor(n/Kb)}d`:n>qb?`${Math.floor(n/qb)}h`:n>Jb?`${Math.floor(n/Jb)}m`:n>Yb?`${Math.floor(n/Yb)}s`:`0s`}function Zb(e){let t=Lb(gb(e),zb());return`${t.year}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`}function Qb(e,t){let n=Lb(gb(e),t);return`${n.year}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`}function $b(e){return e()}const ex=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],tx=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function nx(){return{year:2e3,month:1,day:1,hour:0,minute:0,second:0,ms:0,offsetMinutes:0,isPM:!1,hour12:!1}}function rx(e,t,n){return[e.slice(t,t+n),t+n]}function ix(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 ax(e,t){for(let[n,r]of ex.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected month name at pos ${t}`)}function ox(e,t){for(let[n,r]of tx.entries())if(e.startsWith(r,t))return[n+1,t+r.length];throw Error(`sprig toDate: expected short month name at pos ${t}`)}function sx(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 cx(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 lx(e,t){if(e[t]===` `){let[n,r]=ix(e,t+1,1,1);return[n,r]}return ix(e,t,1,2)}function ux(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]=ix(e,i,2,2);i=o;let s=0;if(n&&e[i]===`:`){let[t,n]=ix(e,i+1,2,2);s=t,i=n}else if(!n){let[t,n]=ix(e,i,2,2);s=t,i=n}return[r*(a*60+s),i]}function dx(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]=ix(e,t+1,2,2);return[n*r*60,i]}return ux(e,t,n)}function fx(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 px(e,t,n){let[r,i]=rx(e,t,n),a=parseInt(r.padEnd(9,`0`),10);return[Math.round(a/1e6),i]}function mx(e,t,n,r){let i={...r};switch(e){case`January`:{let[e,r]=ax(t,n);return i.month=e,[r,i]}case`Monday`:return[sx(t,n),i];case`Jan`:{let[e,r]=ox(t,n);return i.month=e,[r,i]}case`Mon`:return[cx(t,n),i];case`2006`:{let[e,r]=ix(t,n,4,4);return i.year=e,[r,i]}case`06`:{let[e,r]=ix(t,n,2,2);return i.year=e<70?2e3+e:1900+e,[r,i]}case`01`:{let[e,r]=ix(t,n,2,2);return i.month=e,[r,i]}case`1`:{let[e,r]=ix(t,n,1,2);return i.month=e,[r,i]}case`_2`:{let[e,r]=lx(t,n);return i.day=e,[r,i]}case`02`:{let[e,r]=ix(t,n,2,2);return i.day=e,[r,i]}case`2`:{let[e,r]=ix(t,n,1,2);return i.day=e,[r,i]}case`15`:{let[e,r]=ix(t,n,2,2);return i.hour=e,[r,i]}case`03`:{let[e,r]=ix(t,n,2,2);return i.hour=e,i.hour12=!0,[r,i]}case`3`:{let[e,r]=ix(t,n,1,2);return i.hour=e,i.hour12=!0,[r,i]}case`04`:{let[e,r]=ix(t,n,2,2);return i.minute=e,[r,i]}case`4`:{let[e,r]=ix(t,n,1,2);return i.minute=e,[r,i]}case`05`:{let[e,r]=ix(t,n,2,2);return i.second=e,[r,i]}case`5`:{let[e,r]=ix(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[fx(t,n),i];case`-0700`:{let[e,r]=ux(t,n,!1);return i.offsetMinutes=e,[r,i]}case`-07:00`:{let[e,r]=ux(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]=ix(t,n+1,2,2);return i.offsetMinutes=e*r*60,[a,i]}case`Z0700`:{let[e,r]=dx(t,n,!1,!1);return i.offsetMinutes=e,[r,i]}case`Z07:00`:{let[e,r]=dx(t,n,!0,!1);return i.offsetMinutes=e,[r,i]}case`Z07`:{let[e,r]=dx(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]=px(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]=px(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]=px(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 hx=`.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 gx(e,t){let n=0,r=0,i=nx();for(;n<e.length;){let a=!1;for(let o of hx)if(e.startsWith(o,n)){let[e,s]=mx(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 _x(e,t){return gx(e,t)}function vx(e){return String(Math.floor(gb(e).getTime()/1e3))}function yx(e=()=>new Date){return{now:{fn:()=>$b(e),argTypes:[],arity:{kind:`exact`}},date:{fn:(e,t)=>Bb(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},dateInZone:{fn:(e,t,n)=>Vb(e,t,n),argTypes:[`string`,`value`,`string`],arity:{kind:`exact`}},dateModify:{fn:(e,t)=>Hb(e,t),argTypes:[`string`,`value`],arity:{kind:`exact`}},htmlDate:{fn:e=>Zb(e),argTypes:[`value`],arity:{kind:`exact`}},htmlDateInZone:{fn:(e,t)=>Qb(e,t),argTypes:[`value`,`string`],arity:{kind:`exact`}},duration:{fn:e=>Ub(e),argTypes:[`value`],arity:{kind:`exact`}},durationRound:{fn:e=>Xb(e),argTypes:[`value`],arity:{kind:`exact`}},toDate:{fn:(e,t)=>_x(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},ago:{fn:t=>_b(t,e),argTypes:[`value`],arity:{kind:`exact`}},unixEpoch:{fn:e=>vx(e),argTypes:[`value`],arity:{kind:`exact`}}}}function bx(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 xx(...e){for(let t of e)if(!bx(t))return t}function Sx(e,t){return bx(t)?e:t}function Cx(e){return JSON.parse(e)}function wx(e,t,n){return Wv(n)?e:t}function Tx(e){return JSON.stringify(e)??`null`}function Ex(e){return JSON.stringify(e,null,2)??`null`}function Dx(){return{default:{fn:(e,t)=>Sx(e,t),argTypes:[`value`,`truthy`],arity:{kind:`variadic`}},empty:{fn:e=>bx(e),argTypes:[`truthy`],arity:{kind:`exact`}},coalesce:{fn:(...e)=>xx(...e),argTypes:[`truthy`],arity:{kind:`variadic`}},ternary:{fn:(e,t,n)=>wx(e,t,n),argTypes:[`value`,`value`,`truthy`],arity:{kind:`exact`}},fromJson:{fn:e=>Cx(e),argTypes:[`string`],arity:{kind:`exact`}},toJson:{fn:e=>Tx(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`},toPrettyJson:{fn:e=>Ex(e),argTypes:[`serializable`],arity:{kind:`exact`},returnType:`string`}}}function Ox(...e){let t={};for(let n=0;n<e.length;n+=2)t[e[n]]=e[n+1];return t}function kx(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 Ox(...t)}function Ax(e,t){return e[t]}function jx(e,t){return t in e}function Mx(e){return Object.keys(e)}function Nx(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 Px(e,...t){let n={...e};for(let e of t)Object.assign(n,e);return n}function Fx(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 Ix(e,...t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Lx(e,...t){let n=[];for(let r of t)e in r&&n.push(r[e]);return n}function Rx(e,t,n){return e[t]=n,e}function zx(e,t){return delete e[t],e}function Bx(e){return Object.values(e)}function Vx(){return{dict:{fn:(...e)=>Ox(...e),argTypes:[`string`,`value`],arity:{kind:`alternating`,minimum:0}},get:{fn:(e,t)=>Ax(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},set:{fn:(e,t,n)=>Rx(e,t,n),argTypes:[`dict`,`string`,`value`],arity:{kind:`exact`}},unset:{fn:(e,t)=>zx(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},keys:{fn:e=>Mx(e),argTypes:[`dict`],arity:{kind:`variadic`}},values:{fn:e=>Bx(e),argTypes:[`dict`],arity:{kind:`exact`}},pluck:{fn:(e,...t)=>Lx(e,...t),argTypes:[`string`,`dict`],arity:{kind:`variadic`}},pick:{fn:(e,...t)=>Ix(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},omit:{fn:(e,...t)=>Fx(e,...t),argTypes:[`dict`,`string`],arity:{kind:`variadic`}},hasKey:{fn:(e,t)=>jx(e,t),argTypes:[`dict`,`string`],arity:{kind:`exact`}},merge:{fn:(e,...t)=>Nx(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}},mergeOverwrite:{fn:(e,...t)=>Px(e,...t),argTypes:[`dict`,`dict`],arity:{kind:`variadic`}}}}function Hx(e){throw new ev(e)}function Ux(){return{fail:{fn:e=>Hx(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 Wx(...e){for(let t of e)if(bx(t))return!1;return!0}function Gx(...e){for(let t of e)if(!bx(t))return!0;return!1}function Kx(e,t){return[...e,t]}function qx(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 Jx(e){return e.filter(e=>!bx(e))}function Yx(...e){let t=[];for(let n of e)t.push(...n);return t}const Xx={line:0,column:0,offset:0};function Zx(e,t,n,r){return new Z_(e,t,n,r,Xx)}function Qx(...e){if(e.length<3)throw Zx(`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(!eS(t))throw Zx(`dig`,e.length-1,`dict`,tS(t));for(let e=0;e<r.length;e++)if(typeof r[e]!=`string`)throw Zx(`dig`,e,`string`,tS(r[e]));return $x(t,n,r,e.length)}function $x(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(!eS(a))throw Zx(`dig`,r-1,`dict at intermediate key`,tS(a));return $x(a,t,n.slice(1),r)}function eS(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)}function tS(e){return e===null?`null`:Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:typeof e}function nS(e){return e[0]}function rS(e,t){return t.some(t=>Bv(t,e))}function iS(e){return e.slice(0,-1)}function aS(e){return e[e.length-1]}function oS(e){return Array.isArray(e)||typeof e==`string`?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}function sS(...e){return e}function cS(e,t){return[t,...e]}function lS(e){return e.slice(1)}function uS(e){return[...e].reverse()}function dS(e,t,n){let r=t===void 0?0:t,i=n===void 0?e.length:n;return e.slice(r,i)}function fS(e){let t=[];for(let n of e)n!=null&&t.push(String(n));return t.sort()}function pS(e){let t=[];for(let n of e)t.some(e=>Bv(e,n))||t.push(n);return t}function mS(e,...t){return e.filter(e=>!t.some(t=>Bv(t,e)))}function hS(){return{list:{fn:(...e)=>sS(...e),argTypes:[`value`],arity:{kind:`variadic`}},first:{fn:e=>nS(e),argTypes:[`list`],arity:{kind:`exact`}},last:{fn:e=>aS(e),argTypes:[`list`],arity:{kind:`exact`}},rest:{fn:e=>lS(e),argTypes:[`list`],arity:{kind:`exact`}},initial:{fn:e=>iS(e),argTypes:[`list`],arity:{kind:`exact`}},len:{fn:e=>oS(e),argTypes:[`sized`],arity:{kind:`exact`}},reverse:{fn:e=>uS(e),argTypes:[`list`],arity:{kind:`exact`}},uniq:{fn:e=>pS(e),argTypes:[`list`],arity:{kind:`exact`}},without:{fn:(e,...t)=>mS(e,...t),argTypes:[`list`,`value`],arity:{kind:`variadic`}},has:{fn:(e,t)=>rS(e,t),argTypes:[`value`,`list`],arity:{kind:`exact`}},compact:{fn:e=>Jx(e),argTypes:[`list`],arity:{kind:`exact`}},slice:{fn:(e,t,n)=>dS(e,t,n),argTypes:[`list`,`truncating-int`],arity:{kind:`variadic`}},concat:{fn:(...e)=>Yx(...e),argTypes:[`list`],arity:{kind:`variadic`}},chunk:{fn:(e,t)=>qx(e,t),argTypes:[`int`,`list`],arity:{kind:`exact`}},prepend:{fn:(e,t)=>cS(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},append:{fn:(e,t)=>Kx(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},sortAlpha:{fn:e=>fS(e),argTypes:[`list`],arity:{kind:`exact`},returnType:`list`},push:{fn:(e,t)=>Kx(e,t),argTypes:[`list`,`value`],arity:{kind:`exact`}},tuple:{fn:(...e)=>sS(...e),argTypes:[`value`],arity:{kind:`variadic`}},dig:{fn:(...e)=>Qx(...e),argTypes:[`value`],arity:{kind:`variadic`}},all:{fn:(...e)=>Wx(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`},any:{fn:(...e)=>Gx(...e),argTypes:[`truthy`],arity:{kind:`variadic`},returnType:`bool`}}}function gS(...e){return e.reduce((e,t)=>e+t,0)}function _S(e){return e+1}function vS(e){return e+1}function yS(...e){return e.reduce((e,t)=>e+t,0)}function bS(e){return Math.ceil(e)}function xS(e,t){return Math.trunc(e/t)}function SS(e,...t){return t.reduce((e,t)=>e/t,e)}function CS(e){return Math.floor(e)}function wS(...e){return e.reduce((e,t)=>t>e?t:e,-1/0)}function TS(...e){return e.reduce((e,t)=>Math.max(e,t),-1/0)}function ES(...e){return e.reduce((e,t)=>t<e?t:e,1/0)}function DS(...e){return e.reduce((e,t)=>Math.min(e,t),1/0)}function OS(e,t){return e%t}function kS(...e){return e.reduce((e,t)=>e*t,1)}function AS(...e){return e.reduce((e,t)=>e*t,1)}function jS(e,t=0){let n=10**t;return Math.sign(e)*Math.round(Math.abs(e)*n)/n}function MS(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 NS(...e){let t=1;switch(e.length){case 0:return``;case 1:{let n=e[0];return n<1&&(t=-1),MS(1,n+t,t).join(` `)}case 2:{let t=e[0],n=e[1],r=n<t?-1:1;return MS(t,n+r,r).join(` `)}case 3:{let n=e[0],r=e[1],i=e[2];return i<n&&(t=-1,r>0)?``:MS(n,i+t,r).join(` `)}default:return``}}function PS(e,t){return e-t}function FS(e,...t){return t.reduce((e,t)=>e-t,e)}function IS(e){return MS(0,e,e<0?-1:1)}function LS(){return{add:{fn:(...e)=>gS(...e),argTypes:[`truncating-int`],arity:{kind:`variadic`}},sub:{fn:(e,t)=>PS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mul:{fn:(...e)=>kS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},div:{fn:(e,t)=>xS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},mod:{fn:(e,t)=>OS(e,t),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`exact`}},min:{fn:(...e)=>ES(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},max:{fn:(...e)=>wS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},floor:{fn:e=>CS(e),argTypes:[`float`],arity:{kind:`exact`}},ceil:{fn:e=>bS(e),argTypes:[`float`],arity:{kind:`exact`}},round:{fn:(e,t)=>jS(e,t),argTypes:[`float`,`int`,`float`],arity:{kind:`variadic`}},addf:{fn:(...e)=>yS(...e),argTypes:[`float`],arity:{kind:`variadic`}},subf:{fn:(e,...t)=>FS(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},mulf:{fn:(...e)=>AS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},divf:{fn:(e,...t)=>SS(e,...t),argTypes:[`float`,`float`],arity:{kind:`variadic`}},add1:{fn:e=>_S(e),argTypes:[`truncating-int`],arity:{kind:`exact`}},add1f:{fn:e=>vS(e),argTypes:[`float`],arity:{kind:`exact`}},maxf:{fn:(...e)=>TS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},minf:{fn:(...e)=>DS(...e),argTypes:[`float`,`float`],arity:{kind:`variadic`}},biggest:{fn:(...e)=>wS(...e),argTypes:[`truncating-int`,`truncating-int`],arity:{kind:`variadic`}},seq:{fn:(...e)=>NS(...e),argTypes:[`int`],arity:{kind:`variadic`},returnType:`string`},until:{fn:e=>IS(e),argTypes:[`int`],arity:{kind:`exact`},returnType:`list`},untilStep:{fn:(e,t,n)=>MS(e,t,n),argTypes:[`int`,`int`,`int`],arity:{kind:`exact`},returnType:`list`}}}Array.from({length:95},(e,t)=>String.fromCharCode(t+32)).join(``);function RS(e){return Array.from(e)}function zS(e,t){return e===``?RS(t):t.split(e)}function BS(e,t){let n=RS(t);return n.length<=e||e<4?t:`${n.slice(0,e-3).join(``)}...`}function VS(e,t,n){let r=RS(n);return t<7||r.length<t||e<0||e>r.length-t+1?n:`...${r.slice(e,e+t-6).join(``)}...`}const J={Invalid:0,Number:1,UpperCase:2,Alphabet:3,Connector:4,Punct:5,Other:6},HS=/^[-_\s]$/,US=/^\p{P}$/u,WS=/^\p{L}$/u,GS=/^\p{Lu}$/u,KS=/^\p{N}$/u;function qS(e){return e!==void 0&&HS.test(e)}function JS(e){return e!==void 0&&WS.test(e)}function YS(e){return e!==void 0&&GS.test(e)}function XS(e){return e!==void 0&&KS.test(e)}function ZS(e){return e!==void 0&&US.test(e)}function QS(e,t){if(t>=e.length)return{word:{wt:J.Invalid,text:``},next:t};let n=e[t],r=t+1;if(qS(n)){for(;r<e.length&&qS(e[r]);)r++;return{word:{wt:J.Connector,text:e.slice(t,r).join(``)},next:r}}if(ZS(n)){for(;r<e.length&&ZS(e[r]);)r++;return{word:{wt:J.Punct,text:e.slice(t,r).join(``)},next:r}}if(YS(n)){if(r>=e.length)return{word:{wt:J.UpperCase,text:n},next:r};if(YS(e[r])){let n=r;for(;n<e.length&&YS(e[n]);)n++;return n<e.length&&JS(e[n])?{word:{wt:J.UpperCase,text:e.slice(t,n-1).join(``)},next:n-1}:{word:{wt:J.UpperCase,text:e.slice(t,n).join(``)},next:n}}if(JS(e[r])){let n=r+1;for(;n<e.length&&JS(e[n])&&!YS(e[n]);)n++;return{word:{wt:J.UpperCase,text:e.slice(t,n).join(``)},next:n}}return{word:{wt:J.UpperCase,text:n},next:r}}if(JS(n)){for(;r<e.length&&JS(e[r])&&!YS(e[r]);)r++;return{word:{wt:J.Alphabet,text:e.slice(t,r).join(``)},next:r}}if(XS(n)){for(;r<e.length&&XS(e[r]);)r++;return{word:{wt:J.Number,text:e.slice(t,r).join(``)},next:r}}for(;r<e.length&&!qS(e[r])&&!JS(e[r])&&!XS(e[r])&&!ZS(e[r]);)r++;return{word:{wt:J.Other,text:e.slice(t,r).join(``)},next:r}}function $S(e,t,n){if(t.wt!==J.UpperCase&&t.wt!==J.Connector){e.push(t.text);return}for(let r of t.text)qS(r)?e.push(n):YS(r)?e.push(r.toLowerCase()):e.push(r)}function eC(e,t){if(e.length===0)return``;let n=RS(e),r=[],{word:i,next:a}=QS(n,0);for(;a<n.length;){i.wt!==J.Connector&&$S(r,i,t);let e=i,o=i;if({word:i,next:a}=QS(n,a),e.wt===J.Number){for(;i.wt===J.Alphabet||i.wt===J.Number;)$S(r,i,t),{word:i,next:a}=QS(n,a);i.wt!==J.Invalid&&i.wt!==J.Punct&&i.wt!==J.Connector&&r.push(t);continue}if(e.wt===J.Connector){$S(r,o,t);continue}if(e.wt===J.Punct)continue;if(i.wt!==J.Number){i.wt!==J.Connector&&i.wt!==J.Punct&&r.push(t);continue}if(a>=n.length)continue;let s=i;if({word:i,next:a}=QS(n,a),i.wt!==J.Alphabet){$S(r,s,t),i.wt!==J.Connector&&i.wt!==J.Punct&&r.push(t);continue}for(r.push(t),$S(r,s,t);i.wt===J.Alphabet||i.wt===J.Number;)$S(r,i,t),{word:i,next:a}=QS(n,a);i.wt!==J.Invalid&&i.wt!==J.Connector&&i.wt!==J.Punct&&r.push(t)}return $S(r,i,t),r.join(``).toLowerCase()}function tC(e){if(e.length===0)return``;let t=RS(e),n=[],r=0,i=``;for(;r<t.length;){if(i=t[r],r++,!qS(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++,qS(i)&&qS(e)){n.push(e);continue}qS(e)?i=i.toUpperCase():(i=i.toLowerCase(),n.push(e))}return n.push(i),n.join(``)}function nC(e){return tC(e)}function rC(...e){return e.join(` `)}function iC(e,t){return t.includes(e)}function aC(e,t){return t.startsWith(e)}function oC(e,t){return t.endsWith(e)}function sC(e,t){let n=` `.repeat(Math.max(0,e));return t.split(`
|
|
66
66
|
`).map(e=>n+e).join(`
|
|
67
|
-
`)}function
|
|
68
|
-
`,t)}function
|
|
69
|
-
`)){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 VC(e,t,n){return BC(e,t,n)}function HC(){return{abbrev:{fn:(e,t)=>VS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},abbrevboth:{fn:(e,t,n)=>HS(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},camelcase:{fn:e=>rC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},cat:{fn:(...e)=>iC(...e),argTypes:[`string`],arity:{kind:`variadic`}},contains:{fn:(e,t)=>aC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasPrefix:{fn:(e,t)=>oC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasSuffix:{fn:(e,t)=>sC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},indent:{fn:(e,t)=>cC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},initials:{fn:e=>lC(e),argTypes:[`string`],arity:{kind:`exact`}},join:{fn:(e,t)=>uC(e,t),argTypes:[`string`,`list`],arity:{kind:`exact`}},kebabcase:{fn:e=>fC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},lower:{fn:e=>pC(e),argTypes:[`string`],arity:{kind:`exact`}},nindent:{fn:(e,t)=>mC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},nospace:{fn:e=>hC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},plural:{fn:(e,t,n)=>gC(e,t,n),argTypes:[`string`,`string`,`int`],arity:{kind:`exact`},returnType:`string`},quote:{fn:(...e)=>_C(...e),argTypes:[`string`],arity:{kind:`variadic`}},regexQuoteMeta:{fn:e=>vC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},repeat:{fn:(e,t)=>yC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},replace:{fn:(e,t,n)=>bC(e,t,n),argTypes:[`string`,`string`,`string`],arity:{kind:`exact`}},snakecase:{fn:e=>xC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},split:{fn:(e,t)=>SC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitList:{fn:(e,t)=>CC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitn:{fn:(e,t,n)=>wC(e,t,n),argTypes:[`string`,`int`,`string`],arity:{kind:`exact`},returnType:`dict`},squote:{fn:(...e)=>EC(...e),argTypes:[`string`],arity:{kind:`variadic`}},substr:{fn:(e,t,n)=>DC(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},swapcase:{fn:e=>OC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},title:{fn:e=>jC(e),argTypes:[`string`],arity:{kind:`exact`}},trim:{fn:e=>MC(e),argTypes:[`string`],arity:{kind:`exact`}},trimAll:{fn:(e,t)=>NC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimPrefix:{fn:(e,t)=>PC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimSuffix:{fn:(e,t)=>FC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trunc:{fn:(e,t)=>IC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},untitle:{fn:e=>LC(e),argTypes:[`string`],arity:{kind:`exact`}},upper:{fn:e=>RC(e),argTypes:[`string`],arity:{kind:`exact`}},wrap:{fn:(e,t)=>zC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},wrapWith:{fn:(e,t,n)=>VC(e,t,n),argTypes:[`int`,`string`,`string`],arity:{kind:`exact`}}}}function UC(e,t){let n=WC(e),r=n.copy();return r.style=ml(n.style,t),r}function WC(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 GC(e){return{fn:(t=>UC(t,e)),argTypes:[`liftable`],arity:{kind:`exact`},returnType:`T`}}function KC(e){return{fn:((t,n)=>UC(n,new U({[e]:V.parse(t)}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`}}function qC(e,t){return new U({[e]:t})}function JC(){let e={};for(let t of sl)e[t]=GC(qC(t,!0)),e[`not_${t}`]=GC(qC(t,!1));for(let[t,n]of Object.entries(ll))e[t]=GC(qC(n,!0));return e}const YC={fn:((e,t)=>UC(t,U.parse(e))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`},XC={fn:((e,t)=>UC(t,new U({link:e}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`};function ZC(){return{fg:KC(`color`),bg:KC(`bgcolor`),...JC(),link:XC,style:YC}}function QC(e,t){let n;try{n=Ss(e.trim())}catch(n){throw n instanceof is?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 $C(n,t,JSON.stringify(e))}function $C(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 ew(e,t){return{fn:t,argTypes:e,arity:{kind:`exact`},returnType:`string`}}function tw(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 nw=ew([`string`,`int`],((e,t)=>ac(QC(e,`darken`),t).hex)),rw=ew([`string`,`int`],((e,t)=>ac(QC(e,`lighten`),-t).hex)),iw={min:0,max:100,note:`0 = from, 100 = toward`},aw=ew([`string`,`string`,`float`],((e,t,n)=>Cs(QC(e,`mix`),QC(t,`mix`),tw(n,`mix`,`percentage`,iw)/100).hex)),ow={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},sw=ew([`string`],(e=>sc(QC(e,`contrastOn`)).hex)),cw={depth:B.TRUECOLOR},lw=e=>ew([`string`,`string`,`float`],((t,n,r)=>{let{depth:i,terminal:a}=e();return cc(QC(t,`readableOn`),QC(n,`readableOn`),tw(r,`readableOn`,`ratio`,ow),i,void 0,a).hex})),uw={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function dw(){let e={};for(let[t,n]of Object.entries(uw)){let r=t;e[n]=ew([`string`,`float`],((e,t)=>{let i={...Vs,[r]:tw(t,n,`amount`)};return H.fromRgba(QC(e,n)).applyKey(i).toRgba().hex}))}return e}function fw(e=()=>cw){return{darken:nw,lighten:rw,mix:aw,contrastOn:sw,readableOn:lw(e),...dw()}}function pw(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:$C($s(t,e[r+1]),`ramp`,JSON.stringify(e[r+1]))});return n}function mw(e){return{color:{fn:(t=>$s(e(),t).hex),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},ramp:{fn:((t,n,...r)=>new Gc(Zc(n),pw(r,e())).at(t).hex),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:4},returnType:`string`}}}function hw(e,t,n){if(t.length%2!=0)throw RangeError(`last hold (${String(t[t.length-1])} s) has no ${e} — the arguments are <seconds> <${e}> pairs`);let r=[];for(let e=0;e<t.length;e+=2){let i=t[e];if(!Number.isFinite(i)||i<=0)throw RangeError(`hold ${e/2} must be a positive number of seconds, got ${i}`);r.push({seconds:i,value:n(t[e+1])})}return r}function gw(e){return{frames:{fn:((...t)=>new Vf(hw(`frame`,t,WC).map(({seconds:e,value:t})=>({seconds:e,text:t}))).text(e())),argTypes:[`float`,`liftable`],arity:{kind:`alternating`,minimum:2},returnType:`T`},stepped:{fn:((...t)=>{let n=hw(`color`,t,e=>QC(e,`stepped`));return n[rl(n.map(e=>e.seconds)).at(e())].value.hex}),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:2},returnType:`string`}}}function _w(e){return{...ZC(),...fw(e)}}new U({color:`red`,dim:!0});const vw=/^(?:(?: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,yw=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function bw(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(vw);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(yw);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 xw(e){let t=e.match(yw);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 Sw(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 Cw(e){return e.toLocaleString()}function ww(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 Tw(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 Ew=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],Dw=Ew.length;function Ow(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*(Dw-1));o+=Ew[t]}return o}function kw(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 Aw(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 jw=vm(),Mw=[...zm];function Nw(){return{basename:{fn:e=>u(e),argTypes:[`string`],arity:{kind:`exact`}},dirname:{fn:e=>d(e),argTypes:[`string`],arity:{kind:`exact`}},abbreviatePath:{fn:e=>Sw(e),argTypes:[`string`],arity:{kind:`exact`}},int:{fn:e=>Math.trunc(U_(e)),argTypes:[`value`],arity:{kind:`exact`}},string:{fn:e=>H_(e),argTypes:[`value`],arity:{kind:`exact`}},bool:{fn:e=>W_(e),argTypes:[`value`],arity:{kind:`exact`}},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`],arity:{kind:`exact`}},themes:{fn:()=>jw,argTypes:[],arity:{kind:`exact`}},endcaps:{fn:()=>Mw,argTypes:[],arity:{kind:`exact`}},sparkline:{fn:(e,t,...n)=>(Aw(`sparkline`,[`width`],n),Ow(kw(e),t)),argTypes:[`string`,`int`],arity:{kind:`variadic`}},cascade:{fn:(e,...t)=>Tw(e,ww(t)),argTypes:[`float`,`string`],arity:{kind:`variadic`}}}}function Pw(e){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`],arity:{kind:`exact`}},formatInteger:{fn:e=>Cw(e),argTypes:[`int`],arity:{kind:`exact`}},round:{fn:e=>Math.round(e),argTypes:[`float`],arity:{kind:`exact`}},formatModelName:{fn:e=>bw(e),argTypes:[`string`],arity:{kind:`exact`}},shortenModelName:{fn:e=>xw(e),argTypes:[`string`],arity:{kind:`exact`}}}}function Fw(e){let{clock:t,drawnAt:n,extraFuncs:r}=e;return zy({fromString:e=>new G(e),toString:e=>e.plain,isT:e=>e instanceof G,clock:t,missingKey:`error`,funcs:{...Ox(),...HC(),...gS(),...RS(),...bx(t),...ub(),...Wx(),...Hx(),..._w(n&&(()=>({depth:n()}))),...gw(()=>t().getTime()/1e3),...Nw(),...Pw(t),...r??{}}})}function Iw(e){return Lw(e,new Set(e.names()),``)}function Lw(e,t,n){return new Proxy(Object.create(null),{has(e,r){if(typeof r!=`string`)return!1;let i=n?`${n}.${r}`:r;if(t.has(i))return!0;let a=`${i}.`;for(let e of t)if(e.startsWith(a))return!0;return!1},get(r,i){if(typeof i!=`string`)return;let a=n?`${n}.${i}`:i;if(t.has(a))return e.getKind(a)===`document`?zw(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return Lw(e,t,a)}})}function Rw(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 zw(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw new G_(e,`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}function Bw(e){return r.existsSync(l.join(e,`.git`))}function Vw(e){let t=l.resolve(e);for(;;){if(Bw(t))return t;let e=l.dirname(t);if(e===t)return;t=e}}function Hw(e){let t=Vw(e);return t===void 0?{root:l.resolve(e),git:!1}:{root:t,git:!0}}function Uw(e,t){return e.kind===`absent`?F(`none`):e.kind===`failed`?e:t.kind===`failed`?t:F(t.kind===`ok`?`tracked`:`gone`)}function Ww(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 Gw={OPEN:`open`,MERGED:`merged`,CLOSED:`closed`},Kw={opened:`open`,locked:`open`,merged:`merged`,closed:`closed`};function qw(e,t,n){return Object.hasOwn(t,n)?F(t[n]):L(`${e}: unknown state ${JSON.stringify(n)}`)}function Jw(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??Yw(t.stderr)].filter(Boolean).join(`, `)}`)}function Yw(e){return e.trim().split(`
|
|
70
|
-
`,1)[0]??``}function
|
|
71
|
-
`)){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
|
|
72
|
-
`)){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
|
|
73
|
-
`).length:0)}async getRemotesAsync(e){let t=hT(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=Jw(`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`?nT(t.value):[])}repoNameFrom(e,t){let n=aT(e);return(n===null?null:sT(n))??l.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=oT(t.value);return n===null?I:F(n)}async execForgeAsync(e,t,n){return Ne({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=tT(t);return n===`github`?uT(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url,headRefOid`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,pT):n===`gitlab`?uT(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,mT):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=Jw(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?F(fT(t.value)):t}};const _T=(e,t)=>D(t);var vT=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??_T}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()}},yT=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 bT={showSha:!0,showStashCount:!0};function xT(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function ST(e){let t=t=>{try{return r.statSync(l.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function CT(e,t){return e.head!==t.head||e.index!==t.index}function wT(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 TT=class extends gT{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new yT;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new gT,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??It,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new vT({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}|${xT(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=ST(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}`,wT(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}`,wT(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,{...bT});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,{...bT}),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=ST(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),CT(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 ET=/\r\n|\r|\n/g,DT=e=>F(e.replace(ET,` `).trim());function OT(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?L(`regex no-match`):F(n.replace(ET,` `))}}const kT=e=>{try{return F(JSON.parse(e))}catch(e){return L(`JSON parse failed: ${e.message}`)}},AT=e=>e.getTime()/1e3,jT=e=>new Date(e*1e3);function MT(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 NT(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 PT=`session.id`;function FT(e,t,n){return{where:`output of "${e}" in ${t}`,read:async()=>{let r=await Ne({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 IT(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 LT(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 RT=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],zT=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],BT=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],VT=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function HT(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>RT[e.getMonth()]],[`Monday`,e=>BT[e.getDay()]],[`Jan`,e=>zT[e.getMonth()]],[`Mon`,e=>VT[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 UT={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function WT(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=UT[t];try{return QT(r,e)}catch{return $T(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return vi(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return vi(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return vi(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return vi(e.stashCount,0)}}function GT(e){try{return o(e)}catch{return e}}function KT(e){try{return s(e).isDirectory()}catch{return!1}}function qT(e){let t=GT(e);return KT(t)?{dir:t,name:null,leaf:!0}:F_(t)}const JT=e=>`${e.dir}\0${e.name??``}`;var YT=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:qT(e),subscribers:new Map};return t.watcher=this.open(e,t,t.target),this.watchers.set(e,t),t}rearm(e,t){let n=qT(e);if(t.watcher!==null&&JT(n)===JT(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}},XT=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:ue(()=>{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 ZT(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function QT(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`?H_(e):t===`number`?U_(e):W_(e)}function $T(e){return e===`number`?0:e===`boolean`?!1:``}var eE=class{inputMetas=new Map;lastErrors=new Map;policyFaults=new Map;watchMgr=new YT;ttlMgr=new XT;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new yT;abort=new AbortController;drawn=z_.observable.box(B.TRUECOLOR);drawnAt=()=>this.drawn.get();instant=z_.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 jT(e)};engine=Fw({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 TT({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,V_(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,FT(t,n.cwd,this.abort.signal),MT(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,IT(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,DT,t.default,n);case`regex`:return this.scalarPublisher(e,OT(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=LT(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,vi(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=LT(s,kT,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(Iw(this.store)).map(e=>e.plain).join(``),n.varDefault)}declareTime(e,t){this.declareDerived(e,()=>HT(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 K_(t)?new G_(e,`variable "${e}": ${r}`):Error(`variable "${e}": ${r}`);return n}})}declareGit(e,t){let n=UT[t.field],r=t.varDefault===void 0?$T(n):QT(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,WT(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(PT);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(PT):``;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=ZT(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,QT(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();return this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close(),this.store.dispose()}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(Iw(this.store)).map(e=>e.plain).join(``))}catch(e){return K_(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,z_.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,z_.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,QT(this.defaultEmptyValue,t))}catch{this.store.setBox(e,$T(t))}}defaultFor(e){try{return QT(this.defaultEmptyValue,e)}catch{return $T(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 tE={project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},[PT]:{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:``},"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:``}},nE=`ne .tmux.pane ""`;function rE(e,t,n){let r=new Set,i=e=>{for(let t of T_(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 _g(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(PT);for(let t of Object.values(e.actions)){r.add(PT),`copy`in t&&i(t.copy),`open`in t&&i(t.open);let e=`set`in t?Da.get(t.set):void 0,n=`persist`in t?Ea.get(t.persist):void 0;e!==void 0&&r.add(e),n!==void 0&&r.add(n)}return r}function iE(e,t,n){let r=N_({...n,variables:{...n.variables,...e.variables},segments:{...n.segments,...e.segments}}),i={};for(let a of rE(e,t,n.helpers)){if(M_(a,r))continue;let e=tE[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 aE(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}var oE=class extends Error{file;issues;warnings;constructor(e,t,n=[]){super(uE(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=sE(e,n,i);if(t===-1)return r===void 0?void 0:cE(e,r);n=t,r=t}return r===void 0?void 0:cE(e,r)}function sE(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 cE(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function lE(e,t){try{return Er(t),null}catch(n){if(!(n instanceof br))throw n;return`${e}:${cE(t,n.offset)}: ${n.reason} — the settings menu cannot edit this file until it is fixed`}}function uE(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(`
|
|
74
|
-
`)}const dE=`groups.`,fE=`menus.`,pE=`edit.`,Y=`candybar.`,mE=[dE,fE,pE,Y];function hE(e){return mE.some(t=>e.startsWith(t))}function gE(e){let t=aE(e);return mE.find(e=>t.startsWith(aE(e)))}function _E(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 vE(e){return e}function yE(e,t,n){return n===void 0?fE+aE(e)+`.`+aE(t):bE(n)}function bE(e){return fE+aE(e)}function xE(e,t){return e+`.`+t}function SE(e){return e+`.page`}const CE=[`closeOnPick`,`paged`,`key`,`distribution`],wE=e=>CE.includes(e),TE=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${_p.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function EE(e){for(let t of Object.keys(e))if(!wE(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${TE}`);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&&!vp(r))throw Error(`{{ menu }} option "distribution" must be one of: ${_p.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:bp(r)}}const DE=e=>`from`in e?e.from:e.themes;function OE(e,t,n){return e===`bool`?nh(t)!==null:`min`in e?rh(t,e)!==null:u_(DE(e),n).members.includes(t)}function kE(e,t){if(e===`bool`)return eh.join(` or `);if(!(`min`in e)){let n=DE(e),{members:r}=u_(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 AE(e){return{label:e.label,domain:jE(e.domain)}}function jE(e){return e===`theme`?{themes:s_}:e===`bool`||`min`in e?e:{from:e}}function ME(e,t,n,r,i){let a=rr(e.label),{domain:o}=e;if(o===`bool`)return{kind:`inline`,template:`{{ action "${r}" "☑ ${a}" "☐ ${a}" }}`,actions:{[r]:{set:t,cycle:[...eh]}},variables:{}};if(`from`in o)return NE(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 NE(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 NE(e,t,n,r,i){let a={variable:n,key:n,member:t},o=xE(n,t),s=`${t}.open`,c=SE(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]:dr(n,t),[c]:{set:c,int:!0},[l]:{set:c,to:`-1`},[s]:{do:[o,l]}},variables:{[n]:ur(n,$n),[c]:{kind:`state`,key:c,default:`0`}},list:{ref:a,rows:d}}}function PE(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 FE(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 IE(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 LE(e,t,n){let r=IE(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}"${hm(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:J(e.source,[...t.split(`.`),`palette`])});return}return r}}function RE(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 zE(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 BE(e,t,n,r){return zE(r)?(WE(e,n,r,t.noun,new Set(Object.keys(t.fields)),VE(e,t.removed??{},n,r)),HE(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 VE(e,t,n,r){let i=Object.entries(t).filter(([e])=>r[e]!==void 0);for(let[t,r]of i)GE(e,`${n}.${t}`,`${n}.${t} was removed: ${r}`);return new Set(i.map(([e])=>`${n}.${e}`))}function HE(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 UE=new Set;function WE(e,t,n,r,i,a=UE){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 GE(e,t,n){return e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))}),null}function KE(e,t,n,r){if(!zE(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 qE(e,t,n,r){if(!zE(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 WE(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function JE(e,t,n){return{json:cD(oD(n),e,t),keys:new Set([e,...Object.keys(n)])}}function YE(e){return(...t)=>e()(...t)}function XE(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 ZE(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>IE(e,t,r,n)}}function QE(){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 $E(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 eD(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 tD(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>LE(e,t,r)}}function nD(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>PE(e,t,r,n)??void 0}}function rD(e,t){return f(t)?null:`${e} must be an absolute path (\`~\` and relative paths are not expanded), got ${JSON.stringify(t)}`}function iD(){return{required:!0,json:{type:`string`,pattern:`^/`},parse:(e,t,n,r)=>{let i=PE(e,t,r,n);if(i===null)return;let a=rD(`${t}.${n}`,i);return a===null?i:GE(e,`${t}.${n}`,a)??void 0}}}function aD(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>RE(t,n,i,r,e)}}function oD(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 sD(e){return oD(e.fields)}function cD(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function lD(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function uD(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const dD={required:!1,json:{enum:[...Wm]},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: ${Wm.join(`, `)}`,line:J(e.source,[...t.split(`.`),n])});return}return RE(e,t,r,n,Wm)}},fD={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=IE(e,t,r,n);return wm(i)?i:LE(e,t,r)}},pD={required:!1,json:{anyOf:[{enum:[...Pm]},{type:`string`,pattern:`\\{\\{`}]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&wm(i)?i:RE(e,t,r,n,Pm)}},mD=/^[^\r\n]*\S[^\r\n]*$/u,hD=RegExp(`^(?:✖|✕)[\\uFE0E\\uFE0F]?$`,`u`),gD={required:!1,json:{type:`string`,pattern:mD.source,not:{pattern:hD.source}},parse:(e,t,n,r)=>{let i=IE(e,t,r,n);if(i===void 0||mD.test(i)&&!hD.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 _D(e){return{spec:aD(e),domain:{from:e}}}function vD(){return{spec:QE(),domain:`bool`}}function yD(e){return{spec:e,domain:`text`}}const bD={default_empty_value:yD(ZE()),default_separator:yD(ZE()),palette:{spec:fD,domain:{themes:`themes`}},style:{spec:ZE(),domain:{from:`styles`}},effect:{spec:pD,domain:{from:Pm}},preset:{spec:ZE(),domain:{from:`presets`}},endcaps:_D(zm),variation:_D(Km),shade:_D(Ym),autoWrap:vD(),padding:{spec:$E(th),domain:{...th,step:1}},updateNotice:vD(),transitions:vD(),colorCompatibility:{spec:dD,domain:{from:Wm}},menuGlyph:yD(gD)},xD=Object.fromEntries(Object.entries(bD).map(([e,t])=>[e,t.spec]));function SD(e){return bD[e].domain}function CD(e){let t=SD(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 wD(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 TD(e){return wD(`${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 ED(e){return wD(`${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 DD(e,t,n){return{...e,json:{...e.json,not:{pattern:`\\{\\{`}},parse:(r,i,a,o)=>{let s=o[a];if(typeof s==`string`&&wm(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 OD={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)`,charset:"the bar always draws Nerd Font glyphs. Delete the key; `cc-candybar doctor` names what your terminal's font is missing."},kD={noun:`globals key`,fields:xD,removed:OD},AD={preset:TD(`a preset`),menuGlyph:ED(`a preset`)},jD={noun:`preset globals key`,fields:{...xD,...AD},removed:OD};function MD(e){return HD(e)&&!(e in AD)}const ND=`is decided later than any rule could be settled`,PD={noun:`editGlobals key`,removed:OD,fields:{...xD,preset:TD(`the editGlobals fragment`),menuGlyph:ED(`the editGlobals fragment`),palette:DD(xD.palette,`the editGlobals fragment`,ND),style:DD(xD.style,`the editGlobals fragment`,ND),effect:DD(xD.effect,`the editGlobals fragment`,ND)}},FD={noun:`theme default key`,fields:{...Object.fromEntries(Sg.map(e=>[e,xD[e]])),style:DD(xD.style,`a theme's default`,`is the look that theme wears by name`)}};function ID(e,t){if(!zE(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${hm(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:J(e.source,[`themeDefaults`,r])});continue}let a=BE(e,FD,t,i);a!==null&&(n[r]=a)}return n}function LD(e,t,n){return n===void 0?{}:BE(e,kD,t,n)??{}}function RD(e,t,n){return BE(e,jD,t,n)??{}}function zD(){return sD(jD)}function BD(e,t,n){return BE(e,PD,t,n)??{}}const VD=new Set(Object.keys(xD));function HD(e){return VD.has(e)}function UD(e){return Object.hasOwn(OD,e)?OD[e]:void 0}function WD(){return[...VD]}const GD={padding:1};function KD(e){let t=new Map;for(let[n,r]of Object.entries(GD)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}const qD=/^segments\.([^.]+)\.palette$/,JD=/^presets\.(.+)\.root$/,YD=/^presets\.(.+)\.globals\.([^.]+)$/,XD=/^themeDefaults\.(.+)\.([^.]+)$/;function ZD(e){return`presets.${e}.root`}function QD(e,t){return`themeDefaults.${e}.${t}`}const $D=e=>Sg.includes(e);function eO(e,t){return`presets.${e}.globals.${t}`}function tO(e){if(HD(e))return{scope:`globals`,field:e};let t=qD.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=YD.exec(e);if(n&&MD(n[2]))return{scope:`preset-globals`,preset:n[1],field:n[2]};let r=XD.exec(e);if(r&&$D(r[2]))return{scope:`theme-default`,theme:r[1],field:r[2]};let i=JD.exec(e);return i?{scope:`preset-root`,preset:i[1]}:null}function nO(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 rO=[`location`,`git`,`model-context`,`cost-limits`,`activity`,`session-tools`],iO=[...rO,`other`],aO={location:`location`,git:`git`,"model-context":`model & context`,"cost-limits":`cost & limits`,activity:`activity`,"session-tools":`session tools`,other:`other`},oO=zy({fromString:e=>e}),sO=`edit.mode`,cO=`edit.configure`,lO=`edit.toggle`,uO=`edit.unconfigure`,dO=[lO,uO],fO=`arrange`,pO=`${pE}draft.`;function mO(e,t){return`${e}:${t}`}const hO={variable:sO,key:sO,member:fO},gO=ar(hO);function _O(e){try{return oO.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function vO(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`&&_O(e))return!0;return!1}function yO(e,t){if(_E(e,t,pE,`edit mode`),!vO(t))return;let{variables:n,actions:r}=bO();t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function bO(){return{variables:{[sO]:ur(sO,$n),[cO]:ur(cO,$n)},actions:{[lO]:dr(sO,fO),[uO]:{set:cO,to:$n}}}}const xO=`open`;function SO(e,t,n,r){let i={variable:e,key:e,member:xO};return r.variables[e]=ur(e,$n),r.actions[e]=dr(e,xO),r.segments[e]={template:sr(e,`(?)`,`✕`),...CO(n)},ir(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 CO(e){let[t,...n]=e;return t===void 0?{}:{when:ar(t,...n)}}const wO=`none`;function TO(e){return $s(e,`background`)}var EO=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function DO(e,t,n,r,i){let{palette:a,tint:o,text:s}=e,c=OO(n,i),l=c!==wO,u=l?c===void 0?o:kO(a,c,`bg`):TO(a);e.bg=u;let d=OO(r,i),f=d===void 0?l?(e=>e.hex===o.hex?s:Hp(a,e,t))(u):void 0:kO(a,d,`fg`);return new U({...l&&{bgcolor:V.fromRgba(u)},...f!==void 0&&{color:V.fromRgba(f)}})}function OO(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function kO(e,t,n){try{return $s(e,t)}catch(e){throw e instanceof Qs?new EO(t,n,e.message):e}}const AO=`🔧`,jO={help:[`-h`,`--help`],version:[`-V`,`--version`]},MO=[`✚ inserts`,`✖ removes`,`${AO} configures`,`↺ resets layout`],NO=`
|
|
67
|
+
`)}function cC(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 lC(e,t){let n=[];for(let e of t){if(typeof e==`object`&&e)throw Zx(`join`,2,`list of strings/primitives`,`list element of type ${uC(e)}`);n.push(String(e))}return n.join(e)}function uC(e){return Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:`object`}function dC(e){return eC(e,`-`)}function fC(e){return e.toLowerCase()}function pC(e,t){return`\n${sC(e,t)}`}function mC(e){return e.replace(/\s+/g,``)}function hC(e,t,n){return n===1?e:t}function gC(...e){return e.map(e=>`"${e}"`).join(` `)}function _C(e){return e.replace(/[\\.+*?()|[\]{}^$]/g,`\\$&`)}function vC(e,t){return t.repeat(Math.max(0,e))}function yC(e,t,n){return zS(e,n).join(t)}function bC(e){return eC(e,`_`)}function xC(e,t){let n=zS(e,t),r={};for(let e=0;e<n.length;e++)r[`_${e}`]=n[e];return r}function SC(e,t){return zS(e,t)}function CC(e,t,n){let r=wC(n,e,t),i={};for(let e=0;e<r.length;e++)i[`_${e}`]=r[e]??``;return i}function wC(e,t,n){if(n===0)return[];let r=zS(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 TC(...e){return e.map(e=>`'${e}'`).join(` `)}function EC(e,t,n){let r=RS(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 DC(e){let t=``;for(let n of e)OC(n)?t+=n.toLowerCase():kC(n)?t+=n.toUpperCase():t+=n;return t}function OC(e){return e!==e.toLowerCase()&&e===e.toUpperCase()}function kC(e){return e!==e.toUpperCase()&&e===e.toLowerCase()}function AC(e){return e.replace(/\b([a-zA-Z])/g,e=>e.toUpperCase())}function jC(e){return e.trim()}function MC(e,t){if(e.length===0)return t;let n=new Set(RS(e)),r=RS(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 NC(e,t){return t.startsWith(e)?t.slice(e.length):t}function PC(e,t){return t.endsWith(e)?t.slice(0,t.length-e.length):t}function FC(e,t){let n=RS(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 IC(e){return e.replace(/\b([A-Z])/g,e=>e.toLowerCase())}function LC(e){return e.toUpperCase()}function RC(e,t){return zC(e,`
|
|
68
|
+
`,t)}function zC(e,t,n){if(e<=0)return n;let r=[];for(let t of n.split(`
|
|
69
|
+
`)){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 BC(e,t,n){return zC(e,t,n)}function VC(){return{abbrev:{fn:(e,t)=>BS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},abbrevboth:{fn:(e,t,n)=>VS(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},camelcase:{fn:e=>nC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},cat:{fn:(...e)=>rC(...e),argTypes:[`string`],arity:{kind:`variadic`}},contains:{fn:(e,t)=>iC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasPrefix:{fn:(e,t)=>aC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasSuffix:{fn:(e,t)=>oC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},indent:{fn:(e,t)=>sC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},initials:{fn:e=>cC(e),argTypes:[`string`],arity:{kind:`exact`}},join:{fn:(e,t)=>lC(e,t),argTypes:[`string`,`list`],arity:{kind:`exact`}},kebabcase:{fn:e=>dC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},lower:{fn:e=>fC(e),argTypes:[`string`],arity:{kind:`exact`}},nindent:{fn:(e,t)=>pC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},nospace:{fn:e=>mC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},plural:{fn:(e,t,n)=>hC(e,t,n),argTypes:[`string`,`string`,`int`],arity:{kind:`exact`},returnType:`string`},quote:{fn:(...e)=>gC(...e),argTypes:[`string`],arity:{kind:`variadic`}},regexQuoteMeta:{fn:e=>_C(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},repeat:{fn:(e,t)=>vC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},replace:{fn:(e,t,n)=>yC(e,t,n),argTypes:[`string`,`string`,`string`],arity:{kind:`exact`}},snakecase:{fn:e=>bC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},split:{fn:(e,t)=>xC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitList:{fn:(e,t)=>SC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitn:{fn:(e,t,n)=>CC(e,t,n),argTypes:[`string`,`int`,`string`],arity:{kind:`exact`},returnType:`dict`},squote:{fn:(...e)=>TC(...e),argTypes:[`string`],arity:{kind:`variadic`}},substr:{fn:(e,t,n)=>EC(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},swapcase:{fn:e=>DC(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},title:{fn:e=>AC(e),argTypes:[`string`],arity:{kind:`exact`}},trim:{fn:e=>jC(e),argTypes:[`string`],arity:{kind:`exact`}},trimAll:{fn:(e,t)=>MC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimPrefix:{fn:(e,t)=>NC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimSuffix:{fn:(e,t)=>PC(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trunc:{fn:(e,t)=>FC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},untitle:{fn:e=>IC(e),argTypes:[`string`],arity:{kind:`exact`}},upper:{fn:e=>LC(e),argTypes:[`string`],arity:{kind:`exact`}},wrap:{fn:(e,t)=>RC(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},wrapWith:{fn:(e,t,n)=>BC(e,t,n),argTypes:[`int`,`string`,`string`],arity:{kind:`exact`}}}}function HC(e,t){let n=UC(e),r=n.copy();return r.style=dl(n.style,t),r}function UC(e){if(!(e instanceof K))throw TypeError(`template function expected a RichText fragment, got ${typeof e==`object`?Object.prototype.toString.call(e):typeof e}`);return e}function WC(e){return{fn:(t=>HC(t,e)),argTypes:[`liftable`],arity:{kind:`exact`},returnType:`T`}}function GC(e){return{fn:((t,n)=>HC(n,new U({[e]:V.parse(t)}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`}}function KC(e,t){return new U({[e]:t})}function qC(){let e={};for(let t of al)e[t]=WC(KC(t,!0)),e[`not_${t}`]=WC(KC(t,!1));for(let[t,n]of Object.entries(sl))e[t]=WC(KC(n,!0));return e}const JC={fn:((e,t)=>HC(t,U.parse(e))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`},YC={fn:((e,t)=>HC(t,new U({link:e}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`};function XC(){return{fg:GC(`color`),bg:GC(`bgcolor`),...qC(),link:YC,style:JC}}function ZC(e,t){let n;try{n=Ko(e.trim())}catch(n){throw n instanceof Oo?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 $C(e,t){return{fn:t,argTypes:e,arity:{kind:`exact`},returnType:`string`}}function ew(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 tw=$C([`string`,`int`],((e,t)=>ks(ZC(e,`darken`),t).hex)),nw=$C([`string`,`int`],((e,t)=>ks(ZC(e,`lighten`),-t).hex)),rw={min:0,max:100,note:`0 = from, 100 = toward`},iw=$C([`string`,`string`,`float`],((e,t,n)=>qo(ZC(e,`mix`),ZC(t,`mix`),ew(n,`mix`,`percentage`,rw)/100).hex)),aw={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},ow=$C([`string`],(e=>js(ZC(e,`contrastOn`)).hex)),sw={depth:B.TRUECOLOR},cw=e=>$C([`string`,`string`,`float`],((t,n,r)=>{let{depth:i,terminal:a}=e();return Ms(ZC(t,`readableOn`),ZC(n,`readableOn`),ew(r,`readableOn`,`ratio`,aw),i,void 0,a).hex})),lw={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function uw(){let e={};for(let[t,n]of Object.entries(lw)){let r=t;e[n]=$C([`string`,`float`],((e,t)=>{let i={...ds,[r]:ew(t,n,`amount`)};return H.fromRgba(ZC(e,n)).applyKey(i).toRgba().hex}))}return e}function dw(e=()=>sw){return{darken:tw,lighten:nw,mix:iw,contrastOn:ow,readableOn:cw(e),...uw()}}function fw(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(Cs(t,e[r+1]),`ramp`,JSON.stringify(e[r+1]))});return n}function pw(e){return{color:{fn:(t=>Cs(e(),t).hex),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},ramp:{fn:((t,n,...r)=>new Xc(Lc(n),fw(r,e())).at(t).hex),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:4},returnType:`string`}}}function mw(e,t,n){if(t.length%2!=0)throw RangeError(`last hold (${String(t[t.length-1])} s) has no ${e} — the arguments are <seconds> <${e}> pairs`);let r=[];for(let e=0;e<t.length;e+=2){let i=t[e];if(!Number.isFinite(i)||i<=0)throw RangeError(`hold ${e/2} must be a positive number of seconds, got ${i}`);r.push({seconds:i,value:n(t[e+1])})}return r}function hw(e){return{frames:{fn:((...t)=>Bf(new zf(mw(`frame`,t,UC).map(({seconds:e,value:t})=>({seconds:e,text:t}))),e())),argTypes:[`float`,`liftable`],arity:{kind:`alternating`,minimum:2},returnType:`T`},stepped:{fn:((...t)=>{let n=mw(`color`,t,e=>ZC(e,`stepped`));return n[Kc(n.map(e=>e.seconds)).at(e())].value.hex}),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:2},returnType:`string`}}}function gw(e){return{...XC(),...dw(e)}}new U({color:`red`,dim:!0});const _w=/^(?:(?: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,vw=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function yw(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(_w);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(vw);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 bw(e){let t=e.match(vw);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 xw(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 Sw(e){return e.toLocaleString()}function Cw(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 ww(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 Tw=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],Ew=Tw.length;function Dw(e,t){let n=t===void 0?e:t<=0?[]:e.slice(-t);if(n.length===0)return``;let r=n[0],i=n[0];for(let e of n)e<r&&(r=e),e>i&&(i=e);let a=i-r,o=``;for(let e of n){let t=a===0?0:Math.round((e-r)/a*(Ew-1));o+=Tw[t]}return o}function Ow(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 kw(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 Aw=_m(),jw=[...Rm];function Mw(){return{basename:{fn:e=>u(e),argTypes:[`string`],arity:{kind:`exact`}},dirname:{fn:e=>d(e),argTypes:[`string`],arity:{kind:`exact`}},abbreviatePath:{fn:e=>xw(e),argTypes:[`string`],arity:{kind:`exact`}},int:{fn:e=>Math.trunc(H_(e)),argTypes:[`value`],arity:{kind:`exact`}},string:{fn:e=>V_(e),argTypes:[`value`],arity:{kind:`exact`}},bool:{fn:e=>U_(e),argTypes:[`value`],arity:{kind:`exact`}},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`],arity:{kind:`exact`}},themes:{fn:()=>Aw,argTypes:[],arity:{kind:`exact`}},endcaps:{fn:()=>jw,argTypes:[],arity:{kind:`exact`}},sparkline:{fn:(e,t,...n)=>(kw(`sparkline`,[`width`],n),Dw(Ow(e),t)),argTypes:[`string`,`int`],arity:{kind:`variadic`}},cascade:{fn:(e,...t)=>ww(e,Cw(t)),argTypes:[`float`,`string`],arity:{kind:`variadic`}}}}function Nw(e){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`],arity:{kind:`exact`}},formatInteger:{fn:e=>Sw(e),argTypes:[`int`],arity:{kind:`exact`}},round:{fn:e=>Math.round(e),argTypes:[`float`],arity:{kind:`exact`}},formatModelName:{fn:e=>yw(e),argTypes:[`string`],arity:{kind:`exact`}},shortenModelName:{fn:e=>bw(e),argTypes:[`string`],arity:{kind:`exact`}}}}function Pw(e){let{clock:t,drawnAt:n,extraFuncs:r}=e;return Ry({fromString:e=>new K(e),toString:e=>e.plain,isT:e=>e instanceof K,clock:t,missingKey:`error`,funcs:{...Dx(),...VC(),...hS(),...LS(),...yx(t),...lb(),...Ux(),...Vx(),...gw(n&&(()=>({depth:n()}))),...hw(()=>t().getTime()/1e3),...Mw(),...Nw(t),...r??{}}})}function Fw(e){return Iw(e,new Set(e.names()),``)}function Iw(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`?Rw(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return Iw(e,t,a)}})}function Lw(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 Rw(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw new W_(e,`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}function zw(e){return r.existsSync(l.join(e,`.git`))}function Bw(e){let t=l.resolve(e);for(;;){if(zw(t))return t;let e=l.dirname(t);if(e===t)return;t=e}}function Vw(e){let t=Bw(e);return t===void 0?{root:l.resolve(e),git:!1}:{root:t,git:!0}}function Hw(e,t){return e.kind===`absent`?F(`none`):e.kind===`failed`?e:t.kind===`failed`?t:F(t.kind===`ok`?`tracked`:`gone`)}function Uw(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 Ww={OPEN:`open`,MERGED:`merged`,CLOSED:`closed`},Gw={opened:`open`,locked:`open`,merged:`merged`,closed:`closed`};function Kw(e,t,n){return Object.hasOwn(t,n)?F(t[n]):L(`${e}: unknown state ${JSON.stringify(n)}`)}function qw(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??Jw(t.stderr)].filter(Boolean).join(`, `)}`)}function Jw(e){return e.trim().split(`
|
|
70
|
+
`,1)[0]??``}function Yw(e,t){if(e.kind!==`ok`)return e;let n=t(e.value);return n===null?I:F(n)}function Xw(e){if(e.kind!==`ok`)return e;let t=e.value.trim();return t?F(t):I}const Zw=/^[A-Za-z]:[\\/]/;function Qw(e){let t=e.trim();if(Zw.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 $w(e){return Qw(e)?.host||null}function eT(e){let t=$w(e);return t?t===`github.com`||t.endsWith(`.github.com`)?`github`:/(^|\.)gitlab\./.test(t)?`gitlab`:null:null}function tT(e){let t=new Map;for(let n of e.split(`
|
|
71
|
+
`)){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 nT(e){return e.urls.find(e=>sT(e)!==null)??e.urls[0]??null}function rT(e){return e.find(e=>e.name===`origin`)??e[0]??null}function iT(e){let t=rT(e);return t?nT(t):null}function aT(e){let t=rT(e);return t?t.urls.find(e=>eT(e)!==null)??nT(t):null}function oT(e){let t=(Qw(e)?.path??e.replace(/[\\/]+$/,``)).split(`/`);return(t[t.length-1]??``).replace(/\.git$/,``)||null}function sT(e){let t=Qw(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 cT(e){let t=iT(e);return t===null?null:sT(t)}function lT(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??Jw(t.stderr)].filter(Boolean).join(`, `)}`)}function uT(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function dT(e){let t=`detached`,n=I,r=I,i=I,a=0,o=0,s=0,c=0;for(let l of e.split(`
|
|
72
|
+
`)){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 fT(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(!uT(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=Kw(`gh pr view`,Ww,r);return o.kind===`ok`?F({number:n,state:o.value,url:i,head:a}):o}function pT(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(!uT(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=Kw(`glab mr view`,Gw,r);return o.kind===`ok`?F({number:n,state:o.value,url:i,head:a}):o}function mT(e){try{let t=r.statSync(e);return{key:`${t.dev}:${t.ino}`,stamp:`${t.mtimeMs}:${t.size}`}}catch{return null}}var hT=class{isGitRepo(e){return zw(e)}async execGitAsync(e,t){return Ne({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=Bw(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=Yw(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=Yw(s,e=>this.repoNameFrom(e,r)),o.isWorktree=i),s!==void 0&&t.showRepoUrl&&(o.repoUrl=Yw(s,cT)),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 Xw(qw(`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=Xw(qw(`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(`
|
|
73
|
+
`).length:0)}async getRemotesAsync(e){let t=mT(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=qw(`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`?tT(t.value):[])}repoNameFrom(e,t){let n=iT(e);return(n===null?null:oT(n))??l.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=aT(t.value);return n===null?I:F(n)}async execForgeAsync(e,t,n){return Ne({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=eT(t);return n===`github`?lT(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url,headRefOid`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,fT):n===`gitlab`?lT(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,pT):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=qw(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?F(dT(t.value)):t}};const gT=(e,t)=>D(t);var _T=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??gT}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()}},vT=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 yT={showSha:!0,showStashCount:!0};function bT(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function xT(e){let t=t=>{try{return r.statSync(l.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function ST(e,t){return e.head!==t.head||e.index!==t.index}function CT(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 wT=class extends hT{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new vT;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new hT,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??It,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new _T({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}|${bT(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=xT(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}`,CT(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}`,CT(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,{...yT});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,{...yT}),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=xT(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),ST(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 TT=/\r\n|\r|\n/g,ET=e=>F(e.replace(TT,` `).trim());function DT(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?L(`regex no-match`):F(n.replace(TT,` `))}}const OT=e=>{try{return F(JSON.parse(e))}catch(e){return L(`JSON parse failed: ${e.message}`)}},kT=e=>e.getTime()/1e3,AT=e=>new Date(e*1e3);function jT(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 MT(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 NT=`session.id`;function PT(e,t,n){return{where:`output of "${e}" in ${t}`,read:async()=>{let r=await Ne({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 FT(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 IT(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 LT=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],RT=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],zT=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],BT=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function VT(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>LT[e.getMonth()]],[`Monday`,e=>zT[e.getDay()]],[`Jan`,e=>RT[e.getMonth()]],[`Mon`,e=>BT[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 HT={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function UT(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=HT[t];try{return ZT(r,e)}catch{return QT(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return vi(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return vi(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return vi(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return vi(e.stashCount,0)}}function WT(e){try{return o(e)}catch{return e}}function GT(e){try{return s(e).isDirectory()}catch{return!1}}function KT(e){let t=WT(e);return GT(t)?{dir:t,name:null,leaf:!0}:P_(t)}const qT=e=>`${e.dir}\0${e.name??``}`;var JT=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:KT(e),subscribers:new Map};return t.watcher=this.open(e,t,t.target),this.watchers.set(e,t),t}rearm(e,t){let n=KT(e);if(t.watcher!==null&&qT(n)===qT(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}},YT=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:ue(()=>{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 XT(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function ZT(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`?V_(e):t===`number`?H_(e):U_(e)}function QT(e){return e===`number`?0:e===`boolean`?!1:``}var $T=class{inputMetas=new Map;lastErrors=new Map;policyFaults=new Map;watchMgr=new JT;ttlMgr=new YT;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new vT;abort=new AbortController;drawn=R_.observable.box(B.TRUECOLOR);drawnAt=()=>this.drawn.get();instant=R_.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 AT(e)};engine=Pw({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 wT({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,B_(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,PT(t,n.cwd,this.abort.signal),jT(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,FT(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,ET,t.default,n);case`regex`:return this.scalarPublisher(e,DT(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=IT(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,vi(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=IT(s,OT,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(Fw(this.store)).map(e=>e.plain).join(``),n.varDefault)}declareTime(e,t){this.declareDerived(e,()=>VT(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 G_(t)?new W_(e,`variable "${e}": ${r}`):Error(`variable "${e}": ${r}`);return n}})}declareGit(e,t){let n=HT[t.field],r=t.varDefault===void 0?QT(n):ZT(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,UT(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(NT);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(NT):``;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=XT(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,ZT(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();return this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close(),this.store.dispose()}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(Fw(this.store)).map(e=>e.plain).join(``))}catch(e){return G_(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,R_.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,R_.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,ZT(this.defaultEmptyValue,t))}catch{this.store.setBox(e,QT(t))}}defaultFor(e){try{return ZT(this.defaultEmptyValue,e)}catch{return QT(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 eE={project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},[NT]:{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:``},"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:``}},tE=`ne .tmux.pane ""`;function nE(e,t,n){let r=new Set,i=e=>{for(let t of w_(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 gg(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(NT);for(let t of Object.values(e.actions)){r.add(NT),`copy`in t&&i(t.copy),`open`in t&&i(t.open);let e=`set`in t?Da.get(t.set):void 0,n=`persist`in t?Ea.get(t.persist):void 0;e!==void 0&&r.add(e),n!==void 0&&r.add(n)}return r}function rE(e,t,n){let r=M_({...n,variables:{...n.variables,...e.variables},segments:{...n.segments,...e.segments}}),i={};for(let a of nE(e,t,n.helpers)){if(j_(a,r))continue;let e=eE[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 iE(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}var aE=class extends Error{file;issues;warnings;constructor(e,t,n=[]){super(lE(e,t)),this.name=`ConfigError`,this.file=e,this.issues=t,this.warnings=n}};function Y(e,t){let n=0,r;for(let i of t){if(i===``||/^\d+$/.test(i))continue;let t=oE(e,n,i);if(t===-1)return r===void 0?void 0:sE(e,r);n=t,r=t}return r===void 0?void 0:sE(e,r)}function oE(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 sE(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function cE(e,t){try{return Er(t),null}catch(n){if(!(n instanceof br))throw n;return`${e}:${sE(t,n.offset)}: ${n.reason} — the settings menu cannot edit this file until it is fixed`}}function lE(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(`
|
|
74
|
+
`)}const uE=`groups.`,dE=`menus.`,fE=`edit.`,X=`candybar.`,pE=[uE,dE,fE,X];function mE(e){return pE.some(t=>e.startsWith(t))}function hE(e){let t=iE(e);return pE.find(e=>t.startsWith(iE(e)))}function gE(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:Y(e.source,[`root`])})}function _E(e){return e}function vE(e,t,n){return n===void 0?dE+iE(e)+`.`+iE(t):yE(n)}function yE(e){return dE+iE(e)}function bE(e,t){return e+`.`+t}function xE(e){return e+`.page`}const SE=[`closeOnPick`,`paged`,`key`,`distribution`],CE=e=>SE.includes(e),wE=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${gp.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function TE(e){for(let t of Object.keys(e))if(!CE(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${wE}`);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&&!_p(r))throw Error(`{{ menu }} option "distribution" must be one of: ${gp.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:yp(r)}}const EE=e=>`from`in e?e.from:e.themes;function DE(e,t,n){return e===`bool`?th(t)!==null:`min`in e?nh(t,e)!==null:l_(EE(e),n).members.includes(t)}function OE(e,t){if(e===`bool`)return $m.join(` or `);if(!(`min`in e)){let n=EE(e),{members:r}=l_(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 kE(e){return{label:e.label,domain:AE(e.domain)}}function AE(e){return e===`theme`?{themes:o_}:e===`bool`||`min`in e?e:{from:e}}function jE(e,t,n,r,i){let a=rr(e.label),{domain:o}=e;if(o===`bool`)return{kind:`inline`,template:`{{ action "${r}" "☑ ${a}" "☐ ${a}" }}`,actions:{[r]:{set:t,cycle:[...$m]}},variables:{}};if(`from`in o)return ME(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 ME(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 ME(e,t,n,r,i){let a={variable:n,key:n,member:t},o=bE(n,t),s=`${t}.open`,c=xE(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]:dr(n,t),[c]:{set:c,int:!0},[l]:{set:c,to:`-1`},[s]:{do:[o,l]}},variables:{[n]:ur(n,$n),[c]:{kind:`state`,key:c,default:`0`}},list:{ref:a,rows:d}}}function NE(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 ${zE(i)}`,line:Y(e.source,[...t.split(`.`),r])}),null)}function PE(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 ${zE(i)}`,line:Y(e.source,[...t.split(`.`),`default`])});return}return i}}function FE(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 ${zE(i)}`,line:Y(e.source,[...t.split(`.`),r])});return}return i}}function IE(e,t,n){let r=FE(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}"${mm(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:Y(e.source,[...t.split(`.`),`palette`])});return}return r}}function LE(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:Y(e.source,[...t.split(`.`),r])});return}return a}}function RE(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zE(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 BE(e,t,n,r){return RE(r)?(WE(e,n,r,t.noun,new Set(Object.keys(t.fields)),VE(e,t.removed??{},n,r)),HE(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${zE(r)}`,line:Y(e.source,n.split(`.`))}),null)}function VE(e,t,n,r){let i=Object.entries(t).filter(([e])=>r[e]!==void 0);for(let[t,r]of i)GE(e,`${n}.${t}`,`${n}.${t} was removed: ${r}`);return new Set(i.map(([e])=>`${n}.${e}`))}function HE(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 UE=new Set;function WE(e,t,n,r,i,a=UE){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:Y(e.source,[...t.split(`.`),o])})}function GE(e,t,n){return e.issues.push({path:t,message:n,line:Y(e.source,t.split(`.`))}),null}function KE(e,t,n,r){if(!RE(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${zE(r)}`,line:Y(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:Y(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:Y(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:Y(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function qE(e,t,n,r){if(!RE(r))return e.issues.push({path:n,message:`${n} must be an object, got ${zE(r)}`,line:Y(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 ${zE(i)}`,line:Y(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:Y(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 WE(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function JE(e,t,n){return{json:cD(oD(n),e,t),keys:new Set([e,...Object.keys(n)])}}function YE(e){return(...t)=>e()(...t)}function XE(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:Y(n.source,o.split(`.`))}),null}return a}}function ZE(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>FE(e,t,r,n)}}function QE(){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 ${zE(i)}`,line:Y(e.source,[n])});return}return i}}}}function $E(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:Y(e.source,[i])});return}return o}}}}function eD(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:Y(e.source,[r])});return}return a}}}}function tD(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>IE(e,t,r)}}function nD(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>NE(e,t,r,n)??void 0}}function rD(e,t){return f(t)?null:`${e} must be an absolute path (\`~\` and relative paths are not expanded), got ${JSON.stringify(t)}`}function iD(){return{required:!0,json:{type:`string`,pattern:`^/`},parse:(e,t,n,r)=>{let i=NE(e,t,r,n);if(i===null)return;let a=rD(`${t}.${n}`,i);return a===null?i:GE(e,`${t}.${n}`,a)??void 0}}}function aD(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>LE(t,n,i,r,e)}}function oD(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 sD(e){return oD(e.fields)}function cD(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function lD(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function uD(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const dD={required:!1,json:{enum:[...Um]},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: ${Um.join(`, `)}`,line:Y(e.source,[...t.split(`.`),n])});return}return LE(e,t,r,n,Um)}},fD={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=FE(e,t,r,n);return Cm(i)?i:IE(e,t,r)}},pD={required:!1,json:{anyOf:[{enum:[...Nm]},{type:`string`,pattern:`\\{\\{`}]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&Cm(i)?i:LE(e,t,r,n,Nm)}},mD=/^[^\r\n]*\S[^\r\n]*$/u,hD=RegExp(`^(?:✖|✕)[\\uFE0E\\uFE0F]?$`,`u`),gD={required:!1,json:{type:`string`,pattern:mD.source,not:{pattern:hD.source}},parse:(e,t,n,r)=>{let i=FE(e,t,r,n);if(i===void 0||mD.test(i)&&!hD.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:Y(e.source,[...t.split(`.`),n])})}};function _D(e){return{spec:aD(e),domain:{from:e}}}function vD(){return{spec:QE(),domain:`bool`}}function yD(e){return{spec:e,domain:`text`}}const bD={default_empty_value:yD(ZE()),default_separator:yD(ZE()),palette:{spec:fD,domain:{themes:`themes`}},style:{spec:ZE(),domain:{from:`styles`}},effect:{spec:pD,domain:{from:Nm}},preset:{spec:ZE(),domain:{from:`presets`}},endcaps:_D(Rm),variation:_D(Gm),shade:_D(Jm),autoWrap:vD(),padding:{spec:$E(eh),domain:{...eh,step:1}},updateNotice:vD(),transitions:vD(),colorCompatibility:{spec:dD,domain:{from:Um}},menuGlyph:yD(gD)},xD=Object.fromEntries(Object.entries(bD).map(([e,t])=>[e,t.spec]));function SD(e){return bD[e].domain}function CD(e){let t=SD(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 wD(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:Y(e.source,[...n.split(`.`),r])})}}}function TD(e){return wD(`${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 ED(e){return wD(`${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 DD(e,t,n){return{...e,json:{...e.json,not:{pattern:`\\{\\{`}},parse:(r,i,a,o)=>{let s=o[a];if(typeof s==`string`&&Cm(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:Y(r.source,[...i.split(`.`),a])});return}return e.parse(r,i,a,o)}}}const OD={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)`,charset:"the bar always draws Nerd Font glyphs. Delete the key; `cc-candybar doctor` names what your terminal's font is missing."},kD={noun:`globals key`,fields:xD,removed:OD},AD={preset:TD(`a preset`),menuGlyph:ED(`a preset`)},jD={noun:`preset globals key`,fields:{...xD,...AD},removed:OD};function MD(e){return HD(e)&&!(e in AD)}const ND=`is decided later than any rule could be settled`,PD={noun:`editGlobals key`,removed:OD,fields:{...xD,preset:TD(`the editGlobals fragment`),menuGlyph:ED(`the editGlobals fragment`),palette:DD(xD.palette,`the editGlobals fragment`,ND),style:DD(xD.style,`the editGlobals fragment`,ND),effect:DD(xD.effect,`the editGlobals fragment`,ND)}},FD={noun:`theme default key`,fields:{...Object.fromEntries(xg.map(e=>[e,xD[e]])),style:DD(xD.style,`a theme's default`,`is the look that theme wears by name`)}};function ID(e,t){if(!RE(t))return e.issues.push({path:`themeDefaults`,message:`themeDefaults must be an object mapping theme names to { shade, variation, style }, got ${zE(t)}`,line:Y(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${mm(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:Y(e.source,[`themeDefaults`,r])});continue}let a=BE(e,FD,t,i);a!==null&&(n[r]=a)}return n}function LD(e,t,n){return n===void 0?{}:BE(e,kD,t,n)??{}}function RD(e,t,n){return BE(e,jD,t,n)??{}}function zD(){return sD(jD)}function BD(e,t,n){return BE(e,PD,t,n)??{}}const VD=new Set(Object.keys(xD));function HD(e){return VD.has(e)}function UD(e){return Object.hasOwn(OD,e)?OD[e]:void 0}function WD(){return[...VD]}const GD={padding:1};function KD(e){let t=new Map;for(let[n,r]of Object.entries(GD)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}const qD=/^segments\.([^.]+)\.palette$/,JD=/^presets\.(.+)\.root$/,YD=/^presets\.(.+)\.globals\.([^.]+)$/,XD=/^themeDefaults\.(.+)\.([^.]+)$/;function ZD(e){return`presets.${e}.root`}function QD(e,t){return`themeDefaults.${e}.${t}`}const $D=e=>xg.includes(e);function eO(e,t){return`presets.${e}.globals.${t}`}function tO(e){if(HD(e))return{scope:`globals`,field:e};let t=qD.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=YD.exec(e);if(n&&MD(n[2]))return{scope:`preset-globals`,preset:n[1],field:n[2]};let r=XD.exec(e);if(r&&$D(r[2]))return{scope:`theme-default`,theme:r[1],field:r[2]};let i=JD.exec(e);return i?{scope:`preset-root`,preset:i[1]}:null}function nO(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 rO=[`location`,`git`,`model-context`,`cost-limits`,`activity`,`session-tools`],iO=[...rO,`other`],aO={location:`location`,git:`git`,"model-context":`model & context`,"cost-limits":`cost & limits`,activity:`activity`,"session-tools":`session tools`,other:`other`},oO=Ry({fromString:e=>e}),sO=`edit.mode`,cO=`edit.configure`,lO=`edit.toggle`,uO=`edit.unconfigure`,dO=[lO,uO],fO=`arrange`,pO=`${fE}draft.`;function mO(e,t){return`${e}:${t}`}const hO={variable:sO,key:sO,member:fO},gO=ar(hO);function _O(e){try{return oO.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function vO(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`&&_O(e))return!0;return!1}function yO(e,t){if(gE(e,t,fE,`edit mode`),!vO(t))return;let{variables:n,actions:r}=bO();t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function bO(){return{variables:{[sO]:ur(sO,$n),[cO]:ur(cO,$n)},actions:{[lO]:dr(sO,fO),[uO]:{set:cO,to:$n}}}}const xO=`open`;function SO(e,t,n,r){let i={variable:e,key:e,member:xO};return r.variables[e]=ur(e,$n),r.actions[e]=dr(e,xO),r.segments[e]={template:sr(e,`(?)`,`✕`),...CO(n)},ir(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 CO(e){let[t,...n]=e;return t===void 0?{}:{when:ar(t,...n)}}const wO=`none`;function TO(e){return Cs(e,`background`)}var EO=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function DO(e,t,n,r,i){let{palette:a,tint:o,text:s}=e,c=OO(n,i),l=c!==wO,u=l?c===void 0?o:kO(a,c,`bg`):TO(a);e.bg=u;let d=OO(r,i),f=d===void 0?l?(e=>e.hex===o.hex?s:Vp(a,e,t))(u):void 0:kO(a,d,`fg`);return new U({...l&&{bgcolor:V.fromRgba(u)},...f!==void 0&&{color:V.fromRgba(f)}})}function OO(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function kO(e,t,n){try{return Cs(e,t)}catch(e){throw e instanceof Ss?new EO(t,n,e.message):e}}const AO=`🔧`,jO={help:[`-h`,`--help`],version:[`-V`,`--version`]},MO=[`✚ inserts`,`✖ removes`,`${AO} configures`,`↺ resets layout`],NO=`
|
|
75
75
|
cc-candybar - Beautiful powerline statusline for Claude Code
|
|
76
76
|
|
|
77
77
|
Usage: cc-candybar [options]
|
|
@@ -156,13 +156,13 @@ Config tooling:
|
|
|
156
156
|
running daemon; none spawn one.)
|
|
157
157
|
|
|
158
158
|
`,PO=`readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3`,FO={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function IO(e){let t=e[FO.socket]??``,n=e[FO.pane]??``;if(t===``||n===``)return null;let r=e[FO.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}const LO={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:`20230712`}},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`}}},RO=e=>LO[e];function zO(e){return RO(e).glyphs.kind===`bundled`}function BO(e){return RO(e).glyphs.kind===`configured`}const VO=e=>RO(e).label,HO=[{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 UO(e,t){let n=t.codePointAt(0);return HO.some(({since:t,from:r,to:i})=>r<=n&&n<=i&&e!==null&&KO(e,t)===!0)}const WO=Object.keys(LO);function GO(e){let t=/^\d+(?:\.\d+)*/.exec(e);return t===null?null:t[0].split(`.`).map(Number)}function KO(e,t){let n=GO(e),r=GO(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 qO(e){for(let t of WO){let n=RO(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 JO(e){let t=WO.find(t=>RO(t).term===e);return t===void 0?null:{name:t,version:null}}function YO(e){let t=qO(e.termtype)??JO(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 XO(e){let t=e.TERM_PROGRAM,n=WO.find(e=>RO(e).program===t),r=n===void 0?JO(e.TERM):{name:n,version:RO(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 ZO(e){switch(e.kind){case`known`:return VO(e.terminal.name);case`unknown`:return e.called;case`unnamed`:return e.term||null}}function QO(e){switch(e.kind){case`known`:return VO(e.terminal.name);case`unknown`:return e.called;case`unnamed`:return e.term||`this terminal`}}function $O({name:e,version:t}){let n=RO(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=KO(t,n.since);return r===null?{kind:`unsaid`,since:n.since}:r?{kind:`draws`}:{kind:`older`,since:n.since,version:t}}const ek=WO.filter(e=>RO(e).links!==null).map(VO).join(`, `),tk=[`drawn`,`boxes`];function nk(e){let[t,...n]=e;return t===void 0?{ok:!0}:{ok:!1,reason:t,more:n}}const rk=FO.truecolor,ik={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[rk];return typeof n==`string`&&n!==``?{ok:!1,reason:`${rk} 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`,rk],value:`1`}}}}}},ak={variable:`is never read`,action:`is never clicked`,helper:`is never called`,segment:`is in no preset`},ok={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(`
|
|
159
|
-
`).map(e=>e.trim()).filter(e=>e!==``),...e.warnings];return{ok:!1,reason:t,more:n}}case`loaded`:return nk([...e.warnings,...e.unused.map(({kind:e,name:t})=>`${e} "${t}" ${ak[e]}`)])}}},sk="re-run `cc-candybar install`";function ck(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:// — ${sk}`];let{app:t,missing:n}=e.value;return n.kind===`failed`?[`${t} opens cc-candybar://, but ${n.reason} — ${sk}`]:n.value.map(e=>`${e} is missing, and ${t} runs it — ${sk}`)}const lk={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}) — ${sk}`:`the URL handler runs cc-candybar ${e.handler}; the bar runs ${e.bar} — ${sk}`};case`lost`:return nk([...ck(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}`])}}},uk=`click 🩺 doctor in the bar's settings menu: if it runs, links work`;function dk(e,t){let n=ZO(e);return t.kind===`ok`&&n!==null&&t.value.includes(n)?{kind:`draws`}:e.kind===`known`?$O(e.terminal):{kind:`unknown`}}function fk({identified:e,tmuxClient:t},n){let r=QO(e),i=dk(e,n),a=ZO(e)===null?uk:`${uk}, 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: ${ek}`];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 pk={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 nk(fk(t,n))}}},mk={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}}}},hk=e=>[...e].map(e=>`U+${e.codePointAt(0).toString(16).toUpperCase()}`).join(` `);function gk(e){switch(e.kind){case`unreported`:case`unasked`:return`this terminal`;case`unknown`:case`unnamed`:return QO(e);case`bundling`:case`unread`:case`configured`:return[VO(e.name),e.version].filter(e=>e!==null).join(` `)}}function _k(e){switch(e.kind){case`unreported`:case`unasked`:return null;case`unknown`:case`unnamed`:return ZO(e);case`bundling`:case`unread`:return VO(e.name);case`configured`:{let t=VO(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 vk(e){let t=_k(e.terminal);return t===null?void 0:{glyphs:e.glyphs,id:`${t}|${hk(e.glyphs)}`}}const yk=[ok,lk,pk,ik,mk,{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=vk(e),r=e=>({ok:!1,reason:e,...n!==void 0&&{sighting:n}}),i=e.terminal,a=gk(i);switch(n===void 0?null:t.value.nerdFont?.[n.id]??null){case`drawn`:return{ok:!0};case`boxes`:return r(`${a} draws ${hk(e.glyphs)} as boxes — set a Nerd Font as its font`);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=LO[i.name].glyphs.since;if(e===null)return{ok:!0};let t=i.version===null?null:KO(i.version,e);if(t===!0)return{ok:!0};let n=VO(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`)}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`):n.length===0?{ok:!0}:r(`${a} draws with ${e} (${t}), which has no ${hk(n)} — set a Nerd Font as its font`)}}}}],bk=yk.filter(e=>e.takesMark);function xk(e){return yk.map(t=>({check:t,verdict:t.probe(e)}))}function Sk(e){return yk.find(t=>t.name===e)}const Ck=`${Y}doctor.`;function wk(e){let t=`${Ck}${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`,sighting:`${t}sighting`}}function Tk(e,t){let n=e.kind===`seen`?e.tmuxClient:null,r=e.kind===`seen`?ZO(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 Ek(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=vk(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 Dk(e,t=[]){return t.length===0?e:`${e} (+${t.length} more — run \`cc-candybar doctor\`)`}function Ok(e){return e.flatMap(({check:e,verdict:t})=>{let n=wk(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:$m},{key:n.sighting,value:``}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:Dk(t.reason,t.more)},{key:n.fixable,value:t.fix===void 0?$m:Qm},{key:n.sighting,value:t.sighting?.glyphs??``}]})}const kk={copySession:{copy:`{{ .session.id }}`},copyResume:{copy:`{{ .resume_command }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},openConfig:{open:`{{ .config_path }}`}};function Ak(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(kk).map(([t,n])=>[`${e}${t}`,n]))}}const jk=`armed`,Mk=`disarmed`,Nk=`.armed`,Pk=e=>e.endsWith(Nk);function Fk(e,t,n){let r=`${e}${Nk}`,i=`${e}.arm`,a=`${e}.disarm`,o=`(eq .${e} "${jk}")`;return{template:`{{ if ${o} }}{{ action "${e}" "${t.confirm}" }} {{ action "${a}" "✕" }}{{ else }}{{ action "${i}" "${t.arm}" }}{{ end }}`,actions:{[i]:{set:r,to:jk},[a]:{set:r,to:Mk},[e]:{do:[a,...n]}},armed:o,variables:{[e]:{kind:`state`,key:r,default:Mk}},disarm:a}}const Ik=RegExp(`^/[^\\s\\x00-\\x1f\\x7f-\\x9f/][^\\x00-\\x1f\\x7f-\\x9f]*$`);function Lk(e){return typeof e==`string`&&Ik.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 Rk(e){let t=Lk(e);if(t.kind===`refused`)throw Error(t.reason);return t.line}const zk=[`/compact`,`/model`],Bk=`/clear`;function Vk(e){let t=t=>`${e}${t.slice(1)}`,n=`${e}clear.slash`,r=Fk(`${e}clear`,{arm:Bk,confirm:`${Bk} ✓ confirm`},[n]);return{template:zk.map(e=>`{{ action "${t(e)}" "${e}" }} `).join(``)+r.template,when:`{{ ${nE} }}`,actions:{...Object.fromEntries(zk.map(e=>[t(e),{slash:Rk(e)}])),...r.actions,[n]:{slash:Rk(Bk)}},variables:r.variables,disarm:r.disarm}}const Hk=Array.from({length:10},(e,t)=>(t+1)*1e5),Uk=Hk[0],Wk=Hk[Hk.length-1];function Gk(e){let t;try{t=hi(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>=Uk&&n<=Wk?F(n):L(`${e}: autoCompactWindow is ${JSON.stringify(n)}, not a window /autocompact accepts (${Uk}–${Wk} tokens)`)}function Kk(e,t){let n=Math.min(t??Wk,Wk),r=e===`auto`?n:Math.min(e,n);return{window:e===`auto`?0:e,applied:e===`auto`?0:r,lower:Hk.filter(e=>e<r).at(-1)??0,higher:Hk.find(e=>e>r&&e<=n)??0}}function qk(e,t){return{template:`{{ if ne .autocompact.error "" }}⇲ ⚠ {{ .autocompact.error }}{{ else }}⇲ {{ if eq .autocompact.window 0 }}auto{{ else }}${t(`.autocompact.applied`)}{{ end }}{{ if ${nE} }}{{ 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:Rk(`/autocompact auto`)},...Object.fromEntries(Hk.map(t=>[`${e}${t}`,{slash:Rk(`/autocompact ${t}`)}]))}}}const Jk=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 }}`,Yk=`${Y}menu`,Xk=`open`,Zk=`${Y}edit`,Qk=`${Y}toolbar`,$k=Ak(Y),eA=`${Y}commands`,tA=Vk(`${eA}.`),nA=`${Y}autocompact`,rA=qk(`${nA}.`,Jk),iA=e=>({kind:`segment`,name:e}),aA=`${Y}tab`,oA=[{member:`session`,label:`⚡ session`},{member:`look`,label:`🎨 look`},{member:`layout`,label:`📐 layout`},{member:`config`,label:`⚙ config`},{member:`tools`,label:`🧰 tools`}],sA=e=>`${aA}.${e}`,cA=e=>`${sA(e)}.toggle`,lA=e=>({variable:aA,key:aA,member:e}),uA=`${Y}save`,dA=`${Y}preset.save`,fA=`${Y}preset.delete`,pA=e=>`${Y}${e}`,mA=e=>`${Y}apply.${e}`,hA=e=>`${Y}reset.${e}`,gA=`${Y}themeDefault.save`,_A=`${Y}themeDefault.differs`,vA=`${Y}themeDefault.theme`,yA={when:`{{ .${_A} }}`,template:`{{ action "${gA}" (printf "⤓ default for %s" .${vA}) }} {{ swatch "${mA(`theme`)}" .${vA} }}`},bA=`${Y}resetAll`,xA=`${Yk}.toggle`,SA={variable:Yk,key:Yk,member:Xk},CA=`${Y}undo`,wA=`${Y}back`,TA=`${wA}.step`,EA=`${Y}navigation.back`,DA=wA,OA={template:`{{ if gt .${EA} 0 }}{{ action "${wA}" "◁" }}{{ else }}{{ fg (${PO}) "◁" }}{{ end }}`},kA=`${Y}redo`,AA=`${Y}doctor`,jA=`${AA}.run`,MA=e=>`${AA}.fix.${e}`,NA=(e,t)=>`${AA}.mark.${e}.${t}`,PA=e=>`${AA}.${e}`,FA={drawn:`[✓ shapes]`,boxes:`[✗ boxes]`},IA=bE(`${Y}pickers`),LA=`${Y}gear`,RA=`gear`,zA=`${LA}.toggle`,BA={variable:IA,key:IA,member:RA},VA=bE(`${Y}gearPickers`),HA=[{template:`{{ themePreview }}`}],UA={template:`{{ layoutPreview }}`},WA={preset:[UA,{when:`{{ not .preset.bundled }}`,template:`{{ action "${fA}" (printf "🚮 delete %s" .${Sa.preset.effectiveVar}) }}`}],style:HA,variation:[UA],shade:[UA]},GA=(e,t)=>`${Y}list.${e}.${t}`,KA=e=>`${Y}resettable.${e}`,qA=e=>e.length===0?`false`:`(or ${e.map(e=>`.${KA(e)}`).join(` `)})`,JA={preset:`door`,theme:`look`,style:`gear`,effect:`look`,variation:`gear`,shade:`gear`,endcaps:`look`,transitions:`look`,autoWrap:`layout`,padding:`layout`,updateNotice:`config`},YA=e=>e===`gear`?JA.theme:e,XA=Object.keys(Sa).map(e=>{let t=Sa[e],n=CD(t.configKey),r=ME({label:t.label,domain:n},t.sessionKey,t.effectiveVar,mA(e),JA[e]===`gear`?VA:IA);return{...t,name:e,control:r,beneath:WA[e]??[]}}),ZA=e=>XA.filter(t=>JA[t.name]===e),QA=e=>XA.filter(t=>YA(JA[t.name])===e),$A={theme:[ir(LA,BA,{kind:`container`,direction:`horizontal`,children:ZA(`gear`).map(fj)},`drop`)]},ej=e=>ZA(e).flatMap(e=>[fj(e),...$A[e.name]??[]]);new Set(XA.flatMap(e=>[e.sessionKey,e.configKey]));const tj=Fk(bA,{arm:`⟲`,confirm:`⟲ reset all?`},XA.map(e=>hA(e.name))),nj=[`unsaved`,`history.undo`,`history.redo`],rj=e=>`${Y}${e}`,ij=rj(`unsaved`),aj=(e,t)=>({body:t,shown:`(gt .${rj(e)} 0)`}),oj=[aj(`unsaved`,`{{ action "${uA}" (printf "💾 save %d" .${ij}) }}`),aj(`history.undo`,`{{ action "${CA}" "↶" }}`),aj(`history.redo`,`{{ action "${kA}" "↷" }}`),{body:tj.template,shown:`(or ${qA(XA.map(e=>e.name))} ${tj.armed})`}],sj={when:`{{ or ${oj.map(e=>e.shown).join(` `)} }}`,template:`{{ $sep := "" }}`+oj.map(e=>`{{ if ${e.shown} }}{{ $sep }}${e.body}{{ $sep = " " }}{{ end }}`).join(``)},cj=[{step:tj,place:`door`},{step:tA,place:`session`}],lj=e=>e.map(e=>e.step.disarm),uj=lj(cj),dj=lj(cj.filter(e=>e.place!==`door`));function fj(e){let t=pA(e.name);return e.control.kind===`inline`?iA(t):ir(t,e.control.list.ref,{kind:`container`,direction:`vertical`,children:[...e.control.list.rows,...e.beneath].map((t,n)=>iA(GA(e.name,n)))},`drop`)}function pj(e){return e===Yk}function mj(e){let t=iA(Yk);if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[mj(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 hj(e){return gj(e)>0?e:mj(e)}function gj(e){let t=0;for(let n of _g(e))n.kind===`segment`&&pj(n.name)&&(t+=1);return t}function _j(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&pj(e.name)||e.opens!==void 0&&_j(e.opens.body,!0):e.children.some(e=>_j(e,n))}const vj={session:{direction:`vertical`,content:[iA(Qk),{kind:`container`,direction:`horizontal`,children:[iA(eA),iA(nA)]}],after:[]},look:{direction:`horizontal`,content:[],after:[iA(gA)]},layout:{direction:`horizontal`,content:[iA(dA),iA(Zk)],after:[]},config:{direction:`horizontal`,content:[],after:[]},tools:{direction:`vertical`,content:[iA(AA),...yk.map(e=>iA(PA(e.name)))],after:[]}},yj=e=>({kind:`container`,direction:vj[e].direction,children:[...vj[e].content,...ej(e),...vj[e].after]});function bj(e){return e.kind===`segment`?pj(e.name)?ir(e.name,SA,Sj,`above`):e:wj(e)}function xj(){return{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[iA(DA),...ej(`door`),iA(uA)]},{kind:`container`,direction:`horizontal`,children:oA.map(({member:e})=>ir(sA(e),lA(e),yj(e),`drop`))}]}}const Sj=xj();function Cj(e){let t=new Map;for(let e of _g(Sj))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=`${Yk}.fold.${aE(t)}`;return e.actions[i]={set:t,to:r.default},i})}function wj(e){return{...e,children:e.children.map(e=>bj(e))}}function Tj(e){let t={variables:{[Yk]:ur(Yk,$n)},actions:{[xA]:dr(Yk,Xk),[jA]:{doctor:`run`},[Zk]:{do:[...dO]},...$k.actions,...tA.actions,...rA.actions,[uA]:{save:!0},[CA]:{undo:!0},[TA]:{back:!0},[wA]:{do:[TA,...uj]},[kA]:{redo:!0},[dA]:{preset:`save`},[gA]:{themeDefault:`save`},[fA]:{preset:`delete`,name:`{{ .${Sa.preset.effectiveVar} }}`}},segments:{[Yk]:{template:`{{ $door := ${cr(Yk,lr(e),lr(`✖`))} }}{{ if ${or(SA)} }}{{ fg (keptOn (color "error") (bgOf)) $door }}{{ else }}{{ $door }}{{ end }}`},[Qk]:{template:$k.template},[eA]:{template:tA.template,when:tA.when},[nA]:{template:rA.template,bg:rA.bg,when:rA.when},[DA]:OA,[uA]:sj,[gA]:yA,[dA]:{template:`{{ action "${dA}" "+ preset" }}`},[AA]:{template:`{{ action "${jA}" "🩺 doctor" }}`},[Zk]:{template:`{{ action "${Zk}" "✎ arrange" "✎ done" }}`}}};t.variables[_A]={kind:`input`,path:`themeDefault.differs`,type:`boolean`,default:!1},t.variables[vA]={kind:`input`,path:`themeDefault.theme`,type:`string`,default:``},t.variables[EA]={kind:`input`,path:`navigation.back`,type:`number`,default:0};for(let e of nj)t.variables[rj(e)]={kind:`input`,path:e,type:`number`,default:0};t.variables[aA]=ur(aA,`session`);for(let{member:e,label:n}of oA){t.actions[cA(e)]=dr(aA,e),t.actions[sA(e)]={do:[cA(e),...dj]};let r=qA(QA(e).map(e=>e.name)),i=`(ternary ${lr(` •`)} "" ${r})`,a=e=>`(print ${lr(e)} ${i})`;t.segments[sA(e)]={template:`{{ ${cr(sA(e),a(n),a(`▾ ${n}`))} }}`}}return Object.assign(t.variables,tA.variables,tj.variables),Dj(t),Ej(t),t.actions[Yk]={do:[xA,...uj,...Cj(t)]},t}function Ej(e){for(let t of yk){let n=wk(t.name),r=MA(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?tk:[];for(let n of i)e.actions[NA(t.name,n)]={doctor:`mark`,check:t.name,mark:n};let a=i.map(e=>` {{ action "${NA(t.name,e)}" "${FA[e]}" }}`).join(``);e.segments[PA(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${Qm}" }} {{ action "${r}" "[fix]" }}{{ end }}`+(a===``?``:`{{ if ne .${n.sighting} "" }} {{ .${n.sighting} }}${a}{{ end }}`)+`{{ end }}`}}}function Dj(e){for(let t of XA){Object.assign(e.actions,t.control.actions);let n=hA(t.name);e.actions[n]={reset:t.configKey},e.variables[KA(t.name)]={kind:`input`,path:`resettable.${t.name}`,type:`boolean`,default:!1};let r=`{{ if .${KA(t.name)} }} {{ action "${n}" "↺" }}{{ end }}`;Object.assign(e.variables,t.control.variables),e.segments[pA(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[GA(t.name,r)]=n})}Object.assign(e.actions,tj.actions),e.actions[zA]=dr(IA,RA),e.segments[LA]={template:`{{ action "${zA}" "⚙" }}`}}function Oj(e){let{variables:t,actions:n}=bO();Object.assign(e.variables,t),Object.assign(e.actions,n)}function kj(e){let t=Tj(e.globals.menuGlyph??`🍫`);Oj(t);let n={...e.presets},r=[];for(let t of e_(e.presets)){let{node:i}=r_(e,t),a=bj(hj(i));r.push(a),n[t]={...n_(e.presets,t),root:a}}let i=iE(t,r,e);return{...e,variables:{...i,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:n}}const Aj=`${pE}live`,jj=[`☐ live`,`☑ live`],Mj=`${pE}done`,Nj=`${pE}cancel`,Pj=`${pE}rewind`,Fj=`${pE}changes`,Ij=`(gt .${Fj} 0)`,Lj=`(or ${Ij} (gt .${ij} 0))`,Rj={variable:Aj,key:Aj,member:`open`};function zj(e){return`${pE}configuring.p${e}`}function Bj(e){return`and ${or(hO)} (not ${or(Rj)}) (ne .${zj(e)} "true")`}function Vj(e){return{kind:`template`,template:`{{ or ${e.map(e=>`(eq .${cO} "${rr(e)}")`).join(` `)} false }}`}}function Hj(e,t,n){return`{{ if ${Bj(e)} }}${t}{{ else }}${n}{{ end }}`}const Uj=`{{ and ${or(hO)} .preset.customized }}`,Wj=hE;function Gj(e){return new Map([...c_(e),...qj(e)])}const Kj=`${pE}addable`;function qj(e){return new Map([[Kj,{members:Object.keys(e.segments).filter(e=>!Wj(e)),library:{groups:iO.map(e=>({id:e,label:aO[e]})),entry:t=>{let n=e.segments[t];return{group:n.group??`other`,...n.description!==void 0&&{description:n.description}}}}}]])}function Jj(e,t,n){return n.segments[e]={template:t,when:gO,bg:wO},{kind:`segment`,name:e}}function Yj(e,t,n){let r=`${pE}${e.presetIdent}.remove.${t}`;return e.artifacts.actions[r]={persist:e.rootKey,removeSegment:n},`{{ fg (${`readableOn (color "error") (bgOf) ${Vp}`}) (action "${r}" "✖") }}`}function Xj(e){return`{{ if ${or(hO)} }}${e}{{ end }}`}function Zj(e,t){return e.reduce((e,t)=>`{{ if and ${or(hO)} ${or(t)} }}true{{ else }}${e}{{ end }}`,t)}function Qj(e){return e.flatMap(e=>[..._g(e)].flatMap(e=>e.kind===`segment`&&e.opens?.ref.key===`edit.configure`?[e.opens.ref]:[]))}function $j(e,t,n){return`${pO}${e}.${t}.${n}`}function eM(e,t,n,r){let i=pg(n),a=`${pE}${e.presetIdent}`,o=mO(e.presetIdent,i);e.configured.push(o);let s=`${a}.configure.${t}`,c=bE(s),l=`${s}.fold`;e.artifacts.actions[l]={set:c,to:$n},e.artifacts.actions[s]={do:[`${s}.open`,l]},e.artifacts.actions[`${s}.open`]={set:cO,to:o};let u={},d=Object.entries(r).map(([r,o])=>{let s=$j(e.presetIdent,i,r),l=`${pO}p${e.presetIdent}.d${t}.${r}`;e.artifacts.variables[l]={kind:`state`,key:s,default:Fg(n.settings?.[r]??o.default)},u[r]={id:i,key:s,variable:l};let d=`${a}.setting.${t}.${r}`,f=ME(AE(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 ir(d,f.list.ref,{kind:`container`,direction:`vertical`,children:p},`drop`)});return{term:`{{ action "${s}" "${AO}" }}`,ref:{variable:cO,key:cO,member:o},body:{kind:`container`,direction:`vertical`,children:d},drafts:u}}const tM=`${pE}label:`;function nM(e){if(e.startsWith(tM)){let t=e.slice(tM.length);return t.slice(t.indexOf(`:`)+1)}return e.startsWith(`edit.`)?void 0:e}function rM(e,t,n,r){let{artifacts:i}=n,a=pg(e),o=`${tM}${a}:${e.name}`;i.segments[o]={template:`{{ "${rr(a)}" }}`,...t.palette!==void 0&&{palette:t.palette}};let s=Object.fromEntries(Ag.flatMap(t=>{let n=e.settings?.[t];return n===void 0?[]:[[t,n]]}));return{...ir(o,r.ref,r.body,`drop`,Zj([r.ref],`{{ ${Bj(n.presetIdent)} }}`)),...Object.keys(s).length>0&&{settings:s},drafts:Object.fromEntries(Ag.map(e=>[e,r.drafts[e]]))}}function iM(e,t,n,r){let{presetIdent:i,artifacts:a}=e,o=`${pE}${i}.insert.${t}`,s=`${pE}${i}.insertSeg.${t}`;a.actions[o]={persist:e.rootKey,insertSegmentFrom:Kj,anchor:n,relation:r};let c=vE(o),l=yE(s,o,void 0),u=SE(l),d=xE(l,c);return a.variables[l]=ur(l,$n),a.variables[u]={kind:`state`,key:u,default:`0`},a.actions[d]=dr(l,c),a.actions[u]={set:u,int:!0},{host:s,template:`{{ $m := menu "${o}" "✚" "✕" }}{{ if ${or({variable:l,key:l,member:c})} }}{{ $m }}{{ else }}{{ fg (${`readableOn (color "success") (bgOf) ${Vp}`}) $m }}{{ end }}`}}function aM(e,t){let n=[],r=e.children.findIndex(e=>e.kind===`segment`&&!Wj(e.name)),i=e=>aM(e,t);for(let[a,o]of e.children.entries()){if(o.kind===`container`){n.push(i(o));continue}let s=gg(o,i);if(Wj(o.name)){n.push(s);continue}let c=pg(o),l=a===r?[iM(t,String(t.posCounter.n++),c,`before`)]:[],u=String(t.posCounter.n++),d=iM(t,u,c,`after`),f=Yj(t,u,c),p=t.segments[o.name],m=eM(t,u,o,jg(p)),h=Xj(f),g=Xj(m.term),_={kind:`container`,direction:`horizontal`,children:[...l.map(e=>Jj(e.host,e.template,t.artifacts)),{...rM(o,p,t,m),lead:h,trail:g},{...s,when:Hj(t.presetIdent,`false`,o.when??`true`),lead:h,trail:g,drafts:m.drafts},Jj(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:Zj(Qj(n),Hj(t.presetIdent,`true`,e.when))}}}function oM(e,t,n,r,i,a,o){let s=`${pE}${t}.resetLayout`,c=`${pE}${t}.customized`;return r.actions[s]={reset:n},r.segments[c]={template:`{{ action "${s}" "↺ reset layout" }}`,when:Uj},{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[...i,{kind:`segment`,name:c},a]},sM(e,o)]}}function sM(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),sM(n,t)]}:{...e,children:[...e.children,t]}}function cM(e,t,n,r,i,a){let{node:o}=r_(e,t),s={presetIdent:aE(t),rootKey:ZD(t),segments:e.segments,artifacts:n,posCounter:{n:0},configured:[]},c=aM(o,s);return n.variables[zj(s.presetIdent)]=Vj(s.configured),oM(c,s.presetIdent,s.rootKey,n,r,i,a)}function lM(e){let t={variables:{},actions:{},segments:{}},n=SO(`${pE}help`,MO,[hO],t);t.variables[Aj]=ur(Aj,$n),t.actions[Aj]=dr(Aj,Rj.member),t.segments[Aj]={template:sr(Aj,...jj),when:gO};let r={kind:`segment`,name:Aj},i=n;t.variables[Fj]={kind:`input`,path:`history.sinceEdit`,type:`number`,default:0},t.actions[Mj]={do:[uA,...dO]},t.segments[Mj]={template:`{{ if ${Lj} }}{{ action "${Mj}" "✓ save" }}{{ else }}{{ action "${Mj}" "✓ done" }}{{ end }}`,when:gO},t.actions[Pj]={rewind:!0},t.actions[Nj]={do:[Pj,...dO]},t.segments[Nj]={template:`{{ action "${Nj}" "↩ cancel" }}`,when:`{{ and ${or(hO)} ${Ij} }}`};let a=[{kind:`segment`,name:Mj},{kind:`segment`,name:Nj}],o={...e.presets},s=[];for(let n of e_(e.presets)){let c=cM(e,n,t,a,r,i);s.push(c),o[n]={...n_(e.presets,n),root:c}}let c=iE(t,s,e);return{...e,variables:{...c,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:o}}function uM(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function dM(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 fM(e,t,n){let r=hg(e,new Set(n.map(mg).filter(e=>e.includes(t)).flat()));return r===e?{seg:e}:{seg:e,id:r}}const pM=/^-?\d+$/;function mM(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 hM(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!pM.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 gM(e,t,n){return r=>r?pM.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 _M(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=>!pM.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 vM(e){return e===`config`?`set-config`:`set-state`}function yM(e,t,n){return t.kind===`int`?hM(`menu page "${e}"`):t.kind===`range`?gM(t.min,t.max,`${n} stepper "${e}"`):mM(t.allowed,`${n} "${e}"`,vM(n))}function bM(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:_M(e,n,t)}))}function xM(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 bM(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,yM(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 SM(e,t,n){let r=[],i=0,a=new WeakMap;return{register(n,a){let o={key:n,allowed:a};xM(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=xM(e,r,n(o),t);return a.set(o,{epoch:i,gate:c}),c}}}const CM=SM({},`config`,AM);function wM(e,t){return CM.register(e,t)}function TM(e){return CM.gateFor(e)}function EM(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:u_(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:[uM({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[uM({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:u_(e.insertSegmentFrom,t).members.map(t=>uM({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function DM(e,t){let n=KD(e).get(t);return n===void 0?null:String(n)}function OM(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?tO(n.persist):null;e?.scope===`preset-root`&&t.add(ZD(e.preset))}return[...t].map(e=>({key:e,spec:{kind:`allow-list`,allowed:[]}}))}function kM(e){let t=Gj(e);return[...OM(e),...Object.values(e.actions).flatMap(e=>EM(e,t))]}function AM(e){return bM(kM(e),`config`)}function jM(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:PM(t.segments,MM(t.segments,e.segments??{})),root:Xg(e.root??Ug,t.root),actions:{...t.actions,...e.actions??{}},styles:{...t.styles,...e.styles??{}},presets:PM(t.presets,NM(t.presets,e.presets??{})),themeDefaults:PM(t.themeDefaults,e.themeDefaults??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function MM(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 NM(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 PM(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}function FM(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: ${wg.join(`, `)})`,line:J(e.source,t.split(`.`))}),null):RM(e,`${t}.cache`,n.cache)}function IM(e){return{required:!0,json:zM(),parse:(t,n,r,i)=>FM(t,n,i,e)??void 0}}const LM={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&VM(n)?{ttl:n}:GE(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 GE(e,t,`cache.watch_file must be a path string, got ${Z(n)}`);let r=rD(`cache.watch_file`,n);return r===null?{watch_file:n}:GE(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}:GE(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}:GE(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}:GE(e,t,`cache.never must be the literal boolean true, got ${Z(n)}`)}}};function RM(e,t,n){return KE(e,LM,t,n)}function zM(){return uD(LM)}const BM=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function VM(e){return BM.test(e)}function HM(e,t,n){if(n===void 0)return{};if(!zE(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=qE(e,mN,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function UM(){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 WM(){return{required:!0,json:{enum:[...Eg]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!Eg.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${Eg.join(`, `)}, got ${JSON.stringify(i)}`,line:J(e.source,[...t.split(`.`),`field`])});return}return i}}}function GM(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return FE(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const KM={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:GE(e,t,`parse.text must be the literal boolean true, got ${Z(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?qM(e,t,n):GE(e,t,`parse.regex must be a pattern string, got ${Z(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:GE(e,t,`parse.json must be the literal boolean true, got ${Z(n)}`)}}};function qM(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return GE(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:GE(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function JM(){return{required:!1,json:uD(KM),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:KE(e,KM,`${t}.parse`,r.parse)??void 0)}}function YM(){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)=>zE(r.parse)&&`json`in r.parse?XM(e,t,r.default):IE(e,t,r,`default`)}}function XM(e,t,n){if(n!==void 0)return ZM(n)?n:GE(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${Z(n)}`)??void 0}function ZM(e){return e!==null&&QM(e)}function QM(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(QM);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(QM)}default:return!1}}const $M={value:UM(),default:ZE()},eN={path:nD(),type:aD([`string`,`number`,`boolean`]),default:GM()},tN={name:nD(),default:ZE()},nN={path:iD(),readMode:aD([`whole`,`first-line`]),parse:JM(),cache:IM(`file`),default:YM()},rN={command:nD(),parse:JM(),cache:IM(`shell`),default:YM()};function iN(e){return{cache:`${e}, so it takes no cache policy — delete the key`}}const aN={template:nD(),default:ZE()},oN=iN(`a template variable recomputes whenever a variable it reads changes`),sN={layout:nD(),default:ZE()},cN=iN(`a time variable reads the instant its render is drawn at`),lN={field:WM(),default:ZE()},uN=iN(`a git variable is refreshed by the daemon's own watch on the repository`),dN={key:nD(),default:ZE()},fN=`kind`;function pN(e,t,n={}){return{...JE(fN,e,t),parse:(r,i,a)=>{VE(r,n,i,a);let o=HE(r,t,i,a);return o===null?null:{kind:e,...o}}}}const mN={tag:fN,noun:`source kind`,memberNoun:`variable`,arms:{literal:pN(`literal`,$M),input:pN(`input`,eN),env:pN(`env`,tN),file:pN(`file`,nN),shell:pN(`shell`,rN),template:pN(`template`,aN,oN),time:pN(`time`,sN,cN),git:pN(`git`,lN,uN),state:pN(`state`,dN)}};function hN(){return lD(mN)}function gN(){return{type:`object`,additionalProperties:hN()}}const _N=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 vN(e){let t=_N.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 yN=/^[A-Za-z_][A-Za-z0-9_]*$/,bN={pattern:yN.source},xN={anyOf:[{type:`boolean`},{type:`string`},{type:`integer`}]},SN={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`,...bN}}}]},default:xN}},CN=[`label`,`domain`,`default`],wN=[`min`,`max`,`step`,`atLeast`];function TN(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,t.split(`.`))})}function EN(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 TN(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 TN(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?TN(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(zE(n)){let{min:r,max:i,step:a=1,atLeast:o}=n;return Object.keys(n).filter(e=>!wN.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}}:TN(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 TN(e,t,`domain must be "bool", a list of words, or { min, max }, got ${Z(n)}`)}function DN(e,t,n){if(!zE(n))return TN(e,t,`${t} must be { label, domain, default }, got ${X(n)}`);for(let r of Object.keys(n))CN.includes(r)||TN(e,`${t}.${r}`,`Unknown setting key "${r}". Expected one of: ${CN.join(`, `)}`);let{label:r}=n,i=typeof r==`string`&&r.length>0&&!/[\n\r]/.test(r);i||TN(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=EN(e,`${t}.domain`,n.domain);if(!i||a===void 0)return;let o={label:r,domain:a,default:n.default};return!ON(n.default)||!Pg(o,n.default)?TN(e,`${t}.default`,`default must be ${Rg(o)}, got ${Z(n.default)}`):o}function ON(e){return typeof e==`boolean`||typeof e==`string`||typeof e==`number`}const kN={theme:`its default for this segment is segments.<name>.palette, and a placement sets its own with settings: { ${Og}: "<theme>" }`,effect:`a placement follows the bar's effect, or sets its own with settings: { effect: "<effect>" }`};function AN(e){return Ag.includes(e)}function jN(){return{required:!1,json:{type:`object`,propertyNames:{...bN,not:{enum:[...Ag]}},additionalProperties:SN},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!zE(i))return TN(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(!yN.test(t)){TN(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(AN(t)){TN(e,`${a}.${t}`,`setting "${t}" is one every placement already has — ${kN[t]}`);continue}let r=DN(e,`${a}.${t}`,n);r!==void 0&&(o[t]=r)}return o}}}const MN=mE.map(e=>e.replace(/\./g,`\\.`)).join(`|`);function NN(){return{required:!1,json:{type:`string`,minLength:1,pattern:`^(?!${MN})[^:/]+$`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return typeof i==`string`&&i.length>0&&!/[:/]/.test(i)&&!hE(i)?i:TN(e,`${t}.${n}`,`a placement "id" must be a non-empty string without "/" or ":", outside the reserved ${mE.map(e=>`"${e}"`).join(`, `)} namespaces, got ${Z(i)}`)}}}function PN(){return{required:!1,json:{type:`object`,propertyNames:bN,additionalProperties:xN},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!zE(i))return TN(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))ON(n)?o[t]=n:TN(e,`${a}.${t}`,`setting "${t}" must be a boolean, a word, or a number, got ${X(n)}`);return o}}}function FN(e){return new Set(Object.keys(e.segments).filter(e=>!hE(e)))}function IN(e,t,n){if(t===void 0)return{};if(!zE(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=BE(e,n.has(i)?HN:VN,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function LN(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?GE(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${vN(t.slice(9))}`)??void 0:PE(e,t,r,n)??void 0}}function RN(){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 zN(){return{required:!1,json:gN(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return HM(e,`${t}.${n}`,i)}}}const BN={template:LN(),description:ZE(),group:aD(rO),width:RN(),justify:aD(zg),truncate:aD(Bg),bg:ZE(),fg:ZE(),when:ZE(),palette:tD(),vars:zN(),settings:jN()},VN={noun:`segment key`,fields:BN},HN={noun:`segment key`,fields:{...BN,template:ZE()}},UN=`#/definitions/LayoutNode`,WN={kind:`container`,direction:`vertical`,children:[]};function GN(e){return{required:!0,json:{const:e},parse:()=>e}}function KN(){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 qN(){return{required:!0,json:{enum:[...dg]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&dg.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${dg.join(`, `)} (got ${JSON.stringify(i)})`,line:J(e.source,[`root`])}),`vertical`)}}}function JN(e){return{required:!0,json:{type:`array`,items:{$ref:UN}},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 YN={noun:`layout-node key`,fields:{kind:GN(`segment`),name:KN(),when:ZE(),id:NN(),settings:PN()}},XN=()=>aD(_p),ZN={noun:`layout-node key`,fields:{kind:GN(`container`),direction:qN(),children:JN(YE(()=>nP)),when:ZE(),distribution:XN()}};function QN(){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 $N={noun:`layout-node key`,fields:{seg:QN(),when:ZE(),id:NN(),settings:PN()}},eP={noun:`layout-node key`,fields:{h:JN(YE(()=>nP)),when:ZE(),distribution:XN()}},tP={noun:`layout-node key`,fields:{v:JN(YE(()=>nP)),when:ZE(),distribution:XN()}},nP=(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`])}),WN):{kind:`segment`,name:n};if(!zE(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`])}),WN;if(n.kind===`container`)return BE(e,ZN,t,n)??WN;if(n.kind===`segment`)return BE(e,YN,t,n)??WN;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
|
|
159
|
+
`).map(e=>e.trim()).filter(e=>e!==``),...e.warnings];return{ok:!1,reason:t,more:n}}case`loaded`:return nk([...e.warnings,...e.unused.map(({kind:e,name:t})=>`${e} "${t}" ${ak[e]}`)])}}},sk="re-run `cc-candybar install`";function ck(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:// — ${sk}`];let{app:t,missing:n}=e.value;return n.kind===`failed`?[`${t} opens cc-candybar://, but ${n.reason} — ${sk}`]:n.value.map(e=>`${e} is missing, and ${t} runs it — ${sk}`)}const lk={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}) — ${sk}`:`the URL handler runs cc-candybar ${e.handler}; the bar runs ${e.bar} — ${sk}`};case`lost`:return nk([...ck(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}`])}}},uk=`click 🩺 doctor in the bar's settings menu: if it runs, links work`;function dk(e,t){let n=ZO(e);return t.kind===`ok`&&n!==null&&t.value.includes(n)?{kind:`draws`}:e.kind===`known`?$O(e.terminal):{kind:`unknown`}}function fk({identified:e,tmuxClient:t},n){let r=QO(e),i=dk(e,n),a=ZO(e)===null?uk:`${uk}, 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: ${ek}`];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 pk={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 nk(fk(t,n))}}},mk={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}}}},hk=e=>[...e].map(e=>`U+${e.codePointAt(0).toString(16).toUpperCase()}`).join(` `);function gk(e){switch(e.kind){case`unreported`:case`unasked`:return`this terminal`;case`unknown`:case`unnamed`:return QO(e);case`bundling`:case`unread`:case`configured`:return[VO(e.name),e.version].filter(e=>e!==null).join(` `)}}function _k(e){switch(e.kind){case`unreported`:case`unasked`:return null;case`unknown`:case`unnamed`:return ZO(e);case`bundling`:case`unread`:return VO(e.name);case`configured`:{let t=VO(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 vk(e){let t=_k(e.terminal);return t===null?void 0:{glyphs:e.glyphs,id:`${t}|${hk(e.glyphs)}`}}const yk=[ok,lk,pk,ik,mk,{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=vk(e),r=e=>({ok:!1,reason:e,...n!==void 0&&{sighting:n}}),i=e.terminal,a=gk(i);switch(n===void 0?null:t.value.nerdFont?.[n.id]??null){case`drawn`:return{ok:!0};case`boxes`:return r(`${a} draws ${hk(e.glyphs)} as boxes — set a Nerd Font as its font`);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=LO[i.name].glyphs.since;if(e===null)return{ok:!0};let t=i.version===null?null:KO(i.version,e);if(t===!0)return{ok:!0};let n=VO(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`)}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`):n.length===0?{ok:!0}:r(`${a} draws with ${e} (${t}), which has no ${hk(n)} — set a Nerd Font as its font`)}}}}],bk=yk.filter(e=>e.takesMark);function xk(e){return yk.map(t=>({check:t,verdict:t.probe(e)}))}function Sk(e){return yk.find(t=>t.name===e)}const Ck=`${X}doctor.`;function wk(e){let t=`${Ck}${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`,sighting:`${t}sighting`}}function Tk(e,t){let n=e.kind===`seen`?e.tmuxClient:null,r=e.kind===`seen`?ZO(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 Ek(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=vk(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 Dk(e,t=[]){return t.length===0?e:`${e} (+${t.length} more — run \`cc-candybar doctor\`)`}function Ok(e){return e.flatMap(({check:e,verdict:t})=>{let n=wk(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:Dk(t.reason,t.more)},{key:n.fixable,value:t.fix===void 0?Qm:Zm},{key:n.sighting,value:t.sighting?.glyphs??``}]})}const kk={copySession:{copy:`{{ .session.id }}`},copyResume:{copy:`{{ .resume_command }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},openConfig:{open:`{{ .config_path }}`}};function Ak(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(kk).map(([t,n])=>[`${e}${t}`,n]))}}const jk=`armed`,Mk=`disarmed`,Nk=`.armed`,Pk=e=>e.endsWith(Nk);function Fk(e,t,n){let r=`${e}${Nk}`,i=`${e}.arm`,a=`${e}.disarm`,o=`(eq .${e} "${jk}")`;return{template:`{{ if ${o} }}{{ action "${e}" "${t.confirm}" }} {{ action "${a}" "✕" }}{{ else }}{{ action "${i}" "${t.arm}" }}{{ end }}`,actions:{[i]:{set:r,to:jk},[a]:{set:r,to:Mk},[e]:{do:[a,...n]}},armed:o,variables:{[e]:{kind:`state`,key:r,default:Mk}},disarm:a}}const Ik=RegExp(`^/[^\\s\\x00-\\x1f\\x7f-\\x9f/][^\\x00-\\x1f\\x7f-\\x9f]*$`);function Lk(e){return typeof e==`string`&&Ik.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 Rk(e){let t=Lk(e);if(t.kind===`refused`)throw Error(t.reason);return t.line}const zk=[`/compact`,`/model`],Bk=`/clear`;function Vk(e){let t=t=>`${e}${t.slice(1)}`,n=`${e}clear.slash`,r=Fk(`${e}clear`,{arm:Bk,confirm:`${Bk} ✓ confirm`},[n]);return{template:zk.map(e=>`{{ action "${t(e)}" "${e}" }} `).join(``)+r.template,when:`{{ ${tE} }}`,actions:{...Object.fromEntries(zk.map(e=>[t(e),{slash:Rk(e)}])),...r.actions,[n]:{slash:Rk(Bk)}},variables:r.variables,disarm:r.disarm}}const Hk=Array.from({length:10},(e,t)=>(t+1)*1e5),Uk=Hk[0],Wk=Hk[Hk.length-1];function Gk(e){let t;try{t=hi(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>=Uk&&n<=Wk?F(n):L(`${e}: autoCompactWindow is ${JSON.stringify(n)}, not a window /autocompact accepts (${Uk}–${Wk} tokens)`)}function Kk(e,t){let n=Math.min(t??Wk,Wk),r=e===`auto`?n:Math.min(e,n);return{window:e===`auto`?0:e,applied:e===`auto`?0:r,lower:Hk.filter(e=>e<r).at(-1)??0,higher:Hk.find(e=>e>r&&e<=n)??0}}function qk(e,t){return{template:`{{ if ne .autocompact.error "" }}⇲ ⚠ {{ .autocompact.error }}{{ else }}⇲ {{ if eq .autocompact.window 0 }}auto{{ else }}${t(`.autocompact.applied`)}{{ end }}{{ if ${tE} }}{{ 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:Rk(`/autocompact auto`)},...Object.fromEntries(Hk.map(t=>[`${e}${t}`,{slash:Rk(`/autocompact ${t}`)}]))}}}const Jk=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 }}`,Yk=`${X}menu`,Xk=`open`,Zk=`${X}edit`,Qk=`${X}toolbar`,$k=Ak(X),eA=`${X}commands`,tA=Vk(`${eA}.`),nA=`${X}autocompact`,rA=qk(`${nA}.`,Jk),iA=e=>({kind:`segment`,name:e}),aA=`${X}tab`,oA=[{member:`session`,label:`⚡ session`},{member:`look`,label:`🎨 look`},{member:`layout`,label:`📐 layout`},{member:`config`,label:`⚙ config`},{member:`tools`,label:`🧰 tools`}],sA=e=>`${aA}.${e}`,cA=e=>`${sA(e)}.toggle`,lA=e=>({variable:aA,key:aA,member:e}),uA=`${X}save`,dA=`${X}preset.save`,fA=`${X}preset.delete`,pA=e=>`${X}${e}`,mA=e=>`${X}apply.${e}`,hA=e=>`${X}reset.${e}`,gA=`${X}themeDefault.save`,_A=`${X}themeDefault.differs`,vA=`${X}themeDefault.theme`,yA={when:`{{ .${_A} }}`,template:`{{ action "${gA}" (printf "⤓ default for %s" .${vA}) }} {{ swatch "${mA(`theme`)}" .${vA} }}`},bA=`${X}resetAll`,xA=`${Yk}.toggle`,SA={variable:Yk,key:Yk,member:Xk},CA=`${X}undo`,wA=`${X}back`,TA=`${wA}.step`,EA=`${X}navigation.back`,DA=wA,OA={template:`{{ if gt .${EA} 0 }}{{ action "${wA}" "◁" }}{{ else }}{{ fg (${PO}) "◁" }}{{ end }}`},kA=`${X}redo`,AA=`${X}doctor`,jA=`${AA}.run`,MA=e=>`${AA}.fix.${e}`,NA=(e,t)=>`${AA}.mark.${e}.${t}`,PA=e=>`${AA}.${e}`,FA={drawn:`[✓ shapes]`,boxes:`[✗ boxes]`},IA=yE(`${X}pickers`),LA=`${X}gear`,RA=`gear`,zA=`${LA}.toggle`,BA={variable:IA,key:IA,member:RA},VA=yE(`${X}gearPickers`),HA=[{template:`{{ themePreview }}`}],UA={template:`{{ layoutPreview }}`},WA={preset:[UA,{when:`{{ not .preset.bundled }}`,template:`{{ action "${fA}" (printf "🚮 delete %s" .${Sa.preset.effectiveVar}) }}`}],style:HA,variation:[UA],shade:[UA]},GA=(e,t)=>`${X}list.${e}.${t}`,KA=e=>`${X}resettable.${e}`,qA=e=>e.length===0?`false`:`(or ${e.map(e=>`.${KA(e)}`).join(` `)})`,JA={preset:`door`,theme:`look`,style:`gear`,effect:`look`,variation:`gear`,shade:`gear`,endcaps:`look`,transitions:`look`,autoWrap:`layout`,padding:`layout`,updateNotice:`config`},YA=e=>e===`gear`?JA.theme:e,XA=Object.keys(Sa).map(e=>{let t=Sa[e],n=CD(t.configKey),r=jE({label:t.label,domain:n},t.sessionKey,t.effectiveVar,mA(e),JA[e]===`gear`?VA:IA);return{...t,name:e,control:r,beneath:WA[e]??[]}}),ZA=e=>XA.filter(t=>JA[t.name]===e),QA=e=>XA.filter(t=>YA(JA[t.name])===e),$A={theme:[ir(LA,BA,{kind:`container`,direction:`horizontal`,children:ZA(`gear`).map(fj)},`drop`)]},ej=e=>ZA(e).flatMap(e=>[fj(e),...$A[e.name]??[]]);new Set(XA.flatMap(e=>[e.sessionKey,e.configKey]));const tj=Fk(bA,{arm:`⟲`,confirm:`⟲ reset all?`},XA.map(e=>hA(e.name))),nj=[`unsaved`,`history.undo`,`history.redo`],rj=e=>`${X}${e}`,ij=rj(`unsaved`),aj=(e,t)=>({body:t,shown:`(gt .${rj(e)} 0)`}),oj=[aj(`unsaved`,`{{ action "${uA}" (printf "💾 save %d" .${ij}) }}`),aj(`history.undo`,`{{ action "${CA}" "↶" }}`),aj(`history.redo`,`{{ action "${kA}" "↷" }}`),{body:tj.template,shown:`(or ${qA(XA.map(e=>e.name))} ${tj.armed})`}],sj={when:`{{ or ${oj.map(e=>e.shown).join(` `)} }}`,template:`{{ $sep := "" }}`+oj.map(e=>`{{ if ${e.shown} }}{{ $sep }}${e.body}{{ $sep = " " }}{{ end }}`).join(``)},cj=[{step:tj,place:`door`},{step:tA,place:`session`}],lj=e=>e.map(e=>e.step.disarm),uj=lj(cj),dj=lj(cj.filter(e=>e.place!==`door`));function fj(e){let t=pA(e.name);return e.control.kind===`inline`?iA(t):ir(t,e.control.list.ref,{kind:`container`,direction:`vertical`,children:[...e.control.list.rows,...e.beneath].map((t,n)=>iA(GA(e.name,n)))},`drop`)}function pj(e){return e===Yk}function mj(e){let t=iA(Yk);if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[mj(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 hj(e){return gj(e)>0?e:mj(e)}function gj(e){let t=0;for(let n of gg(e))n.kind===`segment`&&pj(n.name)&&(t+=1);return t}function _j(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&pj(e.name)||e.opens!==void 0&&_j(e.opens.body,!0):e.children.some(e=>_j(e,n))}const vj={session:{direction:`vertical`,content:[iA(Qk),{kind:`container`,direction:`horizontal`,children:[iA(eA),iA(nA)]}],after:[]},look:{direction:`horizontal`,content:[],after:[iA(gA)]},layout:{direction:`horizontal`,content:[iA(dA),iA(Zk)],after:[]},config:{direction:`horizontal`,content:[],after:[]},tools:{direction:`vertical`,content:[iA(AA),...yk.map(e=>iA(PA(e.name)))],after:[]}},yj=e=>({kind:`container`,direction:vj[e].direction,children:[...vj[e].content,...ej(e),...vj[e].after]});function bj(e){return e.kind===`segment`?pj(e.name)?ir(e.name,SA,Sj,`above`):e:wj(e)}function xj(){return{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[iA(DA),...ej(`door`),iA(uA)]},{kind:`container`,direction:`horizontal`,children:oA.map(({member:e})=>ir(sA(e),lA(e),yj(e),`drop`))}]}}const Sj=xj();function Cj(e){let t=new Map;for(let e of gg(Sj))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=`${Yk}.fold.${iE(t)}`;return e.actions[i]={set:t,to:r.default},i})}function wj(e){return{...e,children:e.children.map(e=>bj(e))}}function Tj(e){let t={variables:{[Yk]:ur(Yk,$n)},actions:{[xA]:dr(Yk,Xk),[jA]:{doctor:`run`},[Zk]:{do:[...dO]},...$k.actions,...tA.actions,...rA.actions,[uA]:{save:!0},[CA]:{undo:!0},[TA]:{back:!0},[wA]:{do:[TA,...uj]},[kA]:{redo:!0},[dA]:{preset:`save`},[gA]:{themeDefault:`save`},[fA]:{preset:`delete`,name:`{{ .${Sa.preset.effectiveVar} }}`}},segments:{[Yk]:{template:`{{ $door := ${cr(Yk,lr(e),lr(`✖`))} }}{{ if ${or(SA)} }}{{ fg (keptOn (color "error") (bgOf)) $door }}{{ else }}{{ $door }}{{ end }}`},[Qk]:{template:$k.template},[eA]:{template:tA.template,when:tA.when},[nA]:{template:rA.template,bg:rA.bg,when:rA.when},[DA]:OA,[uA]:sj,[gA]:yA,[dA]:{template:`{{ action "${dA}" "+ preset" }}`},[AA]:{template:`{{ action "${jA}" "🩺 doctor" }}`},[Zk]:{template:`{{ action "${Zk}" "✎ arrange" "✎ done" }}`}}};t.variables[_A]={kind:`input`,path:`themeDefault.differs`,type:`boolean`,default:!1},t.variables[vA]={kind:`input`,path:`themeDefault.theme`,type:`string`,default:``},t.variables[EA]={kind:`input`,path:`navigation.back`,type:`number`,default:0};for(let e of nj)t.variables[rj(e)]={kind:`input`,path:e,type:`number`,default:0};t.variables[aA]=ur(aA,`session`);for(let{member:e,label:n}of oA){t.actions[cA(e)]=dr(aA,e),t.actions[sA(e)]={do:[cA(e),...dj]};let r=qA(QA(e).map(e=>e.name)),i=`(ternary ${lr(` •`)} "" ${r})`,a=e=>`(print ${lr(e)} ${i})`;t.segments[sA(e)]={template:`{{ ${cr(sA(e),a(n),a(`▾ ${n}`))} }}`}}return Object.assign(t.variables,tA.variables,tj.variables),Dj(t),Ej(t),t.actions[Yk]={do:[xA,...uj,...Cj(t)]},t}function Ej(e){for(let t of yk){let n=wk(t.name),r=MA(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?tk:[];for(let n of i)e.actions[NA(t.name,n)]={doctor:`mark`,check:t.name,mark:n};let a=i.map(e=>` {{ action "${NA(t.name,e)}" "${FA[e]}" }}`).join(``);e.segments[PA(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${Zm}" }} {{ action "${r}" "[fix]" }}{{ end }}`+(a===``?``:`{{ if ne .${n.sighting} "" }} {{ .${n.sighting} }}${a}{{ end }}`)+`{{ end }}`}}}function Dj(e){for(let t of XA){Object.assign(e.actions,t.control.actions);let n=hA(t.name);e.actions[n]={reset:t.configKey},e.variables[KA(t.name)]={kind:`input`,path:`resettable.${t.name}`,type:`boolean`,default:!1};let r=`{{ if .${KA(t.name)} }} {{ action "${n}" "↺" }}{{ end }}`;Object.assign(e.variables,t.control.variables),e.segments[pA(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[GA(t.name,r)]=n})}Object.assign(e.actions,tj.actions),e.actions[zA]=dr(IA,RA),e.segments[LA]={template:`{{ action "${zA}" "⚙" }}`}}function Oj(e){let{variables:t,actions:n}=bO();Object.assign(e.variables,t),Object.assign(e.actions,n)}function kj(e){let t=Tj(e.globals.menuGlyph??`🍫`);Oj(t);let n={...e.presets},r=[];for(let t of $g(e.presets)){let{node:i}=n_(e,t),a=bj(hj(i));r.push(a),n[t]={...t_(e.presets,t),root:a}}let i=rE(t,r,e);return{...e,variables:{...i,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:n}}const Aj=`${fE}live`,jj=[`☐ live`,`☑ live`],Mj=`${fE}done`,Nj=`${fE}cancel`,Pj=`${fE}rewind`,Fj=`${fE}changes`,Ij=`(gt .${Fj} 0)`,Lj=`(or ${Ij} (gt .${ij} 0))`,Rj={variable:Aj,key:Aj,member:`open`};function zj(e){return`${fE}configuring.p${e}`}function Bj(e){return`and ${or(hO)} (not ${or(Rj)}) (ne .${zj(e)} "true")`}function Vj(e){return{kind:`template`,template:`{{ or ${e.map(e=>`(eq .${cO} "${rr(e)}")`).join(` `)} false }}`}}function Hj(e,t,n){return`{{ if ${Bj(e)} }}${t}{{ else }}${n}{{ end }}`}const Uj=`{{ and ${or(hO)} .preset.customized }}`,Wj=mE;function Gj(e){return new Map([...s_(e),...qj(e)])}const Kj=`${fE}addable`;function qj(e){return new Map([[Kj,{members:Object.keys(e.segments).filter(e=>!Wj(e)),library:{groups:iO.map(e=>({id:e,label:aO[e]})),entry:t=>{let n=e.segments[t];return{group:n.group??`other`,...n.description!==void 0&&{description:n.description}}}}}]])}function Jj(e,t,n){return n.segments[e]={template:t,when:gO,bg:wO},{kind:`segment`,name:e}}function Yj(e,t,n){let r=`${fE}${e.presetIdent}.remove.${t}`;return e.artifacts.actions[r]={persist:e.rootKey,removeSegment:n},`{{ fg (${`readableOn (color "error") (bgOf) ${Bp}`}) (action "${r}" "✖") }}`}function Xj(e){return`{{ if ${or(hO)} }}${e}{{ end }}`}function Zj(e,t){return e.reduce((e,t)=>`{{ if and ${or(hO)} ${or(t)} }}true{{ else }}${e}{{ end }}`,t)}function Qj(e){return e.flatMap(e=>[...gg(e)].flatMap(e=>e.kind===`segment`&&e.opens?.ref.key===`edit.configure`?[e.opens.ref]:[]))}function $j(e,t,n){return`${pO}${e}.${t}.${n}`}function eM(e,t,n,r){let i=fg(n),a=`${fE}${e.presetIdent}`,o=mO(e.presetIdent,i);e.configured.push(o);let s=`${a}.configure.${t}`,c=yE(s),l=`${s}.fold`;e.artifacts.actions[l]={set:c,to:$n},e.artifacts.actions[s]={do:[`${s}.open`,l]},e.artifacts.actions[`${s}.open`]={set:cO,to:o};let u={},d=Object.entries(r).map(([r,o])=>{let s=$j(e.presetIdent,i,r),l=`${pO}p${e.presetIdent}.d${t}.${r}`;e.artifacts.variables[l]={kind:`state`,key:s,default:Pg(n.settings?.[r]??o.default)},u[r]={id:i,key:s,variable:l};let d=`${a}.setting.${t}.${r}`,f=jE(kE(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 ir(d,f.list.ref,{kind:`container`,direction:`vertical`,children:p},`drop`)});return{term:`{{ action "${s}" "${AO}" }}`,ref:{variable:cO,key:cO,member:o},body:{kind:`container`,direction:`vertical`,children:d},drafts:u}}const tM=`${fE}label:`;function nM(e){if(e.startsWith(tM)){let t=e.slice(tM.length);return t.slice(t.indexOf(`:`)+1)}return e.startsWith(`edit.`)?void 0:e}function rM(e,t,n,r){let{artifacts:i}=n,a=fg(e),o=`${tM}${a}:${e.name}`;i.segments[o]={template:`{{ "${rr(a)}" }}`,...t.palette!==void 0&&{palette:t.palette}};let s=Object.fromEntries(kg.flatMap(t=>{let n=e.settings?.[t];return n===void 0?[]:[[t,n]]}));return{...ir(o,r.ref,r.body,`drop`,Zj([r.ref],`{{ ${Bj(n.presetIdent)} }}`)),...Object.keys(s).length>0&&{settings:s},drafts:Object.fromEntries(kg.map(e=>[e,r.drafts[e]]))}}function iM(e,t,n,r){let{presetIdent:i,artifacts:a}=e,o=`${fE}${i}.insert.${t}`,s=`${fE}${i}.insertSeg.${t}`;a.actions[o]={persist:e.rootKey,insertSegmentFrom:Kj,anchor:n,relation:r};let c=_E(o),l=vE(s,o,void 0),u=xE(l),d=bE(l,c);return a.variables[l]=ur(l,$n),a.variables[u]={kind:`state`,key:u,default:`0`},a.actions[d]=dr(l,c),a.actions[u]={set:u,int:!0},{host:s,template:`{{ $m := menu "${o}" "✚" "✕" }}{{ if ${or({variable:l,key:l,member:c})} }}{{ $m }}{{ else }}{{ fg (${`readableOn (color "success") (bgOf) ${Bp}`}) $m }}{{ end }}`}}function aM(e,t){let n=[],r=e.children.findIndex(e=>e.kind===`segment`&&!Wj(e.name)),i=e=>aM(e,t);for(let[a,o]of e.children.entries()){if(o.kind===`container`){n.push(i(o));continue}let s=hg(o,i);if(Wj(o.name)){n.push(s);continue}let c=fg(o),l=a===r?[iM(t,String(t.posCounter.n++),c,`before`)]:[],u=String(t.posCounter.n++),d=iM(t,u,c,`after`),f=Yj(t,u,c),p=t.segments[o.name],m=eM(t,u,o,Ag(p)),h=Xj(f),g=Xj(m.term),_={kind:`container`,direction:`horizontal`,children:[...l.map(e=>Jj(e.host,e.template,t.artifacts)),{...rM(o,p,t,m),lead:h,trail:g},{...s,when:Hj(t.presetIdent,`false`,o.when??`true`),lead:h,trail:g,drafts:m.drafts},Jj(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:Zj(Qj(n),Hj(t.presetIdent,`true`,e.when))}}}function oM(e,t,n,r,i,a,o){let s=`${fE}${t}.resetLayout`,c=`${fE}${t}.customized`;return r.actions[s]={reset:n},r.segments[c]={template:`{{ action "${s}" "↺ reset layout" }}`,when:Uj},{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[...i,{kind:`segment`,name:c},a]},sM(e,o)]}}function sM(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),sM(n,t)]}:{...e,children:[...e.children,t]}}function cM(e,t,n,r,i,a){let{node:o}=n_(e,t),s={presetIdent:iE(t),rootKey:ZD(t),segments:e.segments,artifacts:n,posCounter:{n:0},configured:[]},c=aM(o,s);return n.variables[zj(s.presetIdent)]=Vj(s.configured),oM(c,s.presetIdent,s.rootKey,n,r,i,a)}function lM(e){let t={variables:{},actions:{},segments:{}},n=SO(`${fE}help`,MO,[hO],t);t.variables[Aj]=ur(Aj,$n),t.actions[Aj]=dr(Aj,Rj.member),t.segments[Aj]={template:sr(Aj,...jj),when:gO};let r={kind:`segment`,name:Aj},i=n;t.variables[Fj]={kind:`input`,path:`history.sinceEdit`,type:`number`,default:0},t.actions[Mj]={do:[uA,...dO]},t.segments[Mj]={template:`{{ if ${Lj} }}{{ action "${Mj}" "✓ save" }}{{ else }}{{ action "${Mj}" "✓ done" }}{{ end }}`,when:gO},t.actions[Pj]={rewind:!0},t.actions[Nj]={do:[Pj,...dO]},t.segments[Nj]={template:`{{ action "${Nj}" "↩ cancel" }}`,when:`{{ and ${or(hO)} ${Ij} }}`};let a=[{kind:`segment`,name:Mj},{kind:`segment`,name:Nj}],o={...e.presets},s=[];for(let n of $g(e.presets)){let c=cM(e,n,t,a,r,i);s.push(c),o[n]={...t_(e.presets,n),root:c}}let c=rE(t,s,e);return{...e,variables:{...c,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:o}}function uM(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function dM(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 fM(e,t,n){let r=mg(e,new Set(n.map(pg).filter(e=>e.includes(t)).flat()));return r===e?{seg:e}:{seg:e,id:r}}const pM=/^-?\d+$/;function mM(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 hM(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!pM.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 gM(e,t,n){return r=>r?pM.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 _M(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=>!pM.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 vM(e){return e===`config`?`set-config`:`set-state`}function yM(e,t,n){return t.kind===`int`?hM(`menu page "${e}"`):t.kind===`range`?gM(t.min,t.max,`${n} stepper "${e}"`):mM(t.allowed,`${n} "${e}"`,vM(n))}function bM(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:_M(e,n,t)}))}function xM(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 bM(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,yM(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 SM(e,t,n){let r=[],i=0,a=new WeakMap;return{register(n,a){let o={key:n,allowed:a};xM(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=xM(e,r,n(o),t);return a.set(o,{epoch:i,gate:c}),c}}}const CM=SM({},`config`,AM);function wM(e,t){return CM.register(e,t)}function TM(e){return CM.gateFor(e)}function EM(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:l_(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:[uM({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[uM({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:l_(e.insertSegmentFrom,t).members.map(t=>uM({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function DM(e,t){let n=KD(e).get(t);return n===void 0?null:String(n)}function OM(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?tO(n.persist):null;e?.scope===`preset-root`&&t.add(ZD(e.preset))}return[...t].map(e=>({key:e,spec:{kind:`allow-list`,allowed:[]}}))}function kM(e){let t=Gj(e);return[...OM(e),...Object.values(e.actions).flatMap(e=>EM(e,t))]}function AM(e){return bM(kM(e),`config`)}function jM(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:PM(t.segments,MM(t.segments,e.segments??{})),root:Yg(e.root??Hg,t.root),actions:{...t.actions,...e.actions??{}},styles:{...t.styles,...e.styles??{}},presets:PM(t.presets,NM(t.presets,e.presets??{})),themeDefaults:PM(t.themeDefaults,e.themeDefaults??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function MM(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 NM(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 PM(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}function FM(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: ${Cg.join(`, `)})`,line:Y(e.source,t.split(`.`))}),null):RM(e,`${t}.cache`,n.cache)}function IM(e){return{required:!0,json:zM(),parse:(t,n,r,i)=>FM(t,n,i,e)??void 0}}const LM={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&VM(n)?{ttl:n}:GE(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 GE(e,t,`cache.watch_file must be a path string, got ${Z(n)}`);let r=rD(`cache.watch_file`,n);return r===null?{watch_file:n}:GE(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}:GE(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}:GE(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}:GE(e,t,`cache.never must be the literal boolean true, got ${Z(n)}`)}}};function RM(e,t,n){return KE(e,LM,t,n)}function zM(){return uD(LM)}const BM=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function VM(e){return BM.test(e)}function HM(e,t,n){if(n===void 0)return{};if(!RE(n))return e.issues.push({path:t,message:`${t} must be an object, got ${zE(n)}`,line:Y(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=qE(e,mN,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function UM(){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 ${zE(i)}`,line:Y(e.source,t.split(`.`))});return}return i}}}function WM(){return{required:!0,json:{enum:[...Tg]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!Tg.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${Tg.join(`, `)}, got ${JSON.stringify(i)}`,line:Y(e.source,[...t.split(`.`),`field`])});return}return i}}}function GM(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return PE(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const KM={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:GE(e,t,`parse.text must be the literal boolean true, got ${Z(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?qM(e,t,n):GE(e,t,`parse.regex must be a pattern string, got ${Z(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:GE(e,t,`parse.json must be the literal boolean true, got ${Z(n)}`)}}};function qM(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return GE(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:GE(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function JM(){return{required:!1,json:uD(KM),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:Y(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:KE(e,KM,`${t}.parse`,r.parse)??void 0)}}function YM(){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)=>RE(r.parse)&&`json`in r.parse?XM(e,t,r.default):FE(e,t,r,`default`)}}function XM(e,t,n){if(n!==void 0)return ZM(n)?n:GE(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${Z(n)}`)??void 0}function ZM(e){return e!==null&&QM(e)}function QM(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(QM);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(QM)}default:return!1}}const $M={value:UM(),default:ZE()},eN={path:nD(),type:aD([`string`,`number`,`boolean`]),default:GM()},tN={name:nD(),default:ZE()},nN={path:iD(),readMode:aD([`whole`,`first-line`]),parse:JM(),cache:IM(`file`),default:YM()},rN={command:nD(),parse:JM(),cache:IM(`shell`),default:YM()};function iN(e){return{cache:`${e}, so it takes no cache policy — delete the key`}}const aN={template:nD(),default:ZE()},oN=iN(`a template variable recomputes whenever a variable it reads changes`),sN={layout:nD(),default:ZE()},cN=iN(`a time variable reads the instant its render is drawn at`),lN={field:WM(),default:ZE()},uN=iN(`a git variable is refreshed by the daemon's own watch on the repository`),dN={key:nD(),default:ZE()},fN=`kind`;function pN(e,t,n={}){return{...JE(fN,e,t),parse:(r,i,a)=>{VE(r,n,i,a);let o=HE(r,t,i,a);return o===null?null:{kind:e,...o}}}}const mN={tag:fN,noun:`source kind`,memberNoun:`variable`,arms:{literal:pN(`literal`,$M),input:pN(`input`,eN),env:pN(`env`,tN),file:pN(`file`,nN),shell:pN(`shell`,rN),template:pN(`template`,aN,oN),time:pN(`time`,sN,cN),git:pN(`git`,lN,uN),state:pN(`state`,dN)}};function hN(){return lD(mN)}function gN(){return{type:`object`,additionalProperties:hN()}}const _N=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 vN(e){let t=_N.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 yN=/^[A-Za-z_][A-Za-z0-9_]*$/,bN={pattern:yN.source},xN={anyOf:[{type:`boolean`},{type:`string`},{type:`integer`}]},SN={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`,...bN}}}]},default:xN}},CN=[`label`,`domain`,`default`],wN=[`min`,`max`,`step`,`atLeast`];function TN(e,t,n){e.issues.push({path:t,message:n,line:Y(e.source,t.split(`.`))})}function EN(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 TN(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 TN(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?TN(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(RE(n)){let{min:r,max:i,step:a=1,atLeast:o}=n;return Object.keys(n).filter(e=>!wN.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}}:TN(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 TN(e,t,`domain must be "bool", a list of words, or { min, max }, got ${Z(n)}`)}function DN(e,t,n){if(!RE(n))return TN(e,t,`${t} must be { label, domain, default }, got ${zE(n)}`);for(let r of Object.keys(n))CN.includes(r)||TN(e,`${t}.${r}`,`Unknown setting key "${r}". Expected one of: ${CN.join(`, `)}`);let{label:r}=n,i=typeof r==`string`&&r.length>0&&!/[\n\r]/.test(r);i||TN(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=EN(e,`${t}.domain`,n.domain);if(!i||a===void 0)return;let o={label:r,domain:a,default:n.default};return!ON(n.default)||!Ng(o,n.default)?TN(e,`${t}.default`,`default must be ${Lg(o)}, got ${Z(n.default)}`):o}function ON(e){return typeof e==`boolean`||typeof e==`string`||typeof e==`number`}const kN={theme:`its default for this segment is segments.<name>.palette, and a placement sets its own with settings: { ${Dg}: "<theme>" }`,effect:`a placement follows the bar's effect, or sets its own with settings: { effect: "<effect>" }`};function AN(e){return kg.includes(e)}function jN(){return{required:!1,json:{type:`object`,propertyNames:{...bN,not:{enum:[...kg]}},additionalProperties:SN},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!RE(i))return TN(e,a,`${a} must be an object of name → { label, domain, default }, got ${zE(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i)){if(!yN.test(t)){TN(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(AN(t)){TN(e,`${a}.${t}`,`setting "${t}" is one every placement already has — ${kN[t]}`);continue}let r=DN(e,`${a}.${t}`,n);r!==void 0&&(o[t]=r)}return o}}}const MN=pE.map(e=>e.replace(/\./g,`\\.`)).join(`|`);function NN(){return{required:!1,json:{type:`string`,minLength:1,pattern:`^(?!${MN})[^:/]+$`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return typeof i==`string`&&i.length>0&&!/[:/]/.test(i)&&!mE(i)?i:TN(e,`${t}.${n}`,`a placement "id" must be a non-empty string without "/" or ":", outside the reserved ${pE.map(e=>`"${e}"`).join(`, `)} namespaces, got ${Z(i)}`)}}}function PN(){return{required:!1,json:{type:`object`,propertyNames:bN,additionalProperties:xN},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!RE(i))return TN(e,a,`a placement's "settings" must be an object of setting name → value, got ${zE(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i))ON(n)?o[t]=n:TN(e,`${a}.${t}`,`setting "${t}" must be a boolean, a word, or a number, got ${zE(n)}`);return o}}}function FN(e){return new Set(Object.keys(e.segments).filter(e=>!mE(e)))}function IN(e,t,n){if(t===void 0)return{};if(!RE(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${zE(t)}`,line:Y(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=BE(e,n.has(i)?HN:VN,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function LN(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?GE(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${vN(t.slice(9))}`)??void 0:NE(e,t,r,n)??void 0}}function RN(){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:Y(e.source,[...t.split(`.`),n])})}}}}function zN(){return{required:!1,json:gN(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return HM(e,`${t}.${n}`,i)}}}const BN={template:LN(),description:ZE(),group:aD(rO),width:RN(),justify:aD(Rg),truncate:aD(zg),bg:ZE(),fg:ZE(),when:ZE(),palette:tD(),vars:zN(),settings:jN()},VN={noun:`segment key`,fields:BN},HN={noun:`segment key`,fields:{...BN,template:ZE()}},UN=`#/definitions/LayoutNode`,WN={kind:`container`,direction:`vertical`,children:[]};function GN(e){return{required:!0,json:{const:e},parse:()=>e}}function KN(){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:Y(e.source,[`root`])}),``)}}}function qN(){return{required:!0,json:{enum:[...ug]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&ug.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${ug.join(`, `)} (got ${JSON.stringify(i)})`,line:Y(e.source,[`root`])}),`vertical`)}}}function JN(e){return{required:!0,json:{type:`array`,items:{$ref:UN}},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 ${zE(a)}`,line:Y(t.source,[`root`])}),[])}}}const YN={noun:`layout-node key`,fields:{kind:GN(`segment`),name:KN(),when:ZE(),id:NN(),settings:PN()}},XN=()=>aD(gp),ZN={noun:`layout-node key`,fields:{kind:GN(`container`),direction:qN(),children:JN(YE(()=>nP)),when:ZE(),distribution:XN()}};function QN(){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:Y(e.source,[`root`])}),``)}}}const $N={noun:`layout-node key`,fields:{seg:QN(),when:ZE(),id:NN(),settings:PN()}},eP={noun:`layout-node key`,fields:{h:JN(YE(()=>nP)),when:ZE(),distribution:XN()}},tP={noun:`layout-node key`,fields:{v:JN(YE(()=>nP)),when:ZE(),distribution:XN()}},nP=(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:Y(e.source,[`root`])}),WN):{kind:`segment`,name:n};if(!RE(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 ${zE(n)}`,line:Y(e.source,[`root`])}),WN;if(n.kind===`container`)return BE(e,ZN,t,n)??WN;if(n.kind===`segment`)return BE(e,YN,t,n)??WN;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
|
|
160
160
|
Old: { kind: "cells", segments: ["seg1", "seg2"] }
|
|
161
|
-
New: { h: ["seg1", "seg2"] }`,line:J(e.source,[`root`])}),WN;if(n.kind===`group`){let r=BE(e,lP,t,n);return r===null?WN:(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}),dP(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`])}),WN}if(a){let r=BE(e,$N,t,n);return r===null?WN:{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=BE(e,eP,t,n);return r===null?WN:{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=BE(e,tP,t,n);return r===null?WN:{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`])}),WN};function rP(){return{required:!0,json:{type:`object`,propertyNames:{pattern:Vg.source},additionalProperties:{$ref:UN}},parse:(e,t,n,r)=>{let i=r[n];if(!zE(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(!Vg.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]=nP(e,`${t}.${n}.${r}`,o)}return a}}}const iP={noun:`root key`,fields:{rows:rP(),when:ZE(),distribution:XN()}};function aP(e,t,n){return zE(n)&&`rows`in n?BE(e,iP,t,n)??{rows:{}}:nP(e,t,n)}function oP(){return{required:!0,json:{type:`string`,pattern:Vg.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!Vg.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 "${$n}", got ${Z(i)}`,line:J(e.source,[`root`])});return}return i}}}function sP(){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 cP(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=PE(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 lP={noun:`layout-node key`,fields:{kind:GN(`group`),name:oP(),label:cP(),open:QE(),direction:aD(dg),key:sP(),bg:ZE(),fg:ZE(),when:ZE(),distribution:XN(),children:JN(YE(()=>nP))}};function uP(e){return e.key??`groups.`+e.name}function dP(e){let t=dE+e.name;return ir(t,{variable:t,key:uP(e),member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},`drop`,e.when)}function fP(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,[`root`])})}function pP(e,t){_E(e,t,dE,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&fP(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}.`)&&uP(t)===uP(r)&&fP(e,t.path,`group "${t.name}" shares key "${uP(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=uP(t);if(i.has(n)||i.set(n,$n),t.open===!0){let r=i.get(n);r!==`closed`&&fP(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=dE+e.name,r=uP(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=ur(r,i.get(r)),o[t]=dr(r,e.name),s[t]={template:sr(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 mP=`menu`,hP=`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`,gP=e=>e.kind===`call`&&e.name===`dict`,_P=e=>e.kind===`literal`&&typeof e.value!=`object`,vP=e=>tr(``,e,2)===void 0;function yP(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&&gP(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(gP))return t(`whose options (dict …) is not its last argument — ${hP}`);if(i!==void 0&&a===void 0&&!_P(i)&&vP(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=tr(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${hP}`);let c=a===void 0?{}:Ax(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=EE(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=gE(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 "${bE(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 bP(e){let t=zy({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===mP).map(yP)}catch{return`parse-failed`}}function xP(e){let t=zy({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(mP)}catch{return!1}}function SP(e,t,n){e.issues.push({path:t,message:n,line:J(e.source,[`root`])})}function CP(e,t){_E(e,t,fE,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))xP(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`&&xP(i)&&SP(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 _g(Jg(t.root)))typeof n.when==`string`&&xP(n.when)&&SP(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||!xP(r))continue;let n=bP(r);if(n!==`parse-failed`)for(let r of n){let n=r.kind===`issue`?r.message:wP(r.apply);n!==void 0&&SP(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${n}.`)}}}function wP(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(vE(e)===`closed`)return`whose apply action is named "${$n}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action`}function TP(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 e_(e.presets)){let a=new Map,s=new Map;for(let c of _g(r_(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,bP(t.template));let l=i.get(c.name);if(l===`parse-failed`)continue;let u=pg(c);for(let[e,t]of l.entries()){if(t.kind===`issue`||wP(t.apply)!==void 0)continue;let{apply:i,options:l}=t,d=vE(i),f=yE(u,i,l.key),p=SE(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=xE(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]=dr(f,d),n[f]=ur(f,$n),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 EP=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`back`,`rewind`,`save`,`preset`,`themeDefault`,`doctor`,`ceiling`,`slash`,`do`];function DP(e){return e.ceiling===`set`?[`set`,e.to]:[`clear`]}function OP(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function kP(e,t){if(t===void 0)return{};if(!zE(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=AP(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 AP(e,t,n){if(!zE(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=EP.filter(e=>e in n);return r.length===1?jP[r[0]](e,t,n):(Q(e,t,`action must declare exactly one of: ${EP.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const jP={set:(e,t,n)=>dF(e,t,n,`set`,sF),persist:(e,t,n)=>dF(e,t,n,`persist`,cF),copy:MP(`copy`),open:MP(`open`),reset:NP,undo:FP(`undo`),redo:FP(`redo`),back:FP(`back`),rewind:FP(`rewind`),save:FP(`save`),preset:IP,themeDefault:LP,doctor:zP,ceiling:BP,slash:VP,do:HP};function MP(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=PE(t,n,r,e);return i===null?null:{[e]:i}}}function NP(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=UP(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 PP={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 FP(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 — ${PP[e]}), got ${Z(r[e])}`),null)}}function IP(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=PE(e,t,n,`name`);return a===null?null:{preset:`delete`,name:a}}function LP(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 RP={run:[`doctor`],fix:[`doctor`,`check`],mark:[`doctor`,`check`,`mark`]};function zP(e,t,n){let r=n.doctor,i=typeof r==`string`&&Object.hasOwn(RP,r),a=i?RP[r]:[...new Set(Object.values(RP).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(RP).map(e=>`"${e}"`).join(`, `)}, got ${Z(r)}`),null;if(r===`run`)return{doctor:`run`};let o=n.check,s=r===`mark`?bk:yk;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 tk.includes(c)?{doctor:`mark`,check:o,mark:c}:(Q(e,`${t}.mark`,`doctor mark must be ${tk.map(e=>`"${e}"`).join(` or `)}, got ${Z(c)}`),null)}function BP(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 VP(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=Lk(n.slash);return r.kind===`refused`?(Q(e,`${t}.slash`,r.reason),null):{slash:r.line}}function HP(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 UP(e,t,n,r,i,a){let o=PE(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 WP={set:`the SessionState key to write`,persist:`the config globals field to write`};function GP(e,t,n,r){let i=WP[r],a=UP(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 KP(e){return e===`set`?`set-state`:`set-config`}const qP={to:fF(`set`)},JP={to:fF(`persist`)},YP={from:pF(`set`)},XP={from:pF(`persist`)},ZP={min:vF(),max:vF(),by:vF()},QP={int:hF()},$P={cycle:mF(`set`)},eF={cycle:mF(`persist`)},tF={removeSegment:gF(`removeSegment`)},nF={insertSegment:gF(`insertSegment`),anchor:gF(`anchor`),relation:_F()},rF={insertSegmentFrom:pF(`persist`),anchor:gF(`anchor`),relation:_F()},iF={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},aF={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function oF(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=[e],s=(e,n,r)=>HE(e,t,n,r),c=oD(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?XE(s,...n):s}}const sF=[oF(`set`,qP),oF(`set`,YP),oF(`set`,ZP,[iF,aF]),oF(`set`,QP),oF(`set`,$P)],cF=[oF(`persist`,JP),oF(`persist`,XP),oF(`persist`,ZP,[iF,aF]),oF(`persist`,eF),oF(`persist`,tF),oF(`persist`,nF,[],[`insertSegment`]),oF(`persist`,rF,[],[`insertSegmentFrom`])];function lF(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 uF(e){let t=lF(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 dF(e,t,n,r,i){let a=GP(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return Q(e,t,`${uF(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 fF(e){let t=KP(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>UP(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 pF(e){let t=KP(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 mF(e){let t=KP(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 hF(){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 gF(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=PE(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 _F(){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 vF(){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 yF(e,t,n){return`${e}: "${t}" is an endcaps shape, not a style — endcaps were renamed from "style" to "endcaps"; write ${n}: "${t}"`}const bF={noun:`style key`,fields:{hueShift:eD(),chromaScale:eD({min:0}),lightnessScale:eD(),lightnessShift:eD()}};function xF(e,t){if(!zE(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(Hm(r)){e.issues.push({path:`styles.${r}`,message:yF(`styles.${r}`,r,`globals.endcaps`),line:J(e.source,[`styles`,r])});continue}let t=BE(e,bF,`styles.${r}`,i);t!==null&&(n[r]={...Vs,...t})}return n}const SF={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:aP(e,`${t}.${n}`,r[n])},globals:{required:!1,json:zD(),parse:(e,t,n,r)=>r[n]===void 0?void 0:RD(e,`${t}.${n}`,r[n])}}};function CF(e,t){if(!zE(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=BE(e,SF,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function wF(e,t){if(t===void 0)return{};if(!zE(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 TF=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 EF(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 DF(e){let t=TF.get(e);return t===void 0?void 0:`variables.${e} is no longer read: ${EF(t)}`}function OF(e){let t=TF.get(e);return t===void 0?``:` — ".${e}" is no longer a variable: ${EF(t)}; a "${t.segment}" template reads it as ".settings.${t.setting}"`}function kF(e,t){let n=new Map;for(let e of Object.keys(t)){let t=aE(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 AF(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||wm(i)||Object.prototype.hasOwnProperty.call(t.styles,i))continue;let r=`${n.join(`.`)}.style`;e.issues.push({path:r,message:Hm(i)?yF(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`])}),kF(e,t.presets);let i=N_(t);for(let t of i.names)t!==`settings`&&!t.startsWith(NF)||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)=>{gj(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${Yk}" ${gj(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}),_j(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${Yk}" 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 _g(t)){if(e.kind!==`segment`)continue;let t=pg(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=hg(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||fg[e.direction]===`cell`))}let s=(n,r)=>{for(let[a,o]of Yg(n,r)){let n=J(e.source,o.split(`.`));if(a.when!==void 0&&(GF(e,`${o}.when`,a.when,i,{line:n}),WF(e,`${o}.when`,a.when,n)),a.kind===`segment`){if(pj(a.name)){(a.id!==void 0||a.settings!==void 0)&&e.issues.push({path:o,message:`${r} gives the global settings menu anchor "${Yk}" an id or settings — the anchor only marks where the menu goes, so place it as the bare name "${Yk}"`,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${vN(a.name)}`,line:n}),VF(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`,qg(t.root)]]);for(let e of e_(t.presets)){let{node:n,path:r}=r_(t,e);c.set(r,n)}for(let[t,n]of c)a(n,t,J(e.source,t.split(`.`)));QF(e,t,i,()=>!0)}const jF=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function MF(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=J(e.source,[`actions`,n,r]);if(!e_(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${e_(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(`, `)})${vN(i)}`,line:c})},p=new Set(mg(r_(t,a).node)),m=(r,i)=>{!_N.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${vN(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 NF=`settings.`;function PF(e,t){return{...e,names:new Set([...e.names,...Object.keys(t).map(e=>NF+e)])}}function FF(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=RF(n);for(let{setting:e,message:t}of a)i(e,t);if(!(a.length>0))for(let{setting:e,message:t}of Ng(n,LF(n)))i(e,`the defaults do not stand together: ${t}`)}function IF(e){return RF(e).length>0||Ng(e,LF(e)).length>0}function LF(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default]))}function RF(e){let t=t=>Mg(zF(e,t))?.atLeast;return Object.keys(e).flatMap(n=>{let r=t(n);if(r===void 0)return[];if(r===n||Mg(zF(e,r))===void 0)return[{setting:n,message:`atLeast "${r}" must name another range setting of this segment (its range settings: ${BF(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 zF(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function BF(e,t){return Object.entries(e).filter(([e,n])=>e!==t&&Mg(n)!==void 0).map(([e])=>e)}function VF(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=jg(a),s=`${r}: placement "${pg(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(`, `)})`:Pg(c,a)?void 0:`sets "${t}" to ${JSON.stringify(a)}${c.domain===`theme`?hm(a):``}, but it must be ${Rg(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])=>Pg(o[e],t))||IF(o)))for(let{message:t}of Ng(o,c))e.issues.push({path:r,message:`${s}: ${t}`,line:i})}function HF(e,t,n,r,i){n.kind===`template`&&GF(e,`${t}.template`,n.template,r,{segCtx:i}),Tg(n)&&`key`in n.cache&&GF(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function UF(e,t,n,r,i){if(!(!Tg(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 WF(e,t,n,r){try{oO.parse(n)}catch(n){e.issues.push({path:t,message:`Template parse error in ${t}: ${n.message}`,line:r})}}function GF(e,t,n,r,i){for(let[a,o]of T_(n,r.helpers)){if(M_(a,r))continue;if(a.startsWith(NF)){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){KF(e,o,`Template references unknown variable ".${a}"${OF(a)}`);continue}let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,s=n!==void 0&&M_(n,r)?` (segment-local vars are namespaced — write ".${n}")`:OF(a);e.issues.push({path:t,message:`Template references unknown variable ".${a}"${s}`,line:i?.line??J(e.source,t.split(`.`))})}}function KF(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 qF(e,t,n,r,i){let a=n.set,o=CD(Sa[r].configKey),s=`${a} takes ${kE(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=XF(n,i);if(c===YF){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=>!OE(o,e.value,i));if(l.length!==0){if(a===Sa.style.sessionKey&&(`from`in n&&n.from===`endcaps`||c.every(e=>Hm(e.value)))){let r=Sa.endcaps.sessionKey;e.issues.push(`to`in n?{path:`actions.${t}.to`,message:yF(`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<=JF?r.join(`, `):`${r.slice(0,JF).join(`, `)} and ${r.length-JF} 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 JF=3,YF=Symbol(`any integer`);function XF(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?u_(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)}]:YF}function ZF(e,t){return Object.entries(e).filter(([e])=>t(e))}function QF(e,t,n,r){let i=Gj(t),a=l_(i);for(let[n,o]of ZF(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 ${f_(r,i)}`,line:J(e.source,[`actions`,n,t])});continue}if(!(`set`in o))continue;Ta.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=ka.get(o.set);s!==void 0&&qF(e,n,o,s,i)}for(let[n,i]of ZF(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&&OP(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 ZF(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=tO(r);if(o===null){let t=UD(r);e.issues.push({path:`actions.${n}.${a}`,message:t===void 0?`actions.${n}: "${r}" is not a config globals field (have: ${WD().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`:`actions.${n}: the globals field "${r}" was removed: ${t}`,line:J(e.source,[`actions`,n,a])});continue}let s=jF.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`){MF(e,t,n,a,r,o.preset,i);continue}if(o.scope===`preset-globals`&&!e_(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: ${e_(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${hm(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(`, `)})${vN(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 ZF(t.variables,r)){HF(e,`variables.${i}`,a,n);let t=DF(i);t!==void 0&&e.issues.push({path:`variables.${i}`,message:t,line:J(e.source,[`variables`,i])})}for(let[i,a]of ZF(t.segments,r)){if(a.vars)for(let[t,r]of Object.entries(a.vars))HF(e,`segments.${i}.vars.${t}`,r,n,i);let r=jg(a);FF(e,i,r);let o=PF(n,r);for(let n of[`template`,`bg`,`fg`,`when`]){let s=a[n];if(typeof s==`string`){GF(e,`segments.${i}.${n}`,s,o,{segCtx:i,settings:r});for(let{name:r,site:a,via:o}of k_(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){KF(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 ZF(t.variables,r))UF(e,`variables.${i}`,a,n);for(let[i,a]of ZF(t.segments,r))if(a.vars)for(let[t,r]of Object.entries(a.vars))UF(e,`segments.${i}.vars.${t}`,r,n,i)}function $F(e,t,n=()=>!0){let{graph:r,nodeInfo:i}=eI(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 eI(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 T_(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),Tg(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 tI(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?h.homedir()+e.slice(1):e}function nI(e,t){return l.resolve(e,tI(t))}function rI(e,t){return typeof t==`string`&&t!==``?nI(e,t):void 0}function iI(e){return`plugin ${e.path} was not loaded: ${e.reason}`}const aI=new Set([`data`,`segments`,`helpers`,`actions`]),oI=`plugin.json5`,sI=/^[a-z][a-z0-9_]*$/;function cI(e){let t=l.basename(l.dirname(e));return sI.test(t)?t:void 0}const lI=`plugins.`;function uI(e){return`${lI}${e}.data`}function dI(e){try{return{ok:!0,value:e()}}catch(e){return{ok:!1,reason:fI(e)}}}function fI(e){return e instanceof oE?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 pI(e,t){return e.map(e=>nI(l.dirname(t),e))}function mI(e,t,n,i){let a=new Map;return e.reduce((e,n)=>{let o=cI(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 ${oI}, and the folder's name is the plugin's: move this file to <dir>/<name>/${oI} and list that`;return s(t,o===void 0?e.config:_I(gI(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 ${sI}: 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=gI(e.config,o),d=dI(()=>{let a=r.readFileSync(n,`utf-8`),s=jM(CI(n,o,{source:a,json:yr.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,_I(u,o,f))},{config:n.config,rendering:n.rendering,loaded:[],dropped:[]})}function hI(e){let t=`${lI}${e}.`;return e=>e.startsWith(t)}function gI(e,t){let n=hI(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 _I(e,t,n){return{...e,variables:{...e.variables,[uI(t)]:{kind:`dropped`,reason:iI(n),definition:n.path}}}}function vI(e){return e.startsWith(`plugins.`)?e.slice(8).split(`.`)[0]:void 0}function yI(e,t){let n=new Set([...Object.keys(e.config.variables),...Object.keys(e.config.segments)].map(vI)),r=[...t,...e.dropped].filter(e=>e.plugin===void 0).map(e=>({definition:e.path,notice:iI(e)}));return t=>{let i=vI(t);if(i===void 0)return[];let a=e.config.variables[uI(i)];return a?.kind===`dropped`?[{definition:a.definition,notice:a.reason}]:n.has(i)?[]:r}}function bI(e,t){let n=e_(e.presets).flatMap(t=>[..._g(r_(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,xI(e,t.map(e=>e.notice),n.filter(t=>t.name===e))])),a=t=>{let n=vI(t),r=n===void 0?void 0:e.variables[uI(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=>k_(t,e.helpers).map(e=>e.name)),...c],e.actions),d=l(s.flatMap(t=>[...j_(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:`{{ .${uI(vI(e)??``)} }}`}]))},helpers:{...e.helpers,...Object.fromEntries(d.map(([e,t])=>[e,`{{ fail ${JSON.stringify(t.notice)} }}`]))}},reached:f}}function xI(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,SI(e,t)]));return{template:`{{ ${JSON.stringify(r)} }}`,bg:`error`,description:`stands in for a segment whose plugin did not load`,settings:a}}function SI(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 CI(e,t,{source:n,json:r},{checkout:i}){let a=[],o=()=>{throw new oE(e,a)};if(!zE(r))return a.push({path:``,message:`a plugin definition must be an object, got ${X(r)}`}),o();for(let e of Object.keys(r))aI.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: ${[...aI].join(`, `)}`});let s=kI(r.data,e,i,a);if(zE(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(vm()),groups:[]},l=HM(c,`data`,{[uI(t)]:{kind:`file`,path:s,parse:{json:!0},cache:{watch_file:s},default:{}}});for(let[e,t]of Object.entries(r.segments))if(!(!zE(t)||!zE(t.vars)))for(let[n,r]of Object.entries(t.vars)){let t=zE(r)?r.kind:void 0;typeof t!=`string`||t===`state`||a.push({path:`segments.${e}.vars.${n}`,message:`a plugin segment's vars may declare only state variables (kind: "state"), never a source such as ${JSON.stringify(t)}: a plugin's only source is its data file`})}let u={variables:l,segments:TI(t,DI(t,IN(c,r.segments,new Set))),helpers:TI(t,wF(c,r.helpers)),actions:TI(t,OI(t,kP(c,r.actions)))};for(let[e,t]of wI(u))try{oO.parse(t)}catch(t){a.push({path:e,message:`Template parse error in ${e}: ${t.message}`})}return a.length>0&&o(),u}function*wI(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 TI(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[`${lI}${e}.${t}`,n]))}function EI(e,t){return`${lI}${e}.${t}`}function DI(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,n.vars===void 0?n:{...n,vars:Object.fromEntries(Object.entries(n.vars).map(([t,n])=>[t,n.kind===`state`?{...n,key:EI(e,n.key)}:n]))}]))}function OI(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,`set`in n?{...n,set:EI(e,n.set)}:n]))}function kI(e,t,n,r){if(typeof e==`string`&&e!==``)return nI(l.dirname(t),e);if(zE(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(zE(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 AI(e){let t=[...[...(process.env.XDG_DATA_DIRS||NI()).split(`:`).filter(e=>e!==``)].reverse().map(e=>l.join(e,`cc-candybar`,`plugins`)),jI(),...e===null?[]:[l.join(e,MI)]];return t.filter((e,n)=>t.lastIndexOf(e)===n)}function jI(){let e=process.env.XDG_DATA_HOME||l.join(h.homedir(),`.local`,`share`);return l.join(e,`cc-candybar`,`plugins`)}const MI=l.join(`.cc-candybar`,`plugins`);function NI(){let e=`/usr/local/share:/usr/share`;return process.platform===`darwin`?`${l.join(process.env.HOMEBREW_PREFIX||`/opt/homebrew`,`share`)}:${e}`:e}function PI(e){let t=AI(e),n=new Map,r=[],i=[];for(let e of t){let t=FI(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,oI));for(let n of t.files)i.push({path:l.join(e,n),plugin:void 0,reason:`a plugin is a folder holding its ${oI}: move this file to ${l.join(e,`<name>`,oI)}`})}return{roots:t,definitions:[...n.values()],unchecked:r,strays:i}}function FI(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()||II(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 II(e,t){if(!t.isSymbolicLink())return!1;try{return r.statSync(l.join(e,t.name)).isDirectory()}catch{return!0}}const LI=[`json5`,`json`];function RI(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function zI(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?LI.map(t=>l.join(e,`.cc-candybar.${t}`)):[],...LI.map(e=>l.join(r,`.cc-candybar.${e}`)),...LI.map(e=>`${BI()}.${e}`)])]}function BI(){let e=process.env.XDG_CONFIG_HOME??l.join(h.homedir(),`.config`);return l.join(e,`cc-candybar`,`config`)}function VI(e,t,n){let i=[],a=new Map;for(let o of zI(e,t,n)){let e=RI(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:HI(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 HI(e){let t=BI();return e.find(e=>LI.some(n=>e===`${t}.${n}`))??`${t}.${LI[0]}`}function UI(e,t,n){let r=VI(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 WI(e){return GI(e).join(`
|
|
162
|
-
`)||null}function GI(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 KI(e,t){let n=zI(e,t).filter(e=>RI(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 qI(e,t,n,i){return e===null?{...rL,config:jM(rL.raw,t)}:YI(e,r.readFileSync(e,`utf-8`),t,n,i)}const JI={projectDir:null,checkout:null,beneath:{dropped:[],rendering:new Map}};function YI(e,t,n,r,i){let a=oL(e,t,i,(t,a)=>{let o=mI(pI(t,e),r,{config:n,rendering:r.beneath.rendering},(t,n,r)=>tL(t,n,r,e,i)),s=yI(o,r.beneath.dropped);return{inherited:new Set([...FN(o.config),...a.filter(e=>s(e).length>0)]),layer:{plugins:o,owning:s}}}),{plugins:o,owning:s}=a.layer,c=bI(jM(a.raw,o.config),s);return{source:t,raw:a.raw,warnings:[...a.warnings,...o.dropped.map(iI)],plugins:{loaded:o.loaded,dropped:o.dropped,reached:c.reached,rendering:o.rendering},config:c.config}}const XI=new WeakMap;function ZI(e,t,n,r){let i=JSON.stringify([[...r??[]].sort(),e.map(e=>[e,$I(e)])]),a=XI.get(n)??new Map;XI.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=mI(e,t,{config:n,rendering:new Map},(e,t,n)=>tL(e,t,n,`<installed plugins>`,r));return a.set(o,{key:i,layer:c}),c}function QI(e,t,n){return mI(e,{projectDir:null,checkout:n},{config:t,rendering:new Map},(e,t,n)=>tL(e,t,n,`<plugin install>`,void 0)).dropped}function $I(e){try{let t=r.statSync(e);return`${t.ino}:${t.size}:${t.mtimeMs}`}catch(e){return e.code??`unreadable`}}function eL(e,t,n,i,a=e=>r.readFileSync(e,`utf-8`),o){let s={projectDir:i.projectDir,checkout:i.cwd===null?null:
|
|
161
|
+
New: { h: ["seg1", "seg2"] }`,line:Y(e.source,[`root`])}),WN;if(n.kind===`group`){let r=BE(e,lP,t,n);return r===null?WN:(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}),dP(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:Y(e.source,[`root`])}),WN}if(a){let r=BE(e,$N,t,n);return r===null?WN:{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=BE(e,eP,t,n);return r===null?WN:{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=BE(e,tP,t,n);return r===null?WN:{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:Y(e.source,[`root`])}),WN};function rP(){return{required:!0,json:{type:`object`,propertyNames:{pattern:Bg.source},additionalProperties:{$ref:UN}},parse:(e,t,n,r)=>{let i=r[n];if(!RE(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${zE(i)}`,line:Y(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!Bg.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:Y(e.source,[...t.split(`.`),n,r])});continue}a[r]=nP(e,`${t}.${n}.${r}`,o)}return a}}}const iP={noun:`root key`,fields:{rows:rP(),when:ZE(),distribution:XN()}};function aP(e,t,n){return RE(n)&&`rows`in n?BE(e,iP,t,n)??{rows:{}}:nP(e,t,n)}function oP(){return{required:!0,json:{type:`string`,pattern:Bg.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!Bg.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 "${$n}", got ${Z(i)}`,line:Y(e.source,[`root`])});return}return i}}}function sP(){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:Y(e.source,[`root`])});return}return i}}}}function cP(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=NE(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:Y(e.source,[...t.split(`.`),n])});return}return i}}}}const lP={noun:`layout-node key`,fields:{kind:GN(`group`),name:oP(),label:cP(),open:QE(),direction:aD(ug),key:sP(),bg:ZE(),fg:ZE(),when:ZE(),distribution:XN(),children:JN(YE(()=>nP))}};function uP(e){return e.key??`groups.`+e.name}function dP(e){let t=uE+e.name;return ir(t,{variable:t,key:uP(e),member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},`drop`,e.when)}function fP(e,t,n){e.issues.push({path:t,message:n,line:Y(e.source,[`root`])})}function pP(e,t){gE(e,t,uE,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&fP(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}.`)&&uP(t)===uP(r)&&fP(e,t.path,`group "${t.name}" shares key "${uP(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=uP(t);if(i.has(n)||i.set(n,$n),t.open===!0){let r=i.get(n);r!==`closed`&&fP(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=uE+e.name,r=uP(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=ur(r,i.get(r)),o[t]=dr(r,e.name),s[t]={template:sr(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 mP=`menu`,hP=`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`,gP=e=>e.kind===`call`&&e.name===`dict`,_P=e=>e.kind===`literal`&&typeof e.value!=`object`,vP=e=>tr(``,e,2)===void 0;function yP(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&&gP(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(gP))return t(`whose options (dict …) is not its last argument — ${hP}`);if(i!==void 0&&a===void 0&&!_P(i)&&vP(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=tr(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${hP}`);let c=a===void 0?{}:kx(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=TE(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=hE(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 "${yE(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 bP(e){let t=Ry({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===mP).map(yP)}catch{return`parse-failed`}}function xP(e){let t=Ry({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(mP)}catch{return!1}}function SP(e,t,n){e.issues.push({path:t,message:n,line:Y(e.source,[`root`])})}function CP(e,t){gE(e,t,dE,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))xP(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:Y(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`&&xP(i)&&SP(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 gg(qg(t.root)))typeof n.when==`string`&&xP(n.when)&&SP(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||!xP(r))continue;let n=bP(r);if(n!==`parse-failed`)for(let r of n){let n=r.kind===`issue`?r.message:wP(r.apply);n!==void 0&&SP(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${n}.`)}}}function wP(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(_E(e)===`closed`)return`whose apply action is named "${$n}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action`}function TP(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 $g(e.presets)){let a=new Map,s=new Map;for(let c of gg(n_(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,bP(t.template));let l=i.get(c.name);if(l===`parse-failed`)continue;let u=fg(c);for(let[e,t]of l.entries()){if(t.kind===`issue`||wP(t.apply)!==void 0)continue;let{apply:i,options:l}=t,d=_E(i),f=vE(u,i,l.key),p=xE(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=bE(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]=dr(f,d),n[f]=ur(f,$n),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 EP=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`back`,`rewind`,`save`,`preset`,`themeDefault`,`doctor`,`ceiling`,`slash`,`do`];function DP(e){return e.ceiling===`set`?[`set`,e.to]:[`clear`]}function OP(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function kP(e,t){if(t===void 0)return{};if(!RE(t))return Q(e,`actions`,`actions must be an object, got ${zE(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=AP(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function Q(e,t,n){e.issues.push({path:t,message:n,line:Y(e.source,t.split(`.`))})}function AP(e,t,n){if(!RE(n))return Q(e,t,`${t} must be an action object, got ${zE(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=EP.filter(e=>e in n);return r.length===1?jP[r[0]](e,t,n):(Q(e,t,`action must declare exactly one of: ${EP.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const jP={set:(e,t,n)=>dF(e,t,n,`set`,sF),persist:(e,t,n)=>dF(e,t,n,`persist`,cF),copy:MP(`copy`),open:MP(`open`),reset:NP,undo:FP(`undo`),redo:FP(`redo`),back:FP(`back`),rewind:FP(`rewind`),save:FP(`save`),preset:IP,themeDefault:LP,doctor:zP,ceiling:BP,slash:VP,do:HP};function MP(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=NE(t,n,r,e);return i===null?null:{[e]:i}}}function NP(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=UP(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 PP={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 FP(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 — ${PP[e]}), got ${Z(r[e])}`),null)}}function IP(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=NE(e,t,n,`name`);return a===null?null:{preset:`delete`,name:a}}function LP(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 RP={run:[`doctor`],fix:[`doctor`,`check`],mark:[`doctor`,`check`,`mark`]};function zP(e,t,n){let r=n.doctor,i=typeof r==`string`&&Object.hasOwn(RP,r),a=i?RP[r]:[...new Set(Object.values(RP).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(RP).map(e=>`"${e}"`).join(`, `)}, got ${Z(r)}`),null;if(r===`run`)return{doctor:`run`};let o=n.check,s=r===`mark`?bk:yk;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 tk.includes(c)?{doctor:`mark`,check:o,mark:c}:(Q(e,`${t}.mark`,`doctor mark must be ${tk.map(e=>`"${e}"`).join(` or `)}, got ${Z(c)}`),null)}function BP(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 VP(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=Lk(n.slash);return r.kind===`refused`?(Q(e,`${t}.slash`,r.reason),null):{slash:r.line}}function HP(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 UP(e,t,n,r,i,a){let o=NE(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 WP={set:`the SessionState key to write`,persist:`the config globals field to write`};function GP(e,t,n,r){let i=WP[r],a=UP(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 KP(e){return e===`set`?`set-state`:`set-config`}const qP={to:fF(`set`)},JP={to:fF(`persist`)},YP={from:pF(`set`)},XP={from:pF(`persist`)},ZP={min:vF(),max:vF(),by:vF()},QP={int:hF()},$P={cycle:mF(`set`)},eF={cycle:mF(`persist`)},tF={removeSegment:gF(`removeSegment`)},nF={insertSegment:gF(`insertSegment`),anchor:gF(`anchor`),relation:_F()},rF={insertSegmentFrom:pF(`persist`),anchor:gF(`anchor`),relation:_F()},iF={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},aF={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function oF(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=[e],s=(e,n,r)=>HE(e,t,n,r),c=oD(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?XE(s,...n):s}}const sF=[oF(`set`,qP),oF(`set`,YP),oF(`set`,ZP,[iF,aF]),oF(`set`,QP),oF(`set`,$P)],cF=[oF(`persist`,JP),oF(`persist`,XP),oF(`persist`,ZP,[iF,aF]),oF(`persist`,eF),oF(`persist`,tF),oF(`persist`,nF,[],[`insertSegment`]),oF(`persist`,rF,[],[`insertSegmentFrom`])];function lF(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 uF(e){let t=lF(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 dF(e,t,n,r,i){let a=GP(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return Q(e,t,`${uF(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 fF(e){let t=KP(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>UP(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 pF(e){let t=KP(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 mF(e){let t=KP(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 ${zE(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 hF(){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 gF(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=NE(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 _F(){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 vF(){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 yF(e,t,n){return`${e}: "${t}" is an endcaps shape, not a style — endcaps were renamed from "style" to "endcaps"; write ${n}: "${t}"`}const bF={noun:`style key`,fields:{hueShift:eD(),chromaScale:eD({min:0}),lightnessScale:eD(),lightnessShift:eD()}};function xF(e,t){if(!RE(t))return e.issues.push({path:`styles`,message:`styles must be an object mapping style names to adaptation objects, got ${zE(t)}`,line:Y(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:Y(e.source,[`styles`,r])});continue}if(Vm(r)){e.issues.push({path:`styles.${r}`,message:yF(`styles.${r}`,r,`globals.endcaps`),line:Y(e.source,[`styles`,r])});continue}let t=BE(e,bF,`styles.${r}`,i);t!==null&&(n[r]={...ds,...t})}return n}const SF={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:aP(e,`${t}.${n}`,r[n])},globals:{required:!1,json:zD(),parse:(e,t,n,r)=>r[n]===void 0?void 0:RD(e,`${t}.${n}`,r[n])}}};function CF(e,t){if(!RE(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${zE(t)}`,line:Y(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:Y(e.source,[`presets`,r])});continue}let t=BE(e,SF,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function wF(e,t){if(t===void 0)return{};if(!RE(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${zE(t)}`,line:Y(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:Y(e.source,[`helpers`,r])});continue}n[r]=i}return n}const TF=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 EF(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 DF(e){let t=TF.get(e);return t===void 0?void 0:`variables.${e} is no longer read: ${EF(t)}`}function OF(e){let t=TF.get(e);return t===void 0?``:` — ".${e}" is no longer a variable: ${EF(t)}; a "${t.segment}" template reads it as ".settings.${t.setting}"`}function kF(e,t){let n=new Map;for(let e of Object.keys(t)){let t=iE(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:Y(e.source,[`presets`])})}function AF(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||Cm(i)||Object.prototype.hasOwnProperty.call(t.styles,i))continue;let r=`${n.join(`.`)}.style`;e.issues.push({path:r,message:Vm(i)?yF(r,i,a):`${r} "${i}" does not match any declared style (have: ${Object.keys(t.styles).join(`, `)})`,line:Y(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:Y(e.source,[`globals`,`preset`])}),kF(e,t.presets);let i=M_(t);for(let t of i.names)t!==`settings`&&!t.startsWith(NF)||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:Y(e.source,[`variables`,t])});let a=(t,n,r)=>{gj(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${Yk}" ${gj(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}),_j(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${Yk}" 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 gg(t)){if(e.kind!==`segment`)continue;let t=fg(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=mg(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||dg[e.direction]===`cell`))}let s=(n,r)=>{for(let[a,o]of Jg(n,r)){let n=Y(e.source,o.split(`.`));if(a.when!==void 0&&(GF(e,`${o}.when`,a.when,i,{line:n}),WF(e,`${o}.when`,a.when,n)),a.kind===`segment`){if(pj(a.name)){(a.id!==void 0||a.settings!==void 0)&&e.issues.push({path:o,message:`${r} gives the global settings menu anchor "${Yk}" an id or settings — the anchor only marks where the menu goes, so place it as the bare name "${Yk}"`,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${vN(a.name)}`,line:n}),VF(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`,Kg(t.root)]]);for(let e of $g(t.presets)){let{node:n,path:r}=n_(t,e);c.set(r,n)}for(let[t,n]of c)a(n,t,Y(e.source,t.split(`.`)));QF(e,t,i,()=>!0)}const jF=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function MF(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=Y(e.source,[`actions`,n,r]);if(!$g(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${$g(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(`, `)})${vN(i)}`,line:c})},p=new Set(pg(n_(t,a).node)),m=(r,i)=>{!_N.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${vN(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 NF=`settings.`;function PF(e,t){return{...e,names:new Set([...e.names,...Object.keys(t).map(e=>NF+e)])}}function FF(e,t,n){let r=e=>`segments.${t}.settings.${e}`,i=(n,i)=>{e.issues.push({path:r(n),message:`${r(n)}: ${i}`,line:Y(e.source,[`segments`,t,`settings`,n])})},a=RF(n);for(let{setting:e,message:t}of a)i(e,t);if(!(a.length>0))for(let{setting:e,message:t}of Mg(n,LF(n)))i(e,`the defaults do not stand together: ${t}`)}function IF(e){return RF(e).length>0||Mg(e,LF(e)).length>0}function LF(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default]))}function RF(e){let t=t=>jg(zF(e,t))?.atLeast;return Object.keys(e).flatMap(n=>{let r=t(n);if(r===void 0)return[];if(r===n||jg(zF(e,r))===void 0)return[{setting:n,message:`atLeast "${r}" must name another range setting of this segment (its range settings: ${BF(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 zF(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function BF(e,t){return Object.entries(e).filter(([e,n])=>e!==t&&jg(n)!==void 0).map(([e])=>e)}function VF(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=Ag(a),s=`${r}: placement "${fg(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(`, `)})`:Ng(c,a)?void 0:`sets "${t}" to ${JSON.stringify(a)}${c.domain===`theme`?mm(a):``}, but it must be ${Lg(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])=>Ng(o[e],t))||IF(o)))for(let{message:t}of Mg(o,c))e.issues.push({path:r,message:`${s}: ${t}`,line:i})}function HF(e,t,n,r,i){n.kind===`template`&&GF(e,`${t}.template`,n.template,r,{segCtx:i}),wg(n)&&`key`in n.cache&&GF(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function UF(e,t,n,r,i){if(!(!wg(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:Y(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function WF(e,t,n,r){try{oO.parse(n)}catch(n){e.issues.push({path:t,message:`Template parse error in ${t}: ${n.message}`,line:r})}}function GF(e,t,n,r,i){for(let[a,o]of w_(n,r.helpers)){if(j_(a,r))continue;if(a.startsWith(NF)){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??Y(e.source,t.split(`.`))});continue}if(o!==null){KF(e,o,`Template references unknown variable ".${a}"${OF(a)}`);continue}let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,s=n!==void 0&&j_(n,r)?` (segment-local vars are namespaced — write ".${n}")`:OF(a);e.issues.push({path:t,message:`Template references unknown variable ".${a}"${s}`,line:i?.line??Y(e.source,t.split(`.`))})}}function KF(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:Y(e.source,[`helpers`,t])})}function qF(e,t,n,r,i){let a=n.set,o=CD(Sa[r].configKey),s=`${a} takes ${OE(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:Y(e.source,[`actions`,t,`min`])});return}let c=XF(n,i);if(c===YF){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:Y(e.source,[`actions`,t,`int`])});return}let l=c.filter(e=>!DE(o,e.value,i));if(l.length!==0){if(a===Sa.style.sessionKey&&(`from`in n&&n.from===`endcaps`||c.every(e=>Vm(e.value)))){let r=Sa.endcaps.sessionKey;e.issues.push(`to`in n?{path:`actions.${t}.to`,message:yF(`actions.${t}.to`,n.to,`set: "${r}", to`),line:Y(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:Y(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<=JF?r.join(`, `):`${r.slice(0,JF).join(`, `)} and ${r.length-JF} 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:Y(e.source,[`actions`,t,n])})}}}const JF=3,YF=Symbol(`any integer`);function XF(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?l_(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)}]:YF}function ZF(e,t){return Object.entries(e).filter(([e])=>t(e))}function QF(e,t,n,r){let i=Gj(t),a=c_(i);for(let[n,o]of ZF(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 ${d_(r,i)}`,line:Y(e.source,[`actions`,n,t])});continue}if(!(`set`in o))continue;Ta.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:Y(e.source,[`actions`,n,`set`])});let s=ka.get(o.set);s!==void 0&&qF(e,n,o,s,i)}for(let[n,i]of ZF(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&&OP(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:Y(e.source,[`actions`,n,`do`])})});for(let[n,i]of ZF(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=tO(r);if(o===null){let t=UD(r);e.issues.push({path:`actions.${n}.${a}`,message:t===void 0?`actions.${n}: "${r}" is not a config globals field (have: ${WD().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`:`actions.${n}: the globals field "${r}" was removed: ${t}`,line:Y(e.source,[`actions`,n,a])});continue}let s=jF.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:Y(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){MF(e,t,n,a,r,o.preset,i);continue}if(o.scope===`preset-globals`&&!$g(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: ${$g(t.presets).join(`, `)})`,line:Y(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${mm(o.theme)} (have: ${[...e.allowedPalettes].sort().join(`, `)})`,line:Y(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(`, `)})${vN(o.segment)}`,line:Y(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:Y(e.source,[`actions`,n,a])})}}for(let[i,a]of ZF(t.variables,r)){HF(e,`variables.${i}`,a,n);let t=DF(i);t!==void 0&&e.issues.push({path:`variables.${i}`,message:t,line:Y(e.source,[`variables`,i])})}for(let[i,a]of ZF(t.segments,r)){if(a.vars)for(let[t,r]of Object.entries(a.vars))HF(e,`segments.${i}.vars.${t}`,r,n,i);let r=Ag(a);FF(e,i,r);let o=PF(n,r);for(let n of[`template`,`bg`,`fg`,`when`]){let s=a[n];if(typeof s==`string`){GF(e,`segments.${i}.${n}`,s,o,{segCtx:i,settings:r});for(let{name:r,site:a,via:o}of O_(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){KF(e,o,`Template references unknown action "${r}"${s}`);continue}e.issues.push({path:`segments.${i}.${n}`,message:`${n} references unknown action "${r}"${s}`,line:Y(e.source,[`segments`,i,n])})}}}}for(let[i,a]of ZF(t.variables,r))UF(e,`variables.${i}`,a,n);for(let[i,a]of ZF(t.segments,r))if(a.vars)for(let[t,r]of Object.entries(a.vars))UF(e,`segments.${i}.vars.${t}`,r,n,i)}function $F(e,t,n=()=>!0){let{graph:r,nodeInfo:i}=eI(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:Y(e.source,a?.linePathParts??[`variables`,r])}),!0}if(t===0&&s(c))return!0}return a.set(t,2),o.pop(),!1}}function eI(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 w_(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),wg(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 tI(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?h.homedir()+e.slice(1):e}function nI(e,t){return l.resolve(e,tI(t))}function rI(e,t){return typeof t==`string`&&t!==``?nI(e,t):void 0}function iI(e){return`plugin ${e.path} was not loaded: ${e.reason}`}const aI=new Set([`data`,`segments`,`helpers`,`actions`]),oI=`plugin.json5`,sI=/^[a-z][a-z0-9_]*$/;function cI(e){let t=l.basename(l.dirname(e));return sI.test(t)?t:void 0}const lI=`plugins.`;function uI(e){return`${lI}${e}.data`}function dI(e){try{return{ok:!0,value:e()}}catch(e){return{ok:!1,reason:fI(e)}}}function fI(e){return e instanceof aE?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 pI(e,t){return e.map(e=>nI(l.dirname(t),e))}function mI(e,t,n,i){let a=new Map;return e.reduce((e,n)=>{let o=cI(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 ${oI}, and the folder's name is the plugin's: move this file to <dir>/<name>/${oI} and list that`;return s(t,o===void 0?e.config:_I(gI(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 ${sI}: 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=gI(e.config,o),d=dI(()=>{let a=r.readFileSync(n,`utf-8`),s=jM(CI(n,o,{source:a,json:yr.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,_I(u,o,f))},{config:n.config,rendering:n.rendering,loaded:[],dropped:[]})}function hI(e){let t=`${lI}${e}.`;return e=>e.startsWith(t)}function gI(e,t){let n=hI(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 _I(e,t,n){return{...e,variables:{...e.variables,[uI(t)]:{kind:`dropped`,reason:iI(n),definition:n.path}}}}function vI(e){return e.startsWith(`plugins.`)?e.slice(8).split(`.`)[0]:void 0}function yI(e,t){let n=new Set([...Object.keys(e.config.variables),...Object.keys(e.config.segments)].map(vI)),r=[...t,...e.dropped].filter(e=>e.plugin===void 0).map(e=>({definition:e.path,notice:iI(e)}));return t=>{let i=vI(t);if(i===void 0)return[];let a=e.config.variables[uI(i)];return a?.kind===`dropped`?[{definition:a.definition,notice:a.reason}]:n.has(i)?[]:r}}function bI(e,t){let n=$g(e.presets).flatMap(t=>[...gg(n_(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,xI(e,t.map(e=>e.notice),n.filter(t=>t.name===e))])),a=t=>{let n=vI(t),r=n===void 0?void 0:e.variables[uI(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=>O_(t,e.helpers).map(e=>e.name)),...c],e.actions),d=l(s.flatMap(t=>[...A_(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:`{{ .${uI(vI(e)??``)} }}`}]))},helpers:{...e.helpers,...Object.fromEntries(d.map(([e,t])=>[e,`{{ fail ${JSON.stringify(t.notice)} }}`]))}},reached:f}}function xI(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,SI(e,t)]));return{template:`{{ ${JSON.stringify(r)} }}`,bg:`error`,description:`stands in for a segment whose plugin did not load`,settings:a}}function SI(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 CI(e,t,{source:n,json:r},{checkout:i}){let a=[],o=()=>{throw new aE(e,a)};if(!RE(r))return a.push({path:``,message:`a plugin definition must be an object, got ${zE(r)}`}),o();for(let e of Object.keys(r))aI.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: ${[...aI].join(`, `)}`});let s=kI(r.data,e,i,a);if(RE(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(_m()),groups:[]},l=HM(c,`data`,{[uI(t)]:{kind:`file`,path:s,parse:{json:!0},cache:{watch_file:s},default:{}}});for(let[e,t]of Object.entries(r.segments))if(!(!RE(t)||!RE(t.vars)))for(let[n,r]of Object.entries(t.vars)){let t=RE(r)?r.kind:void 0;typeof t!=`string`||t===`state`||a.push({path:`segments.${e}.vars.${n}`,message:`a plugin segment's vars may declare only state variables (kind: "state"), never a source such as ${JSON.stringify(t)}: a plugin's only source is its data file`})}let u={variables:l,segments:TI(t,DI(t,IN(c,r.segments,new Set))),helpers:TI(t,wF(c,r.helpers)),actions:TI(t,OI(t,kP(c,r.actions)))};for(let[e,t]of wI(u))try{oO.parse(t)}catch(t){a.push({path:e,message:`Template parse error in ${e}: ${t.message}`})}return a.length>0&&o(),u}function*wI(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 TI(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[`${lI}${e}.${t}`,n]))}function EI(e,t){return`${lI}${e}.${t}`}function DI(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,n.vars===void 0?n:{...n,vars:Object.fromEntries(Object.entries(n.vars).map(([t,n])=>[t,n.kind===`state`?{...n,key:EI(e,n.key)}:n]))}]))}function OI(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[t,`set`in n?{...n,set:EI(e,n.set)}:n]))}function kI(e,t,n,r){if(typeof e==`string`&&e!==``)return nI(l.dirname(t),e);if(RE(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(RE(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 AI(e){let t=[...[...(process.env.XDG_DATA_DIRS||NI()).split(`:`).filter(e=>e!==``)].reverse().map(e=>l.join(e,`cc-candybar`,`plugins`)),jI(),...e===null?[]:[l.join(e,MI)]];return t.filter((e,n)=>t.lastIndexOf(e)===n)}function jI(){let e=process.env.XDG_DATA_HOME||l.join(h.homedir(),`.local`,`share`);return l.join(e,`cc-candybar`,`plugins`)}const MI=l.join(`.cc-candybar`,`plugins`);function NI(){let e=`/usr/local/share:/usr/share`;return process.platform===`darwin`?`${l.join(process.env.HOMEBREW_PREFIX||`/opt/homebrew`,`share`)}:${e}`:e}function PI(e){let t=AI(e),n=new Map,r=[],i=[];for(let e of t){let t=FI(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,oI));for(let n of t.files)i.push({path:l.join(e,n),plugin:void 0,reason:`a plugin is a folder holding its ${oI}: move this file to ${l.join(e,`<name>`,oI)}`})}return{roots:t,definitions:[...n.values()],unchecked:r,strays:i}}function FI(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()||II(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 II(e,t){if(!t.isSymbolicLink())return!1;try{return r.statSync(l.join(e,t.name)).isDirectory()}catch{return!0}}const LI=[`json5`,`json`];function RI(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function zI(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?LI.map(t=>l.join(e,`.cc-candybar.${t}`)):[],...LI.map(e=>l.join(r,`.cc-candybar.${e}`)),...LI.map(e=>`${BI()}.${e}`)])]}function BI(){let e=process.env.XDG_CONFIG_HOME??l.join(h.homedir(),`.config`);return l.join(e,`cc-candybar`,`config`)}function VI(e,t,n){let i=[],a=new Map;for(let o of zI(e,t,n)){let e=RI(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:HI(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 HI(e){let t=BI();return e.find(e=>LI.some(n=>e===`${t}.${n}`))??`${t}.${LI[0]}`}function UI(e,t,n){let r=VI(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 WI(e){return GI(e).join(`
|
|
162
|
+
`)||null}function GI(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 KI(e,t){let n=zI(e,t).filter(e=>RI(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 qI(e,t,n,i){return e===null?{...rL,config:jM(rL.raw,t)}:YI(e,r.readFileSync(e,`utf-8`),t,n,i)}const JI={projectDir:null,checkout:null,beneath:{dropped:[],rendering:new Map}};function YI(e,t,n,r,i){let a=oL(e,t,i,(t,a)=>{let o=mI(pI(t,e),r,{config:n,rendering:r.beneath.rendering},(t,n,r)=>tL(t,n,r,e,i)),s=yI(o,r.beneath.dropped);return{inherited:new Set([...FN(o.config),...a.filter(e=>s(e).length>0)]),layer:{plugins:o,owning:s}}}),{plugins:o,owning:s}=a.layer,c=bI(jM(a.raw,o.config),s);return{source:t,raw:a.raw,warnings:[...a.warnings,...o.dropped.map(iI)],plugins:{loaded:o.loaded,dropped:o.dropped,reached:c.reached,rendering:o.rendering},config:c.config}}const XI=new WeakMap;function ZI(e,t,n,r){let i=JSON.stringify([[...r??[]].sort(),e.map(e=>[e,$I(e)])]),a=XI.get(n)??new Map;XI.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=mI(e,t,{config:n,rendering:new Map},(e,t,n)=>tL(e,t,n,`<installed plugins>`,r));return a.set(o,{key:i,layer:c}),c}function QI(e,t,n){return mI(e,{projectDir:null,checkout:n},{config:t,rendering:new Map},(e,t,n)=>tL(e,t,n,`<plugin install>`,void 0)).dropped}function $I(e){try{let t=r.statSync(e);return`${t.ino}:${t.size}:${t.mtimeMs}`}catch(e){return e.code??`unreadable`}}function eL(e,t,n,i,a=e=>r.readFileSync(e,`utf-8`),o){let s={projectDir:i.projectDir,checkout:i.cwd===null?null:Vw(i.cwd)},c=PI(s.projectDir),l=ZI(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=YI(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(iI));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:iL(qI(null,d,JI),`<default>`,o)};try{return{layers:f,base:d,installed:_,config:iL(v,v.path,o)}}catch(e){for(let e of f.slice(0,-1))n.entered(e.path),iL(e,e.path,o);throw n.entered(v.path),e}}function tL(e,t,n,r,i){if(n){iL(nL(e),r,i);return}let a=hI(t),o=[],s={source:``,issues:o,allowedPalettes:new Set,groups:[]};if(QF(s,e,M_(e),a),$F(s,e,a),o.length>0)throw new aE(r,o)}function nL(e){return{config:e,raw:{root:e.root,presets:e.presets},source:``}}const rL={raw:{},source:``,warnings:[],plugins:{loaded:[],dropped:[],reached:new Set,rendering:new Map}};function iL({config:e,raw:t,source:n},r=`<config>`,i=new Set(_m())){let a=[],o={source:n,issues:a,allowedPalettes:i,groups:[]};if(AF(o,e,t),$F(o,e),a.length>0)throw new aE(r,a);let s=TP(e,a);if(a.length>0)throw new aE(r,a);return lM(kj(s))}function aL(e,t,n=new Set(_m()),r=sL){return oL(e,t,n,()=>({inherited:r,layer:null})).raw}function oL(e,t,n,r){let i=cL(e,t),a=cE(e,t),o=a===null?[]:[a],s=[],c={source:t,issues:s,allowedPalettes:n??new Set(_m()),groups:[]};if(!RE(i))throw new aE(e,[{path:``,message:`Config root must be an object, got ${zE(i)}`}],o);let{inherited:l,layer:u}=r(i.plugins===void 0?[]:dL({...c,issues:[]},i.plugins)??[],RE(i.segments)?Object.keys(i.segments):[]),d=lL(c,i,l);if(s.length>0)throw new aE(e,s,o);return{raw:d,warnings:o,layer:u}}const sL=new Set;function cL(e,t){try{return yr.default.parse(t)}catch(t){let n=t;throw new aE(e,[{path:``,message:`JSON5 syntax error: ${n.message}`,line:n.lineNumber,col:n.columnNumber}])}}function lL(e,t,n){for(let n of Object.keys(t))uL.has(n)||e.issues.push({path:n,message:`Unknown top-level key "${n}". Expected one of: ${[...uL].join(`, `)}`,line:Y(e.source,[n])});let r={};return t.globals!==void 0&&(r.globals=LD(e,`globals`,t.globals)),t.variables!==void 0&&(r.variables=HM(e,`variables`,t.variables)),t.segments!==void 0&&(r.segments=IN(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.
|
|
163
163
|
Replace: layout: [["seg1", "seg2"], ["seg3"]]
|
|
164
164
|
With: root: { v: [{ h: ["seg1", "seg2"] }, "seg3"] }
|
|
165
|
-
Single-row example: root: { h: ["seg1", "seg2"] }`,line:J(e.source,[`layout`])}),t.root!==void 0&&(r.root=aP(e,`root`,t.root)),t.actions!==void 0&&(r.actions=kP(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=xF(e,t.styles)),t.themeDefaults!==void 0&&(r.themeDefaults=ID(e,t.themeDefaults)),t.presets!==void 0&&(r.presets=CF(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=BD(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=wF(e,t.helpers)),t.plugins!==void 0&&(r.plugins=dL(e,t.plugins)),pP(e,r),CP(e,r),yO(e,r),_E(e,r,Y,`the global settings menu`),r}const uL=new Set([`globals`,`variables`,`segments`,`layout`,`looks`,`root`,`actions`,`styles`,`themeDefaults`,`presets`,`editGlobals`,`helpers`,`plugins`]);function dL(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 fL={},pL=Vk(`commands.`),mL=qk(`autocompact.`,e=>`{{ template "formatTokenCount" ${e} }}`),hL=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,gL=`{{ \$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 (${hL}) (basename .project_dir) (ne (${hL}) "") }}{{ end }}{{ end }}{{ action "copyDir" (abbreviatePath \$dir) }}`,_L=`{{ ${PO} }}`,vL={min:0,max:100,step:5},yL={warnAt:{label:`warning at %`,domain:vL,default:50},errorAt:{label:`error at %`,domain:{...vL,atLeast:`warnAt`},default:80}};function bL(e){return{budget:{label:`budget $`,domain:{min:0,max:1e4,step:5},default:e},warnAt:{label:`warning at %`,domain:vL,default:80}}}const xL={globals:{palette:`tokyo-night`},variables:{...pL.variables,...tE,current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},"effort.level":{kind:`input`,path:`effort.level`,default:``},"effort.glyphs":{kind:`literal`,value:`? `},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:gL},model:{group:`model-context`,description:`The active model's display name, followed by the effort gauge (a chevron ladder, climbing on a bubble at max) when an effort level is set.`,template:`✱ {{ formatModelName .model.display_name }}{{ if ne .effort.level "" }} {{ template "effortGauge" . }}{{ end }}`,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:_L,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:Ak(``).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:pL.template,when:pL.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:bL(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:bL(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:yL,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:yL,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) ${Vp} }}`,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:mL.template,bg:mL.bg,when:mL.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:{...Ak(``).actions,...pL.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`},...mL.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:fL,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:{effortGauge:`{{ \$ord := default 0 (get (dict "low" 1 "medium" 2 "high" 3 "xhigh" 4 "max" 5) .effort.level) }}{{ \$glyphs := compact (splitList " " .effort.glyphs) }}{{ $bubble := readableOn (mix (bgOf) (color "accent") 40) (bgOf) 1.08 }}{{ $climbing := readableOn (stepped 1 (color "primary") 1 (color "secondary") 1 (color "accent")) $bubble ${Vp} }}{{ \$climb := frames 1 (index \$glyphs 1) 1 (index \$glyphs 3) 1 (index \$glyphs 4) }}{{ if eq \$ord 5 }}{{ fg \$bubble "" }}{{ bg \$bubble (fg \$climbing \$climb) }}{{ fg \$bubble "" }}{{ else }}{{ fg (ramp $ord "step" 0 (${PO}) 2 (readableOn (color "accent") (bgOf) ${Vp})) (index $glyphs $ord) }}{{ end }}`,gitPaint:`{{ fg (readableOn (color .color) (bgOf) ${Vp}) .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:Jk(`.`),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 .)) }}`}},SL=new Set([xL.globals.palette,...Object.keys(xL.themeDefaults),...Object.values(xL.segments).map(e=>e.palette)].filter(e=>e!==void 0)),CL=jM(aL(`<default>`,JSON.stringify(xL),SL),xL),wL=e_(CL.presets);function TL(e){return wL.includes(e)}const EL=Object.freeze({});function DL(e,t){return e.kind===`decided`?t[e.name]??EL:EL}function OL(e,t){return{...e,...Object.fromEntries(Sg.map(n=>[n,e[n]??t[n]]))}}function kL(e){if(!e)return``;try{return AL(s(e))}catch{return``}}function AL(e){return`${e.mtimeMs}:${e.size}`}const jL=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 ML(e){return((...t)=>jL.run(()=>e(...t)))}const NL=ML(E),PL=ML(oe),FL=ML(se);async function IL(e,t){return jL.run(async()=>{let n=null;try{n=await T(e,`r`);let r=await n.stat(),{size:i,ino:a}=r,o=AL(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 LL(e,t){return jL.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 RL=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function zL(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 BL(e){let t=await VL(e);return t.kind===`ok`?F(Math.floor((t.value+36e5)/1e3)):t}async function VL(e){for(let t of[65536,1048576]){let n=await LL(e,t);if(n.kind!==`ok`)return n;let r=HL(n.value.buf,n.value.fromStart);if(r!=null)return F(r);if(n.value.fromStart)return I}return I}function HL(e,t){let n=e.toString(`utf8`).split(`
|
|
165
|
+
Single-row example: root: { h: ["seg1", "seg2"] }`,line:Y(e.source,[`layout`])}),t.root!==void 0&&(r.root=aP(e,`root`,t.root)),t.actions!==void 0&&(r.actions=kP(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:Y(e.source,[`looks`])}),t.styles!==void 0&&(r.styles=xF(e,t.styles)),t.themeDefaults!==void 0&&(r.themeDefaults=ID(e,t.themeDefaults)),t.presets!==void 0&&(r.presets=CF(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=BD(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=wF(e,t.helpers)),t.plugins!==void 0&&(r.plugins=dL(e,t.plugins)),pP(e,r),CP(e,r),yO(e,r),gE(e,r,X,`the global settings menu`),r}const uL=new Set([`globals`,`variables`,`segments`,`layout`,`looks`,`root`,`actions`,`styles`,`themeDefaults`,`presets`,`editGlobals`,`helpers`,`plugins`]);function dL(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 ${zE(t)}`,line:Y(e.source,[`plugins`])})}const fL={},pL=Vk(`commands.`),mL=qk(`autocompact.`,e=>`{{ template "formatTokenCount" ${e} }}`),hL=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,gL=`{{ \$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 (${hL}) (basename .project_dir) (ne (${hL}) "") }}{{ end }}{{ end }}{{ action "copyDir" (abbreviatePath \$dir) }}`,_L=`{{ ${PO} }}`,vL={min:0,max:100,step:5},yL={warnAt:{label:`warning at %`,domain:vL,default:50},errorAt:{label:`error at %`,domain:{...vL,atLeast:`warnAt`},default:80}};function bL(e){return{budget:{label:`budget $`,domain:{min:0,max:1e4,step:5},default:e},warnAt:{label:`warning at %`,domain:vL,default:80}}}const xL={globals:{palette:`tokyo-night`},variables:{...pL.variables,...eE,current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},"effort.level":{kind:`input`,path:`effort.level`,default:``},"effort.glyphs":{kind:`literal`,value:`? `},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:gL},model:{group:`model-context`,description:`The active model's display name, followed by the effort gauge (a chevron ladder, climbing on a bubble at max) when an effort level is set.`,template:`✱ {{ formatModelName .model.display_name }}{{ if ne .effort.level "" }} {{ template "effortGauge" . }}{{ end }}`,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:_L,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:Ak(``).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:pL.template,when:pL.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:bL(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:bL(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:yL,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:yL,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) ${Bp} }}`,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:mL.template,bg:mL.bg,when:mL.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:{...Ak(``).actions,...pL.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`},...mL.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:fL,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:{effortGauge:`{{ \$ord := default 0 (get (dict "low" 1 "medium" 2 "high" 3 "xhigh" 4 "max" 5) .effort.level) }}{{ \$glyphs := compact (splitList " " .effort.glyphs) }}{{ $bubble := readableOn (mix (bgOf) (color "accent") 40) (bgOf) 1.08 }}{{ $climbing := readableOn (stepped 1 (color "primary") 1 (color "secondary") 1 (color "accent")) $bubble ${Bp} }}{{ \$climb := frames 1 (index \$glyphs 1) 1 (index \$glyphs 3) 1 (index \$glyphs 4) }}{{ if eq \$ord 5 }}{{ fg \$bubble "" }}{{ bg \$bubble (fg \$climbing \$climb) }}{{ fg \$bubble "" }}{{ else }}{{ fg (ramp $ord "step" 0 (${PO}) 2 (readableOn (color "accent") (bgOf) ${Bp})) (index $glyphs $ord) }}{{ end }}`,gitPaint:`{{ fg (readableOn (color .color) (bgOf) ${Bp}) .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:Jk(`.`),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 .)) }}`}},SL=new Set([xL.globals.palette,...Object.keys(xL.themeDefaults),...Object.values(xL.segments).map(e=>e.palette)].filter(e=>e!==void 0)),CL=jM(aL(`<default>`,JSON.stringify(xL),SL),xL),wL=$g(CL.presets);function TL(e){return wL.includes(e)}const EL=Object.freeze({});function DL(e,t){return e.kind===`decided`?t[e.name]??EL:EL}function OL(e,t){return{...e,...Object.fromEntries(xg.map(n=>[n,e[n]??t[n]]))}}function kL(e){if(!e)return``;try{return AL(s(e))}catch{return``}}function AL(e){return`${e.mtimeMs}:${e.size}`}const jL=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 ML(e){return((...t)=>jL.run(()=>e(...t)))}const NL=ML(E),PL=ML(oe),FL=ML(se);async function IL(e,t){return jL.run(async()=>{let n=null;try{n=await T(e,`r`);let r=await n.stat(),{size:i,ino:a}=r,o=AL(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 LL(e,t){return jL.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 RL=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function zL(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 BL(e){let t=await VL(e);return t.kind===`ok`?F(Math.floor((t.value+36e5)/1e3)):t}async function VL(e){for(let t of[65536,1048576]){let n=await LL(e,t);if(n.kind!==`ok`)return n;let r=HL(n.value.buf,n.value.fromStart);if(r!=null)return F(r);if(n.value.fromStart)return I}return I}function HL(e,t){let n=e.toString(`utf8`).split(`
|
|
166
166
|
`),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!RL.test(t))continue;let r=zL(t);if(r!=null)return r}return null}function UL(e,t){return{...e,claudeConfigDir:di(t.claudeConfigDir),env:t.mementoEnv}}const WL=l.join(`lib`,`ceiling_config.py`),GL=l.join(`skills`,`ceiling`,`bin`,`ceiling`);function KL(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 qL(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 JL(e,t){if(!r.existsSync(e))return I;let n;try{n=KL(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=qL([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=[WL,GL].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 YL(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 XL(e){return e.stderr.trim()||e.error||`${e.reason}${e.exitCode===null?``:` (exit ${e.exitCode})`}`}function ZL(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 QL(e,t){let n=await Ne({bin:`python3`,args:[`-c`,`
|
|
167
167
|
import json, math, sys
|
|
168
168
|
sys.path.insert(0, sys.argv[1])
|
|
@@ -172,19 +172,19 @@ ceiling = in_force(directory, anchored(sys.argv[3]))
|
|
|
172
172
|
layer = ceiling_in(directory / CONFIG_NAME)
|
|
173
173
|
print(json.dumps({"ceiling": "off" if ceiling == math.inf else ceiling,
|
|
174
174
|
"session": layer.text if layer else None}))
|
|
175
|
-
`,l.join(e,`lib`),t.sessionId,t.cwd],env:YL(t),timeoutMs:3e3,category:`memento.read`});return n.ok?ZL(n.stdout):L(XL(n))}function $L(e,t,n){let r=O({bin:l.join(e,GL),args:n.kind===`set`?[`set`,`session`,n.to]:[`clear`,`session`],env:YL(t),timeoutMs:5e3,category:`memento.move`});if(!r.ok)throw Error(XL(r))}function eR(){return{locate:e=>JL(pi(e.claudeConfigDir),e.projectDir),read:QL,move:$L}}function tR(e,t,n){let r=n===void 0?``:`CLAUDE_CONFIG_DIR=${mr(n)} `,i=e.added_dirs.map(e=>` --add-dir ${mr(e)}`).join(``);return`cd ${mr(e.project_dir)} && ${r}claude --resume ${mr(t)}${i}`}function nR(e,t,n){let r=
|
|
176
|
-
`).at(-1).trim();function wR(e){switch(e.kind){case`absent`:return;case`failed`:return{error:CR(e.reason)};case`ok`:{let{ceiling:t,session:n}=e.value;return{ceiling:t===`off`?0:t,off:t===`off`,session:n??``}}}}function TR(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=ER(e.running),i=ER(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 ER(e){return e.length===0?void 0:e.map(e=>`${e.name}:${e.count}`).join(`,`)}function DR(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 OR(e){return e===void 0||e.length===0||l.sep!==`\\`?e:e.replace(/\\/g,`/`)}function kR(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`,
|
|
177
|
-
`),c=qn([{verb:Tn,args:[s]}]),l=t.kind===`running`?Lh(`[${i.busy}]`,c):Lh(`[${i.act}]`,qn([{verb:Rn,args:[n.sessionId]}]));return[{severity:Ih,message:s,lines:[[Lh(a,c),l,Lh(`[dismiss]`,qn([{verb:bn,args:[n.sessionId,_z,r]}])),Lh(`[disable]`,qn([{verb:En,args:[n.sessionId,vz,`false`]},{verb:bn,args:[n.sessionId,yz,`false`]}]))],...o.map(e=>[Lh(e,c)])]}]}function Ez(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 Dz(e){switch(e.kind){case`current`:return[`info`,`build: current ${xz(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${xz(e.source)}, running ${xz(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function Oz(e){switch(e.kind){case`current`:return[`info`,`release: current ${xi(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${xi(e.latest)}, running ${xi(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${xi(e.installed)}, latest ${xi(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function kz(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const Az=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function jz(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=Az(e.stderr)??e.error??Az(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function Mz(){let e=[wM(vz,[`false`]),uz(yz,[`false`]),uz(_z,[])];return()=>e.forEach(e=>e())}function Nz(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=Cz,d=null,f=kz(s),p=kz(s),m=()=>Ez(c,l);function h(){let e=m(),t=e===null?null:bz(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:uz(_z,[t])})}function g(){c=eg(t,Zh),f(Dz(c)),h()}async function _(){l=Ti(Dt,await wi(Ci,a,i)),p(Oz(l)),h()}return{arm(){Mz(),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>Tz(m(),u,e),act(){let e=m();if(e===null)throw new K(`apply-update: nothing newer is known to apply`);let t=Sz(e);if(u.kind===`running`)throw new K(`apply-update: already ${t.busy}`);u=wz,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),Ne({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=Cz,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=jz(n);u={kind:`failed`,identity:bz(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}var Pz=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 fe(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 fe(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 fe(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 Fz={"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 Iz=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 Pz.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await Pz.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new ee(this.GITHUB_PRICING_URL),n=de({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(Fz).length} models`),this.executionCache=Fz,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(Fz).length} models`),Fz)}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 Lz=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function Rz(e){if(typeof e==`string`)return Lz.exec(e)?.[1]}function zz(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 Bz(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 Vz(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=zz(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`?Rz(Bz(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 Hz(e){if(e!==void 0)return[e];let t=g();return[p(t,`.config`,`claude`),p(t,`.claude`)].filter(e=>a(e))}async function Uz(e){let t=[];for(let n of e){let e=p(n,`projects`);if(a(e))try{let n=await NL(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 Wz(e,t,n){let r=[],i=p(t,e,`subagents`);try{let t=(await NL(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 PL(t,`utf-8`)).split(`
|
|
175
|
+
`,l.join(e,`lib`),t.sessionId,t.cwd],env:YL(t),timeoutMs:3e3,category:`memento.read`});return n.ok?ZL(n.stdout):L(XL(n))}function $L(e,t,n){let r=O({bin:l.join(e,GL),args:n.kind===`set`?[`set`,`session`,n.to]:[`clear`,`session`],env:YL(t),timeoutMs:5e3,category:`memento.move`});if(!r.ok)throw Error(XL(r))}function eR(){return{locate:e=>JL(pi(e.claudeConfigDir),e.projectDir),read:QL,move:$L}}function tR(e,t,n){let r=n===void 0?``:`CLAUDE_CONFIG_DIR=${mr(n)} `,i=e.added_dirs.map(e=>` --add-dir ${mr(e)}`).join(``);return`cd ${mr(e.project_dir)} && ${r}claude --resume ${mr(t)}${i}`}function nR(e,t,n){let r=e_(t(`preset`),e.globals.preset,e.presets),i=r_(e,r),a=t(`edit.mode`)===`arrange`?e.editGlobals:{},o=cg(a.palette,t(`theme`),i.palette),s=OL(i,DL(o,e.themeDefaults));return{preset:r,presetCustomized:n(r),theme:o,style:km(a.style,t(`style`),s.style,e.styles),effect:Lm(a.effect,t(`effect`),s.effect),endcaps:Hm(a.endcaps,t(`endcaps`),s.endcaps),variation:qm(a.variation,t(`variation`),s.variation),shade:Xm(a.shade,t(`shade`),s.shade),separator:a.default_separator??s.default_separator,autoWrap:ih(a.autoWrap,t(`autoWrap`),s.autoWrap),padding:sh(a.padding,t(`padding`),s.padding),updateNotice:ah(a.updateNotice,t(`updateNotice`),s.updateNotice),transitions:oh(a.transitions,t(`transitions`),s.transitions),colorCompatibility:a.colorCompatibility??s.colorCompatibility??`truecolor`}}function rR(e,t){return{endcaps:e.endcaps,separator:e.separator,colorCompatibility:e.colorCompatibility,wrap:e.autoWrap,padding:e.padding,width:t}}function iR(e){return{theme:e.theme,style:e.style,effect:e.effect,preset:e.preset,variation:e.variation,shade:e.shade,transitions:e.transitions}}function aR(e){return{preset:{effective:e.preset,customized:e.presetCustomized,bundled:TL(e.preset)},endcaps:{effective:e.endcaps},variation:{effective:e.variation},shade:{effective:e.shade},colorCompatibility:{effective:e.colorCompatibility},autoWrap:{effective:e.autoWrap},padding:{effective:e.padding},updateNotice:{effective:e.updateNotice},transitions:{effective:e.transitions}}}const oR={prNumber:!0,prState:!0,prUrl:!0,prError:!0,prEarlier:!0};function sR(e){return e?.prState===void 0?e?.prError===void 0?e?.prEarlier===void 0?`-`:`earlier-${e.prEarlier}`:`failed`:e.prState}const cR=10*1e3;function lR(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 uR(e,t){if(!(t<60))return e*3600/t}function dR(e,t,n,r){let i=r-t;if(i<50||i>cR)return;let a=n-e;if(!(a<=0))return a*1e3/i}function fR(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=dR(t.input,t.atMs,n.input,n.atMs),i=dR(t.output,t.atMs,n.output,n.atMs),a=dR(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 pR(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>cR)continue;let o=dR(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function mR(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function hR(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`,()=>mR(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 gR(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=>w_(t,e.helpers).keys(),o=r_(e,t);for(let e of Sm){let t=o[e];if(Cm(t))for(let e of a(t))r.push(e)}for(let n of gg(n_(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 vR(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 _R(e){let t=new Map;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=gR(e,n);return t.set(n,i),i}}function vR(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 yR(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function bR(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(oR).some(e=>t(`git.${e}`))&&{showPullRequest:!0}}}async function xR(e,t,n,r,i,a,o,{configPath:s,...c}){let l=e=>yR(i,e),u=AT(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,bR(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`),()=>BL(e.transcript_path)),f(`speed`,l(`speed`),()=>n.usageStore.observeSpeed(e.session_id,e.transcript_path,u)),f(`memento`,l(`memento`),()=>n.mementoProvider.getCeiling(UL({sessionId:e.session_id,projectDir:e.workspace?.project_dir??``,cwd:r??e.workspace?.current_dir??``},o))),f(`autocompact`,l(`autocompact`),()=>Promise.resolve(n.autoCompact(fi(di(o.claudeConfigDir)))))]),ee=[],te=e=>{if(e.kind===`failed`){ee.push(e.reason);return}return e.kind===`ok`?e.value:void 0},ne=kR(p,u);ee.push(...ne.failures);let re=hR(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=wR(S);S.kind===`failed`&&ee.push(`memento: ${S.reason}`);let le=SR(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?lR(ue.used_percentage,ue.resets_at,18e6,u):void 0,pe=de?lR(de.used_percentage,de.resets_at,6048e5,u):void 0,me=ie?.session.cost,he=T?.sessionDuration,ge=l(`burn`)&&me!=null&&he!=null?uR(me,he):void 0,_e=te(x),ve=_e===void 0?void 0:fR(_e),ye=_e===void 0?void 0:pR(_e),be=ve!==void 0||ye!==void 0?{...ve,...ye!==void 0&&{history:ye}}:void 0,xe=OR(process.env.HOME??process.env.USERPROFILE),Se=e.workspace?{...e.workspace,current_dir:OR(e.workspace.current_dir)??``,project_dir:OR(e.workspace.project_dir)??``,added_dirs:(e.workspace.added_dirs??[]).map(e=>OR(e)??e)}:e.workspace,D=ie===void 0?void 0:DR({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:DR({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:TR(oe);return{...e,...Se!==void 0&&{workspace:Se},...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,...aR(a),history:n.history(e.session_id),navigation:{back:n.navigation(e.session_id)},...c,...s!==null&&{configPath:s},resumeCommand:tR(Se,e.session_id,o.claudeConfigDir),...D!==void 0&&{session:D},...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 SR(e,t){switch(e.kind){case`absent`:return;case`failed`:return{error:e.reason};case`ok`:return Kk(e.value,t)}}const CR=e=>e.trim().split(`
|
|
176
|
+
`).at(-1).trim();function wR(e){switch(e.kind){case`absent`:return;case`failed`:return{error:CR(e.reason)};case`ok`:{let{ceiling:t,session:n}=e.value;return{ceiling:t===`off`?0:t,off:t===`off`,session:n??``}}}}function TR(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=ER(e.running),i=ER(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 ER(e){return e.length===0?void 0:e.map(e=>`${e.name}:${e.count}`).join(`,`)}function DR(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 OR(e){return e===void 0||e.length===0||l.sep!==`\\`?e:e.replace(/\\/g,`/`)}function kR(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`,Hw(n.upstream,n.aheadBehind)),p=i(`repoName`,n.repoName),m=i(`repoUrl`,n.repoUrl),h=n.pullRequest===void 0?void 0:Uw(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 AR={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?Zm:Qm,autoWrap:e=>e.autoWrap?Zm:Qm,padding:e=>String(e.padding),updateNotice:e=>e.updateNotice?Zm:Qm},jR=Object.entries(Sa),MR=new Set(Ca.map(e=>e.sessionKey)),NR=()=>!1;function PR(e,t){return nR(e,e=>MR.has(e)?t(e):null,NR)}const FR=[`preset`,`theme`];function IR(e,t,n){let r=new Set(FR.slice(0,n).map(e=>Sa[e].sessionKey));return nR(e,e=>r.has(e)?t(e):null,NR)}function LR(e,t){let n=Array.from({length:FR.length+1},(n,r)=>IR(e,t,r));return e=>{let t=FR.indexOf(e);return n[t===-1?FR.length:t]}}function RR(e,t,n,r){return e.flatMap(([e,i])=>{let a=AR[e](t);return a===null||a===AR[e](n(e))?[]:[{...i,value:a,target:r(i)}]})}function zR(e,t,n){return AR[n](PR(e,t))}function BR(e,t){let n=PR(e,t);return RR(jR,n,LR(e,t),t=>VR(e,n.preset,t.configKey))}function VR(e,t,n){return n in(t_(e.presets,t).globals??{})?eO(t,n):n}function HR(e,t,n){let r=e_(t(Sa.preset.sessionKey),e.globals.preset,e.presets),i=tO(n);return{key:i?.scope===`globals`?VR(e,r,i.field):n,globals:r_(e,r)}}function UR(e,t){let{preset:n}=PR(e,t);return KR(e,n).flatMap(({id:e,setting:r,key:i,decl:a,saved:o})=>{let s=t(i),c=s===null?void 0:Fg(a,s);return c===void 0||Pg(c)===Pg(o)?[]:[{preset:n,id:e,setting:r,key:i,value:c}]})}function WR(e,t,n){let r=new Map(n.map(e=>[e.key,e.value]));return $g(e.presets).flatMap(n=>{let i=KR(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 Mg(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:Fg(e.decl,n);return[e.setting,i??e.saved]}))).map(({message:t})=>`placement "${e}": ${t}`)})})}const GR=new WeakMap;function KR(e,t){let n=GR.get(e)??new Map;GR.set(e,n);let r=n.get(t);if(r!==void 0)return r;let i=[...gg(n_(e,t).node)].flatMap(t=>t.kind!==`segment`||t.drafts===void 0?[]:Object.entries(t.drafts).map(([n,{id:r,key:i}])=>{let a=Ag(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 qR(e,t){let n=PR(e,t);return{from:n.preset,globals:t_(e.presets,n.preset).globals??{},picks:RR(jR.filter(([e])=>e!==`preset`),n,LR(e,t),e=>e.configKey),placements:UR(e,t)}}function JR(e,t){return nR({...e,globals:{palette:t},presets:{}},()=>null,NR)}function YR(e,t){let n=PR(e,t),r=AR.theme(n);if(r===null)return{kind:`rule`};let i=JR(e,r),a=r_(e,n.preset),o=Object.fromEntries(xg.map(e=>[e,AR[e](a[e]===void 0?n:i)]));return{kind:`look`,theme:r,look:o,differs:xg.some(e=>o[e]!==AR[e](i))}}function XR(e){return{sessionKeys:Ca.filter(t=>t.configKey===e).map(e=>e.sessionKey),fileKeys:[e,...MD(e)?wL.map(t=>eO(t,e)):[],...$D(e)?_m().map(t=>QD(t,e)):[]]}}function ZR(e){return new Set(Ca.map(e=>e.configKey).filter(t=>XR(t).fileKeys.some(t=>ez(e,$R(t)))))}function QR(e,t,n){let r=BR(e,n),i=new Set(r.map(e=>e.configKey)),a=Oa(e=>i.has(Sa[e].configKey)||t.has(Sa[e].configKey)),o=YR(e,n);return{unsaved:r.length+UR(e,n).length,resettable:a,themeDefault:o.kind===`look`&&o.differs?{differs:!0,theme:o.theme}:{differs:!1}}}function $R(e){let t=tO(e);if(t===null||t.scope===`preset-root`)throw Error(`reset layer "${e}" is not a value path`);return nO(t)}function ez(e,t){let[n,...r]=t;return n===void 0?e!==void 0:typeof e==`object`&&!!e&&ez(e[n],r)}const tz=_m(),nz=new Set(tz),rz=new Set(Rm),iz=e=>e?nz.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${tz.join(`, `)})`}:{ok:!1,reason:`theme name is required`},az=e=>e?rz.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown endcaps "${e}" (have: ${Rm.join(`, `)})`}:{ok:!1,reason:`endcaps name is required`},oz=new Set([`1`,`true`]),sz=new Set([`0`,`false`]),cz={endcaps:az,theme:iz,"toolbar-expanded":e=>oz.has(e)?{ok:!0,value:`1`}:sz.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}},lz=SM(cz,`state`,gz);function uz(e,t){return lz.register(e,t)}function dz(e){return lz.gateFor(e)}function fz(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:l_(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 pz(e){return e.filter(e=>e.spec.kind!==`allow-list`||!Object.hasOwn(cz,e.key))}function mz(e,t,n){let r=ka.get(n);if(r!==void 0)return zR(e,t,r);for(let[,t]of Eg(e))if(t.key===n)return t.default??null;return null}function hz(e){let t=Gj(e);return pz(Object.values(e.actions).flatMap(e=>fz(e,t)))}function gz(e){return bM(hz(e))}const _z=`update.dismissed`,vz=`updateNotice`,yz=Sa.updateNotice.sessionKey;function bz(e){return e.kind===`source`?e.newer.digest:xi(e.newer)}const xz=e=>`${e.version} [${Jh(e.digest)}]`;function Sz(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:xz(e.newer),running:xz(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:xi(e.newer),running:xi(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${Ci}@${xi(e.newer)}`,`install`]}}}}const Cz={kind:`idle`},wz={kind:`running`};function Tz(e,t,n){if(e===null)return[];let r=bz(e);if(!n.enabled||n.dismissed===r)return[];let i=Sz(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(`
|
|
177
|
+
`),c=qn([{verb:Tn,args:[s]}]),l=t.kind===`running`?Ih(`[${i.busy}]`,c):Ih(`[${i.act}]`,qn([{verb:Rn,args:[n.sessionId]}]));return[{severity:Fh,message:s,lines:[[Ih(a,c),l,Ih(`[dismiss]`,qn([{verb:bn,args:[n.sessionId,_z,r]}])),Ih(`[disable]`,qn([{verb:En,args:[n.sessionId,vz,`false`]},{verb:bn,args:[n.sessionId,yz,`false`]}]))],...o.map(e=>[Ih(e,c)])]}]}function Ez(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 Dz(e){switch(e.kind){case`current`:return[`info`,`build: current ${xz(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${xz(e.source)}, running ${xz(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function Oz(e){switch(e.kind){case`current`:return[`info`,`release: current ${xi(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${xi(e.latest)}, running ${xi(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${xi(e.installed)}, latest ${xi(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function kz(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const Az=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function jz(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=Az(e.stderr)??e.error??Az(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function Mz(){let e=[wM(vz,[`false`]),uz(yz,[`false`]),uz(_z,[])];return()=>e.forEach(e=>e())}function Nz(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=Cz,d=null,f=kz(s),p=kz(s),m=()=>Ez(c,l);function h(){let e=m(),t=e===null?null:bz(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:uz(_z,[t])})}function g(){c=$h(t,Xh),f(Dz(c)),h()}async function _(){l=Ti(Dt,await wi(Ci,a,i)),p(Oz(l)),h()}return{arm(){Mz(),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>Tz(m(),u,e),act(){let e=m();if(e===null)throw new q(`apply-update: nothing newer is known to apply`);let t=Sz(e);if(u.kind===`running`)throw new q(`apply-update: already ${t.busy}`);u=wz,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),Ne({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=Cz,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=jz(n);u={kind:`failed`,identity:bz(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}var Pz=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 fe(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 fe(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 fe(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 Fz={"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 Iz=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 Pz.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await Pz.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new ee(this.GITHUB_PRICING_URL),n=de({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(Fz).length} models`),this.executionCache=Fz,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(Fz).length} models`),Fz)}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 Lz=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function Rz(e){if(typeof e==`string`)return Lz.exec(e)?.[1]}function zz(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 Bz(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 Vz(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=zz(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`?Rz(Bz(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 Hz(e){if(e!==void 0)return[e];let t=g();return[p(t,`.config`,`claude`),p(t,`.claude`)].filter(e=>a(e))}async function Uz(e){let t=[];for(let n of e){let e=p(n,`projects`);if(a(e))try{let n=await NL(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 Wz(e,t,n){let r=[],i=p(t,e,`subagents`);try{let t=(await NL(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 PL(t,`utf-8`)).split(`
|
|
178
178
|
`)[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 Gz(e){let t=e.message;if((e.type||t?.role||t?.type)!==`user`)return;if(qz(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=Bz(t?.content).trimStart();return r.startsWith(`[Request interrupted by user`)?`interrupt`:e.isMeta===!0||e.isCompactSummary===!0||Kz.test(r)?`claude-code`:`prompt`}const Kz=/^<(?:command-name|local-command-std(?:out|err)|bash-(?:input|stdout|stderr))>/;function qz(e){let t=e?.content;return Array.isArray(t)&&typeof t[0]==`object`&&t[0]?t[0].type:void 0}const Jz=new Map;async function Yz(e){try{let t=await FL(e),n=t.size,r=Jz.get(e);if(r&&r.mtime===t.mtimeMs&&r.size===n)return D(`[parse-cache] hit ${e}`),Jz.delete(e),Jz.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 eB(e)):i=await Qz(e),D(`Parsed ${i.length} entries from ${e}`),n>5242880?i:(Jz.delete(e),Jz.size>=16&&Jz.delete(Jz.keys().next().value),Jz.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 Xz(e){if(!e.timestamp)return null;let t=e.message,n=t?.usage,r=Gz(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:Vz(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 Zz(e){let t=[];for(let n of e.split(`
|
|
179
|
-
`))if(n.trim())try{let e=Xz(JSON.parse(n));e&&t.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`);continue}return t}async function Qz(e){return Zz(await PL(e,`utf-8`))}async function $z(e,t){let n=await IL(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:Zz(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,stamp:a,ino:o},reset:s})}async function eB(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=pe({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=Xz(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 tB=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 nB(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 rB=new Map,iB={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},aB={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function oB(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function sB(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function cB(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function lB(e,t,n,r){let i=oB(new Date(sB())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:cB(),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 Iz.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=oB(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...iB};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 uB(e){let t=0,n=0,r=cB(),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)??{...iB};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:aB,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 dB(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 fB=class{sessions=new Map;flight=new tB;seeded=new Map;seededDay=``;rescanIntervalMs;speedFlight=new tB;staleAgeMs;log;renderTally={hits:0,misses:0};sweeps=0;scans={seed:0,rescan:0};sweepTimer=null;constructor(e={}){this.log=e.logger??It,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:aB,i=t?.cost?.total_cost_usd??null;return F({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e,t,n){let r=oB(jT(n)),i=Hz(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={...iB},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??rB:rB;c||=a.has(r);let l=a.get(r)??iB;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=kL(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=nB(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??kL(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 Wz(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 $z(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 lB(r,l,s,c)),e===t&&(a=c.stamp)}return F({files:i,...uB(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=sB(),i=await Uz(e),a=[];for(let e of i){let t;try{t=await NL(e)}catch{continue}for(let n of t){if(!n.endsWith(`.jsonl`))continue;let t=p(e,n),i;try{i=await FL(t)}catch{continue}i.mtimeMs<r||a.push({sessionId:n.slice(0,-6),path:t,stamp:AL(i)})}}let o={hits:0,misses:0};await dB(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()}},pB=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 Yz(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)}},mB=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=kL(t);if(n&&r!==``&&n.cursor.stamp===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await $z(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 hB={messageCount:0,nonPrompts:0,recent:[]},gB=new Set([`turn`,`interrupt`,`claude-code`]);function _B(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +(t.userEntry===`prompt`),nonPrompts:e.nonPrompts+ +!!gB.has(t.userEntry),recent:n.length>20?n.slice(-20):n}}function vB(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 yB=class{fold=new mB(hB,_B);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:vB(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 bB={command:null,todos:[],pending:[],done:[]};function xB(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 SB(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 CB(e,t){if(t.isSidechain)return e;let n=SB(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=xB(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 wB(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>xB(e,t.name),[]),done:e.done}}var TB=class{fold=new mB(bB,CB);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?L(`activity (${e}): ${n.reason}`):F(wB(n.value))}};function EB(e,t,n,r){return{bin:`tmux`,args:[`-S`,e.socket,...n],timeoutMs:2e3,category:t,stdinInput:r}}function DB(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 OB(e,t,n,r){return DB(O(EB(e,t,n,r)),n)}async function kB(e,t,n){return DB(await Ne(EB(e,t,n)),n)}const AB=e=>`${e.socket}\n${e.pane}`;var jB=class{names=new Map;asking=new tB;constructor(e=Date.now){this.now=e}getSessionName(e){let t=AB(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 kB(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 MB=e=>JSON.stringify([e.sessionId,e.projectDir,e.cwd,e.claudeConfigDir,e.env===void 0?null:tt.map(t=>e.env?.[t]??null)]);var NB=class{readings=new Map;inFlight=new Map;constructor(e,t=Date.now){this.edge=e,this.now=t}getCeiling(e){let t=MB(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=MB(e);try{this.edge.move(n.value,e,t)}finally{this.readings.delete(r),this.inFlight.delete(r),this.fetch(r,e)}}};function PB(e){return{gitProvider:new TT({watchers:e.watchers,logger:e.logger}),usageStore:new fB({logger:e.logger}),contextProvider:new pB,metricsProvider:new yB,activityProvider:new TB,tmuxService:new jB,mementoProvider:new NB(eR()),autoCompact:Gk,log:e.logger}}function FB(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}const IB={kind:`hidden`},LB={kind:`shown`};function RB(e,t){try{return FB(e,t)?LB:IB}catch(e){return{kind:`failed`,message:e instanceof Error?e.message:String(e)}}}function zB(e,t){let n=G.fromFragments(e);return n.end=``,n.overflow=`ignore`,t!==void 0&&!t.isNull&&(n.style=t),n}function BB(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:`…`}):e.cellLength<t&&e.align(n.justify,t)}function VB({lead:e,text:t,trail:n}){return[...e===void 0?[]:[e],t,...n===void 0?[]:[n]]}function HB({text:e,placement:t,lead:n,trail:r}){return{text:UB(e),placement:t,...n!==void 0&&{lead:UB(n)},...r!==void 0&&{trail:UB(r)}}}function UB(e){let t=e.blankCopy(e.plain);t.style=rp(e.style).clearMetaAndLinks();for(let{start:n,end:r,style:i}of e.spans)t.stylize(rp(i).clearMetaAndLinks(),n,r);return t}function WB(e){let t=VB(e);if(t.length===1)return e.text;let n=zB(t);return n.style=e.text.style,n}function GB(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=zB(e,a).pad(o),d=new G(` `.repeat(o)),f={placement:s,...c.length>0&&{lead:zB([d,...c],a)},...l.length>0&&{trail:zB([...l,d],a)}};if(n===`auto`)return[{text:u,...f}];let p={justify:r,truncate:i};return n===`fill`?[{text:u,fill:p,...f}]:(BB(u,n,p),[{text:u,...f}])}const KB=RegExp(`\\x1b\\[[0-9;]*m|${Jl.source}`,`g`);function qB(e){return Math.max(0,...e.split(`
|
|
180
|
-
`).map(e=>R(e.replace(KB,``))))}function JB(e,t){let n=()=>e.map(e=>({owner:WB(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=
|
|
181
|
-
`);if(i.length>1)return n();let a=Math.max(0,t.width-qB(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];BB(c,c.cellLength+a,n)}),n()}function YB(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=XB(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e){let e={frag:a,style:rp(a.style)};if(e.style.link){i();let r=XB([e],t);r.plain.length>0&&n.push(r)}else r.push(e)}return i(),n}function XB(e,t){let n=t!==void 0&&!t.isNull?t:void 0,r=e.map(e=>ZB(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 ZB(e,t){let n=e.copy();return n.style=t,n}function QB(e,t){if(e.look===void 0)throw Error(`${t} read the render's look before any render resolved one`);return e.look}function $B(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,eV(e,t,o,n,r,i));return i}function eV(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=u_(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=Ea.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=u_(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=u_(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:rV(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:rV(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:DP(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:rV(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 tV(e){return e.kind===`do`?tV(e.head):e}function nV(e){switch(tV(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 rV(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function iV(e,t){return e.has(t)?H_(e.read(t)):``}function aV(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function oV(e,t,n,r){let i=new G(e,{style:U.combine([r,new U({link:t,bold:n})])});return i.overflow=`ignore`,i.end=``,i}function sV(e,t,n=!1){let r=new U({link:t,bold:n?!0:void 0}),i=new G(e.plain,{style:U.combine([rp(e.style),r])});for(let t of e.spans)i.stylize(U.combine([rp(t.style),r]),t.start,t.end);return i.overflow=`ignore`,i.end=``,i}function cV(e,t){return Math.max(e.members.indexOf(iV(t,e.stateVar)),0)}function lV(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=iV(r,e.stateVar);return{effects:[{verb:bn,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=iV(r,e.stateVar);return{effects:[{verb:bn,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=iV(r,e.stateVar);return{effects:[{verb:bn,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(cV(e,r)+1)%e.members.length];return{effects:[{verb:bn,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:xn,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:Sn,args:[aV(e.text,Iw(r))]}],active:!1};case`open`:return{effects:[{verb:Cn,args:[aV(e.target,Iw(r))]}],active:!1};case`persist-literal`:{let t=iV(r,e.stateVar);return{effects:[{verb:En,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=iV(r,e.stateVar);return{effects:[{verb:En,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(cV(e,r)+1)%e.members.length];return{effects:[{verb:En,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Dn,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:Mn,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:Pn,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Fn,args:[i]}],active:!1};case`back`:return{effects:[{verb:In,args:[i]}],active:!1};case`rewind`:return{effects:[{verb:Ln,args:[i]}],active:!1};case`save`:return{effects:[{verb:On,args:[i]}],active:!1};case`preset-save`:return{effects:[{verb:kn,args:[i]}],active:!1};case`theme-default-save`:return{effects:[{verb:An,args:[i]}],active:!1};case`preset-delete`:return{effects:[{verb:jn,args:[i,aV(e.name,Iw(r))]}],active:!1};case`doctor-run`:return{effects:[{verb:zn,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Bn,args:[i,e.check]}],active:!1};case`doctor-mark`:return{effects:[{verb:Vn,args:[i,e.check,e.mark]}],active:!1};case`ceiling`:return{effects:[{verb:Un,args:[i,...e.args]}],active:!1};case`slash`:return{effects:[{verb:Wn,args:[i,e.line]}],active:!1};case`layout-op`:return{effects:[{verb:Nn,args:[i,e.key,uM(e.op)]}],active:!1};case`do`:{let a=lV(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>lV(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:Nn,args:[i,e.key,uM(r)]}],active:!1}}}}function uV(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:nr(`action "${e}"`,n,t.members.length,cV(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 dV(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}=uV(e,tV(r),t,i),s=iV(i,`session.id`),{effects:c,active:l}=lV(r,a.plain,o,i,s);return sV(a,qn(c),l)}function fV(e){return{action:{fn:(t,...n)=>dV(t,n,e),argTypes:[`string`,`liftable`],arity:{kind:`variadic`},returnType:`T`}}}function pV(e,t){return oV(`✕`,qn([{verb:bn,args:[iV(e,`session.id`),t,$n]}]),!1)}function mV(e,t,n){return new U({bgcolor:V.fromRgba(t),color:V.fromRgba(Hp(e,t,n))})}function hV({tint:e,text:t}){return new U({bgcolor:V.fromRgba(e),color:V.fromRgba(t)})}function gV(e,t,n){return new U({color:V.fromRgba(cc(Mp(e,`warning`),t,Vp,n))})}function _V(e,t,n){return U.combine([mV(e,t,n),gV(e,t,n)])}function vV(e,t,n){return mV(e.palette,lm(e.palette,e.disclosure,[t],n),n)}function yV(e){let t=V.fromRgba(Mp(e,`background`)),n=G.fromFragments(ap.map(n=>new G(`▀`,{style:new U({color:V.fromRgba(Mp(e,n)),bgcolor:t})})));return n.overflow=`ignore`,n.end=``,n}const bV=(e,t)=>{let n=typeof e==`string`?new G(e,{style:t}):e;return n.overflow=`ignore`,n.end=``,n},xV=e=>new U({bold:e});function SV(e,t,n,r,i,a){if(r===void 0)return(n,r,a,o)=>bV(a,U.combine([vV(e,{...n,distribution:t},i),xV(o)]));let o=mV(e.palette,a,i);return(e,t,i,a)=>CV(i,U.combine([o,xV(a)]),r(t,n))}const CV=(e,t,n)=>bV(G.fromFragments([bV(e,t),bV(` `,t),yV(n)]));function wV(e,t){return t===void 0?(e,t,n)=>bV(n):(n,r,i)=>CV(i,void 0,t(r,e))}function TV(e,t,n,r,i){let a=mV(e.palette,i,r);return(e,r,i,o)=>bV(G.fromFragments([bV(o?`[`:` `,a),yV(n(r,t)),bV(o?`]`:` `,a)]))}function EV(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=>DV(e.indices,8).map(t=>[{label:e.label,indices:t}])):[r]}function DV(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}function OV(e,t){return new G(e).truncate(t,{marker:`…`}).plain}function kV(e){return{current:null,drawnAt:e}}function AV(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 jV(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 MV(e){return new G(e).cellLength}function NV(e){return Math.max(1,e.width-e.chromeCols-2*e.padding)}function PV(e){return Math.max(1,NV(e)-(MV(`✕`)+2*e.padding+e.seamCols))}function FV(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 IV(e,t,n){let r=MV(`←`)+1+MV(`→`)+1,i=FV(e,t,n);return(i.length>1?FV(e,t,n+r):i).map(e=>[{label:``,indices:e}])}function LV(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 RV(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 zV(e,t,n){let r=e.compiled.get(t),i=r&&tV(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 BV(e,t,n,r,i,a,o,s,c=[]){let l=a.compiled.get(e),u=a.store,d=iV(u,`session.id`),f=`stateVar`in t?iV(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`?PV(a):NV(a):1/0,h=(r.kind===`led`?0:MV(`✕`)+1)+c.reduce((e,t)=>e+MV(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?IV(_.map(e=>e.cellLength),m,h):EV(g.entries,g.groups,i),y=parseInt(iV(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=>qn([{verb:bn,args:[d,n.key,String(e)]}]),te=r.kind===`led`?[]:[{verb:bn,args:[d,...r.writes.flatMap(([e,t])=>[e,t])]}],ne=r.kind===`own`&&r.onPick?te:[],re=e=>qn([...lV(l,e,e,u,d).effects,...ne]),ie=(e,n)=>sV(e,re(t.options[n])),ae=r.kind===`led`?[]:[oV(`✕`,qn(te),!1,s)];ae.push(...c.map(({glyph:e,option:r})=>oV(e,qn([...lV(l,r,r,u,d).effects,{verb:bn,args:[d,n.key,String(b(t.options.indexOf(r)))]}]),!1))),S>0&&ae.push(oV(`←`,ee(S-1),!1));let w=S<v.length-1?[oV(`→`,ee(S+1),!1)]:[];if(g===void 0){let e=C.flatMap(e=>e.indices);return[LV([...ae,...e.map(e=>ie(_[e],e)),...w],i)]}let T=new U({bold:!0}),oe=v.length>1?` ${S+1}/${v.length}`:``,E=C.length===1?[new G(`${C[0].label}${oe}`,{style:T})]:[],se=[LV([...ae,...E,...w],i)];for(let e of C){C.length>1&&se.push(LV([new G(e.label,{style:T})],i));let n=Math.max(...e.indices.map(e=>MV(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:Yf(a),s=` `.repeat(n-MV(e)+2),c=o===void 0?e:`${e}${s}${o}`;se.push(LV([ie(p(r,OV(c,m)),r)],i))}}return se}function VV(e,t){return{picker:{fn:(n,r,i,a,o,...s)=>{Aw(`picker "${n}"`,[`closeOnPick`,`paged`,`inBody`],s);let c=RV(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=zV(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=jV(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]=BV(n,l,{key:c.key,stateVar:c.stateVar},o===!0?{kind:`led`}:{kind:`own`,writes:[[c.key,`-1`]],onPick:i===!0},a===!0,e,SV(u,bp(void 0),QB(e,`{{ picker }}`),l.paletteOf,t.drawnAt(),u.bg),gV(u.palette,u.bg,t.drawnAt()));return d},argTypes:[`string`,`string`,`bool`],arity:{kind:`variadic`},returnType:`T`}}}function HV(e,t){let n=e.length,r=Math.max(e.indexOf(t),0);return e=>((r+e)%n+n)%n}function UV(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 WV(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=iV(o,`session.id`),{options:l}=t,u=l.length;if(u===0)return LV([],!0);let d=iV(o,t.stateVar),f=HV(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=qn(lV(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=sV(g(e),h(e));return _.set(e,n),n},y=a===void 0?v(0):sV(wV(QB(n,`{{ carousel }}`),t.paletteOf)({index:f(0),count:u},p(0),p(0),!1),qn(lV(n.compiled.get(a),p(0),void 0,o,c).effects)),b=UV(e=>v(e).cellLength,u,MV(`◀`)+1+y.cellLength+1+MV(`▶`),PV(n),i),x=e=>Array.from({length:b},(t,n)=>v(e*(n+1)));return LV([...x(-1).reverse(),oV(`◀`,h(-1),!1),y,oV(`▶`,h(1),!1),...x(1)],!0)}function GV(e,t){return{carousel:{fn:(n,...r)=>{let[i,a,...o]=r;if(Aw(`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&&nV(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=zV(e,n,`carousel`),l=jV(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 WV(n,c,e,SV(l,bp(void 0),QB(e,`{{ carousel }}`),c.paletteOf,t.drawnAt(),l.bg),s,a)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function KV(e,t,n){let r=zV(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 qV(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 JV(e,t,n,r){let i=KV(e,t,n),a=r??iV(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,QB(e,`{{ ${n} }}`))}function YV(e,t,n){return{swatch:{fn:(t,...n)=>{let[r,...i]=n;if(Aw(`swatch "${t}"`,[`option`],i),r!==void 0&&typeof r!=`string`)throw Error(`swatch "${t}": option must be text, got ${JSON.stringify(r)}`);return yV(JV(e,t,`swatch`,r))},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`},swatches:{fn:(r,i)=>{let a=KV(e,r,`swatches`),o=RV(e,i,`set-int`,`an int action ({ set, int: true })`,`swatches`),s=jV(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]=BV(r,a,{key:o.key,stateVar:o.stateVar},{kind:`led`},!0,e,TV(s,QB(e,`{{ swatches }}`),a.paletteOf,c,s.bg),gV(s.palette,s.bg,c),u===0?[]:(()=>{let t=HV(l,iV(e.store,a.stateVar));return[{glyph:`◀`,option:l[t(-1)]},{glyph:`?`,option:l[qV(n().getTime(),u,t(0))]},{glyph:`▶`,option:l[t(1)]}]})());return d},argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`T`}}}const XV=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function ZV(e,t,n,r){let i=em(e,n,r),a=(t,n)=>({text:t,colour:n,ink:Hp(e,n,r)});return[[hp(t).map((n,i)=>{let a=Np(e,n);return{text:XV[i%XV.length],colour:a,ink:t.shade.text(e,n.hue,a,r)}})],[[a(`▾ open`,i.state),a(`menu`,i.plane)],[a(`warn`,Mp(e,`warning`)),a(`error`,Mp(e,`error`))]]]}function QV(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:hV({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 $V(e,t,n,r,i){let a=ZV(e,t,n,r).map(e=>QV(e,i)),o=G.fromFragments(a.flatMap((e,t)=>t===0?e:[new G(`
|
|
182
|
-
`),...e]));return o.overflow=`ignore`,o.end=``,o}function eH(e,t){return{themePreview:{fn:(...n)=>{let[r,...i]=n;if(
|
|
183
|
-
`),...e]));return o.overflow=`ignore`,o.end=``,o}function aH(e,t){return{layoutPreview:{fn:()=>iH(e.layout(),QB(e,`{{ layoutPreview }}`).decor,t.drawnAt(),PV(e)),argTypes:[],arity:{kind:`exact`},returnType:`T`}}}function oH(e,t,n,r){let i=jV(r.activeSegment,`{{ menu }}`),a=r.action,o=
|
|
179
|
+
`))if(n.trim())try{let e=Xz(JSON.parse(n));e&&t.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`);continue}return t}async function Qz(e){return Zz(await PL(e,`utf-8`))}async function $z(e,t){let n=await IL(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:Zz(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,stamp:a,ino:o},reset:s})}async function eB(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=pe({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=Xz(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 tB=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 nB(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 rB=new Map,iB={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},aB={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function oB(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function sB(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function cB(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function lB(e,t,n,r){let i=oB(new Date(sB())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:cB(),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 Iz.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=oB(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...iB};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 uB(e){let t=0,n=0,r=cB(),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)??{...iB};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:aB,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 dB(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 fB=class{sessions=new Map;flight=new tB;seeded=new Map;seededDay=``;rescanIntervalMs;speedFlight=new tB;staleAgeMs;log;renderTally={hits:0,misses:0};sweeps=0;scans={seed:0,rescan:0};sweepTimer=null;constructor(e={}){this.log=e.logger??It,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:aB,i=t?.cost?.total_cost_usd??null;return F({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e,t,n){let r=oB(AT(n)),i=Hz(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={...iB},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??rB:rB;c||=a.has(r);let l=a.get(r)??iB;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=kL(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=nB(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??kL(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 Wz(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 $z(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 lB(r,l,s,c)),e===t&&(a=c.stamp)}return F({files:i,...uB(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=sB(),i=await Uz(e),a=[];for(let e of i){let t;try{t=await NL(e)}catch{continue}for(let n of t){if(!n.endsWith(`.jsonl`))continue;let t=p(e,n),i;try{i=await FL(t)}catch{continue}i.mtimeMs<r||a.push({sessionId:n.slice(0,-6),path:t,stamp:AL(i)})}}let o={hits:0,misses:0};await dB(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()}},pB=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 Yz(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)}},mB=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=kL(t);if(n&&r!==``&&n.cursor.stamp===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await $z(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 hB={messageCount:0,nonPrompts:0,recent:[]},gB=new Set([`turn`,`interrupt`,`claude-code`]);function _B(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +(t.userEntry===`prompt`),nonPrompts:e.nonPrompts+ +!!gB.has(t.userEntry),recent:n.length>20?n.slice(-20):n}}function vB(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 yB=class{fold=new mB(hB,_B);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:vB(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 bB={command:null,todos:[],pending:[],done:[]};function xB(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 SB(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 CB(e,t){if(t.isSidechain)return e;let n=SB(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=xB(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 wB(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>xB(e,t.name),[]),done:e.done}}var TB=class{fold=new mB(bB,CB);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?L(`activity (${e}): ${n.reason}`):F(wB(n.value))}};function EB(e,t,n,r){return{bin:`tmux`,args:[`-S`,e.socket,...n],timeoutMs:2e3,category:t,stdinInput:r}}function DB(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 OB(e,t,n,r){return DB(O(EB(e,t,n,r)),n)}async function kB(e,t,n){return DB(await Ne(EB(e,t,n)),n)}const AB=e=>`${e.socket}\n${e.pane}`;var jB=class{names=new Map;asking=new tB;constructor(e=Date.now){this.now=e}getSessionName(e){let t=AB(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 kB(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 MB=e=>JSON.stringify([e.sessionId,e.projectDir,e.cwd,e.claudeConfigDir,e.env===void 0?null:tt.map(t=>e.env?.[t]??null)]);var NB=class{readings=new Map;inFlight=new Map;constructor(e,t=Date.now){this.edge=e,this.now=t}getCeiling(e){let t=MB(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=MB(e);try{this.edge.move(n.value,e,t)}finally{this.readings.delete(r),this.inFlight.delete(r),this.fetch(r,e)}}};function PB(e){return{gitProvider:new wT({watchers:e.watchers,logger:e.logger}),usageStore:new fB({logger:e.logger}),contextProvider:new pB,metricsProvider:new yB,activityProvider:new TB,tmuxService:new jB,mementoProvider:new NB(eR()),autoCompact:Gk,log:e.logger}}function FB(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}const IB={kind:`hidden`},LB={kind:`shown`};function RB(e,t){try{return FB(e,t)?LB:IB}catch(e){return{kind:`failed`,message:e instanceof Error?e.message:String(e)}}}function zB(e,t){let n=K.fromFragments(e);return n.end=``,n.overflow=`ignore`,t!==void 0&&!t.isNull&&(n.style=t),n}function BB(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:`…`}):e.cellLength<t&&e.align(n.justify,t)}function VB({lead:e,text:t,trail:n}){return[...e===void 0?[]:[e],t,...n===void 0?[]:[n]]}function HB({text:e,placement:t,lead:n,trail:r}){return{text:UB(e),placement:t,...n!==void 0&&{lead:UB(n)},...r!==void 0&&{trail:UB(r)}}}function UB(e){let t=e.blankCopy(e.plain);t.style=np(e.style).clearMetaAndLinks();for(let{start:n,end:r,style:i}of e.spans)t.stylize(np(i).clearMetaAndLinks(),n,r);return t}function WB(e){let t=VB(e);if(t.length===1)return e.text;let n=zB(t);return n.style=e.text.style,n}function GB(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=zB(e,a).pad(o),d=new K(` `.repeat(o)),f={placement:s,...c.length>0&&{lead:zB([d,...c],a)},...l.length>0&&{trail:zB([...l,d],a)}};if(n===`auto`)return[{text:u,...f}];let p={justify:r,truncate:i};return n===`fill`?[{text:u,fill:p,...f}]:(BB(u,n,p),[{text:u,...f}])}const KB=RegExp(`\\x1b\\[[0-9;]*m|${Jl.source}`,`g`);function qB(e){return Math.max(0,...e.split(`
|
|
180
|
+
`).map(e=>R(e.replace(KB,``))))}function JB(e,t){let n=()=>e.map(e=>({owner:WB(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=jh(e.map(WB),t).split(`
|
|
181
|
+
`);if(i.length>1)return n();let a=Math.max(0,t.width-qB(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];BB(c,c.cellLength+a,n)}),n()}function YB(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=XB(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e){let e={frag:a,style:np(a.style)};if(e.style.link){i();let r=XB([e],t);r.plain.length>0&&n.push(r)}else r.push(e)}return i(),n}function XB(e,t){let n=t!==void 0&&!t.isNull?t:void 0,r=e.map(e=>ZB(e.frag,n?n.add(e.style):e.style)),i=K.fromFragments(r);return i.end=``,i.overflow=`ignore`,r.length===1?i.style=r[0].style:n!==void 0&&(i.style=n),i}function ZB(e,t){let n=e.copy();return n.style=t,n}function QB(e,t){if(e.look===void 0)throw Error(`${t} read the render's look before any render resolved one`);return e.look}function $B(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,eV(e,t,o,n,r,i));return i}function eV(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=l_(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=Ea.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=l_(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=l_(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:rV(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:rV(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:DP(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:rV(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 tV(e){return e.kind===`do`?tV(e.head):e}function nV(e){switch(tV(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 rV(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function iV(e,t){return e.has(t)?V_(e.read(t)):``}function aV(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function oV(e,t,n,r){let i=new K(e,{style:U.combine([r,new U({link:t,bold:n})])});return i.overflow=`ignore`,i.end=``,i}function sV(e,t,n=!1){let r=new U({link:t,bold:n?!0:void 0}),i=new K(e.plain,{style:U.combine([np(e.style),r])});for(let t of e.spans)i.stylize(U.combine([np(t.style),r]),t.start,t.end);return i.overflow=`ignore`,i.end=``,i}function cV(e,t){return Math.max(e.members.indexOf(iV(t,e.stateVar)),0)}function lV(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=iV(r,e.stateVar);return{effects:[{verb:bn,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=iV(r,e.stateVar);return{effects:[{verb:bn,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=iV(r,e.stateVar);return{effects:[{verb:bn,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(cV(e,r)+1)%e.members.length];return{effects:[{verb:bn,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:xn,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:Sn,args:[aV(e.text,Fw(r))]}],active:!1};case`open`:return{effects:[{verb:Cn,args:[aV(e.target,Fw(r))]}],active:!1};case`persist-literal`:{let t=iV(r,e.stateVar);return{effects:[{verb:En,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=iV(r,e.stateVar);return{effects:[{verb:En,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(cV(e,r)+1)%e.members.length];return{effects:[{verb:En,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Dn,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:Mn,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:Pn,args:[i]}],active:!1};case`redo`:return{effects:[{verb:Fn,args:[i]}],active:!1};case`back`:return{effects:[{verb:In,args:[i]}],active:!1};case`rewind`:return{effects:[{verb:Ln,args:[i]}],active:!1};case`save`:return{effects:[{verb:On,args:[i]}],active:!1};case`preset-save`:return{effects:[{verb:kn,args:[i]}],active:!1};case`theme-default-save`:return{effects:[{verb:An,args:[i]}],active:!1};case`preset-delete`:return{effects:[{verb:jn,args:[i,aV(e.name,Fw(r))]}],active:!1};case`doctor-run`:return{effects:[{verb:zn,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Bn,args:[i,e.check]}],active:!1};case`doctor-mark`:return{effects:[{verb:Vn,args:[i,e.check,e.mark]}],active:!1};case`ceiling`:return{effects:[{verb:Un,args:[i,...e.args]}],active:!1};case`slash`:return{effects:[{verb:Wn,args:[i,e.line]}],active:!1};case`layout-op`:return{effects:[{verb:Nn,args:[i,e.key,uM(e.op)]}],active:!1};case`do`:{let a=lV(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>lV(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:Nn,args:[i,e.key,uM(r)]}],active:!1}}}}function uV(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:nr(`action "${e}"`,n,t.members.length,cV(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 dV(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}=uV(e,tV(r),t,i),s=iV(i,`session.id`),{effects:c,active:l}=lV(r,a.plain,o,i,s);return sV(a,qn(c),l)}function fV(e){return{action:{fn:(t,...n)=>dV(t,n,e),argTypes:[`string`,`liftable`],arity:{kind:`variadic`},returnType:`T`}}}function pV(e,t){return oV(`✕`,qn([{verb:bn,args:[iV(e,`session.id`),t,$n]}]),!1)}function mV(e,t,n){return new U({bgcolor:V.fromRgba(t),color:V.fromRgba(Vp(e,t,n))})}function hV({tint:e,text:t}){return new U({bgcolor:V.fromRgba(e),color:V.fromRgba(t)})}function gV(e,t,n){return new U({color:V.fromRgba(Ms(jp(e,`warning`),t,Bp,n))})}function _V(e,t,n){return U.combine([mV(e,t,n),gV(e,t,n)])}function vV(e,t,n){return mV(e.palette,cm(e.palette,e.disclosure,[t],n),n)}function yV(e){let t=V.fromRgba(jp(e,`background`)),n=K.fromFragments(ip.map(n=>new K(`▀`,{style:new U({color:V.fromRgba(jp(e,n)),bgcolor:t})})));return n.overflow=`ignore`,n.end=``,n}const bV=(e,t)=>{let n=typeof e==`string`?new K(e,{style:t}):e;return n.overflow=`ignore`,n.end=``,n},xV=e=>new U({bold:e});function SV(e,t,n,r,i,a){if(r===void 0)return(n,r,a,o)=>bV(a,U.combine([vV(e,{...n,distribution:t},i),xV(o)]));let o=mV(e.palette,a,i);return(e,t,i,a)=>CV(i,U.combine([o,xV(a)]),r(t,n))}const CV=(e,t,n)=>bV(K.fromFragments([bV(e,t),bV(` `,t),yV(n)]));function wV(e,t){return t===void 0?(e,t,n)=>bV(n):(n,r,i)=>CV(i,void 0,t(r,e))}function TV(e,t,n,r,i){let a=mV(e.palette,i,r);return(e,r,i,o)=>bV(K.fromFragments([bV(o?`[`:` `,a),yV(n(r,t)),bV(o?`]`:` `,a)]))}function EV(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=>DV(e.indices,8).map(t=>[{label:e.label,indices:t}])):[r]}function DV(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}function OV(e,t){return new K(e).truncate(t,{marker:`…`}).plain}function kV(e){return{current:null,drawnAt:e}}function AV(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 jV(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 MV(e){return new K(e).cellLength}function NV(e){return Math.max(1,e.width-e.chromeCols-2*e.padding)}function PV(e){return Math.max(1,NV(e)-(MV(`✕`)+2*e.padding+e.seamCols))}function FV(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 IV(e,t,n){let r=MV(`←`)+1+MV(`→`)+1,i=FV(e,t,n);return(i.length>1?FV(e,t,n+r):i).map(e=>[{label:``,indices:e}])}function LV(e,t){let n=[];for(let t of e)n.length>0&&n.push(new K(` `)),n.push(t);let r=K.fromFragments(n);return r.overflow=t?`ignore`:void 0,r.end=``,r}function RV(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 zV(e,t,n){let r=e.compiled.get(t),i=r&&tV(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 BV(e,t,n,r,i,a,o,s,c=[]){let l=a.compiled.get(e),u=a.store,d=iV(u,`session.id`),f=`stateVar`in t?iV(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`?PV(a):NV(a):1/0,h=(r.kind===`led`?0:MV(`✕`)+1)+c.reduce((e,t)=>e+MV(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?IV(_.map(e=>e.cellLength),m,h):EV(g.entries,g.groups,i),y=parseInt(iV(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=>qn([{verb:bn,args:[d,n.key,String(e)]}]),te=r.kind===`led`?[]:[{verb:bn,args:[d,...r.writes.flatMap(([e,t])=>[e,t])]}],ne=r.kind===`own`&&r.onPick?te:[],re=e=>qn([...lV(l,e,e,u,d).effects,...ne]),ie=(e,n)=>sV(e,re(t.options[n])),ae=r.kind===`led`?[]:[oV(`✕`,qn(te),!1,s)];ae.push(...c.map(({glyph:e,option:r})=>oV(e,qn([...lV(l,r,r,u,d).effects,{verb:bn,args:[d,n.key,String(b(t.options.indexOf(r)))]}]),!1))),S>0&&ae.push(oV(`←`,ee(S-1),!1));let w=S<v.length-1?[oV(`→`,ee(S+1),!1)]:[];if(g===void 0){let e=C.flatMap(e=>e.indices);return[LV([...ae,...e.map(e=>ie(_[e],e)),...w],i)]}let T=new U({bold:!0}),oe=v.length>1?` ${S+1}/${v.length}`:``,E=C.length===1?[new K(`${C[0].label}${oe}`,{style:T})]:[],se=[LV([...ae,...E,...w],i)];for(let e of C){C.length>1&&se.push(LV([new K(e.label,{style:T})],i));let n=Math.max(...e.indices.map(e=>MV(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:Jf(a),s=` `.repeat(n-MV(e)+2),c=o===void 0?e:`${e}${s}${o}`;se.push(LV([ie(p(r,OV(c,m)),r)],i))}}return se}function VV(e,t){return{picker:{fn:(n,r,i,a,o,...s)=>{kw(`picker "${n}"`,[`closeOnPick`,`paged`,`inBody`],s);let c=RV(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=zV(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=jV(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]=BV(n,l,{key:c.key,stateVar:c.stateVar},o===!0?{kind:`led`}:{kind:`own`,writes:[[c.key,`-1`]],onPick:i===!0},a===!0,e,SV(u,yp(void 0),QB(e,`{{ picker }}`),l.paletteOf,t.drawnAt(),u.bg),gV(u.palette,u.bg,t.drawnAt()));return d},argTypes:[`string`,`string`,`bool`],arity:{kind:`variadic`},returnType:`T`}}}function HV(e,t){let n=e.length,r=Math.max(e.indexOf(t),0);return e=>((r+e)%n+n)%n}function UV(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 WV(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=iV(o,`session.id`),{options:l}=t,u=l.length;if(u===0)return LV([],!0);let d=iV(o,t.stateVar),f=HV(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=qn(lV(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=sV(g(e),h(e));return _.set(e,n),n},y=a===void 0?v(0):sV(wV(QB(n,`{{ carousel }}`),t.paletteOf)({index:f(0),count:u},p(0),p(0),!1),qn(lV(n.compiled.get(a),p(0),void 0,o,c).effects)),b=UV(e=>v(e).cellLength,u,MV(`◀`)+1+y.cellLength+1+MV(`▶`),PV(n),i),x=e=>Array.from({length:b},(t,n)=>v(e*(n+1)));return LV([...x(-1).reverse(),oV(`◀`,h(-1),!1),y,oV(`▶`,h(1),!1),...x(1)],!0)}function GV(e,t){return{carousel:{fn:(n,...r)=>{let[i,a,...o]=r;if(kw(`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&&nV(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=zV(e,n,`carousel`),l=jV(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 WV(n,c,e,SV(l,yp(void 0),QB(e,`{{ carousel }}`),c.paletteOf,t.drawnAt(),l.bg),s,a)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function KV(e,t,n){let r=zV(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 qV(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 JV(e,t,n,r){let i=KV(e,t,n),a=r??iV(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,QB(e,`{{ ${n} }}`))}function YV(e,t,n){return{swatch:{fn:(t,...n)=>{let[r,...i]=n;if(kw(`swatch "${t}"`,[`option`],i),r!==void 0&&typeof r!=`string`)throw Error(`swatch "${t}": option must be text, got ${JSON.stringify(r)}`);return yV(JV(e,t,`swatch`,r))},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`},swatches:{fn:(r,i)=>{let a=KV(e,r,`swatches`),o=RV(e,i,`set-int`,`an int action ({ set, int: true })`,`swatches`),s=jV(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]=BV(r,a,{key:o.key,stateVar:o.stateVar},{kind:`led`},!0,e,TV(s,QB(e,`{{ swatches }}`),a.paletteOf,c,s.bg),gV(s.palette,s.bg,c),u===0?[]:(()=>{let t=HV(l,iV(e.store,a.stateVar));return[{glyph:`◀`,option:l[t(-1)]},{glyph:`?`,option:l[qV(n().getTime(),u,t(0))]},{glyph:`▶`,option:l[t(1)]}]})());return d},argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`T`}}}const XV=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function ZV(e,t,n,r){let i=$p(e,n,r),a=(t,n)=>({text:t,colour:n,ink:Vp(e,n,r)});return[[mp(t).map((n,i)=>{let a=Mp(e,n);return{text:XV[i%XV.length],colour:a,ink:t.shade.text(e,n.hue,a,r)}})],[[a(`▾ open`,i.state),a(`menu`,i.plane)],[a(`warn`,jp(e,`warning`)),a(`error`,jp(e,`error`))]]]}function QV(e,t){let n=e.flatMap((e,t)=>e.map(({text:e,colour:n,ink:r},i)=>({gap:t>0&&i===0?` `:``,cell:new K(` ${e} `,{style:hV({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 K(e)),r.push(a)}return r}function $V(e,t,n,r,i){let a=ZV(e,t,n,r).map(e=>QV(e,i)),o=K.fromFragments(a.flatMap((e,t)=>t===0?e:[new K(`
|
|
182
|
+
`),...e]));return o.overflow=`ignore`,o.end=``,o}function eH(e,t){return{themePreview:{fn:(...n)=>{let[r,...i]=n;if(kw(`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}=QB(e,`{{ themePreview }}`);return $V(r===void 0?a:JV(e,r,`themePreview`),o,{...jV(t,`{{ themePreview }}`).disclosure,depth:0},t.drawnAt(),PV(e))},argTypes:[`value`],arity:{kind:`variadic`},returnType:`T`}}}const tH=e=>e.slice(e.lastIndexOf(`.`)+1),nH=(e,t)=>{let n=new K(tH(e));return n.truncate(t,{marker:`…`}),n.plain};function rH(e,t){let n=e.map(e=>e.map(({name:e})=>MV(tH(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 iH(e,t,n,r){let i=rH(e,r),a=e.map(e=>{let a=[],o=0;for(let{name:s,address:c,palette:l}of e){let e=new K(` ${nH(s,i)} `,{style:hV(fm(l,{kind:`bar`,decor:t,address:c},n))});if(o+=e.cellLength,o>r)break;a.push(e)}return a}),o=K.fromFragments(a.flatMap((e,t)=>t===0?e:[new K(`
|
|
183
|
+
`),...e]));return o.overflow=`ignore`,o.end=``,o}function aH(e,t){return{layoutPreview:{fn:()=>iH(e.layout(),QB(e,`{{ layoutPreview }}`).decor,t.drawnAt(),PV(e)),argTypes:[],arity:{kind:`exact`},returnType:`T`}}}function oH(e,t,n,r){let i=jV(r.activeSegment,`{{ menu }}`),a=r.action,o=vE(i.placementId,e,n.key),s=xE(o),c=_E(e),l=iV(a.store,o)===c,u=iV(a.store,`session.id`),d=l?$n:c,f=oV(nr(`{{ menu "${e}" }}`,t,2,+!!l),qn([{verb:bn,args:[u,o,d,s,`0`]}]),!1);return i.drops.push(...l?(()=>{let t=r.activeSegment.drawnAt(),c=$p(i.palette,i.disclosure,t).plane,l=zV(a,e,`menu`);return BV(e,l,{key:s,stateVar:s},{kind:`own`,writes:[[o,$n],[s,`0`]],onPick:n.closeOnPick},n.paged,a,SV(i,n.distribution,QB(a,`{{ menu }}`),l.paletteOf,t,c),gV(i.palette,c,t))})():[]),f}const sH=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function cH(e,t){let n=t[t.length-1],r=sH(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:TE(r??{})}}function lH(e){return{menu:{fn:(t,...n)=>{let{displays:r,options:i}=cH(t,n);return oH(t,r,i,e)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function uH(e){let{value:t,max:n,width:r,filled:i,empty:a,colourAt:o}=e,s=dH(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 K(t?i:a,{style:l===void 0?void 0:new U({color:l})}))}let l=K.fromFragments(c);return l.end=``,l.overflow=`ignore`,l}function dH(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 fH(e){let t={fn:(()=>{let t=jV(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:(()=>jV(e,`{{ tint }}`).tint.hex),argTypes:[],arity:{kind:`exact`},returnType:`string`},r={fn:((t,n)=>{let{palette:r}=jV(e,`{{ keptOn }}`),i=Cs(r,t),a=Cs(r,n),o=mo(Ps(i,B.TRUECOLOR),Ps(a,B.TRUECOLOR)),s=Math.min(Bp,Math.max(o,3));return(Ns(i,e.drawnAt(),(e,t)=>mo(e,t(a))>=s)??i).hex}),argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`string`},i=pw(()=>jV(e,`{{ color }} / {{ ramp }} / {{ gauge }}`).palette),a={fn:((e,t,n,r,a,o,...s)=>{let c=o===void 0?void 0:[o,...pH(s)];return uH({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 pH(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 mH(e){let t=[],n=[];for(let r of e){if(!r.contains(`
|
|
184
184
|
`)){n.push(r);continue}let e=r.split(`
|
|
185
|
-
`);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function hH(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 gH(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 _H(e){return{...e,cells:e.cells.map(HB)}}function vH(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,...yH(e,r)]}function yH(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 bH(e,t){let n=(e,r)=>t(e)?e.kind===`segment`?[{cells:[{name:e.name,address:r,settings:e.settings}],band:`own`,place:`flow`}]:vH(e.direction,e.children.map((t,i)=>n(t,[...r,xH(e,i)]))):[];return n(e,[]).map(e=>[...e.cells])}function xH(e,t){return{index:t,count:e.children.length,distribution:e.distribution,axis:fg[e.direction]}}const SH={compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:bp(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,vg(t.path,n)))}},render(e,t){return t.gate.kind===`failed`&&t.gate.report(),vH(e.direction,e.children.map((n,r)=>t.renderChild(n,t.gate.kind===`shown`,xH(e,r))))}},CH={drop:e=>e.place,above:()=>`above`},wH={drop:(e,t)=>({lead:t(),stays:e}),above:e=>({lead:e.slice(0,1).flatMap(e=>e.cells),stays:e.slice(1)})},TH={compile(e,t){return{kind:`segment`,when:t.when,name:e.name,id:pg(e),settings:t.placementSettings(e),...e.opens!==void 0&&{opens:{open:t.parse(ar(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,yg(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,EH(e,t))};function EH(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=Rw(t.scope,e.settings);if(t.gate.kind===`failed`)return DH(e,a,t,t.gate.message);try{if(!FB(i.when,a))return[];let n=rg(e.settings.theme,t.palette),o={id:e.id,effect:e.settings.effect,ground:TO(n)},s=e.opens!==void 0&&FB(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:CH[g.placement](e)})),v=mH(YB(l,m)).map((e,t)=>({cells:GB(e,{...h,lead:t===0?YB(u,m):[],trail:t===0?YB(d,m):[]}),band:`own`,place:`flow`})),y=f.map(e=>({cells:GB(YB([e],c.band),{...h,baseStyle:c.band}),band:`deeper`,place:`flow`})),b=(e,t,n)=>GB(YB([e],t),{...h,width:`auto`,baseStyle:t,padding:n}),x=_.findIndex(e=>e.band===`own`),{lead:S,stays:C}=g!==void 0&&x!==-1?wH[g.placement](v,()=>b(t.closeDisclosure(g.key),c.close,t.padding)):{lead:[],stays:v},ee=S.flatMap(e=>b(new G(` `.repeat(VB(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(VB)),[...re,...ne]}catch(n){return DH(e,a,t,n.message??String(n))}}function DH(e,t,n,r){n.onSegmentError?.(e.id,r);let i=r.replace(/\s*\n\s*/g,` `);return[{cells:GB([new G(`⚠ ${e.id}: ${i}`,{end:``})],{width:`auto`,justify:`left`,truncate:`right`,padding:0,placement:{id:e.id,effect:`bar`,ground:TO(n.palette)},lead:OH(e.lead,e,t,n),trail:OH(e.trail,e,t,n)}),band:`own`,place:`flow`}]}function OH(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 kH={container:SH,segment:TH};function AH(e){return kH[e]}function jH(e){if(`ttl`in e)return{kind:`ttl`,durationMs:NT(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 MH(e,t){switch(Cg(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 NH(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:jH(n.cache),parse:MH(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cwd:r,cache:jH(n.cache),parse:MH(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 PH(e,t){let n=xv.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 FH=(e,t,n,r,i)=>{let a=OL(t,DL(n,e.themeDefaults));return{variation:mp[r??Jm(void 0,null,a.variation)],shade:fp[i??Zm(void 0,null,a.shade)]}};function IH(e,t,n){let r=n.cwd,i={store:t.variableStore,compiled:new Map,chromeCols:Dh({endcaps:`powerline`}),width:80,padding:1,seamCols:Oh({endcaps:`powerline`}),layout:()=>[],look:void 0},a=kV(t.drawnAt),o={action:i,activeSegment:a},s=Object.keys(e.styles),c=e_(e.presets),l=Gj(e),u=Fw({extraFuncs:{...fV(i),...VV(i,a),...GV(i,a),...eH(i,a),...YV(i,a,t.now),...aH(i,a),...lH(o),...fH(a),styles:{fn:()=>s,argTypes:[],arity:{kind:`exact`}},presets:{fn:()=>c,argTypes:[],arity:{kind:`exact`}}},clock:t.now,drawnAt:t.drawnAt}),d=PH(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 Da)n in e.variables&&h.set(t,n);for(let[t,n]of Dg(e))h.has(n.key)||h.set(n.key,t);i.compiled=$B(f,e.actions,h,l);let g=[];for(let[n,i]of Object.entries(e.variables))try{NH(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{NH(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=jg(e.segments[t.name]),r=Object.create(null);for(let[e,i]of Object.entries(n))Object.defineProperty(r,e,{enumerable:!0,get:()=>Lg(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 AH(e.kind).compile(e,n)},S=new Map;for(let t of c){let{node:n,path:r}=r_(e,t);S.set(t,x(n,r))}let C=new Map(Cm.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 Cm){let r=t[n];if(!wm(r))continue;let i=`${e}.${n}`,a=C.get(n),o=a.get(r);a.set(r,o===void 0?{where:i,template:LH(f,i,r)}:{where:`${o.where}, ${i}`,template:o.template})}return{segments:_,roots:S,activeSegment:a,menuRuntime:o,globalExpressions:C,loadWarnings:g}}function LH(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 RH(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 zH(e,t,n,r){try{return t.template.evaluate(n).map(e=>e.plain).join(``)}catch(n){return r({kind:`rule`,slot:e,message:Nm(t.where,e,`the rule failed — ${n instanceof Error?n.message:String(n)}`)}),Mm[e]}}function BH(e,t){return e.kind===`decided`?e.name:Mm[t]}function VH(e){return e.kind===`container`?e.children.flatMap(VH):[...e.name.startsWith(`edit.`)?[]:[e.id],...e.opens===void 0?[]:VH(e.opens.body)]}function HH(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(Gm(o.colorCompatibility));let{preset:m=Qg}=c??{},h=i_(e,m),g=c?.style??km(`none`,e.styles),_=c?.theme??lg(void 0,null,h.palette),v=FH(e,h,_,c?.variation,c?.shade),y=c?.effect??Rm(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(BH(_,`palette`),BH(g,`style`),BH(y,`effect`))),t.menuRuntime.action.chromeCols=Dh(o),t.menuRuntime.action.padding=o.padding,t.menuRuntime.action.width=o.width,t.menuRuntime.action.seamCols=Oh(o);let x=Iw(n),S=Em(_,e=>{let n=RH(t,`palette`,e);return cg(zH(`palette`,n,x,f),n.where,e=>f({kind:`rule`,slot:`palette`,message:e}))}),C=Em(g,n=>km(zH(`style`,RH(t,`style`,n),x,f),e.styles)),ee=Em(y,e=>Lm(zH(`effect`,RH(t,`effect`,e),x,f)));(S!==_||C!==g||ee!==y)&&r.applyInput(b(S.name,C.name,ee.name));let te=S.value,ne=ag(te,C.value);t.menuRuntime.action.look={basePalette:te,palette:ne,decor:v};let re=(c?.effects??new yh(``)).motion(ee.value,a,{transitions:c?.transitions??sh(void 0,null,h.transitions),source:{config:t,preset:m,revision:r.stateRevision(),width:o.width},returned:gH,hold:_H});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}=pm(i,a,c),f=AV(t.activeSegment,e.name,e.id,i,d,l,u),m=DO(f,c,o.bg,o.fg,n),h=()=>em(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 mV(i,h().state,c)},get band(){return mV(i,h().plane,c)},get close(){return _V(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?RB(e.when,x):IB,a=i.kind===`failed`?{...i,report:()=>{let t=`when over ${VH(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,dm(r,n)),renderBody:(e,t,n)=>w(e,a.kind===`shown`&&t,fm(n)),closeDisclosure:e=>pV(n,e),placed:re.placed};return AH(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 "${Qg}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);let oe=e=>{let n=RB(e.when,x);if(e.kind===`container`)return n.kind===`shown`;if(nM(e.name)===void 0)return!1;if(n.kind!==`shown`)return n.kind===`failed`;try{return FB(t.segments[e.name].when,Rw(x,e.settings))}catch{return!0}};t.menuRuntime.action.layout=()=>bH(T,oe).map(e=>e.flatMap(({name:e,address:t,settings:n})=>{let r=nM(e);return r===void 0?[]:[{name:r,address:t,palette:rg(n.theme,ne)}]}));let E=hH(w(T,!0,um(v))).map(({line:e,row:t})=>{let n=JB(e.cells,o);return Mh(n.map(e=>e.owner),o,re.row(t,n))}).join(`
|
|
186
|
-
`);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*UH(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*WH(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
|
|
187
|
-
`)||null}function sU(e,t,n,r,i=()=>{}){let{layers:a,config:o,installed:s}=eL(t.layers,CL,{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??CL,l=a.find(e=>e.path===t.home)?.raw??{},u=new eU,d=new eE(u,o.globals.default_empty_value??``,r.gitService,r.sessionState),f;try{f=IH(o,d,{cwd:e}),n.push(...f.loadWarnings),dz(o),TM(o)}catch(e){throw d.dispose(),e}return{config:o,store:u,registry:d,compiled:f,neededInputPaths:_R(o),lastRenderCellsBySegment:new Map,authoredRoots:iU(c,l),fileHeldSettings:ZR(l),unused:[...new Map(a.flatMap(e=>KH(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 cU(e,t,n,r){let i=VI(e,t,n),a={layers:i.kind===`chain`?i.layers:[],home:i.home,projectDir:e},o=[KI(e,t),WI(i)],s,c=null;try{s=sU(t,a,o,r,e=>{c=e})}catch(e){return e instanceof oE&&o.push(...e.warnings),{layers:a.layers,home:a.home,failedFile:c,warning:oU(o),state:null,error:e instanceof oE||e instanceof Error?e.message:String(e)}}return{layers:a.layers,home:a.home,warning:oU(o),state:s,error:null}}function lU(e,t,n){return sU(e,{layers:[],home:``,projectDir:t},[],n)}var uU=class{entries=new Map;holds=new Map;deps;log;maxEntries;observers;constructor(e,t={}){this.deps=e,this.log=e.log??It,this.maxEntries=t.maxEntries??256,this.observers=t.observers??{}}getOrCreate(e,t,n){let r=rU(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=cU(e,t,n,this.deps);a.state!==null&&this.log(`info`,tU(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??lU(t,e,this.deps),watcher:null,watcherKey:null};if(this.serve(o.state),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.watcher?.release(),this.entries.delete(t),this.retire(n.state,`evict`)}}return this.refreshWatcher(o,a),this.observers.onReload?.(o),o}hold(e,t,n){let r=this.getOrCreate(e,t,n),{state:i}=r,a=this.holdOf(i);a.holders++;let o=!1;return{entry:r,state:i,[Symbol.dispose]:()=>{if(o)throw Error(`render-cache hold released twice`);o=!0,a.holders--,this.reclaim(i,a)}}}get stats(){let e=0,t=0;for(let n of this.holds.values())n.holders>0&&e++,n.retired!==null&&t++;return{size:this.entries.size,held:e,retired:t}}serve(e){this.holds.set(e,{holders:0,retired:null})}holdOf(e){let t=this.holds.get(e);if(t===void 0)throw Error(`render-cache state never served`);return t}retire(e,t){let n=this.holdOf(e);n.retired={reason:t,held:n.holders},this.reclaim(e,n)}reclaim(e,t){t.retired===null||t.holders>0||(this.holds.delete(e),this.log(`info`,nU(t.retired,e.registry.dispose())))}reload(e,t,n){this.reloadInto(this.getOrCreate(e,t,n))}reloadInto(e){let t=cU(e.projectDir,e.cwd,e.configFile,this.deps);if(e.lastWarning=t.warning,e.lastError=t.error,t.state!==null){this.log(`info`,tU(t.layers,t.state));let n=e.state;e.state=t.state,this.serve(t.state),this.retire(n,`reload`)}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=aU(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){this.log(`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 dU=16384;var fU=class e{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<dU){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%dU}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}}static referenceSnapshot(){return new e().snapshot({gitCache:{size:0,hits:0,misses:0,invalidations:0,watchers:0},usageCache:{size:0,hits:0,misses:0,sweeps:0},renderCache:{size:0,held:0,retired:0},effectCache:{sessions:0,effects:0},sessionState:{sessions:0,observers:0},frameFeeds:{feeds:0,subscribers:0,drawn:0,pushed:0},watchersActive:0,handlerProbes:[]})}snapshot(e){let t=process.memoryUsage();return{pid:process.pid,version:Dt,sourceDigest:Qh(),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:e.renderCache,effectCache:e.effectCache,sessionState:e.sessionState,frameFeeds:e.frameFeeds,watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null,handlerProbes:e.handlerProbes}}};function pU(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 mU={load:()=>({}),save:()=>{},flush:()=>{}};var hU=class{sessions;storage;head=0;atom=(0,z_.createAtom)(`SessionState`);constructor(e=mU,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}observers(){return this.atom.observers_?.size??0}size(){return this.sessions.size}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,z_.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,z_.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,z_.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 gU(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 _U=class{timer=null;pending=null;constructor(e,t=500,n=It){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 gU(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 vU={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`,updateNotice:`boolean`,transitions:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},yU=new Set([`1`,`true`]),bU=new Set([`0`,`false`,``]);function xU(e,t){let n=KU(e),r=n.scope===`segment-palette`?`string`:vU[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(yU.has(t))return`true`;if(bU.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function SU(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function CU(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 wU(e){return/^\s*$/.test(e)?null:Er(e)}function TU(e,t){return e!==null&&Or(e,t)!==void 0}function EU(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(EU),...i}}return e}function DU(e){if(!Wg(e))return EU(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,EU(t)])),...n}}const OU=xL,kU=OU.segments,AU=OU.presets,jU=OU.root;function MU(e,t,n,r){if(!TU(e,t)&&n===void 0)throw new K(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function NU(e,t){let n=nO(t);return t.scope===`segment-palette`&&MU(e,[`segments`,t.segment],kU[t.segment],n.join(`.`)),n}function PU(e){return Er(Ir(e))}function FU(){return Object.entries(jU.rows).map(([e,t])=>{let n=EU(t);return{path:[`root`],fragment:PU({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function IU(e,t){let n=e===null?void 0:Or(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function LU(e,t){if(t===void 0)return null;let n=DU(t);return{path:e,fragment:PU(n),unit:{path:e,value:n}}}function RU(e,t){let n=[`presets`,t],r=[...n,`root`],i=AU[t];MU(e,n,i,r.join(`.`));let a=IU(e,r)??LU(r,i?.root);return a!==null&&ri(a.fragment)?a:null}function zU(e,t){let n=ni(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 BU(e,t){return[...FU(),IU(e,[`root`]),RU(e,t)].filter(e=>e!==null).reduce(zU,new Map)}function VU(e,t,n){for(let{node:r,...i}of BU(e,t).values())if(ai(r,n))return i;throw new K(`${HU(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 HU(e,t){return RU(e,t)?.path??[`root`]}function UU(e,t){return t.scope===`preset-root`?HU(e,t.preset):nO(t)}function WU(e,{unit:t}){return t===null?e:Xr(e,t.path,Ir(t.value),Pr)}function GU(e){let t=tO(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function KU(e){let t=GU(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function qU(e,t,n,r,i){i(t,n,iW(t,r)),CU(t.path,r,e.logger),e.record(t.path,n,r)}function JU(e,t,n){let r=ZU(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 YU=()=>{};function XU(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 ZU(e,t,n){let r=QU(e,t);if(r===null)return[];let i=new Set(nW(tW(r),tW(n)));return nW(eW(e,r),eW(e,n)).filter(e=>!i.has(e))}function QU(e,t){try{return $U(e,t)}catch(e){if(e instanceof oE)return null;throw e}}function $U(e,t){return eL(t===null?e.above:[e.path,...e.above],CL,{entered:()=>{},warned:()=>{}},{projectDir:e.projectDir,cwd:e.cwd},n=>n===e.path&&t!==null?t:r.readFileSync(n,`utf8`))}function eW(e,t){let[n]=t.layers;return n?.path===e.path?n.config:t.base}function tW(e){return e.layers.at(-1)?.config??e.base}function nW(e,t,n=``){return!rW(e)||!rW(t)?JSON.stringify(e)===JSON.stringify(t)?[]:[n]:[...new Set([...Object.keys(e),...Object.keys(t)])].flatMap(r=>nW(e[r],t[r],n===``?r:`${n}.${r}`))}function rW(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function iW(e,t){try{return $U(e,t)}catch(e){throw e instanceof oE?new K(`refused: the config file would not load after this click — ${e.message}`):e}}function aW(e,t){let n=KU(t),r=wU(SU(e)??``),i=r===null?void 0:Or(r,nO(n));return i!==void 0&&`value`in i?i.value:void 0}function oW(e,t,n){sW(e,t,n,[])}function sW(e,t,n,r){let i=SU(t.path),a=n.reduce((e,[t,n])=>Xr(e,NU(wU(e),KU(t)),xU(t,n),Pr),i??``);qU(e,t,i,XU(t,()=>cW(a,t.path,r,e=>e)),JU)}function cW(e,t,n,r){return n.reduce((e,{preset:n,id:i,setting:a,value:o})=>{let s=r(e,n,i),c=VU(wU(s),n,i),l=li(WU(s,c),c.path,i,a,Ir(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 lW(e,t,n){let r=wU(e),i=[`presets`,t,`root`];for(let[a,{path:o,unit:s,node:c}]of BU(r,t)){if(!ai(c,n))continue;if(i.every((e,t)=>o[t]===e))return e;let l=s===null?Ar(e,c):Ir(s.value);if(a!==`#`)return Xr(e,[...i,`rows`,a],l,Pr);if(RU(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 Xr(e,i,l,Pr)}return e}function uW(e,t){return Qr(e,t,t[0]===`presets`&&t.length>2&&!TL(t[1])?2:0)}function dW(e,t,n){let r=n.map(GU),i=SU(t.path);if(i===null)return;let a=r.reduce((e,t)=>uW(e,UU(wU(e),t)),i);a!==i&&qU(e,t,i,a,YU)}function fW(e){let t=e===null?void 0:Or(e,[`presets`]);return t?.kind===`object`?t.entries.map(e=>e.key):[]}function pW(e,t){let n=new Set([...wL,...fW(e),...t.above.flatMap(e=>Object.keys(yr.default.parse(r.readFileSync(e,`utf8`)).presets??{}))].map(aE));return Array.from({length:n.size+1},(e,t)=>`custom-${t+1}`).find(e=>!n.has(aE(e)))}function mW(e,t,n,r,i,a){let o=SU(t.path),s=wU(o??``),c=pW(s,t),l=[`presets`,c],u=XU(t,()=>RU(s,n)),d=[...u===null?[]:[[[...l,`root`],u.unit===null?Ar(o??``,u.fragment):Ir(u.unit.value)]],...Object.keys(r).length===0?[]:[[[...l,`globals`],Ir(r)]]],f=i.map(([e,t])=>{let n=eO(c,e);return[NU(s,KU(n)),xU(n,t)]}),p=[...d,...f].reduce((e,[t,n])=>Xr(e,t,n,Pr),Xr(o??``,l,`{}`,Pr));return qU(e,t,o,XU(t,()=>cW(p,t.path,a.map(e=>({...e,preset:c})),lW)),JU),c}function hW(e,t,n,r){let i=SU(t.path);qU(e,t,i,Xr(i??``,[`themeDefaults`,n],Ir(r),Pr),JU)}function gW(e,t,n){if(TL(n))throw new K(`cannot delete preset "${n}": it is bundled — reset its settings instead`);let r=[`presets`,n],i=SU(t.path),a=wU(i??``);if(i===null||a===null||Or(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=Or(a,[`globals`,`preset`]);qU(e,t,i,[r,...o?.kind===`string`&&o.value===n?[[`globals`,`preset`]]:[]].reduce((e,t)=>uW(e,t),i),YU)}function _W(e,t,n,r){let i=GU(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=SU(t.path),o=r.op===`remove`?r.target:r.anchor,s=XU(t,()=>VU(wU(a??``),i.preset,o)),c=WU(a??``,s),{after:l,placed:u}=vW(c,s.path,r,()=>{let e=iW(t,c).config;return e_(e.presets).map(t=>r_(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 qU(e,t,a,l,JU),u}function vW(e,t,n,r){switch(n.op){case`remove`:return{after:si(e,t,n.target),placed:null};case`insert`:{let i=fM(n.segment,n.anchor,r());return{after:ci(e,t,i,n.anchor,n.relation),placed:i}}}}const yW={load:()=>({}),save:()=>{}},bW=new Set(Ca.map(e=>e.sessionKey)),xW=e=>bW.has(e)||e.startsWith(pO),SW=8*1024*1024,CW={past:[],future:[]},wW=e=>e.kind===`session`?`session:${e.key}`:`file:${e.file}`;var TW=class{state=new Map;constructor(e,t,n=yW){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)??CW;return{undo:t.length,redo:n.length,sinceEdit:r?.net.length??0}}history(e){return this.state.get(e)??CW}begin(){let e=new Map,t=(t,n)=>{let r=e.get(t)??new Map,i=r.get(wW(n));r.set(wW(n),i===void 0?n:{...n,before:i.before}),e.set(t,r)},n=new Map;return{sessionState:pU(this.sessionState,e=>xW(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:NW(i,n),o=r.get(e),s=o===void 0?a:LW(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`,FW(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(wW)),a=n.net.filter(e=>!i.has(wW(e))),o=OW(RW(IW(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(BW).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=OW(a);return this.apply(e,i,`after`,`redo`,{past:o,future:r.slice(0,-1),...AW(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(wW)),{past:n,future:i,savepoint:a}=this.history(e);throw this.put(e,{past:RW(n,t),future:RW(i,t),...a!==void 0&&{savepoint:{at:RW([...n,...[...i].reverse()].slice(0,a.at),t).length,net:a.net.filter(e=>!t.has(wW(e))),below:RW(a.below,t)}}}),new K(`${r}: ${o.map(BW).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):SU(t.file)}write(e,t,n){t.kind===`file`?CU(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||EW(n)>SW;){let[e,t]=n.entries().next().value;n.size>1?n.delete(e):t.past.length+t.future.length>0?n.set(e,DW(t)):(this.logger(`warn`,`settings-history: edit mode's changes for session ${e} exceed ${SW} bytes; cancel is no longer available`),n.delete(e))}this.storage.save(Object.fromEntries(n)),this.state=n}};function EW(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 DW({past:e,future:t,savepoint:n}){return e.length>0?{past:e.slice(1),future:t,...AW(n,1,[])}:{past:e,future:t.slice(1),...AW(n,0,[])}}function OW(e){return e.slice(-50)}const kW=e=>e===hO.member;function AW(e,t,n){return e===void 0?{}:{savepoint:{at:Math.max(0,e.at-t),net:jW(e.net,n),below:e.below}}}function jW(e,t){let n=new Map(e.map(e=>[wW(e),e]));for(let e of t){let t=n.get(wW(e));n.set(wW(e),t===void 0?e:{...t,after:e.after})}return[...n.values()].filter(e=>e.before!==e.after)}const MW=e=>e.map(e=>({...e,before:e.after,after:e.before}));function NW(e,t){let n=[...e.past,t],r=OW(n),{savepoint:i}=e,a=i===void 0?0:Math.max(0,i.at-e.past.length);return{past:r,future:[],...AW(i&&{at:Math.min(i.at,e.past.length),net:i.net,below:[...PW(e.future,a),...i.below]},n.length-r.length,t)}}function PW(e,t){let n=Math.min(t,e.length);return e.slice(e.length-n).reverse()}function FW(e,t){return{past:e.past.slice(0,-1),future:OW([...e.future,t]),...AW(e.savepoint,0,MW(t))}}function IW(e,t){let{past:n,future:r}=e,i=n.slice(0,t.at);return[...i,...PW(r,t.at-i.length),...t.below]}function LW(e,t){if(kW(t.after)&&!kW(t.before))return{...e,savepoint:{at:e.past.length,net:[],below:[]}};if(!kW(t.after)&&kW(t.before)){let{past:t,future:n}=e;return{past:t,future:n}}return e}function RW(e,t){return e.map(e=>e.filter(e=>!t.has(wW(e)))).filter(e=>e.length>0)}function zW(e){return e.map(BW).join(`, `)}function BW(e){return e.kind===`session`?`session setting "${e.key}"`:e.file}function VW(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 HW(e){return Array.isArray(e)&&e.every(e=>Array.isArray(e)&&e.every(VW))}function UW(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(VW)&&HW(t.below)}function WW(e){if(typeof e!=`object`||!e)return!1;let t=e;return HW(t.past)&&HW(t.future)&&(t.savepoint===void 0||UW(t.savepoint))}function GW(e,t){let n=e=>e.kind===`file`||xW(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 KW(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(WW)){let n=new Set,r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,GW(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 qW=e=>!xW(e)&&!Pk(e)&&e!==`update.dismissed`;var JW=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:pU(e,qW,(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,z_.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 YW=`click.error`;function XW(e,t,n,r){e.set(t,YW,JSON.stringify({text:n,at:r}))}function ZW(e,t){let n=e.get(t,YW);return n===null?null:$W(n)??{text:n,at:0}}function QW(e,t,n){let r=ZW(e,t);r!==null&&n>=r.at+1&&e.clear(t,YW)}function $W(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let{text:n,at:r}=t;return typeof n==`string`&&typeof r==`number`?{text:n,at:r}:null}const eG=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function tG(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(!eG(r))return n(`is not an object`);for(let[e,t]of Object.entries(r)){if(!eG(t))return n(`holds ${JSON.stringify(e)} as something other than its sightings`);for(let[e,r]of Object.entries(t))if(!tk.includes(r))return n(`marks ${JSON.stringify(e)} ${JSON.stringify(r)}, not ${tk.join(` or `)}`)}return{kind:`ok`,value:r}}function nG(e,t,n,r){return{...e,[t]:{...e[t],[n]:r}}}function rG(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 tG(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(nG(o.value,n,i,a),null,2)}\n`)}}}var iG=class extends Error{constructor(e){super(`the doctor looked at ${e} less than a second ago — click again`),this.name=`DoctorBusy`}};
|
|
185
|
+
`);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function hH(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 gH(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 _H(e){return{...e,cells:e.cells.map(HB)}}function vH(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,...yH(e,r)]}function yH(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 bH(e,t){let n=(e,r)=>t(e)?e.kind===`segment`?[{cells:[{name:e.name,address:r,settings:e.settings}],band:`own`,place:`flow`}]:vH(e.direction,e.children.map((t,i)=>n(t,[...r,xH(e,i)]))):[];return n(e,[]).map(e=>[...e.cells])}function xH(e,t){return{index:t,count:e.children.length,distribution:e.distribution,axis:dg[e.direction]}}const SH={compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:yp(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,_g(t.path,n)))}},render(e,t){return t.gate.kind===`failed`&&t.gate.report(),vH(e.direction,e.children.map((n,r)=>t.renderChild(n,t.gate.kind===`shown`,xH(e,r))))}},CH={drop:e=>e.place,above:()=>`above`},wH={drop:(e,t)=>({lead:t(),stays:e}),above:e=>({lead:e.slice(0,1).flatMap(e=>e.cells),stays:e.slice(1)})},TH={compile(e,t){return{kind:`segment`,when:t.when,name:e.name,id:fg(e),settings:t.placementSettings(e),...e.opens!==void 0&&{opens:{open:t.parse(ar(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,vg(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,EH(e,t))};function EH(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=Lw(t.scope,e.settings);if(t.gate.kind===`failed`)return DH(e,a,t,t.gate.message);try{if(!FB(i.when,a))return[];let n=ng(e.settings.theme,t.palette),o={id:e.id,effect:e.settings.effect,ground:TO(n)},s=e.opens!==void 0&&FB(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:CH[g.placement](e)})),v=mH(YB(l,m)).map((e,t)=>({cells:GB(e,{...h,lead:t===0?YB(u,m):[],trail:t===0?YB(d,m):[]}),band:`own`,place:`flow`})),y=f.map(e=>({cells:GB(YB([e],c.band),{...h,baseStyle:c.band}),band:`deeper`,place:`flow`})),b=(e,t,n)=>GB(YB([e],t),{...h,width:`auto`,baseStyle:t,padding:n}),x=_.findIndex(e=>e.band===`own`),{lead:S,stays:C}=g!==void 0&&x!==-1?wH[g.placement](v,()=>b(t.closeDisclosure(g.key),c.close,t.padding)):{lead:[],stays:v},ee=S.flatMap(e=>b(new K(` `.repeat(VB(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(VB)),[...re,...ne]}catch(n){return DH(e,a,t,n.message??String(n))}}function DH(e,t,n,r){n.onSegmentError?.(e.id,r);let i=r.replace(/\s*\n\s*/g,` `);return[{cells:GB([new K(`⚠ ${e.id}: ${i}`,{end:``})],{width:`auto`,justify:`left`,truncate:`right`,padding:0,placement:{id:e.id,effect:`bar`,ground:TO(n.palette)},lead:OH(e.lead,e,t,n),trail:OH(e.trail,e,t,n)}),band:`own`,place:`flow`}]}function OH(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 kH={container:SH,segment:TH};function AH(e){return kH[e]}function jH(e){if(`ttl`in e)return{kind:`ttl`,durationMs:MT(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 MH(e,t){switch(Sg(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 NH(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:jH(n.cache),parse:MH(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cwd:r,cache:jH(n.cache),parse:MH(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 PH(e,t){let n=bv.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 FH=(e,t,n,r,i)=>{let a=OL(t,DL(n,e.themeDefaults));return{variation:pp[r??qm(void 0,null,a.variation)],shade:dp[i??Xm(void 0,null,a.shade)]}};function IH(e,t,n){let r=n.cwd,i={store:t.variableStore,compiled:new Map,chromeCols:Eh({endcaps:`powerline`}),width:80,padding:1,seamCols:Dh({endcaps:`powerline`}),layout:()=>[],look:void 0},a=kV(t.drawnAt),o={action:i,activeSegment:a},s=Object.keys(e.styles),c=$g(e.presets),l=Gj(e),u=Pw({extraFuncs:{...fV(i),...VV(i,a),...GV(i,a),...eH(i,a),...YV(i,a,t.now),...aH(i,a),...lH(o),...fH(a),styles:{fn:()=>s,argTypes:[],arity:{kind:`exact`}},presets:{fn:()=>c,argTypes:[],arity:{kind:`exact`}}},clock:t.now,drawnAt:t.drawnAt}),d=PH(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 Da)n in e.variables&&h.set(t,n);for(let[t,n]of Eg(e))h.has(n.key)||h.set(n.key,t);i.compiled=$B(f,e.actions,h,l);let g=[];for(let[n,i]of Object.entries(e.variables))try{NH(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{NH(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=Ag(e.segments[t.name]),r=Object.create(null);for(let[e,i]of Object.entries(n))Object.defineProperty(r,e,{enumerable:!0,get:()=>Ig(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 AH(e.kind).compile(e,n)},S=new Map;for(let t of c){let{node:n,path:r}=n_(e,t);S.set(t,x(n,r))}let C=new Map(Sm.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 Sm){let r=t[n];if(!Cm(r))continue;let i=`${e}.${n}`,a=C.get(n),o=a.get(r);a.set(r,o===void 0?{where:i,template:LH(f,i,r)}:{where:`${o.where}, ${i}`,template:o.template})}return{segments:_,roots:S,activeSegment:a,menuRuntime:o,globalExpressions:C,loadWarnings:g}}function LH(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 RH(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 zH(e,t,n,r){try{return t.template.evaluate(n).map(e=>e.plain).join(``)}catch(n){return r({kind:`rule`,slot:e,message:Mm(t.where,e,`the rule failed — ${n instanceof Error?n.message:String(n)}`)}),jm[e]}}function BH(e,t){return e.kind===`decided`?e.name:jm[t]}function VH(e){return e.kind===`container`?e.children.flatMap(VH):[...e.name.startsWith(`edit.`)?[]:[e.id],...e.opens===void 0?[]:VH(e.opens.body)]}function HH(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(Wm(o.colorCompatibility));let{preset:m=Zg}=c??{},h=r_(e,m),g=c?.style??Om(`none`,e.styles),_=c?.theme??cg(void 0,null,h.palette),v=FH(e,h,_,c?.variation,c?.shade),y=c?.effect??Lm(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(BH(_,`palette`),BH(g,`style`),BH(y,`effect`))),t.menuRuntime.action.chromeCols=Eh(o),t.menuRuntime.action.padding=o.padding,t.menuRuntime.action.width=o.width,t.menuRuntime.action.seamCols=Dh(o);let x=Fw(n),S=Tm(_,e=>{let n=RH(t,`palette`,e);return sg(zH(`palette`,n,x,f),n.where,e=>f({kind:`rule`,slot:`palette`,message:e}))}),C=Tm(g,n=>Om(zH(`style`,RH(t,`style`,n),x,f),e.styles)),ee=Tm(y,e=>Im(zH(`effect`,RH(t,`effect`,e),x,f)));(S!==_||C!==g||ee!==y)&&r.applyInput(b(S.name,C.name,ee.name));let te=S.value,ne=ig(te,C.value);t.menuRuntime.action.look={basePalette:te,palette:ne,decor:v};let re=(c?.effects??new vh(``)).motion(ee.value,a,{transitions:c?.transitions??oh(void 0,null,h.transitions),source:{config:t,preset:m,revision:r.stateRevision(),width:o.width},returned:gH,hold:_H});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}=fm(i,a,c),f=AV(t.activeSegment,e.name,e.id,i,d,l,u),m=DO(f,c,o.bg,o.fg,n),h=()=>$p(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 mV(i,h().state,c)},get band(){return mV(i,h().plane,c)},get close(){return _V(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?RB(e.when,x):IB,a=i.kind===`failed`?{...i,report:()=>{let t=`when over ${VH(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,um(r,n)),renderBody:(e,t,n)=>w(e,a.kind===`shown`&&t,dm(n)),closeDisclosure:e=>pV(n,e),placed:re.placed};return AH(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 "${Zg}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);let oe=e=>{let n=RB(e.when,x);if(e.kind===`container`)return n.kind===`shown`;if(nM(e.name)===void 0)return!1;if(n.kind!==`shown`)return n.kind===`failed`;try{return FB(t.segments[e.name].when,Lw(x,e.settings))}catch{return!0}};t.menuRuntime.action.layout=()=>bH(T,oe).map(e=>e.flatMap(({name:e,address:t,settings:n})=>{let r=nM(e);return r===void 0?[]:[{name:r,address:t,palette:ng(n.theme,ne)}]}));let E=hH(w(T,!0,lm(v))).map(({line:e,row:t})=>{let n=JB(e.cells,o);return jh(n.map(e=>e.owner),o,re.row(t,n))}).join(`
|
|
186
|
+
`);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*UH(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*WH(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 $g(e.presets)){for(let n of gg(n_(e,t).node))n.when!==void 0&&(yield n.when);let n=r_(e,t);for(let e of Sm){let t=n[e];Cm(t)&&(yield t)}}for(let[,t]of UH(e))t.kind===`template`&&(yield t.template),wg(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 GH(e,t){return e===t||t.startsWith(`${e}.`)||e.startsWith(`${t}.`)}function KH(e,t){let n=new Set,r=new Set,i=new Set;for(let e of WH(t)){for(let r of w_(e,t.helpers).keys())n.add(r);for(let{name:n}of O_(e,t.helpers))r.add(n);for(let n of k_(e,t.helpers))i.add(n)}for(let[,e]of UH(t))if(wg(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 $g(t.presets))for(let n of gg(n_(t,e).node))n.kind===`segment`&&s.add(n.name);let c=(e,t)=>[...n].some(t=>GH(t,e))||t.kind===`state`&&o.has(t.key),l=e=>[...e].filter(e=>!mE(e)),u=(e,t,n)=>l(t).filter(e=>!n(e)).map(t=>({kind:e,name:t})),d=new Map(UH(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 qH=class{kind=`box`;cell;lastChangedAt;constructor(e,t,n){this.name=e,this.type=t,$H(e,t,n,`initial value`),this.cell=R_.observable.box(n,{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){$H(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}},JH=class{kind=`computed`;cell;constructor(e,t,n){if(this.name=e,this.type=t,this.cell=(0,R_.computed)(()=>{let e=n();return $H(this.name,this.type,e,`computed result`),e},{keepAlive:!0}),typeof this.cell.suspend_!=`function`)throw TypeError(`Variable "${e}": this MobX's computed has no suspend_; release() cannot unsubscribe it`);if(typeof this.cell.keepAlive_!=`boolean`)throw TypeError(`Variable "${e}": this MobX's computed has no keepAlive_ flag; release() cannot lift it`)}read(){return this.cell.get()}release(){this.cell.keepAlive_=!1,this.cell.suspend_()}lastUpdatedMs(){return null}},YH=class{kind=`document`;cell;lastChangedAt;constructor(e,t){this.name=e,this.cell=R_.observable.box(QH(t),{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){let t=QH(e);ZH(this.cell.get(),t)||(this.cell.set(t),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}};function XH(e){return JSON.stringify(e)}function ZH(e,t){return XH(e)===XH(t)}function QH(e){return e.kind===`ok`?{kind:`ok`,value:z_(e.value)}:e}function $H(e,t,n,r){let i=B_(n);if(i!==t)throw TypeError(`Variable "${e}": ${r} type ${i} does not match declared type ${t}`)}var eU=class{nodes=R_.observable.map(void 0,{deep:!1});defineBox(e,t,n){this.declare(e,new qH(e,t,n))}defineDocument(e,t){this.declare(e,new YH(e,t))}defineComputed(e,t,n){let r=e=>this.read(e);this.declare(e,new JH(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,R_.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,R_.runInAction)(()=>n.set(t))}runInAction(e){(0,R_.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 XH(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()]}dispose(){if(this.disposed)return 0;this.disposed=!0;let e=0;return(0,R_.runInAction)(()=>{for(let t of this.nodes.values())t instanceof JH&&(t.release(),e++)}),e}disposed=!1;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.disposed)throw Error(`Variable "${e}": cannot declare on a disposed store`);if(this.nodes.has(e))throw Error(`Variable "${e}" is already declared`);(0,R_.runInAction)(()=>this.nodes.set(e,t))}};function tU(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=cI(e),r=t===void 0?void 0:n.variables[uI(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 nU(e,t){return`config disposed reason=${e.reason} released=${t} held=${e.held}`}function rU(e,t,n){return e+`\0`+t+`\0`+(n??``)}function iU(e,t){return new Set($g(e.presets).filter(n=>n_(e,n).path===`root`?t.root!==void 0:t.presets?.[n]?.root!==void 0))}function aU(e,t){let n=new Map,{roots:r,loaded:i,dropped:a,unreached:o}=e.state.plugins;for(let t of[...zI(e.projectDir,e.cwd,e.configFile),...r,...i,...[...a,...o].map(e=>e.path)]){let{dir:e,name:r}=P_(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}=P_(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 oU(e){return e.filter(Boolean).join(`
|
|
187
|
+
`)||null}function sU(e,t,n,r,i=()=>{}){let{layers:a,config:o,installed:s}=eL(t.layers,CL,{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??CL,l=a.find(e=>e.path===t.home)?.raw??{},u=new eU,d=new $T(u,o.globals.default_empty_value??``,r.gitService,r.sessionState),f;try{f=IH(o,d,{cwd:e}),n.push(...f.loadWarnings),dz(o),TM(o)}catch(e){throw d.dispose(),e}return{config:o,store:u,registry:d,compiled:f,neededInputPaths:_R(o),lastRenderCellsBySegment:new Map,authoredRoots:iU(c,l),fileHeldSettings:ZR(l),unused:[...new Map(a.flatMap(e=>KH(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 cU(e,t,n,r){let i=VI(e,t,n),a={layers:i.kind===`chain`?i.layers:[],home:i.home,projectDir:e},o=[KI(e,t),WI(i)],s,c=null;try{s=sU(t,a,o,r,e=>{c=e})}catch(e){return e instanceof aE&&o.push(...e.warnings),{layers:a.layers,home:a.home,failedFile:c,warning:oU(o),state:null,error:e instanceof aE||e instanceof Error?e.message:String(e)}}return{layers:a.layers,home:a.home,warning:oU(o),state:s,error:null}}function lU(e,t,n){return sU(e,{layers:[],home:``,projectDir:t},[],n)}var uU=class{entries=new Map;holds=new Map;deps;log;maxEntries;observers;constructor(e,t={}){this.deps=e,this.log=e.log??It,this.maxEntries=t.maxEntries??256,this.observers=t.observers??{}}getOrCreate(e,t,n){let r=rU(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=cU(e,t,n,this.deps);a.state!==null&&this.log(`info`,tU(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??lU(t,e,this.deps),watcher:null,watcherKey:null};if(this.serve(o.state),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.watcher?.release(),this.entries.delete(t),this.retire(n.state,`evict`)}}return this.refreshWatcher(o,a),this.observers.onReload?.(o),o}hold(e,t,n){let r=this.getOrCreate(e,t,n),{state:i}=r,a=this.holdOf(i);a.holders++;let o=!1;return{entry:r,state:i,[Symbol.dispose]:()=>{if(o)throw Error(`render-cache hold released twice`);o=!0,a.holders--,this.reclaim(i,a)}}}get stats(){let e=0,t=0;for(let n of this.holds.values())n.holders>0&&e++,n.retired!==null&&t++;return{size:this.entries.size,held:e,retired:t}}serve(e){this.holds.set(e,{holders:0,retired:null})}holdOf(e){let t=this.holds.get(e);if(t===void 0)throw Error(`render-cache state never served`);return t}retire(e,t){let n=this.holdOf(e);n.retired={reason:t,held:n.holders},this.reclaim(e,n)}reclaim(e,t){t.retired===null||t.holders>0||(this.holds.delete(e),this.log(`info`,nU(t.retired,e.registry.dispose())))}reload(e,t,n){this.reloadInto(this.getOrCreate(e,t,n))}reloadInto(e){let t=cU(e.projectDir,e.cwd,e.configFile,this.deps);if(e.lastWarning=t.warning,e.lastError=t.error,t.state!==null){this.log(`info`,tU(t.layers,t.state));let n=e.state;e.state=t.state,this.serve(t.state),this.retire(n,`reload`)}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=aU(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){this.log(`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 dU=16384;var fU=class e{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<dU){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%dU}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}}static referenceSnapshot(){return new e().snapshot({gitCache:{size:0,hits:0,misses:0,invalidations:0,watchers:0},usageCache:{size:0,hits:0,misses:0,sweeps:0},renderCache:{size:0,held:0,retired:0},effectCache:{sessions:0,effects:0},sessionState:{sessions:0,observers:0},frameFeeds:{feeds:0,subscribers:0,drawn:0,pushed:0},watchersActive:0,handlerProbes:[]})}snapshot(e){let t=process.memoryUsage();return{pid:process.pid,version:Dt,sourceDigest:Zh(),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:e.renderCache,effectCache:e.effectCache,sessionState:e.sessionState,frameFeeds:e.frameFeeds,watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null,handlerProbes:e.handlerProbes}}};function pU(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 mU={load:()=>({}),save:()=>{},flush:()=>{}};var hU=class{sessions;storage;head=0;atom=(0,R_.createAtom)(`SessionState`);constructor(e=mU,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}observers(){return this.atom.observers_?.size??0}size(){return this.sessions.size}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,R_.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,R_.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,R_.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 gU(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 _U=class{timer=null;pending=null;constructor(e,t=500,n=It){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 gU(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 vU={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`,updateNotice:`boolean`,transitions:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},yU=new Set([`1`,`true`]),bU=new Set([`0`,`false`,``]);function xU(e,t){let n=KU(e),r=n.scope===`segment-palette`?`string`:vU[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(yU.has(t))return`true`;if(bU.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function SU(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function CU(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 wU(e){return/^\s*$/.test(e)?null:Er(e)}function TU(e,t){return e!==null&&Or(e,t)!==void 0}function EU(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(EU),...i}}return e}function DU(e){if(!Ug(e))return EU(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,EU(t)])),...n}}const OU=xL,kU=OU.segments,AU=OU.presets,jU=OU.root;function MU(e,t,n,r){if(!TU(e,t)&&n===void 0)throw new q(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function NU(e,t){let n=nO(t);return t.scope===`segment-palette`&&MU(e,[`segments`,t.segment],kU[t.segment],n.join(`.`)),n}function PU(e){return Er(Ir(e))}function FU(){return Object.entries(jU.rows).map(([e,t])=>{let n=EU(t);return{path:[`root`],fragment:PU({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function IU(e,t){let n=e===null?void 0:Or(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function LU(e,t){if(t===void 0)return null;let n=DU(t);return{path:e,fragment:PU(n),unit:{path:e,value:n}}}function RU(e,t){let n=[`presets`,t],r=[...n,`root`],i=AU[t];MU(e,n,i,r.join(`.`));let a=IU(e,r)??LU(r,i?.root);return a!==null&&ri(a.fragment)?a:null}function zU(e,t){let n=ni(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 BU(e,t){return[...FU(),IU(e,[`root`]),RU(e,t)].filter(e=>e!==null).reduce(zU,new Map)}function VU(e,t,n){for(let{node:r,...i}of BU(e,t).values())if(ai(r,n))return i;throw new q(`${HU(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 HU(e,t){return RU(e,t)?.path??[`root`]}function UU(e,t){return t.scope===`preset-root`?HU(e,t.preset):nO(t)}function WU(e,{unit:t}){return t===null?e:Xr(e,t.path,Ir(t.value),Pr)}function GU(e){let t=tO(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function KU(e){let t=GU(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function qU(e,t,n,r,i){i(t,n,iW(t,r)),CU(t.path,r,e.logger),e.record(t.path,n,r)}function JU(e,t,n){let r=ZU(e,t,n);if(r.length>0)throw new q(`refused: ${e.above.join(`, `)} sets ${r.join(`, `)} over ${e.path}, so this click would change nothing on the bar — edit it there`)}const YU=()=>{};function XU(e,t){try{return t()}catch(t){throw!(t instanceof q)||e.above.length===0?t:new q(`${t.message} — or it is declared by ${e.above.join(`, `)}, which the bar does not edit`)}}function ZU(e,t,n){let r=QU(e,t);if(r===null)return[];let i=new Set(nW(tW(r),tW(n)));return nW(eW(e,r),eW(e,n)).filter(e=>!i.has(e))}function QU(e,t){try{return $U(e,t)}catch(e){if(e instanceof aE)return null;throw e}}function $U(e,t){return eL(t===null?e.above:[e.path,...e.above],CL,{entered:()=>{},warned:()=>{}},{projectDir:e.projectDir,cwd:e.cwd},n=>n===e.path&&t!==null?t:r.readFileSync(n,`utf8`))}function eW(e,t){let[n]=t.layers;return n?.path===e.path?n.config:t.base}function tW(e){return e.layers.at(-1)?.config??e.base}function nW(e,t,n=``){return!rW(e)||!rW(t)?JSON.stringify(e)===JSON.stringify(t)?[]:[n]:[...new Set([...Object.keys(e),...Object.keys(t)])].flatMap(r=>nW(e[r],t[r],n===``?r:`${n}.${r}`))}function rW(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function iW(e,t){try{return $U(e,t)}catch(e){throw e instanceof aE?new q(`refused: the config file would not load after this click — ${e.message}`):e}}function aW(e,t){let n=KU(t),r=wU(SU(e)??``),i=r===null?void 0:Or(r,nO(n));return i!==void 0&&`value`in i?i.value:void 0}function oW(e,t,n){sW(e,t,n,[])}function sW(e,t,n,r){let i=SU(t.path),a=n.reduce((e,[t,n])=>Xr(e,NU(wU(e),KU(t)),xU(t,n),Pr),i??``);qU(e,t,i,XU(t,()=>cW(a,t.path,r,e=>e)),JU)}function cW(e,t,n,r){return n.reduce((e,{preset:n,id:i,setting:a,value:o})=>{let s=r(e,n,i),c=VU(wU(s),n,i),l=li(WU(s,c),c.path,i,a,Ir(o));if(l===null)throw new q(`${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 lW(e,t,n){let r=wU(e),i=[`presets`,t,`root`];for(let[a,{path:o,unit:s,node:c}]of BU(r,t)){if(!ai(c,n))continue;if(i.every((e,t)=>o[t]===e))return e;let l=s===null?Ar(e,c):Ir(s.value);if(a!==`#`)return Xr(e,[...i,`rows`,a],l,Pr);if(RU(r,t)!==null)throw new q(`cannot give preset "${t}" its own copy of ${o.join(`.`)}: it already stages rows of its own over that tree`);return Xr(e,i,l,Pr)}return e}function uW(e,t){return Qr(e,t,t[0]===`presets`&&t.length>2&&!TL(t[1])?2:0)}function dW(e,t,n){let r=n.map(GU),i=SU(t.path);if(i===null)return;let a=r.reduce((e,t)=>uW(e,UU(wU(e),t)),i);a!==i&&qU(e,t,i,a,YU)}function fW(e){let t=e===null?void 0:Or(e,[`presets`]);return t?.kind===`object`?t.entries.map(e=>e.key):[]}function pW(e,t){let n=new Set([...wL,...fW(e),...t.above.flatMap(e=>Object.keys(yr.default.parse(r.readFileSync(e,`utf8`)).presets??{}))].map(iE));return Array.from({length:n.size+1},(e,t)=>`custom-${t+1}`).find(e=>!n.has(iE(e)))}function mW(e,t,n,r,i,a){let o=SU(t.path),s=wU(o??``),c=pW(s,t),l=[`presets`,c],u=XU(t,()=>RU(s,n)),d=[...u===null?[]:[[[...l,`root`],u.unit===null?Ar(o??``,u.fragment):Ir(u.unit.value)]],...Object.keys(r).length===0?[]:[[[...l,`globals`],Ir(r)]]],f=i.map(([e,t])=>{let n=eO(c,e);return[NU(s,KU(n)),xU(n,t)]}),p=[...d,...f].reduce((e,[t,n])=>Xr(e,t,n,Pr),Xr(o??``,l,`{}`,Pr));return qU(e,t,o,XU(t,()=>cW(p,t.path,a.map(e=>({...e,preset:c})),lW)),JU),c}function hW(e,t,n,r){let i=SU(t.path);qU(e,t,i,Xr(i??``,[`themeDefaults`,n],Ir(r),Pr),JU)}function gW(e,t,n){if(TL(n))throw new q(`cannot delete preset "${n}": it is bundled — reset its settings instead`);let r=[`presets`,n],i=SU(t.path),a=wU(i??``);if(i===null||a===null||Or(a,r)===void 0)throw new q(`cannot delete preset "${n}": ${t.path} declares no ${r.join(`.`)} — the bar you clicked is stale; it reloads on the next render`);let o=Or(a,[`globals`,`preset`]);qU(e,t,i,[r,...o?.kind===`string`&&o.value===n?[[`globals`,`preset`]]:[]].reduce((e,t)=>uW(e,t),i),YU)}function _W(e,t,n,r){let i=GU(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=SU(t.path),o=r.op===`remove`?r.target:r.anchor,s=XU(t,()=>VU(wU(a??``),i.preset,o)),c=WU(a??``,s),{after:l,placed:u}=vW(c,s.path,r,()=>{let e=iW(t,c).config;return $g(e.presets).map(t=>n_(e,t).node)});if(l===null)throw new q(`${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 qU(e,t,a,l,JU),u}function vW(e,t,n,r){switch(n.op){case`remove`:return{after:si(e,t,n.target),placed:null};case`insert`:{let i=fM(n.segment,n.anchor,r());return{after:ci(e,t,i,n.anchor,n.relation),placed:i}}}}const yW={load:()=>({}),save:()=>{}},bW=new Set(Ca.map(e=>e.sessionKey)),xW=e=>bW.has(e)||e.startsWith(pO),SW=8*1024*1024,CW={past:[],future:[]},wW=e=>e.kind===`session`?`session:${e.key}`:`file:${e.file}`;var TW=class{state=new Map;constructor(e,t,n=yW){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)??CW;return{undo:t.length,redo:n.length,sinceEdit:r?.net.length??0}}history(e){return this.state.get(e)??CW}begin(){let e=new Map,t=(t,n)=>{let r=e.get(t)??new Map,i=r.get(wW(n));r.set(wW(n),i===void 0?n:{...n,before:i.before}),e.set(t,r)},n=new Map;return{sessionState:pU(this.sessionState,e=>xW(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:NW(i,n),o=r.get(e),s=o===void 0?a:LW(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 q(`undo: nothing to undo`);return this.apply(e,n,`before`,`undo`,FW(t,n)),n}rewind(e){let t=this.history(e),{savepoint:n}=t;if(n===void 0)throw new q(`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(wW)),a=n.net.filter(e=>!i.has(wW(e))),o=OW(RW(IW(t,n),i));if(this.apply(e,a,`before`,`rewind`,{past:o,future:[],savepoint:{at:o.length,net:[],below:[]}}),r.length>0)throw new q(`rewind: ${r.map(BW).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 q(`redo: nothing to redo`);let a=[...n,i],o=OW(a);return this.apply(e,i,`after`,`redo`,{past:o,future:r.slice(0,-1),...AW(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(wW)),{past:n,future:i,savepoint:a}=this.history(e);throw this.put(e,{past:RW(n,t),future:RW(i,t),...a!==void 0&&{savepoint:{at:RW([...n,...[...i].reverse()].slice(0,a.at),t).length,net:a.net.filter(e=>!t.has(wW(e))),below:RW(a.below,t)}}}),new q(`${r}: ${o.map(BW).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):SU(t.file)}write(e,t,n){t.kind===`file`?CU(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||EW(n)>SW;){let[e,t]=n.entries().next().value;n.size>1?n.delete(e):t.past.length+t.future.length>0?n.set(e,DW(t)):(this.logger(`warn`,`settings-history: edit mode's changes for session ${e} exceed ${SW} bytes; cancel is no longer available`),n.delete(e))}this.storage.save(Object.fromEntries(n)),this.state=n}};function EW(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 DW({past:e,future:t,savepoint:n}){return e.length>0?{past:e.slice(1),future:t,...AW(n,1,[])}:{past:e,future:t.slice(1),...AW(n,0,[])}}function OW(e){return e.slice(-50)}const kW=e=>e===hO.member;function AW(e,t,n){return e===void 0?{}:{savepoint:{at:Math.max(0,e.at-t),net:jW(e.net,n),below:e.below}}}function jW(e,t){let n=new Map(e.map(e=>[wW(e),e]));for(let e of t){let t=n.get(wW(e));n.set(wW(e),t===void 0?e:{...t,after:e.after})}return[...n.values()].filter(e=>e.before!==e.after)}const MW=e=>e.map(e=>({...e,before:e.after,after:e.before}));function NW(e,t){let n=[...e.past,t],r=OW(n),{savepoint:i}=e,a=i===void 0?0:Math.max(0,i.at-e.past.length);return{past:r,future:[],...AW(i&&{at:Math.min(i.at,e.past.length),net:i.net,below:[...PW(e.future,a),...i.below]},n.length-r.length,t)}}function PW(e,t){let n=Math.min(t,e.length);return e.slice(e.length-n).reverse()}function FW(e,t){return{past:e.past.slice(0,-1),future:OW([...e.future,t]),...AW(e.savepoint,0,MW(t))}}function IW(e,t){let{past:n,future:r}=e,i=n.slice(0,t.at);return[...i,...PW(r,t.at-i.length),...t.below]}function LW(e,t){if(kW(t.after)&&!kW(t.before))return{...e,savepoint:{at:e.past.length,net:[],below:[]}};if(!kW(t.after)&&kW(t.before)){let{past:t,future:n}=e;return{past:t,future:n}}return e}function RW(e,t){return e.map(e=>e.filter(e=>!t.has(wW(e)))).filter(e=>e.length>0)}function zW(e){return e.map(BW).join(`, `)}function BW(e){return e.kind===`session`?`session setting "${e.key}"`:e.file}function VW(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 HW(e){return Array.isArray(e)&&e.every(e=>Array.isArray(e)&&e.every(VW))}function UW(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(VW)&&HW(t.below)}function WW(e){if(typeof e!=`object`||!e)return!1;let t=e;return HW(t.past)&&HW(t.future)&&(t.savepoint===void 0||UW(t.savepoint))}function GW(e,t){let n=e=>e.kind===`file`||xW(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 KW(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(WW)){let n=new Set,r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,GW(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 qW=e=>!xW(e)&&!Pk(e)&&e!==`update.dismissed`;var JW=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:pU(e,qW,(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 q(`back: nothing to go back to${o>0?` (${o} step(s) over a view since gone, discarded)`:``}`);return(0,R_.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 YW=`click.error`;function XW(e,t,n,r){e.set(t,YW,JSON.stringify({text:n,at:r}))}function ZW(e,t){let n=e.get(t,YW);return n===null?null:$W(n)??{text:n,at:0}}function QW(e,t,n){let r=ZW(e,t);r!==null&&n>=r.at+1&&e.clear(t,YW)}function $W(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let{text:n,at:r}=t;return typeof n==`string`&&typeof r==`number`?{text:n,at:r}:null}const eG=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function tG(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(!eG(r))return n(`is not an object`);for(let[e,t]of Object.entries(r)){if(!eG(t))return n(`holds ${JSON.stringify(e)} as something other than its sightings`);for(let[e,r]of Object.entries(t))if(!tk.includes(r))return n(`marks ${JSON.stringify(e)} ${JSON.stringify(r)}, not ${tk.join(` or `)}`)}return{kind:`ok`,value:r}}function nG(e,t,n,r){return{...e,[t]:{...e[t],[n]:r}}}function rG(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 tG(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(nG(o.value,n,i,a),null,2)}\n`)}}}var iG=class extends Error{constructor(e){super(`the doctor looked at ${e} less than a second ago — click again`),this.name=`DoctorBusy`}};
|
|
188
188
|
/*!
|
|
189
189
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
190
190
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
@@ -462,18 +462,18 @@ function run(argv) {
|
|
|
462
462
|
`).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 RG=e=>e.replace(/[\\:,=-]/g,`\\$&`);function zG(e,t){let n=O({bin:`fc-match`,args:[`--sort`,`--format`,`%{family[0]} %{charset}
|
|
463
463
|
`,`:family=${RG(e)}`],timeoutMs:3e3,category:`doctor.font`});if(!n.ok){if(n.reason===`rate-limited`)throw new iG(`the font`);return{kind:`failed`,reason:`fc-match failed (${n.error??`${n.reason}: ${n.stderr.trim()}`})`}}return LG(n.stdout,t)}function BG(e,t){return process.platform===`darwin`?MG(e,t):zG(e.name,t)}function VG(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 HG(e){return e===`darwin`?`Menlo`:`monospace`}const UG=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function WG(e){let t=UG(e.font)?e.font:{},n=UG(t.normal)?t.normal:{},r=(UG(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 GG(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=EG(i)}catch(t){return{kind:`failed`,reason:`cannot parse ${e}: ${t.message}`}}let o=WG(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=GG(a,t,n+1);if(o.kind===`failed`)return o;s=o.value??s}return{kind:`ok`,value:s}}function KG(e,t){let n=h.homedir(),i=VG(n,e.XDG_CONFIG_HOME).find(e=>r.existsSync(e)),a=i===void 0?{kind:`ok`,value:null}:GG(i,n,0);if(a.kind===`failed`)return a;let o=a.value?.family??HG(process.platform),s=a.value?.from??(i===void 0?`Alacritty's default, no config file`:`Alacritty's default, ${i} sets none`),c=BG({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 qG={iterm2:IG,alacritty:(e,t,n)=>KG(t,n)};function JG(e,t,n){return qG[e.name](e.version,t,n)}function YG(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 XG(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 YG(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 ZG(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 QG=/^(sshd|mosh-server)\b/;function $G(e,t){let n=new Map;for(let t of e.split(`
|
|
464
464
|
`)){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(QG.test(e.name))return{kind:`ok`,value:!0};if(r.has(e.ppid))break;r.add(e.ppid)}return{kind:`ok`,value:!1}}function eK(e){let t=O({bin:`ps`,args:[`-A`,`-o`,`pid=,ppid=,comm=`],timeoutMs:2e3,category:`doctor.process`});if(!t.ok){if(t.reason===`rate-limited`)throw new iG(`the processes`);return{kind:`failed`,reason:`ps failed (${t.error??`${t.reason}: ${t.stderr.trim()}`})`}}return $G(t.stdout,e)}function tK(e){let t=OB(e,`doctor.tmux`,[`display`,`-p`,`-t`,e.pane,`#{client_termfeatures} #{client_termtype} #{client_termname} #{client_pid}`]);if(t.kind===`rate-limited`)throw new iG(`tmux`);return t.kind===`failed`?{kind:`failed`,reason:t.reason}:ZG(t.stdout)}function nK(e){return{probeTmux:tK,remoteLogin:eK,fontInUse:JG,loadConfig:e,marks:rG(),clicked:XG()}}function rK(e){let t={layers:e.layers,warnings:e.warning===null?[]:e.warning.split(`
|
|
465
|
-
`)};return e.error===null?{...t,kind:`loaded`,unused:e.unused}:{...t,kind:`failed`,error:e.error}}function iK(e){let{env:t,statusLine:n}=hi(e);if(t!==void 0&&!gi(t))throw Error(`cannot read ${e}: \`env\` is not an object`);return{path:e,env:t??{},statusLine:n===void 0?{kind:`absent`}:gi(n)?{kind:`present`,refreshInterval:n.refreshInterval}:{kind:`not-an-object`,value:n}}}function aK(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,client:e.probeTmux(t)}}function oK(e,t){switch(e.kind){case`unreported`:return{kind:`unreported`};case`outside`:return t===void 0?{kind:`unreported`}:{kind:`seen`,identified:XO(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:YO(t),tmuxClient:t}}}}function sK(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(zO(s))return{kind:`bundling`,name:s,version:c};if(!BO(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 cK(e){return{kind:`arrived`,handler:e,bar:Dt}}function lK(e,t,n){let r=new Map;for(let i of
|
|
466
|
-
`);let i=hK(r.value);if(i!==null){t.stderr.write(`daemon-stats: ${i}\n`),t.exitCode=1;return}n||t.stdout.write(SK(r.value))}function mK(){return bt({kind:`stats`},fK,e=>`stats`in e?e.stats:void 0)}function hK(e){let t=gK(fU.referenceSnapshot(),e);if(t.length===0)return null;let n=vK(e.version,e.sourceDigest??null),r=vK(Dt,
|
|
465
|
+
`)};return e.error===null?{...t,kind:`loaded`,unused:e.unused}:{...t,kind:`failed`,error:e.error}}function iK(e){let{env:t,statusLine:n}=hi(e);if(t!==void 0&&!gi(t))throw Error(`cannot read ${e}: \`env\` is not an object`);return{path:e,env:t??{},statusLine:n===void 0?{kind:`absent`}:gi(n)?{kind:`present`,refreshInterval:n.refreshInterval}:{kind:`not-an-object`,value:n}}}function aK(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,client:e.probeTmux(t)}}function oK(e,t){switch(e.kind){case`unreported`:return{kind:`unreported`};case`outside`:return t===void 0?{kind:`unreported`}:{kind:`seen`,identified:XO(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:YO(t),tmuxClient:t}}}}function sK(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(zO(s))return{kind:`bundling`,name:s,version:c};if(!BO(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 cK(e){return{kind:`arrived`,handler:e,bar:Dt}}function lK(e,t,n){let r=new Map;for(let i of gg(n_(e,t).node)){if(i.kind!==`segment`)continue;let t=Ag(e.segments[i.name])[Og],a=Ig(i,Og,t,e=>n(e.key));a===`bar`||a===`none`||r.set(i.drafts?.effect?.id??fg(i),a)}return[...r].map(([e,t])=>({placement:e,effect:t}))}function uK(e,t,n,r){let i=e.loadConfig(n),a=nR(i.config,r,()=>!1),o=aK(e,t.tmux),s=oK(o,t.terminalEnv),c=[...new Set([...Ah(a),...kh(JSON.stringify(i.config))])].join(``);return{tmux:o,terminal:s,nerdFont:c===``?{kind:`none`}:{kind:`glyphs`,glyphs:c,terminal:sK(e,s,t,c)},marks:e.marks.read(),clicked:e.clicked.read(),config:rK(i),effect:a.effect,placementEffects:lK(i.config,a.preset,r),transitions:a.transitions,claudeSettings:iK(fi(di(t.claudeConfigDir)))}}function dK(e,t){let n=t.claudeSettings.path;switch(e.kind){case`claude-settings`:{let i=Xr(mi(n),e.path,JSON.stringify(e.value),Fr);return r.mkdirSync(l.dirname(n),{recursive:!0}),Ie(n,i),{...t,claudeSettings:iK(n)}}default:return e.kind}}const fK={connectMs:200,budgetMs:500};async function pK(e){let n=e.includes(`--json`),r=await mK();r.kind!==`ok`&&(t.stderr.write(`daemon-stats: ${Et(r)}\n`),t.exit(1)),n&&t.stdout.write(JSON.stringify(r.value,null,2)+`
|
|
466
|
+
`);let i=hK(r.value);if(i!==null){t.stderr.write(`daemon-stats: ${i}\n`),t.exitCode=1;return}n||t.stdout.write(SK(r.value))}function mK(){return bt({kind:`stats`},fK,e=>`stats`in e?e.stats:void 0)}function hK(e){let t=gK(fU.referenceSnapshot(),e);if(t.length===0)return null;let n=vK(e.version,e.sourceDigest??null),r=vK(Dt,Zh());return`the daemon (${n}) reports no ${t.join(`, `)}; it is another build than this client (${r}), and restarts only when its own bundle changes`}function gK(e,t,n=``){if(!_K(e))return[];if(!_K(t))return[n||`<snapshot>`];let r=[];for(let i of Object.keys(e)){let a=n===``?i:`${n}.${i}`;i in t?r.push(...gK(e[i],t[i],a)):r.push(a)}return r}function _K(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function vK(e,t){return`${e} [${t===null?`no digest`:Jh(t)}]`}function yK(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/1024/1024).toFixed(1)}MB`}function bK(e,t){let n=e+t;return n===0?`n/a`:`${(e/n*100).toFixed(1)}%`}function xK(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 SK(e){let t=[];t.push(`cc-candybar daemon stats`),t.push(``),t.push(`process`),t.push(` pid ${e.pid}`),t.push(` build ${vK(e.version,e.sourceDigest)}`),t.push(` protocol ${e.protocolVersion}`),t.push(` startedAt ${e.startedAt}`),t.push(` uptime ${xK(e.uptimeSec)}`),t.push(` rss ${yK(e.rssBytes)}`),t.push(` heapUsed ${yK(e.heapUsedBytes)}`),t.push(` heapTotal ${yK(e.heapTotalBytes)}`),t.push(` external ${yK(e.externalBytes)}`),t.push(` arrayBuffers ${yK(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 ${bK(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 ${bK(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(` held ${e.renderCache.held}`),t.push(` retired ${e.renderCache.retired}`),t.push(``),t.push(`effectCache`),t.push(` sessions ${e.effectCache.sessions}`),t.push(` effects ${e.effectCache.effects}`),t.push(``),t.push(`sessionState`),t.push(` sessions ${e.sessionState.sessions}`),t.push(` observers ${e.sessionState.observers}`),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(`
|
|
467
467
|
`)+`
|
|
468
468
|
`}const CK=e=>({kind:`ok`,value:e}),wK=e=>({kind:`failed`,reason:e});var TK=class{arrivals=[];arrive(e){this.arrivals=[...this.arrivals,e].slice(-16)}list(){return this.arrivals}};const EK=/^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/;function DK(e){return EK.test(e)?e:null}function OK(e){let t=e.opener();if(t.kind===`failed`)return t;if(t.value===null)return CK(null);let n=t.value,r=e.script(n);if(r.kind===`failed`)return CK({app:n,missing:wK(`its script could not be read (${r.reason})`)});let i=Li(r.value);return CK({app:n,missing:i===null?wK("its script is not one `cc-candybar install` wrote"):CK([i.node,i.script].filter(t=>!e.exists(t)))})}async function kK(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 AK(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(`${vn}://${Hn}/${n}`);return(r===null?await kK(e,n):null)??{kind:`lost`,unopened:r,opener:OK(e)}}function jK(e,t,n){let r=O({bin:t,args:[...n],category:e,timeoutMs:5e3});return r.ok?CK(r.stdout):wK(r.stderr.trim()||r.error||r.reason)}const MK=`ObjC.import("AppKit");var u = $.NSWorkspace.sharedWorkspace.URLForApplicationToOpenURL($.NSURL.URLWithString("${vn}://probe"));u.isNil() ? "" : u.path.js`;async function NK(){let e=await mK();if(e.kind!==`ok`)return wK(Et(e).split(`
|
|
469
469
|
`).join(` — `));let{version:t,handlerProbes:n}=e.value;return Array.isArray(n)?CK({version:t,arrivals:n}):wK(`the running daemon (${t}) predates this check`)}function PK(){return{platform:process.platform,sockets:{own:Ve(),handler:He()},now:Date.now,nonce:w,daemon:NK,open:e=>{let t=jK(`doctor.open`,`/usr/bin/open`,[`-g`,e]);return t.kind===`ok`?null:t.reason},pause:()=>new Promise(e=>setTimeout(e,100)),opener:()=>{let e=jK(`doctor.launch-services`,`/usr/bin/osascript`,[`-l`,`JavaScript`,`-e`,MK]);if(e.kind===`failed`)return e;let t=e.value.trim();return CK(t===``?null:t)},script:e=>jK(`doctor.osadecompile`,`/usr/bin/osadecompile`,[Ri(e)]),exists:r.existsSync}}const FK=/^─{20,}/,IK=/^❯(\s|$)/,LK=/›\s*stashed$/;function RK(e){if(e.inMode)return{kind:`in-mode`};let t=e.screen.map(e=>e.trimEnd()),n=t.flatMap((e,t)=>FK.test(e)?[t]:[]).at(-2);return n===void 0||!IK.test(t[n+1]??``)?{kind:`no-prompt`}:LK.test(t[n-1]??``)?{kind:`stashed`}:{kind:`ready`}}const zK={"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=RK(e.read(t));if(r.kind!==`ready`)return{kind:`refused`,reason:zK[r.kind]};let i=e.type(t,n);return i.kind===`typed`?{kind:`typed`,pane:t.pane}:i}const VK=`cc-candybar-slash`;function HK(e,t,n,r){let i=OB(e,t,n,r);if(i.kind===`failed`)throw Error(i.reason);return i}function UK(e){let t=HK(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(`
|
|
470
|
-
`);return{inMode:n!==`0`,screen:r}}function WK(e,t){let n=HK(e,`claude-input.type`,[`load-buffer`,`-b`,VK,`-`,`;`,`send-keys`,`-t`,e.pane,`C-s`,`;`,`paste-buffer`,`-p`,`-d`,`-b`,VK,`-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 GK(){return{read:UK,type:WK}}function KK(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 qK(e){return JK(()=>decodeURIComponent(e))}function JK(e){try{return e()}catch(e){throw e instanceof URIError?new K(`malformed wire encoding: ${e.message}`):e}}function YK(e,t){let n=O({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 XK=(e,t)=>YK(qK(e),t),ZK=(e,t)=>{let n=O({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,qK(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`})`)}},QK=(e,t)=>YK(qK(e),t),$K=(e,t)=>YK(qK(e),t),eq=(e,t)=>{let n=KK(qK(e));t.navigating.get(n,`toolbar-expanded`)?t.navigating.clear(n,`toolbar-expanded`):t.navigating.set(n,`toolbar-expanded`,`1`)},tq=(e,t)=>{let[n=``,...r]=JK(()=>Kn(e)),i=KK(n),a=dz(pq(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})}aq(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})`)},nq=/^-?\d+$/;function rq(e,t,n,r){let i=e+t;return i>r?e===r?n:r:i<n?e===n?r:n:i}const iq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n);if(!r)throw new K(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!nq.test(i))throw new K(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=pq(t,a),c=dz(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&&nq.test(u)?oq(l,parseInt(u,10)):sq(`step-state`,r,l,mz(s,e=>t.sessionState.get(a,e),r)),f=rq(d,o,l.min,l.max),p=c.validate(r,String(f));if(!p.ok)throw new K(`step-state: ${p.reason}`);aq(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 aq(e,t,n,r){let i=r.filter(e=>e.key.startsWith(pO));if(i.length===0)return;let a=WR(pq(e,t),n=>e.sessionState.get(t,n),i);if(a.length>0)throw new K(`${n}: refused — ${a.join(`; `)}`)}function oq(e,t){return Math.max(e.min,Math.min(e.max,t))}function sq(e,t,n,r){if(r===null)return n.min;if(!nq.test(r))throw new K(`${e}: "${t}" shows ${JSON.stringify(r)} before any click, not an integer to step`);return oq(n,parseInt(r,10))}const cq=`render-origin`;function lq(e){return JSON.stringify(e)}function uq(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 dq(e,t){let n=e.sessionState.get(t,cq);if(n===null)throw new K(`session ${t} has not rendered yet — no config to act on`);return uq(n)}function fq(e,t,n){let r=e.sessionState.get(t,cq);if(r===null)return;let i=uq(r),{path:a}=mq(i);n.some(e=>e.kind===`file`&&e.file===a)&&e.reloadConfig(i)}function pq(e,t){return e.configFor(dq(e,t))}function mq(e){return UI(e.projectDir,e.cwd,e.configFile??void 0)}function hq(e,t){return{record:(n,r,i)=>e.journal.file(t,n,r,i),logger:e.dlog}}const gq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n),o=dq(t,a),s=t.configFor(o),c=TM(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=mq(o),d=HR(s,e=>t.sessionState.get(a,e),r);oW(hq(t,a),u,[[d.key,l.value]]),t.reloadConfig(o),t.dlog(`info`,`set-config: ${d.key}=${l.value} → ${u.path} (session=${a})`)},_q=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n);if(!r)throw new K(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!nq.test(i))throw new K(`step-config: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=dq(t,a),c=t.configFor(s),l=TM(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=mq(s),f=HR(c,e=>t.sessionState.get(a,e),r),p=aW(d.path,f.key),m=typeof p==`number`?oq(u,p):sq(`step-config`,r,u,DM(f.globals,r)),h=rq(m,o,u.min,u.max),g=l.validate(r,String(h));if(!g.ok)throw new K(`step-config: ${g.reason}`);oW(hq(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})`)},vq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n),i=dq(t,r),a=t.configFor(i),o=e=>t.sessionState.get(r,e),s=BR(a,o),c=UR(a,o);if(s.length+c.length===0){t.dlog(`info`,`save: nothing unsaved (session=${r})`);return}let l=dz(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]});bq(`save`,l,c);let d=mq(i);sW(hq(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(yq)].join(` `)} → ${d.path} (session=${r})`)},yq=e=>`${e.preset}/${e.id}.settings.${e.setting}=${Fg(e.value)}`;function bq(e,t,n){for(let r of n){let n=t.validate(r.key,Fg(r.value));if(!n.ok)throw new K(`${e}: ${n.reason}`)}}const xq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n),i=dq(t,r),a=t.configFor(i),o=qR(a,e=>t.sessionState.get(r,e)),s=dz(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]});bq(`save-preset`,s,o.placements);let l=mq(i),u=mW(hq(t,r),l,o.from,o.globals,c,o.placements);t.reloadConfig(i);for(let e of[...Ca.map(e=>e.sessionKey),...o.placements.map(e=>e.key)])t.sessionState.clear(r,e);t.sessionState.set(r,Sa.preset.sessionKey,u),t.dlog(`info`,`save-preset: ${[`${u} from=${o.from}`,...c.map(([e,t])=>`${e}=${t}`),...o.placements.map(yq)].join(` `)} → ${l.path} (session=${r})`)},Sq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n),i=dq(t,r),a=YR(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=mq(i);hW(hq(t,r),o,a.theme,a.look),t.reloadConfig(i);let s=new Set(BR(t.configFor(i),e=>t.sessionState.get(r,e)).map(e=>e.sessionKey)),c=Sg.map(e=>Sa[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} ${Sg.map(e=>`${e}=${a.look[e]}`).join(` `)} → ${o.path} (session=${r})`)},Cq=(e,t)=>{let[n=``,r=``]=JK(()=>Kn(e)),i=KK(n);if(!r)throw new K(`delete-preset: <name> is required (shape: <sessionId>/<name>)`);let a=dq(t,i),o=mq(a);gW(hq(t,i),o,r),t.reloadConfig(a);let s=Sa.preset.sessionKey;t.sessionState.get(i,s)===r&&t.sessionState.clear(i,s),t.dlog(`info`,`delete-preset: ${r} ← ${o.path} (session=${i})`)},wq=(e,t)=>{let[n=``,...r]=JK(()=>Kn(e)),i=KK(n),a=dq(t,i),o=TM(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=mq(a),l=r.map(XR),u=l.flatMap(e=>e.fileKeys),d=l.flatMap(e=>e.sessionKeys);dW(hq(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 Tq(e,t){let n=(e,t)=>[..._g(r_(e,t).node)].filter(e=>e.kind===`segment`),r=new Set(e_(t.presets).flatMap(e=>n(t,e).map(t=>mO(aE(e),pg(t)))));return e_(e.presets).flatMap(t=>n(e,t).map(e=>({member:mO(aE(t),pg(e)),node:e})).filter(({member:e})=>!r.has(e)))}function Eq(e,t){return e.flatMap(({member:e,node:n})=>[...Object.values(n.drafts??{}).map(e=>e.key),...e===t?[cO]:[]])}const Dq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n),o=dq(t,a),s=t.configFor(o),c=TM(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=dM(l.value);if(u===null)throw new K(`apply-layout-op: "${l.value}" is not a layout op token`);let d=mq(o),f=_W(hq(t,a),d,r,u);t.reloadConfig(o);let p=Eq(Tq(s,t.configFor(o)),t.sessionState.get(a,cO)).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})`)},Oq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n);t.journal.commit();let i=t.history.undo(r);fq(t,r,i),t.dlog(`info`,`undo: restored ${zW(i)} (session=${r})`)},kq=(e,t)=>{let n=KK(qK(e)),{step:r,discarded:i}=t.navigation.back(n,t.sessionState,dz(pq(t,n))),a=r.map(e=>`${e.key}=${e.before??`∅`}`).join(` `);t.dlog(`info`,`back: ${a} discarded=${i} (session=${n})`)},Aq=(e,t)=>{let n=KK(qK(e));t.journal.commit();let r=t.history.rewind(n);fq(t,n,r),t.dlog(`info`,`rewind: put back ${zW(r)||`nothing`} as edit mode found it (session=${n})`)},jq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n);t.journal.commit();let i=t.history.redo(r);fq(t,r,i),t.dlog(`info`,`redo: re-applied ${zW(i)} (session=${r})`)},Mq=(e,t)=>{KK(qK(e)),t.applyUpdate()},Nq=`client-hints`;function Pq(e,t){let n=e.sessionState.get(t,Nq);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 Fq(e,t,n){let r=xk(n);e.sessionState.setBatch(t,Ok(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed(${1+(e.verdict.more?.length??0)})`}`).join(` `)} ${Ek(n.nerdFont,n.marks)} ${Tk(n.terminal,n.clicked)} (session=${t})`)}function Iq(e,t){let n;try{n=uK(e.doctor,Pq(e,t),dq(e,t),n=>e.sessionState.get(t,n))}catch(e){throw e instanceof iG?new K(e.message):e}return{...n,urlHandler:cK(e.clientVersion),askedBy:`click`,clicked:Lq(e,n)}}function Lq(e,{terminal:t,clicked:n}){let r=t.kind===`seen`?ZO(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 Rq=(e,t)=>{let n=KK(qK(e));Fq(t,n,Iq(t,n))},zq=(e,t)=>{let n=DK(qK(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=``]=JK(()=>Kn(e)),i=KK(n),a=Sk(r);if(a===void 0)throw new K(`doctor-fix: unknown check "${r}"`);let o=Iq(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=dK(s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.path.join(`.`)}=${JSON.stringify(s.fix.value)} (session=${i})`),Fq(t,i,c)},Vq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n),o=Sk(r);if(o===void 0)throw new K(`doctor-mark: unknown check "${r}"`);if(!tk.includes(i))throw new K(`doctor-mark: the mark is ${JSON.stringify(i)}, not ${tk.join(` or `)}`);let s=Iq(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})`),Fq(t,a,{...s,marks:{kind:`ok`,value:nG(s.marks.value,...l)}})},Hq=(e,t)=>{let[n=``,...r]=JK(()=>Kn(e)),i=KK(n),a=dq(t,i),o=Object.values(t.configFor(a).actions).filter(e=>`ceiling`in e).find(e=>{let t=DP(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=UL({sessionId:i,projectDir:a.projectDir,cwd:a.cwd},Pq(t,i));t.memento.move(c,s),t.dlog(`info`,`ceiling: ${r.join(` `)} (session=${i} claudeConfigDir=${c.claudeConfigDir})`)},Uq=(e,t)=>{let[n=``,r=``]=JK(()=>Kn(e)),i=KK(n),a=Object.values(t.configFor(dq(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,Pq(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`,Gq=new Map([[Sn,XK],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new K(`load-config: expected <sessionId>/<path> (missing separator)`);let r=KK(JK(()=>decodeURIComponent(e.slice(0,n)))),i=JK(()=>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})`))}],[Cn,ZK],[bn,tq],[xn,iq],[En,gq],[Dn,_q],[Mn,wq],[On,vq],[kn,xq],[An,Sq],[jn,Cq],[Nn,Dq],[Pn,Oq],[Fn,jq],[In,kq],[Ln,Aq],[P,QK],[Tn,$K],[wn,eq],[Rn,Mq],[zn,Rq],[Bn,Bq],[Vn,Vq],[Hn,zq],[Un,Hq],[Wn,Uq]]),Kq=new Set([bn,xn,En,Dn,Mn,On,kn,An,jn,Nn,Pn,Fn,In,Ln,wn,Rn,zn,Bn,Vn,Un,Wn]),qq=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Xn(Jn(e))){if(!i&&Kq.has(a)){let e=Kn(o);e.length>0&&e[0]&&(i=e[0])}let e=Gq.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&&XW(t.sessionState,i,n.join(`
|
|
471
|
-
`),
|
|
470
|
+
`);return{inMode:n!==`0`,screen:r}}function WK(e,t){let n=HK(e,`claude-input.type`,[`load-buffer`,`-b`,VK,`-`,`;`,`send-keys`,`-t`,e.pane,`C-s`,`;`,`paste-buffer`,`-p`,`-d`,`-b`,VK,`-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 GK(){return{read:UK,type:WK}}function KK(e){if(!e)throw new q(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new q(`invalid session id "${e}"`);return e}function qK(e){return JK(()=>decodeURIComponent(e))}function JK(e){try{return e()}catch(e){throw e instanceof URIError?new q(`malformed wire encoding: ${e.message}`):e}}function YK(e,t){let n=O({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 XK=(e,t)=>YK(qK(e),t),ZK=(e,t)=>{let n=O({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,qK(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`})`)}},QK=(e,t)=>YK(qK(e),t),$K=(e,t)=>YK(qK(e),t),eq=(e,t)=>{let n=KK(qK(e));t.navigating.get(n,`toolbar-expanded`)?t.navigating.clear(n,`toolbar-expanded`):t.navigating.set(n,`toolbar-expanded`,`1`)},tq=(e,t)=>{let[n=``,...r]=JK(()=>Kn(e)),i=KK(n),a=dz(pq(t,i));if(r.length===0)throw new q(`set-state: <key>/<value> is required (have keys: ${a.listKeys().join(`, `)})`);if(r.length%2!=0)throw new q(`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 q(`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 q(`set-state: pair ${e/2+1}: ${i.reason}`);o.push({key:t,value:i.value})}aq(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})`)},nq=/^-?\d+$/;function rq(e,t,n,r){let i=e+t;return i>r?e===r?n:r:i<n?e===n?r:n:i}const iq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n);if(!r)throw new q(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!nq.test(i))throw new q(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=pq(t,a),c=dz(s),l=c.rangeParamsFor(r);if(!l)throw new q(`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&&nq.test(u)?oq(l,parseInt(u,10)):sq(`step-state`,r,l,mz(s,e=>t.sessionState.get(a,e),r)),f=rq(d,o,l.min,l.max),p=c.validate(r,String(f));if(!p.ok)throw new q(`step-state: ${p.reason}`);aq(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 aq(e,t,n,r){let i=r.filter(e=>e.key.startsWith(pO));if(i.length===0)return;let a=WR(pq(e,t),n=>e.sessionState.get(t,n),i);if(a.length>0)throw new q(`${n}: refused — ${a.join(`; `)}`)}function oq(e,t){return Math.max(e.min,Math.min(e.max,t))}function sq(e,t,n,r){if(r===null)return n.min;if(!nq.test(r))throw new q(`${e}: "${t}" shows ${JSON.stringify(r)} before any click, not an integer to step`);return oq(n,parseInt(r,10))}const cq=`render-origin`;function lq(e){return JSON.stringify(e)}function uq(e){let t;try{t=JSON.parse(e)}catch{throw new q(`render origin is not JSON: ${e}`)}if(typeof t!=`object`||!t)throw new q(`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 q(`render origin has the wrong shape: ${e}`);return{projectDir:n,cwd:r,configFile:i}}function dq(e,t){let n=e.sessionState.get(t,cq);if(n===null)throw new q(`session ${t} has not rendered yet — no config to act on`);return uq(n)}function fq(e,t,n){let r=e.sessionState.get(t,cq);if(r===null)return;let i=uq(r),{path:a}=mq(i);n.some(e=>e.kind===`file`&&e.file===a)&&e.reloadConfig(i)}function pq(e,t){return e.configFor(dq(e,t))}function mq(e){return UI(e.projectDir,e.cwd,e.configFile??void 0)}function hq(e,t){return{record:(n,r,i)=>e.journal.file(t,n,r,i),logger:e.dlog}}const gq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n),o=dq(t,a),s=t.configFor(o),c=TM(s);if(!r)throw new q(`set-config: <key>/<value> is required (have keys: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new q(`set-config: ${l.reason}`);let u=mq(o),d=HR(s,e=>t.sessionState.get(a,e),r);oW(hq(t,a),u,[[d.key,l.value]]),t.reloadConfig(o),t.dlog(`info`,`set-config: ${d.key}=${l.value} → ${u.path} (session=${a})`)},_q=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n);if(!r)throw new q(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!nq.test(i))throw new q(`step-config: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=dq(t,a),c=t.configFor(s),l=TM(c),u=l.rangeParamsFor(r);if(!u)throw new q(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${l.listKeys().join(`, `)})`);let d=mq(s),f=HR(c,e=>t.sessionState.get(a,e),r),p=aW(d.path,f.key),m=typeof p==`number`?oq(u,p):sq(`step-config`,r,u,DM(f.globals,r)),h=rq(m,o,u.min,u.max),g=l.validate(r,String(h));if(!g.ok)throw new q(`step-config: ${g.reason}`);oW(hq(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})`)},vq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n),i=dq(t,r),a=t.configFor(i),o=e=>t.sessionState.get(r,e),s=BR(a,o),c=UR(a,o);if(s.length+c.length===0){t.dlog(`info`,`save: nothing unsaved (session=${r})`);return}let l=dz(a),u=s.map(e=>{let t=l.validate(e.sessionKey,e.value);if(!t.ok)throw new q(`save: ${t.reason}`);return[e.target,t.value]});bq(`save`,l,c);let d=mq(i);sW(hq(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(yq)].join(` `)} → ${d.path} (session=${r})`)},yq=e=>`${e.preset}/${e.id}.settings.${e.setting}=${Pg(e.value)}`;function bq(e,t,n){for(let r of n){let n=t.validate(r.key,Pg(r.value));if(!n.ok)throw new q(`${e}: ${n.reason}`)}}const xq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n),i=dq(t,r),a=t.configFor(i),o=qR(a,e=>t.sessionState.get(r,e)),s=dz(a),c=o.picks.map(e=>{let t=s.validate(e.sessionKey,e.value);if(!t.ok)throw new q(`save-preset: ${t.reason}`);return[e.configKey,t.value]});bq(`save-preset`,s,o.placements);let l=mq(i),u=mW(hq(t,r),l,o.from,o.globals,c,o.placements);t.reloadConfig(i);for(let e of[...Ca.map(e=>e.sessionKey),...o.placements.map(e=>e.key)])t.sessionState.clear(r,e);t.sessionState.set(r,Sa.preset.sessionKey,u),t.dlog(`info`,`save-preset: ${[`${u} from=${o.from}`,...c.map(([e,t])=>`${e}=${t}`),...o.placements.map(yq)].join(` `)} → ${l.path} (session=${r})`)},Sq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n),i=dq(t,r),a=YR(t.configFor(i),e=>t.sessionState.get(r,e));if(a.kind===`rule`)throw new q(`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=mq(i);hW(hq(t,r),o,a.theme,a.look),t.reloadConfig(i);let s=new Set(BR(t.configFor(i),e=>t.sessionState.get(r,e)).map(e=>e.sessionKey)),c=xg.map(e=>Sa[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} ${xg.map(e=>`${e}=${a.look[e]}`).join(` `)} → ${o.path} (session=${r})`)},Cq=(e,t)=>{let[n=``,r=``]=JK(()=>Kn(e)),i=KK(n);if(!r)throw new q(`delete-preset: <name> is required (shape: <sessionId>/<name>)`);let a=dq(t,i),o=mq(a);gW(hq(t,i),o,r),t.reloadConfig(a);let s=Sa.preset.sessionKey;t.sessionState.get(i,s)===r&&t.sessionState.clear(i,s),t.dlog(`info`,`delete-preset: ${r} ← ${o.path} (session=${i})`)},wq=(e,t)=>{let[n=``,...r]=JK(()=>Kn(e)),i=KK(n),a=dq(t,i),o=TM(t.configFor(a)).listKeys(),s=r.length===0?[``]:r.filter(e=>!o.includes(e));if(s.length>0)throw new q(`reset-config: unknown config key "${s.join(`", "`)}" (have: ${o.join(`, `)})`);let c=mq(a),l=r.map(XR),u=l.flatMap(e=>e.fileKeys),d=l.flatMap(e=>e.sessionKeys);dW(hq(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 Tq(e,t){let n=(e,t)=>[...gg(n_(e,t).node)].filter(e=>e.kind===`segment`),r=new Set($g(t.presets).flatMap(e=>n(t,e).map(t=>mO(iE(e),fg(t)))));return $g(e.presets).flatMap(t=>n(e,t).map(e=>({member:mO(iE(t),fg(e)),node:e})).filter(({member:e})=>!r.has(e)))}function Eq(e,t){return e.flatMap(({member:e,node:n})=>[...Object.values(n.drafts??{}).map(e=>e.key),...e===t?[cO]:[]])}const Dq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n),o=dq(t,a),s=t.configFor(o),c=TM(s);if(!r)throw new q(`apply-layout-op: <key>/<op> is required (have: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new q(`apply-layout-op: ${l.reason}`);let u=dM(l.value);if(u===null)throw new q(`apply-layout-op: "${l.value}" is not a layout op token`);let d=mq(o),f=_W(hq(t,a),d,r,u);t.reloadConfig(o);let p=Eq(Tq(s,t.configFor(o)),t.sessionState.get(a,cO)).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})`)},Oq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n);t.journal.commit();let i=t.history.undo(r);fq(t,r,i),t.dlog(`info`,`undo: restored ${zW(i)} (session=${r})`)},kq=(e,t)=>{let n=KK(qK(e)),{step:r,discarded:i}=t.navigation.back(n,t.sessionState,dz(pq(t,n))),a=r.map(e=>`${e.key}=${e.before??`∅`}`).join(` `);t.dlog(`info`,`back: ${a} discarded=${i} (session=${n})`)},Aq=(e,t)=>{let n=KK(qK(e));t.journal.commit();let r=t.history.rewind(n);fq(t,n,r),t.dlog(`info`,`rewind: put back ${zW(r)||`nothing`} as edit mode found it (session=${n})`)},jq=(e,t)=>{let[n=``]=JK(()=>Kn(e)),r=KK(n);t.journal.commit();let i=t.history.redo(r);fq(t,r,i),t.dlog(`info`,`redo: re-applied ${zW(i)} (session=${r})`)},Mq=(e,t)=>{KK(qK(e)),t.applyUpdate()},Nq=`client-hints`;function Pq(e,t){let n=e.sessionState.get(t,Nq);if(n===null)throw new q(`session ${t} has not rendered yet — no client facts are recorded for it`);let r;try{r=JSON.parse(n)}catch{throw new q(`client hints record is not JSON: ${n}`)}if(typeof r!=`object`||!r)throw new q(`client hints record is not an object: ${n}`);return ot(r)}function Fq(e,t,n){let r=xk(n);e.sessionState.setBatch(t,Ok(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed(${1+(e.verdict.more?.length??0)})`}`).join(` `)} ${Ek(n.nerdFont,n.marks)} ${Tk(n.terminal,n.clicked)} (session=${t})`)}function Iq(e,t){let n;try{n=uK(e.doctor,Pq(e,t),dq(e,t),n=>e.sessionState.get(t,n))}catch(e){throw e instanceof iG?new q(e.message):e}return{...n,urlHandler:cK(e.clientVersion),askedBy:`click`,clicked:Lq(e,n)}}function Lq(e,{terminal:t,clicked:n}){let r=t.kind===`seen`?ZO(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 Rq=(e,t)=>{let n=KK(qK(e));Fq(t,n,Iq(t,n))},zq=(e,t)=>{let n=DK(qK(e));if(n===null)throw new q(`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=``]=JK(()=>Kn(e)),i=KK(n),a=Sk(r);if(a===void 0)throw new q(`doctor-fix: unknown check "${r}"`);let o=Iq(t,i),s=a.probe(o);if(s.ok||s.fix===void 0)throw new q(`doctor-fix: ${a.label} — ${s.ok?`nothing to fix`:s.reason}`);let c=dK(s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.path.join(`.`)}=${JSON.stringify(s.fix.value)} (session=${i})`),Fq(t,i,c)},Vq=(e,t)=>{let[n=``,r=``,i=``]=JK(()=>Kn(e)),a=KK(n),o=Sk(r);if(o===void 0)throw new q(`doctor-mark: unknown check "${r}"`);if(!tk.includes(i))throw new q(`doctor-mark: the mark is ${JSON.stringify(i)}, not ${tk.join(` or `)}`);let s=Iq(t,a),c=o.probe(s);if(c.ok||c.sighting===void 0)throw new q(`doctor-mark: ${o.label} — ${c.ok?`nothing to mark`:`shows nothing to look at`}`);if(s.marks.kind===`failed`)throw new q(`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})`),Fq(t,a,{...s,marks:{kind:`ok`,value:nG(s.marks.value,...l)}})},Hq=(e,t)=>{let[n=``,...r]=JK(()=>Kn(e)),i=KK(n),a=dq(t,i),o=Object.values(t.configFor(a).actions).filter(e=>`ceiling`in e).find(e=>{let t=DP(e);return t.length===r.length&&t.every((e,t)=>e===r[t])});if(o===void 0)throw new q(`ceiling: "${r.join(` `)}" is not a move this config declares`);let s=o.ceiling===`set`?{kind:`set`,to:o.to}:{kind:`clear`},c=UL({sessionId:i,projectDir:a.projectDir,cwd:a.cwd},Pq(t,i));t.memento.move(c,s),t.dlog(`info`,`ceiling: ${r.join(` `)} (session=${i} claudeConfigDir=${c.claudeConfigDir})`)},Uq=(e,t)=>{let[n=``,r=``]=JK(()=>Kn(e)),i=KK(n),a=Object.values(t.configFor(dq(t,i)).actions).filter(e=>`slash`in e),o=a.find(e=>e.slash===r);if(o===void 0)throw new q(`${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,Pq(t,i).tmux,o.slash);if(s.kind===`refused`)throw t.dlog(`warn`,`slash: ${r} refused — ${s.reason} (session=${i})`),new q(`${r} was not typed: ${s.reason}`);t.dlog(`info`,`slash: typed ${r} into ${s.pane} (session=${i})`)},Wq=`config-override`,Gq=new Map([[Sn,XK],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new q(`load-config: expected <sessionId>/<path> (missing separator)`);let r=KK(JK(()=>decodeURIComponent(e.slice(0,n)))),i=JK(()=>decodeURIComponent(e.slice(n+1))).trim();if(i!==``){if(!i.startsWith(`/`))throw new q(`load-config: path must be absolute, got "${i}"`);if(!/\.(json5?|json)$/.test(i))throw new q(`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})`))}],[Cn,ZK],[bn,tq],[xn,iq],[En,gq],[Dn,_q],[Mn,wq],[On,vq],[kn,xq],[An,Sq],[jn,Cq],[Nn,Dq],[Pn,Oq],[Fn,jq],[In,kq],[Ln,Aq],[P,QK],[Tn,$K],[wn,eq],[Rn,Mq],[zn,Rq],[Bn,Bq],[Vn,Vq],[Hn,zq],[Un,Hq],[Wn,Uq]]),Kq=new Set([bn,xn,En,Dn,Mn,On,kn,An,jn,Nn,Pn,Fn,In,Ln,wn,Rn,zn,Bn,Vn,Un,Wn]),qq=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Xn(Jn(e))){if(!i&&Kq.has(a)){let e=Kn(o);e.length>0&&e[0]&&(i=e[0])}let e=Gq.get(a);if(!e){n.push(`unknown effect verb "${a}"`);continue}try{e(o,t)}catch(e){e instanceof q||(r=!0),n.push(`${a}: ${e instanceof Error?e.message:String(e)}`)}}if(n.length>0){i&&XW(t.sessionState,i,n.join(`
|
|
471
|
+
`),kT(new Date));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new q(e)}};function Jq(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 Yq=new Map([...Gq,[yn,qq]].map(([e,t])=>[e,Jq(t)]));Object.freeze([...Yq.keys()]);const Xq=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`]),Zq=[[`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`]],Qq=[[`workspace.added_dirs`,`string-list`]];function $q(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of Zq){let i=nJ(n,e);if(i==null)t.missingRequired.push(e);else{let n=eJ(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let[e,r]of Qq){let i=nJ(n,e),a=i===void 0?r:tJ(i);a!==r&&t.typeMismatches.push({path:e,expected:r,got:a})}for(let e of Object.keys(n))Xq.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function eJ(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function tJ(e){return Array.isArray(e)&&e.every(e=>eJ(e)===`string`)?`string-list`:eJ(e)}function nJ(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 rJ(e,t){switch(e){case`vars`:return{what:e,vars:iJ(t)};case`segments`:return{what:e,segments:lJ(t)};case`config`:return{what:e,config:pJ(t)}}}function iJ(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=sJ(r),a=t.names().sort(),o=[];for(let e of a){let r=t.getNode(e),a=aJ(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:oJ(r.lastUpdatedMs())})}return o}function aJ(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 oJ(e){return e===null?null:Math.max(0,Date.now()-e)}function sJ(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,cJ(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}`,cJ(i));return t}function cJ(e){return e.kind}function lJ(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=dJ(n),o=uJ(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:fJ(t.template,n.helpers,i),placements:(o.get(e)??[]).map(e=>({id:e,lastRender:r.get(e)??null}))})}return s}function uJ(e){let t=new Map;for(let n of $g(e.presets))for(let r of gg(n_(e,n).node)){if(r.kind!==`segment`)continue;let e=t.get(r.name)??[],n=fg(r);e.includes(n)||t.set(r.name,[...e,n])}return t}function dJ(e){let t=[],n=new Set;for(let r of gg(Kg(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 fJ(e,t,n){let r=new Set;for(let i of w_(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 pJ(e){return e===null?null:e.config}const mJ=[`vars`,`segments`,`config`];function hJ(e){return typeof e==`string`&&mJ.includes(e)}function gJ(e){return Math.max(1,e-2)}const _J={moving:1e3/30,still:1e3};var vJ=class{requests=new Map;feeds=new Map;drawn=0;pushed=0;constructor(e){this.deps=e}note(e,t,n,r){let i=this.requests.get(e);if(i!==void 0&&i.order>n)return;this.requests.delete(e),this.requests.set(e,{req:t,order:n});for(let e of this.requests.keys()){if(this.requests.size<=256)break;this.feeds.has(e)||this.requests.delete(e)}let a=this.feeds.get(e);if(a===void 0)return;if(a.last!==null&&r.drawnAt<a.last.drawnAt){this.wake(e);return}a.noted++,this.count(a,r),this.push(a,r);let o=this.deps.now();switch(a.phase.kind){case`drawing`:a.phase.superseded={frame:r,at:o};return;case`due`:clearTimeout(a.phase.timer);break;case`waiting`:break}this.schedule(a,r,o,o)}subscribe(e,t){let n=this.feeds.get(e)??this.open(e);return n.sinks.add(t),n.last!==null&&t(n.last.resp,n.last.bytes),this.deps.log(`info`,`feed sid=${JSON.stringify(e)} subscribed subscribers=${n.sinks.size} data=${this.requests.has(e)?`Y`:`N`}`),()=>this.unsubscribe(n,t)}wake(e){let t=this.feeds.get(e);if(t!==void 0)switch(t.phase.kind){case`drawing`:t.phase.again=!0;return;case`due`:clearTimeout(t.phase.timer),this.draw(t);return;case`waiting`:this.draw(t);return}}watched(){return[...this.feeds.keys()].flatMap(e=>{let t=this.requests.get(e);return t===void 0?[]:[{sessionId:e,req:t.req}]})}getStats(){let e=0;for(let t of this.feeds.values())e+=t.sinks.size;return{feeds:this.feeds.size,subscribers:e,drawn:this.drawn,pushed:this.pushed}}open(e){let t=this.deps.now(),n={sessionId:e,sinks:new Set,unwatch:this.deps.watch(e,()=>this.wake(e)),phase:{kind:`waiting`},last:null,since:t,drawn:0,noted:0,moving:0,unseen:0,failed:0,pushed:0,drawMs:0,summarizedAt:t};return this.feeds.set(e,n),this.draw(n),n}unsubscribe(e,t){!e.sinks.delete(t)||e.sinks.size>0||(e.phase.kind===`due`&&clearTimeout(e.phase.timer),e.unwatch(),this.feeds.delete(e.sessionId),this.summarize(e,`closed`))}async draw(e){let t=this.requests.get(e.sessionId);if(t===void 0){e.phase={kind:`waiting`};return}let{req:n}=t,r={kind:`drawing`,again:!1,superseded:null};e.phase=r;let i=this.deps.now(),a=await this.deps.render(n).catch(t=>(this.deps.log(`error`,`feed sid=${JSON.stringify(e.sessionId)} render adapter threw: ${String(t)}`),null)),o=this.deps.now();if(this.drawn++,e.drawn++,e.drawMs+=o-i,this.feeds.get(e.sessionId)!==e)return;if(a!==null&&this.count(e,a),a!==null&&this.requests.get(e.sessionId)===t&&this.push(e,a),o-e.summarizedAt>=6e4&&this.summarize(e,`running`),r.again){this.draw(e);return}let s=r.superseded??{frame:a,at:i};this.schedule(e,s.frame,s.at,o)}schedule(e,t,n,r){let i=t?.motion===`moving`?this.deps.periods.moving:this.deps.periods.still;e.phase={kind:`due`,timer:setTimeout(()=>void this.draw(e),Math.max(0,n+i-r))}}count(e,t){t.motion===`moving`&&e.moving++,t.motion===`unseen`&&e.unseen++,t.failure!==null&&e.failed++}push(e,t){let{resp:n}=t,r=JSON.stringify(n);if(e.last?.bytes!==r){e.last={resp:n,bytes:r,drawnAt:t.drawnAt},this.pushed++,e.pushed++,t.failure!==null&&this.deps.log(t.failure.level,t.failure.line);for(let t of e.sinks)t(n,r)}}summarize(e,t){let n=this.deps.now();this.deps.log(`info`,`feed sid=${JSON.stringify(e.sessionId)} ${t} subscribers=${e.sinks.size} for=${Math.round((n-e.since)/1e3)}s drawn=${e.drawn} noted=${e.noted} moving=${e.moving} unseen=${e.unseen} failed=${e.failed} pushed=${e.pushed} meanDraw=${e.drawn===0?`-`:(e.drawMs/e.drawn).toFixed(2)}ms`),e.summarizedAt=n}};function yJ(e){let t=null;return e.on(`drain`,()=>{let n=t;t=null,n!==null&&e.write(n)}),n=>{if(e.writable){if(e.writableNeedDrain){t=n;return}e.write(n)}}}function bJ(e){let t=new Set;for(let n of e.split(`
|
|
472
472
|
`)){let[e,r]=n.trim().split(` `);e!==void 0&&r===`1`&&t.add(e)}return t}function xJ(e,t){let n=new Set;for(let r of e.split(`
|
|
473
|
-
`)){let[e,i,a,o,s,c]=r.trim().split(` `);e===void 0||e===``||i===void 0||Number(a)>0&&(o===`1`||t.has(i))&&(s!==`1`||c===`1`)&&n.add(e)}return n}var SJ=class{servers=new Map;constructor(e){this.deps=e}shown(e){if(e==null)return!0;let t=this.servers.get(e.socket);return t?.kind!==`asked`||t.shown.has(e.pane)}async refresh(e){for(let t of this.servers.keys())e.has(t)||this.servers.delete(t);let t=await Promise.all([...e].map(async e=>{let[t,n]=await Promise.all([this.deps.listPanes(e),this.deps.listClients(e)]);return[e,t.kind===`ok`?n.kind===`ok`?{kind:`asked`,shown:xJ(t.stdout,bJ(n.stdout))}:{kind:`unasked`,reason:n.reason}:{kind:`unasked`,reason:t.reason}]})),n=new Set;for(let[e,r]of t){let t=this.servers.get(e);this.servers.set(e,r),!CJ(t,r)&&(n.add(e),this.deps.log(r.kind===`asked`?`info`:`warn`,r.kind===`asked`?`visibility socket=${JSON.stringify(e)} shown=${[...r.shown].join(`,`)||`-`}`:`visibility socket=${JSON.stringify(e)} unasked: ${r.reason} — its panes count as shown`))}n.size>0&&this.deps.onChange(n)}};function CJ(e,t){return e===void 0||e.kind!==t.kind?!1:e.kind===`unasked`||t.kind===`unasked`?!0:e.shown.size===t.shown.size&&[...e.shown].every(e=>t.shown.has(e))}var wJ=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 TJ(e,t){for(let n of Object.entries(t))e.push(n)}const EJ={ok:`info`,"bad-request":`warn`,threw:`error`};function DJ(e){switch(e.kind){case`ok`:return[];case`bad-request`:return[[`problems`,e.problems.join(`; `)]];case`threw`:return[[`error`,y(e.error)]]}}const OJ=/^[^\s"=\\]+$/,kJ=e=>OJ.test(e)?e:JSON.stringify(e);function AJ(e,t,n){let r=[...e,[`took`,`${n}ms`],[`outcome`,t.kind],...DJ(t)];return{level:EJ[t.kind],line:`render${r.map(([e,t])=>` ${e}=${kJ(t)}`).join(``)}`}}function jJ(){var e=typeof SuppressedError==`function`?SuppressedError:function(e,t){var n=Error();return n.name=`SuppressedError`,n.error=e,n.suppressed=t,n},t={},n=[];function r(e,t){if(t!=null){if(Object(t)!==t)throw TypeError(`using declarations can only be used with objects, functions, null, or undefined.`);if(e)var r=t[Symbol.asyncDispose||Symbol.for(`Symbol.asyncDispose`)];if(r===void 0&&(r=t[Symbol.dispose||Symbol.for(`Symbol.dispose`)],e))var i=r;if(typeof r!=`function`)throw TypeError(`Object is not disposable.`);i&&(r=function(){try{i.call(t)}catch(e){return Promise.reject(e)}}),n.push({v:t,d:r,a:e})}else e&&n.push({d:t,a:e});return t}return{e:t,u:r.bind(null,!1),a:r.bind(null,!0),d:function(){var r,i=this.e,a=0;function o(){for(;r=n.pop();)try{if(!r.a&&a===1)return a=0,n.push(r),Promise.resolve().then(o);if(r.d){var e=r.d.call(r.v);if(r.a)return a|=2,Promise.resolve(e).then(o,s)}else a|=1}catch(e){return s(e)}if(a===1)return i===t?Promise.resolve():Promise.reject(i);if(i!==t)throw i}function s(n){return i=i===t?n:new e(n,i),o()}return o()}}}const MJ=new fU,NJ=new TK;je(MJ.launchStats);const PJ=new vT({counters:MJ,logger:j}),FJ=PB({watchers:PJ,logger:j}),{gitProvider:IJ,usageStore:LJ,mementoProvider:RJ}=FJ,zJ=new hU,BJ=new TW(zJ,j),VJ=new JW,HJ=new bh,UJ=new vJ({render:e=>TY(e),watch:(e,t)=>(0,z_.reaction)(()=>zJ.revision(e),t,{scheduler:e=>le(e)}),periods:_J,now:()=>Date.now(),log:j}),WJ=new SJ({listPanes:e=>kB({socket:e},`frames.visibility`,[`list-panes`,`-a`,`-F`,`#{pane_id} #{session_id} #{session_attached} #{window_active} #{window_zoomed_flag} #{pane_active}`]),listClients:e=>kB({socket:e},`frames.visibility`,[`list-clients`,`-F`,`#{session_id} #{client_control_mode}`]),onChange:e=>{for(let{sessionId:t,req:n}of UJ.watched())n.hints.tmux&&e.has(n.hints.tmux.socket)&&UJ.wake(t)},log:j});let GJ=0;const KJ=()=>new Set(UJ.watched().flatMap(({req:{hints:{tmux:e}}})=>e==null?[]:[e.socket])),qJ=()=>{WJ.refresh(KJ()).catch(e=>j(`error`,`visibility refresh threw: ${y(e)}`)).then(()=>setTimeout(qJ,1e3).unref())},JJ=new wJ($e()),YJ=new uU({gitService:IJ,sessionState:zJ,watchers:PJ,log:j},{observers:{onReload:e=>j(`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)}`)}}),XJ=60*1e3;function ZJ(){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){j(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),pY(0);return}}catch(e){j(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,XJ),a.unref())},checkNow:o}}const QJ=ZJ(),$J=Nz({entryUrl:import.meta.url,intervalMs:XJ,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>QJ.checkNow(),log:j});let eY=null,tY=null,nY=0;function rY(){t.on(`uncaughtException`,e=>{j(`error`,`uncaughtException: ${e.stack||e.message}`),pY(1)}),t.on(`unhandledRejection`,e=>{j(`error`,`unhandledRejection: ${String(e)}`),pY(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{j(`info`,`received ${e}, shutting down`),pY(0)});try{nY=Gt(t.env)}catch(e){j(`error`,`refusing to boot: ${e.message}`),pY(1);return}eY=la(t.pid);let e=ya(xa(eY));if(!e.decision.allow){j(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),pY(1);return}tY=e.registryPath,r.mkdirSync(Be(),{recursive:!0}),We(Ve()),zJ.useStorage(new _U(qe(),500,j)),BJ.useStorage(KW(Je(),j)),fa({anchor:da(t.env),isAlive:pa,onOrphaned:e=>{j(`info`,`parent watchdog: ${e}; shutting down`),pY(0)}}),iY(S.createServer({allowHalfOpen:!1},e=>{mY(e)}),Ve(),!1)}function iY(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){j(`error`,`server error: ${i.message}`),pY(1);return}if(r){j(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}aY(e,n)}),e.listen(n,()=>oY(n))}function aY(e,n){let i=$i(ea(Ge(n)),(e,t)=>ca(e,t,{readStartTime:sa,pidAlive:pa}));if(i.kind===`attach-and-exit`){j(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}j(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){j(`error`,`cannot unlink stale socket ${n}: ${e.message}`),pY(1);return}}iY(e,n,!0)}function oY(e){let n=ra(e);if(n.kind!==`present`){j(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),pY(0);return}uY(e);try{r.chmodSync(e,384)}catch(e){j(`warn`,`chmod socket failed: ${e.message}`)}j(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(C.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(nY/1048576)}MB`),cn();let i=JJ.reset();i!==null&&j(`warn`,`diagnostic dump wipe failed: ${i}`),QJ.arm(),$J.arm(),qJ(),lY(),sY(e,n.identity)}function sY(e,n){oa({bound:n,myPid:t.pid,readIdentity:()=>ra(e),readLease:()=>ea(Ge(e)),shutdown:e=>pY(e),log:j}).arm()}let cY=null;function lY(){cY=N(Qt(MJ.startedAt.getTime(),e=>pY(e),{rssLimitBytes:nY})),cY.arm()}function uY(e){let n=ta(Ge(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:eY});n!==null&&j(`warn`,`lease write failed: ${n}`)}let dY=0,fY=!1;function pY(e){if(!fY){fY=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{IJ.close()}catch(e){j(`warn`,`gitService close failed: ${e.message}`)}try{LJ.close()}catch(e){j(`warn`,`usageStore close failed: ${e.message}`)}try{PJ.closeAll()}catch(e){j(`warn`,`watcherRegistry close failed: ${e.message}`)}try{zJ.flush()}catch(e){j(`warn`,`sessionState flush failed: ${e.message}`)}na(Ke(),t.pid),tY!==null&&ba(tY,t.pid,_a,e=>r.unlinkSync(e)),t.exit(e)}}function mY(e){dY++,MJ.inFlight=dY;let t=!1,n=!0,r=()=>{n&&(n=!1,dY=Math.max(0,dY-1),MJ.inFlight=dY)},i=(n,r)=>{if(t){r!==null&&j(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>pY(r);try{e.end(gt(n),i)}catch(e){j(`warn`,`response write failed: ${e.message}`),i?.()}},a=!1,o=setTimeout(()=>{a=!0,MJ.requestsTimedOut++,i({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),s=vt(e=>{_Y(e,()=>a).then(e=>e.kind===`reply`?i(e.resp,e.exitAfterFlush):c(e.sessionId)).catch(e=>{j(`error`,`handler threw: ${y(e)}`),i(gY(e),null)})},e=>{j(`warn`,`frame parse failed: ${e.message}`),i({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)}),c=n=>{if(t||e.destroyed)return;clearTimeout(o),t=!0,r(),e.off(`data`,s);let i=yJ(e);e.on(`close`,UJ.subscribe(n,(e,t)=>i(_t(t))))};e.on(`data`,s),e.on(`error`,e=>{j(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(o),r()})}const hY=e=>({kind:`reply`,resp:e,exitAfterFlush:null}),gY=e=>({ok:!1,error:e instanceof Error?e.message:y(e),code:`RENDER_FAILED`,daemonV:3});async function _Y(e,t){if(!e||typeof e!=`object`||typeof e.v!=`number`)return hY({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?j(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):j(`info`,`version mismatch: client=${e.v} < daemon=3; client is stale — staying up`),{kind:`reply`,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{kind:`reply`,resp:{ok:!0,output:``},exitAfterFlush:0};if(e.kind===`stats`)return hY({ok:!0,stats:MJ.snapshot({gitCache:IJ.getStats(),usageCache:LJ.getStats(),renderCache:YJ.stats,effectCache:HJ.getStats(),sessionState:{sessions:zJ.size(),observers:zJ.observers()},frameFeeds:UJ.getStats(),watchersActive:PJ.size(),nextRestartReason:cY?.describeNextRestart()??null,handlerProbes:NJ.list()})});if(e.kind===`render`){MJ.requestsTotal++;let n=new Date,r=AT(n),i=n.getTime(),a=[],o=++GJ,s=DY(e),c=s.ok?await kY(s.req,r,a).then(({output:e,moves:t})=>{let n={ok:!0,output:e};return QW(zJ,s.req.hookData.session_id,r),UJ.note(s.req.hookData.session_id,s.req,o,EY(s.req,n,i,t)),{outcome:{kind:`ok`},resp:n}},e=>({outcome:{kind:`threw`,error:e},resp:gY(e)})):OY(s.problems);c.outcome.kind!==`ok`&&MJ.requestsErrored++,TJ(a,{timedOut:t()?`Y`:`N`});let{level:l,line:u}=AJ(a,c.outcome,Date.now()-i);return j(l,u),hY(c.resp)}if(e.kind===`subscribe`)return typeof e.sessionId==`string`&&e.sessionId!==``?{kind:`subscribe`,sessionId:e.sessionId}:hY({ok:!1,error:`subscribe needs a non-empty string sessionId`,code:`BAD_REQUEST`,daemonV:3});if(e.kind===`click`)return hY(wY(e.verb,e.value,ht(e.clientVersion)));if(e.kind===`debug`){if(!hJ(e.what))return hY({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${mJ.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=YJ.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?SY(t.lastRenderCellsBySegment,t.config.globals.colorCompatibility??`truecolor`):xY};return hY({ok:!0,debug:rJ(e.what,n)})}return hY({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function vY(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:rI(t,n.config),unknownFlagsError:i.length>0?`Unknown flags: ${i.join(`, `)}`:null}}const yY={sessionState:zJ,dlog:j,applyUpdate:()=>$J.act(),doctor:nK(e=>{let t=[e.projectDir,e.cwd,e.configFile??void 0];YJ.reload(...t);let n=YJ.getOrCreate(...t);return{layers:n.configLayers,error:n.lastError,warning:n.lastWarning,unused:n.state.unused,config:n.state.config}}),probes:NJ,memento:RJ,claudeInput:GK(),history:BJ,navigation:VJ,configFor:e=>YJ.getOrCreate(e.projectDir,e.cwd,e.configFile??void 0).state.config,reloadConfig:e=>YJ.reload(e.projectDir,e.cwd,e.configFile??void 0)};yY.reloadConfig;const bY={endcaps:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,width:1/0},xY=new Map;function SY(e,t){let n=new Map;for(let[r,i]of e)n.set(r,Mh(i,{...bY,colorCompatibility:t}));return n}const CY={...FJ,history:e=>BJ.depth(e)};function wY(e,t,n){let r=Yq.get(e);if(!r)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return r(t,{...yY,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 TY(e){let t=new Date,n=[];try{let{output:r,moves:i}=await kY(e,AT(t),n);return EY(e,{ok:!0,output:r},t.getTime(),i)}catch(e){let{level:r,line:i}=AJ(n,{kind:`threw`,error:e},Date.now()-t.getTime());return{resp:gY(e),drawnAt:t.getTime(),motion:`still`,failure:{level:r,line:`frame ${i}`}}}}function EY(e,t,n,r){return{resp:t,drawnAt:n,motion:r?WJ.shown(e.hints.tmux)?`moving`:`unseen`:`still`,failure:null}}function DY(e){let{report:t}=$q(e.hookData);for(let e of t.unknownTopLevelFields)j(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let n=[];for(let e of t.missingRequired)n.push(`missing required field '${e}'`);for(let{path:e,expected:r,got:i}of t.typeMismatches)n.push(`field '${e}' expected ${r}, got ${i}`);return(typeof e.cwd!=`string`||!f(e.cwd))&&n.push(`request 'cwd' is not an absolute path: ${JSON.stringify(e.cwd)}`),n.length>0?{ok:!1,problems:n}:{ok:!0,req:{...e,hints:ot(e)}}}const OY=e=>({outcome:{kind:`bad-request`,problems:e},resp:{ok:!1,error:`malformed hookData: ${e.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3}});async function kY(e,t,n){try{var r=jJ();TJ(n,{sid:e.hookData.session_id,at:t.toFixed(3)});let i=e.hookData.workspace.project_dir,{configFile:a,unknownFlagsError:o}=vY(e.args,e.cwd),s=e.hookData.session_id,c=e.hints,l=st(e,c),u=ct(l);TJ(n,{termCols:String(c.termCols??`?`),termRows:String(c.termRows??`?`),refused:l.map(e=>e.hint).join(`,`)||`-`});let d=JSON.stringify(c);zJ.get(s,`client-hints`)!==d&&zJ.set(s,Nq,d);let f=zJ.get(s,`config-override`)??a??c.configEnv,{entry:p,state:m}=r.u(YJ.hold(i,e.cwd,f)),h=lq({projectDir:i,cwd:e.cwd,configFile:f??null});zJ.get(s,`render-origin`)!==h&&zJ.set(s,cq,h);let g=c.termCols,_=gJ(g??120),v=Nh(c.termRows);TJ(n,{width:String(_)});let{authoredRoots:y}=m,b=t=>zJ.get(e.hookData.session_id,t),x=nR(m.config,b,e=>y.has(e)),S=await xR(e.hookData,t,{...CY,navigation:e=>VJ.depth(e,zJ,dz(m.config))},e.cwd,m.neededInputPaths(x.preset),x,c,{...QR(m.config,m.fileHeldSettings,b),configPath:p.configLayers.includes(p.configHome)?p.configHome:null});TJ(n,{prompts:String(S.metrics?.messageCount??`-`),nonPrompts:String(S.metrics?.nonPrompts??`-`),pr:sR(S.git)});let C=[],ee=rR(x,_),te=HJ.of(s),ne=HH(m.config,m.compiled,m.store,m.registry,S,t,ee,{perSegmentSink:m.lastRenderCellsBySegment,onRenderWarning:e=>C.push(e)},{...iR(x),effects:te}),re=ZW(zJ,s)?.text??null,ie=[o,u,p.lastError,re].filter(Boolean).join(`
|
|
474
|
-
`),ae=$J.notice({sessionId:s,dismissed:zJ.get(s,_z),enabled:x.updateNotice}),w=p.lastError===null?null:p.failedFile,T=[...p.lastWarning===null?[]:[{kind:`load`,message:p.lastWarning}],...C],oe=
|
|
475
|
-
`)),E=JJ.sync(s,oe===null?null:
|
|
476
|
-
`,moves:
|
|
473
|
+
`)){let[e,i,a,o,s,c]=r.trim().split(` `);e===void 0||e===``||i===void 0||Number(a)>0&&(o===`1`||t.has(i))&&(s!==`1`||c===`1`)&&n.add(e)}return n}var SJ=class{servers=new Map;constructor(e){this.deps=e}shown(e){if(e==null)return!0;let t=this.servers.get(e.socket);return t?.kind!==`asked`||t.shown.has(e.pane)}async refresh(e){for(let t of this.servers.keys())e.has(t)||this.servers.delete(t);let t=await Promise.all([...e].map(async e=>{let[t,n]=await Promise.all([this.deps.listPanes(e),this.deps.listClients(e)]);return[e,t.kind===`ok`?n.kind===`ok`?{kind:`asked`,shown:xJ(t.stdout,bJ(n.stdout))}:{kind:`unasked`,reason:n.reason}:{kind:`unasked`,reason:t.reason}]})),n=new Set;for(let[e,r]of t){let t=this.servers.get(e);this.servers.set(e,r),!CJ(t,r)&&(n.add(e),this.deps.log(r.kind===`asked`?`info`:`warn`,r.kind===`asked`?`visibility socket=${JSON.stringify(e)} shown=${[...r.shown].join(`,`)||`-`}`:`visibility socket=${JSON.stringify(e)} unasked: ${r.reason} — its panes count as shown`))}n.size>0&&this.deps.onChange(n)}};function CJ(e,t){return e===void 0||e.kind!==t.kind?!1:e.kind===`unasked`||t.kind===`unasked`?!0:e.shown.size===t.shown.size&&[...e.shown].every(e=>t.shown.has(e))}var wJ=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 TJ(e,t){for(let n of Object.entries(t))e.push(n)}const EJ={ok:`info`,"bad-request":`warn`,threw:`error`};function DJ(e){switch(e.kind){case`ok`:return[];case`bad-request`:return[[`problems`,e.problems.join(`; `)]];case`threw`:return[[`error`,y(e.error)]]}}const OJ=/^[^\s"=\\]+$/,kJ=e=>OJ.test(e)?e:JSON.stringify(e);function AJ(e,t,n){let r=[...e,[`took`,`${n}ms`],[`outcome`,t.kind],...DJ(t)];return{level:EJ[t.kind],line:`render${r.map(([e,t])=>` ${e}=${kJ(t)}`).join(``)}`}}function jJ(){var e=typeof SuppressedError==`function`?SuppressedError:function(e,t){var n=Error();return n.name=`SuppressedError`,n.error=e,n.suppressed=t,n},t={},n=[];function r(e,t){if(t!=null){if(Object(t)!==t)throw TypeError(`using declarations can only be used with objects, functions, null, or undefined.`);if(e)var r=t[Symbol.asyncDispose||Symbol.for(`Symbol.asyncDispose`)];if(r===void 0&&(r=t[Symbol.dispose||Symbol.for(`Symbol.dispose`)],e))var i=r;if(typeof r!=`function`)throw TypeError(`Object is not disposable.`);i&&(r=function(){try{i.call(t)}catch(e){return Promise.reject(e)}}),n.push({v:t,d:r,a:e})}else e&&n.push({d:t,a:e});return t}return{e:t,u:r.bind(null,!1),a:r.bind(null,!0),d:function(){var r,i=this.e,a=0;function o(){for(;r=n.pop();)try{if(!r.a&&a===1)return a=0,n.push(r),Promise.resolve().then(o);if(r.d){var e=r.d.call(r.v);if(r.a)return a|=2,Promise.resolve(e).then(o,s)}else a|=1}catch(e){return s(e)}if(a===1)return i===t?Promise.resolve():Promise.reject(i);if(i!==t)throw i}function s(n){return i=i===t?n:new e(n,i),o()}return o()}}}const MJ=new fU,NJ=new TK;je(MJ.launchStats);const PJ=new _T({counters:MJ,logger:j}),FJ=PB({watchers:PJ,logger:j}),{gitProvider:IJ,usageStore:LJ,mementoProvider:RJ}=FJ,zJ=new hU,BJ=new TW(zJ,j),VJ=new JW,HJ=new yh,UJ=new vJ({render:e=>TY(e),watch:(e,t)=>(0,R_.reaction)(()=>zJ.revision(e),t,{scheduler:e=>le(e)}),periods:_J,now:()=>Date.now(),log:j}),WJ=new SJ({listPanes:e=>kB({socket:e},`frames.visibility`,[`list-panes`,`-a`,`-F`,`#{pane_id} #{session_id} #{session_attached} #{window_active} #{window_zoomed_flag} #{pane_active}`]),listClients:e=>kB({socket:e},`frames.visibility`,[`list-clients`,`-F`,`#{session_id} #{client_control_mode}`]),onChange:e=>{for(let{sessionId:t,req:n}of UJ.watched())n.hints.tmux&&e.has(n.hints.tmux.socket)&&UJ.wake(t)},log:j});let GJ=0;const KJ=()=>new Set(UJ.watched().flatMap(({req:{hints:{tmux:e}}})=>e==null?[]:[e.socket])),qJ=()=>{WJ.refresh(KJ()).catch(e=>j(`error`,`visibility refresh threw: ${y(e)}`)).then(()=>setTimeout(qJ,1e3).unref())},JJ=new wJ($e()),YJ=new uU({gitService:IJ,sessionState:zJ,watchers:PJ,log:j},{observers:{onReload:e=>j(`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)}`)}}),XJ=60*1e3;function ZJ(){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){j(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),pY(0);return}}catch(e){j(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,XJ),a.unref())},checkNow:o}}const QJ=ZJ(),$J=Nz({entryUrl:import.meta.url,intervalMs:XJ,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>QJ.checkNow(),log:j});let eY=null,tY=null,nY=0;function rY(){t.on(`uncaughtException`,e=>{j(`error`,`uncaughtException: ${e.stack||e.message}`),pY(1)}),t.on(`unhandledRejection`,e=>{j(`error`,`unhandledRejection: ${String(e)}`),pY(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{j(`info`,`received ${e}, shutting down`),pY(0)});try{nY=Gt(t.env)}catch(e){j(`error`,`refusing to boot: ${e.message}`),pY(1);return}eY=la(t.pid);let e=ya(xa(eY));if(!e.decision.allow){j(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),pY(1);return}tY=e.registryPath,r.mkdirSync(Be(),{recursive:!0}),We(Ve()),zJ.useStorage(new _U(qe(),500,j)),BJ.useStorage(KW(Je(),j)),fa({anchor:da(t.env),isAlive:pa,onOrphaned:e=>{j(`info`,`parent watchdog: ${e}; shutting down`),pY(0)}}),iY(S.createServer({allowHalfOpen:!1},e=>{mY(e)}),Ve(),!1)}function iY(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){j(`error`,`server error: ${i.message}`),pY(1);return}if(r){j(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}aY(e,n)}),e.listen(n,()=>oY(n))}function aY(e,n){let i=$i(ea(Ge(n)),(e,t)=>ca(e,t,{readStartTime:sa,pidAlive:pa}));if(i.kind===`attach-and-exit`){j(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}j(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){j(`error`,`cannot unlink stale socket ${n}: ${e.message}`),pY(1);return}}iY(e,n,!0)}function oY(e){let n=ra(e);if(n.kind!==`present`){j(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),pY(0);return}uY(e);try{r.chmodSync(e,384)}catch(e){j(`warn`,`chmod socket failed: ${e.message}`)}j(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(C.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(nY/1048576)}MB`),cn();let i=JJ.reset();i!==null&&j(`warn`,`diagnostic dump wipe failed: ${i}`),QJ.arm(),$J.arm(),qJ(),lY(),sY(e,n.identity)}function sY(e,n){oa({bound:n,myPid:t.pid,readIdentity:()=>ra(e),readLease:()=>ea(Ge(e)),shutdown:e=>pY(e),log:j}).arm()}let cY=null;function lY(){cY=N(Qt(MJ.startedAt.getTime(),e=>pY(e),{rssLimitBytes:nY})),cY.arm()}function uY(e){let n=ta(Ge(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:eY});n!==null&&j(`warn`,`lease write failed: ${n}`)}let dY=0,fY=!1;function pY(e){if(!fY){fY=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{IJ.close()}catch(e){j(`warn`,`gitService close failed: ${e.message}`)}try{LJ.close()}catch(e){j(`warn`,`usageStore close failed: ${e.message}`)}try{PJ.closeAll()}catch(e){j(`warn`,`watcherRegistry close failed: ${e.message}`)}try{zJ.flush()}catch(e){j(`warn`,`sessionState flush failed: ${e.message}`)}na(Ke(),t.pid),tY!==null&&ba(tY,t.pid,_a,e=>r.unlinkSync(e)),t.exit(e)}}function mY(e){dY++,MJ.inFlight=dY;let t=!1,n=!0,r=()=>{n&&(n=!1,dY=Math.max(0,dY-1),MJ.inFlight=dY)},i=(n,r)=>{if(t){r!==null&&j(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>pY(r);try{e.end(gt(n),i)}catch(e){j(`warn`,`response write failed: ${e.message}`),i?.()}},a=!1,o=setTimeout(()=>{a=!0,MJ.requestsTimedOut++,i({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),s=vt(e=>{_Y(e,()=>a).then(e=>e.kind===`reply`?i(e.resp,e.exitAfterFlush):c(e.sessionId)).catch(e=>{j(`error`,`handler threw: ${y(e)}`),i(gY(e),null)})},e=>{j(`warn`,`frame parse failed: ${e.message}`),i({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)}),c=n=>{if(t||e.destroyed)return;clearTimeout(o),t=!0,r(),e.off(`data`,s);let i=yJ(e);e.on(`close`,UJ.subscribe(n,(e,t)=>i(_t(t))))};e.on(`data`,s),e.on(`error`,e=>{j(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(o),r()})}const hY=e=>({kind:`reply`,resp:e,exitAfterFlush:null}),gY=e=>({ok:!1,error:e instanceof Error?e.message:y(e),code:`RENDER_FAILED`,daemonV:3});async function _Y(e,t){if(!e||typeof e!=`object`||typeof e.v!=`number`)return hY({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?j(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):j(`info`,`version mismatch: client=${e.v} < daemon=3; client is stale — staying up`),{kind:`reply`,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{kind:`reply`,resp:{ok:!0,output:``},exitAfterFlush:0};if(e.kind===`stats`)return hY({ok:!0,stats:MJ.snapshot({gitCache:IJ.getStats(),usageCache:LJ.getStats(),renderCache:YJ.stats,effectCache:HJ.getStats(),sessionState:{sessions:zJ.size(),observers:zJ.observers()},frameFeeds:UJ.getStats(),watchersActive:PJ.size(),nextRestartReason:cY?.describeNextRestart()??null,handlerProbes:NJ.list()})});if(e.kind===`render`){MJ.requestsTotal++;let n=new Date,r=kT(n),i=n.getTime(),a=[],o=++GJ,s=DY(e),c=s.ok?await kY(s.req,r,a).then(({output:e,moves:t})=>{let n={ok:!0,output:e};return QW(zJ,s.req.hookData.session_id,r),UJ.note(s.req.hookData.session_id,s.req,o,EY(s.req,n,i,t)),{outcome:{kind:`ok`},resp:n}},e=>({outcome:{kind:`threw`,error:e},resp:gY(e)})):OY(s.problems);c.outcome.kind!==`ok`&&MJ.requestsErrored++,TJ(a,{timedOut:t()?`Y`:`N`});let{level:l,line:u}=AJ(a,c.outcome,Date.now()-i);return j(l,u),hY(c.resp)}if(e.kind===`subscribe`)return typeof e.sessionId==`string`&&e.sessionId!==``?{kind:`subscribe`,sessionId:e.sessionId}:hY({ok:!1,error:`subscribe needs a non-empty string sessionId`,code:`BAD_REQUEST`,daemonV:3});if(e.kind===`click`)return hY(wY(e.verb,e.value,ht(e.clientVersion)));if(e.kind===`debug`){if(!hJ(e.what))return hY({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${mJ.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=YJ.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?SY(t.lastRenderCellsBySegment,t.config.globals.colorCompatibility??`truecolor`):xY};return hY({ok:!0,debug:rJ(e.what,n)})}return hY({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function vY(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:rI(t,n.config),unknownFlagsError:i.length>0?`Unknown flags: ${i.join(`, `)}`:null}}const yY={sessionState:zJ,dlog:j,applyUpdate:()=>$J.act(),doctor:nK(e=>{let t=[e.projectDir,e.cwd,e.configFile??void 0];YJ.reload(...t);let n=YJ.getOrCreate(...t);return{layers:n.configLayers,error:n.lastError,warning:n.lastWarning,unused:n.state.unused,config:n.state.config}}),probes:NJ,memento:RJ,claudeInput:GK(),history:BJ,navigation:VJ,configFor:e=>YJ.getOrCreate(e.projectDir,e.cwd,e.configFile??void 0).state.config,reloadConfig:e=>YJ.reload(e.projectDir,e.cwd,e.configFile??void 0)};yY.reloadConfig;const bY={endcaps:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,width:1/0},xY=new Map;function SY(e,t){let n=new Map;for(let[r,i]of e)n.set(r,jh(i,{...bY,colorCompatibility:t}));return n}const CY={...FJ,history:e=>BJ.depth(e)};function wY(e,t,n){let r=Yq.get(e);if(!r)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return r(t,{...yY,clientVersion:n}),{ok:!0,output:``}}catch(e){let t=e instanceof q?`BAD_REQUEST`:`RENDER_FAILED`;return{ok:!1,error:String(e instanceof Error?e.message:e),code:t,daemonV:3}}}async function TY(e){let t=new Date,n=[];try{let{output:r,moves:i}=await kY(e,kT(t),n);return EY(e,{ok:!0,output:r},t.getTime(),i)}catch(e){let{level:r,line:i}=AJ(n,{kind:`threw`,error:e},Date.now()-t.getTime());return{resp:gY(e),drawnAt:t.getTime(),motion:`still`,failure:{level:r,line:`frame ${i}`}}}}function EY(e,t,n,r){return{resp:t,drawnAt:n,motion:r?WJ.shown(e.hints.tmux)?`moving`:`unseen`:`still`,failure:null}}function DY(e){let{report:t}=$q(e.hookData);for(let e of t.unknownTopLevelFields)j(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let n=[];for(let e of t.missingRequired)n.push(`missing required field '${e}'`);for(let{path:e,expected:r,got:i}of t.typeMismatches)n.push(`field '${e}' expected ${r}, got ${i}`);return(typeof e.cwd!=`string`||!f(e.cwd))&&n.push(`request 'cwd' is not an absolute path: ${JSON.stringify(e.cwd)}`),n.length>0?{ok:!1,problems:n}:{ok:!0,req:{...e,hints:ot(e)}}}const OY=e=>({outcome:{kind:`bad-request`,problems:e},resp:{ok:!1,error:`malformed hookData: ${e.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3}});async function kY(e,t,n){try{var r=jJ();TJ(n,{sid:e.hookData.session_id,at:t.toFixed(3)});let i=e.hookData.workspace.project_dir,{configFile:a,unknownFlagsError:o}=vY(e.args,e.cwd),s=e.hookData.session_id,c=e.hints,l=st(e,c),u=ct(l);TJ(n,{termCols:String(c.termCols??`?`),termRows:String(c.termRows??`?`),refused:l.map(e=>e.hint).join(`,`)||`-`});let d=JSON.stringify(c);zJ.get(s,`client-hints`)!==d&&zJ.set(s,Nq,d);let f=zJ.get(s,`config-override`)??a??c.configEnv,{entry:p,state:m}=r.u(YJ.hold(i,e.cwd,f)),h=lq({projectDir:i,cwd:e.cwd,configFile:f??null});zJ.get(s,`render-origin`)!==h&&zJ.set(s,cq,h);let g=c.termCols,_=gJ(g??120),v=Mh(c.termRows);TJ(n,{width:String(_)});let{authoredRoots:y}=m,b=t=>zJ.get(e.hookData.session_id,t),x=nR(m.config,b,e=>y.has(e)),S=await xR(e.hookData,t,{...CY,navigation:e=>VJ.depth(e,zJ,dz(m.config))},e.cwd,m.neededInputPaths(x.preset),x,c,{...QR(m.config,m.fileHeldSettings,b),configPath:p.configLayers.includes(p.configHome)?p.configHome:null});TJ(n,{prompts:String(S.metrics?.messageCount??`-`),nonPrompts:String(S.metrics?.nonPrompts??`-`),pr:sR(S.git)});let C=[],ee=rR(x,_),te=HJ.of(s),ne=HH(m.config,m.compiled,m.store,m.registry,S,t,ee,{perSegmentSink:m.lastRenderCellsBySegment,onRenderWarning:e=>C.push(e)},{...iR(x),effects:te}),re=ZW(zJ,s)?.text??null,ie=[o,u,p.lastError,re].filter(Boolean).join(`
|
|
474
|
+
`),ae=$J.notice({sessionId:s,dismissed:zJ.get(s,_z),enabled:x.updateNotice}),w=p.lastError===null?null:p.failedFile,T=[...p.lastWarning===null?[]:[{kind:`load`,message:p.lastWarning}],...C],oe=Lh(ie,ae,T.map(e=>e.message).join(`
|
|
475
|
+
`)),E=JJ.sync(s,oe===null?null:zh(oe));TJ(n,{dumpFailed:E===null?`-`:JSON.stringify(E)});let se=Bh(ne,oe,{fullText:E===null?{kind:`file`,path:JJ.pathFor(s)}:{kind:`unavailable`,reason:E},failedConfigFile:w},{width:_,rowCap:v,colorCompatibility:x.colorCompatibility}),ce=IJ.getStats(),le=LJ.getStats(),ue=te.lastFrame(),de=ue.own.map(e=>`${e.placement}:${e.effect}@${e.t.toFixed(3)}`).join(`,`)||`-`,fe=e=>e.map(e=>`${e.placement}@${e.t.toFixed(3)}`).join(`,`)||`-`,pe=T.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 TJ(n,{git:`${ce.size}/${ce.hits}h/${ce.misses}m`,usage:`${le.size}/${le.hits}h/${le.misses}m`,effect:ue.effect,effectT:ue.t.toFixed(3),effectRows:`${ue.made}made/${ue.reused}reused`,effectOwn:de,fadeBasis:ue.basis,stateRev:String(ue.revision),fades:fe(ue.fades),leaves:fe(ue.leaves),err:ie?`Y`:`N`,upd:String(ae.length),warn:pe}),{output:se+`
|
|
476
|
+
`,moves:lh(ue)}}catch(e){r.e=e}finally{r.d()}}const AY={connectMs:200,budgetMs:500};async function jY(e,n){let r=n.includes(`--json`),i=await MY(e);if(i.kind!==`ok`&&(t.stderr.write(`${e}: ${Et(i)}\n`),t.exit(1)),r){t.stdout.write(JSON.stringify(i.value,null,2)+`
|
|
477
477
|
`);return}t.stdout.write(NY(i.value))}function MY(e){return bt({kind:`debug`,what:e},AY,e=>`debug`in e?e.debug:void 0)}function NY(e){switch(e.what){case`vars`:return PY(e.vars);case`segments`:return FY(e.segments);case`config`:return IY(e.config);default:return e}}function PY(e){if(e.length===0)return`no variables (DSL not active)
|
|
478
478
|
`;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?``:` ${RY(a.ageMs)}`,o=a.lastError?` ✗ ${a.lastError.message}`:``;t.push(` ${a.name.padEnd(n)} ${(a.source??`—`).padEnd(r)} ${a.type.padEnd(i)} ${LY(a.value)}${e}${o}`)}return t.join(`
|
|
479
479
|
`)+`
|
|
@@ -482,11 +482,11 @@ function run(argv) {
|
|
|
482
482
|
`)+`
|
|
483
483
|
`}function IY(e){return e===null?`config: DSL not active
|
|
484
484
|
`:JSON.stringify(e,null,2)+`
|
|
485
|
-
`}function LY(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function RY(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function zY(){let e=VY();return e===null?null:r.readFileSync(e,`utf-8`)}function BY(){let e;try{e=zY()}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 VY(){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 HY(e,t){return rI(t,e.CC_CANDYBAR_CONFIG)}const UY=5e3;function WY(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`},effort:{level:`xhigh`},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:Kk(4e5,1e6),...aR(e),history:{undo:1,redo:1,sinceEdit:1},navigation:{back:1},unsaved:1,resettable:Oa(()=>!0),themeDefault:{differs:!0,theme:`<theme>`},resumeCommand:tR(o,a,void 0),configPath:t??`${r}/.config/cc-candybar/config.json5`}}function GY(e,t){let n=VI(e,e),r=WI(n);return r!==null&&t.push(r),n.kind===`chain`?n.layers:[]}async function KY(e,n=t.cwd()){let i=[],a=rI(n,e)??null,o=a===null?GY(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=KI(n,n);s!==null&&i.push(s);try{return{kind:`clean`,layers:o,warnings:i,rendered:await YY(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
|
|
485
|
+
`}function LY(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function RY(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function zY(){let e=VY();return e===null?null:r.readFileSync(e,`utf-8`)}function BY(){let e;try{e=zY()}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 VY(){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 HY(e,t){return rI(t,e.CC_CANDYBAR_CONFIG)}const UY=5e3;function WY(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`},effort:{level:`xhigh`},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:Kk(4e5,1e6),...aR(e),history:{undo:1,redo:1,sinceEdit:1},navigation:{back:1},unsaved:1,resettable:Oa(()=>!0),themeDefault:{differs:!0,theme:`<theme>`},resumeCommand:tR(o,a,void 0),configPath:t??`${r}/.config/cc-candybar/config.json5`}}function GY(e,t){let n=VI(e,e),r=WI(n);return r!==null&&t.push(r),n.kind===`chain`?n.layers:[]}async function KY(e,n=t.cwd()){let i=[],a=rI(n,e)??null,o=a===null?GY(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=KI(n,n);s!==null&&i.push(s);try{return{kind:`clean`,layers:o,warnings:i,rendered:await YY(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 aE&&i.push(...e.warnings),{kind:`fatal`,layers:o,message:e instanceof aE||e instanceof Error?e.message:String(e),warnings:i})}}async function qY(e,t,n){let r=eL(e,CL,{entered:()=>{},warned:e=>n.push(...e)},{projectDir:t,cwd:t}),{config:i}=r,a=new eU,o=new $T(a,i.globals.default_empty_value??``,void 0,new hU);try{let s=IH(i,o,{cwd:t});n.push(...s.loadWarnings);let c=await o.settled(UY);return c.length>0&&n.push(`source${c.length===1?``:`s`} still running after ${UY} 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 JY({layers:e,config:t,compiled:n,store:r,registry:i},a,o,s){let c=new Map,l=new Set;return{rendered:HH(t,n,r,i,WY(a,e.at(-1)??null,s),s,rR(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:}}},iR(a)),failures:c,advisories:l}}async function YY(e,t,n){let r=await qY(e,t,n),{config:i}=r,a=kT(new Date);try{let e=Mz();try{dz(i),TM(i)}finally{e()}let t=e_(null,i.globals.preset,i.presets),o=(e,t)=>{let n=nR(i,t=>t===`preset`?e:null,()=>t),o;try{o=JY(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),...$g(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(`
|
|
486
486
|
`)]:[]];if(p.length>0||d===void 0)throw Error(p.join(`
|
|
487
487
|
`));return d}finally{r.registry.dispose()}}function XY(e){return e.map(e=>`warning: ${e}\n`).join(``)}function ZY(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:XY(e.warnings),code:0};case`fatal`:return{stdout:``,stderr:XY(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 QY=`--render`,$Y=`Usage: cc-candybar check [${QY}] [config-file]\n`;function eX(e){let t=e.filter(e=>e.startsWith(`--`)),n=e.filter(e=>!e.startsWith(`--`)),r=t.filter(e=>e!==QY);return r.length>0?{kind:`usage`,message:`check: unknown option ${r.join(` `)}\n${$Y}`}:n.length>1||n[0]===``?{kind:`usage`,message:`check: expected at most one non-empty path\n${$Y}`}:{kind:`run`,target:n[0],render:t.includes(QY)}}async function tX(e){let n=eX(e),r=n.kind===`usage`?{stdout:``,stderr:n.message,code:2}:ZY(await KY(n.target??HY(t.env,t.cwd())),n.render);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const nX=/^[a-z][a-z0-9+.-]*:\/\//i,rX=/^[^@\s/]+@[^:\s/]+:/,iX=/^([A-Za-z0-9-]+\/[A-Za-z0-9._-]+?)(?:\.git)?$/;function aX(e){if(!URL.canParse(e))return e;let t=new URL(e);return t.password===``?e:(t.password=`***`,t.href)}function oX(e,t,n){let r=nI(t,e);if(n(r))return{kind:`path`,dir:r};if(nX.test(e)||rX.test(e))return{kind:`git`,url:e,shown:aX(e)};let i=iX.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 sX(e,t){let n=l.join(e,MI),r=FI(n);if(`error`in r)throw Error(`${t}: could not list ${MI}: ${r.error}`);if(r.folders.length===0)throw Error(`${t} has no plugins: none at ${MI}/<name>/${oI}`);return r.folders.map(e=>l.join(n,e,oI))}function cX(e,t,n){let r=(n,...r)=>{let i=O({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(`
|
|
488
488
|
`))delete i[e];r(i,`clone`,`--quiet`,`--depth`,`1`,`--filter=blob:none`,`--sparse`,`--`,e,n),r(i,`-C`,n,`sparse-checkout`,`set`,`--no-cone`,`/${MI}/`)}function lX(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 cX(e.url,e.shown,l.join(n,`repo`)),t(l.join(n,`repo`))}finally{r.rmSync(n,{recursive:!0,force:!0})}}}}function uX(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 dX(e,t,n,i){switch(i){case`updated`:r.renameSync(l.join(e,oI),l.join(t,oI));return;case`replaced`:r.renameSync(t,n),r.renameSync(e,t);return;case`installed`:r.renameSync(e,t);return}}function fX(e,t,n){let i=sX(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,oI))}catch(e){if(e.code!==`ENOENT`)throw e}return t}),s=QI(o.map(e=>l.join(e,oI)),CL,{root:e,git:!1});if(s.length>0)throw Error(s.map(e=>`${n}: ${l.join(MI,l.relative(a,e.path))} would not load: ${e.reason.split(a).join(l.join(n,MI))}`).join(`
|
|
489
|
-
`));let c=o.map(e=>{let n=l.basename(e),r=l.join(t,n);return{folder:e,name:n,target:r,placed:uX(r)}}),u=[];try{for(let{folder:e,name:t,target:n,placed:r}of c)dX(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,oI),placed:t}))}finally{r.rmSync(a,{recursive:!0,force:!0})}}function pX(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=oX(n,process.cwd(),
|
|
489
|
+
`));let c=o.map(e=>{let n=l.basename(e),r=l.join(t,n);return{folder:e,name:n,target:r,placed:uX(r)}}),u=[];try{for(let{folder:e,name:t,target:n,placed:r}of c)dX(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,oI),placed:t}))}finally{r.rmSync(a,{recursive:!0,force:!0})}}function pX(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=oX(n,process.cwd(),GT);if(`error`in i)return console.error(`plugin install: ${i.error}`),2;try{let e=i.kind===`path`?i.dir:i.shown,t=lX(i,t=>fX(t,jI(),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 mX=`${Zf}${Xf}`;function hX(e){return`${mX}⚠ cc-candybar: ${gX(e)}[0m\n`}function gX(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: ${Yf(e.message,60)}`;case`render_failed`:return`render failed: ${Yf(e.message,60)}`;case`malformed_response`:return`malformed daemon response: ${Yf(e.message,60)}`}}function _X(e){switch(e.kind){case`ok`:return{output:e.value,kick:!1,debug:null};case`transient`:return{output:`
|
|
490
490
|
`,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:hX(e),kick:!1,debug:`daemon refused request (permanent: ${e.cause}) — not kicking`}}}function vX(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 yX=[`SSH_CONNECTION`,`SSH_CLIENT`,`SSH_TTY`];function bX(e,t,n){return{termCols:vX(e.COLUMNS,n.columns),termRows:vX(e.LINES,n.rows),ssh:yX.some(t=>(e[t]??``)!==``),tmux:IO(e),configEnv:HY(e,t),claudeConfigDir:ui(e,t),mementoEnv:nt(e,t),terminalEnv:it(e)}}const xX=` (fix: click the settings menu (${er} by default) › 🧰 tools › 🩺 doctor, then [fix] on the bar)`,SX=`mark them ✓ shapes or ✗ boxes in the bar's doctor, and this command reads your mark: the settings menu (${er} by default) › 🧰 tools › 🩺 doctor`;function CX({check:e,verdict:t}){return t.ok?`✓ ${e.label}\n`:`✗ ${e.label} — ${t.reason}${t.fix===void 0?``:xX}\n`+(t.more??[]).map(e=>` ${e}\n`).join(``)+(t.sighting===void 0?``:` look: ${t.sighting.glyphs} — ${SX}\n`)}function wX(e){let t={sessionState:new hU},n=cU(e.projectDir,e.cwd,e.configFile??void 0,t),r=n.state??lU(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 TX(e,t,n,r,i=void 0){let a;try{a={...uK(e,bX(n,r,{}),{projectDir:r,cwd:r,configFile:rI(r,i)??HY(n,r)??null},()=>null),urlHandler:await AK(t),askedBy:`command`}}catch(e){return{stdout:``,stderr:`doctor: ${e instanceof Error?e.message:String(e)}\n`,code:2}}let o=xk(a);return{stdout:o.map(CX).join(``),stderr:``,code:+!o.every(e=>e.verdict.ok)}}async function EX(e){(e.length>1||e[0]===``||e[0]?.startsWith(`--`))&&(t.stderr.write(`doctor: expected at most one config file
|
|
491
491
|
Usage: cc-candybar doctor [config-file]
|
|
492
492
|
`),t.exit(2));let n=t.cwd(),r=await TX(nK(wX),PK(),t.env,n,e[0]);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}function DX(e,t,n,r){let i=null,a=e=>{i===null&&(i=e,o.destroy(),r(e))},o=S.createConnection({path:e}),s={v:3,kind:`subscribe`,sessionId:t};return o.once(`connect`,()=>o.write(gt(s))),o.on(`data`,vt(e=>{let t=e;!t.ok&&t.code!==`RENDER_FAILED`?a({kind:`refused`,resp:t}):n(t)},e=>a({kind:`failed`,error:e}))),o.on(`error`,e=>a({kind:`failed`,error:e})),o.on(`close`,()=>a({kind:`closed-there`})),{close:()=>a({kind:`closed-here`})}}async function OX(e){let{values:n,tokens:r}=b({args:e.slice(3),options:{session:{type:`string`},config:{type:`string`}},strict:!0,tokens:!0}),i=[e[1],...r.flatMap(e=>e.kind===`option`&&e.name===`config`?[e.rawName,e.value]:[])],a=t.cwd(),o=e=>{t.stderr.write(`cc-candybar frames: ${e}\n`)};n.session===``&&(o(`--session needs a session id`),t.exit(2)),n.session!==void 0&&n.config!==void 0&&(o(`--config has no effect with --session: the session's own statusline client sends its config`),t.exit(2)),t.stdout.on(`error`,()=>t.exit(0));let s=yJ(t.stdout),c=n.session??null,l=null,u=null,d=250,f=async e=>{let n=await jt(e,i,a,bX(t.env,a,t.stderr));n.kind!==`ok`&&(o(Et(n)),n.kind===`transient`&&$t())},p=e=>{u?.close(),u=DX(Ve(),e,e=>{e.ok&&(d=250),s(`${JSON.stringify(e)}\n`)},n=>{if(n.kind===`closed-here`)return;let r=kX(n);r.kind===`exit`&&(o(r.reason),t.exit(1)),o(`${r.reason}; reconnecting in ${d}ms`),r.kick&&$t();let i=d;d=Math.min(2e3,d*2),setTimeout(()=>{(l===null?Promise.resolve():f(l)).then(()=>{c===e&&p(e)})},i)})};if(c!==null){p(c);return}for await(let e of pe({input:t.stdin})){if(e.trim()===``)continue;let t;try{t=JSON.parse(e)}catch(e){o(`stdin line is not JSON: ${e.message}`);continue}if(typeof t.session_id!=`string`||t.session_id===``){o(`stdin line carries no session_id`);continue}l=t,await f(t),t.session_id!==c&&(c=t.session_id,p(c))}t.exit(0)}function kX(e){switch(e.kind){case`failed`:return{kind:`reconnect`,reason:`stream failed (${e.error.message})`,kick:!0};case`closed-there`:return{kind:`reconnect`,reason:`daemon closed the stream`,kick:!1};case`refused`:return e.resp.code===`TIMEOUT`?{kind:`reconnect`,reason:`the daemon was too busy to open the stream (${e.resp.error})`,kick:!1}:e.resp.code===`BAD_REQUEST`?{kind:`reconnect`,reason:`the daemon does not take subscribe (${e.resp.error}); it restarts on the new build`,kick:!1}:e.resp.code===`VERSION_MISMATCH`&&e.resp.daemonV!==void 0&&e.resp.daemonV<3?{kind:`reconnect`,reason:`the daemon is older than this client (${e.resp.error})`,kick:!0}:{kind:`exit`,reason:`the daemon refused the stream: ${e.resp.code}: ${e.resp.error}`}}}const AX=e=>e.some(e=>t.argv.includes(e));function jX(){console.log(NO)}async function MX(){try{AX(jO.help)&&(jX(),t.exit(0)),AX(jO.version)&&(console.log(`cc-candybar ${Dt}`),t.exit(0));let e=t.argv[2];if(e===`install`&&(await Zi(t.argv.slice(3)),t.exit(0)),e===`install-url-handler`&&(Ki(),t.exit(0)),e===`url-handle`){await Ji(t.argv[3]);return}if(e===`daemon`){rY();return}if(e===`daemon-stats`&&(await pK(t.argv.slice(3)),t.exit(0)),e===`frames`){await OX(t.argv);return}if(e===`check`||e===`lint`){await tX(t.argv.slice(3));return}if(e===`plugin`&&t.exit(pX(t.argv.slice(3))),e===`schema`){BY();return}if(e===`doctor`){await EX(t.argv.slice(3));return}hJ(e)&&(await jY(e,t.argv.slice(3)),t.exit(0)),t.stdin.isTTY===!0&&(console.error(`Error: This tool requires input from Claude Code
|