@promptctl/cc-candybar 1.130.4 → 1.131.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.mjs +63 -63
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
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 w,fileURLToPath as te,pathToFileURL as ne}from"node:url";import re,{createHash as ie,randomUUID as T}from"node:crypto";import{open as E,readFile as ae,readdir as oe,stat as se}from"node:fs/promises";import{clearInterval as ce,setInterval as le}from"node:timers";import{get as ue}from"node:https";import{setTimeout as de}from"node:timers/promises";import{createInterface as fe}from"node:readline";var pe=Object.create,me=Object.defineProperty,he=Object.getOwnPropertyDescriptor,ge=Object.getOwnPropertyNames,_e=Object.getPrototypeOf,ve=Object.prototype.hasOwnProperty,ye=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),be=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ge(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ve.call(e,s)&&s!==n&&me(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=he(t,s))||r.enumerable});return e},xe=(e,t,n)=>(n=e==null?{}:pe(_e(e)),be(t||!e||!e.__esModule?me(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}function Se(e,t){return x.isNativeError(e)?e.code===`ENOENT`&&t!==void 0&&!a(t)?`working directory does not exist: ${t}`:e.message:String(e)}const Ce={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3,"claude-input.type":1e3},we=new Map;function Te(e){let t=Ce[e];if(t===void 0)return{allowed:!0};let n=we.get(e);if(n===void 0)return{allowed:!0};let r=Date.now()-n;return r>=t?{allowed:!0}:{allowed:!1,minIntervalMs:t,sinceLastMs:r}}function Ee(e){we.set(e,Date.now())}function De(e){return e.env??process.env}function Oe(e,t,n){return{ok:!1,reason:`rate-limited`,stdout:``,stderr:``,exitCode:null,signal:null,error:`rate-limited: ${e} min interval ${t}ms, last start ${n}ms ago`}}let ke=null;function Ae(e){ke=e}function je(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function O(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();return ke?.onStart(e.category),new Promise(t=>{let r;try{r=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){ke?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(r,e.cwd)});return}let i=``,a=``,o=!1,s=null,c=null,l=null,u=()=>m(`aborted`),d=t=>{o||(o=!0,s&&clearTimeout(s),c&&clearTimeout(c),e.signal?.removeEventListener(`abort`,u),ke?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{je(e,t)}catch(e){f({ok:!1,reason:`signal-refused`,stdout:i,stderr:a,exitCode:null,signal:null,error:e instanceof Error?e.message:String(e)})}},m=t=>{l=t,s&&clearTimeout(s),e.signal?.removeEventListener(`abort`,u);let n=r.pid;n!==void 0&&(c=setTimeout(()=>p(n,`SIGKILL`),250),p(n,`SIGTERM`))};r.stdout?.on(`data`,e=>{i+=e.toString(`utf8`)}),r.stderr?.on(`data`,e=>{a+=e.toString(`utf8`)}),r.on(`error`,t=>{f({ok:!1,reason:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:null,error:Se(t,e.cwd)})}),r.on(`close`,(e,t)=>{if(l!==null){f({ok:!1,reason:l,stdout:i,stderr:a,exitCode:e,signal:t});return}if(e===0){f({ok:!0,stdout:i,stderr:a,exitCode:e});return}f({ok:!1,reason:t?`signal`:`non-zero`,stdout:i,stderr:a,exitCode:e,signal:t})}),e.timeoutMs&&e.timeoutMs>0&&(s=setTimeout(()=>m(`timeout`),e.timeoutMs)),e.signal?.addEventListener(`abort`,u,{once:!0}),e.stdinInput!==void 0&&r.stdin?r.stdin.end(e.stdinInput):r.stdin&&r.stdin.end()})}function Me(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=v(e.bin,e.args??[],{cwd:e.cwd,env:De(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});ke?.onEnd(e.category,Date.now()-n);let i=typeof t.stdout==`string`?t.stdout:``,a=typeof t.stderr==`string`?t.stderr:``;if(t.error)return{ok:!1,reason:t.error.code===`ETIMEDOUT`?`timeout`:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:t.signal??null,error:Se(t.error,e.cwd)};if(t.status===0)return{ok:!0,stdout:i,stderr:a,exitCode:t.status};let o=e.timeoutMs!==void 0&&e.timeoutMs>0;return{ok:!1,reason:t.signal?o&&t.signal===`SIGTERM`?`timeout`:`signal`:`non-zero`,stdout:i,stderr:a,exitCode:t.status,signal:t.signal??null}}catch(t){return ke?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}}function Ne(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=Pe(e);return ke?.onEnd(e.category,Date.now()-n),r}function Pe(e){let t;try{t=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),detached:!0,stdio:`ignore`})}catch(t){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}return t.once(`error`,()=>{}),t.pid===void 0?{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:`spawn(${e.bin}): no pid (binary not found or unexecutable)`}:(t.unref(),{ok:!0,stdout:``,stderr:``,exitCode:null})}function Fe(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 Ie(e,t){let n=e[t];return n&&n.length>0?n:void 0}function Le(e=process.env){let t=Ie(e,`XDG_STATE_HOME`)??l.join(h.homedir(),`.local`,`state`);return l.join(t,`cc-candybar`)}function Re(){let e=Ie(process.env,`XDG_CACHE_HOME`)??l.join(h.homedir(),`.cache`);return l.join(e,`cc-candybar`)}function ze(){return Le()}function Be(){return process.env.CC_CANDYBAR_SOCKET||Ve()}function Ve(){let e=h.userInfo().uid;return l.join(`/tmp`,`cc-candybar-${e}`,`socket`)}function He(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 Ue(e){He(l.dirname(e));for(let t of[e,We(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function We(e){return`${e}.lease`}function Ge(){return We(Be())}function Ke(){return l.join(Le(),`session-state.json`)}function qe(){return l.join(Le(),`settings-history.json`)}function Je(){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 Ye(){return l.join(Le(),`spawn.lock`)}function Xe(){return l.join(Le(),`spawn.cooldown`)}function Ze(){return l.join(Le(),`spawn.backoff`)}function Qe(){return l.join(Le(),`diagnostics`)}function $e(e=process.env){return l.join(Le(e),`daemon.log`)}const et=[`MEMENTO_CONFIG_HOME`,`XDG_CONFIG_HOME`];function tt(e,t){return Object.fromEntries(et.flatMap(n=>{let r=e[n]??``;return r===``?[]:[[n,l.resolve(t,r)]]}))}const nt=Object.keys({termCols:!0,termRows:!0,ssh:!0,tmux:!0,configEnv:!0,claudeConfigDir:!0,mementoEnv:!0});function rt(e){let t=ut(e.termCols),n=ut(e.termRows),r=dt(e.ssh),i=ct(e.tmux),a=st(e.configEnv),o=st(e.claudeConfigDir),s=ot(e.mementoEnv);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}}}function it(e,t){return nt.filter(n=>e[n]!==void 0&&t[n]===void 0).map(t=>({hint:t,sent:e[t]}))}function at(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 ot(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e,n=et.filter(e=>t[e]!==void 0);return n.every(e=>st(t[e])!==void 0)?Object.fromEntries(n.map(e=>[e,t[e]])):void 0}function st(e){return typeof e==`string`&&l.isAbsolute(e)?e:void 0}function ct(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 lt=1e4;function ut(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>lt?lt:t}function dt(e){return typeof e==`boolean`?e:void 0}function ft(e){return typeof e==`string`&&e!==``&&e.length<=64?e:null}var pt=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function mt(e){let t=Buffer.from(JSON.stringify(e),`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function ht(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 pt(`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 pt(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function gt(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=ht(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(mt(t))})}async function _t(e,t,n){let r=null;try{r=await St(Be(),t.connectMs);let i=await gt(r,{v:3,...e},t.budgetMs);return bt(e.kind,i,n)}catch(e){return xt(e)}finally{r&&r.destroy()}}function vt(e,t){return typeof e==`string`?e:t}function yt(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function bt(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=vt(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:yt(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 xt(e){if(e instanceof pt||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 St(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 Ct(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 wt=`1.130.4`,Tt={connectMs:50,budgetMs:150},Et={connectMs:50,budgetMs:200};function Dt(e){let t=e.output;return typeof t==`string`?t:void 0}function Ot(e,t,n,r){return _t({kind:`render`,hookData:e,args:t,cwd:n,...r},Tt,Dt)}function kt(e,t){return _t({kind:`click`,verb:e,value:t,clientVersion:wt},Et,Dt)}let At=null;function jt(e){if(At!==null)return At;r.mkdirSync(l.dirname(e),{recursive:!0});try{At=r.statSync(e).size}catch{At=0}return At}function Mt(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{}At=0}const Nt=(e,t)=>D(t);function k(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=$e(),t=jt(e);r.appendFileSync(e,n),At=t+Buffer.byteLength(n,`utf8`),At>=5242880&&Mt(e)}catch(e){At=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}function Pt(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 se,stat as ce}from"node:fs/promises";import{clearInterval as le,setInterval as ue}from"node:timers";import{get as E}from"node:https";import{setTimeout as de}from"node:timers/promises";import{createInterface as fe}from"node:readline";var pe=Object.create,me=Object.defineProperty,he=Object.getOwnPropertyDescriptor,ge=Object.getOwnPropertyNames,_e=Object.getPrototypeOf,ve=Object.prototype.hasOwnProperty,ye=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),be=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ge(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ve.call(e,s)&&s!==n&&me(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=he(t,s))||r.enumerable});return e},xe=(e,t,n)=>(n=e==null?{}:pe(_e(e)),be(t||!e||!e.__esModule?me(n,`default`,{value:e,enumerable:!0}):n,e));function D(e,...t){process.env.CC_CANDYBAR_DEBUG&&console.error(`[DEBUG] ${e}`,...t)}function Se(e,t){return x.isNativeError(e)?e.code===`ENOENT`&&t!==void 0&&!a(t)?`working directory does not exist: ${t}`:e.message:String(e)}const Ce={"click.pbcopy":1e3,"click.open":1e3,"doctor.tmux":1e3,"claude-input.type":1e3},we=new Map;function Te(e){let t=Ce[e];if(t===void 0)return{allowed:!0};let n=we.get(e);if(n===void 0)return{allowed:!0};let r=Date.now()-n;return r>=t?{allowed:!0}:{allowed:!1,minIntervalMs:t,sinceLastMs:r}}function Ee(e){we.set(e,Date.now())}function De(e){return e.env??process.env}function Oe(e,t,n){return{ok:!1,reason:`rate-limited`,stdout:``,stderr:``,exitCode:null,signal:null,error:`rate-limited: ${e} min interval ${t}ms, last start ${n}ms ago`}}let ke=null;function Ae(e){ke=e}function je(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function O(e){if(e.signal?.aborted)return{ok:!1,reason:`aborted`,stdout:``,stderr:``,exitCode:null,signal:null};let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();return ke?.onStart(e.category),new Promise(t=>{let r;try{r=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),stdio:[`pipe`,`pipe`,`pipe`],detached:!0})}catch(r){ke?.onEnd(e.category,Date.now()-n),t({ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(r,e.cwd)});return}let i=``,a=``,o=!1,s=null,c=null,l=null,u=()=>m(`aborted`),d=t=>{o||(o=!0,s&&clearTimeout(s),c&&clearTimeout(c),e.signal?.removeEventListener(`abort`,u),ke?.onEnd(e.category,Date.now()-n),t())},f=e=>d(()=>t(e)),p=(e,t)=>{try{je(e,t)}catch(e){f({ok:!1,reason:`signal-refused`,stdout:i,stderr:a,exitCode:null,signal:null,error:e instanceof Error?e.message:String(e)})}},m=t=>{l=t,s&&clearTimeout(s),e.signal?.removeEventListener(`abort`,u);let n=r.pid;n!==void 0&&(c=setTimeout(()=>p(n,`SIGKILL`),250),p(n,`SIGTERM`))};r.stdout?.on(`data`,e=>{i+=e.toString(`utf8`)}),r.stderr?.on(`data`,e=>{a+=e.toString(`utf8`)}),r.on(`error`,t=>{f({ok:!1,reason:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:null,error:Se(t,e.cwd)})}),r.on(`close`,(e,t)=>{if(l!==null){f({ok:!1,reason:l,stdout:i,stderr:a,exitCode:e,signal:t});return}if(e===0){f({ok:!0,stdout:i,stderr:a,exitCode:e});return}f({ok:!1,reason:t?`signal`:`non-zero`,stdout:i,stderr:a,exitCode:e,signal:t})}),e.timeoutMs&&e.timeoutMs>0&&(s=setTimeout(()=>m(`timeout`),e.timeoutMs)),e.signal?.addEventListener(`abort`,u,{once:!0}),e.stdinInput!==void 0&&r.stdin?r.stdin.end(e.stdinInput):r.stdin&&r.stdin.end()})}function Me(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=[`pipe`,`pipe`,`pipe`];try{let t=v(e.bin,e.args??[],{cwd:e.cwd,env:De(e),input:e.stdinInput,timeout:e.timeoutMs&&e.timeoutMs>0?e.timeoutMs:void 0,stdio:r,encoding:`utf8`});ke?.onEnd(e.category,Date.now()-n);let i=typeof t.stdout==`string`?t.stdout:``,a=typeof t.stderr==`string`?t.stderr:``;if(t.error)return{ok:!1,reason:t.error.code===`ETIMEDOUT`?`timeout`:`spawn-error`,stdout:i,stderr:a,exitCode:null,signal:t.signal??null,error:Se(t.error,e.cwd)};if(t.status===0)return{ok:!0,stdout:i,stderr:a,exitCode:t.status};let o=e.timeoutMs!==void 0&&e.timeoutMs>0;return{ok:!1,reason:t.signal?o&&t.signal===`SIGTERM`?`timeout`:`signal`:`non-zero`,stdout:i,stderr:a,exitCode:t.status,signal:t.signal??null}}catch(t){return ke?.onEnd(e.category,Date.now()-n),{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}}function Ne(e){let t=Te(e.category);if(!t.allowed)return Oe(e.category,t.minIntervalMs,t.sinceLastMs);Ee(e.category);let n=Date.now();ke?.onStart(e.category);let r=Pe(e);return ke?.onEnd(e.category,Date.now()-n),r}function Pe(e){let t;try{t=_(e.bin,e.args??[],{cwd:e.cwd,env:De(e),detached:!0,stdio:`ignore`})}catch(t){return{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:Se(t,e.cwd)}}return t.once(`error`,()=>{}),t.pid===void 0?{ok:!1,reason:`spawn-error`,stdout:``,stderr:``,exitCode:null,signal:null,error:`spawn(${e.bin}): no pid (binary not found or unexecutable)`}:(t.unref(),{ok:!0,stdout:``,stderr:``,exitCode:null})}function Fe(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 Ie(e,t){let n=e[t];return n&&n.length>0?n:void 0}function Le(e=process.env){let t=Ie(e,`XDG_STATE_HOME`)??l.join(h.homedir(),`.local`,`state`);return l.join(t,`cc-candybar`)}function Re(){let e=Ie(process.env,`XDG_CACHE_HOME`)??l.join(h.homedir(),`.cache`);return l.join(e,`cc-candybar`)}function ze(){return Le()}function Be(){return process.env.CC_CANDYBAR_SOCKET||Ve()}function Ve(){let e=h.userInfo().uid;return l.join(`/tmp`,`cc-candybar-${e}`,`socket`)}function He(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 Ue(e){He(l.dirname(e));for(let t of[e,We(e)])try{if(r.lstatSync(t).isSymbolicLink())throw Error(`path is a symlink: ${t}`)}catch(e){if(e.code!==`ENOENT`)throw e}}function We(e){return`${e}.lease`}function Ge(){return We(Be())}function Ke(){return l.join(Le(),`session-state.json`)}function qe(){return l.join(Le(),`settings-history.json`)}function Je(){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 Ye(){return l.join(Le(),`spawn.lock`)}function Xe(){return l.join(Le(),`spawn.cooldown`)}function Ze(){return l.join(Le(),`spawn.backoff`)}function Qe(){return l.join(Le(),`diagnostics`)}function $e(e=process.env){return l.join(Le(e),`daemon.log`)}const et=[`MEMENTO_CONFIG_HOME`,`XDG_CONFIG_HOME`];function tt(e,t){return Object.fromEntries(et.flatMap(n=>{let r=e[n]??``;return r===``?[]:[[n,l.resolve(t,r)]]}))}const nt=Object.keys({termCols:!0,termRows:!0,ssh:!0,tmux:!0,configEnv:!0,claudeConfigDir:!0,mementoEnv:!0});function rt(e){let t=ut(e.termCols),n=ut(e.termRows),r=dt(e.ssh),i=ct(e.tmux),a=st(e.configEnv),o=st(e.claudeConfigDir),s=ot(e.mementoEnv);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}}}function it(e,t){return nt.filter(n=>e[n]!==void 0&&t[n]===void 0).map(t=>({hint:t,sent:e[t]}))}function at(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 ot(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e,n=et.filter(e=>t[e]!==void 0);return n.every(e=>st(t[e])!==void 0)?Object.fromEntries(n.map(e=>[e,t[e]])):void 0}function st(e){return typeof e==`string`&&l.isAbsolute(e)?e:void 0}function ct(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 lt=1e4;function ut(e){if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.floor(e);if(!(t<=0))return t>lt?lt:t}function dt(e){return typeof e==`boolean`?e:void 0}function ft(e){return typeof e==`string`&&e!==``&&e.length<=64?e:null}var pt=class extends Error{constructor(e){super(e),this.name=`ProtocolError`}};function mt(e){let t=Buffer.from(JSON.stringify(e),`utf8`),n=Buffer.alloc(4);return n.writeUInt32BE(t.length,0),Buffer.concat([n,t])}function ht(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 pt(`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 pt(e instanceof Error?e.message:String(e));e instanceof Error&&(n.cause=e),t(n);return}}}}function gt(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=ht(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(mt(t))})}async function _t(e,t,n){let r=null;try{r=await St(Be(),t.connectMs);let i=await gt(r,{v:3,...e},t.budgetMs);return bt(e.kind,i,n)}catch(e){return xt(e)}finally{r&&r.destroy()}}function vt(e,t){return typeof e==`string`?e:t}function yt(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0?e:0}function bt(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=vt(r.error,`(no error message)`);switch(r.code){case`VERSION_MISMATCH`:return{kind:`permanent`,cause:`version_mismatch`,clientV:3,daemonV:yt(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 xt(e){if(e instanceof pt||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 St(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 Ct(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 wt=`1.131.0`,Tt={connectMs:50,budgetMs:150},Et={connectMs:50,budgetMs:200};function Dt(e){let t=e.output;return typeof t==`string`?t:void 0}function Ot(e,t,n,r){return _t({kind:`render`,hookData:e,args:t,cwd:n,...r},Tt,Dt)}function kt(e,t){return _t({kind:`click`,verb:e,value:t,clientVersion:wt},Et,Dt)}let At=null;function jt(e){if(At!==null)return At;r.mkdirSync(l.dirname(e),{recursive:!0});try{At=r.statSync(e).size}catch{At=0}return At}function Mt(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{}At=0}const Nt=(e,t)=>D(t);function k(e,t){let n=`${new Date().toISOString()} [${e}] ${t}\n`;try{let e=$e(),t=jt(e);r.appendFileSync(e,n),At=t+Buffer.byteLength(n,`utf8`),At>=5242880&&Mt(e)}catch(e){At=null;try{process.stderr.write(`${n}cc-candybar: daemon.log unwritable: ${e.message}\n`)}catch{}}}function Pt(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 Ft(e,t){return e===`darwin`?[A(`footprint`,[`-p`,String(t)]),A(`vmmap`,[`--summary`,String(t)])]:e===`linux`?[It(`/proc/self/smaps_rollup`),It(`/proc/self/status`)]:[]}function A(e,t){return{name:`${e} ${t.join(` `)}`,read:()=>{let n=Me({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}`}${j(n.stderr)}`}}}}function It(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 j(e){let t=e.split(`
|
|
4
4
|
`).map(e=>e.trim()).find(e=>e.length>0);return t===void 0?``:` (${t})`}const Lt=`CC_CANDYBAR_RSS_LIMIT_MB`;function Rt(e){let t=e[Lt];if(t===void 0)return 512;let n=/^\d+$/.test(t)?Number(t):NaN;if(!Number.isSafeInteger(n)||n<=0)throw Error(`${Lt} must be a positive integer (MB), got ${JSON.stringify(t)}`);return n}function zt(e){return Rt(e)*2}const Bt=1024*1024;function Vt(e){return Rt(e)*Bt}const Ht={memoryReport:{prefix:`memory-`,suffix:`.txt`},heapSnapshot:{prefix:`heap-`,suffix:`.heapsnapshot`}};function Ut(e,t,n){let{prefix:r,suffix:i}=Ht[t];return l.join(e,`${r}${n}${i}`)}function Wt(e){for(let t of Object.keys(Ht)){let{prefix:n,suffix:r}=Ht[t];if(e.startsWith(n)&&e.endsWith(r))return t}return null}function Gt(e){let t=e.rssLimitBytes??512*Bt,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 Kt(e.log,`memory report`,()=>{let t=Ut(e.snapshotDir,`memoryReport`,o);e.writeMemoryReport(t,e.captureMemoryReport()),e.log(`info`,`memory report written: ${t}`)}),Kt(e.log,`heap snapshot`,()=>{let t=Ut(e.snapshotDir,`heapSnapshot`,o);e.log(`info`,`heap snapshot written: ${e.writeHeapSnapshot(t)}`)}),Kt(e.log,`artifact rotation`,()=>{Jt(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 Kt(e,t,n){try{n()}catch(n){e(`warn`,`${t} failed: ${n.message}`)}}function qt(e){let t=e.slice(e.lastIndexOf(`/`)+1),n=Wt(t);if(n===null)return t;let{prefix:r,suffix:i}=Ht[n];return t.slice(r.length,t.length-i.length)}function Jt(e,t,n){let r=new Map;for(let t of e){let e=qt(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 Yt(e,t,n={}){let i=ze();return{now:()=>Date.now(),pid:process.pid,snapshotDir:i,log:k,memoryBytes:()=>{let e=process.memoryUsage();return{rss:e.rss,heapTotal:e.heapTotal}},captureMemoryReport:()=>Pt(Ft(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=>Wt(e)!==null).map(e=>l.join(i,e))}catch{return[]}},removeFile:e=>r.unlinkSync(e),shutdown:t,startedAtMs:e,...n}}function Xt(e={}){if(fn()!==null)return;let n=e.spawn??pn,r=ln();if(r.kind===`contended`){let e=Qt();e!==null&&e>2e3&&(t.stderr.write(`cc-candybar: spawn-lock held ${e}ms (likely crashed holder) — spawning unlocked\n`),Zt(n));return}if(r.kind===`error`){t.stderr.write(`cc-candybar: spawn-lock unavailable (${r.reason}) — spawning unlocked\n`),Zt(n);return}try{Zt(n)}finally{dn()}}function Zt(e){an()&&$t(e)}function Qt(){try{let e=r.statSync(Ye());return Date.now()-e.mtimeMs}catch{return null}}function $t(e){try{e()||t.stderr.write(`cc-candybar: daemon spawn returned false (unable to resolve script path?)
|
|
5
|
-
`)}catch(e){t.stderr.write(`cc-candybar: daemon spawn failed: ${e.message}\n`)}}function en(e,t){return e===null?{kind:`allow`}:e<-1e4?{kind:`allow-future-garbage`,futureMs:-e}:e<t?{kind:`deny`}:{kind:`allow`}}function tn(e){return Math.min(3e3*2**Math.min(Math.max(e,0),5),6e4)}function nn(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 rn(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 M(){try{r.unlinkSync(Ze())}catch(e){e.code!==`ENOENT`&&t.stderr.write(`cc-candybar: could not reset spawn.backoff: ${e.message}\n`)}}function an(){let e=Xe(),n=Ze(),r=nn(n),i=en(on(e),tn(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`),sn(e),rn(n,Math.min(r+1,5)),!0)}function on(e){try{return Date.now()-r.statSync(e).mtimeMs}catch{return null}}function sn(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 cn=null;function ln(){let e=Ye();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 cn={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(!un(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 un(e){try{let t=r.statSync(e);return Date.now()-t.mtimeMs>1e4}catch{return!0}}function dn(){if(!cn)return;let{fd:e,path:t}=cn;cn=null;try{r.closeSync(e)}catch{}try{r.unlinkSync(t)}catch{}}function fn(){try{return r.mkdirSync(ze(),{recursive:!0}),null}catch(e){return`mkdir ${ze()}: ${e.message}`}}function pn(){let e=t.execPath,n=t.argv[1];return n?Ne({bin:e,args:[`--max-old-space-size=${zt(t.env)}`,n,`daemon`],category:`daemon-spawn`}).ok:!1}const mn=`cc-candybar`,hn=`dispatch`,gn=`set-state`,N=`step-state`,_n=`copy`,vn=`open-vscode`,yn=`toolbar-toggle`,bn=`show-config-error`,xn=`show-config-warning`,Sn=`set-config`,Cn=`step-config`,wn=`save`,P=`save-preset`,Tn=`save-theme-default`,En=`delete-preset`,Dn=`reset-config`,On=`apply-layout-op`,kn=`undo`,An=`redo`,jn=`back`,Mn=`rewind`,Nn=`apply-update`,Pn=`doctor-run`,Fn=`doctor-fix`,In=`doctor-probe`,Ln=`ceiling`,Rn=`slash`;function F(e){return e.map(encodeURIComponent).join(`/`)}function zn(e){return e.length===0?[]:e.split(`/`).map(decodeURIComponent)}function I(e){return`${mn}://${hn}/${e.map(e=>`e=${encodeURIComponent(`${e.verb}/${F(e.args)}`)}`).join(`&`)}`}function Bn(e){return new w(e).getAll(`e`).map(Wn)}const Vn=new Set([gn,Dn]);function Hn(e){return e.reduce((e,t)=>{let n=e.at(-1),r=n&&Un(n,t);return r?[...e.slice(0,-1),r]:[...e,t]},[])}function Un(e,t){if(e.verb!==t.verb||!Vn.has(e.verb))return;let[n,r]=[Wn(e.value),Wn(t.value)];return n.verb===r.verb?{verb:e.verb,value:`${n.verb}/${n.value}/${r.value}`}:void 0}function Wn(e){let t=e.indexOf(`/`);return t===-1?{verb:e,value:``}:{verb:e.slice(0,t),value:e.slice(t+1)}}const L=`closed`,Gn=`🍫`;function Kn(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 qn(e,t,n,r){let i=Kn(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function Jn(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function Yn(e,t,n,r,i){return{kind:`segment`,name:e,opens:{ref:t,body:n,placement:r},...i!==void 0&&{when:i}}}function Xn(e,...t){return`{{ and ${[e,...t].map(Zn).join(` `)} }}`}function Zn(e){return`(eq .${e.variable} "${Jn(e.member)}")`}function Qn(e,t,n){return`{{ ${$n(e,er(t),er(n))} }}`}function $n(e,t,n){return`action "${e}" ${t} ${n}`}function er(e){return`"${Jn(e)}"`}function tr(e,t){return{kind:`state`,key:e,default:t}}function nr(e,t){return{set:e,cycle:[L,t]}}const rr=/^[A-Za-z0-9_./,:@%+-][A-Za-z0-9_./,:@%+=-]*$/;function ir(e){return`'${e.replaceAll(`'`,`'\\''`)}'`}function ar(e){return rr.test(e)?e:ir(e)}var or=ye(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,t.exports.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/})),sr=ye(((e,t)=>{let n=or();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)}}})),cr=ye(((e,t)=>{let n=sr(),r,i,a,o,s,c,l,u,d;t.exports=function(e,t){r=String(e),i=`start`,a=[],o=0,s=1,c=0,l=void 0,u=void 0,d=void 0;do l=v(),ne[i]();while(l.type!==`eof`);return typeof t==`function`?f({"":d},``,t):d};function f(e,t,n){let r=e[t];if(typeof r==`object`&&r)if(Array.isArray(r))for(let e=0;e<r.length;e++){let t=String(e),i=f(r,t,n);i===void 0?delete r[t]:Object.defineProperty(r,t,{value:i,writable:!0,enumerable:!0,configurable:!0})}else for(let e in r){let t=f(r,e,n);t===void 0?delete r[e]:Object.defineProperty(r,e,{value:t,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,t,r)}let p,m,h,g,_;function v(){for(p=`default`,m=``,h=!1,g=1;;){_=y();let e=x[p]();if(e)return e}}function y(){if(r[o])return String.fromCodePoint(r.codePointAt(o))}function b(){let e=y();return e===`
|
|
5
|
+
`)}catch(e){t.stderr.write(`cc-candybar: daemon spawn failed: ${e.message}\n`)}}function en(e,t){return e===null?{kind:`allow`}:e<-1e4?{kind:`allow-future-garbage`,futureMs:-e}:e<t?{kind:`deny`}:{kind:`allow`}}function tn(e){return Math.min(3e3*2**Math.min(Math.max(e,0),5),6e4)}function nn(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 rn(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 M(){try{r.unlinkSync(Ze())}catch(e){e.code!==`ENOENT`&&t.stderr.write(`cc-candybar: could not reset spawn.backoff: ${e.message}\n`)}}function an(){let e=Xe(),n=Ze(),r=nn(n),i=en(on(e),tn(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`),sn(e),rn(n,Math.min(r+1,5)),!0)}function on(e){try{return Date.now()-r.statSync(e).mtimeMs}catch{return null}}function sn(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 cn=null;function ln(){let e=Ye();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 cn={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(!un(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 un(e){try{let t=r.statSync(e);return Date.now()-t.mtimeMs>1e4}catch{return!0}}function dn(){if(!cn)return;let{fd:e,path:t}=cn;cn=null;try{r.closeSync(e)}catch{}try{r.unlinkSync(t)}catch{}}function fn(){try{return r.mkdirSync(ze(),{recursive:!0}),null}catch(e){return`mkdir ${ze()}: ${e.message}`}}function pn(){let e=t.execPath,n=t.argv[1];return n?Ne({bin:e,args:[`--max-old-space-size=${zt(t.env)}`,n,`daemon`],category:`daemon-spawn`}).ok:!1}const mn=`cc-candybar`,hn=`dispatch`,gn=`set-state`,N=`step-state`,_n=`copy`,vn=`open-vscode`,yn=`toolbar-toggle`,bn=`show-config-error`,xn=`show-config-warning`,Sn=`set-config`,Cn=`step-config`,wn=`save`,P=`save-preset`,Tn=`save-theme-default`,En=`delete-preset`,Dn=`reset-config`,On=`apply-layout-op`,kn=`undo`,An=`redo`,jn=`back`,Mn=`rewind`,Nn=`apply-update`,Pn=`doctor-run`,Fn=`doctor-fix`,In=`doctor-probe`,Ln=`ceiling`,Rn=`slash`;function F(e){return e.map(encodeURIComponent).join(`/`)}function zn(e){return e.length===0?[]:e.split(`/`).map(decodeURIComponent)}function I(e){return`${mn}://${hn}/${e.map(e=>`e=${encodeURIComponent(`${e.verb}/${F(e.args)}`)}`).join(`&`)}`}function Bn(e){return new te(e).getAll(`e`).map(Wn)}const Vn=new Set([gn,Dn]);function Hn(e){return e.reduce((e,t)=>{let n=e.at(-1),r=n&&Un(n,t);return r?[...e.slice(0,-1),r]:[...e,t]},[])}function Un(e,t){if(e.verb!==t.verb||!Vn.has(e.verb))return;let[n,r]=[Wn(e.value),Wn(t.value)];return n.verb===r.verb?{verb:e.verb,value:`${n.verb}/${n.value}/${r.value}`}:void 0}function Wn(e){let t=e.indexOf(`/`);return t===-1?{verb:e,value:``}:{verb:e.slice(0,t),value:e.slice(t+1)}}const L=`closed`,Gn=`🍫`;function Kn(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 qn(e,t,n,r){let i=Kn(e,t.length,n);if(i!==void 0)throw Error(i);return t.length===1?t[0]:t[r]}function Jn(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}function Yn(e,t,n,r,i){return{kind:`segment`,name:e,opens:{ref:t,body:n,placement:r},...i!==void 0&&{when:i}}}function Xn(e,...t){return`{{ and ${[e,...t].map(Zn).join(` `)} }}`}function Zn(e){return`(eq .${e.variable} "${Jn(e.member)}")`}function Qn(e,t,n){return`{{ ${$n(e,er(t),er(n))} }}`}function $n(e,t,n){return`action "${e}" ${t} ${n}`}function er(e){return`"${Jn(e)}"`}function tr(e,t){return{kind:`state`,key:e,default:t}}function nr(e,t){return{set:e,cycle:[L,t]}}const rr=/^[A-Za-z0-9_./,:@%+-][A-Za-z0-9_./,:@%+=-]*$/;function ir(e){return`'${e.replaceAll(`'`,`'\\''`)}'`}function ar(e){return rr.test(e)?e:ir(e)}var or=ye(((e,t)=>{t.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,t.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,t.exports.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/})),sr=ye(((e,t)=>{let n=or();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)}}})),cr=ye(((e,t)=>{let n=sr(),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===`
|
|
6
6
|
`?(s++,c=0):e?c+=e.length:c++,e&&(o+=e.length),e}let x={default(){switch(_){case` `:case`\v`:case`\f`:case` `:case`\xA0`:case``:case`
|
|
7
|
-
`:case`\r`:case`\u2028`:case`\u2029`:b();return;case`/`:b(),p=`comment`;return;case void 0:return b(),S(`eof`)}if(n.isSpaceSeparator(_)){b();return}return x[i]()},comment(){switch(_){case`*`:b(),p=`multiLineComment`;return;case`/`:b(),p=`singleLineComment`;return}throw
|
|
8
|
-
`:case`\r`:case`\u2028`:case`\u2029`:b(),p=`default`;return;case void 0:return b(),S(`eof`)}b()},value(){switch(_){case`{`:case`[`:return S(`punctuator`,b());case`n`:return b(),C(`ull`),S(`null`,null);case`t`:return b(),C(`rue`),S(`boolean`,!0);case`f`:return b(),C(`alse`),S(`boolean`,!1);case`-`:case`+`:b()===`-`&&(g=-1),p=`sign`;return;case`.`:m=b(),p=`decimalPointLeading`;return;case`0`:m=b(),p=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:m=b(),p=`decimalInteger`;return;case`I`:return b(),C(`nfinity`),S(`numeric`,1/0);case`N`:return b(),C(`aN`),S(`numeric`,NaN);case`"`:case`'`:h=b()===`"`,m=``,p=`string`;return}throw
|
|
9
|
-
`:case`\r`:throw
|
|
10
|
-
`;case`r`:return b(),`\r`;case`t`:return b(),` `;case`v`:return b(),`\v`;case`0`:if(b(),n.isDigit(y()))throw
|
|
7
|
+
`:case`\r`:case`\u2028`:case`\u2029`:b();return;case`/`:b(),p=`comment`;return;case void 0:return b(),S(`eof`)}if(n.isSpaceSeparator(_)){b();return}return x[i]()},comment(){switch(_){case`*`:b(),p=`multiLineComment`;return;case`/`:b(),p=`singleLineComment`;return}throw w(b())},multiLineComment(){switch(_){case`*`:b(),p=`multiLineCommentAsterisk`;return;case void 0:throw w(b())}b()},multiLineCommentAsterisk(){switch(_){case`*`:b();return;case`/`:b(),p=`default`;return;case void 0:throw w(b())}b(),p=`multiLineComment`},singleLineComment(){switch(_){case`
|
|
8
|
+
`:case`\r`:case`\u2028`:case`\u2029`:b(),p=`default`;return;case void 0:return b(),S(`eof`)}b()},value(){switch(_){case`{`:case`[`:return S(`punctuator`,b());case`n`:return b(),C(`ull`),S(`null`,null);case`t`:return b(),C(`rue`),S(`boolean`,!0);case`f`:return b(),C(`alse`),S(`boolean`,!1);case`-`:case`+`:b()===`-`&&(g=-1),p=`sign`;return;case`.`:m=b(),p=`decimalPointLeading`;return;case`0`:m=b(),p=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:m=b(),p=`decimalInteger`;return;case`I`:return b(),C(`nfinity`),S(`numeric`,1/0);case`N`:return b(),C(`aN`),S(`numeric`,NaN);case`"`:case`'`:h=b()===`"`,m=``,p=`string`;return}throw w(b())},identifierNameStartEscape(){if(_!==`u`)throw w(b());b();let e=ne();switch(e){case`$`:case`_`:break;default:if(!n.isIdStartChar(e))throw oe();break}m+=e,p=`identifierName`},identifierName(){switch(_){case`$`:case`_`:case``:case``:m+=b();return;case`\\`:b(),p=`identifierNameEscape`;return}if(n.isIdContinueChar(_)){m+=b();return}return S(`identifier`,m)},identifierNameEscape(){if(_!==`u`)throw w(b());b();let e=ne();switch(e){case`$`:case`_`:case``:case``:break;default:if(!n.isIdContinueChar(e))throw oe();break}m+=e,p=`identifierName`},sign(){switch(_){case`.`:m=b(),p=`decimalPointLeading`;return;case`0`:m=b(),p=`zero`;return;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:m=b(),p=`decimalInteger`;return;case`I`:return b(),C(`nfinity`),S(`numeric`,g*(1/0));case`N`:return b(),C(`aN`),S(`numeric`,NaN)}throw w(b())},zero(){switch(_){case`.`:m+=b(),p=`decimalPoint`;return;case`e`:case`E`:m+=b(),p=`decimalExponent`;return;case`x`:case`X`:m+=b(),p=`hexadecimal`;return}return S(`numeric`,g*0)},decimalInteger(){switch(_){case`.`:m+=b(),p=`decimalPoint`;return;case`e`:case`E`:m+=b(),p=`decimalExponent`;return}if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},decimalPointLeading(){if(n.isDigit(_)){m+=b(),p=`decimalFraction`;return}throw w(b())},decimalPoint(){switch(_){case`e`:case`E`:m+=b(),p=`decimalExponent`;return}if(n.isDigit(_)){m+=b(),p=`decimalFraction`;return}return S(`numeric`,g*Number(m))},decimalFraction(){switch(_){case`e`:case`E`:m+=b(),p=`decimalExponent`;return}if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},decimalExponent(){switch(_){case`+`:case`-`:m+=b(),p=`decimalExponentSign`;return}if(n.isDigit(_)){m+=b(),p=`decimalExponentInteger`;return}throw w(b())},decimalExponentSign(){if(n.isDigit(_)){m+=b(),p=`decimalExponentInteger`;return}throw w(b())},decimalExponentInteger(){if(n.isDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},hexadecimal(){if(n.isHexDigit(_)){m+=b(),p=`hexadecimalInteger`;return}throw w(b())},hexadecimalInteger(){if(n.isHexDigit(_)){m+=b();return}return S(`numeric`,g*Number(m))},string(){switch(_){case`\\`:b(),m+=ee();return;case`"`:if(h)return b(),S(`string`,m);m+=b();return;case`'`:if(!h)return b(),S(`string`,m);m+=b();return;case`
|
|
9
|
+
`:case`\r`:throw w(b());case`\u2028`:case`\u2029`:se(_);break;case void 0:throw w(b())}m+=b()},start(){switch(_){case`{`:case`[`:return S(`punctuator`,b())}p=`value`},beforePropertyName(){switch(_){case`$`:case`_`:m=b(),p=`identifierName`;return;case`\\`:b(),p=`identifierNameStartEscape`;return;case`}`:return S(`punctuator`,b());case`"`:case`'`:h=b()===`"`,p=`string`;return}if(n.isIdStartChar(_)){m+=b(),p=`identifierName`;return}throw w(b())},afterPropertyName(){if(_===`:`)return S(`punctuator`,b());throw w(b())},beforePropertyValue(){p=`value`},afterPropertyValue(){switch(_){case`,`:case`}`:return S(`punctuator`,b())}throw w(b())},beforeArrayValue(){if(_===`]`)return S(`punctuator`,b());p=`value`},afterArrayValue(){switch(_){case`,`:case`]`:return S(`punctuator`,b())}throw w(b())},end(){throw w(b())}};function S(e,t){return{type:e,value:t,line:s,column:c}}function C(e){for(let t of e){if(y()!==t)throw w(b());b()}}function ee(){switch(y()){case`b`:return b(),`\b`;case`f`:return b(),`\f`;case`n`:return b(),`
|
|
10
|
+
`;case`r`:return b(),`\r`;case`t`:return b(),` `;case`v`:return b(),`\v`;case`0`:if(b(),n.isDigit(y()))throw w(b());return`\0`;case`x`:return b(),te();case`u`:return b(),ne();case`
|
|
11
11
|
`:case`\u2028`:case`\u2029`:return b(),``;case`\r`:return b(),y()===`
|
|
12
|
-
`&&b(),``;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:throw
|
|
12
|
+
`&&b(),``;case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:throw w(b());case void 0:throw w(b())}return b()}function te(){let e=``,t=y();if(!n.isHexDigit(t)||(e+=b(),t=y(),!n.isHexDigit(t)))throw w(b());return e+=b(),String.fromCodePoint(parseInt(e,16))}function ne(){let e=``,t=4;for(;t-- >0;){let t=y();if(!n.isHexDigit(t))throw w(b());e+=b()}return String.fromCodePoint(parseInt(e,16))}let re={start(){if(l.type===`eof`)throw T();ie()},beforePropertyName(){switch(l.type){case`identifier`:case`string`:u=l.value,i=`afterPropertyName`;return;case`punctuator`:ae();return;case`eof`:throw T()}},afterPropertyName(){if(l.type===`eof`)throw T();i=`beforePropertyValue`},beforePropertyValue(){if(l.type===`eof`)throw T();ie()},beforeArrayValue(){if(l.type===`eof`)throw T();if(l.type===`punctuator`&&l.value===`]`){ae();return}ie()},afterPropertyValue(){if(l.type===`eof`)throw T();switch(l.value){case`,`:i=`beforePropertyName`;return;case`}`:ae()}},afterArrayValue(){if(l.type===`eof`)throw T();switch(l.value){case`,`:i=`beforeArrayValue`;return;case`]`:ae()}},end(){}};function ie(){let e;switch(l.type){case`punctuator`:switch(l.value){case`{`:e={};break;case`[`:e=[];break}break;case`null`:case`boolean`:case`numeric`:case`string`:e=l.value;break}if(d===void 0)d=e;else{let t=a[a.length-1];Array.isArray(t)?t.push(e):Object.defineProperty(t,u,{value:e,writable:!0,enumerable:!0,configurable:!0})}if(typeof e==`object`&&e)a.push(e),i=Array.isArray(e)?`beforeArrayValue`:`beforePropertyName`;else{let e=a[a.length-1];i=e==null?`end`:Array.isArray(e)?`afterArrayValue`:`afterPropertyValue`}}function ae(){a.pop();let e=a[a.length-1];i=e==null?`end`:Array.isArray(e)?`afterArrayValue`:`afterPropertyValue`}function w(e){return le(e===void 0?`JSON5: invalid end of input at ${s}:${c}`:`JSON5: invalid character '${ce(e)}' at ${s}:${c}`)}function T(){return le(`JSON5: invalid end of input at ${s}:${c}`)}function oe(){return c-=5,le(`JSON5: invalid identifier character at ${s}:${c}`)}function se(e){console.warn(`JSON5: '${ce(e)}' in strings is not valid ECMAScript; consider escaping`)}function ce(e){let t={"'":`\\'`,'"':`\\"`,"\\":`\\\\`,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`,"\v":`\\v`,"\0":`\\0`,"\u2028":`\\u2028`,"\u2029":`\\u2029`};if(t[e])return t[e];if(e<` `){let t=e.charCodeAt(0).toString(16);return`\\x`+(`00`+t).substring(t.length)}return e}function le(e){let t=SyntaxError(e);return t.lineNumber=s,t.columnNumber=c,t}})),lr=ye(((e,t)=>{let n=sr();t.exports=function(e,t,r){let i=[],a=``,o,s,c=``,l;if(typeof t==`object`&&t&&!Array.isArray(t)&&(r=t.space,l=t.quote,t=t.replacer),typeof t==`function`)s=t;else if(Array.isArray(t)){o=[];for(let e of t){let t;typeof e==`string`?t=e:(typeof e==`number`||e instanceof String||e instanceof Number)&&(t=String(e)),t!==void 0&&o.indexOf(t)<0&&o.push(t)}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r==`number`?r>0&&(r=Math.min(10,Math.floor(r)),c=` `.substr(0,r)):typeof r==`string`&&(c=r.substr(0,10)),u(``,{"":e});function u(e,t){let n=t[e];switch(n!=null&&(typeof n.toJSON5==`function`?n=n.toJSON5(e):typeof n.toJSON==`function`&&(n=n.toJSON(e))),s&&(n=s.call(t,e,n)),n instanceof Number?n=Number(n):n instanceof String?n=String(n):n instanceof Boolean&&(n=n.valueOf()),n){case null:return`null`;case!0:return`true`;case!1:return`false`}if(typeof n==`string`)return d(n,!1);if(typeof n==`number`)return String(n);if(typeof n==`object`)return Array.isArray(n)?m(n):f(n)}function d(e){let t={"'":.1,'"':.2},r={"'":`\\'`,'"':`\\"`,"\\":`\\\\`,"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`,"\v":`\\v`,"\0":`\\0`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},i=``;for(let a=0;a<e.length;a++){let o=e[a];switch(o){case`'`:case`"`:t[o]++,i+=o;continue;case`\0`:if(n.isDigit(e[a+1])){i+=`\\x00`;continue}}if(r[o]){i+=r[o];continue}if(o<` `){let e=o.charCodeAt(0).toString(16);i+=`\\x`+(`00`+e).substring(e.length);continue}i+=o}let a=l||Object.keys(t).reduce((e,n)=>t[e]<t[n]?e:n);return i=i.replace(new RegExp(a,`g`),r[a]),a+i+a}function f(e){if(i.indexOf(e)>=0)throw TypeError(`Converting circular structure to JSON5`);i.push(e);let t=a;a+=c;let n=o||Object.keys(e),r=[];for(let t of n){let n=u(t,e);if(n!==void 0){let e=p(t)+`:`;c!==``&&(e+=` `),e+=n,r.push(e)}}let s;if(r.length===0)s=`{}`;else{let e;if(c===``)e=r.join(`,`),s=`{`+e+`}`;else{let n=`,
|
|
13
13
|
`+a;e=r.join(n),s=`{
|
|
14
14
|
`+a+e+`,
|
|
15
15
|
`+t+`}`}}return i.pop(),a=t,s}function p(e){if(e.length===0)return d(e,!0);let t=String.fromCodePoint(e.codePointAt(0));if(!n.isIdStartChar(t))return d(e,!0);for(let r=t.length;r<e.length;r++)if(!n.isIdContinueChar(String.fromCodePoint(e.codePointAt(r))))return d(e,!0);return e}function m(e){if(i.indexOf(e)>=0)throw TypeError(`Converting circular structure to JSON5`);i.push(e);let t=a;a+=c;let n=[];for(let t=0;t<e.length;t++){let r=u(String(t),e);n.push(r===void 0?`null`:r)}let r;if(n.length===0)r=`[]`;else if(c===``)r=`[`+n.join(`,`)+`]`;else{let e=`,
|
|
@@ -48,24 +48,24 @@ import{createRequire as e}from"node:module";import t from"node:process";import{j
|
|
|
48
48
|
`,n=this._text,r=[],i=0;for(;;){let e=n.indexOf(t,i);if(e===-1){r.push(this.slice(i));break}r.push(this.slice(i,e)),i=e+t.length}return r}divide(e){if(e.length===0)return[this.copy()];let t=[],n=0;for(let r of e)t.push(this.slice(n,r)),n=r;return t.push(this.slice(n)),t}rstrip(){let e=this._text.replace(/\s+$/,``);return e.length<this._text.length&&(this.plain=e),this}pad(e,t){let n=(t??` `).repeat(e);return this._spans=this._spans.map(t=>t.move(e)),this._text=n+this._text+n,this}expandTabs(){let e=Eo(this._text,this._tabSize);return this._spans=this._spans.map(t=>new Gl(e.offsetOf(t.start),e.offsetOf(t.end),t.style)),this._text=e.text,this}padLeft(e,t){let n=t??` `;return this._spans=this._spans.map(t=>t.move(e)),this._text=n.repeat(e)+this._text,this}padRight(e,t){let n=t??` `;return this._text+=n.repeat(e),this}setLength(e){return this._text.length<e?this._text+=` `.repeat(e-this._text.length):this._text.length>e&&(this.plain=this._text.slice(0,e)),this}extendStyle(e){let t=this._text.length;return this._text+=` `.repeat(e),this._spans=this._spans.map(n=>n.end===t?n.extend(e):n),this}truncate(e,t){if(this.cellLength<=e)return this;this.expandTabs();let n=t?.mode??`right`,r=uo(e),i=bo(t?.marker??`…`,r),a=co(r-V(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=co(Math.floor(a/2)),s=co(a-o),c=bo(this._text,o).length,l=this._text.length-xo(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 Gl(e.start,f,e.style)),e.end>p&&h.push(new Gl(p+m,e.end+m,e.style)));return this._text=u+i+d,this._spans=h,this}_cropRightTo(e){this.plain=bo(this._text,e)}_cropLeftTo(e){let t=this._text.length-xo(this._text,e).length,n=-t;this._spans=this._spans.map(e=>{if(!(e.end<=t))return new Gl(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=Eo(this._text,this._tabSize),n=this.resolvedStyle(e),{segments:r,covered:i}=this._buildSegments(t,n,e),a=Kl(r,i);r.push(K.line());let o=K.splitLines(r),s=uo(yl(e,this).maxWidth),c=this._overflow??e.overflow??`fold`,l=this._noWrap||(e.noWrap??!1),u=c===`ignore`?uo(1/0):s,d=l?uo(1/0):u,f=c===`ignore`?void 0:this._justify??e.justify,p=hl(e,`…`,`.`);for(let e=0;e<o.length;e+=1){let t=o[e],r=a[e],i=e<o.length-1,l=El(Ll(t),d,{fold:c===`fold`}),m=K.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 K.line())}this._end&&(yield new K(this._end))}measure(e){let t=Eo(this._text,this._tabSize).text.split(`
|
|
49
49
|
`),n=t.reduce((e,t)=>Math.max(e,V(t)),0),r=t.flatMap(wl),i=r.length>0?r.reduce((e,t)=>Math.max(e,t),0):n,a=uo(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=Ul(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 K(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=K.adjustLineLength(e,K.getLineLength(e)-Rl(e),void 0,!1),o=Math.max(n-K.getLineLength(r),0),s=i===`center`?Math.floor(o/2):o;yield*ql(r,t,s,o-s,a);break}case`left`:yield*ql(e,t,0,Math.max(n-K.getLineLength(e),0),a);break;default:yield*e;break}}_fillLine(e,t,n){let r=Ll(e),i=r.split(` `);r.endsWith(` `)&&i.pop();let a=i.length-1,o=Array(a).fill(1),s=i.reduce((e,t)=>e+V(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+=V(i[e]),c.push(l),l+=1,e<a&&c.push(l);let u=K.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 K(` `.repeat(o[e]),i.isNull?void 0:i))}return f}*_fitLine(e,t,n,r){let i=K.getLineLength(e);if(i-Rl(e)<=t){yield*K.adjustLineLength(e,Math.min(i,t),void 0,!1);return}if(n===`ellipsis`&&t>0){yield*K.adjustLineLength(e,t-1,void 0,!1),yield new K(r);return}yield*K.adjustLineLength(e,t,void 0,!1)}};function Kl(e,t){let n=[[]];return e.forEach((e,r)=>{e.text.split(`
|
|
50
50
|
`).forEach((e,i)=>{i>0&&n.push([]);let a=n.at(-1);a.push({end:(a.at(-1)?.end??0)+V(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*ql(e,t,n,r,i){if(n+r===0)return yield*e;let a=e.filter(e=>e.text!==``),o=e=>` `.repeat(e),s=K.getLineLength(a);if(s===0)return yield new K(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 K(o(n)+a[0].text+o(r),i);return}n>0&&(yield new K(o(n)+(l?a[0].text:``),i)),yield*a.slice(d,f),r>0&&(yield new K((u?a[c].text:``)+o(r),i))}const Jl=Object.freeze({name:`join`});var Yl=class{fg;bg;constructor(e,t){this.fg=e,this.bg=t}};function Xl(e,t){for(let n=e;n;n=n.inner){if(t.has(n.owner))return{fg:!0,bg:!0};if(n.owner instanceof Yl){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 Zl(e,t,n,r){let i=e.join(t,n,r);return{render:e=>K.anchorLines([[...i.render(e)]],Jl)[0]}}function Ql(e){return{render:t=>K.anchorLines([[...e.render(t)]],e)[0]}}var $l=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*Zl(this.joiner,null,t[0],{index:0}).render(n);for(let e=0;e<t.length;e++){let r=t[e];yield*Ql(r).render(n);let i=e+1<t.length?t[e+1]:null;yield*Zl(this.joiner,r,i,{index:e+1}).render(n)}yield K.line()}measure(e){let t=0;for(let n of this.render(e))t+=n.cellLength;return{minimum:t,maximum:t}}};const eu=[`seam`,`divider`,`lead`,`tail`];function*tu(e){yield e,`mix`in e&&(yield*tu(e.mix[0]),yield*tu(e.mix[1]))}const nu=e=>typeof e.glyph==`string`?[e.glyph]:e.glyph.oneOf,ru=(e,t,n,r)=>{let i=nu(e);return i[Math.floor(parseInt(Ol(`${t}:${n}:${r}`),16)/2**32*i.length)]},iu=e=>V(nu(e)[0]??``),au=e=>e.reduce((e,t)=>e+iu(t),0);function ou(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([ou(e,t,n),ou(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:ou(e,t,n),cu={seam:void 0,divider:void 0,lead:`left`,tail:`right`};function lu(e,t){if(!Array.isArray(e))throw Error(`CellJoiner: ${t} is not a list of cells`);return e.map((e,n)=>{if(typeof e!=`object`||!e)throw Error(`CellJoiner: ${t}[${n}] is not a cell`);return e})}function uu(e,t){let n=n=>Object.freeze(lu(e[n],`${t} ${n}`).map((e,r)=>{let i=e=>{throw Error(`CellJoiner: ${t} ${n}[${r}] ${e}`)},a=e.glyph,o=typeof a==`object`&&a?a.oneOf:void 0;typeof a!=`string`&&!(Array.isArray(o)&&o.every(e=>typeof e==`string`))&&i(`has a glyph that is neither a string nor a oneOf of strings: ${JSON.stringify(a)}`),e.fg===`ground`&&e.bg===`ground`&&i(`has ground on both sides`);let s=nu(e);return s.length===0&&i(`has an empty oneOf`),s.some(t=>V(t)!==iu(e))&&i(`has oneOf members of different widths`),t===`ascii`&&!s.every(ml)&&i(`is not ASCII`),Object.freeze({glyph:typeof e.glyph==`string`?e.glyph:Object.freeze({oneOf:Object.freeze([...s])}),fg:su(e.fg,cu[n],i),bg:su(e.bg,cu[n],i)})})),r=n(`seam`),i=e.divider===e.seam?r:n(`divider`);if(au(i)!==au(r))throw Error(`CellJoiner: ${t} divider is not the width of the seam`);return Object.freeze({seam:r,divider:i,lead:n(`lead`),tail:n(`tail`)})}const du=(e,t)=>eu.flatMap(t=>e[t]).some(e=>[e.fg,e.bg].some(e=>e!==`ground`&&[...tu(e)].some(e=>`edge`in e&&e.edge===t&&e.part===`bg`)));function fu(e){return{shape:e,reads:{left:du(e,`left`),right:du(e,`right`)}}}function pu(e){return e!==void 0&&!e.isDefault?e:void 0}function mu(e){return e.flattenAlpha(No)}function hu(e,t){if(e.reverse)return!1;let{color:n,bgcolor:r}=e.drawnColors(t??U.TRUECOLOR);if(n===void 0||r===void 0)return!1;let i=n.fixedValue,a=r.fixedValue;return i!==void 0&&a!==void 0?Vs.fromRgba(i).deltaE(Vs.fromRgba(a))<.04:n.number===void 0?n.name===r.name:n.number===r.number}function gu(e,t,n){if(`edge`in e){let n=t[e.edge];if(e.part===`fg`)return n?.color;let r=pu(n?.bgcolor);return r&&mu(r)}if(`role`in e)return gl(n,e.role).color;let[r,i,a]=e.mix,o=gu(r,t,n),s=gu(i,t,n);return o&&s&&W.blend(o,s,a)}function _u(e,t,n){return e.fg===`ground`?new G({color:e.bg===`ground`?void 0:gu(e.bg,t,n),reverse:!0}):new G({color:gu(e.fg,t,n),bgcolor:e.bg===`ground`?void 0:gu(e.bg,t,n)})}const vu=e=>eu.flatMap(t=>e[t].flatMap(nu)).join(``);var yu=class{shape;ascii;_forms;constructor(e,t){this.shape=uu(e,`glyph`),this.ascii=uu(t,`ascii`),this._forms={glyph:fu(this.shape),ascii:fu(this.ascii)}}join(e,t,{index:n}){let r=this._forms;return{*render(i){let{shape:a,reads:o}=hl(i,r.glyph,r.ascii,e=>vu(e.shape)),s={left:e?.edgeStyle(`right`,i),right:t?.edgeStyle(`left`,i)},c=pu(s.left?.bgcolor),l=pu(s.right?.bgcolor),u=e!==null&&(!o.left||c!==void 0),d=t!==null&&(!o.right||l!==void 0),f={left:e,right:t},p=e=>e!==`ground`&&`edge`in e?f[e.edge]:null,m=e=>a[e].map((t,r)=>{let a=new Yl(p(t.fg),p(t.bg));return new K(ru(t,e,n,r),_u(t,s,i).withAnchor({owner:a,row:0,col:0,inner:void 0}))});if(!u||!d){(u||d)&&(yield*m(d?`lead`:`tail`));return}let h=m(`seam`);yield*a.divider!==a.seam&&h.every(e=>e.style!==void 0&&hu(e.style,i.colorSystem))?m(`divider`):h}}}};const bu={edge:`left`,part:`bg`},xu={edge:`right`,part:`bg`},Su={edge:`left`,part:`fg`},Cu={mix:[bu,xu,1/2]},wu=`ground`;function Tu(e,t){return{seam:[{glyph:e,fg:bu,bg:xu}],divider:[{glyph:t,fg:Su,bg:bu}],lead:[{glyph:e,fg:wu,bg:xu}],tail:[{glyph:e,fg:bu,bg:wu}]}}function Eu(e,t){let n=e=>({mix:[bu,xu,e]}),r={glyph:` `,fg:Su,bg:bu};return{...Tu(e,t),seam:[{glyph:e,fg:bu,bg:n(1/3)},{glyph:e,fg:n(1/3),bg:n(2/3)},{glyph:e,fg:n(2/3),bg:xu}],divider:[r,{glyph:t,fg:Su,bg:bu},r]}}const Du=(e,t,n,r,i)=>new yu(e(t,n),{...e(r,i),lead:[]});function Ou(e,t,n){let r=[{glyph:t,fg:bu,bg:wu},...n,{glyph:e,fg:xu,bg:wu}];return{seam:r,divider:r,lead:[{glyph:e,fg:xu,bg:wu}],tail:[{glyph:t,fg:bu,bg:wu}]}}const ku=(e,t)=>Ou(e,t,[{glyph:` `,fg:Su,bg:wu}]),Au=(e,t,n)=>Ou(e,t,[{glyph:n,fg:{role:`strip.rail`},bg:wu}]);function ju(e,t){let n=[{glyph:e,fg:t,bg:Cu}];return{seam:n,divider:n,lead:[],tail:[]}}function Mu(e){return{...ju({oneOf:e},bu),divider:[{glyph:{oneOf:e},fg:Su,bg:Cu}]}}const Nu=[{glyph:` | `,fg:{role:`strip.separator`},bg:wu}],Pu={seam:Nu,divider:Nu,lead:[],tail:[]},Fu=Object.freeze({powerline:Du(Tu,``,``,`>`,`>`),prism:Du(Eu,``,``,`>`,`>`),slant:Du(Tu,``,``,`/`,`/`),backslant:Du(Tu,``,``,`\\`,`\\`),flame:Du(Tu,``,``,`}`,`}`),pixel:Du(Tu,``,``,`#`,`>`),ice:Du(Tu,``,``,`]`,`>`),bubble:Du(Tu,``,``,`)`,`)`),capsule:new yu(ku(``,``),ku(`(`,`)`)),wrapper:new yu(Ou(``,``,[]),Ou(`<`,`>`,[])),metro:new yu(Au(``,``,`──`),Au(`(`,`)`,`--`)),stitch:new yu(ju(`┊`,Su),ju(`:`,Su)),torn:new yu(Mu([`▚▞`,`▞▚`,`▘▗`,`▝▖`,`▖▝`,`▗▘`]),Mu([`/\\`,`\\/`])),plain:new yu(Pu,Pu)});function Iu(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:`${Ml(o)}${a}]8;;\\`}function Lu(e,t){let n=[];for(let r of e)n.push(Iu(r,t));return n.join(``)}function Ru(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=qo(i===void 0?U.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 Lu(e.render(s),o)}var zu=class{renderable;effect;t;key;theme;constructor(e,t,n){if(this.renderable=e,this.effect=t,!Number.isFinite(n.t))throw RangeError(`Effected needs a finite t, got ${n.t}`);this.t=n.t,this.key=n.key,this.theme=n.theme}*render(e){let t=this.renderable.render(e);if(e.colorSystem===null){yield*t;return}let n=e.colorSystem??U.TRUECOLOR,r=Vu(t,n,this.theme),i=this.effect(this.t,Hu(r,n,this.theme)),a=0,o=0;for(let{segment:e,look:t}of r){if(t===void 0){yield e;continue}let{style:r,wire:s,slots:c,pair:l}=t,{terminal:u}=l,d={fg:l.fg,bg:l.bg},f=[],p=0;for(let t of vo(e.text)){let e=c;if(t===`
|
|
51
|
-
`)a++,o=0;else{let n=r.anchor&&Wc(r.anchor,p);e=Wu(i(d,{row:a,col:o,seed:this.seed(a,o),terminal:u,anchor:n}),l.reverse),o+=V(t)}p+=V(t);let m=f[f.length-1],h=m!==void 0&&Yu(m.colors,e)?m.drawn:this.respec(s,c,e,n);m!==void 0&&Ku(m.drawn,h)?(m.text+=t,m.cells+=V(t),m.colors=e):f.push({text:t,cells:V(t),colors:e,drawn:h})}if(f.every(e=>Ku(e.drawn,s))){yield e;continue}let m=0;for(let e of f){let t=r.shiftedBy(m),n=Ku(e.drawn,s)?t:t.add(G.fromColor(e.drawn.color,e.drawn.bgcolor));yield new K(e.text,n),m+=e.cells}}}measure(e){return xl.get(e,this.renderable)}static shows(e,t,n,r){let i=Wu(e,e.reverse),a=Gu(i,Wu(t,e.reverse),n,r);return Wu({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=Gu(t,n,r,this.theme);return{color:i.fg??e.color,bgcolor:i.bg??e.bgcolor}}seed(e,t){return Number.parseInt(Ol(`${this.key}:${e}:${t}`),16)/4294967296}};const Bu=W.default();function Vu(e,t,n){return[...e].map(e=>{if(e.isControl)return{segment:e,look:void 0};let r=e.style??G.null(),i=r.drawnColors(t),a={fg:(i.color??Bu).getTruecolor(n,!0),bg:(i.bgcolor??Bu).getTruecolor(n,!1)},o=r.reverse===!0,s=Wu({fg:i.color?.isDefault??!0,bg:i.bgcolor?.isDefault??!0},o);return{segment:e,look:{style:r,wire:i,slots:a,pair:{...Wu(a,o),terminal:s,reverse:o}}}})}function Hu(e,t,n){let r=e.flatMap(({segment:e,look:t})=>t!==void 0&&e.text.trim()!==``&&!Gc(t.style.anchor,Jl)?[t.pair]:[]),i=[...new Map(r.map(e=>[`${e.fg.hex}/${e.bg.hex}/${e.terminal.fg}/${e.terminal.bg}/${e.reverse}`,e])).values()],a=e=>i.flatMap(t=>t.terminal[e]?[]:[t[e].hex]);return{pairs:i,colors:new Set([...a(`fg`),...a(`bg`)]),fills:new Set(a(`bg`)),depth:t,theme:n}}function Uu(e,...t){let n=new Set(t);return(t,r)=>{let i=e(t,r);return(e,t)=>{let r=Xl(t.anchor,n);if(!r.fg&&!r.bg)return e;let a=i(e,t);return{fg:r.fg?a.fg:e.fg,bg:r.bg?a.bg:e.bg}}}}function Wu(e,t){return t?{fg:e.bg,bg:e.fg}:e}function Gu(e,t,n,r){let i=t.bg.compositeOver(No),a=t.fg.compositeOver(i);return{fg:W.matchMove(e.fg,a,n,r,!0),bg:W.matchMove(e.bg,i,n,r,!1)}}function Ku(e,t){return qu(e.color,t.color,!0)&&qu(e.bgcolor,t.bgcolor,!1)}function qu(e,t,n){return e===t||Ju(e,n)===Ju(t,n)}function Ju(e,t){return e?.getAnsiCodes(t).join(`;`)??``}function Yu(e,t){return Xu(e.fg,t.fg)&&Xu(e.bg,t.bg)}function Xu(e,t){return e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha}const Zu=(()=>{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]})(),Qu=e=>e*e*e*(e*(e*6-15)+10),$u=(e,t,n)=>e+n*(t-e);function ed(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 td(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=Qu(e),u=Qu(t),d=Qu(n),f=Zu[o]+s,p=Zu[f]+c,m=Zu[f+1]+c,h=Zu[o+1]+s,g=Zu[h]+c,_=Zu[h+1]+c;return $u($u($u(ed(Zu[p],e,t,n),ed(Zu[g],e-1,t,n),l),$u(ed(Zu[m],e,t-1,n),ed(Zu[_],e-1,t-1,n),l),u),$u($u(ed(Zu[p+1],e,t,n-1),ed(Zu[g+1],e-1,t,n-1),l),$u(ed(Zu[m+1],e,t-1,n-1),ed(Zu[_+1],e-1,t-1,n-1),l),u),d)}function nd(e,t,n,r){let i=0,a=1,o=0;for(let s=0;s<r;s++){let r=2**s;i+=a*td(e*r,t*r,n*r),o+=a,a/=2}return i/o}function rd(e,t){let n=Math.sin(e*12.9898+t*78.233)*43758.5453;return n-Math.floor(n)}function id(e,t,n){let r=Math.min(1,Math.max(0,(n-e)/(t-e)));return r*r*(3-2*r)}const ad=Array.from({length:48},(e,t)=>(t+1)/48),od=[`fg`,`bg`];function sd({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=>od.flatMap(t=>{let n=a(e,t);return n===void 0?[]:[[n,e[t]]]}))),s=t===U.TRUECOLOR?.01:0,c=new Map([...r].filter(e=>!o.has(e)).map(e=>[e,1])),l=e=>Vs.fromRgba(o.get(e)).l;for(let u of[...r].filter(e=>o.has(e)).sort((e,t)=>l(t)-l(e))){let r=e.flatMap(e=>{let t=od.find(t=>a(e,t)===u);if(t===void 0)return[];let n=a(e,t===`fg`?`bg`:`fg`);return[[e,t,n===void 0?0:c.get(n)??0]]}),o=e=>r.every(([r,a,o])=>{let c=Math.min(Fo(r.fg,r.bg),4.5)-s,l=(t,n)=>ud(i,r[t],(t===a?e:o)*n);return ad.every(e=>{let i=zu.shows(r,{fg:l(`fg`,e),bg:l(`bg`,e)},t,n);return Fo(i.fg,i.bg)>=c})}),[l,d]=o(1)?[1,1]:[0,1];for(let e=0;e<20&&d-l>.001;e++){let e=(l+d)/2;[l,d]=o(e)?[e,d]:[l,e]}c.set(u,l)}return c}function cd(e,t){let n=new WeakMap;return ld(e,r=>{let i=t??r.colors,a=[r.depth,...r.pairs.map(({fg:e,bg:t,terminal:n,reverse:r})=>`${e.hex}/${t.hex}/${n.fg}/${n.bg}/${r}`),`|`,...i].join(` `),o=n.get(r.theme)??new oo;return n.set(r.theme,o),o.get(a,()=>sd(r,i,e.touch))})}function ld(e,t){return(n,r)=>{let i=t(r),a=e.field(n);return({fg:t,bg:n},r)=>{let o=Math.round(md(a(r))*48)/48,s=(t,n)=>ud(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 ud(e,t,n){return n===0?t:e(t,n)}function dd(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 fd={shimmer:{seconds:109,ease:Bc.linear,swing:.9},pulse:{seconds:43,ease:Bc.linear,swing:.85},sparkle:{seconds:139,ease:Bc.linear,swing:.95},wheel:{seconds:907,ease:Bc.linear,swing:1},fade:{seconds:20,ease:Bc[`ease-in-out`],swing:1},dissolve:{seconds:30,ease:Bc[`ease-in-out`],swing:1}},pd={sun:new H(255,228,176),firefly:new H(222,245,140)},md=e=>Math.min(1,Math.max(0,e));function hd(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 Vs((1-n)*e.l+n*t.l,Math.hypot(i,a),Math.atan2(a,i)/r,e.alpha)}function gd(e){let t=Vs.fromRgba(e);return(e,n)=>{let r=Vs.fromRgba(e);return hd(r,new Vs(Math.max(r.l,t.l),t.c,t.h,t.alpha),n).toRgba()}}const _d=(e,t)=>t*e[e.length-1][0];function vd(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 yd(e,t,n){let r=_d(e,n),i=t=>{let r=0;for(let i=0;i<24;i++)r+=vd(e,(i+.5)/24*t,n);return r*t};return i(Math.min(Math.max(t,0),r))/i(r)}const bd=[[.24,1],[.6,0]];function xd(e,t,n){dd(e);let r=.9+.2*rd(n,3.1),i=t=>.1*td(t/(3*e.seconds),.5,.5+n),a=i(0);return{touch:gd(t),field:t=>{let o=r*t/e.seconds+i(t)-a,s=Math.floor(o),c=.7+.3*id(-.5,.5,td(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 Sd=e=>Math.abs(e)>=1?0:(1-e*e)**3;function Cd(e,t,n,r,i){dd(e);let a=e.seconds,o=t+2*n,s=a/2,c=e=>id(-.4,.4,td(e/7,3.3,5.5+i)),l=.7,u=.51,d=.4,f=l+(u+d)*a*o/80/s,p=(e,t)=>{let r=c(e),f=(rd(e,7.5+i)<.35+.6*r)*(.3+.7*r*(.6+.4*rd(e,8.5+i))),p=a*o/80*(u+d*rd(e,5.5+i)),m=md((t-(e+l*rd(e,6.5+i))*s)/p);return{strength:f,centre:m*o-n+.06*o*Math.sin(Math.PI*m)*td(m,2.7,e+i)}},m=e=>{let t=Math.floor(e/s),n=[];for(let r=Math.max(0,Math.ceil(t-f));r<=t;r++)n.push(p(r,e));return n},h=(e,t,n)=>Math.exp(-((td(e,t,n)/.8)**2));return{touch:gd(r),field:t=>{let r=m(t);return a=>{let o=0;for(let{strength:e,centre:t}of r)o=Math.max(o,e*Sd((a.col-t)/n));let s=a.row+i,c=.8*td(a.col*.05,s*.3+1.3,t*.02),l=(h(a.col*.21+c,s*.9,t*.022)*h(a.col*.33+9.1-c,s*.7,t*.018+4.2))**2;return e.swing*e.ease(o*(.1+.6*l))}}}}function wd(e,t,n,r){dd(e);let i=Math.max(3,Math.round(t/8)),a=e.seconds,o=Array.from({length:i},(e,n)=>({home:(n+.5+.7*td(n*1.7+.2,.3,.5+r))*(t/i),z:n*4.9+.3+r,offset:rd(n,.7+r)*a})),s=e=>o.map(t=>{let n=e+t.offset,r=Math.floor(n/a),i=rd(r,t.z+1)<.15?0:1,o=.5+.5*rd(r,t.z+2),s=rd(r,t.z+3)*(1-_d(bd,o)),c=n/a-r-s;return{x:t.home+5*(2*rd(r,t.z+4)-1)+5*o*(2*rd(r,t.z+5)-1)*yd(bd,c,o)+1.5*td(t.z,.1,e*.035),y:.6*td(t.z,2.2,e*.035),glow:i*vd(bd,c,o)}});return{touch:gd(n),field:t=>{let n=s(t);return t=>{let r=0;for(let e of n)r=Math.max(r,e.glow*Sd(Math.hypot(t.col-e.x,2*(t.row-e.y))/5));return e.swing*e.ease(r)}}}}function Td(e,t){return(n,{theme:r})=>{let i=e(n),a=Vs.fromRgba(r.backgroundColor);return(e,n)=>{let r=t*(1-md(i(n)));if(r===0)return e;let o=hd(Vs.fromRgba(e.bg),a,r);return{fg:hd(Vs.fromRgba(e.fg),o,r).toRgba(),bg:o.toRgba()}}}}function Ed(e){let t=new Map;return n=>{let r=`${n.row}:${n.col}`,i=t.get(r)??md(.5+1.1*nd(n.col*.09+1.4*td(n.col*.035,n.row*.2+2.6,e+.5),n.row*.45,e,3));return t.set(r,i),i}}function Dd(e,t){return{effect:t,done:t=>t>=e.seconds}}function Od(e,t){let n=e.seconds*.45,r=Uc.once(0,n);return i=>a=>r(i-t(a)*(e.seconds-n))}function kd(e,t){dd(e);let n=Od(e,Ed(1.7+t));return Dd(e,Td(t=>{let r=n(t);return t=>e.ease(r(t))},e.swing))}const Ad={depth:.4,from:.5,to:.95,maskFrom:.35,maskTo:.75,late:.6};function jd(e,t){dd(e);let n=Ed(4.2+t),r=Ed(9.3+t),i=Od(e,n),{depth:a,from:o,to:s,maskFrom:c,maskTo:l,late:u}=Ad;return Dd(e,Td(t=>{let d=i(t);return t=>{let i=e.ease(d(t)),f=md((i-o)/(s-o)),p=a*id(c,l,r(t))*(1-u+u*n(t))*Math.sin(Math.PI*f)**2;return 1-i+p}},e.swing))}const Md=[211,337];function Nd(e,t){dd(e);let n=e.seconds,r=e=>rd(Number.parseInt(e.slice(1),16)*1e-4,17.3+t),i=(e,n)=>td(n/Md[0],5.9+97*e,t)+.5*td(n/Md[1],2.3+89*e,t+7.1),a=(t,a)=>{let o=r(t);return 360*a/n+e.swing*180*((i(o,a)-i(o,0))/1.5)};return(e,{colors:t,fills:n})=>(r,i)=>{let o={fg:!i.terminal.fg&&t.has(r.fg.hex),bg:!i.terminal.bg&&t.has(r.bg.hex)},s=(t,r,i,o)=>r?Vs.fromRgba(t).applyKey({...As,hueShift:a(n.has(t.hex)||!o?t.hex:i.hex,e)}).toRgba():t;return{fg:s(r.fg,o.fg,r.bg,o.bg),bg:s(r.bg,o.bg,r.fg,o.fg)}}}const Pd={loops:{shimmer:(e,t=fd.shimmer)=>cd(Cd(t,e.span,24,pd.sun,e.z)),pulse:(e,t=fd.pulse)=>cd(xd(t,pd.sun,e.z)),sparkle:(e,t=fd.sparkle)=>cd(wd(t,e.span,pd.firefly,e.z)),wheel:(e,t=fd.wheel)=>Nd(t,e.z)},transitions:{fade:(e,t=fd.fade)=>kd(t,e.z),dissolve:(e,t=fd.dissolve)=>jd(t,e.z)}};function Fd(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const Id={segments:[],width:0},Ld={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Rd(e,t){return Ld[e](t)}function zd(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 Bd=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=>Fd(Ql(t),e)),o=n=>i?Fd(Zl(i,null,t[n],{index:n}),e):Id,s=n=>i?Fd(Zl(i,t[n],null,{index:n+1}),e):Id,c=(n,r)=>i?Fd(Zl(i,t[n],t[r],{index:r}),e):Id,l=[],u=null,d=r>0?{segments:[new K(` `.repeat(r))],width:r}:Id;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=Rd(p,i),o=zd(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new K(` `.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 K(` `.repeat(e)))}yield*t.blocks[e].segments}yield K.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=Fd(t[i],e).width,o=this.joiner?Fd(Zl(this.joiner,null,t[i],{index:i}),e).width:0,s=this.joiner?Fd(Zl(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+=Fd(Zl(this.joiner,t[i-1],t[i],{index:i}),e).width))}return this.joiner&&(r+=Fd(Zl(this.joiner,null,t[0],{index:0}),e).width,r+=Fd(Zl(this.joiner,t[t.length-1],null,{index:t.length}),e).width),{minimum:n,maximum:r}}};function Vd(e){return e<32||e===127||e>=128&&e<=159}function Hd(e){let t=``;for(let n of e)t+=Vd(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function Ud(e,t){let n=Hd(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const Wd=`\x1B[38;2;255;255;255m`,Gd=`\x1B[48;2;200;40;40m`;function Kd(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 qd={fg:Kd(Wd),bg:Kd(Gd)},Jd={fg:Kd(`\x1B[38;2;0;0;0m`),bg:Kd(`\x1B[48;2;220;160;40m`)};function Yd(){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 Xd=[`primary`,`secondary`,`accent`],Zd=[`darken-3`,`darken-2`,`darken-1`,`base`,`lighten-1`,`lighten-2`,`lighten-3`],Qd={"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`},$d=(e,t)=>`${e}${Qd[t]}`,ef=(e,t,n,r)=>Pf(e,n,r),tf=(e,t,n,r)=>If(e,wf(e,`text-${t}`),n,r),nf=e=>({tones:[Zd[e],Zd[e+2],Zd[e+1]],text:ef}),rf={muted:{tones:[`muted`],text:tf},deepest:nf(0),deeper:nf(1),middle:nf(2),brighter:nf(3),brightest:nf(4)},af=1/0,of={accent:{hues:[`secondary`,`accent`],run:af},duo:{hues:[`primary`,`secondary`],run:af},mono:{hues:[`primary`],run:af},alt:{hues:[`secondary`,`accent`],run:3}},sf=e=>e.variation.hues.flatMap(t=>e.shade.tones.map(e=>({hue:t,shade:e}))),cf=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},lf=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],uf=e=>typeof e==`string`&&lf.includes(e),df={"van-der-corput":cf,"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},ff=e=>df[e??`van-der-corput`];function pf(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 mf=(e,t)=>Math.floor(e*t),hf=(e,t)=>Math.round(e*t)%t;function gf(e){return e===void 0?0:e.distribution(e.index,e.count)}function _f(e,t,n){let r=e[n(gf(t),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function vf(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 yf=(e,t)=>mf(gf(t),e.hues.length);function bf(e,t){let{row:n,cell:r}=vf(t);return xf(e,n,r)}function xf(e,t,n){let{hues:r,run:i}=e.variation,a=n===void 0?0:Math.floor(n.index/i),o=r[(yf(e.variation,t)+a)%r.length];if(o===void 0)throw Error(`decorEntryFor: empty variation`);return{hue:o,shade:_f(e.shade.tones,n,hf)}}function Sf(e,t){let{row:n,cell:r}=vf(t),i=r===void 0?[void 0]:Array.from({length:r.count},(e,t)=>({...r,index:t}));return[...new Map(i.map(t=>xf(e,n,t)).map(e=>[$d(e.hue,e.shade),e])).values()].sort((e,t)=>Xd.indexOf(e.hue)-Xd.indexOf(t.hue)||Cf.indexOf(e.shade)-Cf.indexOf(t.shade))}const Cf=[...Zd,`muted`];function wf(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 Tf=(e,t)=>wf(e,$d(t.hue,t.shade)),Ef=2.2,Df=(e,t)=>t.map(t=>Tf(e,t)),Of=e=>t=>ec(t,e),kf=Of(U.TRUECOLOR);function Af(e,t,n,r){return jf(e,`${t}|${n.map(e=>e.hex).join(`+`)}|${r}`,()=>Mf(e,t,n,r))}const jf=Yd();function Mf(e,t,n,r){let i=n.map(kf),a=wf(e,t),o=new H(0,0,0),s=new H(255,255,255),c=(e,t)=>Vs.fromRgba(a).mixAxes(Vs.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=Of(e),n=i.map(t);return e=>Math.min(1/0,...n.map(n=>Fo(t(e),n)))},p=f(U.TRUECOLOR),m=f(r),h=e=>$s(e,r,(e,t)=>i.every(n=>Fo(e,t(n))>=Ef)),g=e=>p(e)>=2.2&&h(e)!==void 0,_=(e,t)=>{let n=n=>Fo(kf(n),e)-Fo(kf(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 Nf=4.5;function Pf(e,t,n){return Ff(e,`${t.hex}|${n}`,()=>{let r=Zs(t);return If(e,[`background`,`foreground`].map(t=>wf(e,t)).reduce((e,t)=>Fo(r,t)<Fo(r,e)?t:e),t,n)})}const Ff=Yd();function If(e,t,n,r){return Lf(e,`${t.hex}|${n.hex}|${r}`,()=>Qs(t,n,Nf,r))}const Lf=Yd();function Rf(e,t,n){return t.depth===0?Df(e,t.ground):zf(e,t,n)}const zf=(e,t,n)=>t.depth===0?[]:[Xf(e,{...t,depth:t.depth-1},n).plane],Bf=(e,{short:t},n)=>t===null?[]:[`theme "${e.name}": no open-trigger colour stands ${Ef}:1 off every cell beside it — the nearest stands ${t.toFixed(2)}:1 as drawn at depth ${U[n]}; another shade or variation clears it`],Vf=(e,t,n)=>t>=Gf.triggerPlane?[]:[`theme "${e.name}": an open band's plane stands ΔE ${t.toFixed(3)} off the trigger that opened it as drawn at depth ${U[n]}, under the ${Gf.triggerPlane} that tells them apart; another style clears it`],Hf={base:.42,perDepth:.14,cap:.75},Uf={floor:.12,span:.8};function Wf(e,t){return Xd[(Xd.indexOf(e)+t)%Xd.length]}const Gf={triggerPlane:.1,nestedPlane:.035};function Kf(e,t,n){return qf(e,`${Jf(t)}|${n}`,()=>{let r=Af(e,Wf(t.hue,t.depth),Rf(e,t,n),n),{state:i}=r,a=ep(e,t,i,n),o=$s(Xf(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 ${U[n]}`);let s=Of(n);return{state:i,plane:o,shortfalls:n===U.DEFAULT?[]:[...Bf(e,r,n),...Vf(e,Yf(s(i),s(o)),n)]}})}const qf=Yd(),Jf=({hue:e,depth:t,ground:n})=>`${e}|${t}|${n.map(e=>$d(e.hue,e.shade)).join(`+`)}`,Yf=(e,t)=>Vs.fromRgba(e).deltaE(Vs.fromRgba(t));function Xf(e,t,n){return Zf(e,`${Jf(t)}|${n}`,()=>Qf(e,t,n))}const Zf=Yd();function Qf(e,t,n){let{anchor:r}=Af(e,Wf(t.hue,t.depth),Rf(e,t,n),n),i=Math.min(Hf.cap,Hf.base+Hf.perDepth*t.depth),a=(t,n)=>fs(r,wf(e,t),n),o=zf(e,t,n),s=e=>Yf(kf(r),kf(e))>=Gf.triggerPlane&&o.every(t=>Yf(kf(t),kf(e))>=Gf.nestedPlane),c=a(`background`,i);return{state:r,plane:[c,a(`foreground`,i),a(`background`,Hf.cap),a(`foreground`,Hf.cap),...$f.toSorted((e,t)=>Math.abs(e-i)-Math.abs(t-i)).flatMap(e=>[a(`background`,e),a(`foreground`,e)])].find(s)??c}}const $f=Array.from({length:12},(e,t)=>(t+1)/12);function ep(e,t,n,r){let{hue:i,depth:a,ground:o}=t,s=t=>Xf(e,{hue:i,depth:t,ground:o},r).state,c=t=>Xf(e,{hue:i,depth:t,ground:o},r).plane,l=c(a),u=(e,t)=>Yf(kf(l),kf(t))>=e?e:0,d=Af(e,Wf(i,a+1),Rf(e,{hue:i,depth:a+1,ground:o},r),r),f=Fo(kf(l),kf(d.anchor))>=2.2?Ef:0,p=(e,t)=>(n,r)=>Yf(n,r(e))>=t;return[p(n,u(Gf.triggerPlane,s(a))),(e,t)=>Fo(e,t(d.state))>=f,...a>0?[p(Kf(e,{hue:i,depth:a-1,ground:o},r).plane,u(Gf.nestedPlane,c(a-1)))]:[]]}function tp(e,t,n,r){let i=Kf(e,t,r),a=Xf(e,t,r),o=e=>fs(a.plane,a.state,e),s=Uf.floor+Uf.span*pf(n),c=Uf.floor+Uf.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=$s(o(s+(c-s)*e/12),r,l);if(t!==void 0)return t}return o(s)}const np=e=>({kind:`bar`,decor:e,address:[]}),rp=(e,t)=>({...e,address:[...e.address,t]}),ip=e=>({kind:`band`,band:e,address:[]});function ap(e,t,n){switch(t.kind){case`bar`:{let{decor:r,address:i}=t,a=bf(r,i),o=Tf(e,a),s;return{tint:o,text:r.shade.text(e,a.hue,o,n),disclosure:{hue:`accent`,depth:0,get ground(){return s??=Sf(r,i)}}}}case`band`:{let{band:r,address:i}=t,a=tp(e,r,i,n);return{tint:a,text:Pf(e,a,n),disclosure:{...r,depth:r.depth+1}}}}}const op=new Map([[`dark`,`textual-dark`],[`light`,`textual-light`]]);function sp(e){let t=typeof e==`string`?op.get(e):void 0;return t===void 0?``:` — "${e}" was retired; write "${t}", the same palette`}const cp=`textual-dark`;function lp(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function up(){return xc()}function dp(){return[`bar`,...up()]}let fp;function pp(e){return fp??=new Set(dp()),fp.has(e)}function mp(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return lp(e===void 0?null:a(e),t,a(n??r),r,a)}const hp=[`style`,`palette`,`effect`];function gp(e){return e!==void 0&&e.includes(`{{`)}function _p(e,t,n,r,i){let a=gp(n)?{kind:`expression`,source:n}:i(n??r.name);return lp(e===void 0?null:i(e),t,a,r,i)}function vp(e,t){return e.kind===`decided`?e:t(e.source)}const yp=`none`;function bp(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function xp(e,t){return bp(e,t)??bp(`none`,t)??{kind:`decided`,name:`none`,value:As}}function Sp(e,t,n,r){return _p(e,t,n,xp(yp,r),e=>bp(e,r))}const Cp=`none`,wp={style:yp,palette:cp,effect:Cp};function Tp(e,t,n){return`${e} rendered "${wp[t]}": ${n}`}const Ep=Object.freeze([Cp,...Object.keys(Pd.loops)]),Dp=Object.freeze([`bar`,...Ep]);function Op(e){let t=Ep.find(t=>t===e);return t===void 0?null:{kind:`decided`,name:e,value:t}}function kp(e){return Op(e)??{kind:`decided`,name:`none`,value:`none`}}function Ap(e,t,n){return _p(e,t,n,kp(Cp),Op)}const jp=Object.freeze(Object.keys(Fu));function Mp(e){return jp.includes(e)}const Np=[`powerline`,`capsule`,`plain`];function Pp(e){return Np.includes(e)}function Fp(e,t,n){return lp(e,t,n,`powerline`,e=>Mp(e)?e:null)}const Ip=[`unicode`,`ascii`];function Lp(e){return[...e].every(e=>e.codePointAt(0)<=127)}const Rp=`unicode`,zp=[`truecolor`,`256`,`ansi`,`none`];function Bp(e){return Jo(e)??U.DEFAULT}const Vp=Object.keys(of);function Hp(e){return Vp.includes(e)}function Up(e,t,n){return lp(e,t,n,`accent`,e=>Hp(e)?e:null)}const Wp=Object.keys(rf);function Gp(e){return Wp.includes(e)}function Kp(e,t,n){return lp(e,t,n,`middle`,e=>Gp(e)?e:null)}const qp=`true`,Jp=`false`,Yp=[qp,Jp],Xp={min:0,max:16};function Zp(e){return e===`true`?!0:e===`false`?!1:null}function Qp(e,t){let n=Number(e);return Number.isInteger(n)&&String(n)===e&&n>=t.min&&n<=t.max?n:null}function $p(e){return Qp(e,Xp)}function em(e,t,n){return lp(e,t,n,!0,Zp)}function tm(e,t,n){return lp(e,t,n,!0,Zp)}function nm(e,t,n){return lp(e,t,n,!1,Zp)}function rm(e,t,n){return lp(e,t,n,1,$p)}const im=new el({"strip.separator":`default`,"strip.rail":`default`});function am(e){return im.resolve(e)}const om=RegExp(`\\x1b\\[[0-9;]*m|${Nl.source}`,`g`),sm={kind:`still`},cm=Symbol(`bar`);function lm(e){return e.name!==Cp}function um(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 dm=Ac;function fm(e,t){let n=new ps(t,dm.foregroundColor,dm.ansiColors,dm.palette);return(t,r)=>e(t,{...r,theme:n})}function pm(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 mm=4096;var hm=class{inForce=null;placements=new Map;made=new Map;drawn=null;frame={effect:Cp,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:cm,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=Pd.transitions[e]({span:0,z:pm(`${this.key}@${n}`)*mm});return{name:e,since:t,transition:{effect:fm(i.effect,r),done:e=>i.done(e)}}},v=({since:e,transition:n})=>n.done(t-e),y=(e,t,n)=>({drawing:t,passage:f===null?null:n===void 0||n.passage?.name===`dissolve`?_(`fade`,e,t):n.passage!==null&&!v(n.passage)?n.passage:null}),b=(e,t)=>{if(t===void 0||t.drawing.own.length===0)return;if(t.passage?.name===`dissolve`)return v(t.passage)?void 0:t;let r={...t.drawing,own:t.drawing.own.map(n.hold)};return{drawing:r,passage:_(`dissolve`,e,r)}},x=(e,r)=>{if(p.has(e))throw Error(`placement "${e}" was reached twice in one frame`);let i=f?.get(e),{drawing:a,deeper:o}=n.returned(e,r),s=a===null?b(e,i):y(e,a,i);return s===void 0?r:(p.set(e,s),s.passage!==null&&(s.passage.name===`fade`?m:h).push({placement:e,t:t-s.passage.since}),a===null?[...s.drawing.own,...o]:r)},S=(e,n)=>{let r=o.get(e)??a.get(e),i=r?.name===n?r:{name:n,since:t},s=t-i.since;return o.has(e)||(o.set(e,i),l.push({placement:e,effect:n,t:s})),{scope:e,name:n,t:s}},C=(e,t,n)=>{let r=c.get(e)??new Map;c.set(e,r);let i=r.get(t.scope);if(i!==void 0)return i.effect;let a=s.get(e)?.get(t.scope),o=a?.name===t.name&&a.span===n,l=pm(t.scope===cm?e:`${e}@${t.scope}`),u=o?a.effect:Pd.loops[t.name]({span:n,z:l*mm});return g[o?`reused`:`made`]++,r.set(t.scope,{name:t.name,span:n,effect:u}),u},ee=e=>{let t=new Map;for(let{owner:n,placement:r}of e){let e=r.effect===`bar`?i:S(r.id,r.effect),a=t.get(e.scope);a===void 0?t.set(e.scope,{...e,owners:[n]}):a.owners.push(n)}return[...t.values()]},w=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:Uu(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(lm),r=w(t);if(n.length===0&&r.length===0)return sm;let a=`${this.key}#${e}`;return{kind:`moving`,wrap:(e,t)=>new zu(e,um([...n.map(e=>{let n=C(a,e,t);return{t:e.t,effect:e.owners===void 0?n:Uu(n,...e.owners)}}),...r]),{t:i.t,key:a,theme:dm})}},drawn:()=>{this.inForce=r,this.placements=o,this.made=c,this.drawn=d===`off`?null:{source:n.source,placements:p},this.frame=g}}}},gm=class{sessions=new Map;constructor(e=256){this.maxSessions=e}of(e){let t=this.sessions.get(e)??new hm(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 _m(e){return Math.max(0,...e.split(`
|
|
51
|
+
`)a++,o=0;else{let n=r.anchor&&Wc(r.anchor,p);e=Wu(i(d,{row:a,col:o,seed:this.seed(a,o),terminal:u,anchor:n}),l.reverse),o+=V(t)}p+=V(t);let m=f[f.length-1],h=m!==void 0&&Yu(m.colors,e)?m.drawn:this.respec(s,c,e,n);m!==void 0&&Ku(m.drawn,h)?(m.text+=t,m.cells+=V(t),m.colors=e):f.push({text:t,cells:V(t),colors:e,drawn:h})}if(f.every(e=>Ku(e.drawn,s))){yield e;continue}let m=0;for(let e of f){let t=r.shiftedBy(m),n=Ku(e.drawn,s)?t:t.add(G.fromColor(e.drawn.color,e.drawn.bgcolor));yield new K(e.text,n),m+=e.cells}}}measure(e){return xl.get(e,this.renderable)}static shows(e,t,n,r){let i=Wu(e,e.reverse),a=Gu(i,Wu(t,e.reverse),n,r);return Wu({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=Gu(t,n,r,this.theme);return{color:i.fg??e.color,bgcolor:i.bg??e.bgcolor}}seed(e,t){return Number.parseInt(Ol(`${this.key}:${e}:${t}`),16)/4294967296}};const Bu=W.default();function Vu(e,t,n){return[...e].map(e=>{if(e.isControl)return{segment:e,look:void 0};let r=e.style??G.null(),i=r.drawnColors(t),a={fg:(i.color??Bu).getTruecolor(n,!0),bg:(i.bgcolor??Bu).getTruecolor(n,!1)},o=r.reverse===!0,s=Wu({fg:i.color?.isDefault??!0,bg:i.bgcolor?.isDefault??!0},o);return{segment:e,look:{style:r,wire:i,slots:a,pair:{...Wu(a,o),terminal:s,reverse:o}}}})}function Hu(e,t,n){let r=e.flatMap(({segment:e,look:t})=>t!==void 0&&e.text.trim()!==``&&!Gc(t.style.anchor,Jl)?[t.pair]:[]),i=[...new Map(r.map(e=>[`${e.fg.hex}/${e.bg.hex}/${e.terminal.fg}/${e.terminal.bg}/${e.reverse}`,e])).values()],a=e=>i.flatMap(t=>t.terminal[e]?[]:[t[e].hex]);return{pairs:i,colors:new Set([...a(`fg`),...a(`bg`)]),fills:new Set(a(`bg`)),depth:t,theme:n}}function Uu(e,...t){let n=new Set(t);return(t,r)=>{let i=e(t,r);return(e,t)=>{let r=Xl(t.anchor,n);if(!r.fg&&!r.bg)return e;let a=i(e,t);return{fg:r.fg?a.fg:e.fg,bg:r.bg?a.bg:e.bg}}}}function Wu(e,t){return t?{fg:e.bg,bg:e.fg}:e}function Gu(e,t,n,r){let i=t.bg.compositeOver(No),a=t.fg.compositeOver(i);return{fg:W.matchMove(e.fg,a,n,r,!0),bg:W.matchMove(e.bg,i,n,r,!1)}}function Ku(e,t){return qu(e.color,t.color,!0)&&qu(e.bgcolor,t.bgcolor,!1)}function qu(e,t,n){return e===t||Ju(e,n)===Ju(t,n)}function Ju(e,t){return e?.getAnsiCodes(t).join(`;`)??``}function Yu(e,t){return Xu(e.fg,t.fg)&&Xu(e.bg,t.bg)}function Xu(e,t){return e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha}const Zu=(()=>{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]})(),Qu=e=>e*e*e*(e*(e*6-15)+10),$u=(e,t,n)=>e+n*(t-e);function ed(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 td(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=Qu(e),u=Qu(t),d=Qu(n),f=Zu[o]+s,p=Zu[f]+c,m=Zu[f+1]+c,h=Zu[o+1]+s,g=Zu[h]+c,_=Zu[h+1]+c;return $u($u($u(ed(Zu[p],e,t,n),ed(Zu[g],e-1,t,n),l),$u(ed(Zu[m],e,t-1,n),ed(Zu[_],e-1,t-1,n),l),u),$u($u(ed(Zu[p+1],e,t,n-1),ed(Zu[g+1],e-1,t,n-1),l),$u(ed(Zu[m+1],e,t-1,n-1),ed(Zu[_+1],e-1,t-1,n-1),l),u),d)}function nd(e,t,n,r){let i=0,a=1,o=0;for(let s=0;s<r;s++){let r=2**s;i+=a*td(e*r,t*r,n*r),o+=a,a/=2}return i/o}function rd(e,t){let n=Math.sin(e*12.9898+t*78.233)*43758.5453;return n-Math.floor(n)}function id(e,t,n){let r=Math.min(1,Math.max(0,(n-e)/(t-e)));return r*r*(3-2*r)}const ad=Array.from({length:48},(e,t)=>(t+1)/48),od=[`fg`,`bg`];function sd({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=>od.flatMap(t=>{let n=a(e,t);return n===void 0?[]:[[n,e[t]]]}))),s=t===U.TRUECOLOR?.01:0,c=new Map([...r].filter(e=>!o.has(e)).map(e=>[e,1])),l=e=>Vs.fromRgba(o.get(e)).l;for(let u of[...r].filter(e=>o.has(e)).sort((e,t)=>l(t)-l(e))){let r=e.flatMap(e=>{let t=od.find(t=>a(e,t)===u);if(t===void 0)return[];let n=a(e,t===`fg`?`bg`:`fg`);return[[e,t,n===void 0?0:c.get(n)??0]]}),o=e=>r.every(([r,a,o])=>{let c=Math.min(Fo(r.fg,r.bg),4.5)-s,l=(t,n)=>ud(i,r[t],(t===a?e:o)*n);return ad.every(e=>{let i=zu.shows(r,{fg:l(`fg`,e),bg:l(`bg`,e)},t,n);return Fo(i.fg,i.bg)>=c})}),[l,d]=o(1)?[1,1]:[0,1];for(let e=0;e<20&&d-l>.001;e++){let e=(l+d)/2;[l,d]=o(e)?[e,d]:[l,e]}c.set(u,l)}return c}function cd(e,t){let n=new WeakMap;return ld(e,r=>{let i=t??r.colors,a=[r.depth,...r.pairs.map(({fg:e,bg:t,terminal:n,reverse:r})=>`${e.hex}/${t.hex}/${n.fg}/${n.bg}/${r}`),`|`,...i].join(` `),o=n.get(r.theme)??new oo;return n.set(r.theme,o),o.get(a,()=>sd(r,i,e.touch))})}function ld(e,t){return(n,r)=>{let i=t(r),a=e.field(n);return({fg:t,bg:n},r)=>{let o=Math.round(md(a(r))*48)/48,s=(t,n)=>ud(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 ud(e,t,n){return n===0?t:e(t,n)}function dd(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 fd={shimmer:{seconds:109,ease:Bc.linear,swing:.9},pulse:{seconds:43,ease:Bc.linear,swing:.85},sparkle:{seconds:139,ease:Bc.linear,swing:.95},wheel:{seconds:907,ease:Bc.linear,swing:1},fade:{seconds:20,ease:Bc[`ease-in-out`],swing:1},dissolve:{seconds:30,ease:Bc[`ease-in-out`],swing:1}},pd={sun:new H(255,228,176),firefly:new H(222,245,140)},md=e=>Math.min(1,Math.max(0,e));function hd(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 Vs((1-n)*e.l+n*t.l,Math.hypot(i,a),Math.atan2(a,i)/r,e.alpha)}function gd(e){let t=Vs.fromRgba(e);return(e,n)=>{let r=Vs.fromRgba(e);return hd(r,new Vs(Math.max(r.l,t.l),t.c,t.h,t.alpha),n).toRgba()}}const _d=(e,t)=>t*e[e.length-1][0];function vd(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 yd(e,t,n){let r=_d(e,n),i=t=>{let r=0;for(let i=0;i<24;i++)r+=vd(e,(i+.5)/24*t,n);return r*t};return i(Math.min(Math.max(t,0),r))/i(r)}const bd=[[.24,1],[.6,0]];function xd(e,t,n){dd(e);let r=.9+.2*rd(n,3.1),i=t=>.1*td(t/(3*e.seconds),.5,.5+n),a=i(0);return{touch:gd(t),field:t=>{let o=r*t/e.seconds+i(t)-a,s=Math.floor(o),c=.7+.3*id(-.5,.5,td(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 Sd=e=>Math.abs(e)>=1?0:(1-e*e)**3;function Cd(e,t,n,r,i){dd(e);let a=e.seconds,o=t+2*n,s=a/2,c=e=>id(-.4,.4,td(e/7,3.3,5.5+i)),l=.7,u=.51,d=.4,f=l+(u+d)*a*o/80/s,p=(e,t)=>{let r=c(e),f=(rd(e,7.5+i)<.35+.6*r)*(.3+.7*r*(.6+.4*rd(e,8.5+i))),p=a*o/80*(u+d*rd(e,5.5+i)),m=md((t-(e+l*rd(e,6.5+i))*s)/p);return{strength:f,centre:m*o-n+.06*o*Math.sin(Math.PI*m)*td(m,2.7,e+i)}},m=e=>{let t=Math.floor(e/s),n=[];for(let r=Math.max(0,Math.ceil(t-f));r<=t;r++)n.push(p(r,e));return n},h=(e,t,n)=>Math.exp(-((td(e,t,n)/.8)**2));return{touch:gd(r),field:t=>{let r=m(t);return a=>{let o=0;for(let{strength:e,centre:t}of r)o=Math.max(o,e*Sd((a.col-t)/n));let s=a.row+i,c=.8*td(a.col*.05,s*.3+1.3,t*.02),l=(h(a.col*.21+c,s*.9,t*.022)*h(a.col*.33+9.1-c,s*.7,t*.018+4.2))**2;return e.swing*e.ease(o*(.1+.6*l))}}}}function wd(e,t,n,r){dd(e);let i=Math.max(3,Math.round(t/8)),a=e.seconds,o=Array.from({length:i},(e,n)=>({home:(n+.5+.7*td(n*1.7+.2,.3,.5+r))*(t/i),z:n*4.9+.3+r,offset:rd(n,.7+r)*a})),s=e=>o.map(t=>{let n=e+t.offset,r=Math.floor(n/a),i=rd(r,t.z+1)<.15?0:1,o=.5+.5*rd(r,t.z+2),s=rd(r,t.z+3)*(1-_d(bd,o)),c=n/a-r-s;return{x:t.home+5*(2*rd(r,t.z+4)-1)+5*o*(2*rd(r,t.z+5)-1)*yd(bd,c,o)+1.5*td(t.z,.1,e*.035),y:.6*td(t.z,2.2,e*.035),glow:i*vd(bd,c,o)}});return{touch:gd(n),field:t=>{let n=s(t);return t=>{let r=0;for(let e of n)r=Math.max(r,e.glow*Sd(Math.hypot(t.col-e.x,2*(t.row-e.y))/5));return e.swing*e.ease(r)}}}}function Td(e,t){return(n,{theme:r})=>{let i=e(n),a=Vs.fromRgba(r.backgroundColor);return(e,n)=>{let r=t*(1-md(i(n)));if(r===0)return e;let o=hd(Vs.fromRgba(e.bg),a,r);return{fg:hd(Vs.fromRgba(e.fg),o,r).toRgba(),bg:o.toRgba()}}}}function Ed(e){let t=new Map;return n=>{let r=`${n.row}:${n.col}`,i=t.get(r)??md(.5+1.1*nd(n.col*.09+1.4*td(n.col*.035,n.row*.2+2.6,e+.5),n.row*.45,e,3));return t.set(r,i),i}}function Dd(e,t){return{effect:t,done:t=>t>=e.seconds}}function Od(e,t){let n=e.seconds*.45,r=Uc.once(0,n);return i=>a=>r(i-t(a)*(e.seconds-n))}function kd(e,t){dd(e);let n=Od(e,Ed(1.7+t));return Dd(e,Td(t=>{let r=n(t);return t=>e.ease(r(t))},e.swing))}const Ad={depth:.4,from:.5,to:.95,maskFrom:.35,maskTo:.75,late:.6};function jd(e,t){dd(e);let n=Ed(4.2+t),r=Ed(9.3+t),i=Od(e,n),{depth:a,from:o,to:s,maskFrom:c,maskTo:l,late:u}=Ad;return Dd(e,Td(t=>{let d=i(t);return t=>{let i=e.ease(d(t)),f=md((i-o)/(s-o)),p=a*id(c,l,r(t))*(1-u+u*n(t))*Math.sin(Math.PI*f)**2;return 1-i+p}},e.swing))}const Md=[211,337];function Nd(e,t){dd(e);let n=e.seconds,r=e=>rd(Number.parseInt(e.slice(1),16)*1e-4,17.3+t),i=(e,n)=>td(n/Md[0],5.9+97*e,t)+.5*td(n/Md[1],2.3+89*e,t+7.1),a=(t,a)=>{let o=r(t);return 360*a/n+e.swing*180*((i(o,a)-i(o,0))/1.5)};return(e,{colors:t,fills:n})=>(r,i)=>{let o={fg:!i.terminal.fg&&t.has(r.fg.hex),bg:!i.terminal.bg&&t.has(r.bg.hex)},s=(t,r,i,o)=>r?Vs.fromRgba(t).applyKey({...As,hueShift:a(n.has(t.hex)||!o?t.hex:i.hex,e)}).toRgba():t;return{fg:s(r.fg,o.fg,r.bg,o.bg),bg:s(r.bg,o.bg,r.fg,o.fg)}}}const Pd={loops:{shimmer:(e,t=fd.shimmer)=>cd(Cd(t,e.span,24,pd.sun,e.z)),pulse:(e,t=fd.pulse)=>cd(xd(t,pd.sun,e.z)),sparkle:(e,t=fd.sparkle)=>cd(wd(t,e.span,pd.firefly,e.z)),wheel:(e,t=fd.wheel)=>Nd(t,e.z)},transitions:{fade:(e,t=fd.fade)=>kd(t,e.z),dissolve:(e,t=fd.dissolve)=>jd(t,e.z)}};function Fd(e,t){let n=[...e.render(t)],r=0;for(let e of n)r+=e.cellLength;return{segments:n,width:r}}const Id={segments:[],width:0},Ld={left:()=>0,justify:()=>0,center:e=>Math.floor(e/2),right:e=>e};function Rd(e,t){return Ld[e](t)}function zd(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 Bd=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=>Fd(Ql(t),e)),o=n=>i?Fd(Zl(i,null,t[n],{index:n}),e):Id,s=n=>i?Fd(Zl(i,t[n],null,{index:n+1}),e):Id,c=(n,r)=>i?Fd(Zl(i,t[n],t[r],{index:r}),e):Id,l=[],u=null,d=r>0?{segments:[new K(` `.repeat(r))],width:r}:Id;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=Rd(p,i),o=zd(p,r,i,t.itemBlockIndices.length),s=new Map;t.itemBlockIndices.forEach((e,t)=>s.set(e,t)),a>0&&(yield new K(` `.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 K(` `.repeat(e)))}yield*t.blocks[e].segments}yield K.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=Fd(t[i],e).width,o=this.joiner?Fd(Zl(this.joiner,null,t[i],{index:i}),e).width:0,s=this.joiner?Fd(Zl(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+=Fd(Zl(this.joiner,t[i-1],t[i],{index:i}),e).width))}return this.joiner&&(r+=Fd(Zl(this.joiner,null,t[0],{index:0}),e).width,r+=Fd(Zl(this.joiner,t[t.length-1],null,{index:t.length}),e).width),{minimum:n,maximum:r}}};function Vd(e){return e<32||e===127||e>=128&&e<=159}function Hd(e){let t=``;for(let n of e)t+=Vd(n.codePointAt(0)??0)?` `:n;return t.replace(/\s+/g,` `).trim()}function Ud(e,t){let n=Hd(e),r=``,i=0;for(let e of n){if(i===t)return r.replace(/.$/u,`…`);r+=e,i++}return r}const Wd=`\x1B[38;2;255;255;255m`,Gd=`\x1B[48;2;200;40;40m`;function Kd(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 qd={fg:Kd(Wd),bg:Kd(Gd)},Jd={fg:Kd(`\x1B[38;2;0;0;0m`),bg:Kd(`\x1B[48;2;220;160;40m`)};function Yd(){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 Xd=[`primary`,`secondary`,`accent`],Zd=[`darken-3`,`darken-2`,`darken-1`,`base`,`lighten-1`,`lighten-2`,`lighten-3`],Qd={"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`},$d=(e,t)=>`${e}${Qd[t]}`,ef=(e,t,n,r)=>Pf(e,n,r),tf=(e,t,n,r)=>If(e,wf(e,`text-${t}`),n,r),nf=e=>({tones:[Zd[e],Zd[e+2],Zd[e+1]],text:ef}),rf={muted:{tones:[`muted`],text:tf},deepest:nf(0),deeper:nf(1),middle:nf(2),brighter:nf(3),brightest:nf(4)},af=1/0,of={accent:{hues:[`secondary`,`accent`],run:af},duo:{hues:[`primary`,`secondary`],run:af},mono:{hues:[`primary`],run:af},alt:{hues:[`secondary`,`accent`],run:3}},sf=e=>e.variation.hues.flatMap(t=>e.shade.tones.map(e=>({hue:t,shade:e}))),cf=e=>{let t=0,n=.5;for(let r=e;r>0;r>>=1,n/=2)t+=n*(r&1);return t},lf=[`van-der-corput`,`golden-angle`,`ends-interleaved`,`monotonic`,`uniform`],uf=e=>typeof e==`string`&&lf.includes(e),df={"van-der-corput":cf,"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},ff=e=>df[e??`van-der-corput`];function pf(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 mf=(e,t)=>Math.floor(e*t),hf=(e,t)=>Math.round(e*t)%t;function gf(e){return e===void 0?0:e.distribution(e.index,e.count)}function _f(e,t,n){let r=e[n(gf(t),e.length)];if(r===void 0)throw Error(`vocabularySelect: empty vocabulary`);return r}function vf(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 yf=(e,t)=>mf(gf(t),e.hues.length);function bf(e,t){let{row:n,cell:r}=vf(t);return xf(e,n,r)}function xf(e,t,n){let{hues:r,run:i}=e.variation,a=n===void 0?0:Math.floor(n.index/i),o=r[(yf(e.variation,t)+a)%r.length];if(o===void 0)throw Error(`decorEntryFor: empty variation`);return{hue:o,shade:_f(e.shade.tones,n,hf)}}function Sf(e,t){let{row:n,cell:r}=vf(t),i=r===void 0?[void 0]:Array.from({length:r.count},(e,t)=>({...r,index:t}));return[...new Map(i.map(t=>xf(e,n,t)).map(e=>[$d(e.hue,e.shade),e])).values()].sort((e,t)=>Xd.indexOf(e.hue)-Xd.indexOf(t.hue)||Cf.indexOf(e.shade)-Cf.indexOf(t.shade))}const Cf=[...Zd,`muted`];function wf(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 Tf=(e,t)=>wf(e,$d(t.hue,t.shade)),Ef=2.2,Df=(e,t)=>t.map(t=>Tf(e,t)),Of=e=>t=>ec(t,e),kf=Of(U.TRUECOLOR);function Af(e,t,n,r){return jf(e,`${t}|${n.map(e=>e.hex).join(`+`)}|${r}`,()=>Mf(e,t,n,r))}const jf=Yd();function Mf(e,t,n,r){let i=n.map(kf),a=wf(e,t),o=new H(0,0,0),s=new H(255,255,255),c=(e,t)=>Vs.fromRgba(a).mixAxes(Vs.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=Of(e),n=i.map(t);return e=>Math.min(1/0,...n.map(n=>Fo(t(e),n)))},p=f(U.TRUECOLOR),m=f(r),h=e=>$s(e,r,(e,t)=>i.every(n=>Fo(e,t(n))>=Ef)),g=e=>p(e)>=2.2&&h(e)!==void 0,_=(e,t)=>{let n=n=>Fo(kf(n),e)-Fo(kf(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 Nf=4.5;function Pf(e,t,n){return Ff(e,`${t.hex}|${n}`,()=>{let r=Zs(t);return If(e,[`background`,`foreground`].map(t=>wf(e,t)).reduce((e,t)=>Fo(r,t)<Fo(r,e)?t:e),t,n)})}const Ff=Yd();function If(e,t,n,r){return Lf(e,`${t.hex}|${n.hex}|${r}`,()=>Qs(t,n,Nf,r))}const Lf=Yd();function Rf(e,t,n){return t.depth===0?Df(e,t.ground):zf(e,t,n)}const zf=(e,t,n)=>t.depth===0?[]:[Xf(e,{...t,depth:t.depth-1},n).plane],Bf=(e,{short:t},n)=>t===null?[]:[`theme "${e.name}": no open-trigger colour stands ${Ef}:1 off every cell beside it — the nearest stands ${t.toFixed(2)}:1 as drawn at depth ${U[n]}; another shade or variation clears it`],Vf=(e,t,n)=>t>=Gf.triggerPlane?[]:[`theme "${e.name}": an open band's plane stands ΔE ${t.toFixed(3)} off the trigger that opened it as drawn at depth ${U[n]}, under the ${Gf.triggerPlane} that tells them apart; another style clears it`],Hf={base:.42,perDepth:.14,cap:.75},Uf={floor:.12,span:.8};function Wf(e,t){return Xd[(Xd.indexOf(e)+t)%Xd.length]}const Gf={triggerPlane:.1,nestedPlane:.035};function Kf(e,t,n){return qf(e,`${Jf(t)}|${n}`,()=>{let r=Af(e,Wf(t.hue,t.depth),Rf(e,t,n),n),{state:i}=r,a=ep(e,t,i,n),o=$s(Xf(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 ${U[n]}`);let s=Of(n);return{state:i,plane:o,shortfalls:n===U.DEFAULT?[]:[...Bf(e,r,n),...Vf(e,Yf(s(i),s(o)),n)]}})}const qf=Yd(),Jf=({hue:e,depth:t,ground:n})=>`${e}|${t}|${n.map(e=>$d(e.hue,e.shade)).join(`+`)}`,Yf=(e,t)=>Vs.fromRgba(e).deltaE(Vs.fromRgba(t));function Xf(e,t,n){return Zf(e,`${Jf(t)}|${n}`,()=>Qf(e,t,n))}const Zf=Yd();function Qf(e,t,n){let{anchor:r}=Af(e,Wf(t.hue,t.depth),Rf(e,t,n),n),i=Math.min(Hf.cap,Hf.base+Hf.perDepth*t.depth),a=(t,n)=>fs(r,wf(e,t),n),o=zf(e,t,n),s=e=>Yf(kf(r),kf(e))>=Gf.triggerPlane&&o.every(t=>Yf(kf(t),kf(e))>=Gf.nestedPlane),c=a(`background`,i);return{state:r,plane:[c,a(`foreground`,i),a(`background`,Hf.cap),a(`foreground`,Hf.cap),...$f.toSorted((e,t)=>Math.abs(e-i)-Math.abs(t-i)).flatMap(e=>[a(`background`,e),a(`foreground`,e)])].find(s)??c}}const $f=Array.from({length:12},(e,t)=>(t+1)/12);function ep(e,t,n,r){let{hue:i,depth:a,ground:o}=t,s=t=>Xf(e,{hue:i,depth:t,ground:o},r).state,c=t=>Xf(e,{hue:i,depth:t,ground:o},r).plane,l=c(a),u=(e,t)=>Yf(kf(l),kf(t))>=e?e:0,d=Af(e,Wf(i,a+1),Rf(e,{hue:i,depth:a+1,ground:o},r),r),f=Fo(kf(l),kf(d.anchor))>=2.2?Ef:0,p=(e,t)=>(n,r)=>Yf(n,r(e))>=t;return[p(n,u(Gf.triggerPlane,s(a))),(e,t)=>Fo(e,t(d.state))>=f,...a>0?[p(Kf(e,{hue:i,depth:a-1,ground:o},r).plane,u(Gf.nestedPlane,c(a-1)))]:[]]}function tp(e,t,n,r){let i=Kf(e,t,r),a=Xf(e,t,r),o=e=>fs(a.plane,a.state,e),s=Uf.floor+Uf.span*pf(n),c=Uf.floor+Uf.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=$s(o(s+(c-s)*e/12),r,l);if(t!==void 0)return t}return o(s)}const np=e=>({kind:`bar`,decor:e,address:[]}),rp=(e,t)=>({...e,address:[...e.address,t]}),ip=e=>({kind:`band`,band:e,address:[]});function ap(e,t,n){switch(t.kind){case`bar`:{let{decor:r,address:i}=t,a=bf(r,i),o=Tf(e,a),s;return{tint:o,text:r.shade.text(e,a.hue,o,n),disclosure:{hue:`accent`,depth:0,get ground(){return s??=Sf(r,i)}}}}case`band`:{let{band:r,address:i}=t,a=tp(e,r,i,n);return{tint:a,text:Pf(e,a,n),disclosure:{...r,depth:r.depth+1}}}}}const op=new Map([[`dark`,`textual-dark`],[`light`,`textual-light`]]);function sp(e){let t=typeof e==`string`?op.get(e):void 0;return t===void 0?``:` — "${e}" was retired; write "${t}", the same palette`}const cp=`textual-dark`;function lp(e,t,n,r,i){let a=t===null?null:i(t);return e??a??n??r}function up(){return xc()}function dp(){return[`bar`,...up()]}let fp;function pp(e){return fp??=new Set(dp()),fp.has(e)}function mp(e,t,n,r,i){let a=e=>Object.prototype.hasOwnProperty.call(i,e)?e:null;return lp(e===void 0?null:a(e),t,a(n??r),r,a)}const hp=[`style`,`palette`,`effect`];function gp(e){return e!==void 0&&e.includes(`{{`)}function _p(e,t,n,r,i){let a=gp(n)?{kind:`expression`,source:n}:i(n??r.name);return lp(e===void 0?null:i(e),t,a,r,i)}function vp(e,t){return e.kind===`decided`?e:t(e.source)}const yp=`none`;function bp(e,t){let n=t[e];return n===void 0?null:{kind:`decided`,name:e,value:n}}function xp(e,t){return bp(e,t)??bp(`none`,t)??{kind:`decided`,name:`none`,value:As}}function Sp(e,t,n,r){return _p(e,t,n,xp(yp,r),e=>bp(e,r))}const Cp=`none`,wp={style:yp,palette:cp,effect:Cp};function Tp(e,t,n){return`${e} rendered "${wp[t]}": ${n}`}const Ep=Object.freeze([Cp,...Object.keys(Pd.loops)]),Dp=Object.freeze([`bar`,...Ep]);function Op(e){let t=Ep.find(t=>t===e);return t===void 0?null:{kind:`decided`,name:e,value:t}}function kp(e){return Op(e)??{kind:`decided`,name:`none`,value:`none`}}function Ap(e,t,n){return _p(e,t,n,kp(Cp),Op)}const jp=Object.freeze(Object.keys(Fu));function Mp(e){return jp.includes(e)}const Np=[`powerline`,`capsule`,`plain`];function Pp(e){return Np.includes(e)}function Fp(e,t,n){return lp(e,t,n,`powerline`,e=>Mp(e)?e:null)}const Ip=[`unicode`,`ascii`];function Lp(e){return[...e].every(e=>e.codePointAt(0)<=127)}const Rp=`unicode`,zp=[`truecolor`,`256`,`ansi`,`none`];function Bp(e){return Jo(e)??U.DEFAULT}const Vp=Object.keys(of);function Hp(e){return Vp.includes(e)}function Up(e,t,n){return lp(e,t,n,`accent`,e=>Hp(e)?e:null)}const Wp=Object.keys(rf);function Gp(e){return Wp.includes(e)}function Kp(e,t,n){return lp(e,t,n,`middle`,e=>Gp(e)?e:null)}const qp=`true`,Jp=`false`,Yp=[qp,Jp],Xp={min:0,max:16};function Zp(e){return e===`true`?!0:e===`false`?!1:null}function Qp(e,t){let n=Number(e);return Number.isInteger(n)&&String(n)===e&&n>=t.min&&n<=t.max?n:null}function $p(e){return Qp(e,Xp)}function em(e,t,n){return lp(e,t,n,!0,Zp)}function tm(e,t,n){return lp(e,t,n,!0,Zp)}function nm(e,t,n){return lp(e,t,n,!1,Zp)}function rm(e,t,n){return lp(e,t,n,1,$p)}const im=new el({"strip.separator":`default`,"strip.rail":`default`});function am(e){return im.resolve(e)}const om=RegExp(`\\x1b\\[[0-9;]*m|${Nl.source}`,`g`),sm={kind:`still`},cm=Symbol(`bar`);function lm(e){return e.name!==Cp}function um(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 dm=Ac;function fm(e,t){let n=new ps(t,dm.foregroundColor,dm.ansiColors,dm.palette);return(t,r)=>e(t,{...r,theme:n})}function pm(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 mm=4096;var hm=class{inForce=null;placements=new Map;made=new Map;drawn=null;frame={effect:Cp,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:cm,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=Pd.transitions[e]({span:0,z:pm(`${this.key}@${n}`)*mm});return{name:e,since:t,transition:{effect:fm(i.effect,r),done:e=>i.done(e)}}},v=({since:e,transition:n})=>n.done(t-e),y=(e,t,n)=>({drawing:t,passage:f===null?null:n===void 0||n.passage?.name===`dissolve`?_(`fade`,e,t):n.passage!==null&&!v(n.passage)?n.passage:null}),b=(e,t)=>{if(t===void 0||t.drawing.own.length===0)return;if(t.passage?.name===`dissolve`)return v(t.passage)?void 0:t;let r={...t.drawing,own:t.drawing.own.map(n.hold)};return{drawing:r,passage:_(`dissolve`,e,r)}},x=(e,r)=>{if(p.has(e))throw Error(`placement "${e}" was reached twice in one frame`);let i=f?.get(e),{drawing:a,deeper:o}=n.returned(e,r),s=a===null?b(e,i):y(e,a,i);return s===void 0?r:(p.set(e,s),s.passage!==null&&(s.passage.name===`fade`?m:h).push({placement:e,t:t-s.passage.since}),a===null?[...s.drawing.own,...o]:r)},S=(e,n)=>{let r=o.get(e)??a.get(e),i=r?.name===n?r:{name:n,since:t},s=t-i.since;return o.has(e)||(o.set(e,i),l.push({placement:e,effect:n,t:s})),{scope:e,name:n,t:s}},C=(e,t,n)=>{let r=c.get(e)??new Map;c.set(e,r);let i=r.get(t.scope);if(i!==void 0)return i.effect;let a=s.get(e)?.get(t.scope),o=a?.name===t.name&&a.span===n,l=pm(t.scope===cm?e:`${e}@${t.scope}`),u=o?a.effect:Pd.loops[t.name]({span:n,z:l*mm});return g[o?`reused`:`made`]++,r.set(t.scope,{name:t.name,span:n,effect:u}),u},ee=e=>{let t=new Map;for(let{owner:n,placement:r}of e){let e=r.effect===`bar`?i:S(r.id,r.effect),a=t.get(e.scope);a===void 0?t.set(e.scope,{...e,owners:[n]}):a.owners.push(n)}return[...t.values()]},te=e=>{let n=new Map;for(let{owner:t,placement:r}of e){let e=n.get(r.id);e===void 0?n.set(r.id,[t]):e.push(t)}return[...n].flatMap(([e,n])=>{let r=p.get(e)?.passage??null;return r===null?[]:[{t:t-r.since,effect:Uu(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(lm),r=te(t);if(n.length===0&&r.length===0)return sm;let a=`${this.key}#${e}`;return{kind:`moving`,wrap:(e,t)=>new zu(e,um([...n.map(e=>{let n=C(a,e,t);return{t:e.t,effect:e.owners===void 0?n:Uu(n,...e.owners)}}),...r]),{t:i.t,key:a,theme:dm})}},drawn:()=>{this.inForce=r,this.placements=o,this.made=c,this.drawn=d===`off`?null:{source:n.source,placements:p},this.frame=g}}}},gm=class{sessions=new Map;constructor(e=256){this.maxSessions=e}of(e){let t=this.sessions.get(e)??new hm(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 _m(e){return Math.max(0,...e.split(`
|
|
52
52
|
`).map(e=>V(e.replace(om,``))))}function vm(e,t){return Ru(e,{...t,theme:im,onStyleError:e=>{throw e}})}const ym=new Map;function bm(e){let t=ym.get(e);if(t!==void 0)return t;let n=t=>{let n=t.seam.map(t=>({...t,glyph:e}));return{...t,seam:n,divider:n}},{shape:r,ascii:i}=Fu.plain,a=new yu(n(r),Lp(e)?n(i):i);return ym.set(e,a),a}function xm(e,t){return e===`plain`&&t!==void 0?bm(t):Fu[e]}const Sm=e=>({asciiOnly:e===`ascii`}),Cm=new Map;function wm(e){let t=JSON.stringify([e.endcaps,e.charset,e.separator??null]),n=Cm.get(t);if(n!==void 0)return n;let r=xm(e.endcaps,e.separator),i=e=>new q(`x`,{end:``,overflow:`ignore`,style:new G({bgcolor:e})}),a=t=>new q(vm(new $l(t,r),{colorSystem:null,...Sm(e.charset)}).replace(/\n$/,``)).cellLength,o=a([i(`#101010`)]),s={chrome:o-1,seam:a([i(`#101010`),i(`#202020`)])-o-1};return Cm.set(t,s),s}function Tm(e){return wm(e).chrome}function Em(e){return wm(e).seam}function Dm(e,t,n=sm){if(e.length===0)return``;let r=xm(t.endcaps,t.separator),i=t.wrap&&Number.isFinite(t.width),a={colorSystem:t.colorCompatibility,...Sm(t.charset),...i?{width:t.width}:{}},o=i?new Bd([...e],{joiner:r}):new $l([...e],r),s=n.kind===`still`?vm(o,a):vm(n.wrap(o,_m(vm(o,a))),a);if(!s.endsWith(`
|
|
53
53
|
`))throw Error(`renderStripCells: rich-js strip output did not end its last line`);return s.slice(0,-1)}function Om(e){return Math.min(20,e??20)}const km={heading:`ERROR`,glyph:`⚠`,colors:qd},Am={heading:`WARNING`,glyph:`⚠`,colors:Jd},jm={heading:`UPDATE`,glyph:`⬆`,colors:Jd};function Mm(e,t){return{text:Hd(e),link:t}}function Nm(e,t,n){let[r,...i]=[Pm(e,km,bn),t,Pm(n,Am,xn)].flat();return r===void 0?null:{channels:[r,...i]}}function Pm(e,t,n){let r=I([{verb:n,args:[e]}]),[i,...a]=e.split(/\r\n|\r|\n/).map(e=>Mm(e,r)).filter(e=>e.text!==``).map(e=>[e]);return i===void 0?[]:[{severity:t,message:e,lines:[i,...a]}]}function Fm(e){return e.channels.map(e=>`${e.severity.heading}\n${e.message}\n`).join(`
|
|
54
54
|
`)}function Im(e,t,n,r){if(t===null)return e;let i=Lm(r),a=t.channels.flatMap(e=>Rm(e,i)),o=n.failedConfigFile!==null||a.length>r.rowCap,s=a.slice(0,r.rowCap-Number(o)),c=o?[zm(t,n,a.length-s.length,i)]:[],l=[...s,...c].join(`
|
|
55
55
|
`);return e?`${l}\n${e}`:l}function Lm(e){return{endcaps:`plain`,separator:``,width:e.width,wrap:!0,padding:0,charset:`unicode`,colorCompatibility:e.colorCompatibility}}function Rm(e,t){let n=new G({bgcolor:e.severity.colors.bg,color:e.severity.colors.fg}),r=co(Math.max(2,t.width-1)),i=(e,t)=>new q(`${e} `,{style:t,end:``,overflow:`ignore`});return e.lines.flatMap((a,o)=>Dm([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=>mo(e,r)).map(e=>i(e,t))})],t).split(`
|
|
56
|
-
`))}function zm(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new G({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new q(e,{style:t,end:``,overflow:`ignore`}),l=n>0?[c(`${n} more rows · `,s),a.kind===`file`?c(`open full text`,s.withLink(ne(a.path).href)):c(`full text unavailable: ${Hd(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(Hd(o),s.withLink(ne(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=q.fromFragments([...d,...p]).truncate(r.width);return m.overflow=`ignore`,Dm([m],r)}const Bm=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function Vm(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function Hm(e,t){return r.readdirSync(t).filter(Bm).sort().flatMap(n=>{let i=l.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?Hm(e,i):[[l.relative(e,i).split(l.sep).join(`/`),Vm(i,a)]]})}function Um(e){let t=re.createHash(`sha256`);for(let[n,r]of Hm(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const Wm=e=>e.slice(0,7);function Gm(e){return l.dirname(l.dirname(e))}function Km(){return{version:wt,digest:`ccba105ed18455a223d4879a34eaec6a1de28d844c737d153672cf46ec2d0ec6`}}function qm(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 Jm(e,t){try{let n=Gm(te(e)),i=l.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=Um(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:qm(n),digest:o},running:a}}catch(e){return{kind:`unchecked`,reason:e.message}}}var J=class extends Error{constructor(e){super(e),this.name=`BadVerbArgs`}};const Ym=new Map;function Xm(e){let t=Qm(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 Zm(e,t){return e===`bar`?t:Xm(e)}function Qm(e){let t=Ym.get(e);if(t!==void 0)return t;let n=Sc(e);return n===null?null:(Ym.set(e,n),n)}function $m(e,t){return eh(e,`${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,()=>Pc(e,t))}const eh=Yd();function th(e){let t=Qm(e);return t===null?null:{kind:`decided`,name:e,value:t}}function nh(e,t,n){let r=th(e);return r===null?(n(Tp(t,`palette`,`"${e}" names no installed theme${sp(e)}`)),ih()):r}function rh(e,t,n){return _p(e,t,n,ih(),th)}function ih(){return{kind:`decided`,name:cp,value:Xm(cp)}}const ah=[`vertical`,`horizontal`],oh={vertical:`row`,horizontal:`cell`};function sh(e){return e.id??e.name}function ch(e){return[...dh(e)].flatMap(e=>e.kind===`segment`?[sh(e)]:[])}function lh(e,t){if(!t.has(e))return e;let n=2;for(;t.has(`${e}-${n}`);)n++;return`${e}-${n}`}function uh(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*dh(e){yield e;for(let t of hh(e))yield*dh(t)}const fh=(e,t)=>`${e}.children[${t}]`,ph=e=>`${e}.opens.body`;function*mh(e,t){if(yield[e,t],e.kind===`container`)for(let[n,r]of e.children.entries())yield*mh(r,fh(t,n));else e.opens!==void 0&&(yield*mh(e.opens.body,ph(t)))}function hh(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}const gh=[`shade`,`variation`,`style`];function _h(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const vh=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function yh(e){return e.kind===`file`||e.kind===`shell`||e.kind===`template`}const bh=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],xh=`theme`,Sh=`effect`,Ch=[xh,Sh];function wh(e){return{...e.settings,[xh]:{label:xh,domain:`theme`,default:e.palette??`bar`},[Sh]:{label:Sh,domain:Dp,default:`bar`}}}function Th(e){let t=e?.domain;return typeof t==`object`&&`min`in t?t:void 0}function Eh(e,t){return Object.entries(e).flatMap(([n,r])=>{let i=Th(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 Dh(e,t){let{domain:n}=e;return n===`bool`?typeof t==`boolean`:n===`theme`?typeof t==`string`&&pp(t):`min`in n?typeof t==`number`&&Number.isInteger(t)&&t>=n.min&&t<=n.max:typeof t==`string`&&n.includes(t)}function Oh(e){return String(e)}function kh(e,t){let{domain:n}=e;if(typeof n==`object`&&`min`in n)return Qp(t,n)??void 0;let r=n===`bool`?t===`true`?!0:t===`false`?!1:t:t;return Dh(e,r)?r:void 0}function Ah(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:kh(n,o))??i}function jh(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 Mh=[`left`,`center`,`right`],Nh=[`right`,`left`,`middle`],Ph=/^[A-Za-z_][A-Za-z0-9_]*$/;function Fh(e){return`#${e+1}`}const Ih={rows:{}};function Lh(e){return`rows`in e}function Rh(e){return Object.fromEntries(e.map((e,t)=>[Fh(t),e]))}function zh(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:Rh(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:Rh([n])}}function Bh(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function Vh(e){return Lh(e)?Bh(e):e}function*Hh(e,t){if(!Lh(e)){yield*mh(e,t);return}yield[Bh(e),t];for(let[n,r]of Object.entries(e.rows))yield*mh(r,`${t}.rows.${n}`)}function Uh(e,t){return Lh(e)?{...t,...e,rows:{...t.rows,...e.rows}}:zh(e)}function Wh(e){if(!Lh(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}const Gh=`default`,Kh={};function qh(e){return[...new Set([Gh,...Object.keys(e)])]}function Jh(e,t,n){return mp(void 0,e,t,Gh,n)}function Yh(e,t){let n={[Gh]:Kh,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${Gh}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function Xh(e,t){let n=Yh(e.presets,t).root??Ih;return{node:Bh(Uh(n,e.root)),path:Wh(n)?`presets.${t}.root`:`root`}}function Zh(e,t){return{...e.globals,...Yh(e.presets,t).globals}}const Qh=new Map;function $h(e,t,n){Qh.set(e,{permanent:!0,resolve:t,paletteOf:n})}$h(`themes`,()=>up(),e=>Xm(e));const eg=`placementThemes`;$h(eg,dp,(e,t)=>Zm(e,t.palette)),$h(`endcaps`,()=>jp),$h(`variations`,()=>Vp),$h(`shades`,()=>Wp),$h(`charsets`,()=>Ip),$h(`colorCompatibilities`,()=>zp);function tg(e){return new Map([[`styles`,{members:Object.keys(e.styles),paletteOf:(t,n)=>$m(n.basePalette,e.styles[t])}],[`presets`,{members:qh(e.presets)}]])}function ng(e){return[...new Set([...Qh.keys(),...e.keys()])]}function rg(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=Qh.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(ag(e,t))}const ig=new Map([[`looks`,`styles`],[`progressions`,`variations`]]);function ag(e,t){let n=ig.get(e);return`unknown option domain "${e}"${n===void 0?``:` — it was renamed "${n}"; write from: "${n}"`} (have: ${ng(t).join(`, `)})`}const og=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g;function*sg(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 cg=`[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*`,lg=RegExp(`^(?:(\\$)(?:\\.(${cg}))?|\\.(${cg})?)(?=[\\s)]|$)`);function ug(e,t,n){let r=lg.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 dg=/^(\w+)\b\s*([\s\S]*)$/;function*fg(e,t){let n=[t];for(let r of sg(e)){let e=r.replace(/^-(?=\s)/,``).trim(),[,i=``,a=``]=dg.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:ug(r[1],s,t);continue}yield{code:e,dot:o},i===`if`&&n.push(o),i===`with`&&n.push(ug(a,o,t)),(i===`range`||i===`define`||i===`block`)&&n.push(null)}}const pg=/(?<![.$])\btemplate\s+$/;function*mg(e,t,n){let r=0;for(let i of[...e.matchAll(og)]){let a=i.index+i[0].length;pg.test(e.slice(r,i.index))&&(yield{name:i[0].slice(1,-1),at:ug(e.slice(a),t,n)}),r=a}}function*hg(e,t){let n=new Set;function*r(e,i,a,o){for(let{code:s,dot:c}of[...fg(e,i)]){yield{code:s,dot:c,root:i,via:a};for(let e of[...mg(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 gg=RegExp(`(?<![A-Za-z0-9_)$])(\\$?)\\.(${cg})`,`g`);function*_g({code:e,dot:t,root:n}){let r=e.replace(og,``);for(let e of[...r.matchAll(gg)]){let r=e[1]===`$`?n:t;r!==null&&(yield`${r}${e[2]}`)}}function vg(e,t){let n=new Map;for(let r of hg(e,t))for(let e of _g(r))n.has(e)||n.set(e,r.via);return n}const yg=/(?<![.$])\b(action|picker|menu|carousel|swatches|swatch|themePreview)\s+$/,bg={action:1,picker:2,menu:1,carousel:2,swatch:1,swatches:2,themePreview:1};function*xg(e){let t=0,n=0,r=0,i=`action`;for(let a of[...e.matchAll(og)]){let o=e.slice(t,a.index),s=yg.exec(o);if(s!==null)n=bg[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 Sg(e,t){let n=new Map;for(let{code:r,via:i}of hg(e,t))for(let{name:e,site:t}of xg(r)){let r=`${e}\0${i??`\0`}`;n.has(r)||n.set(r,{name:e,site:t,via:i})}return[...n.values()]}function Cg(e,t){return new Set([...wg(e,t)].filter(e=>Object.hasOwn(t,e)))}function wg(e,t){let n=new Set;for(let{code:r,dot:i,root:a}of hg(e,t))for(let{name:e}of mg(r,i,a))n.add(e);return n}function Tg(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 Eg(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),Dg(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 Dg(e){return e.kind===`dropped`||(e.kind===`shell`||e.kind===`file`)&&_h(e.parse)===`json`}function Og(e){let t=l.basename(e),n=l.dirname(e);for(;;){let r=kg(n);if(r!==null)return{dir:r,name:t,leaf:n===l.dirname(e)};t=l.basename(n),n=l.dirname(n)}}function kg(e){try{return r.statSync(e).isDirectory()?r.realpathSync(e):null}catch{return null}}var Ag=ye((e=>{function t(e){var t=[...arguments].slice(1);throw Error(typeof e==`number`?`[MobX] minified error nr: `+e+(t.length?` `+t.map(String).join(`,`):``)+`. Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts`:`[MobX] `+e)}function n(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:rn}function r(){un||t(`Proxy not available`)}function i(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}function a(e){return typeof e==`function`}function o(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function s(e){return typeof e==`object`&&!!e}function c(e){if(!s(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===dn}function l(e){var t=e?.constructor;return!!t&&(t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`)}function u(e,t,n){on(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function d(e,t,n){on(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function f(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return s(e)&&!0===e[n]}}function p(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function m(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function h(e){return e===null?null:typeof e==`object`?``+e:e}function g(e,t){return sn.hasOwnProperty.call(e,t)}function _(e,t){return!!(e&t)}function v(e,t,n){return n?e|=t:e&=~t,e}function y(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n){if(ne())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&re(i,n.prototype),i}function x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,ie(r.key),r)}}function S(e,t,n){return t&&x(e.prototype,t),n&&x(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function C(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if(typeof e==`string`)return y(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
57
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(){return(ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function
|
|
58
|
-
'`+s.i+`' can only be used on properties with a function value.`)}function me(e,t,n,r,i){var a,o,s;i===void 0&&(i=L.safeDescriptors);var c=r.value;return(a=t.u)!=null&&a.bound&&(c=c.bind(e.v??e.h)),{value:Ne(t.u?.name??n.toString(),c,(o=t.u?.autoAction)!=null&&o,(s=t.u)!=null&&s.bound?e.v??e.h:void 0),configurable:!i||e.p,enumerable:!1,writable:!i}}function he(e,t){return{i:e,u:t,o:ge,s:_e,t:ve}}function ge(e,t,n,r){var i;return r===e.h?this.s(e,t,n,!1)===null?0:2:(i=this.u)!=null&&i.bound&&(!g(e.h,t)||!vt(e.h[t]))&&this.s(e,t,n,!1)===null?0:vt(n.value)?1:(on(r,t,ye(e,0,0,n,!1,!1)),2)}function _e(e,t,n,r){var i=ye(e,0,0,n,this.u?.bound);return e.l(t,i,r)}function ve(e,t){var n,r=t.name,i=t.addInitializer;return vt(e)||(e=ar(e)),(n=this.u)!=null&&n.bound&&i((function(){var e=this[r].bind(this);e.isMobXFlow=!0,this[r]=e})),e}function ye(e,t,n,r,i,a){a===void 0&&(a=L.safeDescriptors);var o=r.value;return vt(o)||(o=ar(o)),i&&((o=o.bind(e.v??e.h)).isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function be(e,t){return{i:e,u:t,o:xe,s:D,t:Se}}function xe(e,t,n){return this.s(e,t,n,!1)===null?0:1}function D(e,t,n,r){return e.m(t,ee({},this.u,{get:n.get,set:n.set}),r)}function Se(e,t){var n=this,r=t.name;return(0,t.addInitializer)((function(){var t=Vt(this)[N],i=ee({},n.u,{get:e,context:this});i.name||=`ObservableObject.`+r.toString(),t.j.set(r,new Rn(i))})),function(){return this[N].O(r)}}function Ce(e,t){return{i:e,u:t,o:we,s:Te,t:Ee}}function we(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Te(e,t,n,r){return e.g(t,n.value,this.u?.enhancer??ce,r)}function Ee(e,t){function n(e,t){var n=Vt(e)[N],i=new In(t,r.u?.enhancer??ce,`ObservableObject.`+a.toString(),!1);n.j.set(a,i),o.add(e)}var r=this,i=t.kind,a=t.name,o=new WeakSet;if(i==`accessor`)return{get:function(){return o.has(this)||n(this,e.get.call(this)),this[N].O(a)},set:function(e){return o.has(this)||n(this,e),this[N].S(a,e)},init:function(e){return o.has(this)||n(this,e),e}}}function De(e){return{i:`true`,u:e,o:Oe,s:ke,t:Ae}}function Oe(e,t,n,r){var i,a,o;if(n.get)return jn.o(e,t,n,r);if(n.set){var s=ct(n.set)?n.set:Ne(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!L.safeDescriptors||e.p,set:s})===null?0:2:(on(r,t,{configurable:!0,set:s}),2)}if(r!==e.h&&typeof n.value==`function`)return l(n.value)?((o=this.u)!=null&&o.autoBind?ar.bound:ar).o(e,t,n,r):((a=this.u)!=null&&a.autoBind?$n.bound:$n).o(e,t,n,r);var c=!1===this.u?.deep?On.ref:On;return typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),c.o(e,t,n,r)}function ke(e,t,n,r){var i;return n.get?jn.s(e,t,n,r):n.set?e.l(t,{configurable:!L.safeDescriptors||e.p,set:Ne(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),(!1===this.u?.deep?On.ref:On).s(e,t,n,r))}function Ae(){t(`'`+this.i+`' cannot be used as a decorator`)}function je(e){return e||Sn}function O(e){return!0===e.deep?ce:!1===e.deep?le:(t=e.defaultDecorator)&&(n=(r=t.u)?.enhancer)!=null?n:ce;var t,n,r}function Me(e,t,n){return oe(t)?Cn.t(e,t):o(t)?void ae(e,t,Cn):xt(e)?e:c(e)?On.object(e,t,n):Array.isArray(e)?On.array(e,t):p(e)?On.map(e,t):m(e)?On.set(e,t):typeof e==`object`&&e?e:On.box(e,t)}function Ne(e,t,n,r){function i(){return Pe(0,n,t,r||this,arguments)}return n===void 0&&(n=!1),i.isMobxAction=!0,i.toString=function(){return t.toString()},Pn&&(Fn.value=e,on(i,`name`,Fn)),i}function Pe(e,t,n,r,i){var a=Fe(0,t);try{return n.apply(r,i)}catch(e){throw a._=e,e}finally{Ie(a)}}function Fe(e,t){var n=L.trackingDerivation,r=!t||!n;$e();var i=L.allowStateChanges;r&&(Ge(),i=Re(!0));var a={A:r,k:n,M:i,V:qe(!0),R:!1,N:0,T:Nn++,C:Mn};return Mn=a.T,a}function Ie(e){Mn!==e.T&&t(30),Mn=e.C,e._!==void 0&&(L.suppressReactionErrors=!0),ze(e.M),Je(e.V),et(),e.A&&Ke(e.k),L.suppressReactionErrors=!1}function Le(e,t){var n=Re(e);try{return t()}finally{ze(n)}}function Re(e){var t=L.allowStateChanges;return L.allowStateChanges=e,t}function ze(e){L.allowStateChanges=e}function Be(e){return e instanceof Bn}function Ve(e){switch(e.I){case F.L:return!1;case F.P:case F.K:return!0;case F.B:for(var t=qe(!0),n=Ge(),r=e.D,i=r.length,a=0;a<i;a++){var o=r[a];if(I(o)){if(L.disableErrorBoundaries)o.get();else try{o.get()}catch{return Ke(n),Je(t),!0}if(e.I===F.K)return Ke(n),Je(t),!0}}return Ye(e),Ke(n),Je(t),!1}}function He(e,t,n){var r=qe(!0);Ye(e),e.W=Array(e.q===0?100:e.D.length),e.G=0,e.q=++L.runId;var i,a=L.trackingDerivation;if(L.trackingDerivation=e,L.inBatch++,!0===L.disableErrorBoundaries)i=t.call(n);else try{i=t.call(n)}catch(e){i=new Bn(e)}return L.inBatch--,L.trackingDerivation=a,function(e){for(var t=e.D,n=e.D=e.W,r=F.L,i=0,a=e.G,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.I>r&&(r=s.I)}for(n.length=i,e.W=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&Ze(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Xe(l,e))}r!==F.L&&(e.I=r,e.H())}(e),Je(r),i}function Ue(e){var t=e.D;e.D=[];for(var n=t.length;n--;)Ze(t[n],e);e.I=F.P}function We(e){var t=Ge();try{return e()}finally{Ke(t)}}function Ge(){var e=L.trackingDerivation;return L.trackingDerivation=null,e}function Ke(e){L.trackingDerivation=e}function qe(e){var t=L.allowStateReads;return L.allowStateReads=e,t}function Je(e){L.allowStateReads=e}function Ye(e){if(e.I!==F.L){e.I=F.L;for(var t=e.D,n=t.length;n--;)t[n].U=F.L}}function Xe(e,t){e.F.add(t),e.U>t.I&&(e.U=t.I)}function Ze(e,t){e.F.delete(t),e.F.size===0&&Qe(e)}function Qe(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,L.pendingUnobservations.push(e))}function $e(){L.inBatch++}function et(){if(--L.inBatch==0){rt();for(var e=L.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.F.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof Rn&&n.X())}L.pendingUnobservations=[]}}function tt(e){var t=L.trackingDerivation;return t===null?(e.F.size===0&&L.inBatch>0&&Qe(e),!1):(t.q!==e.$&&(e.$=t.q,t.W[t.G++]=e,!e.isBeingObserved&&L.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function nt(e){e.U!==F.K&&(e.U=F.K,e.F.forEach((function(e){e.I===F.L&&e.H(),e.I=F.K})))}function rt(){L.inBatch>0||L.isRunningReactions||Kn(it)}function it(){L.isRunningReactions=!0;for(var e=L.pendingReactions,t=0;e.length>0;){++t==100&&(console.error(`[mobx] cycle in reaction: `+e[0]),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].J()}L.isRunningReactions=!1}function at(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}}function ot(e){return function(t,n){return a(t)?Ne(t.name||`<unnamed action>`,t,e):a(n)?Ne(t,n,e):oe(n)?(e?Xn:Jn).t(t,n):o(n)?ae(t,n,e?Xn:Jn):o(t)?E(ue(e?`autoAction`:`action`,{name:t,autoAction:e})):void 0}}function st(e){return Pe(0,!1,e,this,void 0)}function ct(e){return a(e)&&!0===e.isMobxAction}function lt(e,t){function n(){e(i)}var r;t===void 0&&(t=ln);var i,a=t?.name??`Autorun`;if(t.scheduler||t.delay){var o=ut(t),s=!1;i=new Gn(a,(function(){s||(s=!0,o((function(){s=!1,i.isDisposed||i.track(n)})))}),t.onError,t.requiresObservable)}else i=new Gn(a,(function(){this.track(n)}),t.onError,t.requiresObservable);return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||i.Y(),i.Z(t?.signal)}function ut(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:er}function dt(e,t,n){return pt(`onBO`,e,t,n)}function ft(e,t,n){return pt(`onBUO`,e,t,n)}function pt(e,t,n,r){var i=typeof r==`function`?Yt(t,n):Yt(t),o=a(r)?r:n,s=e+`L`;return i[s]?i[s].add(o):i[s]=new Set([o]),function(){var e=i[s];e&&(e.delete(o),e.size===0&&delete i[s])}}function mt(e,t,n,r){var i=hn(t);return Qt((function(){var t=Vt(e,r)[N];mn(i).forEach((function(e){t.s(e,i[e],!n||!(e in n)||n[e])}))})),e}function ht(e){var t,n={name:e.tt};return e.D&&e.D.length>0&&(n.dependencies=(t=e.D,Array.from(new Set(t))).map(ht)),n}function gt(e){var t={name:e.tt};return function(e){return e.F&&e.F.size>0}(e)&&(t.observers=Array.from(function(e){return e.F}(e)).map(gt)),t}function _t(e){a(e.cancel)&&e.cancel()}function vt(e){return!0===e?.isMobXFlow}function yt(e,t){return t===void 0?I(e):!1===Ut(e)||!e[N].j.has(t)?!1:I(Yt(e,t))}function bt(e,t){return!!e&&(t===void 0?Ut(e)||!!e[N]||vn(e)||qn(e)||I(e):!!Ut(e)&&e[N].j.has(t))}function xt(e){return bt(e)}function St(e){return Ut(e)?e[N].nt():vr(e)||xr(e)?Array.from(e.keys()):Rt(e)?e.map((function(e,t){return t})):void t(5)}function Ct(e,n){return Ut(e)?e[N].it(n):vr(e)||xr(e)?e.has(n):Rt(e)?n>=0&&n<e.length:void t(10)}function wt(e){if(Ut(e))return e[N].rt();t(38)}function Tt(e,t,n){return e.set(t,n),n}function Et(e,t){t===void 0&&(t=void 0),$e();try{return e.apply(t)}finally{et()}}function Dt(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout((function(){if(!o[N].isDisposed){if(o(),!n.onError)throw i;n.onError(i)}}),n.timeout)}n.name=`When`;var a=Ne(`When-effect`,t),o=lt((function(t){Le(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())}),n);return o}function Ot(e,t){var n,r,i;if(t!=null&&(n=t.signal)!=null&&n.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var a=new Promise((function(n,a){var o,s=Dt(e,n,ee({},t,{onError:a}));r=function(){s(),a(Error(`WHEN_CANCELLED`))},i=function(){s(),a(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,i)})).finally((function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,i)}));return a.cancel=r,a}function kt(e){return e[N]}function At(e){return e.et!==void 0&&e.et.length>0}function jt(e,t){var n=e.et||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Mt(e,n){var r=Ge();try{for(var i=[].concat(e.et||[]),a=0,o=i.length;a<o&&((n=i[a](n))&&!n.type&&t(14),n);a++);return n}finally{Ke(r)}}function Nt(e){return e.ut!==void 0&&e.ut.length>0}function k(e,t){var n=e.ut||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Pt(e,t){var n=Ge(),r=e.ut;if(r){for(var i=0,a=(r=r.slice()).length;i<a;i++)r[i](t);Ke(n)}}function Ft(e,t,n,i){return n===void 0&&(n=`ObservableArray`),i===void 0&&(i=!1),r(),Qt((function(){var r=new ur(n,t,i,!1);d(r.j,N,r);var a=new Proxy(r.j,lr);return r.v=a,e&&e.length&&r.ot(0,0,e),a}))}function A(e,t){typeof Array.prototype[e]==`function`&&(dr[e]=t(e))}function It(e){return function(){var t=this[N];t.st.reportObserved();var n=t.ft(t.j);return n[e].apply(n,arguments)}}function j(e){return function(t,n){var r=this,i=this[N];return i.st.reportObserved(),i.ft(i.j)[e]((function(e,i){return t.call(n,e,i,r)}))}}function Lt(e){return function(){var t=this,n=this[N];n.st.reportObserved();var r=n.ft(n.j),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}function Rt(e){return s(e)&&mr(e[N])}function zt(e){return e[Symbol.toStringTag]=`MapIterator`,tn(e)}function Bt(e){return e[Symbol.toStringTag]=`SetIterator`,tn(e)}function Vt(e,t){if(g(e,N))return e;var n=t?.name??`ObservableObject`;return u(e,N,new Cr(e,new Map,String(n),function(e){return e?e.defaultDecorator??De(e):void 0}(t))),e}function Ht(e){return Sr[e]||(Sr[e]={get:function(){return this[N].O(e)},set:function(t){return this[N].S(e,t)}})}function Ut(e){return!!s(e)&&wr(e[N])}function Wt(e,t,n){var r;(r=e.h[gn])==null||delete r[n]}function Gt(e){return{enumerable:!1,configurable:!0,get:function(){return this[N].ct(e)},set:function(t){this[N].ht(e,t)}}}function Kt(e){on(kr.prototype,``+e,Gt(e))}function qt(e){if(e>Dr){for(var t=Dr;t<e+100;t++)Kt(t);Dr=e}}function Jt(e,t,n){return new kr(e,t,n)}function Yt(e,n){if(typeof e==`object`&&e){if(Rt(e))return n!==void 0&&t(23),e[N].st;if(xr(e))return e.st;if(vr(e)){if(n===void 0)return e.lt;var r=e.vt.get(n)||e.dt.get(n);return r||t(25,n,Zt(e)),r}if(Ut(e)){if(!n)return t(26);var i=e[N].j.get(n);return i||t(27,n,Zt(e)),i}if(vn(e)||I(e)||qn(e))return e}else if(a(e)&&qn(e[N]))return e[N];t(28)}function Xt(e,n){return e||t(29),n===void 0?vn(e)||I(e)||qn(e)||vr(e)||xr(e)?e:e[N]?e[N]:void t(24,e):Xt(Yt(e,n))}function Zt(e,t){var n;if(t!==void 0)n=Yt(e,t);else{if(ct(e))return e.name;n=Ut(e)||vr(e)||xr(e)?Xt(e):Yt(e)}return n.tt}function Qt(e){var t=Ge(),n=Re(!0);$e();try{return e()}finally{et(),ze(n),Ke(t)}}function $t(e,t,n){return n===void 0&&(n=-1),function e(t,n,r,i,o){if(t===n)return t!==0||1/t==1/n;if(t==null||n==null)return!1;if(t!=t)return n!=n;var s=typeof t;if(s!==`function`&&s!==`object`&&typeof n!=`object`)return!1;var c=Ar.call(t);if(c!==Ar.call(n))return!1;switch(c){case`[object RegExp]`:case`[object String]`:return``+t==``+n;case`[object Number]`:return+t==+t?+t==0?1/t==1/n:+t==+n:+n!=+n;case`[object Date]`:case`[object Boolean]`:return+t==+n;case`[object Symbol]`:return typeof Symbol<`u`&&Symbol.valueOf.call(t)===Symbol.valueOf.call(n);case`[object Map]`:case`[object Set]`:r>=0&&r++}t=en(t),n=en(n);var l=c===`[object Array]`;if(!l){if(typeof t!=`object`||typeof n!=`object`)return!1;var u=t.constructor,d=n.constructor;if(u!==d&&!(a(u)&&u instanceof u&&a(d)&&d instanceof d)&&`constructor`in t&&`constructor`in n)return!1}if(r===0)return!1;r<0&&(r=-1),o||=[];for(var f=(i||=[]).length;f--;)if(i[f]===t)return o[f]===n;if(i.push(t),o.push(n),l){if((f=t.length)!==n.length)return!1;for(;f--;)if(!e(t[f],n[f],r-1,i,o))return!1}else{var p=Object.keys(t),m=p.length;if(Object.keys(n).length!==m)return!1;for(var h=0;h<m;h++){var _=p[h];if(!g(n,_)||!e(t[_],n[_],r-1,i,o))return!1}}return i.pop(),o.pop(),!0}(e,t,n)}function en(e){return Rt(e)?e.slice():p(e)||vr(e)||m(e)||xr(e)?Array.from(e.entries()):e}function tn(e){return e[Symbol.iterator]=nn,Object.assign(Object.create(jr),e)}function nn(){return this}Object.defineProperty(e,`__esModule`,{value:!0});var rn={},M=Object.assign,an=Object.getOwnPropertyDescriptor,on=Object.defineProperty,sn=Object.prototype,cn=[];Object.freeze(cn);var ln={};Object.freeze(ln);var un=typeof Proxy<`u`,dn=Object.toString(),fn=function(){},pn=Object.getOwnPropertySymbols!==void 0,mn=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:pn?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,hn=Object.getOwnPropertyDescriptors||function(e){var t={};return mn(e).forEach((function(n){t[n]=an(e,n)})),t},gn=Symbol(`mobx-stored-annotations`),N=Symbol(`mobx administration`),_n=function(){function e(e){e===void 0&&(e=`Atom`),this.tt=void 0,this.bt=0,this.F=new Set,this.$=0,this.U=F.P,this.onBOL=void 0,this.onBUOL=void 0,this.tt=e}var t=e.prototype;return t.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},t.reportObserved=function(){return tt(this)},t.reportChanged=function(){$e(),nt(this),et()},t.toString=function(){return this.tt},S(e,[{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();_n.pt=1,_n.yt=2,_n.wt=4;var vn=f(`Atom`,_n),yn={identity:function(e,t){return e===t},structural:function(e,t){return $t(e,t)},default:function(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!=e&&t!=t},shallow:function(e,t){return $t(e,t,1)}},bn=E({i:`override`,o:function(){return 0},s:function(){t(`'`+this.i+`' can only be used with 'makeObservable'`)},t:function(){console.warn(`'`+this.i+`' cannot be used with decorators - this is a no-op`)}}),xn=De(),Sn={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(Sn);var Cn=Ce(`observable`),wn=Ce(`observable.ref`,{enhancer:le}),P=Ce(`observable.shallow`,{enhancer:function(e,t,n){return e==null||Ut(e)||Rt(e)||vr(e)||xr(e)?e:Array.isArray(e)?On.array(e,{name:n,deep:!1}):c(e)?On.object(e,void 0,{name:n,deep:!1}):p(e)?On.map(e,{name:n,deep:!1}):m(e)?On.set(e,{name:n,deep:!1}):void 0}}),Tn=Ce(`observable.struct`,{enhancer:function(e,t){return $t(e,t)?t:e}}),En=E(Cn);M(Me,En);var Dn,On=M(Me,{box:function(e,t){var n=je(t);return new In(e,O(n),n.name,!0,n.equals)},array:function(e,t){var n=je(t);return(!1===L.useProxies||!1===n.proxy?Jt:Ft)(e,O(n),n.name)},map:function(e,t){var n=je(t);return new _r(e,O(n),n.name)},set:function(e,t){var n=je(t);return new br(e,O(n),n.name)},object:function(e,t,n){return Qt((function(){return mt(!1===L.useProxies||!1===n?.proxy?Vt({},n):function(e,t){var n;return r(),(n=(e=Vt(e,t))[N]).v??(n.v=new Proxy(e,or))}({},n),e,t)}))},ref:E(wn),shallow:E(P),deep:En,struct:E(Tn)}),kn=be(`computed`),An=be(`computed.struct`,{equals:yn.structural}),jn=function(e,t){if(oe(t))return kn.t(e,t);if(o(t))return ae(e,t,kn);if(c(e))return E(be(`computed`,e));var n=c(t)?t:{};return n.get=e,n.name||=e.name||``,new Rn(n)};Object.assign(jn,kn),jn.struct=E(An);var Mn=0,Nn=1,Pn=(Dn=an((function(){}),`name`)?.configurable)!=null&&Dn,Fn={value:`action`,configurable:!0,writable:!1,enumerable:!1},In=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue`),a===void 0&&(a=yn.default),(o=e.call(this,r)||this).enhancer=void 0,o.tt=void 0,o.equals=void 0,o.jt=!1,o.et=void 0,o.ut=void 0,o.Ot=void 0,o.dehancer=void 0,o.enhancer=n,o.tt=r,o.equals=a,o.Ot=n(t,void 0,r),o}te(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){(e=this.xt(e))!==L.UNCHANGED&&this.gt(e)},n.xt=function(e){if(At(this)){var t=Mt(this,{object:this,type:cr,newValue:e});if(!t)return L.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.Ot,this.tt),this.equals(this.Ot,e)?L.UNCHANGED:e},n.gt=function(e){var t=this.Ot;this.Ot=e,this.reportChanged(),Nt(this)&&Pt(this,{type:cr,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.Ot)},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.tt,object:this,type:cr,newValue:this.Ot,oldValue:void 0}),k(this,e)},n.raw=function(){return this.Ot},n.toJSON=function(){return this.get()},n.toString=function(){return this.tt+`[`+this.Ot+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(_n),Ln=f(`ObservableValue`,In),Rn=function(){function e(e){this.I=F.P,this.D=[],this.W=null,this.F=new Set,this.q=0,this.$=0,this.U=F.L,this.G=0,this.Ot=new Bn(null),this.tt=void 0,this.At=void 0,this.bt=0,this.derivation=void 0,this.kt=void 0,this.Mt=zn.NONE,this.Et=void 0,this.Vt=void 0,this.Rt=void 0,this.Nt=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||t(31),this.derivation=e.get,this.tt=e.name||`ComputedValue`,e.set&&(this.kt=Ne(`ComputedValue-setter`,e.set)),this.Vt=e.equals||(e.compareStructural||e.struct?yn.structural:yn.default),this.Et=e.context,this.Rt=e.requiresReaction,this.Nt=!!e.keepAlive}var n=e.prototype;return n.H=function(){(function(e){e.U===F.L&&(e.U=F.B,e.F.forEach((function(e){e.I===F.L&&(e.I=F.B,e.H())})))})(this)},n.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},n.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},n.get=function(){if(this.isComputing&&t(32,this.tt,this.derivation),L.inBatch!==0||this.F.size!==0||this.Nt){if(tt(this),Ve(this)){var e=L.trackingContext;this.Nt&&!e&&(L.trackingContext=this),this.trackAndCompute()&&function(e){e.U!==F.K&&(e.U=F.K,e.F.forEach((function(t){t.I===F.B?t.I=F.K:t.I===F.L&&(e.U=F.L)})))}(this),L.trackingContext=e}}else Ve(this)&&(this.Tt(),$e(),this.Ot=this.Ct(!1),et());var n=this.Ot;if(Be(n))throw n.cause;return n},n.set=function(e){if(this.kt){this.isRunningSetter&&t(33,this.tt),this.isRunningSetter=!0;try{this.kt.call(this.Et,e)}finally{this.isRunningSetter=!1}}else t(34,this.tt)},n.trackAndCompute=function(){var e=this.Ot,t=this.I===F.P,n=this.Ct(!0),r=t||Be(e)||Be(n)||!this.Vt(e,n);return r&&(this.Ot=n),r},n.Ct=function(e){this.isComputing=!0;var t,n=Re(!1);if(e)t=He(this,this.derivation,this.Et);else if(!0===L.disableErrorBoundaries)t=this.derivation.call(this.Et);else try{t=this.derivation.call(this.Et)}catch(e){t=new Bn(e)}return ze(n),this.isComputing=!1,t},n.X=function(){this.Nt||(Ue(this),this.Ot=void 0)},n._t=function(e,t){var n=this,r=!0,i=void 0;return lt((function(){var a=n.get();if(!r||t){var o=Ge();e({observableKind:`computed`,debugObjectName:n.tt,type:cr,object:n,newValue:a,oldValue:i}),Ke(o)}r=!1,i=a}))},n.Tt=function(){},n.toString=function(){return this.tt+`[`+this.derivation.toString()+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},S(e,[{key:`isComputing`,get:function(){return _(this.bt,e.It)},set:function(t){this.bt=v(this.bt,e.It,t)}},{key:`isRunningSetter`,get:function(){return _(this.bt,e.Lt)},set:function(t){this.bt=v(this.bt,e.Lt,t)}},{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();Rn.It=1,Rn.Lt=2,Rn.pt=4,Rn.yt=8,Rn.wt=16;var F,zn,I=f(`ComputedValue`,Rn);(function(e){e[e.P=-1]=`NOT_TRACKING_`,e[e.L=0]=`UP_TO_DATE_`,e[e.B=1]=`POSSIBLY_STALE_`,e[e.K=2]=`STALE_`})(F||={}),function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`}(zn||={});var Bn=function(e){this.cause=void 0,this.cause=e},Vn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],Hn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},Un=!0,Wn=!1,L=function(){var e=n();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Un=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new Hn().version&&(Un=!1),Un?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Hn):(setTimeout((function(){Wn||t(35)}),1),new Hn)}(),Gn=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction`),this.tt=void 0,this.Pt=void 0,this.Kt=void 0,this.Bt=void 0,this.D=[],this.W=[],this.I=F.P,this.q=0,this.G=0,this.bt=0,this.Mt=zn.NONE,this.tt=e,this.Pt=t,this.Kt=n,this.Bt=r}var t=e.prototype;return t.H=function(){this.Y()},t.Y=function(){this.isScheduled||(this.isScheduled=!0,L.pendingReactions.push(this),rt())},t.J=function(){if(!this.isDisposed){$e(),this.isScheduled=!1;var e=L.trackingContext;if(L.trackingContext=this,Ve(this)){this.isTrackPending=!0;try{this.Pt()}catch(e){this.Dt(e)}}L.trackingContext=e,et()}},t.track=function(e){if(!this.isDisposed){$e(),this.isRunning=!0;var t=L.trackingContext;L.trackingContext=this;var n=He(this,e,void 0);L.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Ue(this),Be(n)&&this.Dt(n.cause),et()}},t.Dt=function(e){var t=this;if(this.Kt)this.Kt(e,this);else{if(L.disableErrorBoundaries)throw e;L.suppressReactionErrors||console.error(`[mobx] uncaught error in '`+this+`'`,e),L.globalReactionErrorHandlers.forEach((function(n){return n(e,t)}))}},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||($e(),Ue(this),et()))},t.Z=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[N]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.tt+`]`},t.trace=function(){},S(e,[{key:`isDisposed`,get:function(){return _(this.bt,e.Wt)},set:function(t){this.bt=v(this.bt,e.Wt,t)}},{key:`isScheduled`,get:function(){return _(this.bt,e.qt)},set:function(t){this.bt=v(this.bt,e.qt,t)}},{key:`isTrackPending`,get:function(){return _(this.bt,e.Gt)},set:function(t){this.bt=v(this.bt,e.Gt,t)}},{key:`isRunning`,get:function(){return _(this.bt,e.Ht)},set:function(t){this.bt=v(this.bt,e.Ht,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();Gn.Wt=1,Gn.qt=2,Gn.Gt=4,Gn.Ht=8,Gn.wt=16;var Kn=function(e){return e()},qn=f(`Reaction`,Gn),Jn=ue(`action`),Yn=ue(`action.bound`,{bound:!0}),Xn=ue(`autoAction`,{autoAction:!0}),Zn=ue(`autoAction.bound`,{autoAction:!0,bound:!0}),Qn=ot(!1);Object.assign(Qn,Jn);var $n=ot(!0);Object.assign($n,Xn),Qn.bound=E(Yn),$n.bound=E(Zn);var er=function(e){return e()},tr=0,nr=function(e){function t(){var n;return n=e.call(this,`FLOW_CANCELLED`)||this,Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}return te(t,e),t.prototype.toString=function(){return`Error: `+this.message},t}(T(Error)),rr=he(`flow`),ir=he(`flow.bound`,{bound:!0}),ar=Object.assign((function(e,t){if(oe(t))return rr.t(e,t);if(o(t))return ae(e,t,rr);var n=e,r=n.name||`<unnamed flow>`,i=function(){var e,t=this,i=arguments,o=++tr,s=Qn(r+` - runid: `+o+` - init`,n).apply(t,i),c=void 0,l=new Promise((function(t,n){function i(e){var t;c=void 0;try{t=Qn(r+` - runid: `+o+` - yield `+ d++,s.next).call(s,e)}catch(e){return n(e)}u(t)}function l(e){var t;c=void 0;try{t=Qn(r+` - runid: `+o+` - yield `+ d++,s.throw).call(s,e)}catch(e){return n(e)}u(t)}function u(e){if(!a(e?.then))return e.done?t(e.value):(c=Promise.resolve(e.value)).then(i,l);e.then(u,n)}var d=0;e=n,i(void 0)}));return l.cancel=Qn(r+` - runid: `+o+` - cancel`,(function(){try{c&&_t(c);var t=s.return(void 0),n=Promise.resolve(t.value);n.then(fn,fn),_t(n),e(new nr)}catch(t){e(t)}})),l};return i.isMobXFlow=!0,i}),rr);ar.bound=E(ir);var or={has:function(e,t){return kt(e).it(t)},get:function(e,t){return kt(e).ct(t)},set:function(e,t,n){var r;return!!o(t)&&((r=kt(e).ht(t,n,!0))==null||r)},deleteProperty:function(e,t){var n;return!!o(t)&&((n=kt(e).Ut(t,!0))==null||n)},defineProperty:function(e,t,n){var r;return(r=kt(e).l(t,n))==null||r},ownKeys:function(e){return kt(e).rt()},preventExtensions:function(){t(13)}},sr=Symbol(`mobx-keys`),cr=`update`,lr={get:function(e,t){var n=e[N];return t===N?n:t===`length`?n.Ft():typeof t!=`string`||isNaN(t)?g(dr,t)?dr[t]:e[t]:n.ct(parseInt(t))},set:function(e,t,n){var r=e[N];return t===`length`&&r.Xt(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.ht(parseInt(t),n),!0},preventExtensions:function(){t(15)}},ur=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray`),this.zt=void 0,this.$t=void 0,this.st=void 0,this.j=[],this.et=void 0,this.ut=void 0,this.Jt=void 0,this.dehancer=void 0,this.v=void 0,this.Yt=0,this.zt=n,this.$t=r,this.st=new _n(e),this.Jt=function(e,n){return t(e,n,`ObservableArray[..]`)}}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.ft=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:0,added:this.j.slice(),addedCount:this.j.length,removed:[],removedCount:0}),k(this,e)},n.Ft=function(){return this.st.reportObserved(),this.j.length},n.Xt=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&t(`Out of range: `+e);var n=this.j.length;if(e!==n)if(e>n){for(var r=Array(e-n),i=0;i<e-n;i++)r[i]=void 0;this.ot(n,0,r)}else this.ot(e,n-e)},n.Zt=function(e,n){e!==this.Yt&&t(16),this.Yt+=n,this.$t&&n>0&&qt(e+n+1)},n.ot=function(e,t,n){var r=this,i=this.j.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=cn),At(this)){var a=Mt(this,{object:this.v,type:`splice`,index:e,removedCount:t,added:n});if(!a)return cn;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map((function(e){return r.Jt(e,void 0)})),this.$t){var o=n.length-t;this.Zt(i,o)}var s=this.tn(e,t,n);return t===0&&n.length===0||this.nn(e,n,s),this.ft(s)},n.tn=function(e,t,n){var r;if(n.length<1e4)return(r=this.j).splice.apply(r,[e,t].concat(n));var i=this.j.slice(e,e+t),a=this.j.slice(e+t);this.j.length+=n.length-t;for(var o=0;o<n.length;o++)this.j[e+o]=n[o];for(var s=0;s<a.length;s++)this.j[e+n.length+s]=a[s];return i},n.in=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,type:cr,debugObjectName:this.st.tt,index:e,newValue:t,oldValue:n}:null;this.st.reportChanged(),i&&Pt(this,a)},n.nn=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.st.reportChanged(),i&&Pt(this,a)},n.ct=function(e){if(!(this.$t&&e>=this.j.length))return this.st.reportObserved(),this.Qt(this.j[e]);console.warn(`[mobx] Out of bounds read: `+e)},n.ht=function(e,n){var r=this.j;if(this.$t&&e>r.length&&t(17,e,r.length),e<r.length){var i=r[e];if(At(this)){var a=Mt(this,{type:cr,object:this.v,index:e,newValue:n});if(!a)return;n=a.newValue}(n=this.Jt(n,i))!==i&&(r[e]=n,this.in(e,n,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=n,this.ot(r.length,0,o)}},e}(),dr={clear:function(){return this.splice(0)},replace:function(e){var t=this[N];return t.ot(0,t.j.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[N];switch(arguments.length){case 0:return[];case 1:return r.ot(e);case 2:return r.ot(e,t)}return r.ot(e,t,n)},spliceWithArray:function(e,t,n){return this[N].ot(e,t,n)},push:function(){for(var e=this[N],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(e.j.length,0,n),e.j.length},pop:function(){return this.splice(Math.max(this[N].j.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){for(var e=this[N],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(0,0,n),e.j.length},reverse:function(){return L.trackingDerivation&&t(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){L.trackingDerivation&&t(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[N],n=t.ft(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};A(`at`,It),A(`concat`,It),A(`flat`,It),A(`includes`,It),A(`indexOf`,It),A(`join`,It),A(`lastIndexOf`,It),A(`slice`,It),A(`toString`,It),A(`toLocaleString`,It),A(`toSorted`,It),A(`toSpliced`,It),A(`with`,It),A(`every`,j),A(`filter`,j),A(`find`,j),A(`findIndex`,j),A(`findLast`,j),A(`findLastIndex`,j),A(`flatMap`,j),A(`forEach`,j),A(`map`,j),A(`some`,j),A(`toReversed`,j),A(`reduce`,Lt),A(`reduceRight`,Lt);var fr,pr,mr=f(`ObservableArrayAdministration`,ur),hr={},gr=`add`,_r=function(){function e(e,n,r){var i=this;n===void 0&&(n=ce),r===void 0&&(r=`ObservableMap`),this.Jt=void 0,this.tt=void 0,this[N]=hr,this.vt=void 0,this.dt=void 0,this.lt=void 0,this.et=void 0,this.ut=void 0,this.dehancer=void 0,this.Jt=n,this.tt=r,a(Map)||t(18),Qt((function(){i.lt=se(`ObservableMap.keys()`),i.vt=new Map,i.dt=new Map,e&&i.merge(e)}))}var n=e.prototype;return n.it=function(e){return this.vt.has(e)},n.has=function(e){var t=this;if(!L.trackingDerivation)return this.it(e);var n=this.dt.get(e);if(!n){var r=n=new In(this.it(e),le,`ObservableMap.key?`,!1);this.dt.set(e,r),ft(r,(function(){return t.dt.delete(e)}))}return n.get()},n.set=function(e,t){var n=this.it(e);if(At(this)){var r=Mt(this,{type:n?cr:gr,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.rn(e,t):this.en(e,t),this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,name:e}))return!1;if(this.it(e)){var n=Nt(this),r=n?{observableKind:`map`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:this.vt.get(e).Ot,name:e}:null;return Et((function(){var n;t.lt.reportChanged(),(n=t.dt.get(e))==null||n.gt(!1),t.vt.get(e).gt(void 0),t.vt.delete(e)})),n&&Pt(this,r),!0}return!1},n.rn=function(e,t){var n=this.vt.get(e);if((t=n.xt(t))!==L.UNCHANGED){var r=Nt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:cr,object:this,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),r&&Pt(this,i)}},n.en=function(e,t){var n=this;Et((function(){var r,i=new In(t,n.Jt,`ObservableMap.key`,!1);n.vt.set(e,i),t=i.Ot,(r=n.dt.get(e))==null||r.gt(!0),n.lt.reportChanged()}));var r=Nt(this);r&&Pt(this,r?{observableKind:`map`,debugObjectName:this.tt,type:gr,object:this,name:e,newValue:t}:null)},n.get=function(e){return this.has(e)?this.Qt(this.vt.get(e).get()):this.Qt(void 0)},n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.keys=function(){return this.lt.reportObserved(),this.vt.keys()},n.values=function(){var e=this,t=this.keys();return zt({next:function(){var n=t.next(),r=n.done;return{done:r,value:r?void 0:e.get(n.value)}}})},n.entries=function(){var e=this,t=this.keys();return zt({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},n[Symbol.iterator]=function(){return this.entries()},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i[1],i[0],this)}},n.merge=function(e){var n=this;return vr(e)&&(e=new Map(e)),Et((function(){var r,i;c(e)?function(e){var t=Object.keys(e);if(!pn)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter((function(t){return sn.propertyIsEnumerable.call(e,t)}))):t}(e).forEach((function(t){return n.set(t,e[t])})):Array.isArray(e)?e.forEach((function(e){return n.set(e[0],e[1])})):p(e)?(r=Object.getPrototypeOf(e),i=Object.getPrototypeOf(r),Object.getPrototypeOf(i)!==null&&t(19,e),e.forEach((function(e,t){return n.set(t,e)}))):e!=null&&t(20,e)})),this},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.keys());!(t=n()).done;)e.delete(t.value)}))}))},n.replace=function(e){var n=this;return Et((function(){for(var r,i=function(e){if(p(e)||vr(e))return e;if(Array.isArray(e))return new Map(e);if(c(e)){var n=new Map;for(var r in e)n.set(r,e[r]);return n}return t(21,e)}(e),a=new Map,o=!1,s=C(n.vt.keys());!(r=s()).done;){var l=r.value;if(!i.has(l))if(n.delete(l))o=!0;else{var u=n.vt.get(l);a.set(l,u)}}for(var d,f=C(i.entries());!(d=f()).done;){var m=d.value,h=m[0],g=m[1],_=n.vt.has(h);if(n.set(h,g),n.vt.has(h)){var v=n.vt.get(h);a.set(h,v),_||(o=!0)}}if(!o)if(n.vt.size!==a.size)n.lt.reportChanged();else for(var y=n.vt.keys(),b=a.keys(),x=y.next(),S=b.next();!x.done;){if(x.value!==S.value){n.lt.reportChanged();break}x=y.next(),S=b.next()}n.vt=a})),this},n.toString=function(){return`[object ObservableMap]`},n.toJSON=function(){return Array.from(this)},n._t=function(e){return k(this,e)},n.St=function(e){return jt(this,e)},S(e,[{key:`size`,get:function(){return this.lt.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),vr=f(`ObservableMap`,_r),yr={},br=function(){function e(e,n,r){var i=this;n===void 0&&(n=ce),r===void 0&&(r=`ObservableSet`),this.tt=void 0,this[N]=yr,this.vt=new Set,this.st=void 0,this.ut=void 0,this.et=void 0,this.dehancer=void 0,this.Jt=void 0,this.tt=r,a(Set)||t(22),this.Jt=function(e,t){return n(e,t,r)},Qt((function(){i.st=se(i.tt),e&&i.replace(e)}))}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.vt.values());!(t=n()).done;)e.delete(t.value)}))}))},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i,i,this)}},n.add=function(e){var t=this;if(At(this)){var n=Mt(this,{type:gr,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){Et((function(){t.vt.add(t.Jt(e,void 0)),t.st.reportChanged()}));var r=Nt(this);r&&Pt(this,r?{observableKind:`set`,debugObjectName:this.tt,type:gr,object:this,newValue:e}:null)}return this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Nt(this),r=n?{observableKind:`set`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:e}:null;return Et((function(){t.st.reportChanged(),t.vt.delete(e)})),n&&Pt(this,r),!0}return!1},n.has=function(e){return this.st.reportObserved(),this.vt.has(this.Qt(e))},n.entries=function(){var e=this.values();return Bt({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},n.keys=function(){return this.values()},n.values=function(){this.st.reportObserved();var e=this,t=this.vt.values();return Bt({next:function(){var n=t.next(),r=n.done;return r?{value:void 0,done:r}:{value:e.Qt(n.value),done:r}}})},n.intersection=function(e){return m(e)&&!xr(e)?e.intersection(this):new Set(this).intersection(e)},n.union=function(e){return m(e)&&!xr(e)?e.union(this):new Set(this).union(e)},n.difference=function(e){return new Set(this).difference(e)},n.symmetricDifference=function(e){return m(e)&&!xr(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},n.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},n.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},n.isDisjointFrom=function(e){return m(e)&&!xr(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},n.replace=function(e){var n=this;return xr(e)&&(e=new Set(e)),Et((function(){Array.isArray(e)||m(e)?(n.clear(),e.forEach((function(e){return n.add(e)}))):e!=null&&t(`Cannot initialize set from `+e)})),this},n._t=function(e){return k(this,e)},n.St=function(e){return jt(this,e)},n.toJSON=function(){return Array.from(this)},n.toString=function(){return`[object ObservableSet]`},n[Symbol.iterator]=function(){return this.values()},S(e,[{key:`size`,get:function(){return this.st.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),xr=f(`ObservableSet`,br),Sr=Object.create(null),Cr=function(){function e(e,t,n,r){t===void 0&&(t=new Map),r===void 0&&(r=xn),this.h=void 0,this.j=void 0,this.tt=void 0,this.un=void 0,this.lt=void 0,this.ut=void 0,this.et=void 0,this.v=void 0,this.p=void 0,this.on=void 0,this.sn=void 0,this.h=e,this.j=t,this.tt=n,this.un=r,this.lt=new _n(`ObservableObject.keys`),this.p=c(this.h)}var n=e.prototype;return n.O=function(e){return this.j.get(e).get()},n.S=function(e,t){var n=this.j.get(e);if(n instanceof Rn)return n.set(t),!0;if(At(this)){var r=Mt(this,{type:cr,object:this.v||this.h,name:e,newValue:t});if(!r)return null;t=r.newValue}if((t=n.xt(t))!==L.UNCHANGED){var i=Nt(this),a=i?{type:cr,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),i&&Pt(this,a)}return!0},n.ct=function(e){return L.trackingDerivation&&!g(this.h,e)&&this.it(e),this.h[e]},n.ht=function(e,t,n){return n===void 0&&(n=!1),g(this.h,e)?this.j.has(e)?this.S(e,t):n?Reflect.set(this.h,e,t):(this.h[e]=t,!0):this.s(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.un,n)},n.it=function(e){if(!L.trackingDerivation)return e in this.h;this.sn||=new Map;var t=this.sn.get(e);return t||(t=new In(e in this.h,le,`ObservableObject.key?`,!1),this.sn.set(e,t)),t.get()},n.o=function(e,n){if(!0===n&&(n=this.un),!1!==n){if(!(e in this.h)){var r;if((r=this.h[gn])!=null&&r[e])return;t(1,n.i,this.tt+`.`+e.toString())}for(var i=this.h;i&&i!==sn;){var a=an(i,e);if(a){var o=n.o(this,e,a,i);if(o===0)return;if(o===1)break}i=Object.getPrototypeOf(i)}Wt(this,0,e)}},n.s=function(e,t,n,r){if(r===void 0&&(r=!1),!0===n&&(n=this.un),!1===n)return this.l(e,t,r);var i=n.s(this,e,t,r);return i&&Wt(this,0,e),i},n.l=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)){var i=Mt(this,{object:this.v||this.h,name:e,type:gr,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=ee({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.h,e,t))return!1}else on(this.h,e,t);this.fn(e,t.value)}finally{et()}return!0},n.g=function(e,t,n,r){r===void 0&&(r=!1);try{$e();var i=this.Ut(e);if(!i)return i;if(At(this)){var a=Mt(this,{object:this.v||this.h,name:e,type:gr,newValue:t});if(!a)return null;t=a.newValue}var o=Ht(e),s={configurable:!L.safeDescriptors||this.p,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.h,e,s))return!1}else on(this.h,e,s);var c=new In(t,n,`ObservableObject.key`,!1);this.j.set(e,c),this.fn(e,c.Ot)}finally{et()}return!0},n.m=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:gr,newValue:void 0}))return null;t.name||=`ObservableObject.key`,t.context=this.v||this.h;var i=Ht(e),a={configurable:!L.safeDescriptors||this.p,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.h,e,a))return!1}else on(this.h,e,a);this.j.set(e,new Rn(t)),this.fn(e,void 0)}finally{et()}return!0},n.Ut=function(e,t){if(t===void 0&&(t=!1),!g(this.h,e))return!0;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:`remove`}))return null;try{var n;$e();var r=Nt(this),i=this.j.get(e),a=void 0;if(!i&&r&&(a=an(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 In&&(a=i.Ot),nt(i)),this.lt.reportChanged(),(n=this.sn)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&Pt(this,{type:`remove`,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{et()}return!0},n._t=function(e){return k(this,e)},n.St=function(e){return jt(this,e)},n.fn=function(e,t){var n,r=Nt(this);r&&r&&Pt(this,r?{type:gr,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,name:e,newValue:t}:null),(n=this.sn)==null||(n=n.get(e))==null||n.set(!0),this.lt.reportChanged()},n.rt=function(){return this.lt.reportObserved(),mn(this.h)},n.nt=function(){return this.lt.reportObserved(),Object.keys(this.h)},e}(),wr=f(`ObservableObjectAdministration`,Cr),Tr=Gt(0),Er=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,!1===e}(),Dr=0,Or=function(){};fr=Or,pr=Array.prototype,Object.setPrototypeOf?Object.setPrototypeOf(fr.prototype,pr):fr.prototype.__proto__===void 0?fr.prototype=pr:fr.prototype.__proto__=pr;var kr=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray`),i===void 0&&(i=!1),a=e.call(this)||this,Qt((function(){var e=new ur(r,n,i,!0);e.v=a,d(a,N,e),t&&t.length&&a.spliceWithArray(0,0,t),Er&&Object.defineProperty(a,`0`,Tr)})),a}te(t,e);var n=t.prototype;return n.concat=function(){this[N].st.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map((function(e){return Rt(e)?e.slice():e})))},n[Symbol.iterator]=function(){var e=this,t=0;return tn({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},S(t,[{key:`length`,get:function(){return this[N].Ft()},set:function(e){this[N].Xt(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(Or);Object.entries(dr).forEach((function(e){var t=e[0];t!==`concat`&&u(kr.prototype,t,e[1])})),qt(1e3);var Ar=sn.toString,jr=n().Iterator?.prototype||{};[`Symbol`,`Map`,`Set`].forEach((function(e){n()[e]===void 0&&t(`MobX requires global '`+e+`' to be available or polyfilled`)})),typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:at,extras:{getDebugName:Zt},$mobx:N}),e.$mobx=N,e.FlowCancellationError=nr,e.ObservableMap=_r,e.ObservableSet=br,e.Reaction=Gn,e._allowStateChanges=Le,e._allowStateChangesInsideComputed=st,e._allowStateReadsEnd=Je,e._allowStateReadsStart=qe,e._autoAction=$n,e._endAction=Ie,e._getAdministration=Xt,e._getGlobalState=function(){return L},e._interceptReads=function(e,t,n){var r;return vr(e)||Rt(e)||Ln(e)?r=Xt(e):Ut(e)&&(r=Xt(e,t)),r.dehancer=typeof t==`function`?t:n,function(){r.dehancer=void 0}},e._isComputingDerivation=function(){return L.trackingDerivation!==null},e._resetGlobalState=function(){var e=new Hn;for(var t in e)Vn.indexOf(t)===-1&&(L[t]=e[t]);L.allowStateChanges=!L.enforceActions},e._startAction=Fe,e.action=Qn,e.autorun=lt,e.comparer=yn,e.computed=jn,e.configure=function(e){!0===e.isolateGlobalState&&function(){if((L.pendingReactions.length||L.inBatch||L.isRunningReactions)&&t(36),Wn=!0,Un){var e=n();--e.__mobxInstanceCount==0&&(e.__mobxGlobals=void 0),L=new Hn}}();var r,i,a=e.useProxies,o=e.enforceActions;if(a!==void 0&&(L.useProxies=a===`always`||a!==`never`&&typeof Proxy<`u`),a===`ifavailable`&&(L.verifyProxies=!0),o!==void 0){var s=o===`always`?`always`:o===`observed`;L.enforceActions=s,L.allowStateChanges=!0!==s&&s!==`always`}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach((function(t){t in e&&(L[t]=!!e[t])})),L.allowStateReads=!L.observableRequiresReaction,e.reactionScheduler&&(r=e.reactionScheduler,i=Kn,Kn=function(e){return r((function(){return i(e)}))})},e.createAtom=se,e.defineProperty=function(e,n,r){if(Ut(e))return e[N].l(n,r);t(39)},e.entries=function(e){return Ut(e)?St(e).map((function(t){return[t,e[t]]})):vr(e)?St(e).map((function(t){return[t,e.get(t)]})):xr(e)?Array.from(e.entries()):Rt(e)?e.map((function(e,t){return[t,e]})):void t(7)},e.extendObservable=mt,e.flow=ar,e.flowResult=function(e){return e},e.get=function(e,n){if(Ct(e,n))return Ut(e)?e[N].ct(n):vr(e)?e.get(n):Rt(e)?e[n]:void t(11)},e.getAtom=Yt,e.getDebugName=Zt,e.getDependencyTree=function(e,t){return ht(Yt(e,t))},e.getObserverTree=function(e,t){return gt(Yt(e,t))},e.has=Ct,e.intercept=function(e,t,n){return a(n)?function(e,t,n){return Xt(e,t).St(n)}(e,t,n):function(e,t){return Xt(e).St(t)}(e,t)},e.isAction=ct,e.isBoxedObservable=Ln,e.isComputed=function(e){return yt(e)},e.isComputedProp=function(e,t){return yt(e,t)},e.isFlow=vt,e.isFlowCancellationError=function(e){return e instanceof nr},e.isObservable=xt,e.isObservableArray=Rt,e.isObservableMap=vr,e.isObservableObject=Ut,e.isObservableProp=function(e,t){return bt(e,t)},e.isObservableSet=xr,e.keys=St,e.makeAutoObservable=function(e,t,n){return c(e)?mt(e,e,t,n):(Qt((function(){var r=Vt(e,n)[N];if(!e[sr]){var i=Object.getPrototypeOf(e),a=new Set([].concat(mn(e),mn(i)));a.delete(`constructor`),a.delete(N),u(i,sr,a)}e[sr].forEach((function(e){return r.o(e,!t||!(e in t)||t[e])}))})),e)},e.makeObservable=function(e,t,n){return Qt((function(){var r=Vt(e,n)[N];t??=function(e){return g(e,gn)||u(e,gn,ee({},e[gn])),e[gn]}(e),mn(t).forEach((function(e){return r.o(e,t[e])}))})),e},e.observable=On,e.observe=function(e,t,n,r){return a(n)?function(e,t,n,r){return Xt(e,t)._t(n,r)}(e,t,n,r):function(e,t,n){return Xt(e)._t(t,n)}(e,t,n)},e.onBecomeObserved=dt,e.onBecomeUnobserved=ft,e.onReactionError=function(e){return L.globalReactionErrorHandlers.push(e),function(){var t=L.globalReactionErrorHandlers.indexOf(e);t>=0&&L.globalReactionErrorHandlers.splice(t,1)}},e.override=bn,e.ownKeys=wt,e.reaction=function(e,t,n){function r(){if(p=!1,!h.isDisposed){var t=!1,r=s;h.track((function(){var n=Le(!1,(function(){return e(h)}));t=f||!m(s,n),s=n})),(f&&n.fireImmediately||!f&&t)&&l(s,r,h),f=!1}}var i;n===void 0&&(n=ln);var a,o,s,c=n.name??`Reaction`,l=Qn(c,n.onError?(a=n.onError,o=t,function(){try{return o.apply(this,arguments)}catch(e){a.call(this,e)}}):t),u=!n.scheduler&&!n.delay,d=ut(n),f=!0,p=!1,m=n.compareStructural?yn.structural:n.equals||yn.default,h=new Gn(c,(function(){f||u?r():p||(p=!0,d(r))}),n.onError,n.requiresObservable);return(i=n)!=null&&(i=i.signal)!=null&&i.aborted||h.Y(),h.Z(n?.signal)},e.remove=function(e,n){Ut(e)?e[N].Ut(n):vr(e)||xr(e)?e.delete(n):Rt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=st,e.set=function e(n,r,i){if(arguments.length!==2||xr(n))Ut(n)?n[N].ht(r,i):vr(n)?n.set(r,i):xr(n)?n.add(r):Rt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(`Invalid index: '`+r+`'`),$e(),r>=n.length&&(n.length=r+1),n[r]=i,et()):t(8);else{$e();var a=r;try{for(var o in a)e(n,o,a[o])}finally{et()}}},e.spy=at,e.toJS=function(e){return function e(t,n){if(typeof t!=`object`||!t||t instanceof Date||!xt(t))return t;if(Ln(t)||I(t))return e(t.get(),n);if(n.has(t))return n.get(t);if(Rt(t)){var r=Tt(n,t,Array(t.length));return t.forEach((function(t,i){r[i]=e(t,n)})),r}if(xr(t)){var i=Tt(n,t,new Set);return t.forEach((function(t){i.add(e(t,n))})),i}if(vr(t)){var a=Tt(n,t,new Map);return t.forEach((function(t,r){a.set(r,e(t,n))})),a}var o=Tt(n,t,{});return wt(t).forEach((function(r){sn.propertyIsEnumerable.call(t,r)&&(o[r]=e(t[r],n))})),o}(e,new Map)},e.trace=function(){},e.transaction=Et,e.untracked=We,e.values=function(e){return Ut(e)?St(e).map((function(t){return e[t]})):vr(e)?St(e).map((function(t){return e.get(t)})):xr(e)?Array.from(e.values()):Rt(e)?e.slice():void t(6)},e.when=function(e,t,n){return arguments.length===1||t&&typeof t==`object`?Ot(e,t):Dt(e,t,n||{})}})),jg=ye((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t={0:`Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,1:function(e,t){return`Cannot apply '`+e+`' to '`+t.toString()+`': Field not found.`},5:`'keys()' can only be used on observable objects, arrays, sets and maps`,6:`'values()' can only be used on observable objects, arrays, sets and maps`,7:`'entries()' can only be used on observable objects, arrays and maps`,8:`'set()' can only be used on observable objects, arrays and maps`,9:`'remove()' can only be used on observable objects, arrays and maps`,10:`'has()' can only be used on observable objects, arrays and maps`,11:`'get()' can only be used on observable objects, arrays and maps`,12:`Invalid annotation`,13:`Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,14:`Intercept handlers should return nothing or a change object`,15:`Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,16:`Modification exception: the internal structure of an observable array was changed.`,17:function(e,t){return`[mobx.array] Index out of bounds, `+e+` is larger than `+t},18:`mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js`,19:function(e){return`Cannot initialize from classes that inherit from Map: `+e.constructor.name},20:function(e){return`Cannot initialize map from `+e},21:function(e){return`Cannot convert to map from '`+e+`'`},22:`mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js`,23:`It is not possible to get index atoms from arrays`,24:function(e){return`Cannot obtain administration from `+e},25:function(e,t){return`the entry '`+e+`' does not exist in the observable map '`+t+`'`},26:`please specify a property`,27:function(e,t){return`no observable property '`+e.toString()+`' found on the observable object '`+t+`'`},28:function(e){return`Cannot obtain atom from `+e},29:`Expecting some object`,30:`invalid action stack. did you forget to finish an action?`,31:`missing option for computed: get`,32:function(e,t){return`Cycle detected in computation `+e+`: `+t},33:function(e){return`The setter of computed value '`+e+`' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?`},34:function(e){return`[ComputedValue '`+e+`'] It is not possible to assign a new value to a computed value.`},35:"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`",36:`isolateGlobalState should be called before MobX is running any reactions`,37:function(e){return"[mobx] `observableArray."+e+"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice()."+e+"()` instead"},38:`'ownKeys()' can only be used on observable objects`,39:`'defineProperty()' can only be used on observable objects`};function n(e){var n=[...arguments].slice(1),r=typeof e==`string`?e:t[e];throw typeof r==`function`&&(r=r.apply(null,n)),Error(`[MobX] `+r)}var r={};function i(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:r}var a=Object.assign,o=Object.getOwnPropertyDescriptor,s=Object.defineProperty,c=Object.prototype,l=[];Object.freeze(l);var u={};Object.freeze(u);var d=typeof Proxy<`u`,f=Object.toString();function p(){d||n("`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`")}function m(e){P.verifyProxies&&n(`MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to `+e)}function h(){return++P.mobxGuid}function g(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}var _=function(){};function v(e){return typeof e==`function`}function y(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function b(e){return typeof e==`object`&&!!e}function x(e){if(!b(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===f}function S(e){var t=e?.constructor;return t?t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`:!1}function C(e,t,n){s(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function ee(e,t,n){s(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function w(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return b(e)&&e[n]===!0}}function te(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function ne(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function re(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}var ie=Object.getOwnPropertySymbols!==void 0;function T(e){var t=Object.keys(e);if(!ie)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter(function(t){return c.propertyIsEnumerable.call(e,t)})):t}var E=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:ie?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function ae(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function oe(e){return e===null?null:typeof e==`object`?``+e:e}function se(e,t){return c.hasOwnProperty.call(e,t)}var ce=Object.getOwnPropertyDescriptors||function(e){var t={};return E(e).forEach(function(n){t[n]=o(e,n)}),t};function le(e,t){return!!(e&t)}function ue(e,t,n){return n?e|=t:e&=~t,e}function de(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function fe(e,t,n){if(be())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&xe(i,n.prototype),i}function pe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,Se(r.key),r)}}function me(e,t,n){return t&&pe(e.prototype,t),n&&pe(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function he(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=Ce(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
59
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ge(){return ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ge.apply(null,arguments)}function _e(e){return _e=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_e(e)}function ve(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,xe(e,t)}function ye(e){try{return Function.toString.call(e).indexOf(`[native code]`)!==-1}catch{return typeof e==`function`}}function be(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(be=function(){return!!e})()}function xe(e,t){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xe(e,t)}function D(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Se(e){var t=D(e,`string`);return typeof t==`symbol`?t:t+``}function Ce(e,t){if(e){if(typeof e==`string`)return de(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?de(e,t):void 0}}function we(e){var t=typeof Map==`function`?new Map:void 0;return we=function(e){if(e===null||!ye(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return fe(e,arguments,_e(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),xe(n,e)},we(e)}var Te=Symbol(`mobx-stored-annotations`);function Ee(e){function t(t,n){if(Ae(n))return e.decorate_20223_(t,n);De(t,n,e)}return Object.assign(t,e)}function De(e,t,r){
|
|
56
|
+
`))}function zm(e,t,n,r){let{colors:i}=e.channels[0].severity,{fullText:a,failedConfigFile:o}=t,s=new G({bgcolor:i.bg,color:i.fg}),c=(e,t)=>new q(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: ${Hd(a.reason)}`,s)]:[],u=o===null?[]:[c(`${l.length>0?` · `:``}open `,s),c(Hd(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=q.fromFragments([...d,...p]).truncate(r.width);return m.overflow=`ignore`,Dm([m],r)}const Bm=e=>!e.startsWith(`.`)&&!e.endsWith(`~`);function Vm(e,t){return t.isSymbolicLink()?Buffer.from(r.readlinkSync(e)):r.readFileSync(e)}function Hm(e,t){return r.readdirSync(t).filter(Bm).sort().flatMap(n=>{let i=l.join(t,n),a=r.lstatSync(i,{throwIfNoEntry:!1});return a===void 0?[]:a.isDirectory()?Hm(e,i):[[l.relative(e,i).split(l.sep).join(`/`),Vm(i,a)]]})}function Um(e){let t=ie.createHash(`sha256`);for(let[n,r]of Hm(e,e))t.update(n).update(`\0`).update(r).update(`\0`);return t.digest(`hex`)}const Wm=e=>e.slice(0,7);function Gm(e){return l.dirname(l.dirname(e))}function Km(){return{version:wt,digest:`4403324d4363a3f0dff73df8f6fb3c0e69e7dd8cb4e3d166c45a674b41d6c03e`}}function qm(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 Jm(e,t){try{let n=Gm(ne(e)),i=l.join(n,`src`);if(!r.existsSync(i))return{kind:`not-source-checkout`};let a=t(),o=Um(i);return o===a.digest?{kind:`current`,root:n,stamp:a}:{kind:`stale`,root:n,source:{version:qm(n),digest:o},running:a}}catch(e){return{kind:`unchecked`,reason:e.message}}}var J=class extends Error{constructor(e){super(e),this.name=`BadVerbArgs`}};const Ym=new Map;function Xm(e){let t=Qm(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 Zm(e,t){return e===`bar`?t:Xm(e)}function Qm(e){let t=Ym.get(e);if(t!==void 0)return t;let n=Sc(e);return n===null?null:(Ym.set(e,n),n)}function $m(e,t){return eh(e,`${t.hueShift} ${t.chromaScale} ${t.lightnessScale} ${t.lightnessShift}`,()=>Pc(e,t))}const eh=Yd();function th(e){let t=Qm(e);return t===null?null:{kind:`decided`,name:e,value:t}}function nh(e,t,n){let r=th(e);return r===null?(n(Tp(t,`palette`,`"${e}" names no installed theme${sp(e)}`)),ih()):r}function rh(e,t,n){return _p(e,t,n,ih(),th)}function ih(){return{kind:`decided`,name:cp,value:Xm(cp)}}const ah=[`vertical`,`horizontal`],oh={vertical:`row`,horizontal:`cell`};function sh(e){return e.id??e.name}function ch(e){return[...dh(e)].flatMap(e=>e.kind===`segment`?[sh(e)]:[])}function lh(e,t){if(!t.has(e))return e;let n=2;for(;t.has(`${e}-${n}`);)n++;return`${e}-${n}`}function uh(e,t){return e.opens===void 0?e:{...e,opens:{...e.opens,body:t(e.opens.body)}}}function*dh(e){yield e;for(let t of hh(e))yield*dh(t)}const fh=(e,t)=>`${e}.children[${t}]`,ph=e=>`${e}.opens.body`;function*mh(e,t){if(yield[e,t],e.kind===`container`)for(let[n,r]of e.children.entries())yield*mh(r,fh(t,n));else e.opens!==void 0&&(yield*mh(e.opens.body,ph(t)))}function hh(e){return e.kind===`container`?e.children:e.opens===void 0?[]:[e.opens.body]}const gh=[`shade`,`variation`,`style`];function _h(e){return e===void 0||`text`in e?`text`:`regex`in e?`regex`:`json`}const vh=[`ttl`,`watch_file`,`depends_on`,`key`,`never`];function yh(e){return e.kind===`file`||e.kind===`shell`||e.kind===`template`}const bh=[`branch`,`sha`,`dirty`,`ahead`,`behind`,`stash`],xh=`theme`,Sh=`effect`,Ch=[xh,Sh];function wh(e){return{...e.settings,[xh]:{label:xh,domain:`theme`,default:e.palette??`bar`},[Sh]:{label:Sh,domain:Dp,default:`bar`}}}function Th(e){let t=e?.domain;return typeof t==`object`&&`min`in t?t:void 0}function Eh(e,t){return Object.entries(e).flatMap(([n,r])=>{let i=Th(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 Dh(e,t){let{domain:n}=e;return n===`bool`?typeof t==`boolean`:n===`theme`?typeof t==`string`&&pp(t):`min`in n?typeof t==`number`&&Number.isInteger(t)&&t>=n.min&&t<=n.max:typeof t==`string`&&n.includes(t)}function Oh(e){return String(e)}function kh(e,t){let{domain:n}=e;if(typeof n==`object`&&`min`in n)return Qp(t,n)??void 0;let r=n===`bool`?t===`true`?!0:t===`false`?!1:t:t;return Dh(e,r)?r:void 0}function Ah(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:kh(n,o))??i}function jh(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 Mh=[`left`,`center`,`right`],Nh=[`right`,`left`,`middle`],Ph=/^[A-Za-z_][A-Za-z0-9_]*$/;function Fh(e){return`#${e+1}`}const Ih={rows:{}};function Lh(e){return`rows`in e}function Rh(e){return Object.fromEntries(e.map((e,t)=>[Fh(t),e]))}function zh(e){if(e.kind===`container`&&e.direction===`vertical`){let{kind:t,direction:n,children:r,...i}=e;return{...i,rows:Rh(r)}}let{when:t,...n}=e;return{...t!==void 0&&{when:t},rows:Rh([n])}}function Bh(e){let{rows:t,...n}=e;return{kind:`container`,direction:`vertical`,children:Object.values(t),...n}}function Vh(e){return Lh(e)?Bh(e):e}function*Hh(e,t){if(!Lh(e)){yield*mh(e,t);return}yield[Bh(e),t];for(let[n,r]of Object.entries(e.rows))yield*mh(r,`${t}.rows.${n}`)}function Uh(e,t){return Lh(e)?{...t,...e,rows:{...t.rows,...e.rows}}:zh(e)}function Wh(e){if(!Lh(e))return!0;let{rows:t,...n}=e;return Object.values(n).some(e=>e!==void 0)||Object.keys(t).length>0}const Gh=`default`,Kh={};function qh(e){return[...new Set([Gh,...Object.keys(e)])]}function Jh(e,t,n){return mp(void 0,e,t,Gh,n)}function Yh(e,t){let n={[Gh]:Kh,...e}[t];if(n===void 0)throw Error(`Preset "${t}" is not declared in this config — effectivePresetName collapses unknown names to "${Gh}", which always resolves; a miss here means a raw name reached this function without going through that resolution`);return n}function Xh(e,t){let n=Yh(e.presets,t).root??Ih;return{node:Bh(Uh(n,e.root)),path:Wh(n)?`presets.${t}.root`:`root`}}function Zh(e,t){return{...e.globals,...Yh(e.presets,t).globals}}const Qh=new Map;function $h(e,t,n){Qh.set(e,{permanent:!0,resolve:t,paletteOf:n})}$h(`themes`,()=>up(),e=>Xm(e));const eg=`placementThemes`;$h(eg,dp,(e,t)=>Zm(e,t.palette)),$h(`endcaps`,()=>jp),$h(`variations`,()=>Vp),$h(`shades`,()=>Wp),$h(`charsets`,()=>Ip),$h(`colorCompatibilities`,()=>zp);function tg(e){return new Map([[`styles`,{members:Object.keys(e.styles),paletteOf:(t,n)=>$m(n.basePalette,e.styles[t])}],[`presets`,{members:qh(e.presets)}]])}function ng(e){return[...new Set([...Qh.keys(),...e.keys()])]}function rg(e,t){if(typeof e!=`string`)return{members:e};let n=t.get(e);if(n)return n;let r=Qh.get(e);if(r)return{members:r.resolve(),paletteOf:r.paletteOf};throw Error(ag(e,t))}const ig=new Map([[`looks`,`styles`],[`progressions`,`variations`]]);function ag(e,t){let n=ig.get(e);return`unknown option domain "${e}"${n===void 0?``:` — it was renamed "${n}"; write from: "${n}"`} (have: ${ng(t).join(`, `)})`}const og=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`[^`]*`/g;function*sg(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 cg=`[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*`,lg=RegExp(`^(?:(\\$)(?:\\.(${cg}))?|\\.(${cg})?)(?=[\\s)]|$)`);function ug(e,t,n){let r=lg.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 dg=/^(\w+)\b\s*([\s\S]*)$/;function*fg(e,t){let n=[t];for(let r of sg(e)){let e=r.replace(/^-(?=\s)/,``).trim(),[,i=``,a=``]=dg.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:ug(r[1],s,t);continue}yield{code:e,dot:o},i===`if`&&n.push(o),i===`with`&&n.push(ug(a,o,t)),(i===`range`||i===`define`||i===`block`)&&n.push(null)}}const pg=/(?<![.$])\btemplate\s+$/;function*mg(e,t,n){let r=0;for(let i of[...e.matchAll(og)]){let a=i.index+i[0].length;pg.test(e.slice(r,i.index))&&(yield{name:i[0].slice(1,-1),at:ug(e.slice(a),t,n)}),r=a}}function*hg(e,t){let n=new Set;function*r(e,i,a,o){for(let{code:s,dot:c}of[...fg(e,i)]){yield{code:s,dot:c,root:i,via:a};for(let e of[...mg(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 gg=RegExp(`(?<![A-Za-z0-9_)$])(\\$?)\\.(${cg})`,`g`);function*_g({code:e,dot:t,root:n}){let r=e.replace(og,``);for(let e of[...r.matchAll(gg)]){let r=e[1]===`$`?n:t;r!==null&&(yield`${r}${e[2]}`)}}function vg(e,t){let n=new Map;for(let r of hg(e,t))for(let e of _g(r))n.has(e)||n.set(e,r.via);return n}const yg=/(?<![.$])\b(action|picker|menu|carousel|swatches|swatch|themePreview)\s+$/,bg={action:1,picker:2,menu:1,carousel:2,swatch:1,swatches:2,themePreview:1};function*xg(e){let t=0,n=0,r=0,i=`action`;for(let a of[...e.matchAll(og)]){let o=e.slice(t,a.index),s=yg.exec(o);if(s!==null)n=bg[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 Sg(e,t){let n=new Map;for(let{code:r,via:i}of hg(e,t))for(let{name:e,site:t}of xg(r)){let r=`${e}\0${i??`\0`}`;n.has(r)||n.set(r,{name:e,site:t,via:i})}return[...n.values()]}function Cg(e,t){return new Set([...wg(e,t)].filter(e=>Object.hasOwn(t,e)))}function wg(e,t){let n=new Set;for(let{code:r,dot:i,root:a}of hg(e,t))for(let{name:e}of mg(r,i,a))n.add(e);return n}function Tg(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 Eg(e){let t=new Set,n=new Set,r=(e,r)=>{t.add(e),Dg(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 Dg(e){return e.kind===`dropped`||(e.kind===`shell`||e.kind===`file`)&&_h(e.parse)===`json`}function Og(e){let t=l.basename(e),n=l.dirname(e);for(;;){let r=kg(n);if(r!==null)return{dir:r,name:t,leaf:n===l.dirname(e)};t=l.basename(n),n=l.dirname(n)}}function kg(e){try{return r.statSync(e).isDirectory()?r.realpathSync(e):null}catch{return null}}var Ag=ye((e=>{function t(e){var t=[...arguments].slice(1);throw Error(typeof e==`number`?`[MobX] minified error nr: `+e+(t.length?` `+t.map(String).join(`,`):``)+`. Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts`:`[MobX] `+e)}function n(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:rn}function r(){un||t(`Proxy not available`)}function i(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}function a(e){return typeof e==`function`}function o(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function s(e){return typeof e==`object`&&!!e}function c(e){if(!s(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===dn}function l(e){var t=e?.constructor;return!!t&&(t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`)}function u(e,t,n){on(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function d(e,t,n){on(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function f(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return s(e)&&!0===e[n]}}function p(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function m(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}function h(e){return e===null?null:typeof e==`object`?``+e:e}function g(e,t){return sn.hasOwnProperty.call(e,t)}function _(e,t){return!!(e&t)}function v(e,t,n){return n?e|=t:e&=~t,e}function y(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n){if(re())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&ie(i,n.prototype),i}function x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,ae(r.key),r)}}function S(e,t,n){return t&&x(e.prototype,t),n&&x(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function C(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if(typeof e==`string`)return y(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
57
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(){return(ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function te(e){return(te=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ne(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,ie(e,t)}function re(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch{}return(re=function(){return!!e})()}function ie(e,t){return(ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ae(e){var t=function(e){if(typeof e!=`object`||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var n=t.call(e,`string`);if(typeof n!=`object`)return n;throw TypeError(`@@toPrimitive must return a primitive value.`)}return String(e)}(e);return typeof t==`symbol`?t:t+``}function w(e){var t=typeof Map==`function`?new Map:void 0;return(w=function(e){function n(){return b(e,arguments,te(this).constructor)}if(e===null||!function(e){try{return Function.toString.call(e).indexOf(`[native code]`)!==-1}catch{return typeof e==`function`}}(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),ie(n,e)})(e)}function T(e){return Object.assign((function(t,n){if(se(n))return e.t(t,n);oe(t,n,e)}),e)}function oe(e,t,n){g(e,gn)||u(e,gn,ee({},e[gn])),function(e){return e.i===`override`}(n)||(e[gn][t]=n)}function se(e){return typeof e==`object`&&typeof e.kind==`string`}function ce(e,t,n){t===void 0&&(t=fn),n===void 0&&(n=fn);var r=new _n(e);return t!==fn&&dt(r,t),n!==fn&&ft(r,n),r}function le(e,t,n){return xt(e)?e:Array.isArray(e)?On.array(e,{name:n}):c(e)?On.object(e,void 0,{name:n}):p(e)?On.map(e,{name:n}):m(e)?On.set(e,{name:n}):typeof e!=`function`||ct(e)||vt(e)?e:l(e)?ar(e):$n(n,e)}function ue(e){return e}function E(e,t){return{i:e,u:t,o:de,s:fe,t:pe}}function de(e,t,n,r){var i;return(i=this.u)!=null&&i.bound?this.s(e,t,n,!1)===null?0:1:r===e.h?this.s(e,t,n,!1)===null?0:2:ct(n.value)?1:(on(r,t,me(e,this,t,n,!1)),2)}function fe(e,t,n,r){var i=me(e,this,t,n);return e.l(t,i,r)}function pe(e,n){var r,i=n.kind,a=n.name,o=n.addInitializer,s=this,c=function(e){var t;return Ne(s.u?.name??a.toString(),e,(t=s.u?.autoAction)!=null&&t)};return i==`field`?function(e){var t,n=e;return ct(n)||(n=c(n)),(t=s.u)!=null&&t.bound&&((n=n.bind(this)).isMobxAction=!0),n}:i==`method`?(ct(e)||(e=c(e)),(r=this.u)!=null&&r.bound&&o((function(){var e=this[a].bind(this);e.isMobxAction=!0,this[a]=e})),e):void t(`Cannot apply '`+s.i+`' to '`+String(a)+`' (kind: `+i+`):
|
|
58
|
+
'`+s.i+`' can only be used on properties with a function value.`)}function me(e,t,n,r,i){var a,o,s;i===void 0&&(i=L.safeDescriptors);var c=r.value;return(a=t.u)!=null&&a.bound&&(c=c.bind(e.v??e.h)),{value:Ne(t.u?.name??n.toString(),c,(o=t.u?.autoAction)!=null&&o,(s=t.u)!=null&&s.bound?e.v??e.h:void 0),configurable:!i||e.p,enumerable:!1,writable:!i}}function he(e,t){return{i:e,u:t,o:ge,s:_e,t:ve}}function ge(e,t,n,r){var i;return r===e.h?this.s(e,t,n,!1)===null?0:2:(i=this.u)!=null&&i.bound&&(!g(e.h,t)||!vt(e.h[t]))&&this.s(e,t,n,!1)===null?0:vt(n.value)?1:(on(r,t,ye(e,0,0,n,!1,!1)),2)}function _e(e,t,n,r){var i=ye(e,0,0,n,this.u?.bound);return e.l(t,i,r)}function ve(e,t){var n,r=t.name,i=t.addInitializer;return vt(e)||(e=ar(e)),(n=this.u)!=null&&n.bound&&i((function(){var e=this[r].bind(this);e.isMobXFlow=!0,this[r]=e})),e}function ye(e,t,n,r,i,a){a===void 0&&(a=L.safeDescriptors);var o=r.value;return vt(o)||(o=ar(o)),i&&((o=o.bind(e.v??e.h)).isMobXFlow=!0),{value:o,configurable:!a||e.p,enumerable:!1,writable:!a}}function be(e,t){return{i:e,u:t,o:xe,s:D,t:Se}}function xe(e,t,n){return this.s(e,t,n,!1)===null?0:1}function D(e,t,n,r){return e.m(t,ee({},this.u,{get:n.get,set:n.set}),r)}function Se(e,t){var n=this,r=t.name;return(0,t.addInitializer)((function(){var t=Vt(this)[N],i=ee({},n.u,{get:e,context:this});i.name||=`ObservableObject.`+r.toString(),t.j.set(r,new Rn(i))})),function(){return this[N].O(r)}}function Ce(e,t){return{i:e,u:t,o:we,s:Te,t:Ee}}function we(e,t,n){return this.s(e,t,n,!1)===null?0:1}function Te(e,t,n,r){return e.g(t,n.value,this.u?.enhancer??le,r)}function Ee(e,t){function n(e,t){var n=Vt(e)[N],i=new In(t,r.u?.enhancer??le,`ObservableObject.`+a.toString(),!1);n.j.set(a,i),o.add(e)}var r=this,i=t.kind,a=t.name,o=new WeakSet;if(i==`accessor`)return{get:function(){return o.has(this)||n(this,e.get.call(this)),this[N].O(a)},set:function(e){return o.has(this)||n(this,e),this[N].S(a,e)},init:function(e){return o.has(this)||n(this,e),e}}}function De(e){return{i:`true`,u:e,o:Oe,s:ke,t:Ae}}function Oe(e,t,n,r){var i,a,o;if(n.get)return jn.o(e,t,n,r);if(n.set){var s=ct(n.set)?n.set:Ne(t.toString(),n.set);return r===e.h?e.l(t,{configurable:!L.safeDescriptors||e.p,set:s})===null?0:2:(on(r,t,{configurable:!0,set:s}),2)}if(r!==e.h&&typeof n.value==`function`)return l(n.value)?((o=this.u)!=null&&o.autoBind?ar.bound:ar).o(e,t,n,r):((a=this.u)!=null&&a.autoBind?$n.bound:$n).o(e,t,n,r);var c=!1===this.u?.deep?On.ref:On;return typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),c.o(e,t,n,r)}function ke(e,t,n,r){var i;return n.get?jn.s(e,t,n,r):n.set?e.l(t,{configurable:!L.safeDescriptors||e.p,set:Ne(t.toString(),n.set)},r):(typeof n.value==`function`&&(i=this.u)!=null&&i.autoBind&&(n.value=n.value.bind(e.v??e.h)),(!1===this.u?.deep?On.ref:On).s(e,t,n,r))}function Ae(){t(`'`+this.i+`' cannot be used as a decorator`)}function je(e){return e||Sn}function O(e){return!0===e.deep?le:!1===e.deep?ue:(t=e.defaultDecorator)&&(n=(r=t.u)?.enhancer)!=null?n:le;var t,n,r}function Me(e,t,n){return se(t)?Cn.t(e,t):o(t)?void oe(e,t,Cn):xt(e)?e:c(e)?On.object(e,t,n):Array.isArray(e)?On.array(e,t):p(e)?On.map(e,t):m(e)?On.set(e,t):typeof e==`object`&&e?e:On.box(e,t)}function Ne(e,t,n,r){function i(){return Pe(0,n,t,r||this,arguments)}return n===void 0&&(n=!1),i.isMobxAction=!0,i.toString=function(){return t.toString()},Pn&&(Fn.value=e,on(i,`name`,Fn)),i}function Pe(e,t,n,r,i){var a=Fe(0,t);try{return n.apply(r,i)}catch(e){throw a._=e,e}finally{Ie(a)}}function Fe(e,t){var n=L.trackingDerivation,r=!t||!n;$e();var i=L.allowStateChanges;r&&(Ge(),i=Re(!0));var a={A:r,k:n,M:i,V:qe(!0),R:!1,N:0,T:Nn++,C:Mn};return Mn=a.T,a}function Ie(e){Mn!==e.T&&t(30),Mn=e.C,e._!==void 0&&(L.suppressReactionErrors=!0),ze(e.M),Je(e.V),et(),e.A&&Ke(e.k),L.suppressReactionErrors=!1}function Le(e,t){var n=Re(e);try{return t()}finally{ze(n)}}function Re(e){var t=L.allowStateChanges;return L.allowStateChanges=e,t}function ze(e){L.allowStateChanges=e}function Be(e){return e instanceof Bn}function Ve(e){switch(e.I){case F.L:return!1;case F.P:case F.K:return!0;case F.B:for(var t=qe(!0),n=Ge(),r=e.D,i=r.length,a=0;a<i;a++){var o=r[a];if(I(o)){if(L.disableErrorBoundaries)o.get();else try{o.get()}catch{return Ke(n),Je(t),!0}if(e.I===F.K)return Ke(n),Je(t),!0}}return Ye(e),Ke(n),Je(t),!1}}function He(e,t,n){var r=qe(!0);Ye(e),e.W=Array(e.q===0?100:e.D.length),e.G=0,e.q=++L.runId;var i,a=L.trackingDerivation;if(L.trackingDerivation=e,L.inBatch++,!0===L.disableErrorBoundaries)i=t.call(n);else try{i=t.call(n)}catch(e){i=new Bn(e)}return L.inBatch--,L.trackingDerivation=a,function(e){for(var t=e.D,n=e.D=e.W,r=F.L,i=0,a=e.G,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.I>r&&(r=s.I)}for(n.length=i,e.W=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&Ze(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,Xe(l,e))}r!==F.L&&(e.I=r,e.H())}(e),Je(r),i}function Ue(e){var t=e.D;e.D=[];for(var n=t.length;n--;)Ze(t[n],e);e.I=F.P}function We(e){var t=Ge();try{return e()}finally{Ke(t)}}function Ge(){var e=L.trackingDerivation;return L.trackingDerivation=null,e}function Ke(e){L.trackingDerivation=e}function qe(e){var t=L.allowStateReads;return L.allowStateReads=e,t}function Je(e){L.allowStateReads=e}function Ye(e){if(e.I!==F.L){e.I=F.L;for(var t=e.D,n=t.length;n--;)t[n].U=F.L}}function Xe(e,t){e.F.add(t),e.U>t.I&&(e.U=t.I)}function Ze(e,t){e.F.delete(t),e.F.size===0&&Qe(e)}function Qe(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,L.pendingUnobservations.push(e))}function $e(){L.inBatch++}function et(){if(--L.inBatch==0){rt();for(var e=L.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.F.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof Rn&&n.X())}L.pendingUnobservations=[]}}function tt(e){var t=L.trackingDerivation;return t===null?(e.F.size===0&&L.inBatch>0&&Qe(e),!1):(t.q!==e.$&&(e.$=t.q,t.W[t.G++]=e,!e.isBeingObserved&&L.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function nt(e){e.U!==F.K&&(e.U=F.K,e.F.forEach((function(e){e.I===F.L&&e.H(),e.I=F.K})))}function rt(){L.inBatch>0||L.isRunningReactions||Kn(it)}function it(){L.isRunningReactions=!0;for(var e=L.pendingReactions,t=0;e.length>0;){++t==100&&(console.error(`[mobx] cycle in reaction: `+e[0]),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].J()}L.isRunningReactions=!1}function at(){return console.warn(`[mobx.spy] Is a no-op in production builds`),function(){}}function ot(e){return function(t,n){return a(t)?Ne(t.name||`<unnamed action>`,t,e):a(n)?Ne(t,n,e):se(n)?(e?Xn:Jn).t(t,n):o(n)?oe(t,n,e?Xn:Jn):o(t)?T(E(e?`autoAction`:`action`,{name:t,autoAction:e})):void 0}}function st(e){return Pe(0,!1,e,this,void 0)}function ct(e){return a(e)&&!0===e.isMobxAction}function lt(e,t){function n(){e(i)}var r;t===void 0&&(t=ln);var i,a=t?.name??`Autorun`;if(t.scheduler||t.delay){var o=ut(t),s=!1;i=new Gn(a,(function(){s||(s=!0,o((function(){s=!1,i.isDisposed||i.track(n)})))}),t.onError,t.requiresObservable)}else i=new Gn(a,(function(){this.track(n)}),t.onError,t.requiresObservable);return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||i.Y(),i.Z(t?.signal)}function ut(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:er}function dt(e,t,n){return pt(`onBO`,e,t,n)}function ft(e,t,n){return pt(`onBUO`,e,t,n)}function pt(e,t,n,r){var i=typeof r==`function`?Yt(t,n):Yt(t),o=a(r)?r:n,s=e+`L`;return i[s]?i[s].add(o):i[s]=new Set([o]),function(){var e=i[s];e&&(e.delete(o),e.size===0&&delete i[s])}}function mt(e,t,n,r){var i=hn(t);return Qt((function(){var t=Vt(e,r)[N];mn(i).forEach((function(e){t.s(e,i[e],!n||!(e in n)||n[e])}))})),e}function ht(e){var t,n={name:e.tt};return e.D&&e.D.length>0&&(n.dependencies=(t=e.D,Array.from(new Set(t))).map(ht)),n}function gt(e){var t={name:e.tt};return function(e){return e.F&&e.F.size>0}(e)&&(t.observers=Array.from(function(e){return e.F}(e)).map(gt)),t}function _t(e){a(e.cancel)&&e.cancel()}function vt(e){return!0===e?.isMobXFlow}function yt(e,t){return t===void 0?I(e):!1===Ut(e)||!e[N].j.has(t)?!1:I(Yt(e,t))}function bt(e,t){return!!e&&(t===void 0?Ut(e)||!!e[N]||vn(e)||qn(e)||I(e):!!Ut(e)&&e[N].j.has(t))}function xt(e){return bt(e)}function St(e){return Ut(e)?e[N].nt():vr(e)||xr(e)?Array.from(e.keys()):Rt(e)?e.map((function(e,t){return t})):void t(5)}function Ct(e,n){return Ut(e)?e[N].it(n):vr(e)||xr(e)?e.has(n):Rt(e)?n>=0&&n<e.length:void t(10)}function wt(e){if(Ut(e))return e[N].rt();t(38)}function Tt(e,t,n){return e.set(t,n),n}function Et(e,t){t===void 0&&(t=void 0),$e();try{return e.apply(t)}finally{et()}}function Dt(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout((function(){if(!o[N].isDisposed){if(o(),!n.onError)throw i;n.onError(i)}}),n.timeout)}n.name=`When`;var a=Ne(`When-effect`,t),o=lt((function(t){Le(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())}),n);return o}function Ot(e,t){var n,r,i;if(t!=null&&(n=t.signal)!=null&&n.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var a=new Promise((function(n,a){var o,s=Dt(e,n,ee({},t,{onError:a}));r=function(){s(),a(Error(`WHEN_CANCELLED`))},i=function(){s(),a(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,i)})).finally((function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,i)}));return a.cancel=r,a}function kt(e){return e[N]}function At(e){return e.et!==void 0&&e.et.length>0}function jt(e,t){var n=e.et||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Mt(e,n){var r=Ge();try{for(var i=[].concat(e.et||[]),a=0,o=i.length;a<o&&((n=i[a](n))&&!n.type&&t(14),n);a++);return n}finally{Ke(r)}}function Nt(e){return e.ut!==void 0&&e.ut.length>0}function k(e,t){var n=e.ut||=[];return n.push(t),i((function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)}))}function Pt(e,t){var n=Ge(),r=e.ut;if(r){for(var i=0,a=(r=r.slice()).length;i<a;i++)r[i](t);Ke(n)}}function Ft(e,t,n,i){return n===void 0&&(n=`ObservableArray`),i===void 0&&(i=!1),r(),Qt((function(){var r=new ur(n,t,i,!1);d(r.j,N,r);var a=new Proxy(r.j,lr);return r.v=a,e&&e.length&&r.ot(0,0,e),a}))}function A(e,t){typeof Array.prototype[e]==`function`&&(dr[e]=t(e))}function It(e){return function(){var t=this[N];t.st.reportObserved();var n=t.ft(t.j);return n[e].apply(n,arguments)}}function j(e){return function(t,n){var r=this,i=this[N];return i.st.reportObserved(),i.ft(i.j)[e]((function(e,i){return t.call(n,e,i,r)}))}}function Lt(e){return function(){var t=this,n=this[N];n.st.reportObserved();var r=n.ft(n.j),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}function Rt(e){return s(e)&&mr(e[N])}function zt(e){return e[Symbol.toStringTag]=`MapIterator`,tn(e)}function Bt(e){return e[Symbol.toStringTag]=`SetIterator`,tn(e)}function Vt(e,t){if(g(e,N))return e;var n=t?.name??`ObservableObject`;return u(e,N,new Cr(e,new Map,String(n),function(e){return e?e.defaultDecorator??De(e):void 0}(t))),e}function Ht(e){return Sr[e]||(Sr[e]={get:function(){return this[N].O(e)},set:function(t){return this[N].S(e,t)}})}function Ut(e){return!!s(e)&&wr(e[N])}function Wt(e,t,n){var r;(r=e.h[gn])==null||delete r[n]}function Gt(e){return{enumerable:!1,configurable:!0,get:function(){return this[N].ct(e)},set:function(t){this[N].ht(e,t)}}}function Kt(e){on(kr.prototype,``+e,Gt(e))}function qt(e){if(e>Dr){for(var t=Dr;t<e+100;t++)Kt(t);Dr=e}}function Jt(e,t,n){return new kr(e,t,n)}function Yt(e,n){if(typeof e==`object`&&e){if(Rt(e))return n!==void 0&&t(23),e[N].st;if(xr(e))return e.st;if(vr(e)){if(n===void 0)return e.lt;var r=e.vt.get(n)||e.dt.get(n);return r||t(25,n,Zt(e)),r}if(Ut(e)){if(!n)return t(26);var i=e[N].j.get(n);return i||t(27,n,Zt(e)),i}if(vn(e)||I(e)||qn(e))return e}else if(a(e)&&qn(e[N]))return e[N];t(28)}function Xt(e,n){return e||t(29),n===void 0?vn(e)||I(e)||qn(e)||vr(e)||xr(e)?e:e[N]?e[N]:void t(24,e):Xt(Yt(e,n))}function Zt(e,t){var n;if(t!==void 0)n=Yt(e,t);else{if(ct(e))return e.name;n=Ut(e)||vr(e)||xr(e)?Xt(e):Yt(e)}return n.tt}function Qt(e){var t=Ge(),n=Re(!0);$e();try{return e()}finally{et(),ze(n),Ke(t)}}function $t(e,t,n){return n===void 0&&(n=-1),function e(t,n,r,i,o){if(t===n)return t!==0||1/t==1/n;if(t==null||n==null)return!1;if(t!=t)return n!=n;var s=typeof t;if(s!==`function`&&s!==`object`&&typeof n!=`object`)return!1;var c=Ar.call(t);if(c!==Ar.call(n))return!1;switch(c){case`[object RegExp]`:case`[object String]`:return``+t==``+n;case`[object Number]`:return+t==+t?+t==0?1/t==1/n:+t==+n:+n!=+n;case`[object Date]`:case`[object Boolean]`:return+t==+n;case`[object Symbol]`:return typeof Symbol<`u`&&Symbol.valueOf.call(t)===Symbol.valueOf.call(n);case`[object Map]`:case`[object Set]`:r>=0&&r++}t=en(t),n=en(n);var l=c===`[object Array]`;if(!l){if(typeof t!=`object`||typeof n!=`object`)return!1;var u=t.constructor,d=n.constructor;if(u!==d&&!(a(u)&&u instanceof u&&a(d)&&d instanceof d)&&`constructor`in t&&`constructor`in n)return!1}if(r===0)return!1;r<0&&(r=-1),o||=[];for(var f=(i||=[]).length;f--;)if(i[f]===t)return o[f]===n;if(i.push(t),o.push(n),l){if((f=t.length)!==n.length)return!1;for(;f--;)if(!e(t[f],n[f],r-1,i,o))return!1}else{var p=Object.keys(t),m=p.length;if(Object.keys(n).length!==m)return!1;for(var h=0;h<m;h++){var _=p[h];if(!g(n,_)||!e(t[_],n[_],r-1,i,o))return!1}}return i.pop(),o.pop(),!0}(e,t,n)}function en(e){return Rt(e)?e.slice():p(e)||vr(e)||m(e)||xr(e)?Array.from(e.entries()):e}function tn(e){return e[Symbol.iterator]=nn,Object.assign(Object.create(jr),e)}function nn(){return this}Object.defineProperty(e,`__esModule`,{value:!0});var rn={},M=Object.assign,an=Object.getOwnPropertyDescriptor,on=Object.defineProperty,sn=Object.prototype,cn=[];Object.freeze(cn);var ln={};Object.freeze(ln);var un=typeof Proxy<`u`,dn=Object.toString(),fn=function(){},pn=Object.getOwnPropertySymbols!==void 0,mn=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:pn?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,hn=Object.getOwnPropertyDescriptors||function(e){var t={};return mn(e).forEach((function(n){t[n]=an(e,n)})),t},gn=Symbol(`mobx-stored-annotations`),N=Symbol(`mobx administration`),_n=function(){function e(e){e===void 0&&(e=`Atom`),this.tt=void 0,this.bt=0,this.F=new Set,this.$=0,this.U=F.P,this.onBOL=void 0,this.onBUOL=void 0,this.tt=e}var t=e.prototype;return t.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},t.reportObserved=function(){return tt(this)},t.reportChanged=function(){$e(),nt(this),et()},t.toString=function(){return this.tt},S(e,[{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();_n.pt=1,_n.yt=2,_n.wt=4;var vn=f(`Atom`,_n),yn={identity:function(e,t){return e===t},structural:function(e,t){return $t(e,t)},default:function(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!=e&&t!=t},shallow:function(e,t){return $t(e,t,1)}},bn=T({i:`override`,o:function(){return 0},s:function(){t(`'`+this.i+`' can only be used with 'makeObservable'`)},t:function(){console.warn(`'`+this.i+`' cannot be used with decorators - this is a no-op`)}}),xn=De(),Sn={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(Sn);var Cn=Ce(`observable`),wn=Ce(`observable.ref`,{enhancer:ue}),P=Ce(`observable.shallow`,{enhancer:function(e,t,n){return e==null||Ut(e)||Rt(e)||vr(e)||xr(e)?e:Array.isArray(e)?On.array(e,{name:n,deep:!1}):c(e)?On.object(e,void 0,{name:n,deep:!1}):p(e)?On.map(e,{name:n,deep:!1}):m(e)?On.set(e,{name:n,deep:!1}):void 0}}),Tn=Ce(`observable.struct`,{enhancer:function(e,t){return $t(e,t)?t:e}}),En=T(Cn);M(Me,En);var Dn,On=M(Me,{box:function(e,t){var n=je(t);return new In(e,O(n),n.name,!0,n.equals)},array:function(e,t){var n=je(t);return(!1===L.useProxies||!1===n.proxy?Jt:Ft)(e,O(n),n.name)},map:function(e,t){var n=je(t);return new _r(e,O(n),n.name)},set:function(e,t){var n=je(t);return new br(e,O(n),n.name)},object:function(e,t,n){return Qt((function(){return mt(!1===L.useProxies||!1===n?.proxy?Vt({},n):function(e,t){var n;return r(),(n=(e=Vt(e,t))[N]).v??(n.v=new Proxy(e,or))}({},n),e,t)}))},ref:T(wn),shallow:T(P),deep:En,struct:T(Tn)}),kn=be(`computed`),An=be(`computed.struct`,{equals:yn.structural}),jn=function(e,t){if(se(t))return kn.t(e,t);if(o(t))return oe(e,t,kn);if(c(e))return T(be(`computed`,e));var n=c(t)?t:{};return n.get=e,n.name||=e.name||``,new Rn(n)};Object.assign(jn,kn),jn.struct=T(An);var Mn=0,Nn=1,Pn=(Dn=an((function(){}),`name`)?.configurable)!=null&&Dn,Fn={value:`action`,configurable:!0,writable:!1,enumerable:!1},In=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue`),a===void 0&&(a=yn.default),(o=e.call(this,r)||this).enhancer=void 0,o.tt=void 0,o.equals=void 0,o.jt=!1,o.et=void 0,o.ut=void 0,o.Ot=void 0,o.dehancer=void 0,o.enhancer=n,o.tt=r,o.equals=a,o.Ot=n(t,void 0,r),o}ne(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){(e=this.xt(e))!==L.UNCHANGED&&this.gt(e)},n.xt=function(e){if(At(this)){var t=Mt(this,{object:this,type:cr,newValue:e});if(!t)return L.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.Ot,this.tt),this.equals(this.Ot,e)?L.UNCHANGED:e},n.gt=function(e){var t=this.Ot;this.Ot=e,this.reportChanged(),Nt(this)&&Pt(this,{type:cr,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.Ot)},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.tt,object:this,type:cr,newValue:this.Ot,oldValue:void 0}),k(this,e)},n.raw=function(){return this.Ot},n.toJSON=function(){return this.get()},n.toString=function(){return this.tt+`[`+this.Ot+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(_n),Ln=f(`ObservableValue`,In),Rn=function(){function e(e){this.I=F.P,this.D=[],this.W=null,this.F=new Set,this.q=0,this.$=0,this.U=F.L,this.G=0,this.Ot=new Bn(null),this.tt=void 0,this.At=void 0,this.bt=0,this.derivation=void 0,this.kt=void 0,this.Mt=zn.NONE,this.Et=void 0,this.Vt=void 0,this.Rt=void 0,this.Nt=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||t(31),this.derivation=e.get,this.tt=e.name||`ComputedValue`,e.set&&(this.kt=Ne(`ComputedValue-setter`,e.set)),this.Vt=e.equals||(e.compareStructural||e.struct?yn.structural:yn.default),this.Et=e.context,this.Rt=e.requiresReaction,this.Nt=!!e.keepAlive}var n=e.prototype;return n.H=function(){(function(e){e.U===F.L&&(e.U=F.B,e.F.forEach((function(e){e.I===F.L&&(e.I=F.B,e.H())})))})(this)},n.onBO=function(){this.onBOL&&this.onBOL.forEach((function(e){return e()}))},n.onBUO=function(){this.onBUOL&&this.onBUOL.forEach((function(e){return e()}))},n.get=function(){if(this.isComputing&&t(32,this.tt,this.derivation),L.inBatch!==0||this.F.size!==0||this.Nt){if(tt(this),Ve(this)){var e=L.trackingContext;this.Nt&&!e&&(L.trackingContext=this),this.trackAndCompute()&&function(e){e.U!==F.K&&(e.U=F.K,e.F.forEach((function(t){t.I===F.B?t.I=F.K:t.I===F.L&&(e.U=F.L)})))}(this),L.trackingContext=e}}else Ve(this)&&(this.Tt(),$e(),this.Ot=this.Ct(!1),et());var n=this.Ot;if(Be(n))throw n.cause;return n},n.set=function(e){if(this.kt){this.isRunningSetter&&t(33,this.tt),this.isRunningSetter=!0;try{this.kt.call(this.Et,e)}finally{this.isRunningSetter=!1}}else t(34,this.tt)},n.trackAndCompute=function(){var e=this.Ot,t=this.I===F.P,n=this.Ct(!0),r=t||Be(e)||Be(n)||!this.Vt(e,n);return r&&(this.Ot=n),r},n.Ct=function(e){this.isComputing=!0;var t,n=Re(!1);if(e)t=He(this,this.derivation,this.Et);else if(!0===L.disableErrorBoundaries)t=this.derivation.call(this.Et);else try{t=this.derivation.call(this.Et)}catch(e){t=new Bn(e)}return ze(n),this.isComputing=!1,t},n.X=function(){this.Nt||(Ue(this),this.Ot=void 0)},n._t=function(e,t){var n=this,r=!0,i=void 0;return lt((function(){var a=n.get();if(!r||t){var o=Ge();e({observableKind:`computed`,debugObjectName:n.tt,type:cr,object:n,newValue:a,oldValue:i}),Ke(o)}r=!1,i=a}))},n.Tt=function(){},n.toString=function(){return this.tt+`[`+this.derivation.toString()+`]`},n.valueOf=function(){return h(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},S(e,[{key:`isComputing`,get:function(){return _(this.bt,e.It)},set:function(t){this.bt=v(this.bt,e.It,t)}},{key:`isRunningSetter`,get:function(){return _(this.bt,e.Lt)},set:function(t){this.bt=v(this.bt,e.Lt,t)}},{key:`isBeingObserved`,get:function(){return _(this.bt,e.pt)},set:function(t){this.bt=v(this.bt,e.pt,t)}},{key:`isPendingUnobservation`,get:function(){return _(this.bt,e.yt)},set:function(t){this.bt=v(this.bt,e.yt,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();Rn.It=1,Rn.Lt=2,Rn.pt=4,Rn.yt=8,Rn.wt=16;var F,zn,I=f(`ComputedValue`,Rn);(function(e){e[e.P=-1]=`NOT_TRACKING_`,e[e.L=0]=`UP_TO_DATE_`,e[e.B=1]=`POSSIBLY_STALE_`,e[e.K=2]=`STALE_`})(F||={}),function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`}(zn||={});var Bn=function(e){this.cause=void 0,this.cause=e},Vn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],Hn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},Un=!0,Wn=!1,L=function(){var e=n();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Un=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new Hn().version&&(Un=!1),Un?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Hn):(setTimeout((function(){Wn||t(35)}),1),new Hn)}(),Gn=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction`),this.tt=void 0,this.Pt=void 0,this.Kt=void 0,this.Bt=void 0,this.D=[],this.W=[],this.I=F.P,this.q=0,this.G=0,this.bt=0,this.Mt=zn.NONE,this.tt=e,this.Pt=t,this.Kt=n,this.Bt=r}var t=e.prototype;return t.H=function(){this.Y()},t.Y=function(){this.isScheduled||(this.isScheduled=!0,L.pendingReactions.push(this),rt())},t.J=function(){if(!this.isDisposed){$e(),this.isScheduled=!1;var e=L.trackingContext;if(L.trackingContext=this,Ve(this)){this.isTrackPending=!0;try{this.Pt()}catch(e){this.Dt(e)}}L.trackingContext=e,et()}},t.track=function(e){if(!this.isDisposed){$e(),this.isRunning=!0;var t=L.trackingContext;L.trackingContext=this;var n=He(this,e,void 0);L.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Ue(this),Be(n)&&this.Dt(n.cause),et()}},t.Dt=function(e){var t=this;if(this.Kt)this.Kt(e,this);else{if(L.disableErrorBoundaries)throw e;L.suppressReactionErrors||console.error(`[mobx] uncaught error in '`+this+`'`,e),L.globalReactionErrorHandlers.forEach((function(n){return n(e,t)}))}},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||($e(),Ue(this),et()))},t.Z=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[N]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.tt+`]`},t.trace=function(){},S(e,[{key:`isDisposed`,get:function(){return _(this.bt,e.Wt)},set:function(t){this.bt=v(this.bt,e.Wt,t)}},{key:`isScheduled`,get:function(){return _(this.bt,e.qt)},set:function(t){this.bt=v(this.bt,e.qt,t)}},{key:`isTrackPending`,get:function(){return _(this.bt,e.Gt)},set:function(t){this.bt=v(this.bt,e.Gt,t)}},{key:`isRunning`,get:function(){return _(this.bt,e.Ht)},set:function(t){this.bt=v(this.bt,e.Ht,t)}},{key:`diffValue`,get:function(){return+!!_(this.bt,e.wt)},set:function(t){this.bt=v(this.bt,e.wt,t===1)}}])}();Gn.Wt=1,Gn.qt=2,Gn.Gt=4,Gn.Ht=8,Gn.wt=16;var Kn=function(e){return e()},qn=f(`Reaction`,Gn),Jn=E(`action`),Yn=E(`action.bound`,{bound:!0}),Xn=E(`autoAction`,{autoAction:!0}),Zn=E(`autoAction.bound`,{autoAction:!0,bound:!0}),Qn=ot(!1);Object.assign(Qn,Jn);var $n=ot(!0);Object.assign($n,Xn),Qn.bound=T(Yn),$n.bound=T(Zn);var er=function(e){return e()},tr=0,nr=function(e){function t(){var n;return n=e.call(this,`FLOW_CANCELLED`)||this,Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}return ne(t,e),t.prototype.toString=function(){return`Error: `+this.message},t}(w(Error)),rr=he(`flow`),ir=he(`flow.bound`,{bound:!0}),ar=Object.assign((function(e,t){if(se(t))return rr.t(e,t);if(o(t))return oe(e,t,rr);var n=e,r=n.name||`<unnamed flow>`,i=function(){var e,t=this,i=arguments,o=++tr,s=Qn(r+` - runid: `+o+` - init`,n).apply(t,i),c=void 0,l=new Promise((function(t,n){function i(e){var t;c=void 0;try{t=Qn(r+` - runid: `+o+` - yield `+ d++,s.next).call(s,e)}catch(e){return n(e)}u(t)}function l(e){var t;c=void 0;try{t=Qn(r+` - runid: `+o+` - yield `+ d++,s.throw).call(s,e)}catch(e){return n(e)}u(t)}function u(e){if(!a(e?.then))return e.done?t(e.value):(c=Promise.resolve(e.value)).then(i,l);e.then(u,n)}var d=0;e=n,i(void 0)}));return l.cancel=Qn(r+` - runid: `+o+` - cancel`,(function(){try{c&&_t(c);var t=s.return(void 0),n=Promise.resolve(t.value);n.then(fn,fn),_t(n),e(new nr)}catch(t){e(t)}})),l};return i.isMobXFlow=!0,i}),rr);ar.bound=T(ir);var or={has:function(e,t){return kt(e).it(t)},get:function(e,t){return kt(e).ct(t)},set:function(e,t,n){var r;return!!o(t)&&((r=kt(e).ht(t,n,!0))==null||r)},deleteProperty:function(e,t){var n;return!!o(t)&&((n=kt(e).Ut(t,!0))==null||n)},defineProperty:function(e,t,n){var r;return(r=kt(e).l(t,n))==null||r},ownKeys:function(e){return kt(e).rt()},preventExtensions:function(){t(13)}},sr=Symbol(`mobx-keys`),cr=`update`,lr={get:function(e,t){var n=e[N];return t===N?n:t===`length`?n.Ft():typeof t!=`string`||isNaN(t)?g(dr,t)?dr[t]:e[t]:n.ct(parseInt(t))},set:function(e,t,n){var r=e[N];return t===`length`&&r.Xt(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.ht(parseInt(t),n),!0},preventExtensions:function(){t(15)}},ur=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray`),this.zt=void 0,this.$t=void 0,this.st=void 0,this.j=[],this.et=void 0,this.ut=void 0,this.Jt=void 0,this.dehancer=void 0,this.v=void 0,this.Yt=0,this.zt=n,this.$t=r,this.st=new _n(e),this.Jt=function(e,n){return t(e,n,`ObservableArray[..]`)}}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.ft=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},n.St=function(e){return jt(this,e)},n._t=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:0,added:this.j.slice(),addedCount:this.j.length,removed:[],removedCount:0}),k(this,e)},n.Ft=function(){return this.st.reportObserved(),this.j.length},n.Xt=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&t(`Out of range: `+e);var n=this.j.length;if(e!==n)if(e>n){for(var r=Array(e-n),i=0;i<e-n;i++)r[i]=void 0;this.ot(n,0,r)}else this.ot(e,n-e)},n.Zt=function(e,n){e!==this.Yt&&t(16),this.Yt+=n,this.$t&&n>0&&qt(e+n+1)},n.ot=function(e,t,n){var r=this,i=this.j.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=cn),At(this)){var a=Mt(this,{object:this.v,type:`splice`,index:e,removedCount:t,added:n});if(!a)return cn;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map((function(e){return r.Jt(e,void 0)})),this.$t){var o=n.length-t;this.Zt(i,o)}var s=this.tn(e,t,n);return t===0&&n.length===0||this.nn(e,n,s),this.ft(s)},n.tn=function(e,t,n){var r;if(n.length<1e4)return(r=this.j).splice.apply(r,[e,t].concat(n));var i=this.j.slice(e,e+t),a=this.j.slice(e+t);this.j.length+=n.length-t;for(var o=0;o<n.length;o++)this.j[e+o]=n[o];for(var s=0;s<a.length;s++)this.j[e+n.length+s]=a[s];return i},n.in=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,type:cr,debugObjectName:this.st.tt,index:e,newValue:t,oldValue:n}:null;this.st.reportChanged(),i&&Pt(this,a)},n.nn=function(e,t,n){var r=!this.zt&&!1,i=Nt(this),a=i||r?{observableKind:`array`,object:this.v,debugObjectName:this.st.tt,type:`splice`,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.st.reportChanged(),i&&Pt(this,a)},n.ct=function(e){if(!(this.$t&&e>=this.j.length))return this.st.reportObserved(),this.Qt(this.j[e]);console.warn(`[mobx] Out of bounds read: `+e)},n.ht=function(e,n){var r=this.j;if(this.$t&&e>r.length&&t(17,e,r.length),e<r.length){var i=r[e];if(At(this)){var a=Mt(this,{type:cr,object:this.v,index:e,newValue:n});if(!a)return;n=a.newValue}(n=this.Jt(n,i))!==i&&(r[e]=n,this.in(e,n,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=n,this.ot(r.length,0,o)}},e}(),dr={clear:function(){return this.splice(0)},replace:function(e){var t=this[N];return t.ot(0,t.j.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[N];switch(arguments.length){case 0:return[];case 1:return r.ot(e);case 2:return r.ot(e,t)}return r.ot(e,t,n)},spliceWithArray:function(e,t,n){return this[N].ot(e,t,n)},push:function(){for(var e=this[N],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(e.j.length,0,n),e.j.length},pop:function(){return this.splice(Math.max(this[N].j.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){for(var e=this[N],t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.ot(0,0,n),e.j.length},reverse:function(){return L.trackingDerivation&&t(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){L.trackingDerivation&&t(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[N],n=t.ft(t.j).indexOf(e);return n>-1&&(this.splice(n,1),!0)}};A(`at`,It),A(`concat`,It),A(`flat`,It),A(`includes`,It),A(`indexOf`,It),A(`join`,It),A(`lastIndexOf`,It),A(`slice`,It),A(`toString`,It),A(`toLocaleString`,It),A(`toSorted`,It),A(`toSpliced`,It),A(`with`,It),A(`every`,j),A(`filter`,j),A(`find`,j),A(`findIndex`,j),A(`findLast`,j),A(`findLastIndex`,j),A(`flatMap`,j),A(`forEach`,j),A(`map`,j),A(`some`,j),A(`toReversed`,j),A(`reduce`,Lt),A(`reduceRight`,Lt);var fr,pr,mr=f(`ObservableArrayAdministration`,ur),hr={},gr=`add`,_r=function(){function e(e,n,r){var i=this;n===void 0&&(n=le),r===void 0&&(r=`ObservableMap`),this.Jt=void 0,this.tt=void 0,this[N]=hr,this.vt=void 0,this.dt=void 0,this.lt=void 0,this.et=void 0,this.ut=void 0,this.dehancer=void 0,this.Jt=n,this.tt=r,a(Map)||t(18),Qt((function(){i.lt=ce(`ObservableMap.keys()`),i.vt=new Map,i.dt=new Map,e&&i.merge(e)}))}var n=e.prototype;return n.it=function(e){return this.vt.has(e)},n.has=function(e){var t=this;if(!L.trackingDerivation)return this.it(e);var n=this.dt.get(e);if(!n){var r=n=new In(this.it(e),ue,`ObservableMap.key?`,!1);this.dt.set(e,r),ft(r,(function(){return t.dt.delete(e)}))}return n.get()},n.set=function(e,t){var n=this.it(e);if(At(this)){var r=Mt(this,{type:n?cr:gr,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.rn(e,t):this.en(e,t),this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,name:e}))return!1;if(this.it(e)){var n=Nt(this),r=n?{observableKind:`map`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:this.vt.get(e).Ot,name:e}:null;return Et((function(){var n;t.lt.reportChanged(),(n=t.dt.get(e))==null||n.gt(!1),t.vt.get(e).gt(void 0),t.vt.delete(e)})),n&&Pt(this,r),!0}return!1},n.rn=function(e,t){var n=this.vt.get(e);if((t=n.xt(t))!==L.UNCHANGED){var r=Nt(this),i=r?{observableKind:`map`,debugObjectName:this.tt,type:cr,object:this,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),r&&Pt(this,i)}},n.en=function(e,t){var n=this;Et((function(){var r,i=new In(t,n.Jt,`ObservableMap.key`,!1);n.vt.set(e,i),t=i.Ot,(r=n.dt.get(e))==null||r.gt(!0),n.lt.reportChanged()}));var r=Nt(this);r&&Pt(this,r?{observableKind:`map`,debugObjectName:this.tt,type:gr,object:this,name:e,newValue:t}:null)},n.get=function(e){return this.has(e)?this.Qt(this.vt.get(e).get()):this.Qt(void 0)},n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.keys=function(){return this.lt.reportObserved(),this.vt.keys()},n.values=function(){var e=this,t=this.keys();return zt({next:function(){var n=t.next(),r=n.done;return{done:r,value:r?void 0:e.get(n.value)}}})},n.entries=function(){var e=this,t=this.keys();return zt({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},n[Symbol.iterator]=function(){return this.entries()},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i[1],i[0],this)}},n.merge=function(e){var n=this;return vr(e)&&(e=new Map(e)),Et((function(){var r,i;c(e)?function(e){var t=Object.keys(e);if(!pn)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter((function(t){return sn.propertyIsEnumerable.call(e,t)}))):t}(e).forEach((function(t){return n.set(t,e[t])})):Array.isArray(e)?e.forEach((function(e){return n.set(e[0],e[1])})):p(e)?(r=Object.getPrototypeOf(e),i=Object.getPrototypeOf(r),Object.getPrototypeOf(i)!==null&&t(19,e),e.forEach((function(e,t){return n.set(t,e)}))):e!=null&&t(20,e)})),this},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.keys());!(t=n()).done;)e.delete(t.value)}))}))},n.replace=function(e){var n=this;return Et((function(){for(var r,i=function(e){if(p(e)||vr(e))return e;if(Array.isArray(e))return new Map(e);if(c(e)){var n=new Map;for(var r in e)n.set(r,e[r]);return n}return t(21,e)}(e),a=new Map,o=!1,s=C(n.vt.keys());!(r=s()).done;){var l=r.value;if(!i.has(l))if(n.delete(l))o=!0;else{var u=n.vt.get(l);a.set(l,u)}}for(var d,f=C(i.entries());!(d=f()).done;){var m=d.value,h=m[0],g=m[1],_=n.vt.has(h);if(n.set(h,g),n.vt.has(h)){var v=n.vt.get(h);a.set(h,v),_||(o=!0)}}if(!o)if(n.vt.size!==a.size)n.lt.reportChanged();else for(var y=n.vt.keys(),b=a.keys(),x=y.next(),S=b.next();!x.done;){if(x.value!==S.value){n.lt.reportChanged();break}x=y.next(),S=b.next()}n.vt=a})),this},n.toString=function(){return`[object ObservableMap]`},n.toJSON=function(){return Array.from(this)},n._t=function(e){return k(this,e)},n.St=function(e){return jt(this,e)},S(e,[{key:`size`,get:function(){return this.lt.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),vr=f(`ObservableMap`,_r),yr={},br=function(){function e(e,n,r){var i=this;n===void 0&&(n=le),r===void 0&&(r=`ObservableSet`),this.tt=void 0,this[N]=yr,this.vt=new Set,this.st=void 0,this.ut=void 0,this.et=void 0,this.dehancer=void 0,this.Jt=void 0,this.tt=r,a(Set)||t(22),this.Jt=function(e,t){return n(e,t,r)},Qt((function(){i.st=ce(i.tt),e&&i.replace(e)}))}var n=e.prototype;return n.Qt=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.clear=function(){var e=this;Et((function(){We((function(){for(var t,n=C(e.vt.values());!(t=n()).done;)e.delete(t.value)}))}))},n.forEach=function(e,t){for(var n,r=C(this);!(n=r()).done;){var i=n.value;e.call(t,i,i,this)}},n.add=function(e){var t=this;if(At(this)){var n=Mt(this,{type:gr,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){Et((function(){t.vt.add(t.Jt(e,void 0)),t.st.reportChanged()}));var r=Nt(this);r&&Pt(this,r?{observableKind:`set`,debugObjectName:this.tt,type:gr,object:this,newValue:e}:null)}return this},n.delete=function(e){var t=this;if(At(this)&&!Mt(this,{type:`delete`,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Nt(this),r=n?{observableKind:`set`,debugObjectName:this.tt,type:`delete`,object:this,oldValue:e}:null;return Et((function(){t.st.reportChanged(),t.vt.delete(e)})),n&&Pt(this,r),!0}return!1},n.has=function(e){return this.st.reportObserved(),this.vt.has(this.Qt(e))},n.entries=function(){var e=this.values();return Bt({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},n.keys=function(){return this.values()},n.values=function(){this.st.reportObserved();var e=this,t=this.vt.values();return Bt({next:function(){var n=t.next(),r=n.done;return r?{value:void 0,done:r}:{value:e.Qt(n.value),done:r}}})},n.intersection=function(e){return m(e)&&!xr(e)?e.intersection(this):new Set(this).intersection(e)},n.union=function(e){return m(e)&&!xr(e)?e.union(this):new Set(this).union(e)},n.difference=function(e){return new Set(this).difference(e)},n.symmetricDifference=function(e){return m(e)&&!xr(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},n.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},n.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},n.isDisjointFrom=function(e){return m(e)&&!xr(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},n.replace=function(e){var n=this;return xr(e)&&(e=new Set(e)),Et((function(){Array.isArray(e)||m(e)?(n.clear(),e.forEach((function(e){return n.add(e)}))):e!=null&&t(`Cannot initialize set from `+e)})),this},n._t=function(e){return k(this,e)},n.St=function(e){return jt(this,e)},n.toJSON=function(){return Array.from(this)},n.toString=function(){return`[object ObservableSet]`},n[Symbol.iterator]=function(){return this.values()},S(e,[{key:`size`,get:function(){return this.st.reportObserved(),this.vt.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),xr=f(`ObservableSet`,br),Sr=Object.create(null),Cr=function(){function e(e,t,n,r){t===void 0&&(t=new Map),r===void 0&&(r=xn),this.h=void 0,this.j=void 0,this.tt=void 0,this.un=void 0,this.lt=void 0,this.ut=void 0,this.et=void 0,this.v=void 0,this.p=void 0,this.on=void 0,this.sn=void 0,this.h=e,this.j=t,this.tt=n,this.un=r,this.lt=new _n(`ObservableObject.keys`),this.p=c(this.h)}var n=e.prototype;return n.O=function(e){return this.j.get(e).get()},n.S=function(e,t){var n=this.j.get(e);if(n instanceof Rn)return n.set(t),!0;if(At(this)){var r=Mt(this,{type:cr,object:this.v||this.h,name:e,newValue:t});if(!r)return null;t=r.newValue}if((t=n.xt(t))!==L.UNCHANGED){var i=Nt(this),a=i?{type:cr,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,oldValue:n.Ot,name:e,newValue:t}:null;n.gt(t),i&&Pt(this,a)}return!0},n.ct=function(e){return L.trackingDerivation&&!g(this.h,e)&&this.it(e),this.h[e]},n.ht=function(e,t,n){return n===void 0&&(n=!1),g(this.h,e)?this.j.has(e)?this.S(e,t):n?Reflect.set(this.h,e,t):(this.h[e]=t,!0):this.s(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.un,n)},n.it=function(e){if(!L.trackingDerivation)return e in this.h;this.sn||=new Map;var t=this.sn.get(e);return t||(t=new In(e in this.h,ue,`ObservableObject.key?`,!1),this.sn.set(e,t)),t.get()},n.o=function(e,n){if(!0===n&&(n=this.un),!1!==n){if(!(e in this.h)){var r;if((r=this.h[gn])!=null&&r[e])return;t(1,n.i,this.tt+`.`+e.toString())}for(var i=this.h;i&&i!==sn;){var a=an(i,e);if(a){var o=n.o(this,e,a,i);if(o===0)return;if(o===1)break}i=Object.getPrototypeOf(i)}Wt(this,0,e)}},n.s=function(e,t,n,r){if(r===void 0&&(r=!1),!0===n&&(n=this.un),!1===n)return this.l(e,t,r);var i=n.s(this,e,t,r);return i&&Wt(this,0,e),i},n.l=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)){var i=Mt(this,{object:this.v||this.h,name:e,type:gr,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=ee({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.h,e,t))return!1}else on(this.h,e,t);this.fn(e,t.value)}finally{et()}return!0},n.g=function(e,t,n,r){r===void 0&&(r=!1);try{$e();var i=this.Ut(e);if(!i)return i;if(At(this)){var a=Mt(this,{object:this.v||this.h,name:e,type:gr,newValue:t});if(!a)return null;t=a.newValue}var o=Ht(e),s={configurable:!L.safeDescriptors||this.p,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.h,e,s))return!1}else on(this.h,e,s);var c=new In(t,n,`ObservableObject.key`,!1);this.j.set(e,c),this.fn(e,c.Ot)}finally{et()}return!0},n.m=function(e,t,n){n===void 0&&(n=!1);try{$e();var r=this.Ut(e);if(!r)return r;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:gr,newValue:void 0}))return null;t.name||=`ObservableObject.key`,t.context=this.v||this.h;var i=Ht(e),a={configurable:!L.safeDescriptors||this.p,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.h,e,a))return!1}else on(this.h,e,a);this.j.set(e,new Rn(t)),this.fn(e,void 0)}finally{et()}return!0},n.Ut=function(e,t){if(t===void 0&&(t=!1),!g(this.h,e))return!0;if(At(this)&&!Mt(this,{object:this.v||this.h,name:e,type:`remove`}))return null;try{var n;$e();var r=Nt(this),i=this.j.get(e),a=void 0;if(!i&&r&&(a=an(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 In&&(a=i.Ot),nt(i)),this.lt.reportChanged(),(n=this.sn)==null||(n=n.get(e))==null||n.set(e in this.h),r&&r&&Pt(this,{type:`remove`,observableKind:`object`,object:this.v||this.h,debugObjectName:this.tt,oldValue:a,name:e})}finally{et()}return!0},n._t=function(e){return k(this,e)},n.St=function(e){return jt(this,e)},n.fn=function(e,t){var n,r=Nt(this);r&&r&&Pt(this,r?{type:gr,observableKind:`object`,debugObjectName:this.tt,object:this.v||this.h,name:e,newValue:t}:null),(n=this.sn)==null||(n=n.get(e))==null||n.set(!0),this.lt.reportChanged()},n.rt=function(){return this.lt.reportObserved(),mn(this.h)},n.nt=function(){return this.lt.reportObserved(),Object.keys(this.h)},e}(),wr=f(`ObservableObjectAdministration`,Cr),Tr=Gt(0),Er=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,!1===e}(),Dr=0,Or=function(){};fr=Or,pr=Array.prototype,Object.setPrototypeOf?Object.setPrototypeOf(fr.prototype,pr):fr.prototype.__proto__===void 0?fr.prototype=pr:fr.prototype.__proto__=pr;var kr=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray`),i===void 0&&(i=!1),a=e.call(this)||this,Qt((function(){var e=new ur(r,n,i,!0);e.v=a,d(a,N,e),t&&t.length&&a.spliceWithArray(0,0,t),Er&&Object.defineProperty(a,`0`,Tr)})),a}ne(t,e);var n=t.prototype;return n.concat=function(){this[N].st.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map((function(e){return Rt(e)?e.slice():e})))},n[Symbol.iterator]=function(){var e=this,t=0;return tn({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},S(t,[{key:`length`,get:function(){return this[N].Ft()},set:function(e){this[N].Xt(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(Or);Object.entries(dr).forEach((function(e){var t=e[0];t!==`concat`&&u(kr.prototype,t,e[1])})),qt(1e3);var Ar=sn.toString,jr=n().Iterator?.prototype||{};[`Symbol`,`Map`,`Set`].forEach((function(e){n()[e]===void 0&&t(`MobX requires global '`+e+`' to be available or polyfilled`)})),typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:at,extras:{getDebugName:Zt},$mobx:N}),e.$mobx=N,e.FlowCancellationError=nr,e.ObservableMap=_r,e.ObservableSet=br,e.Reaction=Gn,e._allowStateChanges=Le,e._allowStateChangesInsideComputed=st,e._allowStateReadsEnd=Je,e._allowStateReadsStart=qe,e._autoAction=$n,e._endAction=Ie,e._getAdministration=Xt,e._getGlobalState=function(){return L},e._interceptReads=function(e,t,n){var r;return vr(e)||Rt(e)||Ln(e)?r=Xt(e):Ut(e)&&(r=Xt(e,t)),r.dehancer=typeof t==`function`?t:n,function(){r.dehancer=void 0}},e._isComputingDerivation=function(){return L.trackingDerivation!==null},e._resetGlobalState=function(){var e=new Hn;for(var t in e)Vn.indexOf(t)===-1&&(L[t]=e[t]);L.allowStateChanges=!L.enforceActions},e._startAction=Fe,e.action=Qn,e.autorun=lt,e.comparer=yn,e.computed=jn,e.configure=function(e){!0===e.isolateGlobalState&&function(){if((L.pendingReactions.length||L.inBatch||L.isRunningReactions)&&t(36),Wn=!0,Un){var e=n();--e.__mobxInstanceCount==0&&(e.__mobxGlobals=void 0),L=new Hn}}();var r,i,a=e.useProxies,o=e.enforceActions;if(a!==void 0&&(L.useProxies=a===`always`||a!==`never`&&typeof Proxy<`u`),a===`ifavailable`&&(L.verifyProxies=!0),o!==void 0){var s=o===`always`?`always`:o===`observed`;L.enforceActions=s,L.allowStateChanges=!0!==s&&s!==`always`}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach((function(t){t in e&&(L[t]=!!e[t])})),L.allowStateReads=!L.observableRequiresReaction,e.reactionScheduler&&(r=e.reactionScheduler,i=Kn,Kn=function(e){return r((function(){return i(e)}))})},e.createAtom=ce,e.defineProperty=function(e,n,r){if(Ut(e))return e[N].l(n,r);t(39)},e.entries=function(e){return Ut(e)?St(e).map((function(t){return[t,e[t]]})):vr(e)?St(e).map((function(t){return[t,e.get(t)]})):xr(e)?Array.from(e.entries()):Rt(e)?e.map((function(e,t){return[t,e]})):void t(7)},e.extendObservable=mt,e.flow=ar,e.flowResult=function(e){return e},e.get=function(e,n){if(Ct(e,n))return Ut(e)?e[N].ct(n):vr(e)?e.get(n):Rt(e)?e[n]:void t(11)},e.getAtom=Yt,e.getDebugName=Zt,e.getDependencyTree=function(e,t){return ht(Yt(e,t))},e.getObserverTree=function(e,t){return gt(Yt(e,t))},e.has=Ct,e.intercept=function(e,t,n){return a(n)?function(e,t,n){return Xt(e,t).St(n)}(e,t,n):function(e,t){return Xt(e).St(t)}(e,t)},e.isAction=ct,e.isBoxedObservable=Ln,e.isComputed=function(e){return yt(e)},e.isComputedProp=function(e,t){return yt(e,t)},e.isFlow=vt,e.isFlowCancellationError=function(e){return e instanceof nr},e.isObservable=xt,e.isObservableArray=Rt,e.isObservableMap=vr,e.isObservableObject=Ut,e.isObservableProp=function(e,t){return bt(e,t)},e.isObservableSet=xr,e.keys=St,e.makeAutoObservable=function(e,t,n){return c(e)?mt(e,e,t,n):(Qt((function(){var r=Vt(e,n)[N];if(!e[sr]){var i=Object.getPrototypeOf(e),a=new Set([].concat(mn(e),mn(i)));a.delete(`constructor`),a.delete(N),u(i,sr,a)}e[sr].forEach((function(e){return r.o(e,!t||!(e in t)||t[e])}))})),e)},e.makeObservable=function(e,t,n){return Qt((function(){var r=Vt(e,n)[N];t??=function(e){return g(e,gn)||u(e,gn,ee({},e[gn])),e[gn]}(e),mn(t).forEach((function(e){return r.o(e,t[e])}))})),e},e.observable=On,e.observe=function(e,t,n,r){return a(n)?function(e,t,n,r){return Xt(e,t)._t(n,r)}(e,t,n,r):function(e,t,n){return Xt(e)._t(t,n)}(e,t,n)},e.onBecomeObserved=dt,e.onBecomeUnobserved=ft,e.onReactionError=function(e){return L.globalReactionErrorHandlers.push(e),function(){var t=L.globalReactionErrorHandlers.indexOf(e);t>=0&&L.globalReactionErrorHandlers.splice(t,1)}},e.override=bn,e.ownKeys=wt,e.reaction=function(e,t,n){function r(){if(p=!1,!h.isDisposed){var t=!1,r=s;h.track((function(){var n=Le(!1,(function(){return e(h)}));t=f||!m(s,n),s=n})),(f&&n.fireImmediately||!f&&t)&&l(s,r,h),f=!1}}var i;n===void 0&&(n=ln);var a,o,s,c=n.name??`Reaction`,l=Qn(c,n.onError?(a=n.onError,o=t,function(){try{return o.apply(this,arguments)}catch(e){a.call(this,e)}}):t),u=!n.scheduler&&!n.delay,d=ut(n),f=!0,p=!1,m=n.compareStructural?yn.structural:n.equals||yn.default,h=new Gn(c,(function(){f||u?r():p||(p=!0,d(r))}),n.onError,n.requiresObservable);return(i=n)!=null&&(i=i.signal)!=null&&i.aborted||h.Y(),h.Z(n?.signal)},e.remove=function(e,n){Ut(e)?e[N].Ut(n):vr(e)||xr(e)?e.delete(n):Rt(e)?(typeof n!=`number`&&(n=parseInt(n,10)),e.splice(n,1)):t(9)},e.runInAction=st,e.set=function e(n,r,i){if(arguments.length!==2||xr(n))Ut(n)?n[N].ht(r,i):vr(n)?n.set(r,i):xr(n)?n.add(r):Rt(n)?(typeof r!=`number`&&(r=parseInt(r,10)),r<0&&t(`Invalid index: '`+r+`'`),$e(),r>=n.length&&(n.length=r+1),n[r]=i,et()):t(8);else{$e();var a=r;try{for(var o in a)e(n,o,a[o])}finally{et()}}},e.spy=at,e.toJS=function(e){return function e(t,n){if(typeof t!=`object`||!t||t instanceof Date||!xt(t))return t;if(Ln(t)||I(t))return e(t.get(),n);if(n.has(t))return n.get(t);if(Rt(t)){var r=Tt(n,t,Array(t.length));return t.forEach((function(t,i){r[i]=e(t,n)})),r}if(xr(t)){var i=Tt(n,t,new Set);return t.forEach((function(t){i.add(e(t,n))})),i}if(vr(t)){var a=Tt(n,t,new Map);return t.forEach((function(t,r){a.set(r,e(t,n))})),a}var o=Tt(n,t,{});return wt(t).forEach((function(r){sn.propertyIsEnumerable.call(t,r)&&(o[r]=e(t[r],n))})),o}(e,new Map)},e.trace=function(){},e.transaction=Et,e.untracked=We,e.values=function(e){return Ut(e)?St(e).map((function(t){return e[t]})):vr(e)?St(e).map((function(t){return e.get(t)})):xr(e)?Array.from(e.values()):Rt(e)?e.slice():void t(6)},e.when=function(e,t,n){return arguments.length===1||t&&typeof t==`object`?Ot(e,t):Dt(e,t,n||{})}})),jg=ye((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t={0:`Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'`,1:function(e,t){return`Cannot apply '`+e+`' to '`+t.toString()+`': Field not found.`},5:`'keys()' can only be used on observable objects, arrays, sets and maps`,6:`'values()' can only be used on observable objects, arrays, sets and maps`,7:`'entries()' can only be used on observable objects, arrays and maps`,8:`'set()' can only be used on observable objects, arrays and maps`,9:`'remove()' can only be used on observable objects, arrays and maps`,10:`'has()' can only be used on observable objects, arrays and maps`,11:`'get()' can only be used on observable objects, arrays and maps`,12:`Invalid annotation`,13:`Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,14:`Intercept handlers should return nothing or a change object`,15:`Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)`,16:`Modification exception: the internal structure of an observable array was changed.`,17:function(e,t){return`[mobx.array] Index out of bounds, `+e+` is larger than `+t},18:`mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js`,19:function(e){return`Cannot initialize from classes that inherit from Map: `+e.constructor.name},20:function(e){return`Cannot initialize map from `+e},21:function(e){return`Cannot convert to map from '`+e+`'`},22:`mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js`,23:`It is not possible to get index atoms from arrays`,24:function(e){return`Cannot obtain administration from `+e},25:function(e,t){return`the entry '`+e+`' does not exist in the observable map '`+t+`'`},26:`please specify a property`,27:function(e,t){return`no observable property '`+e.toString()+`' found on the observable object '`+t+`'`},28:function(e){return`Cannot obtain atom from `+e},29:`Expecting some object`,30:`invalid action stack. did you forget to finish an action?`,31:`missing option for computed: get`,32:function(e,t){return`Cycle detected in computation `+e+`: `+t},33:function(e){return`The setter of computed value '`+e+`' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?`},34:function(e){return`[ComputedValue '`+e+`'] It is not possible to assign a new value to a computed value.`},35:"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`",36:`isolateGlobalState should be called before MobX is running any reactions`,37:function(e){return"[mobx] `observableArray."+e+"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice()."+e+"()` instead"},38:`'ownKeys()' can only be used on observable objects`,39:`'defineProperty()' can only be used on observable objects`};function n(e){var n=[...arguments].slice(1),r=typeof e==`string`?e:t[e];throw typeof r==`function`&&(r=r.apply(null,n)),Error(`[MobX] `+r)}var r={};function i(){return typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:r}var a=Object.assign,o=Object.getOwnPropertyDescriptor,s=Object.defineProperty,c=Object.prototype,l=[];Object.freeze(l);var u={};Object.freeze(u);var d=typeof Proxy<`u`,f=Object.toString();function p(){d||n("`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`")}function m(e){P.verifyProxies&&n(`MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to `+e)}function h(){return++P.mobxGuid}function g(e){var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}}var _=function(){};function v(e){return typeof e==`function`}function y(e){switch(typeof e){case`string`:case`symbol`:case`number`:return!0}return!1}function b(e){return typeof e==`object`&&!!e}function x(e){if(!b(e))return!1;var t=Object.getPrototypeOf(e);if(t==null)return!0;var n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n.toString()===f}function S(e){var t=e?.constructor;return t?t.name===`GeneratorFunction`||t.displayName===`GeneratorFunction`:!1}function C(e,t,n){s(e,t,{enumerable:!1,writable:!0,configurable:!0,value:n})}function ee(e,t,n){s(e,t,{enumerable:!1,writable:!1,configurable:!0,value:n})}function te(e,t){var n=`isMobX`+e;return t.prototype[n]=!0,function(e){return b(e)&&e[n]===!0}}function ne(e){return e!=null&&Object.prototype.toString.call(e)===`[object Map]`}function re(e){return Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(e)))===null}function ie(e){return e!=null&&Object.prototype.toString.call(e)===`[object Set]`}var ae=Object.getOwnPropertySymbols!==void 0;function w(e){var t=Object.keys(e);if(!ae)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter(function(t){return c.propertyIsEnumerable.call(e,t)})):t}var T=typeof Reflect<`u`&&Reflect.ownKeys?Reflect.ownKeys:ae?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function oe(e){return typeof e==`string`?e:typeof e==`symbol`?e.toString():new String(e).toString()}function se(e){return e===null?null:typeof e==`object`?``+e:e}function ce(e,t){return c.hasOwnProperty.call(e,t)}var le=Object.getOwnPropertyDescriptors||function(e){var t={};return T(e).forEach(function(n){t[n]=o(e,n)}),t};function ue(e,t){return!!(e&t)}function E(e,t,n){return n?e|=t:e&=~t,e}function de(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function fe(e,t,n){if(be())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&xe(i,n.prototype),i}function pe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,Se(r.key),r)}}function me(e,t,n){return t&&pe(e.prototype,t),n&&pe(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function he(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=Ce(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
59
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ge(){return ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ge.apply(null,arguments)}function _e(e){return _e=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_e(e)}function ve(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,xe(e,t)}function ye(e){try{return Function.toString.call(e).indexOf(`[native code]`)!==-1}catch{return typeof e==`function`}}function be(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(be=function(){return!!e})()}function xe(e,t){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xe(e,t)}function D(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Se(e){var t=D(e,`string`);return typeof t==`symbol`?t:t+``}function Ce(e,t){if(e){if(typeof e==`string`)return de(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?de(e,t):void 0}}function we(e){var t=typeof Map==`function`?new Map:void 0;return we=function(e){if(e===null||!ye(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return fe(e,arguments,_e(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),xe(n,e)},we(e)}var Te=Symbol(`mobx-stored-annotations`);function Ee(e){function t(t,n){if(Ae(n))return e.decorate_20223_(t,n);De(t,n,e)}return Object.assign(t,e)}function De(e,t,r){ce(e,Te)||C(e,Te,ge({},e[Te])),Ke(r)&&!ce(e[Te],t)&&n(`'`+(e.constructor.name+`.prototype.`+t.toString())+`' is decorated with 'override', but no such decorated member was found on prototype.`),Oe(e,r,t),Ke(r)||(e[Te][t]=r)}function Oe(e,t,r){if(!Ke(t)&&ce(e[Te],r)){var i=e.constructor.name+`.prototype.`+r.toString(),a=e[Te][r].annotationType_,o=t.annotationType_;n(`Cannot apply '@`+o+`' to '`+i+`':`+(`
|
|
60
60
|
The field is already decorated with '@`+a+`'.`)+`
|
|
61
61
|
Re-decorating fields is not allowed.
|
|
62
|
-
Use '@override' decorator for methods overridden by subclass.`)}}function ke(e){return
|
|
63
|
-
'`+this.annotationType_+`' cannot be used on plain objects.`)),
|
|
62
|
+
Use '@override' decorator for methods overridden by subclass.`)}}function ke(e){return ce(e,Te)||C(e,Te,ge({},e[Te])),e[Te]}function Ae(e){return typeof e==`object`&&typeof e.kind==`string`}function je(e,t){t.includes(e.kind)||n(`The decorator applied to '`+String(e.name)+`' cannot be used on a `+e.kind+` element`)}var O=Symbol(`mobx administration`),Me=function(){function e(e){e===void 0&&(e=`Atom@`+h()),this.name_=void 0,this.flags_=0,this.observers_=new Set,this.lastAccessedBy_=0,this.lowestObserverState_=M.NOT_TRACKING_,this.onBOL=void 0,this.onBUOL=void 0,this.name_=e}var t=e.prototype;return t.onBO=function(){this.onBOL&&this.onBOL.forEach(function(e){return e()})},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach(function(e){return e()})},t.reportObserved=function(){return Fn(this)},t.reportChanged=function(){Nn(),In(this),Pn()},t.toString=function(){return this.name_},me(e,[{key:`isBeingObserved`,get:function(){return ue(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=E(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return ue(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=E(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=E(this.flags_,e.diffValueMask_,t===1)}}])}();Me.isBeingObservedMask_=1,Me.isPendingUnobservationMask_=2,Me.diffValueMask_=4;var Ne=te(`Atom`,Me);function Pe(e,t,n){t===void 0&&(t=_),n===void 0&&(n=_);var r=new Me(e);return t!==_&&yr(r,t),n!==_&&br(r,n),r}function Fe(e,t){return e===t}function Ie(e,t){return xa(e,t)}function Le(e,t){return xa(e,t,1)}function Re(e,t){return Object.is?Object.is(e,t):e===t?e!==0||1/e==1/t:e!==e&&t!==t}var ze={identity:Fe,structural:Ie,default:Re,shallow:Le};function Be(e,t,n){return Yr(e)?e:Array.isArray(e)?j.array(e,{name:n}):x(e)?j.object(e,void 0,{name:n}):ne(e)?j.map(e,{name:n}):ie(e)?j.set(e,{name:n}):typeof e==`function`&&!dr(e)&&!Br(e)?S(e)?Lr(e):lr(n,e):e}function Ve(e,t,r){if(e==null||ra(e)||zi(e)||Wi(e)||Yi(e))return e;if(Array.isArray(e))return j.array(e,{name:r,deep:!1});if(x(e))return j.object(e,void 0,{name:r,deep:!1});if(ne(e))return j.map(e,{name:r,deep:!1});if(ie(e))return j.set(e,{name:r,deep:!1});n(`The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets`)}function He(e){return e}function Ue(e,t){return Yr(e)&&n(`observable.struct should not be used with observable values`),xa(e,t)?t:e}var We=`override`,Ge=Ee({annotationType_:We,make_:qe,extend_:Je,decorate_20223_:Ye});function Ke(e){return e.annotationType_===We}function qe(e,t){return e.isPlainObject_&&n(`Cannot apply '`+this.annotationType_+`' to '`+e.name_+`.`+t.toString()+`':`+(`
|
|
63
|
+
'`+this.annotationType_+`' cannot be used on plain objects.`)),ce(e.appliedAnnotations_,t)||n(`'`+e.name_+`.`+t.toString()+`' is annotated with '`+this.annotationType_+`', but no such annotated member was found on prototype.`),0}function Je(e,t,r,i){n(`'`+this.annotationType_+`' can only be used with 'makeObservable'`)}function Ye(e,t){console.warn(`'`+this.annotationType_+`' cannot be used with decorators - this is a no-op`)}function Xe(e,t){return{annotationType_:e,options_:t,make_:Ze,extend_:Qe,decorate_20223_:$e}}function Ze(e,t,n,r){var i;return(i=this.options_)!=null&&i.bound?this.extend_(e,t,n,!1)===null?0:1:r===e.target_?this.extend_(e,t,n,!1)===null?0:2:dr(n.value)?1:(s(r,t,tt(e,this,t,n,!1)),2)}function Qe(e,t,n,r){var i=tt(e,this,t,n);return e.defineProperty_(t,i,r)}function $e(e,t){je(t,[`method`,`field`]);var r=t.kind,i=t.name,a=t.addInitializer,o=this,s=function(e){return Kt(o.options_?.name??i.toString(),e,o.options_?.autoAction??!1)};if(r==`field`)return function(e){var t,n=e;return dr(n)||(n=s(n)),(t=o.options_)!=null&&t.bound&&(n=n.bind(this),n.isMobxAction=!0),n};if(r==`method`){var c;return dr(e)||(e=s(e)),(c=this.options_)!=null&&c.bound&&a(function(){var e=this,t=e[i].bind(e);t.isMobxAction=!0,e[i]=t}),e}n(`Cannot apply '`+o.annotationType_+`' to '`+String(i)+`' (kind: `+r+`):`+(`
|
|
64
64
|
'`+o.annotationType_+`' can only be used on properties with a function value.`))}function et(e,t,r,i){var a=t.annotationType_,o=i.value;v(o)||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
65
|
-
'`+a+`' can only be used on properties with a function value.`))}function tt(e,t,n,r,i){var a,o;i===void 0&&(i=P.safeDescriptors),et(e,t,n,r);var s=r.value;return(a=t.options_)!=null&&a.bound&&(s=s.bind(e.proxy_??e.target_)),{value:Kt(t.options_?.name??n.toString(),s,t.options_?.autoAction??!1,(o=t.options_)!=null&&o.bound?e.proxy_??e.target_:void 0),configurable:i?e.isPlainObject_:!0,enumerable:!1,writable:!i}}function nt(e,t){return{annotationType_:e,options_:t,make_:rt,extend_:it,decorate_20223_:at}}function rt(e,t,n,r){var i;return r===e.target_?this.extend_(e,t,n,!1)===null?0:2:(i=this.options_)!=null&&i.bound&&(!
|
|
65
|
+
'`+a+`' can only be used on properties with a function value.`))}function tt(e,t,n,r,i){var a,o;i===void 0&&(i=P.safeDescriptors),et(e,t,n,r);var s=r.value;return(a=t.options_)!=null&&a.bound&&(s=s.bind(e.proxy_??e.target_)),{value:Kt(t.options_?.name??n.toString(),s,t.options_?.autoAction??!1,(o=t.options_)!=null&&o.bound?e.proxy_??e.target_:void 0),configurable:i?e.isPlainObject_:!0,enumerable:!1,writable:!i}}function nt(e,t){return{annotationType_:e,options_:t,make_:rt,extend_:it,decorate_20223_:at}}function rt(e,t,n,r){var i;return r===e.target_?this.extend_(e,t,n,!1)===null?0:2:(i=this.options_)!=null&&i.bound&&(!ce(e.target_,t)||!Br(e.target_[t]))&&this.extend_(e,t,n,!1)===null?0:Br(n.value)?1:(s(r,t,st(e,this,t,n,!1,!1)),2)}function it(e,t,n,r){var i=st(e,this,t,n,this.options_?.bound);return e.defineProperty_(t,i,r)}function at(e,t){var n;je(t,[`method`]);var r=t.name,i=t.addInitializer;return Br(e)||(e=Lr(e)),(n=this.options_)!=null&&n.bound&&i(function(){var e=this,t=e[r].bind(e);t.isMobXFlow=!0,e[r]=t}),e}function ot(e,t,r,i){var a=t.annotationType_,o=i.value;v(o)||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
66
66
|
'`+a+`' can only be used on properties with a generator function value.`))}function st(e,t,n,r,i,a){a===void 0&&(a=P.safeDescriptors),ot(e,t,n,r);var o=r.value;return Br(o)||(o=Lr(o)),i&&(o=o.bind(e.proxy_??e.target_),o.isMobXFlow=!0),{value:o,configurable:a?e.isPlainObject_:!0,enumerable:!1,writable:!a}}function ct(e,t){return{annotationType_:e,options_:t,make_:lt,extend_:ut,decorate_20223_:dt}}function lt(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function ut(e,t,n,r){return ft(e,this,t,n),e.defineComputedProperty_(t,ge({},this.options_,{get:n.get,set:n.set}),r)}function dt(e,t){je(t,[`getter`]);var n=this,r=t.name,i=t.addInitializer;return i(function(){var t=ea(this)[O],i=ge({},n.options_,{get:e,context:this});i.name||=t.name_+`.`+r.toString(),t.values_.set(r,new nn(i))}),function(){return this[O].getObservablePropValue_(r)}}function ft(e,t,r,i){var a=t.annotationType_;i.get||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
67
67
|
'`+a+`' can only be used on getter(+setter) properties.`))}function pt(e,t){return{annotationType_:e,options_:t,make_:mt,extend_:ht,decorate_20223_:gt}}function mt(e,t,n){return this.extend_(e,t,n,!1)===null?0:1}function ht(e,t,n,r){return _t(e,this,t,n),e.defineObservableProperty_(t,n.value,this.options_?.enhancer??Be,r)}function gt(e,t){if(t.kind===`field`)throw n("Please use `@observable accessor "+String(t.name)+"` instead of `@observable "+String(t.name)+"`");je(t,[`accessor`]);var r=this,i=t.kind,a=t.name,o=new WeakSet;function s(e,t){var n=ea(e)[O],i=new en(t,r.options_?.enhancer??Be,n.name_+`.`+a.toString(),!1);n.values_.set(a,i),o.add(e)}if(i==`accessor`)return{get:function(){return o.has(this)||s(this,e.get.call(this)),this[O].getObservablePropValue_(a)},set:function(e){return o.has(this)||s(this,e),this[O].setObservablePropValue_(a,e)},init:function(e){return o.has(this)||s(this,e),e}}}function _t(e,t,r,i){var a=t.annotationType_;`value`in i||n(`Cannot apply '`+a+`' to '`+e.name_+`.`+r.toString()+`':`+(`
|
|
68
|
-
'`+a+`' cannot be used on getter/setter properties`))}var vt=`true`,yt=bt();function bt(e){return{annotationType_:vt,options_:e,make_:xt,extend_:St,decorate_20223_:Ct}}function xt(e,t,n,r){var i;if(n.get)return Vt.make_(e,t,n,r);if(n.set){var a=dr(n.set)?n.set:Kt(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:P.safeDescriptors?e.isPlainObject_:!0,set:a})===null?0:2:(s(r,t,{configurable:!0,set:a}),2)}if(r!==e.target_&&typeof n.value==`function`){var o;if(S(n.value)){var c;return((c=this.options_)!=null&&c.autoBind?Lr.bound:Lr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?lr.bound:lr).make_(e,t,n,r)}var l=this.options_?.deep===!1?j.ref:j;return typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),l.make_(e,t,n,r)}function St(e,t,n,r){var i;return n.get?Vt.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:P.safeDescriptors?e.isPlainObject_:!0,set:Kt(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?j.ref:j).extend_(e,t,n,r))}function Ct(e,t){n(`'`+this.annotationType_+`' cannot be used as a decorator`)}var wt=`observable`,Tt=`observable.ref`,Et=`observable.shallow`,Dt=`observable.struct`,Ot={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(Ot);function kt(e){return e||Ot}var At=pt(wt),jt=pt(Tt,{enhancer:He}),Mt=pt(Et,{enhancer:Ve}),Nt=pt(Dt,{enhancer:Ue}),k=Ee(At);function Pt(e){return e.deep===!0?Be:e.deep===!1?He:A(e.defaultDecorator)}function Ft(e){return e?e.defaultDecorator??bt(e):void 0}function A(e){return e?e.options_?.enhancer??Be:Be}function It(e,t,n){if(Ae(t))return At.decorate_20223_(e,t);if(y(t)){De(e,t,At);return}return Yr(e)?e:x(e)?j.object(e,t,n):Array.isArray(e)?j.array(e,t):te(e)?j.map(e,t):re(e)?j.set(e,t):typeof e==`object`&&e?e:j.box(e,t)}a(It,k);var j=a(It,{box:function(e,t){var n=kt(t);return new en(e,Pt(n),n.name,!0,n.equals)},array:function(e,t){var n=kt(t);return(P.useProxies===!1||n.proxy===!1?ha:Mi)(e,Pt(n),n.name)},map:function(e,t){var n=kt(t);return new Ui(e,Pt(n),n.name)},set:function(e,t){var n=kt(t);return new Ji(e,Pt(n),n.name)},object:function(e,t,n){return ya(function(){return Er(P.useProxies===!1||n?.proxy===!1?ea({},n):_i({},n),e,t)})},ref:Ee(jt),shallow:Ee(Mt),deep:k,struct:Ee(Nt)}),Lt=`computed`,Rt=`computed.struct`,zt=ct(Lt),Bt=ct(Rt,{equals:ze.structural}),Vt=function(e,t){if(Ae(t))return zt.decorate_20223_(e,t);if(y(t))return De(e,t,zt);if(x(e))return Ee(ct(Lt,e));v(e)||n("First argument to `computed` should be an expression."),v(t)&&n("A setter as second argument is no longer supported, use `{ set: fn }` option instead");var r=x(t)?t:{};return r.get=e,r.name||=e.name||``,new nn(r)};Object.assign(Vt,zt),Vt.struct=Ee(Bt);var Ht=0,Ut=1,Wt=o(function(){},`name`)?.configurable??!1,Gt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function Kt(e,t,r,i){r===void 0&&(r=!1),v(t)||n("`action` can only be invoked on functions"),(typeof e!=`string`||!e)&&n(`actions should have valid names, got: '`+e+`'`);function a(){return qt(e,r,t,i||this,arguments)}return a.isMobxAction=!0,a.toString=function(){return t.toString()},Wt&&(Gt.value=e,s(a,`name`,Gt)),a}function qt(e,t,n,r,i){var a=Jt(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Yt(a)}}function Jt(e,t,n,r){var i=Kn()&&!!e,a=0;i&&(a=Date.now(),Jn({type:Qn,name:e,object:n,arguments:r?Array.from(r):l}));var o=P.trackingDerivation,s=!t||!o;Nn();var c=P.allowStateChanges;s&&(N(),c=Zt(!0));var u=vn(!0),d={runAsAction_:s,prevDerivation_:o,prevAllowStateChanges_:c,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:Ut++,parentActionId_:Ht};return Ht=d.actionId_,d}function Yt(e){Ht!==e.actionId_&&n(30),Ht=e.parentActionId_,e.error_!==void 0&&(P.suppressReactionErrors=!0),Qt(e.prevAllowStateChanges_),yn(e.prevAllowStateReads_),Pn(),e.runAsAction_&&_n(e.prevDerivation_),e.notifySpy_&&Xn({time:Date.now()-e.startTime_}),P.suppressReactionErrors=!1}function Xt(e,t){var n=Zt(e);try{return t()}finally{Qt(n)}}function Zt(e){var t=P.allowStateChanges;return P.allowStateChanges=e,t}function Qt(e){P.allowStateChanges=e}var $t=`create`,en=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue@`+h()),i===void 0&&(i=!0),a===void 0&&(a=ze.default),o=e.call(this,r)||this,o.enhancer=void 0,o.name_=void 0,o.equals=void 0,o.hasUnreportedChange_=!1,o.interceptors_=void 0,o.changeListeners_=void 0,o.value_=void 0,o.dehancer=void 0,o.enhancer=n,o.name_=r,o.equals=a,o.value_=n(t,void 0,r),i&&Kn()&&qn({type:$t,object:o,observableKind:`value`,debugObjectName:o.name_,newValue:``+o.value_?.toString()}),o}ve(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){var t=this.value_;if(e=this.prepareNewValue_(e),e!==P.UNCHANGED){var n=Kn();n&&Jn({type:Oi,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Xn()}},n.prepareNewValue_=function(e){if(un(this),vi(this)){var t=bi(this,{object:this,type:Oi,newValue:e});if(!t)return P.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.value_,this.name_),this.equals(this.value_,e)?P.UNCHANGED:e},n.setNewValue_=function(e){var t=this.value_;this.value_=e,this.reportChanged(),xi(this)&&Ci(this,{type:Oi,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.value_)},n.intercept_=function(e){return yi(this,e)},n.observe_=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.name_,object:this,type:Oi,newValue:this.value_,oldValue:void 0}),Si(this,e)},n.raw=function(){return this.value_},n.toJSON=function(){return this.get()},n.toString=function(){return this.name_+`[`+this.value_+`]`},n.valueOf=function(){return oe(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(Me),tn=w(`ObservableValue`,en),nn=function(){function e(e){this.dependenciesState_=M.NOT_TRACKING_,this.observing_=[],this.newObserving_=null,this.observers_=new Set,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=M.UP_TO_DATE_,this.unboundDepsCount_=0,this.value_=new on(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,this.isTracing_=an.NONE,this.scope_=void 0,this.equals_=void 0,this.requiresReaction_=void 0,this.keepAlive_=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||n(31),this.derivation=e.get,this.name_=e.name||`ComputedValue@`+h(),e.set&&(this.setter_=Kt(this.name_+`-setter`,e.set)),this.equals_=e.equals||(e.compareStructural||e.struct?ze.structural:ze.default),this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}var t=e.prototype;return t.onBecomeStale_=function(){Rn(this)},t.onBO=function(){this.onBOL&&this.onBOL.forEach(function(e){return e()})},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach(function(e){return e()})},t.get=function(){if(this.isComputing&&n(32,this.name_,this.derivation),P.inBatch===0&&this.observers_.size===0&&!this.keepAlive_)cn(this)&&(this.warnAboutUntrackedRead_(),Nn(),this.value_=this.computeValue_(!1),Pn());else if(Fn(this),cn(this)){var e=P.trackingContext;this.keepAlive_&&!e&&(P.trackingContext=this),this.trackAndCompute()&&Ln(this),P.trackingContext=e}var t=this.value_;if(sn(t))throw t.cause;return t},t.set=function(e){if(this.setter_){this.isRunningSetter&&n(33,this.name_),this.isRunningSetter=!0;try{this.setter_.call(this.scope_,e)}finally{this.isRunningSetter=!1}}else n(34,this.name_)},t.trackAndCompute=function(){var e=this.value_,t=this.dependenciesState_===M.NOT_TRACKING_,n=this.computeValue_(!0),r=t||sn(e)||sn(n)||!this.equals_(e,n);return r&&(this.value_=n,Kn()&&qn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r},t.computeValue_=function(e){this.isComputing=!0;var t=Zt(!1),n;if(e)n=fn(this,this.derivation,this.scope_);else if(P.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new on(e)}return Qt(t),this.isComputing=!1,n},t.suspend_=function(){this.keepAlive_||(hn(this),this.value_=void 0,this.isTracing_!==an.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' was suspended and it will recompute on the next access.`))},t.observe_=function(e,t){var n=this,r=!0,i=void 0;return fr(function(){var a=n.get();if(!r||t){var o=N();e({observableKind:`computed`,debugObjectName:n.name_,type:Oi,object:n,newValue:a,oldValue:i}),_n(o)}r=!1,i=a})},t.warnAboutUntrackedRead_=function(){this.isTracing_!==an.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`),(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:P.computedRequiresReaction)&&console.warn(`[mobx] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`)},t.toString=function(){return this.name_+`[`+this.derivation.toString()+`]`},t.valueOf=function(){return oe(this.get())},t[Symbol.toPrimitive]=function(){return this.valueOf()},me(e,[{key:`isComputing`,get:function(){return le(this.flags_,e.isComputingMask_)},set:function(t){this.flags_=ue(this.flags_,e.isComputingMask_,t)}},{key:`isRunningSetter`,get:function(){return le(this.flags_,e.isRunningSetterMask_)},set:function(t){this.flags_=ue(this.flags_,e.isRunningSetterMask_,t)}},{key:`isBeingObserved`,get:function(){return le(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return le(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=ue(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();nn.isComputingMask_=1,nn.isRunningSetterMask_=2,nn.isBeingObservedMask_=4,nn.isPendingUnobservationMask_=8,nn.diffValueMask_=16;var rn=w(`ComputedValue`,nn),M;(function(e){e[e.NOT_TRACKING_=-1]=`NOT_TRACKING_`,e[e.UP_TO_DATE_=0]=`UP_TO_DATE_`,e[e.POSSIBLY_STALE_=1]=`POSSIBLY_STALE_`,e[e.STALE_=2]=`STALE_`})(M||={});var an;(function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`})(an||={});var on=function(e){this.cause=void 0,this.cause=e};function sn(e){return e instanceof on}function cn(e){switch(e.dependenciesState_){case M.UP_TO_DATE_:return!1;case M.NOT_TRACKING_:case M.STALE_:return!0;case M.POSSIBLY_STALE_:for(var t=vn(!0),n=N(),r=e.observing_,i=r.length,a=0;a<i;a++){var o=r[a];if(rn(o)){if(P.disableErrorBoundaries)o.get();else try{o.get()}catch{return _n(n),yn(t),!0}if(e.dependenciesState_===M.STALE_)return _n(n),yn(t),!0}}return bn(e),_n(n),yn(t),!1}}function ln(){return P.trackingDerivation!==null}function un(e){var t=e.observers_.size>0;!P.allowStateChanges&&(t||P.enforceActions===`always`)&&console.warn(`[MobX] `+(P.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 dn(e){!P.allowStateReads&&P.observableRequiresReaction&&console.warn(`[mobx] Observable '`+e.name_+`' being read outside a reactive context.`)}function fn(e,t,n){var r=vn(!0);bn(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++P.runId;var i=P.trackingDerivation;P.trackingDerivation=e,P.inBatch++;var a;if(P.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new on(e)}return P.inBatch--,P.trackingDerivation=i,mn(e),pn(e),yn(r),a}function pn(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:P.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '`+e.name_+`' is created/updated without reading any observable value.`)}function mn(e){for(var t=e.observing_,n=e.observing_=e.newObserving_,r=M.UP_TO_DATE_,i=0,a=e.unboundDepsCount_,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.dependenciesState_>r&&(r=s.dependenciesState_)}for(n.length=i,e.newObserving_=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&jn(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,An(l,e))}r!==M.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}function hn(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)jn(t[n],e);e.dependenciesState_=M.NOT_TRACKING_}function gn(e){var t=N();try{return e()}finally{_n(t)}}function N(){var e=P.trackingDerivation;return P.trackingDerivation=null,e}function _n(e){P.trackingDerivation=e}function vn(e){var t=P.allowStateReads;return P.allowStateReads=e,t}function yn(e){P.allowStateReads=e}function bn(e){if(e.dependenciesState_!==M.UP_TO_DATE_){e.dependenciesState_=M.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=M.UP_TO_DATE_}}var xn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],Sn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},Cn=!0,wn=!1,P=function(){var e=i();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Cn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new Sn().version&&(Cn=!1),Cn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Sn):(setTimeout(function(){wn||n(35)},1),new Sn)}();function Tn(){if((P.pendingReactions.length||P.inBatch||P.isRunningReactions)&&n(36),wn=!0,Cn){var e=i();--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),P=new Sn}}function En(){return P}function Dn(){var e=new Sn;for(var t in e)xn.indexOf(t)===-1&&(P[t]=e[t]);P.allowStateChanges=!P.enforceActions}function On(e){return e.observers_&&e.observers_.size>0}function kn(e){return e.observers_}function An(e,t){e.observers_.add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function jn(e,t){e.observers_.delete(t),e.observers_.size===0&&Mn(e)}function Mn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,P.pendingUnobservations.push(e))}function Nn(){P.inBatch++}function Pn(){if(--P.inBatch===0){Un();for(var e=P.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.observers_.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof nn&&n.suspend_())}P.pendingUnobservations=[]}}function Fn(e){dn(e);var t=P.trackingDerivation;return t===null?(e.observers_.size===0&&P.inBatch>0&&Mn(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&P.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function In(e){e.lowestObserverState_!==M.STALE_&&(e.lowestObserverState_=M.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===M.UP_TO_DATE_&&(t.isTracing_!==an.NONE&&F(t,e),t.onBecomeStale_()),t.dependenciesState_=M.STALE_}))}function Ln(e){e.lowestObserverState_!==M.STALE_&&(e.lowestObserverState_=M.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===M.POSSIBLY_STALE_?(t.dependenciesState_=M.STALE_,t.isTracing_!==an.NONE&&F(t,e)):t.dependenciesState_===M.UP_TO_DATE_&&(e.lowestObserverState_=M.UP_TO_DATE_)}))}function Rn(e){e.lowestObserverState_===M.UP_TO_DATE_&&(e.lowestObserverState_=M.POSSIBLY_STALE_,e.observers_.forEach(function(e){e.dependenciesState_===M.UP_TO_DATE_&&(e.dependenciesState_=M.POSSIBLY_STALE_,e.onBecomeStale_())}))}function F(e,t){if(console.log(`[mobx.trace] '`+e.name_+`' is invalidated due to a change in: '`+t.name_+`'`),e.isTracing_===an.BREAK){var n=[];zn(Dr(e),n,1),Function(`debugger;
|
|
68
|
+
'`+a+`' cannot be used on getter/setter properties`))}var vt=`true`,yt=bt();function bt(e){return{annotationType_:vt,options_:e,make_:xt,extend_:St,decorate_20223_:Ct}}function xt(e,t,n,r){var i;if(n.get)return Vt.make_(e,t,n,r);if(n.set){var a=dr(n.set)?n.set:Kt(t.toString(),n.set);return r===e.target_?e.defineProperty_(t,{configurable:P.safeDescriptors?e.isPlainObject_:!0,set:a})===null?0:2:(s(r,t,{configurable:!0,set:a}),2)}if(r!==e.target_&&typeof n.value==`function`){var o;if(S(n.value)){var c;return((c=this.options_)!=null&&c.autoBind?Lr.bound:Lr).make_(e,t,n,r)}return((o=this.options_)!=null&&o.autoBind?lr.bound:lr).make_(e,t,n,r)}var l=this.options_?.deep===!1?j.ref:j;return typeof n.value==`function`&&(i=this.options_)!=null&&i.autoBind&&(n.value=n.value.bind(e.proxy_??e.target_)),l.make_(e,t,n,r)}function St(e,t,n,r){var i;return n.get?Vt.extend_(e,t,n,r):n.set?e.defineProperty_(t,{configurable:P.safeDescriptors?e.isPlainObject_:!0,set:Kt(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?j.ref:j).extend_(e,t,n,r))}function Ct(e,t){n(`'`+this.annotationType_+`' cannot be used as a decorator`)}var wt=`observable`,Tt=`observable.ref`,Et=`observable.shallow`,Dt=`observable.struct`,Ot={deep:!0,name:void 0,defaultDecorator:void 0,proxy:!0};Object.freeze(Ot);function kt(e){return e||Ot}var At=pt(wt),jt=pt(Tt,{enhancer:He}),Mt=pt(Et,{enhancer:Ve}),Nt=pt(Dt,{enhancer:Ue}),k=Ee(At);function Pt(e){return e.deep===!0?Be:e.deep===!1?He:A(e.defaultDecorator)}function Ft(e){return e?e.defaultDecorator??bt(e):void 0}function A(e){return e?e.options_?.enhancer??Be:Be}function It(e,t,n){if(Ae(t))return At.decorate_20223_(e,t);if(y(t)){De(e,t,At);return}return Yr(e)?e:x(e)?j.object(e,t,n):Array.isArray(e)?j.array(e,t):ne(e)?j.map(e,t):ie(e)?j.set(e,t):typeof e==`object`&&e?e:j.box(e,t)}a(It,k);var j=a(It,{box:function(e,t){var n=kt(t);return new en(e,Pt(n),n.name,!0,n.equals)},array:function(e,t){var n=kt(t);return(P.useProxies===!1||n.proxy===!1?ha:Mi)(e,Pt(n),n.name)},map:function(e,t){var n=kt(t);return new Ui(e,Pt(n),n.name)},set:function(e,t){var n=kt(t);return new Ji(e,Pt(n),n.name)},object:function(e,t,n){return ya(function(){return Er(P.useProxies===!1||n?.proxy===!1?ea({},n):_i({},n),e,t)})},ref:Ee(jt),shallow:Ee(Mt),deep:k,struct:Ee(Nt)}),Lt=`computed`,Rt=`computed.struct`,zt=ct(Lt),Bt=ct(Rt,{equals:ze.structural}),Vt=function(e,t){if(Ae(t))return zt.decorate_20223_(e,t);if(y(t))return De(e,t,zt);if(x(e))return Ee(ct(Lt,e));v(e)||n("First argument to `computed` should be an expression."),v(t)&&n("A setter as second argument is no longer supported, use `{ set: fn }` option instead");var r=x(t)?t:{};return r.get=e,r.name||=e.name||``,new nn(r)};Object.assign(Vt,zt),Vt.struct=Ee(Bt);var Ht=0,Ut=1,Wt=o(function(){},`name`)?.configurable??!1,Gt={value:`action`,configurable:!0,writable:!1,enumerable:!1};function Kt(e,t,r,i){r===void 0&&(r=!1),v(t)||n("`action` can only be invoked on functions"),(typeof e!=`string`||!e)&&n(`actions should have valid names, got: '`+e+`'`);function a(){return qt(e,r,t,i||this,arguments)}return a.isMobxAction=!0,a.toString=function(){return t.toString()},Wt&&(Gt.value=e,s(a,`name`,Gt)),a}function qt(e,t,n,r,i){var a=Jt(e,t,r,i);try{return n.apply(r,i)}catch(e){throw a.error_=e,e}finally{Yt(a)}}function Jt(e,t,n,r){var i=Kn()&&!!e,a=0;i&&(a=Date.now(),Jn({type:Qn,name:e,object:n,arguments:r?Array.from(r):l}));var o=P.trackingDerivation,s=!t||!o;Nn();var c=P.allowStateChanges;s&&(N(),c=Zt(!0));var u=vn(!0),d={runAsAction_:s,prevDerivation_:o,prevAllowStateChanges_:c,prevAllowStateReads_:u,notifySpy_:i,startTime_:a,actionId_:Ut++,parentActionId_:Ht};return Ht=d.actionId_,d}function Yt(e){Ht!==e.actionId_&&n(30),Ht=e.parentActionId_,e.error_!==void 0&&(P.suppressReactionErrors=!0),Qt(e.prevAllowStateChanges_),yn(e.prevAllowStateReads_),Pn(),e.runAsAction_&&_n(e.prevDerivation_),e.notifySpy_&&Xn({time:Date.now()-e.startTime_}),P.suppressReactionErrors=!1}function Xt(e,t){var n=Zt(e);try{return t()}finally{Qt(n)}}function Zt(e){var t=P.allowStateChanges;return P.allowStateChanges=e,t}function Qt(e){P.allowStateChanges=e}var $t=`create`,en=function(e){function t(t,n,r,i,a){var o;return r===void 0&&(r=`ObservableValue@`+h()),i===void 0&&(i=!0),a===void 0&&(a=ze.default),o=e.call(this,r)||this,o.enhancer=void 0,o.name_=void 0,o.equals=void 0,o.hasUnreportedChange_=!1,o.interceptors_=void 0,o.changeListeners_=void 0,o.value_=void 0,o.dehancer=void 0,o.enhancer=n,o.name_=r,o.equals=a,o.value_=n(t,void 0,r),i&&Kn()&&qn({type:$t,object:o,observableKind:`value`,debugObjectName:o.name_,newValue:``+o.value_?.toString()}),o}ve(t,e);var n=t.prototype;return n.dehanceValue=function(e){return this.dehancer===void 0?e:this.dehancer(e)},n.set=function(e){var t=this.value_;if(e=this.prepareNewValue_(e),e!==P.UNCHANGED){var n=Kn();n&&Jn({type:Oi,object:this,observableKind:`value`,debugObjectName:this.name_,newValue:e,oldValue:t}),this.setNewValue_(e),n&&Xn()}},n.prepareNewValue_=function(e){if(un(this),vi(this)){var t=bi(this,{object:this,type:Oi,newValue:e});if(!t)return P.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.value_,this.name_),this.equals(this.value_,e)?P.UNCHANGED:e},n.setNewValue_=function(e){var t=this.value_;this.value_=e,this.reportChanged(),xi(this)&&Ci(this,{type:Oi,object:this,newValue:e,oldValue:t})},n.get=function(){return this.reportObserved(),this.dehanceValue(this.value_)},n.intercept_=function(e){return yi(this,e)},n.observe_=function(e,t){return t&&e({observableKind:`value`,debugObjectName:this.name_,object:this,type:Oi,newValue:this.value_,oldValue:void 0}),Si(this,e)},n.raw=function(){return this.value_},n.toJSON=function(){return this.get()},n.toString=function(){return this.name_+`[`+this.value_+`]`},n.valueOf=function(){return se(this.get())},n[Symbol.toPrimitive]=function(){return this.valueOf()},t}(Me),tn=te(`ObservableValue`,en),nn=function(){function e(e){this.dependenciesState_=M.NOT_TRACKING_,this.observing_=[],this.newObserving_=null,this.observers_=new Set,this.runId_=0,this.lastAccessedBy_=0,this.lowestObserverState_=M.UP_TO_DATE_,this.unboundDepsCount_=0,this.value_=new on(null),this.name_=void 0,this.triggeredBy_=void 0,this.flags_=0,this.derivation=void 0,this.setter_=void 0,this.isTracing_=an.NONE,this.scope_=void 0,this.equals_=void 0,this.requiresReaction_=void 0,this.keepAlive_=void 0,this.onBOL=void 0,this.onBUOL=void 0,e.get||n(31),this.derivation=e.get,this.name_=e.name||`ComputedValue@`+h(),e.set&&(this.setter_=Kt(this.name_+`-setter`,e.set)),this.equals_=e.equals||(e.compareStructural||e.struct?ze.structural:ze.default),this.scope_=e.context,this.requiresReaction_=e.requiresReaction,this.keepAlive_=!!e.keepAlive}var t=e.prototype;return t.onBecomeStale_=function(){Rn(this)},t.onBO=function(){this.onBOL&&this.onBOL.forEach(function(e){return e()})},t.onBUO=function(){this.onBUOL&&this.onBUOL.forEach(function(e){return e()})},t.get=function(){if(this.isComputing&&n(32,this.name_,this.derivation),P.inBatch===0&&this.observers_.size===0&&!this.keepAlive_)cn(this)&&(this.warnAboutUntrackedRead_(),Nn(),this.value_=this.computeValue_(!1),Pn());else if(Fn(this),cn(this)){var e=P.trackingContext;this.keepAlive_&&!e&&(P.trackingContext=this),this.trackAndCompute()&&Ln(this),P.trackingContext=e}var t=this.value_;if(sn(t))throw t.cause;return t},t.set=function(e){if(this.setter_){this.isRunningSetter&&n(33,this.name_),this.isRunningSetter=!0;try{this.setter_.call(this.scope_,e)}finally{this.isRunningSetter=!1}}else n(34,this.name_)},t.trackAndCompute=function(){var e=this.value_,t=this.dependenciesState_===M.NOT_TRACKING_,n=this.computeValue_(!0),r=t||sn(e)||sn(n)||!this.equals_(e,n);return r&&(this.value_=n,Kn()&&qn({observableKind:`computed`,debugObjectName:this.name_,object:this.scope_,type:`update`,oldValue:e,newValue:n})),r},t.computeValue_=function(e){this.isComputing=!0;var t=Zt(!1),n;if(e)n=fn(this,this.derivation,this.scope_);else if(P.disableErrorBoundaries===!0)n=this.derivation.call(this.scope_);else try{n=this.derivation.call(this.scope_)}catch(e){n=new on(e)}return Qt(t),this.isComputing=!1,n},t.suspend_=function(){this.keepAlive_||(hn(this),this.value_=void 0,this.isTracing_!==an.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' was suspended and it will recompute on the next access.`))},t.observe_=function(e,t){var n=this,r=!0,i=void 0;return fr(function(){var a=n.get();if(!r||t){var o=N();e({observableKind:`computed`,debugObjectName:n.name_,type:Oi,object:n,newValue:a,oldValue:i}),_n(o)}r=!1,i=a})},t.warnAboutUntrackedRead_=function(){this.isTracing_!==an.NONE&&console.log(`[mobx.trace] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`),(typeof this.requiresReaction_==`boolean`?this.requiresReaction_:P.computedRequiresReaction)&&console.warn(`[mobx] Computed value '`+this.name_+`' is being read outside a reactive context. Doing a full recompute.`)},t.toString=function(){return this.name_+`[`+this.derivation.toString()+`]`},t.valueOf=function(){return se(this.get())},t[Symbol.toPrimitive]=function(){return this.valueOf()},me(e,[{key:`isComputing`,get:function(){return ue(this.flags_,e.isComputingMask_)},set:function(t){this.flags_=E(this.flags_,e.isComputingMask_,t)}},{key:`isRunningSetter`,get:function(){return ue(this.flags_,e.isRunningSetterMask_)},set:function(t){this.flags_=E(this.flags_,e.isRunningSetterMask_,t)}},{key:`isBeingObserved`,get:function(){return ue(this.flags_,e.isBeingObservedMask_)},set:function(t){this.flags_=E(this.flags_,e.isBeingObservedMask_,t)}},{key:`isPendingUnobservation`,get:function(){return ue(this.flags_,e.isPendingUnobservationMask_)},set:function(t){this.flags_=E(this.flags_,e.isPendingUnobservationMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=E(this.flags_,e.diffValueMask_,t===1)}}])}();nn.isComputingMask_=1,nn.isRunningSetterMask_=2,nn.isBeingObservedMask_=4,nn.isPendingUnobservationMask_=8,nn.diffValueMask_=16;var rn=te(`ComputedValue`,nn),M;(function(e){e[e.NOT_TRACKING_=-1]=`NOT_TRACKING_`,e[e.UP_TO_DATE_=0]=`UP_TO_DATE_`,e[e.POSSIBLY_STALE_=1]=`POSSIBLY_STALE_`,e[e.STALE_=2]=`STALE_`})(M||={});var an;(function(e){e[e.NONE=0]=`NONE`,e[e.LOG=1]=`LOG`,e[e.BREAK=2]=`BREAK`})(an||={});var on=function(e){this.cause=void 0,this.cause=e};function sn(e){return e instanceof on}function cn(e){switch(e.dependenciesState_){case M.UP_TO_DATE_:return!1;case M.NOT_TRACKING_:case M.STALE_:return!0;case M.POSSIBLY_STALE_:for(var t=vn(!0),n=N(),r=e.observing_,i=r.length,a=0;a<i;a++){var o=r[a];if(rn(o)){if(P.disableErrorBoundaries)o.get();else try{o.get()}catch{return _n(n),yn(t),!0}if(e.dependenciesState_===M.STALE_)return _n(n),yn(t),!0}}return bn(e),_n(n),yn(t),!1}}function ln(){return P.trackingDerivation!==null}function un(e){var t=e.observers_.size>0;!P.allowStateChanges&&(t||P.enforceActions===`always`)&&console.warn(`[MobX] `+(P.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 dn(e){!P.allowStateReads&&P.observableRequiresReaction&&console.warn(`[mobx] Observable '`+e.name_+`' being read outside a reactive context.`)}function fn(e,t,n){var r=vn(!0);bn(e),e.newObserving_=Array(e.runId_===0?100:e.observing_.length),e.unboundDepsCount_=0,e.runId_=++P.runId;var i=P.trackingDerivation;P.trackingDerivation=e,P.inBatch++;var a;if(P.disableErrorBoundaries===!0)a=t.call(n);else try{a=t.call(n)}catch(e){a=new on(e)}return P.inBatch--,P.trackingDerivation=i,mn(e),pn(e),yn(r),a}function pn(e){e.observing_.length===0&&(typeof e.requiresObservable_==`boolean`?e.requiresObservable_:P.reactionRequiresObservable)&&console.warn(`[mobx] Derivation '`+e.name_+`' is created/updated without reading any observable value.`)}function mn(e){for(var t=e.observing_,n=e.observing_=e.newObserving_,r=M.UP_TO_DATE_,i=0,a=e.unboundDepsCount_,o=0;o<a;o++){var s=n[o];s.diffValue===0&&(s.diffValue=1,i!==o&&(n[i]=s),i++),s.dependenciesState_>r&&(r=s.dependenciesState_)}for(n.length=i,e.newObserving_=null,a=t.length;a--;){var c=t[a];c.diffValue===0&&jn(c,e),c.diffValue=0}for(;i--;){var l=n[i];l.diffValue===1&&(l.diffValue=0,An(l,e))}r!==M.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}function hn(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)jn(t[n],e);e.dependenciesState_=M.NOT_TRACKING_}function gn(e){var t=N();try{return e()}finally{_n(t)}}function N(){var e=P.trackingDerivation;return P.trackingDerivation=null,e}function _n(e){P.trackingDerivation=e}function vn(e){var t=P.allowStateReads;return P.allowStateReads=e,t}function yn(e){P.allowStateReads=e}function bn(e){if(e.dependenciesState_!==M.UP_TO_DATE_){e.dependenciesState_=M.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=M.UP_TO_DATE_}}var xn=[`mobxGuid`,`spyListeners`,`enforceActions`,`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`allowStateReads`,`disableErrorBoundaries`,`runId`,`UNCHANGED`,`useProxies`],Sn=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},Cn=!0,wn=!1,P=function(){var e=i();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Cn=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==new Sn().version&&(Cn=!1),Cn?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Sn):(setTimeout(function(){wn||n(35)},1),new Sn)}();function Tn(){if((P.pendingReactions.length||P.inBatch||P.isRunningReactions)&&n(36),wn=!0,Cn){var e=i();--e.__mobxInstanceCount===0&&(e.__mobxGlobals=void 0),P=new Sn}}function En(){return P}function Dn(){var e=new Sn;for(var t in e)xn.indexOf(t)===-1&&(P[t]=e[t]);P.allowStateChanges=!P.enforceActions}function On(e){return e.observers_&&e.observers_.size>0}function kn(e){return e.observers_}function An(e,t){e.observers_.add(t),e.lowestObserverState_>t.dependenciesState_&&(e.lowestObserverState_=t.dependenciesState_)}function jn(e,t){e.observers_.delete(t),e.observers_.size===0&&Mn(e)}function Mn(e){e.isPendingUnobservation===!1&&(e.isPendingUnobservation=!0,P.pendingUnobservations.push(e))}function Nn(){P.inBatch++}function Pn(){if(--P.inBatch===0){Un();for(var e=P.pendingUnobservations,t=0;t<e.length;t++){var n=e[t];n.isPendingUnobservation=!1,n.observers_.size===0&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBUO()),n instanceof nn&&n.suspend_())}P.pendingUnobservations=[]}}function Fn(e){dn(e);var t=P.trackingDerivation;return t===null?(e.observers_.size===0&&P.inBatch>0&&Mn(e),!1):(t.runId_!==e.lastAccessedBy_&&(e.lastAccessedBy_=t.runId_,t.newObserving_[t.unboundDepsCount_++]=e,!e.isBeingObserved&&P.trackingContext&&(e.isBeingObserved=!0,e.onBO())),e.isBeingObserved)}function In(e){e.lowestObserverState_!==M.STALE_&&(e.lowestObserverState_=M.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===M.UP_TO_DATE_&&(t.isTracing_!==an.NONE&&F(t,e),t.onBecomeStale_()),t.dependenciesState_=M.STALE_}))}function Ln(e){e.lowestObserverState_!==M.STALE_&&(e.lowestObserverState_=M.STALE_,e.observers_.forEach(function(t){t.dependenciesState_===M.POSSIBLY_STALE_?(t.dependenciesState_=M.STALE_,t.isTracing_!==an.NONE&&F(t,e)):t.dependenciesState_===M.UP_TO_DATE_&&(e.lowestObserverState_=M.UP_TO_DATE_)}))}function Rn(e){e.lowestObserverState_===M.UP_TO_DATE_&&(e.lowestObserverState_=M.POSSIBLY_STALE_,e.observers_.forEach(function(e){e.dependenciesState_===M.UP_TO_DATE_&&(e.dependenciesState_=M.POSSIBLY_STALE_,e.onBecomeStale_())}))}function F(e,t){if(console.log(`[mobx.trace] '`+e.name_+`' is invalidated due to a change in: '`+t.name_+`'`),e.isTracing_===an.BREAK){var n=[];zn(Dr(e),n,1),Function(`debugger;
|
|
69
69
|
/*
|
|
70
70
|
Tracing '`+e.name_+`'
|
|
71
71
|
|
|
@@ -80,12 +80,12 @@ The dependencies for this derivation are:
|
|
|
80
80
|
`+n.join(`
|
|
81
81
|
`)+`
|
|
82
82
|
*/
|
|
83
|
-
`)()}}function zn(e,t,n){if(t.length>=1e3){t.push(`(and many more)`);return}t.push(``+` `.repeat(n-1)+e.name),e.dependencies&&e.dependencies.forEach(function(e){return zn(e,t,n+1)})}var I=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction@`+h()),this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=M.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=an.NONE,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}var t=e.prototype;return t.onBecomeStale_=function(){this.schedule_()},t.schedule_=function(){this.isScheduled||(this.isScheduled=!0,P.pendingReactions.push(this),Un())},t.runReaction_=function(){if(!this.isDisposed){Nn(),this.isScheduled=!1;var e=P.trackingContext;if(P.trackingContext=this,cn(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&Kn()&&qn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}P.trackingContext=e,Pn()}},t.track=function(e){if(!this.isDisposed){Nn();var t=Kn(),n;t&&(n=Date.now(),Jn({name:this.name_,type:`reaction`})),this.isRunning=!0;var r=P.trackingContext;P.trackingContext=this;var i=fn(this,e,void 0);P.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&hn(this),sn(i)&&this.reportExceptionInDerivation_(i.cause),t&&Xn({time:Date.now()-n}),Pn()}},t.reportExceptionInDerivation_=function(e){var t=this;if(this.errorHandler_){this.errorHandler_(e,this);return}if(P.disableErrorBoundaries)throw e;var n=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '`+this+`'`;P.suppressReactionErrors?console.warn(`[mobx] (error in reaction '`+this.name_+`' suppressed, fix error of causing action below)`):console.error(n,e),Kn()&&qn({type:`error`,name:this.name_,message:n,error:``+e}),P.globalReactionErrorHandlers.forEach(function(n){return n(e,t)})},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||(Nn(),hn(this),Pn()))},t.getDisposer_=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[O]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.name_+`]`},t.trace=function(e){e===void 0&&(e=!1),li(this,e)},me(e,[{key:`isDisposed`,get:function(){return le(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=ue(this.flags_,e.isDisposedMask_,t)}},{key:`isScheduled`,get:function(){return le(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=ue(this.flags_,e.isScheduledMask_,t)}},{key:`isTrackPending`,get:function(){return le(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=ue(this.flags_,e.isTrackPendingMask_,t)}},{key:`isRunning`,get:function(){return le(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=ue(this.flags_,e.isRunningMask_,t)}},{key:`diffValue`,get:function(){return+!!le(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=ue(this.flags_,e.diffValueMask_,t===1)}}])}();I.isDisposedMask_=1,I.isScheduledMask_=2,I.isTrackPendingMask_=4,I.isRunningMask_=8,I.diffValueMask_=16;function Bn(e){return P.globalReactionErrorHandlers.push(e),function(){var t=P.globalReactionErrorHandlers.indexOf(e);t>=0&&P.globalReactionErrorHandlers.splice(t,1)}}var Vn=100,Hn=function(e){return e()};function Un(){P.inBatch>0||P.isRunningReactions||Hn(Wn)}function Wn(){P.isRunningReactions=!0;for(var e=P.pendingReactions,t=0;e.length>0;){++t===Vn&&(console.error(`Reaction doesn't converge to a stable state after `+Vn+` iterations.`+(` Probably there is a cycle in the reactive function: `+e[0])),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].runReaction_()}P.isRunningReactions=!1}var L=w(`Reaction`,I);function Gn(e){var t=Hn;Hn=function(n){return e(function(){return t(n)})}}function Kn(){return!!P.spyListeners.length}function qn(e){if(P.spyListeners.length)for(var t=P.spyListeners,n=0,r=t.length;n<r;n++)t[n](e)}function Jn(e){qn(ge({},e,{spyReportStart:!0}))}var Yn={type:`report-end`,spyReportEnd:!0};function Xn(e){qn(e?ge({},e,{type:`report-end`,spyReportEnd:!0}):Yn)}function Zn(e){return P.spyListeners.push(e),g(function(){P.spyListeners=P.spyListeners.filter(function(t){return t!==e})})}var Qn=`action`,$n=`action.bound`,er=`autoAction`,tr=`autoAction.bound`,nr=`<unnamed action>`,rr=Xe(Qn),ir=Xe($n,{bound:!0}),ar=Xe(er,{autoAction:!0}),or=Xe(tr,{autoAction:!0,bound:!0});function sr(e){return function(t,r){if(v(t))return Kt(t.name||nr,t,e);if(v(r))return Kt(t,r,e);if(Ae(r))return(e?ar:rr).decorate_20223_(t,r);if(y(r))return De(t,r,e?ar:rr);if(y(t))return Ee(Xe(e?er:Qn,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}var cr=sr(!1);Object.assign(cr,rr);var lr=sr(!0);Object.assign(lr,ar),cr.bound=Ee(ir),lr.bound=Ee(or);function ur(e){return qt(e.name||nr,!1,e,this,void 0)}function dr(e){return v(e)&&e.isMobxAction===!0}function fr(e,t){var r;t===void 0&&(t=u),v(e)||n(`Autorun expects a function as first argument`),dr(e)&&n(`Autorun does not accept actions since actions are untrackable`);var i=t?.name??(e.name||`Autorun@`+h()),a=!t.scheduler&&!t.delay,o;if(a)o=new I(i,function(){this.track(l)},t.onError,t.requiresObservable);else{var s=mr(t),c=!1;o=new I(i,function(){c||(c=!0,s(function(){c=!1,o.isDisposed||o.track(l)}))},t.onError,t.requiresObservable)}function l(){e(o)}return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||o.schedule_(),o.getDisposer_(t?.signal)}var pr=function(e){return e()};function mr(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:pr}function hr(e,t,r){var i;r===void 0&&(r=u),(!v(e)||!v(t))&&n(`First and second argument to reaction should be functions`),x(r)||n(`Third argument of reactions should be an object`);var a=r.name??`Reaction@`+h(),o=cr(a,r.onError?gr(r.onError,t):t),s=!r.scheduler&&!r.delay,c=mr(r),l=!0,d=!1,f,p=r.compareStructural?ze.structural:r.equals||ze.default,m=new I(a,function(){l||s?g():d||(d=!0,c(g))},r.onError,r.requiresObservable);function g(){if(d=!1,!m.isDisposed){var t=!1,n=f;m.track(function(){var n=Xt(!1,function(){return e(m)});t=l||!p(f,n),f=n}),(l&&r.fireImmediately||!l&&t)&&o(f,n,m),l=!1}}return(i=r)!=null&&(i=i.signal)!=null&&i.aborted||m.schedule_(),m.getDisposer_(r?.signal)}function gr(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}var _r=`onBO`,vr=`onBUO`;function yr(e,t,n){return xr(_r,e,t,n)}function br(e,t,n){return xr(vr,e,t,n)}function xr(e,t,n,r){var i=typeof r==`function`?ga(t,n):ga(t),a=v(r)?r:n,o=e+`L`;return i[o]?i[o].add(a):i[o]=new Set([a]),function(){var e=i[o];e&&(e.delete(a),e.size===0&&delete i[o])}}var Sr=`never`,Cr=`always`,wr=`observed`;function Tr(e){e.isolateGlobalState===!0&&Tn();var t=e.useProxies,n=e.enforceActions;if(t!==void 0&&(P.useProxies=t===Cr?!0:t===Sr?!1:typeof Proxy<`u`),t===`ifavailable`&&(P.verifyProxies=!0),n!==void 0){var r=n===Cr?Cr:n===wr;P.enforceActions=r,P.allowStateChanges=!(r===!0||r===Cr)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(function(t){t in e&&(P[t]=!!e[t])}),P.allowStateReads=!P.observableRequiresReaction,P.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&Gn(e.reactionScheduler)}function Er(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),Wi(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),x(t)||n(`'extendObservable' only accepts plain objects as second argument`),(Yr(t)||Yr(r))&&n(`Extending an object with another observable (object) is not supported`);var a=ce(t);return ya(function(){var t=ea(e,i)[O];E(a).forEach(function(e){t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function Dr(e,t){return Or(ga(e,t))}function Or(e){var t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=jr(e.observing_).map(Or)),t}function kr(e,t){return Ar(ga(e,t))}function Ar(e){var t={name:e.name_};return On(e)&&(t.observers=Array.from(kn(e)).map(Ar)),t}function jr(e){return Array.from(new Set(e))}var Mr=0,Nr=function(e){function t(){var n=e.call(this,`FLOW_CANCELLED`)||this;return Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}ve(t,e);var n=t.prototype;return n.toString=function(){return`Error: `+this.message},t}(we(Error));function Pr(e){return e instanceof Nr}var Fr=nt(`flow`),Ir=nt(`flow.bound`,{bound:!0}),Lr=Object.assign(function(e,t){if(Ae(t))return Fr.decorate_20223_(e,t);if(y(t))return De(e,t,Fr);arguments.length!==1&&n(`Flow expects single argument with generator function`);var r=e,i=r.name||`<unnamed flow>`,a=function(){var e=this,t=arguments,n=++Mr,a=cr(i+` - runid: `+n+` - init`,r).apply(e,t),o,s=void 0,c=new Promise(function(e,t){var r=0;o=t;function c(e){s=void 0;var o;try{o=cr(i+` - runid: `+n+` - yield `+ r++,a.next).call(a,e)}catch(e){return t(e)}u(o)}function l(e){s=void 0;var o;try{o=cr(i+` - runid: `+n+` - yield `+ r++,a.throw).call(a,e)}catch(e){return t(e)}u(o)}function u(n){if(v(n?.then)){n.then(u,t);return}return n.done?e(n.value):(s=Promise.resolve(n.value),s.then(c,l))}c(void 0)});return c.cancel=cr(i+` - runid: `+n+` - cancel`,function(){try{s&&Rr(s);var e=a.return(void 0),t=Promise.resolve(e.value);t.then(_,_),Rr(t),o(new Nr)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},Fr);Lr.bound=Ee(Ir);function Rr(e){v(e.cancel)&&e.cancel()}function zr(e){return e}function Br(e){return e?.isMobXFlow===!0}function Vr(e,t,r){var i;if(Wi(e)||zi(e)||tn(e))i=_a(e);else if(ra(e)){if(!y(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=_a(e,t)}else return n(`Expected observable map, object or array as first array`);return i.dehancer===void 0?(i.dehancer=typeof t==`function`?t:r,function(){i.dehancer=void 0}):n(`An intercept reader was already established`)}function Hr(e,t,n){return v(n)?Wr(e,t,n):Ur(e,t)}function Ur(e,t){return _a(e).intercept_(t)}function Wr(e,t,n){return _a(e,t).intercept_(n)}function Gr(e,t){return t===void 0?rn(e):ra(e)===!1||!e[O].values_.has(t)?!1:rn(ga(e,t))}function Kr(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):Gr(e)}function qr(e,t){return y(t)?Gr(e,t):n(`isComputed expected a property name as second argument`)}function Jr(e,t){return e?t===void 0?ra(e)||!!e[O]||Ne(e)||L(e)||rn(e):Wi(e)||zi(e)?n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`):ra(e)?e[O].values_.has(t):!1:!1}function Yr(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),Jr(e)}function Xr(e,t){return y(t)?Jr(e,t):n(`expected a property name as second argument`)}function Zr(e){if(ra(e))return e[O].keys_();if(Wi(e)||Yi(e))return Array.from(e.keys());if(zi(e))return e.map(function(e,t){return t});n(5)}function Qr(e){if(ra(e))return Zr(e).map(function(t){return e[t]});if(Wi(e))return Zr(e).map(function(t){return e.get(t)});if(Yi(e))return Array.from(e.values());if(zi(e))return e.slice();n(6)}function $r(e){if(ra(e))return Zr(e).map(function(t){return[t,e[t]]});if(Wi(e))return Zr(e).map(function(t){return[t,e.get(t)]});if(Yi(e))return Array.from(e.entries());if(zi(e))return e.map(function(e,t){return[t,e]});n(7)}function ei(e,t,r){if(arguments.length===2&&!Yi(e)){Nn();var i=t;try{for(var a in i)ei(e,a,i[a])}finally{Pn()}return}ra(e)?e[O].set_(t,r):Wi(e)?e.set(t,r):Yi(e)?e.add(t):zi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(`Invalid index: '`+t+`'`),Nn(),t>=e.length&&(e.length=t+1),e[t]=r,Pn()):n(8)}function ti(e,t){ra(e)?e[O].delete_(t):Wi(e)||Yi(e)?e.delete(t):zi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function ni(e,t){if(ra(e))return e[O].has_(t);if(Wi(e)||Yi(e))return e.has(t);if(zi(e))return t>=0&&t<e.length;n(10)}function ri(e,t){if(ni(e,t)){if(ra(e))return e[O].get_(t);if(Wi(e))return e.get(t);if(zi(e))return e[t];n(11)}}function ii(e,t,r){if(ra(e))return e[O].defineProperty_(t,r);n(39)}function ai(e){if(ra(e))return e[O].ownKeys_();n(38)}function oi(e,t,n,r){return v(n)?ci(e,t,n,r):si(e,t,n)}function si(e,t,n){return _a(e).observe_(t,n)}function ci(e,t,n,r){return _a(e,t).observe_(n,r)}function R(e,t,n){return e.set(t,n),n}function z(e,t){if(typeof e!=`object`||!e||e instanceof Date||!Yr(e))return e;if(tn(e)||rn(e))return z(e.get(),t);if(t.has(e))return t.get(e);if(zi(e)){var n=R(t,e,Array(e.length));return e.forEach(function(e,r){n[r]=z(e,t)}),n}if(Yi(e)){var r=R(t,e,new Set);return e.forEach(function(e){r.add(z(e,t))}),r}if(Wi(e)){var i=R(t,e,new Map);return e.forEach(function(e,n){i.set(n,z(e,t))}),i}else{var a=R(t,e,{});return ai(e).forEach(function(n){c.propertyIsEnumerable.call(e,n)&&(a[n]=z(e[n],t))}),a}}function B(e,t){return t&&n(`toJS no longer supports options`),z(e,new Map)}function li(){var e=!1,t=[...arguments];typeof t[t.length-1]==`boolean`&&(e=t.pop());var r=ui(t);if(!r)return n(`'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly`);r.isTracing_===an.NONE&&console.log(`[mobx.trace] '`+r.name_+`' tracing enabled`),r.isTracing_=e?an.BREAK:an.LOG}function ui(e){switch(e.length){case 0:return P.trackingDerivation;case 1:return ga(e[0]);case 2:return ga(e[0],e[1])}}function di(e,t){t===void 0&&(t=void 0),Nn();try{return e.apply(t)}finally{Pn()}}function fi(e,t,n){return arguments.length===1||t&&typeof t==`object`?mi(e,t):pi(e,t,n||{})}function pi(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout(function(){if(!o[O].isDisposed)if(o(),n.onError)n.onError(i);else throw i},n.timeout)}n.name=n.name||`When@`+h();var a=Kt(n.name+`-effect`,t),o=fr(function(t){Xt(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())},n);return o}function mi(e,t){var r;if(t&&t.onError)return n(`the options 'onError' and 'promise' cannot be combined`);if(t!=null&&(r=t.signal)!=null&&r.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var i,a,o=new Promise(function(n,r){var o,s=pi(e,n,ge({},t,{onError:r}));i=function(){s(),r(Error(`WHEN_CANCELLED`))},a=function(){s(),r(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,a)}).finally(function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,a)});return o.cancel=i,o}function hi(e){return e[O]}var gi={has:function(e,t){return P.trackingDerivation&&m(`detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.`),hi(e).has_(t)},get:function(e,t){return hi(e).get_(t)},set:function(e,t,n){return y(t)?(hi(e).values_.has(t)||m(`add a new observable property through direct assignment. Use 'set' from 'mobx' instead.`),hi(e).set_(t,n,!0)??!0):!1},deleteProperty:function(e,t){return m(`delete properties from an observable object. Use 'remove' from 'mobx' instead.`),y(t)?hi(e).delete_(t,!0)??!0:!1},defineProperty:function(e,t,n){return m(`define property on an observable object. Use 'defineProperty' from 'mobx' instead.`),hi(e).defineProperty_(t,n)??!0},ownKeys:function(e){return P.trackingDerivation&&m(`iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.`),hi(e).ownKeys_()},preventExtensions:function(e){n(13)}};function _i(e,t){var n;return p(),e=ea(e,t),(n=e[O]).proxy_??(n.proxy_=new Proxy(e,gi))}function vi(e){return e.interceptors_!==void 0&&e.interceptors_.length>0}function yi(e,t){var n=e.interceptors_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function bi(e,t){var r=N();try{for(var i=[].concat(e.interceptors_||[]),a=0,o=i.length;a<o&&(t=i[a](t),t&&!t.type&&n(14),t);a++);return t}finally{_n(r)}}function xi(e){return e.changeListeners_!==void 0&&e.changeListeners_.length>0}function Si(e,t){var n=e.changeListeners_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function Ci(e,t){var n=N(),r=e.changeListeners_;if(r){r=r.slice();for(var i=0,a=r.length;i<a;i++)r[i](t);_n(n)}}function wi(e,t,r){return ya(function(){var i=ea(e,r)[O];t&&e[Te]&&n(`makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.`),t??=ke(e),E(t).forEach(function(e){return i.make_(e,t[e])})}),e}var Ti=Symbol(`mobx-keys`);function Ei(e,t,r){return!x(e)&&!x(Object.getPrototypeOf(e))&&n(`'makeAutoObservable' can only be used for classes that don't have a superclass`),ra(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),x(e)?Er(e,e,t,r):(ya(function(){var n=ea(e,r)[O];if(!e[Ti]){var i=Object.getPrototypeOf(e),a=new Set([].concat(E(e),E(i)));a.delete(`constructor`),a.delete(O),C(i,Ti,a)}e[Ti].forEach(function(e){return n.make_(e,t&&e in t?t[e]:!0)})}),e)}var Di=`splice`,Oi=`update`,ki=1e4,Ai={get:function(e,t){var n=e[O];return t===O?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):se(Ni,t)?Ni[t]:e[t]},set:function(e,t,n){var r=e[O];return t===`length`&&r.setArrayLength_(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions:function(){n(15)}},ji=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray@`+h()),this.owned_=void 0,this.legacyMode_=void 0,this.atom_=void 0,this.values_=[],this.interceptors_=void 0,this.changeListeners_=void 0,this.enhancer_=void 0,this.dehancer=void 0,this.proxy_=void 0,this.lastKnownLength_=0,this.owned_=n,this.legacyMode_=r,this.atom_=new Me(e),this.enhancer_=function(n,r){return t(n,r,e+`[..]`)}}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.dehanceValues_=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},t.intercept_=function(e){return yi(this,e)},t.observe_=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:`splice`,index:0,added:this.values_.slice(),addedCount:this.values_.length,removed:[],removedCount:0}),Si(this,e)},t.getArrayLength_=function(){return this.atom_.reportObserved(),this.values_.length},t.setArrayLength_=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&n(`Out of range: `+e);var t=this.values_.length;if(e!==t)if(e>t){for(var r=Array(e-t),i=0;i<e-t;i++)r[i]=void 0;this.spliceWithArray_(t,0,r)}else this.spliceWithArray_(e,t-e)},t.updateArrayLength_=function(e,t){e!==this.lastKnownLength_&&n(16),this.lastKnownLength_+=t,this.legacyMode_&&t>0&&ma(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;un(this.atom_);var i=this.values_.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=l),vi(this)){var a=bi(this,{object:this.proxy_,type:Di,index:e,removedCount:t,added:n});if(!a)return l;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map(function(e){return r.enhancer_(e,void 0)}),this.legacyMode_||!0){var o=n.length-t;this.updateArrayLength_(i,o)}var s=this.spliceItemsIntoValues_(e,t,n);return(t!==0||n.length!==0)&&this.notifyArraySplice_(e,n,s),this.dehanceValues_(s)},t.spliceItemsIntoValues_=function(e,t,n){if(n.length<ki){var r;return(r=this.values_).splice.apply(r,[e,t].concat(n))}else{var i=this.values_.slice(e,e+t),a=this.values_.slice(e+t);this.values_.length+=n.length-t;for(var o=0;o<n.length;o++)this.values_[e+o]=n[o];for(var s=0;s<a.length;s++)this.values_[e+n.length+s]=a[s];return i}},t.notifyArrayChildUpdate_=function(e,t,n){var r=!this.owned_&&Kn(),i=xi(this),a=i||r?{observableKind:`array`,object:this.proxy_,type:Oi,debugObjectName:this.atom_.name_,index:e,newValue:t,oldValue:n}:null;r&&Jn(a),this.atom_.reportChanged(),i&&Ci(this,a),r&&Xn()},t.notifyArraySplice_=function(e,t,n){var r=!this.owned_&&Kn(),i=xi(this),a=i||r?{observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:Di,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;r&&Jn(a),this.atom_.reportChanged(),i&&Ci(this,a),r&&Xn()},t.get_=function(e){if(this.legacyMode_&&e>=this.values_.length){console.warn(`[mobx.array] Attempt to read an array index (`+e+`) that is out of bounds (`+this.values_.length+`). Please check length first. Out of bound indices will not be tracked by MobX`);return}return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e])},t.set_=function(e,t){var r=this.values_;if(this.legacyMode_&&e>r.length&&n(17,e,r.length),e<r.length){un(this.atom_);var i=r[e];if(vi(this)){var a=bi(this,{type:Oi,object:this.proxy_,index:e,newValue:t});if(!a)return;t=a.newValue}t=this.enhancer_(t,i),t!==i&&(r[e]=t,this.notifyArrayChildUpdate_(e,t,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=t,this.spliceWithArray_(r.length,0,o)}},e}();function Mi(e,t,n,r){return n===void 0&&(n=`ObservableArray@`+h()),r===void 0&&(r=!1),p(),ya(function(){var i=new ji(n,t,r,!1);ee(i.values_,O,i);var a=new Proxy(i.values_,Ai);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var Ni={clear:function(){return this.splice(0)},replace:function(e){var t=this[O];return t.spliceWithArray_(0,t.values_.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[O];switch(arguments.length){case 0:return[];case 1:return r.spliceWithArray_(e);case 2:return r.spliceWithArray_(e,t)}return r.spliceWithArray_(e,t,n)},spliceWithArray:function(e,t,n){return this[O].spliceWithArray_(e,t,n)},push:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(e.values_.length,0,t),e.values_.length},pop:function(){return this.splice(Math.max(this[O].values_.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(0,0,t),e.values_.length},reverse:function(){return P.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){P.trackingDerivation&&n(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[O],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};Pi(`at`,Fi),Pi(`concat`,Fi),Pi(`flat`,Fi),Pi(`includes`,Fi),Pi(`indexOf`,Fi),Pi(`join`,Fi),Pi(`lastIndexOf`,Fi),Pi(`slice`,Fi),Pi(`toString`,Fi),Pi(`toLocaleString`,Fi),Pi(`toSorted`,Fi),Pi(`toSpliced`,Fi),Pi(`with`,Fi),Pi(`every`,Ii),Pi(`filter`,Ii),Pi(`find`,Ii),Pi(`findIndex`,Ii),Pi(`findLast`,Ii),Pi(`findLastIndex`,Ii),Pi(`flatMap`,Ii),Pi(`forEach`,Ii),Pi(`map`,Ii),Pi(`some`,Ii),Pi(`toReversed`,Ii),Pi(`reduce`,Li),Pi(`reduceRight`,Li);function Pi(e,t){typeof Array.prototype[e]==`function`&&(Ni[e]=t(e))}function Fi(e){return function(){var t=this[O];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function Ii(e){return function(t,n){var r=this,i=this[O];return i.atom_.reportObserved(),i.dehanceValues_(i.values_)[e](function(e,i){return t.call(n,e,i,r)})}}function Li(e){return function(){var t=this,n=this[O];n.atom_.reportObserved();var r=n.dehanceValues_(n.values_),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}var Ri=w(`ObservableArrayAdministration`,ji);function zi(e){return b(e)&&Ri(e[O])}var Bi={},Vi=`add`,Hi=`delete`,Ui=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableMap@`+h()),this.enhancer_=void 0,this.name_=void 0,this[O]=Bi,this.data_=void 0,this.hasMap_=void 0,this.keysAtom_=void 0,this.interceptors_=void 0,this.changeListeners_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=r,v(Map)||n(18),ya(function(){i.keysAtom_=Pe(i.name_+`.keys()`),i.data_=new Map,i.hasMap_=new Map,e&&i.merge(e)})}var t=e.prototype;return t.has_=function(e){return this.data_.has(e)},t.has=function(e){var t=this;if(!P.trackingDerivation)return this.has_(e);var n=this.hasMap_.get(e);if(!n){var r=n=new en(this.has_(e),He,this.name_+`.`+ae(e)+`?`,!1);this.hasMap_.set(e,r),br(r,function(){return t.hasMap_.delete(e)})}return n.get()},t.set=function(e,t){var n=this.has_(e);if(vi(this)){var r=bi(this,{type:n?Oi:Vi,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this},t.delete=function(e){var t=this;if(un(this.keysAtom_),vi(this)&&!bi(this,{type:Hi,object:this,name:e}))return!1;if(this.has_(e)){var n=Kn(),r=xi(this),i=r||n?{observableKind:`map`,debugObjectName:this.name_,type:Hi,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return n&&Jn(i),di(function(){var n;t.keysAtom_.reportChanged(),(n=t.hasMap_.get(e))==null||n.setNewValue_(!1),t.data_.get(e).setNewValue_(void 0),t.data_.delete(e)}),r&&Ci(this,i),n&&Xn(),!0}return!1},t.updateValue_=function(e,t){var n=this.data_.get(e);if(t=n.prepareNewValue_(t),t!==P.UNCHANGED){var r=Kn(),i=xi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Oi,object:this,oldValue:n.value_,name:e,newValue:t}:null;r&&Jn(a),n.setNewValue_(t),i&&Ci(this,a),r&&Xn()}},t.addValue_=function(e,t){var n=this;un(this.keysAtom_),di(function(){var r,i=new en(t,n.enhancer_,n.name_+`.`+ae(e),!1);n.data_.set(e,i),t=i.value_,(r=n.hasMap_.get(e))==null||r.setNewValue_(!0),n.keysAtom_.reportChanged()});var r=Kn(),i=xi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Vi,object:this,name:e,newValue:t}:null;r&&Jn(a),i&&Ci(this,a),r&&Xn()},t.get=function(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)},t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.keys=function(){return this.keysAtom_.reportObserved(),this.data_.keys()},t.values=function(){var e=this,t=this.keys();return Gi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:e.get(i)}}})},t.entries=function(){var e=this,t=this.keys();return Gi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},t[Symbol.iterator]=function(){return this.entries()},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value,a=i[0],o=i[1];e.call(t,o,a,this)}},t.merge=function(e){var t=this;return Wi(e)&&(e=new Map(e)),di(function(){x(e)?T(e).forEach(function(n){return t.set(n,e[n])}):Array.isArray(e)?e.forEach(function(e){var n=e[0],r=e[1];return t.set(n,r)}):te(e)?(ne(e)||n(19,e),e.forEach(function(e,n){return t.set(n,e)})):e!=null&&n(20,e)}),this},t.clear=function(){var e=this;di(function(){gn(function(){for(var t=he(e.keys()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.replace=function(e){var t=this;return di(function(){for(var n=Ki(e),r=new Map,i=!1,a=he(t.data_.keys()),o;!(o=a()).done;){var s=o.value;if(!n.has(s))if(t.delete(s))i=!0;else{var c=t.data_.get(s);r.set(s,c)}}for(var l=he(n.entries()),u;!(u=l()).done;){var d=u.value,f=d[0],p=d[1],m=t.data_.has(f);if(t.set(f,p),t.data_.has(f)){var h=t.data_.get(f);r.set(f,h),m||(i=!0)}}if(!i)if(t.data_.size!==r.size)t.keysAtom_.reportChanged();else for(var g=t.data_.keys(),_=r.keys(),v=g.next(),y=_.next();!v.done;){if(v.value!==y.value){t.keysAtom_.reportChanged();break}v=g.next(),y=_.next()}t.data_=r}),this},t.toString=function(){return`[object ObservableMap]`},t.toJSON=function(){return Array.from(this)},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with maps."),Si(this,e)},t.intercept_=function(e){return yi(this,e)},me(e,[{key:`size`,get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),Wi=w(`ObservableMap`,Ui);function Gi(e){return e[Symbol.toStringTag]=`MapIterator`,Ta(e)}function Ki(e){if(te(e)||Wi(e))return e;if(Array.isArray(e))return new Map(e);if(x(e)){var t=new Map;for(var r in e)t.set(r,e[r]);return t}else return n(21,e)}var qi={},Ji=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableSet@`+h()),this.name_=void 0,this[O]=qi,this.data_=new Set,this.atom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.dehancer=void 0,this.enhancer_=void 0,this.name_=r,v(Set)||n(22),this.enhancer_=function(e,n){return t(e,n,r)},ya(function(){i.atom_=Pe(i.name_),e&&i.replace(e)})}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.clear=function(){var e=this;di(function(){gn(function(){for(var t=he(e.data_.values()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value;e.call(t,i,i,this)}},t.add=function(e){var t=this;if(un(this.atom_),vi(this)){var n=bi(this,{type:Vi,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){di(function(){t.data_.add(t.enhancer_(e,void 0)),t.atom_.reportChanged()});var r=Kn(),i=xi(this),a=i||r?{observableKind:`set`,debugObjectName:this.name_,type:Vi,object:this,newValue:e}:null;r&&Jn(a),i&&Ci(this,a),r&&Xn()}return this},t.delete=function(e){var t=this;if(vi(this)&&!bi(this,{type:Hi,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Kn(),r=xi(this),i=r||n?{observableKind:`set`,debugObjectName:this.name_,type:Hi,object:this,oldValue:e}:null;return n&&Jn(i),di(function(){t.atom_.reportChanged(),t.data_.delete(e)}),r&&Ci(this,i),n&&Xn(),!0}return!1},t.has=function(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))},t.entries=function(){var e=this.values();return Xi({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},t.keys=function(){return this.values()},t.values=function(){this.atom_.reportObserved();var e=this,t=this.data_.values();return Xi({next:function(){var n=t.next(),r=n.value,i=n.done;return i?{value:void 0,done:i}:{value:e.dehanceValue_(r),done:i}}})},t.intersection=function(e){return re(e)&&!Yi(e)?e.intersection(this):new Set(this).intersection(e)},t.union=function(e){return re(e)&&!Yi(e)?e.union(this):new Set(this).union(e)},t.difference=function(e){return new Set(this).difference(e)},t.symmetricDifference=function(e){return re(e)&&!Yi(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},t.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},t.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},t.isDisjointFrom=function(e){return re(e)&&!Yi(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},t.replace=function(e){var t=this;return Yi(e)&&(e=new Set(e)),di(function(){Array.isArray(e)||re(e)?(t.clear(),e.forEach(function(e){return t.add(e)})):e!=null&&n(`Cannot initialize set from `+e)}),this},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with sets."),Si(this,e)},t.intercept_=function(e){return yi(this,e)},t.toJSON=function(){return Array.from(this)},t.toString=function(){return`[object ObservableSet]`},t[Symbol.iterator]=function(){return this.values()},me(e,[{key:`size`,get:function(){return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),Yi=w(`ObservableSet`,Ji);function Xi(e){return e[Symbol.toStringTag]=`SetIterator`,Ta(e)}var Zi=Object.create(null),Qi=`remove`,$i=function(){function e(e,t,r,i){t===void 0&&(t=new Map),i===void 0&&(i=yt),this.target_=void 0,this.values_=void 0,this.name_=void 0,this.defaultAnnotation_=void 0,this.keysAtom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.proxy_=void 0,this.isPlainObject_=void 0,this.appliedAnnotations_=void 0,this.pendingKeys_=void 0,this.target_=e,this.values_=t,this.name_=r,this.defaultAnnotation_=i,this.keysAtom_=new Me(this.name_+`.keys`),this.isPlainObject_=x(this.target_),Da(this.defaultAnnotation_)||n(`defaultAnnotation must be valid annotation`),this.appliedAnnotations_={}}var t=e.prototype;return t.getObservablePropValue_=function(e){return this.values_.get(e).get()},t.setObservablePropValue_=function(e,t){var n=this.values_.get(e);if(n instanceof nn)return n.set(t),!0;if(vi(this)){var r=bi(this,{type:Oi,object:this.proxy_||this.target_,name:e,newValue:t});if(!r)return null;t=r.newValue}if(t=n.prepareNewValue_(t),t!==P.UNCHANGED){var i=xi(this),a=Kn(),o=i||a?{type:Oi,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:n.value_,name:e,newValue:t}:null;a&&Jn(o),n.setNewValue_(t),i&&Ci(this,o),a&&Xn()}return!0},t.get_=function(e){return P.trackingDerivation&&!se(this.target_,e)&&this.has_(e),this.target_[e]},t.set_=function(e,t,n){return n===void 0&&(n=!1),se(this.target_,e)?this.values_.has(e)?this.setObservablePropValue_(e,t):n?Reflect.set(this.target_,e,t):(this.target_[e]=t,!0):this.extend_(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.defaultAnnotation_,n)},t.has_=function(e){if(!P.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;var t=this.pendingKeys_.get(e);return t||(t=new en(e in this.target_,He,this.name_+`.`+ae(e)+`?`,!1),this.pendingKeys_.set(e,t)),t.get()},t.make_=function(e,t){if(t===!0&&(t=this.defaultAnnotation_),t!==!1){if(aa(this,t,e),!(e in this.target_)){var r;if((r=this.target_[Te])!=null&&r[e])return;n(1,t.annotationType_,this.name_+`.`+e.toString())}for(var i=this.target_;i&&i!==c;){var a=o(i,e);if(a){var s=t.make_(this,e,a,i);if(s===0)return;if(s===1)break}i=Object.getPrototypeOf(i)}ia(this,t,e)}},t.extend_=function(e,t,n,r){if(r===void 0&&(r=!1),n===!0&&(n=this.defaultAnnotation_),n===!1)return this.defineProperty_(e,t,r);aa(this,n,e);var i=n.extend_(this,e,t,r);return i&&ia(this,n,e),i},t.defineProperty_=function(e,t,n){n===void 0&&(n=!1),un(this.keysAtom_);try{Nn();var r=this.delete_(e);if(!r)return r;if(vi(this)){var i=bi(this,{object:this.proxy_||this.target_,name:e,type:Vi,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=ge({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.target_,e,t))return!1}else s(this.target_,e,t);this.notifyPropertyAddition_(e,t.value)}finally{Pn()}return!0},t.defineObservableProperty_=function(e,t,n,r){r===void 0&&(r=!1),un(this.keysAtom_);try{Nn();var i=this.delete_(e);if(!i)return i;if(vi(this)){var a=bi(this,{object:this.proxy_||this.target_,name:e,type:Vi,newValue:t});if(!a)return null;t=a.newValue}var o=na(e),c={configurable:P.safeDescriptors?this.isPlainObject_:!0,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.target_,e,c))return!1}else s(this.target_,e,c);var l=new en(t,n,this.name_+`.`+e.toString(),!1);this.values_.set(e,l),this.notifyPropertyAddition_(e,l.value_)}finally{Pn()}return!0},t.defineComputedProperty_=function(e,t,n){n===void 0&&(n=!1),un(this.keysAtom_);try{Nn();var r=this.delete_(e);if(!r)return r;if(vi(this)&&!bi(this,{object:this.proxy_||this.target_,name:e,type:Vi,newValue:void 0}))return null;t.name||=this.name_+`.`+e.toString(),t.context=this.proxy_||this.target_;var i=na(e),a={configurable:P.safeDescriptors?this.isPlainObject_:!0,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.target_,e,a))return!1}else s(this.target_,e,a);this.values_.set(e,new nn(t)),this.notifyPropertyAddition_(e,void 0)}finally{Pn()}return!0},t.delete_=function(e,t){if(t===void 0&&(t=!1),un(this.keysAtom_),!se(this.target_,e))return!0;if(vi(this)&&!bi(this,{object:this.proxy_||this.target_,name:e,type:Qi}))return null;try{var n;Nn();var r=xi(this),i=Kn(),a=this.values_.get(e),s=void 0;if(!a&&(r||i)&&(s=o(this.target_,e)?.value),t){if(!Reflect.deleteProperty(this.target_,e))return!1}else delete this.target_[e];if(delete this.appliedAnnotations_[e],a&&(this.values_.delete(e),a instanceof en&&(s=a.value_),In(a)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||i){var c={type:Qi,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};i&&Jn(c),r&&Ci(this,c),i&&Xn()}}finally{Pn()}return!0},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support the fire immediately property for observable objects."),Si(this,e)},t.intercept_=function(e){return yi(this,e)},t.notifyPropertyAddition_=function(e,t){var n,r=xi(this),i=Kn();if(r||i){var a=r||i?{type:Vi,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&Jn(a),r&&Ci(this,a),i&&Xn()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()},t.ownKeys_=function(){return this.keysAtom_.reportObserved(),E(this.target_)},t.keys_=function(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)},e}();function ea(e,t){if(t&&ra(e)&&n(`Options can't be provided for already observable objects.`),se(e,O))return _a(e)instanceof $i||n(`Cannot convert '`+va(e)+`' into observable object:
|
|
83
|
+
`)()}}function zn(e,t,n){if(t.length>=1e3){t.push(`(and many more)`);return}t.push(``+` `.repeat(n-1)+e.name),e.dependencies&&e.dependencies.forEach(function(e){return zn(e,t,n+1)})}var I=function(){function e(e,t,n,r){e===void 0&&(e=`Reaction@`+h()),this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=M.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=an.NONE,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}var t=e.prototype;return t.onBecomeStale_=function(){this.schedule_()},t.schedule_=function(){this.isScheduled||(this.isScheduled=!0,P.pendingReactions.push(this),Un())},t.runReaction_=function(){if(!this.isDisposed){Nn(),this.isScheduled=!1;var e=P.trackingContext;if(P.trackingContext=this,cn(this)){this.isTrackPending=!0;try{this.onInvalidate_(),this.isTrackPending&&Kn()&&qn({name:this.name_,type:`scheduled-reaction`})}catch(e){this.reportExceptionInDerivation_(e)}}P.trackingContext=e,Pn()}},t.track=function(e){if(!this.isDisposed){Nn();var t=Kn(),n;t&&(n=Date.now(),Jn({name:this.name_,type:`reaction`})),this.isRunning=!0;var r=P.trackingContext;P.trackingContext=this;var i=fn(this,e,void 0);P.trackingContext=r,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&hn(this),sn(i)&&this.reportExceptionInDerivation_(i.cause),t&&Xn({time:Date.now()-n}),Pn()}},t.reportExceptionInDerivation_=function(e){var t=this;if(this.errorHandler_){this.errorHandler_(e,this);return}if(P.disableErrorBoundaries)throw e;var n=`[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '`+this+`'`;P.suppressReactionErrors?console.warn(`[mobx] (error in reaction '`+this.name_+`' suppressed, fix error of causing action below)`):console.error(n,e),Kn()&&qn({type:`error`,name:this.name_,message:n,error:``+e}),P.globalReactionErrorHandlers.forEach(function(n){return n(e,t)})},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||(Nn(),hn(this),Pn()))},t.getDisposer_=function(e){var t=this,n=function n(){t.dispose(),e==null||e.removeEventListener==null||e.removeEventListener(`abort`,n)};return e==null||e.addEventListener==null||e.addEventListener(`abort`,n),n[O]=this,`dispose`in Symbol&&typeof Symbol.dispose==`symbol`&&(n[Symbol.dispose]=n),n},t.toString=function(){return`Reaction[`+this.name_+`]`},t.trace=function(e){e===void 0&&(e=!1),li(this,e)},me(e,[{key:`isDisposed`,get:function(){return ue(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=E(this.flags_,e.isDisposedMask_,t)}},{key:`isScheduled`,get:function(){return ue(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=E(this.flags_,e.isScheduledMask_,t)}},{key:`isTrackPending`,get:function(){return ue(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=E(this.flags_,e.isTrackPendingMask_,t)}},{key:`isRunning`,get:function(){return ue(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=E(this.flags_,e.isRunningMask_,t)}},{key:`diffValue`,get:function(){return+!!ue(this.flags_,e.diffValueMask_)},set:function(t){this.flags_=E(this.flags_,e.diffValueMask_,t===1)}}])}();I.isDisposedMask_=1,I.isScheduledMask_=2,I.isTrackPendingMask_=4,I.isRunningMask_=8,I.diffValueMask_=16;function Bn(e){return P.globalReactionErrorHandlers.push(e),function(){var t=P.globalReactionErrorHandlers.indexOf(e);t>=0&&P.globalReactionErrorHandlers.splice(t,1)}}var Vn=100,Hn=function(e){return e()};function Un(){P.inBatch>0||P.isRunningReactions||Hn(Wn)}function Wn(){P.isRunningReactions=!0;for(var e=P.pendingReactions,t=0;e.length>0;){++t===Vn&&(console.error(`Reaction doesn't converge to a stable state after `+Vn+` iterations.`+(` Probably there is a cycle in the reactive function: `+e[0])),e.splice(0));for(var n=e.splice(0),r=0,i=n.length;r<i;r++)n[r].runReaction_()}P.isRunningReactions=!1}var L=te(`Reaction`,I);function Gn(e){var t=Hn;Hn=function(n){return e(function(){return t(n)})}}function Kn(){return!!P.spyListeners.length}function qn(e){if(P.spyListeners.length)for(var t=P.spyListeners,n=0,r=t.length;n<r;n++)t[n](e)}function Jn(e){qn(ge({},e,{spyReportStart:!0}))}var Yn={type:`report-end`,spyReportEnd:!0};function Xn(e){qn(e?ge({},e,{type:`report-end`,spyReportEnd:!0}):Yn)}function Zn(e){return P.spyListeners.push(e),g(function(){P.spyListeners=P.spyListeners.filter(function(t){return t!==e})})}var Qn=`action`,$n=`action.bound`,er=`autoAction`,tr=`autoAction.bound`,nr=`<unnamed action>`,rr=Xe(Qn),ir=Xe($n,{bound:!0}),ar=Xe(er,{autoAction:!0}),or=Xe(tr,{autoAction:!0,bound:!0});function sr(e){return function(t,r){if(v(t))return Kt(t.name||nr,t,e);if(v(r))return Kt(t,r,e);if(Ae(r))return(e?ar:rr).decorate_20223_(t,r);if(y(r))return De(t,r,e?ar:rr);if(y(t))return Ee(Xe(e?er:Qn,{name:t,autoAction:e}));n("Invalid arguments for `action`")}}var cr=sr(!1);Object.assign(cr,rr);var lr=sr(!0);Object.assign(lr,ar),cr.bound=Ee(ir),lr.bound=Ee(or);function ur(e){return qt(e.name||nr,!1,e,this,void 0)}function dr(e){return v(e)&&e.isMobxAction===!0}function fr(e,t){var r;t===void 0&&(t=u),v(e)||n(`Autorun expects a function as first argument`),dr(e)&&n(`Autorun does not accept actions since actions are untrackable`);var i=t?.name??(e.name||`Autorun@`+h()),a=!t.scheduler&&!t.delay,o;if(a)o=new I(i,function(){this.track(l)},t.onError,t.requiresObservable);else{var s=mr(t),c=!1;o=new I(i,function(){c||(c=!0,s(function(){c=!1,o.isDisposed||o.track(l)}))},t.onError,t.requiresObservable)}function l(){e(o)}return(r=t)!=null&&(r=r.signal)!=null&&r.aborted||o.schedule_(),o.getDisposer_(t?.signal)}var pr=function(e){return e()};function mr(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:pr}function hr(e,t,r){var i;r===void 0&&(r=u),(!v(e)||!v(t))&&n(`First and second argument to reaction should be functions`),x(r)||n(`Third argument of reactions should be an object`);var a=r.name??`Reaction@`+h(),o=cr(a,r.onError?gr(r.onError,t):t),s=!r.scheduler&&!r.delay,c=mr(r),l=!0,d=!1,f,p=r.compareStructural?ze.structural:r.equals||ze.default,m=new I(a,function(){l||s?g():d||(d=!0,c(g))},r.onError,r.requiresObservable);function g(){if(d=!1,!m.isDisposed){var t=!1,n=f;m.track(function(){var n=Xt(!1,function(){return e(m)});t=l||!p(f,n),f=n}),(l&&r.fireImmediately||!l&&t)&&o(f,n,m),l=!1}}return(i=r)!=null&&(i=i.signal)!=null&&i.aborted||m.schedule_(),m.getDisposer_(r?.signal)}function gr(e,t){return function(){try{return t.apply(this,arguments)}catch(t){e.call(this,t)}}}var _r=`onBO`,vr=`onBUO`;function yr(e,t,n){return xr(_r,e,t,n)}function br(e,t,n){return xr(vr,e,t,n)}function xr(e,t,n,r){var i=typeof r==`function`?ga(t,n):ga(t),a=v(r)?r:n,o=e+`L`;return i[o]?i[o].add(a):i[o]=new Set([a]),function(){var e=i[o];e&&(e.delete(a),e.size===0&&delete i[o])}}var Sr=`never`,Cr=`always`,wr=`observed`;function Tr(e){e.isolateGlobalState===!0&&Tn();var t=e.useProxies,n=e.enforceActions;if(t!==void 0&&(P.useProxies=t===Cr?!0:t===Sr?!1:typeof Proxy<`u`),t===`ifavailable`&&(P.verifyProxies=!0),n!==void 0){var r=n===Cr?Cr:n===wr;P.enforceActions=r,P.allowStateChanges=!(r===!0||r===Cr)}[`computedRequiresReaction`,`reactionRequiresObservable`,`observableRequiresReaction`,`disableErrorBoundaries`,`safeDescriptors`].forEach(function(t){t in e&&(P[t]=!!e[t])}),P.allowStateReads=!P.observableRequiresReaction,P.disableErrorBoundaries===!0&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),e.reactionScheduler&&Gn(e.reactionScheduler)}function Er(e,t,r,i){arguments.length>4&&n(`'extendObservable' expected 2-4 arguments`),typeof e!=`object`&&n(`'extendObservable' expects an object as first argument`),Wi(e)&&n(`'extendObservable' should not be used on maps, use map.merge instead`),x(t)||n(`'extendObservable' only accepts plain objects as second argument`),(Yr(t)||Yr(r))&&n(`Extending an object with another observable (object) is not supported`);var a=le(t);return ya(function(){var t=ea(e,i)[O];T(a).forEach(function(e){t.extend_(e,a[e],r&&e in r?r[e]:!0)})}),e}function Dr(e,t){return Or(ga(e,t))}function Or(e){var t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=jr(e.observing_).map(Or)),t}function kr(e,t){return Ar(ga(e,t))}function Ar(e){var t={name:e.name_};return On(e)&&(t.observers=Array.from(kn(e)).map(Ar)),t}function jr(e){return Array.from(new Set(e))}var Mr=0,Nr=function(e){function t(){var n=e.call(this,`FLOW_CANCELLED`)||this;return Object.setPrototypeOf(n,(this instanceof t?this.constructor:void 0).prototype),n.name=`FlowCancellationError`,n}ve(t,e);var n=t.prototype;return n.toString=function(){return`Error: `+this.message},t}(we(Error));function Pr(e){return e instanceof Nr}var Fr=nt(`flow`),Ir=nt(`flow.bound`,{bound:!0}),Lr=Object.assign(function(e,t){if(Ae(t))return Fr.decorate_20223_(e,t);if(y(t))return De(e,t,Fr);arguments.length!==1&&n(`Flow expects single argument with generator function`);var r=e,i=r.name||`<unnamed flow>`,a=function(){var e=this,t=arguments,n=++Mr,a=cr(i+` - runid: `+n+` - init`,r).apply(e,t),o,s=void 0,c=new Promise(function(e,t){var r=0;o=t;function c(e){s=void 0;var o;try{o=cr(i+` - runid: `+n+` - yield `+ r++,a.next).call(a,e)}catch(e){return t(e)}u(o)}function l(e){s=void 0;var o;try{o=cr(i+` - runid: `+n+` - yield `+ r++,a.throw).call(a,e)}catch(e){return t(e)}u(o)}function u(n){if(v(n?.then)){n.then(u,t);return}return n.done?e(n.value):(s=Promise.resolve(n.value),s.then(c,l))}c(void 0)});return c.cancel=cr(i+` - runid: `+n+` - cancel`,function(){try{s&&Rr(s);var e=a.return(void 0),t=Promise.resolve(e.value);t.then(_,_),Rr(t),o(new Nr)}catch(e){o(e)}}),c};return a.isMobXFlow=!0,a},Fr);Lr.bound=Ee(Ir);function Rr(e){v(e.cancel)&&e.cancel()}function zr(e){return e}function Br(e){return e?.isMobXFlow===!0}function Vr(e,t,r){var i;if(Wi(e)||zi(e)||tn(e))i=_a(e);else if(ra(e)){if(!y(t))return n(`InterceptReads can only be used with a specific property, not with an object in general`);i=_a(e,t)}else return n(`Expected observable map, object or array as first array`);return i.dehancer===void 0?(i.dehancer=typeof t==`function`?t:r,function(){i.dehancer=void 0}):n(`An intercept reader was already established`)}function Hr(e,t,n){return v(n)?Wr(e,t,n):Ur(e,t)}function Ur(e,t){return _a(e).intercept_(t)}function Wr(e,t,n){return _a(e,t).intercept_(n)}function Gr(e,t){return t===void 0?rn(e):ra(e)===!1||!e[O].values_.has(t)?!1:rn(ga(e,t))}function Kr(e){return arguments.length>1?n(`isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property`):Gr(e)}function qr(e,t){return y(t)?Gr(e,t):n(`isComputed expected a property name as second argument`)}function Jr(e,t){return e?t===void 0?ra(e)||!!e[O]||Ne(e)||L(e)||rn(e):Wi(e)||zi(e)?n(`isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.`):ra(e)?e[O].values_.has(t):!1:!1}function Yr(e){return arguments.length!==1&&n(`isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property`),Jr(e)}function Xr(e,t){return y(t)?Jr(e,t):n(`expected a property name as second argument`)}function Zr(e){if(ra(e))return e[O].keys_();if(Wi(e)||Yi(e))return Array.from(e.keys());if(zi(e))return e.map(function(e,t){return t});n(5)}function Qr(e){if(ra(e))return Zr(e).map(function(t){return e[t]});if(Wi(e))return Zr(e).map(function(t){return e.get(t)});if(Yi(e))return Array.from(e.values());if(zi(e))return e.slice();n(6)}function $r(e){if(ra(e))return Zr(e).map(function(t){return[t,e[t]]});if(Wi(e))return Zr(e).map(function(t){return[t,e.get(t)]});if(Yi(e))return Array.from(e.entries());if(zi(e))return e.map(function(e,t){return[t,e]});n(7)}function ei(e,t,r){if(arguments.length===2&&!Yi(e)){Nn();var i=t;try{for(var a in i)ei(e,a,i[a])}finally{Pn()}return}ra(e)?e[O].set_(t,r):Wi(e)?e.set(t,r):Yi(e)?e.add(t):zi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),t<0&&n(`Invalid index: '`+t+`'`),Nn(),t>=e.length&&(e.length=t+1),e[t]=r,Pn()):n(8)}function ti(e,t){ra(e)?e[O].delete_(t):Wi(e)||Yi(e)?e.delete(t):zi(e)?(typeof t!=`number`&&(t=parseInt(t,10)),e.splice(t,1)):n(9)}function ni(e,t){if(ra(e))return e[O].has_(t);if(Wi(e)||Yi(e))return e.has(t);if(zi(e))return t>=0&&t<e.length;n(10)}function ri(e,t){if(ni(e,t)){if(ra(e))return e[O].get_(t);if(Wi(e))return e.get(t);if(zi(e))return e[t];n(11)}}function ii(e,t,r){if(ra(e))return e[O].defineProperty_(t,r);n(39)}function ai(e){if(ra(e))return e[O].ownKeys_();n(38)}function oi(e,t,n,r){return v(n)?ci(e,t,n,r):si(e,t,n)}function si(e,t,n){return _a(e).observe_(t,n)}function ci(e,t,n,r){return _a(e,t).observe_(n,r)}function R(e,t,n){return e.set(t,n),n}function z(e,t){if(typeof e!=`object`||!e||e instanceof Date||!Yr(e))return e;if(tn(e)||rn(e))return z(e.get(),t);if(t.has(e))return t.get(e);if(zi(e)){var n=R(t,e,Array(e.length));return e.forEach(function(e,r){n[r]=z(e,t)}),n}if(Yi(e)){var r=R(t,e,new Set);return e.forEach(function(e){r.add(z(e,t))}),r}if(Wi(e)){var i=R(t,e,new Map);return e.forEach(function(e,n){i.set(n,z(e,t))}),i}else{var a=R(t,e,{});return ai(e).forEach(function(n){c.propertyIsEnumerable.call(e,n)&&(a[n]=z(e[n],t))}),a}}function B(e,t){return t&&n(`toJS no longer supports options`),z(e,new Map)}function li(){var e=!1,t=[...arguments];typeof t[t.length-1]==`boolean`&&(e=t.pop());var r=ui(t);if(!r)return n(`'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly`);r.isTracing_===an.NONE&&console.log(`[mobx.trace] '`+r.name_+`' tracing enabled`),r.isTracing_=e?an.BREAK:an.LOG}function ui(e){switch(e.length){case 0:return P.trackingDerivation;case 1:return ga(e[0]);case 2:return ga(e[0],e[1])}}function di(e,t){t===void 0&&(t=void 0),Nn();try{return e.apply(t)}finally{Pn()}}function fi(e,t,n){return arguments.length===1||t&&typeof t==`object`?mi(e,t):pi(e,t,n||{})}function pi(e,t,n){var r;if(typeof n.timeout==`number`){var i=Error(`WHEN_TIMEOUT`);r=setTimeout(function(){if(!o[O].isDisposed)if(o(),n.onError)n.onError(i);else throw i},n.timeout)}n.name=n.name||`When@`+h();var a=Kt(n.name+`-effect`,t),o=fr(function(t){Xt(!1,e)&&(t.dispose(),r&&clearTimeout(r),a())},n);return o}function mi(e,t){var r;if(t&&t.onError)return n(`the options 'onError' and 'promise' cannot be combined`);if(t!=null&&(r=t.signal)!=null&&r.aborted)return Object.assign(Promise.reject(Error(`WHEN_ABORTED`)),{cancel:function(){return null}});var i,a,o=new Promise(function(n,r){var o,s=pi(e,n,ge({},t,{onError:r}));i=function(){s(),r(Error(`WHEN_CANCELLED`))},a=function(){s(),r(Error(`WHEN_ABORTED`))},t==null||(o=t.signal)==null||o.addEventListener==null||o.addEventListener(`abort`,a)}).finally(function(){var e;return t==null||(e=t.signal)==null||e.removeEventListener==null?void 0:e.removeEventListener(`abort`,a)});return o.cancel=i,o}function hi(e){return e[O]}var gi={has:function(e,t){return P.trackingDerivation&&m(`detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.`),hi(e).has_(t)},get:function(e,t){return hi(e).get_(t)},set:function(e,t,n){return y(t)?(hi(e).values_.has(t)||m(`add a new observable property through direct assignment. Use 'set' from 'mobx' instead.`),hi(e).set_(t,n,!0)??!0):!1},deleteProperty:function(e,t){return m(`delete properties from an observable object. Use 'remove' from 'mobx' instead.`),y(t)?hi(e).delete_(t,!0)??!0:!1},defineProperty:function(e,t,n){return m(`define property on an observable object. Use 'defineProperty' from 'mobx' instead.`),hi(e).defineProperty_(t,n)??!0},ownKeys:function(e){return P.trackingDerivation&&m(`iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.`),hi(e).ownKeys_()},preventExtensions:function(e){n(13)}};function _i(e,t){var n;return p(),e=ea(e,t),(n=e[O]).proxy_??(n.proxy_=new Proxy(e,gi))}function vi(e){return e.interceptors_!==void 0&&e.interceptors_.length>0}function yi(e,t){var n=e.interceptors_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function bi(e,t){var r=N();try{for(var i=[].concat(e.interceptors_||[]),a=0,o=i.length;a<o&&(t=i[a](t),t&&!t.type&&n(14),t);a++);return t}finally{_n(r)}}function xi(e){return e.changeListeners_!==void 0&&e.changeListeners_.length>0}function Si(e,t){var n=e.changeListeners_||=[];return n.push(t),g(function(){var e=n.indexOf(t);e!==-1&&n.splice(e,1)})}function Ci(e,t){var n=N(),r=e.changeListeners_;if(r){r=r.slice();for(var i=0,a=r.length;i<a;i++)r[i](t);_n(n)}}function wi(e,t,r){return ya(function(){var i=ea(e,r)[O];t&&e[Te]&&n(`makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.`),t??=ke(e),T(t).forEach(function(e){return i.make_(e,t[e])})}),e}var Ti=Symbol(`mobx-keys`);function Ei(e,t,r){return!x(e)&&!x(Object.getPrototypeOf(e))&&n(`'makeAutoObservable' can only be used for classes that don't have a superclass`),ra(e)&&n(`makeAutoObservable can only be used on objects not already made observable`),x(e)?Er(e,e,t,r):(ya(function(){var n=ea(e,r)[O];if(!e[Ti]){var i=Object.getPrototypeOf(e),a=new Set([].concat(T(e),T(i)));a.delete(`constructor`),a.delete(O),C(i,Ti,a)}e[Ti].forEach(function(e){return n.make_(e,t&&e in t?t[e]:!0)})}),e)}var Di=`splice`,Oi=`update`,ki=1e4,Ai={get:function(e,t){var n=e[O];return t===O?n:t===`length`?n.getArrayLength_():typeof t==`string`&&!isNaN(t)?n.get_(parseInt(t)):ce(Ni,t)?Ni[t]:e[t]},set:function(e,t,n){var r=e[O];return t===`length`&&r.setArrayLength_(n),typeof t==`symbol`||isNaN(t)?e[t]=n:r.set_(parseInt(t),n),!0},preventExtensions:function(){n(15)}},ji=function(){function e(e,t,n,r){e===void 0&&(e=`ObservableArray@`+h()),this.owned_=void 0,this.legacyMode_=void 0,this.atom_=void 0,this.values_=[],this.interceptors_=void 0,this.changeListeners_=void 0,this.enhancer_=void 0,this.dehancer=void 0,this.proxy_=void 0,this.lastKnownLength_=0,this.owned_=n,this.legacyMode_=r,this.atom_=new Me(e),this.enhancer_=function(n,r){return t(n,r,e+`[..]`)}}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.dehanceValues_=function(e){return this.dehancer!==void 0&&e.length>0?e.map(this.dehancer):e},t.intercept_=function(e){return yi(this,e)},t.observe_=function(e,t){return t===void 0&&(t=!1),t&&e({observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:`splice`,index:0,added:this.values_.slice(),addedCount:this.values_.length,removed:[],removedCount:0}),Si(this,e)},t.getArrayLength_=function(){return this.atom_.reportObserved(),this.values_.length},t.setArrayLength_=function(e){(typeof e!=`number`||isNaN(e)||e<0)&&n(`Out of range: `+e);var t=this.values_.length;if(e!==t)if(e>t){for(var r=Array(e-t),i=0;i<e-t;i++)r[i]=void 0;this.spliceWithArray_(t,0,r)}else this.spliceWithArray_(e,t-e)},t.updateArrayLength_=function(e,t){e!==this.lastKnownLength_&&n(16),this.lastKnownLength_+=t,this.legacyMode_&&t>0&&ma(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;un(this.atom_);var i=this.values_.length;if(e===void 0?e=0:e>i?e=i:e<0&&(e=Math.max(0,i+e)),t=arguments.length===1?i-e:t==null?0:Math.max(0,Math.min(t,i-e)),n===void 0&&(n=l),vi(this)){var a=bi(this,{object:this.proxy_,type:Di,index:e,removedCount:t,added:n});if(!a)return l;t=a.removedCount,n=a.added}if(n=n.length===0?n:n.map(function(e){return r.enhancer_(e,void 0)}),this.legacyMode_||!0){var o=n.length-t;this.updateArrayLength_(i,o)}var s=this.spliceItemsIntoValues_(e,t,n);return(t!==0||n.length!==0)&&this.notifyArraySplice_(e,n,s),this.dehanceValues_(s)},t.spliceItemsIntoValues_=function(e,t,n){if(n.length<ki){var r;return(r=this.values_).splice.apply(r,[e,t].concat(n))}else{var i=this.values_.slice(e,e+t),a=this.values_.slice(e+t);this.values_.length+=n.length-t;for(var o=0;o<n.length;o++)this.values_[e+o]=n[o];for(var s=0;s<a.length;s++)this.values_[e+n.length+s]=a[s];return i}},t.notifyArrayChildUpdate_=function(e,t,n){var r=!this.owned_&&Kn(),i=xi(this),a=i||r?{observableKind:`array`,object:this.proxy_,type:Oi,debugObjectName:this.atom_.name_,index:e,newValue:t,oldValue:n}:null;r&&Jn(a),this.atom_.reportChanged(),i&&Ci(this,a),r&&Xn()},t.notifyArraySplice_=function(e,t,n){var r=!this.owned_&&Kn(),i=xi(this),a=i||r?{observableKind:`array`,object:this.proxy_,debugObjectName:this.atom_.name_,type:Di,index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;r&&Jn(a),this.atom_.reportChanged(),i&&Ci(this,a),r&&Xn()},t.get_=function(e){if(this.legacyMode_&&e>=this.values_.length){console.warn(`[mobx.array] Attempt to read an array index (`+e+`) that is out of bounds (`+this.values_.length+`). Please check length first. Out of bound indices will not be tracked by MobX`);return}return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e])},t.set_=function(e,t){var r=this.values_;if(this.legacyMode_&&e>r.length&&n(17,e,r.length),e<r.length){un(this.atom_);var i=r[e];if(vi(this)){var a=bi(this,{type:Oi,object:this.proxy_,index:e,newValue:t});if(!a)return;t=a.newValue}t=this.enhancer_(t,i),t!==i&&(r[e]=t,this.notifyArrayChildUpdate_(e,t,i))}else{for(var o=Array(e+1-r.length),s=0;s<o.length-1;s++)o[s]=void 0;o[o.length-1]=t,this.spliceWithArray_(r.length,0,o)}},e}();function Mi(e,t,n,r){return n===void 0&&(n=`ObservableArray@`+h()),r===void 0&&(r=!1),p(),ya(function(){var i=new ji(n,t,r,!1);ee(i.values_,O,i);var a=new Proxy(i.values_,Ai);return i.proxy_=a,e&&e.length&&i.spliceWithArray_(0,0,e),a})}var Ni={clear:function(){return this.splice(0)},replace:function(e){var t=this[O];return t.spliceWithArray_(0,t.values_.length,e)},toJSON:function(){return this.slice()},splice:function(e,t){var n=[...arguments].slice(2),r=this[O];switch(arguments.length){case 0:return[];case 1:return r.spliceWithArray_(e);case 2:return r.spliceWithArray_(e,t)}return r.spliceWithArray_(e,t,n)},spliceWithArray:function(e,t,n){return this[O].spliceWithArray_(e,t,n)},push:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(e.values_.length,0,t),e.values_.length},pop:function(){return this.splice(Math.max(this[O].values_.length-1,0),1)[0]},shift:function(){return this.splice(0,1)[0]},unshift:function(){var e=this[O],t=[...arguments];return e.spliceWithArray_(0,0,t),e.values_.length},reverse:function(){return P.trackingDerivation&&n(37,`reverse`),this.replace(this.slice().reverse()),this},sort:function(){P.trackingDerivation&&n(37,`sort`);var e=this.slice();return e.sort.apply(e,arguments),this.replace(e),this},remove:function(e){var t=this[O],n=t.dehanceValues_(t.values_).indexOf(e);return n>-1?(this.splice(n,1),!0):!1}};Pi(`at`,Fi),Pi(`concat`,Fi),Pi(`flat`,Fi),Pi(`includes`,Fi),Pi(`indexOf`,Fi),Pi(`join`,Fi),Pi(`lastIndexOf`,Fi),Pi(`slice`,Fi),Pi(`toString`,Fi),Pi(`toLocaleString`,Fi),Pi(`toSorted`,Fi),Pi(`toSpliced`,Fi),Pi(`with`,Fi),Pi(`every`,Ii),Pi(`filter`,Ii),Pi(`find`,Ii),Pi(`findIndex`,Ii),Pi(`findLast`,Ii),Pi(`findLastIndex`,Ii),Pi(`flatMap`,Ii),Pi(`forEach`,Ii),Pi(`map`,Ii),Pi(`some`,Ii),Pi(`toReversed`,Ii),Pi(`reduce`,Li),Pi(`reduceRight`,Li);function Pi(e,t){typeof Array.prototype[e]==`function`&&(Ni[e]=t(e))}function Fi(e){return function(){var t=this[O];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function Ii(e){return function(t,n){var r=this,i=this[O];return i.atom_.reportObserved(),i.dehanceValues_(i.values_)[e](function(e,i){return t.call(n,e,i,r)})}}function Li(e){return function(){var t=this,n=this[O];n.atom_.reportObserved();var r=n.dehanceValues_(n.values_),i=arguments[0];return arguments[0]=function(e,n,r){return i(e,n,r,t)},r[e].apply(r,arguments)}}var Ri=te(`ObservableArrayAdministration`,ji);function zi(e){return b(e)&&Ri(e[O])}var Bi={},Vi=`add`,Hi=`delete`,Ui=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableMap@`+h()),this.enhancer_=void 0,this.name_=void 0,this[O]=Bi,this.data_=void 0,this.hasMap_=void 0,this.keysAtom_=void 0,this.interceptors_=void 0,this.changeListeners_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=r,v(Map)||n(18),ya(function(){i.keysAtom_=Pe(i.name_+`.keys()`),i.data_=new Map,i.hasMap_=new Map,e&&i.merge(e)})}var t=e.prototype;return t.has_=function(e){return this.data_.has(e)},t.has=function(e){var t=this;if(!P.trackingDerivation)return this.has_(e);var n=this.hasMap_.get(e);if(!n){var r=n=new en(this.has_(e),He,this.name_+`.`+oe(e)+`?`,!1);this.hasMap_.set(e,r),br(r,function(){return t.hasMap_.delete(e)})}return n.get()},t.set=function(e,t){var n=this.has_(e);if(vi(this)){var r=bi(this,{type:n?Oi:Vi,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this},t.delete=function(e){var t=this;if(un(this.keysAtom_),vi(this)&&!bi(this,{type:Hi,object:this,name:e}))return!1;if(this.has_(e)){var n=Kn(),r=xi(this),i=r||n?{observableKind:`map`,debugObjectName:this.name_,type:Hi,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return n&&Jn(i),di(function(){var n;t.keysAtom_.reportChanged(),(n=t.hasMap_.get(e))==null||n.setNewValue_(!1),t.data_.get(e).setNewValue_(void 0),t.data_.delete(e)}),r&&Ci(this,i),n&&Xn(),!0}return!1},t.updateValue_=function(e,t){var n=this.data_.get(e);if(t=n.prepareNewValue_(t),t!==P.UNCHANGED){var r=Kn(),i=xi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Oi,object:this,oldValue:n.value_,name:e,newValue:t}:null;r&&Jn(a),n.setNewValue_(t),i&&Ci(this,a),r&&Xn()}},t.addValue_=function(e,t){var n=this;un(this.keysAtom_),di(function(){var r,i=new en(t,n.enhancer_,n.name_+`.`+oe(e),!1);n.data_.set(e,i),t=i.value_,(r=n.hasMap_.get(e))==null||r.setNewValue_(!0),n.keysAtom_.reportChanged()});var r=Kn(),i=xi(this),a=i||r?{observableKind:`map`,debugObjectName:this.name_,type:Vi,object:this,name:e,newValue:t}:null;r&&Jn(a),i&&Ci(this,a),r&&Xn()},t.get=function(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)},t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.keys=function(){return this.keysAtom_.reportObserved(),this.data_.keys()},t.values=function(){var e=this,t=this.keys();return Gi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:e.get(i)}}})},t.entries=function(){var e=this,t=this.keys();return Gi({next:function(){var n=t.next(),r=n.done,i=n.value;return{done:r,value:r?void 0:[i,e.get(i)]}}})},t[Symbol.iterator]=function(){return this.entries()},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value,a=i[0],o=i[1];e.call(t,o,a,this)}},t.merge=function(e){var t=this;return Wi(e)&&(e=new Map(e)),di(function(){x(e)?w(e).forEach(function(n){return t.set(n,e[n])}):Array.isArray(e)?e.forEach(function(e){var n=e[0],r=e[1];return t.set(n,r)}):ne(e)?(re(e)||n(19,e),e.forEach(function(e,n){return t.set(n,e)})):e!=null&&n(20,e)}),this},t.clear=function(){var e=this;di(function(){gn(function(){for(var t=he(e.keys()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.replace=function(e){var t=this;return di(function(){for(var n=Ki(e),r=new Map,i=!1,a=he(t.data_.keys()),o;!(o=a()).done;){var s=o.value;if(!n.has(s))if(t.delete(s))i=!0;else{var c=t.data_.get(s);r.set(s,c)}}for(var l=he(n.entries()),u;!(u=l()).done;){var d=u.value,f=d[0],p=d[1],m=t.data_.has(f);if(t.set(f,p),t.data_.has(f)){var h=t.data_.get(f);r.set(f,h),m||(i=!0)}}if(!i)if(t.data_.size!==r.size)t.keysAtom_.reportChanged();else for(var g=t.data_.keys(),_=r.keys(),v=g.next(),y=_.next();!v.done;){if(v.value!==y.value){t.keysAtom_.reportChanged();break}v=g.next(),y=_.next()}t.data_=r}),this},t.toString=function(){return`[object ObservableMap]`},t.toJSON=function(){return Array.from(this)},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with maps."),Si(this,e)},t.intercept_=function(e){return yi(this,e)},me(e,[{key:`size`,get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Map`}}])}(),Wi=te(`ObservableMap`,Ui);function Gi(e){return e[Symbol.toStringTag]=`MapIterator`,Ta(e)}function Ki(e){if(ne(e)||Wi(e))return e;if(Array.isArray(e))return new Map(e);if(x(e)){var t=new Map;for(var r in e)t.set(r,e[r]);return t}else return n(21,e)}var qi={},Ji=function(){function e(e,t,r){var i=this;t===void 0&&(t=Be),r===void 0&&(r=`ObservableSet@`+h()),this.name_=void 0,this[O]=qi,this.data_=new Set,this.atom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.dehancer=void 0,this.enhancer_=void 0,this.name_=r,v(Set)||n(22),this.enhancer_=function(e,n){return t(e,n,r)},ya(function(){i.atom_=Pe(i.name_),e&&i.replace(e)})}var t=e.prototype;return t.dehanceValue_=function(e){return this.dehancer===void 0?e:this.dehancer(e)},t.clear=function(){var e=this;di(function(){gn(function(){for(var t=he(e.data_.values()),n;!(n=t()).done;){var r=n.value;e.delete(r)}})})},t.forEach=function(e,t){for(var n=he(this),r;!(r=n()).done;){var i=r.value;e.call(t,i,i,this)}},t.add=function(e){var t=this;if(un(this.atom_),vi(this)){var n=bi(this,{type:Vi,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){di(function(){t.data_.add(t.enhancer_(e,void 0)),t.atom_.reportChanged()});var r=Kn(),i=xi(this),a=i||r?{observableKind:`set`,debugObjectName:this.name_,type:Vi,object:this,newValue:e}:null;r&&Jn(a),i&&Ci(this,a),r&&Xn()}return this},t.delete=function(e){var t=this;if(vi(this)&&!bi(this,{type:Hi,object:this,oldValue:e}))return!1;if(this.has(e)){var n=Kn(),r=xi(this),i=r||n?{observableKind:`set`,debugObjectName:this.name_,type:Hi,object:this,oldValue:e}:null;return n&&Jn(i),di(function(){t.atom_.reportChanged(),t.data_.delete(e)}),r&&Ci(this,i),n&&Xn(),!0}return!1},t.has=function(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))},t.entries=function(){var e=this.values();return Xi({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},t.keys=function(){return this.values()},t.values=function(){this.atom_.reportObserved();var e=this,t=this.data_.values();return Xi({next:function(){var n=t.next(),r=n.value,i=n.done;return i?{value:void 0,done:i}:{value:e.dehanceValue_(r),done:i}}})},t.intersection=function(e){return ie(e)&&!Yi(e)?e.intersection(this):new Set(this).intersection(e)},t.union=function(e){return ie(e)&&!Yi(e)?e.union(this):new Set(this).union(e)},t.difference=function(e){return new Set(this).difference(e)},t.symmetricDifference=function(e){return ie(e)&&!Yi(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},t.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},t.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},t.isDisjointFrom=function(e){return ie(e)&&!Yi(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},t.replace=function(e){var t=this;return Yi(e)&&(e=new Set(e)),di(function(){Array.isArray(e)||ie(e)?(t.clear(),e.forEach(function(e){return t.add(e)})):e!=null&&n(`Cannot initialize set from `+e)}),this},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support fireImmediately=true in combination with sets."),Si(this,e)},t.intercept_=function(e){return yi(this,e)},t.toJSON=function(){return Array.from(this)},t.toString=function(){return`[object ObservableSet]`},t[Symbol.iterator]=function(){return this.values()},me(e,[{key:`size`,get:function(){return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return`Set`}}])}(),Yi=te(`ObservableSet`,Ji);function Xi(e){return e[Symbol.toStringTag]=`SetIterator`,Ta(e)}var Zi=Object.create(null),Qi=`remove`,$i=function(){function e(e,t,r,i){t===void 0&&(t=new Map),i===void 0&&(i=yt),this.target_=void 0,this.values_=void 0,this.name_=void 0,this.defaultAnnotation_=void 0,this.keysAtom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.proxy_=void 0,this.isPlainObject_=void 0,this.appliedAnnotations_=void 0,this.pendingKeys_=void 0,this.target_=e,this.values_=t,this.name_=r,this.defaultAnnotation_=i,this.keysAtom_=new Me(this.name_+`.keys`),this.isPlainObject_=x(this.target_),Da(this.defaultAnnotation_)||n(`defaultAnnotation must be valid annotation`),this.appliedAnnotations_={}}var t=e.prototype;return t.getObservablePropValue_=function(e){return this.values_.get(e).get()},t.setObservablePropValue_=function(e,t){var n=this.values_.get(e);if(n instanceof nn)return n.set(t),!0;if(vi(this)){var r=bi(this,{type:Oi,object:this.proxy_||this.target_,name:e,newValue:t});if(!r)return null;t=r.newValue}if(t=n.prepareNewValue_(t),t!==P.UNCHANGED){var i=xi(this),a=Kn(),o=i||a?{type:Oi,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:n.value_,name:e,newValue:t}:null;a&&Jn(o),n.setNewValue_(t),i&&Ci(this,o),a&&Xn()}return!0},t.get_=function(e){return P.trackingDerivation&&!ce(this.target_,e)&&this.has_(e),this.target_[e]},t.set_=function(e,t,n){return n===void 0&&(n=!1),ce(this.target_,e)?this.values_.has(e)?this.setObservablePropValue_(e,t):n?Reflect.set(this.target_,e,t):(this.target_[e]=t,!0):this.extend_(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.defaultAnnotation_,n)},t.has_=function(e){if(!P.trackingDerivation)return e in this.target_;this.pendingKeys_||=new Map;var t=this.pendingKeys_.get(e);return t||(t=new en(e in this.target_,He,this.name_+`.`+oe(e)+`?`,!1),this.pendingKeys_.set(e,t)),t.get()},t.make_=function(e,t){if(t===!0&&(t=this.defaultAnnotation_),t!==!1){if(aa(this,t,e),!(e in this.target_)){var r;if((r=this.target_[Te])!=null&&r[e])return;n(1,t.annotationType_,this.name_+`.`+e.toString())}for(var i=this.target_;i&&i!==c;){var a=o(i,e);if(a){var s=t.make_(this,e,a,i);if(s===0)return;if(s===1)break}i=Object.getPrototypeOf(i)}ia(this,t,e)}},t.extend_=function(e,t,n,r){if(r===void 0&&(r=!1),n===!0&&(n=this.defaultAnnotation_),n===!1)return this.defineProperty_(e,t,r);aa(this,n,e);var i=n.extend_(this,e,t,r);return i&&ia(this,n,e),i},t.defineProperty_=function(e,t,n){n===void 0&&(n=!1),un(this.keysAtom_);try{Nn();var r=this.delete_(e);if(!r)return r;if(vi(this)){var i=bi(this,{object:this.proxy_||this.target_,name:e,type:Vi,newValue:t.value});if(!i)return null;var a=i.newValue;t.value!==a&&(t=ge({},t,{value:a}))}if(n){if(!Reflect.defineProperty(this.target_,e,t))return!1}else s(this.target_,e,t);this.notifyPropertyAddition_(e,t.value)}finally{Pn()}return!0},t.defineObservableProperty_=function(e,t,n,r){r===void 0&&(r=!1),un(this.keysAtom_);try{Nn();var i=this.delete_(e);if(!i)return i;if(vi(this)){var a=bi(this,{object:this.proxy_||this.target_,name:e,type:Vi,newValue:t});if(!a)return null;t=a.newValue}var o=na(e),c={configurable:P.safeDescriptors?this.isPlainObject_:!0,enumerable:!0,get:o.get,set:o.set};if(r){if(!Reflect.defineProperty(this.target_,e,c))return!1}else s(this.target_,e,c);var l=new en(t,n,this.name_+`.`+e.toString(),!1);this.values_.set(e,l),this.notifyPropertyAddition_(e,l.value_)}finally{Pn()}return!0},t.defineComputedProperty_=function(e,t,n){n===void 0&&(n=!1),un(this.keysAtom_);try{Nn();var r=this.delete_(e);if(!r)return r;if(vi(this)&&!bi(this,{object:this.proxy_||this.target_,name:e,type:Vi,newValue:void 0}))return null;t.name||=this.name_+`.`+e.toString(),t.context=this.proxy_||this.target_;var i=na(e),a={configurable:P.safeDescriptors?this.isPlainObject_:!0,enumerable:!1,get:i.get,set:i.set};if(n){if(!Reflect.defineProperty(this.target_,e,a))return!1}else s(this.target_,e,a);this.values_.set(e,new nn(t)),this.notifyPropertyAddition_(e,void 0)}finally{Pn()}return!0},t.delete_=function(e,t){if(t===void 0&&(t=!1),un(this.keysAtom_),!ce(this.target_,e))return!0;if(vi(this)&&!bi(this,{object:this.proxy_||this.target_,name:e,type:Qi}))return null;try{var n;Nn();var r=xi(this),i=Kn(),a=this.values_.get(e),s=void 0;if(!a&&(r||i)&&(s=o(this.target_,e)?.value),t){if(!Reflect.deleteProperty(this.target_,e))return!1}else delete this.target_[e];if(delete this.appliedAnnotations_[e],a&&(this.values_.delete(e),a instanceof en&&(s=a.value_),In(a)),this.keysAtom_.reportChanged(),(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(e in this.target_),r||i){var c={type:Qi,observableKind:`object`,object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:s,name:e};i&&Jn(c),r&&Ci(this,c),i&&Xn()}}finally{Pn()}return!0},t.observe_=function(e,t){return t===!0&&n("`observe` doesn't support the fire immediately property for observable objects."),Si(this,e)},t.intercept_=function(e){return yi(this,e)},t.notifyPropertyAddition_=function(e,t){var n,r=xi(this),i=Kn();if(r||i){var a=r||i?{type:Vi,observableKind:`object`,debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;i&&Jn(a),r&&Ci(this,a),i&&Xn()}(n=this.pendingKeys_)==null||(n=n.get(e))==null||n.set(!0),this.keysAtom_.reportChanged()},t.ownKeys_=function(){return this.keysAtom_.reportObserved(),T(this.target_)},t.keys_=function(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)},e}();function ea(e,t){if(t&&ra(e)&&n(`Options can't be provided for already observable objects.`),ce(e,O))return _a(e)instanceof $i||n(`Cannot convert '`+va(e)+`' into observable object:
|
|
84
84
|
The target is already observable of different type.
|
|
85
|
-
Extending builtins is not supported.`),e;Object.isExtensible(e)||n(`Cannot make the designated object observable; it is not extensible`);var r=t?.name??(x(e)?`ObservableObject`:e.constructor.name)+`@`+h();return C(e,O,new $i(e,new Map,String(r),Ft(t))),e}var ta=
|
|
85
|
+
Extending builtins is not supported.`),e;Object.isExtensible(e)||n(`Cannot make the designated object observable; it is not extensible`);var r=t?.name??(x(e)?`ObservableObject`:e.constructor.name)+`@`+h();return C(e,O,new $i(e,new Map,String(r),Ft(t))),e}var ta=te(`ObservableObjectAdministration`,$i);function na(e){return Zi[e]||(Zi[e]={get:function(){return this[O].getObservablePropValue_(e)},set:function(t){return this[O].setObservablePropValue_(e,t)}})}function ra(e){return b(e)?ta(e[O]):!1}function ia(e,t,n){var r;e.appliedAnnotations_[n]=t,(r=e.target_[Te])==null||delete r[n]}function aa(e,t,r){if(Da(t)||n(`Cannot annotate '`+e.name_+`.`+r.toString()+`': Invalid annotation.`),!Ke(t)&&ce(e.appliedAnnotations_,r)){var i=e.name_+`.`+r.toString(),a=e.appliedAnnotations_[r].annotationType_,o=t.annotationType_;n(`Cannot apply '`+o+`' to '`+i+`':`+(`
|
|
86
86
|
The field is already annotated with '`+a+`'.`)+`
|
|
87
87
|
Re-annotating fields is not allowed.
|
|
88
|
-
Use 'override' annotation for methods overridden by subclass.`)}}var oa=fa(0),sa=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,e===!1}(),ca=0,la=function(){};function ua(e,t){Object.setPrototypeOf?Object.setPrototypeOf(e.prototype,t):e.prototype.__proto__===void 0?e.prototype=t:e.prototype.__proto__=t}ua(la,Array.prototype);var da=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray@`+h()),i===void 0&&(i=!1),a=e.call(this)||this,ya(function(){var e=new ji(r,n,i,!0);e.proxy_=a,ee(a,O,e),t&&t.length&&a.spliceWithArray(0,0,t),sa&&Object.defineProperty(a,`0`,oa)}),a}ve(t,e);var n=t.prototype;return n.concat=function(){this[O].atom_.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map(function(e){return zi(e)?e.slice():e}))},n[Symbol.iterator]=function(){var e=this,t=0;return Ta({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},me(t,[{key:`length`,get:function(){return this[O].getArrayLength_()},set:function(e){this[O].setArrayLength_(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(la);Object.entries(Ni).forEach(function(e){var t=e[0],n=e[1];t!==`concat`&&C(da.prototype,t,n)});function fa(e){return{enumerable:!1,configurable:!0,get:function(){return this[O].get_(e)},set:function(t){this[O].set_(e,t)}}}function pa(e){s(da.prototype,``+e,fa(e))}function ma(e){if(e>ca){for(var t=ca;t<e+100;t++)pa(t);ca=e}}ma(1e3);function ha(e,t,n){return new da(e,t,n)}function ga(e,t){if(typeof e==`object`&&e){if(zi(e))return t!==void 0&&n(23),e[O].atom_;if(Yi(e))return e.atom_;if(Wi(e)){if(t===void 0)return e.keysAtom_;var r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,va(e)),r}if(ra(e)){if(!t)return n(26);var i=e[O].values_.get(t);return i||n(27,t,va(e)),i}if(Ne(e)||rn(e)||L(e))return e}else if(v(e)&&L(e[O]))return e[O];n(28)}function _a(e,t){if(e||n(29),t!==void 0)return _a(ga(e,t));if(Ne(e)||rn(e)||L(e)||Wi(e)||Yi(e))return e;if(e[O])return e[O];n(24,e)}function va(e,t){var n;if(t!==void 0)n=ga(e,t);else if(dr(e))return e.name;else n=ra(e)||Wi(e)||Yi(e)?_a(e):ga(e);return n.name_}function ya(e){var t=N(),n=Zt(!0);Nn();try{return e()}finally{Pn(),Qt(n),_n(t)}}var ba=c.toString;function xa(e,t,n){return n===void 0&&(n=-1),Sa(e,t,n)}function Sa(e,t,n,r,i){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return!1;if(e!==e)return t!==t;var a=typeof e;if(a!==`function`&&a!==`object`&&typeof t!=`object`)return!1;var o=ba.call(e);if(o!==ba.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=Ca(e),t=Ca(t);var s=o===`[object Array]`;if(!s){if(typeof e!=`object`||typeof t!=`object`)return!1;var c=e.constructor,l=t.constructor;if(c!==l&&!(v(c)&&c instanceof c&&v(l)&&l instanceof l)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),r||=[],i||=[];for(var u=r.length;u--;)if(r[u]===e)return i[u]===t;if(r.push(e),i.push(t),s){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!Sa(e[u],t[u],n-1,r,i))return!1}else{var d=Object.keys(e),f=d.length;if(Object.keys(t).length!==f)return!1;for(var p=0;p<f;p++){var m=d[p];if(!(
|
|
88
|
+
Use 'override' annotation for methods overridden by subclass.`)}}var oa=fa(0),sa=function(){var e=!1,t={};return Object.defineProperty(t,`0`,{set:function(){e=!0}}),Object.create(t)[0]=1,e===!1}(),ca=0,la=function(){};function ua(e,t){Object.setPrototypeOf?Object.setPrototypeOf(e.prototype,t):e.prototype.__proto__===void 0?e.prototype=t:e.prototype.__proto__=t}ua(la,Array.prototype);var da=function(e){function t(t,n,r,i){var a;return r===void 0&&(r=`ObservableArray@`+h()),i===void 0&&(i=!1),a=e.call(this)||this,ya(function(){var e=new ji(r,n,i,!0);e.proxy_=a,ee(a,O,e),t&&t.length&&a.spliceWithArray(0,0,t),sa&&Object.defineProperty(a,`0`,oa)}),a}ve(t,e);var n=t.prototype;return n.concat=function(){this[O].atom_.reportObserved();var e=[...arguments];return Array.prototype.concat.apply(this.slice(),e.map(function(e){return zi(e)?e.slice():e}))},n[Symbol.iterator]=function(){var e=this,t=0;return Ta({next:function(){return t<e.length?{value:e[t++],done:!1}:{done:!0,value:void 0}}})},me(t,[{key:`length`,get:function(){return this[O].getArrayLength_()},set:function(e){this[O].setArrayLength_(e)}},{key:Symbol.toStringTag,get:function(){return`Array`}}])}(la);Object.entries(Ni).forEach(function(e){var t=e[0],n=e[1];t!==`concat`&&C(da.prototype,t,n)});function fa(e){return{enumerable:!1,configurable:!0,get:function(){return this[O].get_(e)},set:function(t){this[O].set_(e,t)}}}function pa(e){s(da.prototype,``+e,fa(e))}function ma(e){if(e>ca){for(var t=ca;t<e+100;t++)pa(t);ca=e}}ma(1e3);function ha(e,t,n){return new da(e,t,n)}function ga(e,t){if(typeof e==`object`&&e){if(zi(e))return t!==void 0&&n(23),e[O].atom_;if(Yi(e))return e.atom_;if(Wi(e)){if(t===void 0)return e.keysAtom_;var r=e.data_.get(t)||e.hasMap_.get(t);return r||n(25,t,va(e)),r}if(ra(e)){if(!t)return n(26);var i=e[O].values_.get(t);return i||n(27,t,va(e)),i}if(Ne(e)||rn(e)||L(e))return e}else if(v(e)&&L(e[O]))return e[O];n(28)}function _a(e,t){if(e||n(29),t!==void 0)return _a(ga(e,t));if(Ne(e)||rn(e)||L(e)||Wi(e)||Yi(e))return e;if(e[O])return e[O];n(24,e)}function va(e,t){var n;if(t!==void 0)n=ga(e,t);else if(dr(e))return e.name;else n=ra(e)||Wi(e)||Yi(e)?_a(e):ga(e);return n.name_}function ya(e){var t=N(),n=Zt(!0);Nn();try{return e()}finally{Pn(),Qt(n),_n(t)}}var ba=c.toString;function xa(e,t,n){return n===void 0&&(n=-1),Sa(e,t,n)}function Sa(e,t,n,r,i){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return!1;if(e!==e)return t!==t;var a=typeof e;if(a!==`function`&&a!==`object`&&typeof t!=`object`)return!1;var o=ba.call(e);if(o!==ba.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=Ca(e),t=Ca(t);var s=o===`[object Array]`;if(!s){if(typeof e!=`object`||typeof t!=`object`)return!1;var c=e.constructor,l=t.constructor;if(c!==l&&!(v(c)&&c instanceof c&&v(l)&&l instanceof l)&&`constructor`in e&&`constructor`in t)return!1}if(n===0)return!1;n<0&&(n=-1),r||=[],i||=[];for(var u=r.length;u--;)if(r[u]===e)return i[u]===t;if(r.push(e),i.push(t),s){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!Sa(e[u],t[u],n-1,r,i))return!1}else{var d=Object.keys(e),f=d.length;if(Object.keys(t).length!==f)return!1;for(var p=0;p<f;p++){var m=d[p];if(!(ce(t,m)&&Sa(e[m],t[m],n-1,r,i)))return!1}}return r.pop(),i.pop(),!0}function Ca(e){return zi(e)?e.slice():ne(e)||Wi(e)||ie(e)||Yi(e)?Array.from(e.entries()):e}var wa=i().Iterator?.prototype||{};function Ta(e){return e[Symbol.iterator]=Ea,Object.assign(Object.create(wa),e)}function Ea(){return this}function Da(e){return e instanceof Object&&typeof e.annotationType_==`string`&&v(e.make_)&&v(e.extend_)}[`Symbol`,`Map`,`Set`].forEach(function(e){i()[e]===void 0&&n(`MobX requires global '`+e+`' to be available or polyfilled`)}),typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==`object`&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:Zn,extras:{getDebugName:va},$mobx:O}),e.$mobx=O,e.FlowCancellationError=Nr,e.ObservableMap=Ui,e.ObservableSet=Ji,e.Reaction=I,e._allowStateChanges=Xt,e._allowStateChangesInsideComputed=ur,e._allowStateReadsEnd=yn,e._allowStateReadsStart=vn,e._autoAction=lr,e._endAction=Yt,e._getAdministration=_a,e._getGlobalState=En,e._interceptReads=Vr,e._isComputingDerivation=ln,e._resetGlobalState=Dn,e._startAction=Jt,e.action=cr,e.autorun=fr,e.comparer=ze,e.computed=Vt,e.configure=Tr,e.createAtom=Pe,e.defineProperty=ii,e.entries=$r,e.extendObservable=Er,e.flow=Lr,e.flowResult=zr,e.get=ri,e.getAtom=ga,e.getDebugName=va,e.getDependencyTree=Dr,e.getObserverTree=kr,e.has=ni,e.intercept=Hr,e.isAction=dr,e.isBoxedObservable=tn,e.isComputed=Kr,e.isComputedProp=qr,e.isFlow=Br,e.isFlowCancellationError=Pr,e.isObservable=Yr,e.isObservableArray=zi,e.isObservableMap=Wi,e.isObservableObject=ra,e.isObservableProp=Xr,e.isObservableSet=Yi,e.keys=Zr,e.makeAutoObservable=Ei,e.makeObservable=wi,e.observable=j,e.observe=oi,e.onBecomeObserved=yr,e.onBecomeUnobserved=br,e.onReactionError=Bn,e.override=Ge,e.ownKeys=ai,e.reaction=hr,e.remove=ti,e.runInAction=ur,e.set=ei,e.spy=Zn,e.toJS=B,e.trace=li,e.transaction=di,e.untracked=gn,e.values=Qr,e.when=fi})),Mg=ye(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=Ag():t.exports=jg()}))();function Ng(e){if(Array.isArray(e))return Object.freeze(e.map(Ng));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]=Ng(r);return Object.freeze(t)}return e}function Pg(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 Fg(e){return typeof e==`string`?e:String(e)}function Ig(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 Lg(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 Rg=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?qg(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}},zg=class extends Rg{name=`ParseError`;kind=`ParseError`;expected;found;constructor(e,t,n={}){super(e,t,n),this.expected=n.expected,this.found=n.found}},Bg=class extends Rg{name=`EvalError`;kind=`EvalError`},Vg=class extends Bg{name=`FuncNotFoundError`;kind=`FuncNotFoundError`;funcName;suggestions;constructor(e,t,n={}){let r=Jg(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}},Hg=class extends Bg{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}},Ug=class extends Bg{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}},Wg=class extends Ug{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)}`}},Gg=class extends Bg{name=`MissingFieldError`;kind=`MissingFieldError`;path;constructor(e,t,n={}){super(`field "${e.join(`.`)}" not found on receiver`,t,n),this.path=e}},Kg=class extends Bg{name=`FailError`;kind=`FailError`;constructor(e,t={line:0,column:0,offset:0},n={}){super(e,t,n)}};function qg(e,t){let n=e.split(`
|
|
89
89
|
`),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(`
|
|
90
90
|
`)}function Jg(e,t){if(t.length===0)return[];let n=t.map(t=>({name:t,dist:Yg(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 Yg(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 Xg(e){throw Error(`unhandled node kind: ${JSON.stringify(e)}`)}const Zg=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`]]),Qg={left:`{{`,right:`}}`};var $g=class{src;leftDelim;rightDelim;offset=0;line=1;column=1;mode=`text`;pending;constructor(e,t=Qg){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 zg(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&&e_(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);e_(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);e_(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(;e_(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`;e_(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&&(n_(e)||t_(e)&&n_(this.src[this.offset+1]??``)||e===`.`&&n_(this.src[this.offset+1]??``)))return this.readNumber(t);if(e===`.`)return this.readDotOrField(t);if(e!==void 0&&s_(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===`
|
|
91
91
|
`)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===`
|
|
@@ -97,19 +97,19 @@ Use 'override' annotation for methods overridden by subclass.`)}}var oa=fa(0),sa
|
|
|
97
97
|
`).map(e=>n+e).join(`
|
|
98
98
|
`)}function eS(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 tS(e,t){let n=[];for(let e of t){if(typeof e==`object`&&e)throw Ub(`join`,2,`list of strings/primitives`,`list element of type ${nS(e)}`);n.push(String(e))}return n.join(e)}function nS(e){return Array.isArray(e)?`array`:e instanceof Map?`Map`:e instanceof Set?`Set`:`object`}function rS(e){return Kx(e,`-`)}function iS(e){return e.toLowerCase()}function aS(e,t){return`\n${$x(e,t)}`}function oS(e){return e.replace(/\s+/g,``)}function sS(e,t,n){return n===1?e:t}function cS(...e){return e.map(e=>`"${e}"`).join(` `)}function lS(e){return e.replace(/[\\.+*?()|[\]{}^$]/g,`\\$&`)}function uS(e,t){return t.repeat(Math.max(0,e))}function dS(e,t,n){return jx(e,n).join(t)}function fS(e){return Kx(e,`_`)}function pS(e,t){let n=jx(e,t),r={};for(let e=0;e<n.length;e++)r[`_${e}`]=n[e];return r}function mS(e,t){return jx(e,t)}function hS(e,t,n){let r=gS(n,e,t),i={};for(let e=0;e<r.length;e++)i[`_${e}`]=r[e]??``;return i}function gS(e,t,n){if(n===0)return[];let r=jx(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 _S(...e){return e.map(e=>`'${e}'`).join(` `)}function vS(e,t,n){let r=Ax(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 yS(e){let t=``;for(let n of e)bS(n)?t+=n.toLowerCase():xS(n)?t+=n.toUpperCase():t+=n;return t}function bS(e){return e!==e.toLowerCase()&&e===e.toUpperCase()}function xS(e){return e!==e.toUpperCase()&&e===e.toLowerCase()}function SS(e){return e.replace(/\b([a-zA-Z])/g,e=>e.toUpperCase())}function CS(e){return e.trim()}function wS(e,t){if(e.length===0)return t;let n=new Set(Ax(e)),r=Ax(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 TS(e,t){return t.startsWith(e)?t.slice(e.length):t}function ES(e,t){return t.endsWith(e)?t.slice(0,t.length-e.length):t}function DS(e,t){let n=Ax(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 OS(e){return e.replace(/\b([A-Z])/g,e=>e.toLowerCase())}function kS(e){return e.toUpperCase()}function AS(e,t){return jS(e,`
|
|
99
99
|
`,t)}function jS(e,t,n){if(e<=0)return n;let r=[];for(let t of n.split(`
|
|
100
|
-
`)){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 MS(e,t,n){return jS(e,t,n)}function NS(){return{abbrev:{fn:(e,t)=>Mx(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},abbrevboth:{fn:(e,t,n)=>Nx(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},camelcase:{fn:e=>Jx(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},cat:{fn:(...e)=>Yx(...e),argTypes:[`string`],arity:{kind:`variadic`}},contains:{fn:(e,t)=>Xx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasPrefix:{fn:(e,t)=>Zx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasSuffix:{fn:(e,t)=>Qx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},indent:{fn:(e,t)=>$x(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},initials:{fn:e=>eS(e),argTypes:[`string`],arity:{kind:`exact`}},join:{fn:(e,t)=>tS(e,t),argTypes:[`string`,`list`],arity:{kind:`exact`}},kebabcase:{fn:e=>rS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},lower:{fn:e=>iS(e),argTypes:[`string`],arity:{kind:`exact`}},nindent:{fn:(e,t)=>aS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},nospace:{fn:e=>oS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},plural:{fn:(e,t,n)=>sS(e,t,n),argTypes:[`string`,`string`,`int`],arity:{kind:`exact`},returnType:`string`},quote:{fn:(...e)=>cS(...e),argTypes:[`string`],arity:{kind:`variadic`}},regexQuoteMeta:{fn:e=>lS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},repeat:{fn:(e,t)=>uS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},replace:{fn:(e,t,n)=>dS(e,t,n),argTypes:[`string`,`string`,`string`],arity:{kind:`exact`}},snakecase:{fn:e=>fS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},split:{fn:(e,t)=>pS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitList:{fn:(e,t)=>mS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitn:{fn:(e,t,n)=>hS(e,t,n),argTypes:[`string`,`int`,`string`],arity:{kind:`exact`},returnType:`dict`},squote:{fn:(...e)=>_S(...e),argTypes:[`string`],arity:{kind:`variadic`}},substr:{fn:(e,t,n)=>vS(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},swapcase:{fn:e=>yS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},title:{fn:e=>SS(e),argTypes:[`string`],arity:{kind:`exact`}},trim:{fn:e=>CS(e),argTypes:[`string`],arity:{kind:`exact`}},trimAll:{fn:(e,t)=>wS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimPrefix:{fn:(e,t)=>TS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimSuffix:{fn:(e,t)=>ES(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trunc:{fn:(e,t)=>DS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},untitle:{fn:e=>OS(e),argTypes:[`string`],arity:{kind:`exact`}},upper:{fn:e=>kS(e),argTypes:[`string`],arity:{kind:`exact`}},wrap:{fn:(e,t)=>AS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},wrapWith:{fn:(e,t,n)=>MS(e,t,n),argTypes:[`int`,`string`,`string`],arity:{kind:`exact`}}}}function PS(e,t){if(!(e instanceof q))throw TypeError(`template function expected a RichText fragment, got ${typeof e==`object`?Object.prototype.toString.call(e):typeof e}`);let n=e.copy();return n.style=$c(e.style,t),n}function FS(e){return{fn:(t=>PS(t,e)),argTypes:[`liftable`],arity:{kind:`exact`},returnType:`T`}}function IS(e){return{fn:((t,n)=>PS(n,new G({[e]:W.parse(t)}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`}}function LS(e,t){return new G({[e]:t})}function RS(){let e={};for(let t of Kc)e[t]=FS(LS(t,!0)),e[`not_${t}`]=FS(LS(t,!1));for(let[t,n]of Object.entries(Jc))e[t]=FS(LS(n,!0));return e}const zS={fn:((e,t)=>PS(t,G.parse(e))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`},BS={fn:((e,t)=>PS(t,new G({link:e}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`};function VS(){return{fg:IS(`color`),bg:IS(`bgcolor`),...RS(),link:BS,style:zS}}function HS(e,t){let n;try{n=ds(e.trim())}catch(n){throw n instanceof Yo?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 US(n,t,JSON.stringify(e))}function US(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 WS(e,t){return{fn:t,argTypes:e,arity:{kind:`exact`},returnType:`string`}}function GS(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 KS=WS([`string`,`int`],((e,t)=>Ys(HS(e,`darken`),t).hex)),qS=WS([`string`,`int`],((e,t)=>Ys(HS(e,`lighten`),-t).hex)),JS={min:0,max:100,note:`0 = from, 100 = toward`},YS=WS([`string`,`string`,`float`],((e,t,n)=>fs(HS(e,`mix`),HS(t,`mix`),GS(n,`mix`,`percentage`,JS)/100).hex)),XS={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},ZS=WS([`string`],(e=>Zs(HS(e,`contrastOn`)).hex)),QS={depth:U.TRUECOLOR},$S=e=>WS([`string`,`string`,`float`],((t,n,r)=>{let{depth:i,terminal:a}=e();return Qs(HS(t,`readableOn`),HS(n,`readableOn`),GS(r,`readableOn`,`ratio`,XS),i,void 0,a).hex})),eC={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function tC(){let e={};for(let[t,n]of Object.entries(eC)){let r=t;e[n]=WS([`string`,`float`],((e,t)=>{let i={...As,[r]:GS(t,n,`amount`)};return Vs.fromRgba(HS(e,n)).applyKey(i).toRgba().hex}))}return e}function nC(e=()=>QS){return{darken:KS,lighten:qS,mix:YS,contrastOn:ZS,readableOn:$S(e),...tC()}}function rC(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:US(Us(t,e[r+1]),`ramp`,JSON.stringify(e[r+1]))});return n}function iC(e){return{color:{fn:(t=>Us(e(),t).hex),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},ramp:{fn:((t,n,...r)=>new Fc(Vc(n),rC(r,e())).at(t).hex),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:4},returnType:`string`}}}function aC(e){return{...VS(),...nC(e)}}new G({color:`red`,dim:!0});const oC=/^(?:(?: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,sC=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function cC(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(oC);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(sC);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 lC(e){let t=e.match(sC);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 uC(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 dC(e){return e.toLocaleString()}function fC(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 pC(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 mC=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],hC=mC.length;function gC(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*(hC-1));o+=mC[t]}return o}function _C(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 vC(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 yC=up(),bC=[...jp];function xC(){return{basename:{fn:e=>u(e),argTypes:[`string`],arity:{kind:`exact`}},dirname:{fn:e=>d(e),argTypes:[`string`],arity:{kind:`exact`}},abbreviatePath:{fn:e=>uC(e),argTypes:[`string`],arity:{kind:`exact`}},int:{fn:e=>Math.trunc(Ig(e)),argTypes:[`value`],arity:{kind:`exact`}},string:{fn:e=>Fg(e),argTypes:[`value`],arity:{kind:`exact`}},bool:{fn:e=>Lg(e),argTypes:[`value`],arity:{kind:`exact`}},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`],arity:{kind:`exact`}},themes:{fn:()=>yC,argTypes:[],arity:{kind:`exact`}},endcaps:{fn:()=>bC,argTypes:[],arity:{kind:`exact`}},sparkline:{fn:(e,t,...n)=>(vC(`sparkline`,[`width`],n),gC(_C(e),t)),argTypes:[`string`,`int`],arity:{kind:`variadic`}},cascade:{fn:(e,...t)=>pC(e,fC(t)),argTypes:[`float`,`string`],arity:{kind:`variadic`}}}}function SC(e){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`],arity:{kind:`exact`}},formatInteger:{fn:e=>dC(e),argTypes:[`int`],arity:{kind:`exact`}},round:{fn:e=>Math.round(e),argTypes:[`float`],arity:{kind:`exact`}},formatModelName:{fn:e=>cC(e),argTypes:[`string`],arity:{kind:`exact`}},shortenModelName:{fn:e=>lC(e),argTypes:[`string`],arity:{kind:`exact`}}}}function CC(e){let{clock:t,drawnAt:n,extraFuncs:r}=e;return Av({fromString:e=>new q(e),toString:e=>e.plain,isT:e=>e instanceof q,clock:t,missingKey:`error`,funcs:{...yb(),...NS(),...sx(),...kx(),...db(t),...ty(),...Fb(),...Nb(),...aC(n&&(()=>({depth:n()}))),...xC(),...SC(t),...r??{}}})}function wC(e){return TC(e,new Set(e.names()),``)}function TC(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`?DC(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return TC(e,t,a)}})}function EC(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 DC(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw Error(`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}function OC(e){return r.existsSync(l.join(e,`.git`))}function kC(e){let t=l.resolve(e);for(;;){if(OC(t))return t;let e=l.dirname(t);if(e===t)return;t=e}}function AC(e){let t=kC(e);return t===void 0?{root:l.resolve(e),git:!1}:{root:t,git:!0}}function jC(e,t,n){return t.ok?R(t.stdout):t.reason===`non-zero`&&n===`absent`||t.reason===`non-zero`&&n===t.exitCode?z:B(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??MC(t.stderr)].filter(Boolean).join(`, `)}`)}function MC(e){return e.trim().split(`
|
|
101
|
-
`,1)[0]??``}function
|
|
102
|
-
`)){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
|
|
103
|
-
`)){if(!l)continue;if(l.startsWith(`# `)){let e=l.slice(2);if(e.startsWith(`branch.oid `)){let t=e.slice(11).trim();n=t===`(initial)`?z:R(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=R(e.slice(16).trim());else if(e.startsWith(`branch.ab `)){let t=e.slice(10).trim().match(/^\+(\d+)\s+-(\d+)$/);t&&(i=R({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
|
|
104
|
-
`).length:0)}async getRemotesAsync(e){let t=QC(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=jC(`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:R(t.kind===`ok`?zC(t.value):[])}repoNameFrom(e,t){let n=HC(e);return(n===null?null:WC(n))??l.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=UC(t.value);return n===null?z:R(n)}async execForgeAsync(e,t,n){return O({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=RC(t);return n===`github`?qC(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,XC):n===`gitlab`?qC(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,ZC):z}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=jC(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?R(YC(t.value)):t}};const ew=(e,t)=>D(t);var tw=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??ew}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()}},nw=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 rw={showSha:!0,showStashCount:!0};function iw(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function aw(e){let t=t=>{try{return r.statSync(l.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function ow(e,t){return e.head!==t.head||e.index!==t.index}function sw(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 cw=class extends $C{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new nw;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new $C,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??Nt,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new tw({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}|${iw(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(R(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=aw(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}`,sw(i),()=>this.invalidateRepo(e));return this.entries.set(t,{info:s,computedAt:r,mtime:a,watcher:c,repoRoot:e}),this.evictIfNeeded(),o}async getPullRequestCached(e,t){let n=await this.inner.getRepoRemoteUrl(e);if(n.kind===`failed`)return n;if(n.kind===`absent`)return z;let r=n.value,i=`${e}|${t}|${r}`,a=Date.now(),o=this.prCache.get(i);if(o){let e=o.pr.kind===`failed`?45e3:3e5;if(a-o.computedAt<e)return this.prCache.delete(i),this.prCache.set(i,o),o.pr}let s=this.prFetchInFlight.get(i);if(s)return s;let c=this.inner.resolvePullRequest(e,r).then(e=>(this.prCache.set(i,{pr:e,computedAt:Date.now()}),this.evictPrIfNeeded(),e)).finally(()=>{this.prFetchInFlight.delete(i)});return this.prFetchInFlight.set(i,c),c}evictPrIfNeeded(){for(;this.prCache.size>this.maxEntries;){let e=this.prCache.keys().next().value;if(e===void 0)break;this.prCache.delete(e)}}deliverable(e,t){return e.kind===`failed`?(this.logger(`warn`,`git fetch failed (${t}): ${e.reason}`),null):e.kind===`ok`?e.value:null}subscribe(e,t){let n=!1,r=null;return{firstDelivery:(async()=>{let i=await this.resolveEffectiveGitDir(e);if(n)return;if(i.kind!==`ok`){i.kind===`failed`&&this.logger(`warn`,`git resolve failed (subscribe ${e}): ${i.reason}`),this.safeInvoke(t,null);return}let a=i.value,o=this.subscribersByRepo.get(a);if(!o){let t=this.inner.resolveGitDir(a),n=this.watchers.acquire(`git:${a}`,sw(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,{...rw});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,{...rw}),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=aw(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),ow(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 lw=/\r\n|\r|\n/g,uw=e=>R(e.replace(lw,` `).trim());function dw(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?B(`regex no-match`):R(n.replace(lw,` `))}}const fw=e=>{try{return R(JSON.parse(e))}catch(e){return B(`JSON parse failed: ${e.message}`)}},pw=e=>e.getTime()/1e3,mw=e=>new Date(e*1e3);function hw(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 gw(e){let t=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/.exec(e);if(!t)throw RangeError(`Invalid duration: "${e}"`);let n=parseFloat(t[1]);switch(t[2]){case`ms`:return n;case`s`:return n*1e3;case`m`:return n*6e4;case`h`:return n*36e5;default:throw RangeError(`Unexpected duration unit: "${t[2]}"`)}}const _w=`session.id`;function vw(e,t,n){return{where:`output of "${e}" in ${t}`,read:async()=>{let r=await O({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?R(r.stdout):B(`shell "${e}" ${r.exitCode===null?[r.reason,r.error].filter(e=>e!==void 0).join(`: `):`exited with code ${r.exitCode}`} in ${t}`)}}}function yw(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await ae(e,{encoding:`utf8`,signal:n});return R(t===`first-line`?r.split(/\r?\n/)[0]??``:r)}catch{if(n.aborted)throw n.reason;return B(`file unreadable: ${e}`)}}}}function bw(e,t,n){if(e.kind!==`ok`)return e;let r=t(e.value);return r.kind===`failed`?B(`${r.reason} in ${n}`):r}const xw=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Sw=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Cw=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],ww=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Tw(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>xw[e.getMonth()]],[`Monday`,e=>Cw[e.getDay()]],[`Jan`,e=>Sw[e.getMonth()]],[`Mon`,e=>ww[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 Ew={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function Dw(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=Ew[t];try{return Fw(r,e)}catch{return Iw(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return li(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return li(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return li(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return li(e.stashCount,0)}}function Ow(e){try{return o(e)}catch{return e}}function kw(e){try{return s(e).isDirectory()}catch{return!1}}function Aw(e){let t=Ow(e);return kw(t)?{dir:t,name:null,leaf:!0}:Og(t)}const jw=e=>`${e.dir}\0${e.name??``}`;var Mw=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:Aw(e),subscribers:new Map};return t.watcher=this.open(e,t,t.target),this.watchers.set(e,t),t}rearm(e,t){let n=Aw(e);if(t.watcher!==null&&jw(n)===jw(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}},Nw=class{buckets=new Map;subscribe(e,t){let n=this.buckets.get(e);if(!n){let t=new Set;n={timer:le(()=>{for(let e of t)e()},e),callbacks:t},this.buckets.set(e,n)}return n.callbacks.add(t),()=>this.unsubscribe(e,t)}unsubscribe(e,t){let n=this.buckets.get(e);n&&(n.callbacks.delete(t),n.callbacks.size===0&&(ce(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())ce(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function Pw(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function Fw(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`?Fg(e):t===`number`?Ig(e):Lg(e)}function Iw(e){return e===`number`?0:e===`boolean`?!1:``}var Lw=class{inputMetas=new Map;lastErrors=new Map;watchFaults=new Map;watchMgr=new Mw;ttlMgr=new Nw;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new nw;abort=new AbortController;drawn=Mg.observable.box(U.TRUECOLOR);drawnAt=()=>this.drawn.get();instant=Mg.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 mw(e)};engine=CC({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 cw({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,Pg(t),t)}declareFailedDocument(e,t){this.store.defineDocument(e,B(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,vw(t,n.cwd,this.abort.signal),hw(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,yw(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,uw,t.default,n);case`regex`:return this.scalarPublisher(e,dw(t.regex),t.default,n);case`json`:return this.documentPublisher(e,t.default,n)}}scalarPublisher(e,t,n,r){let i=this.stringInitial(n);return this.store.defineBox(e,`string`,i),n=>{let a=bw(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,li(a,i))}}documentPublisher(e,t,n){let r=t===void 0?z:R(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()===``?z:o,c=bw(s,fw,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(wC(this.store)).map(e=>e.plain).join(``),n.varDefault)}declareTime(e,t){this.declareDerived(e,()=>Tw(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 Error(`variable "${e}": ${r}`);return n}})}declareGit(e,t){let n=Ew[t.field],r=t.varDefault===void 0?Iw(n):Fw(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,Dw(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(_w);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(_w):``;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=Pw(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,Fw(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.watchFaults.get(e);return n===void 0?t:t===void 0?n:{timestamp:t.timestamp,message:`${n.message}; ${t.message}`}}dispose(){this.abort.abort();for(let e of this.cleanups)e();this.cleanups.length=0;for(let e of this.gitSubscriptions.values())e.unsubscribe();this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close()}registerCachePolicy(e,t,n){switch(t.kind){case`never`:break;case`ttl`:{let e=this.ttlMgr.subscribe(t.durationMs,n);this.cleanups.push(e);break}case`watch_file`:{let r=this.watchMgr.subscribe(t.path,n,t=>this.watchFaults.set(e,{timestamp:Date.now(),message:t}));this.cleanups.push(r);break}case`key`:{let e=this.engine.parse(t.template),r=(0,Mg.reaction)(()=>{let t=wC(this.store);try{return e.evaluate(t).map(e=>e.plain).join(``)}catch{return``}},n);this.cleanups.push(r);break}case`depends_on`:{let e=(0,Mg.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,Fw(this.defaultEmptyValue,t))}catch{this.store.setBox(e,Iw(t))}}defaultFor(e){try{return Fw(this.defaultEmptyValue,e)}catch{return Iw(e)}}stringInitial(e){return e===void 0?typeof this.defaultEmptyValue==`string`?this.defaultEmptyValue:``:e}recordError(e,t){this.lastErrors.set(e,{timestamp:Date.now(),message:t})}noteOutcome(e,t){t.kind===`ok`?this.lastErrors.delete(e):this.recordError(e,t.kind===`failed`?t.reason:`no value`)}};const Rw={project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},[_w]:{kind:`input`,path:`session_id`,default:``},transcript_path:{kind:`input`,path:`transcript_path`,default:``},resume_command:{kind:`input`,path:`resumeCommand`,default:``},config_path:{kind:`input`,path:`configPath`,default:``},"theme.effective":{kind:`input`,path:`theme.effective`,default:``},"style.effective":{kind:`input`,path:`style.effective`,default:``},"effect.effective":{kind:`input`,path:`effect.effective`,default:``},"preset.effective":{kind:`input`,path:`preset.effective`,default:``},"preset.customized":{kind:`input`,path:`preset.customized`,type:`boolean`,default:!1},"preset.bundled":{kind:`input`,path:`preset.bundled`,type:`boolean`,default:!0},"endcaps.effective":{kind:`input`,path:`endcaps.effective`,default:``},"variation.effective":{kind:`input`,path:`variation.effective`,default:``},"shade.effective":{kind:`input`,path:`shade.effective`,default:``},"charset.effective":{kind:`input`,path:`charset.effective`,default:``},"colorCompatibility.effective":{kind:`input`,path:`colorCompatibility.effective`,default:``},"transitions.effective":{kind:`input`,path:`transitions.effective`,type:`boolean`,default:!1},"autoWrap.effective":{kind:`input`,path:`autoWrap.effective`,type:`boolean`,default:!0},"padding.effective":{kind:`input`,path:`padding.effective`,type:`number`,default:1},"updateNotice.effective":{kind:`input`,path:`updateNotice.effective`,type:`boolean`,default:!0},"term.cols":{kind:`input`,path:`term.cols`,type:`number`,default:80},"tmux.pane":{kind:`input`,path:`tmux.pane`,default:``},"autocompact.window":{kind:`input`,path:`autocompact.window`,type:`number`,default:-1},...Object.fromEntries([`applied`,`lower`,`higher`].map(e=>[`autocompact.${e}`,{kind:`input`,path:`autocompact.${e}`,type:`number`,default:0}])),"autocompact.error":{kind:`input`,path:`autocompact.error`,default:``},"git.repoUrl":{kind:`input`,path:`git.repoUrl`,default:``}},zw=`ne .tmux.pane ""`;function Bw(e,t,n){let r=new Set,i=e=>{for(let t of vg(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 dh(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(_w);for(let t of Object.values(e.actions)){r.add(_w),`copy`in t&&i(t.copy),`open`in t&&i(t.open);let e=`set`in t?va.get(t.set):void 0,n=`persist`in t?_a.get(t.persist):void 0;e!==void 0&&r.add(e),n!==void 0&&r.add(n)}return r}function Vw(e,t,n){let r=Eg({...n,variables:{...n.variables,...e.variables},segments:{...n.segments,...e.segments}}),i={};for(let a of Bw(e,t,n.helpers)){if(Tg(a,r))continue;let e=Rw[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 Hw(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}var Uw=class extends Error{file;issues;warnings;constructor(e,t,n=[]){super(qw(e,t)),this.name=`ConfigError`,this.file=e,this.issues=t,this.warnings=n}};function X(e,t){let n=0,r;for(let i of t){if(i===``||/^\d+$/.test(i))continue;let t=Ww(e,n,i);if(t===-1)return r===void 0?void 0:Gw(e,r);n=t,r=t}return r===void 0?void 0:Gw(e,r)}function Ww(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 Gw(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function Kw(e,t){try{return _r(t),null}catch(n){if(!(n instanceof dr))throw n;return`${e}:${Gw(t,n.offset)}: ${n.reason} — the settings menu cannot edit this file until it is fixed`}}function qw(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(`
|
|
105
|
-
`)}const Jw=`groups.`,Yw=`menus.`,Xw=`edit.`,Z=`candybar.`,Zw=[Jw,Yw,Xw,Z];function Qw(e){return Zw.some(t=>e.startsWith(t))}function $w(e){let t=Hw(e);return Zw.find(e=>t.startsWith(Hw(e)))}function eT(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:X(e.source,[`root`])})}function tT(e){return e}function nT(e,t,n){return n===void 0?Yw+Hw(e)+`.`+Hw(t):rT(n)}function rT(e){return Yw+Hw(e)}function iT(e,t){return e+`.`+t}function aT(e){return e+`.page`}const oT=[`closeOnPick`,`paged`,`key`,`distribution`],sT=e=>oT.includes(e),cT=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${lf.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function lT(e){for(let t of Object.keys(e))if(!sT(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${cT}`);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&&!uf(r))throw Error(`{{ menu }} option "distribution" must be one of: ${lf.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:ff(r)}}const uT=e=>`from`in e?e.from:e.themes;function dT(e,t,n){return e===`bool`?Zp(t)!==null:`min`in e?Qp(t,e)!==null:rg(uT(e),n).members.includes(t)}function fT(e,t){if(e===`bool`)return Yp.join(` or `);if(!(`min`in e)){let n=uT(e),{members:r}=rg(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 pT(e){return{label:e.label,domain:mT(e.domain)}}function mT(e){return e===`theme`?{themes:eg}:e===`bool`||`min`in e?e:{from:e}}function hT(e,t,n,r,i){let a=Jn(e.label),{domain:o}=e;if(o===`bool`)return{kind:`inline`,template:`{{ action "${r}" "☑ ${a}" "☐ ${a}" }}`,actions:{[r]:{set:t,cycle:[...Yp]}},variables:{}};if(`from`in o)return gT(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 gT(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 gT(e,t,n,r,i){let a={variable:n,key:n,member:t},o=iT(n,t),s=`${t}.open`,c=aT(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]:nr(n,t),[c]:{set:c,int:!0},[l]:{set:c,to:`-1`},[s]:{do:[o,l]}},variables:{[n]:tr(n,L),[c]:{kind:`state`,key:c,default:`0`}},list:{ref:a,rows:d}}}function _T(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 ${CT(i)}`,line:X(e.source,[...t.split(`.`),r])}),null)}function vT(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 ${CT(i)}`,line:X(e.source,[...t.split(`.`),`default`])});return}return i}}function yT(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 ${CT(i)}`,line:X(e.source,[...t.split(`.`),r])});return}return i}}function bT(e,t,n){let r=yT(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}"${sp(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:X(e.source,[...t.split(`.`),`palette`])});return}return r}}function xT(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 ${Q(a)}`,line:X(e.source,[...t.split(`.`),r])});return}return a}}function ST(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function CT(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function Q(e){return typeof e==`string`?JSON.stringify(e):e===void 0?`undefined`:String(e)}function wT(e,t,n,r){return ST(r)?(OT(e,n,r,t.noun,new Set(Object.keys(t.fields)),TT(e,t.removed??{},n,r)),ET(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${CT(r)}`,line:X(e.source,n.split(`.`))}),null)}function TT(e,t,n,r){let i=Object.entries(t).filter(([e])=>r[e]!==void 0);for(let[t,r]of i)kT(e,`${n}.${t}`,`${n}.${t} was removed: ${r}`);return new Set(i.map(([e])=>`${n}.${e}`))}function ET(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 DT=new Set;function OT(e,t,n,r,i,a=DT){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:X(e.source,[...t.split(`.`),o])})}function kT(e,t,n){return e.issues.push({path:t,message:n,line:X(e.source,t.split(`.`))}),null}function AT(e,t,n,r){if(!ST(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${CT(r)}`,line:X(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:X(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:X(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:X(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function jT(e,t,n,r){if(!ST(r))return e.issues.push({path:n,message:`${n} must be an object, got ${CT(r)}`,line:X(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 ${CT(i)}`,line:X(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:X(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 OT(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function MT(e,t,n){return{json:KT(WT(n),e,t),keys:new Set([e,...Object.keys(n)])}}function NT(e){return(...t)=>e()(...t)}function PT(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:X(n.source,o.split(`.`))}),null}return a}}function FT(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>yT(e,t,r,n)}}function IT(){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 ${CT(i)}`,line:X(e.source,[n])});return}return i}}}}function LT(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 ${Q(o)}`,line:X(e.source,[i])});return}return o}}}}function RT(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 ${Q(a)}`,line:X(e.source,[r])});return}return a}}}}function zT(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>bT(e,t,r)}}function BT(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>_T(e,t,r,n)??void 0}}function VT(e,t){return f(t)?null:`${e} must be an absolute path (\`~\` and relative paths are not expanded), got ${JSON.stringify(t)}`}function HT(){return{required:!0,json:{type:`string`,pattern:`^/`},parse:(e,t,n,r)=>{let i=_T(e,t,r,n);if(i===null)return;let a=VT(`${t}.${n}`,i);return a===null?i:kT(e,`${t}.${n}`,a)??void 0}}}function UT(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>xT(t,n,i,r,e)}}function WT(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 GT(e){return WT(e.fields)}function KT(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function qT(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function JT(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const YT={required:!1,json:{enum:[...zp]},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: ${zp.join(`, `)}`,line:X(e.source,[...t.split(`.`),n])});return}return xT(e,t,r,n,zp)}},XT={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=yT(e,t,r,n);return gp(i)?i:bT(e,t,r)}},ZT={required:!1,json:{anyOf:[{enum:[...Ep]},{type:`string`,pattern:`\\{\\{`}]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&gp(i)?i:xT(e,t,r,n,Ep)}},QT=/^[^\r\n]*\S[^\r\n]*$/u,$T=RegExp(`^(?:✖|✕)[\\uFE0E\\uFE0F]?$`,`u`),eE={required:!1,json:{type:`string`,pattern:QT.source,not:{pattern:$T.source}},parse:(e,t,n,r)=>{let i=yT(e,t,r,n);if(i===void 0||QT.test(i)&&!$T.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:X(e.source,[...t.split(`.`),n])})}};function tE(e){return{spec:UT(e),domain:{from:e}}}function nE(){return{spec:IT(),domain:`bool`}}function rE(e){return{spec:e,domain:`text`}}const iE={default_empty_value:rE(FT()),default_separator:rE(FT()),palette:{spec:XT,domain:{themes:`themes`}},style:{spec:FT(),domain:{from:`styles`}},effect:{spec:ZT,domain:{from:Ep}},preset:{spec:FT(),domain:{from:`presets`}},endcaps:tE(jp),variation:tE(Vp),shade:tE(Wp),autoWrap:nE(),padding:{spec:LT(Xp),domain:{...Xp,step:1}},charset:tE(Ip),updateNotice:nE(),transitions:nE(),colorCompatibility:{spec:YT,domain:{from:zp}},menuGlyph:rE(eE)},aE=Object.fromEntries(Object.entries(iE).map(([e,t])=>[e,t.spec]));function oE(e){return iE[e].domain}function sE(e){let t=oE(e);if(t===`text`)throw Error(`globals.${e} is free text, which no control can change — list it in UNCONTROLLED_GLOBALS instead of SETTINGS`);return t}function cE(e,t){return{required:!1,json:{not:{},description:`not allowed here — ${e}`},parse:(e,n,r,i)=>{i[r]!==void 0&&e.issues.push({path:`${n}.${r}`,message:t(`${n}.${r}`),line:X(e.source,[...n.split(`.`),r])})}}}function lE(e){return cE(`${e} cannot select a preset`,t=>`${t}: ${e} cannot select a preset. Which preset is active is resolved once, as session pick over globals.preset over "default"; a fragment naming another would be a second authority over that. Set the default arrangement in the top-level globals.preset instead.`)}function uE(e){return cE(`${e} cannot change the settings menu glyph`,t=>`${t}: ${e} cannot change the settings menu glyph — one menu is shared by every preset. Set it in the top-level globals.menuGlyph instead.`)}function dE(e,t,n){return{...e,json:{...e.json,not:{pattern:`\\{\\{`}},parse:(r,i,a,o)=>{let s=o[a];if(typeof s==`string`&&gp(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:X(r.source,[...i.split(`.`),a])});return}return e.parse(r,i,a,o)}}}const fE={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)`},pE={noun:`globals key`,fields:aE,removed:fE},mE={preset:lE(`a preset`),menuGlyph:uE(`a preset`)},hE={noun:`preset globals key`,fields:{...aE,...mE},removed:fE};function gE(e){return EE(e)&&!(e in mE)}const _E=`is decided later than any rule could be settled`,vE={noun:`editGlobals key`,removed:fE,fields:{...aE,preset:lE(`the editGlobals fragment`),menuGlyph:uE(`the editGlobals fragment`),palette:dE(aE.palette,`the editGlobals fragment`,_E),style:dE(aE.style,`the editGlobals fragment`,_E),effect:dE(aE.effect,`the editGlobals fragment`,_E)}},yE={noun:`theme default key`,fields:{...Object.fromEntries(gh.map(e=>[e,aE[e]])),style:dE(aE.style,`a theme's default`,`is the look that theme wears by name`)}};function bE(e,t){if(!ST(t))return e.issues.push({path:`themeDefaults`,message:`themeDefaults must be an object mapping theme names to { shade, variation, style }, got ${CT(t)}`,line:X(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${sp(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:X(e.source,[`themeDefaults`,r])});continue}let a=wT(e,yE,t,i);a!==null&&(n[r]=a)}return n}function xE(e,t,n){return n===void 0?{}:wT(e,pE,t,n)??{}}function SE(e,t,n){return wT(e,hE,t,n)??{}}function CE(){return GT(hE)}function wE(e,t,n){return wT(e,vE,t,n)??{}}const TE=new Set(Object.keys(aE));function EE(e){return TE.has(e)}function DE(){return[...TE]}const OE={padding:1};function kE(e){let t=new Map;for(let[n,r]of Object.entries(OE)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}const AE=/^segments\.([^.]+)\.palette$/,jE=/^presets\.(.+)\.root$/,ME=/^presets\.(.+)\.globals\.([^.]+)$/,NE=/^themeDefaults\.(.+)\.([^.]+)$/;function PE(e){return`presets.${e}.root`}function FE(e,t){return`themeDefaults.${e}.${t}`}const IE=e=>gh.includes(e);function LE(e,t){return`presets.${e}.globals.${t}`}function RE(e){if(EE(e))return{scope:`globals`,field:e};let t=AE.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=ME.exec(e);if(n&&gE(n[2]))return{scope:`preset-globals`,preset:n[1],field:n[2]};let r=NE.exec(e);if(r&&IE(r[2]))return{scope:`theme-default`,theme:r[1],field:r[2]};let i=jE.exec(e);return i?{scope:`preset-root`,preset:i[1]}:null}function zE(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 BE=[`location`,`git`,`model-context`,`cost-limits`,`activity`,`session-tools`],VE=[...BE,`other`],HE={location:`location`,git:`git`,"model-context":`model & context`,"cost-limits":`cost & limits`,activity:`activity`,"session-tools":`session tools`,other:`other`},UE=Av({fromString:e=>e}),WE=`edit.mode`,GE=`edit.configure`,KE=`edit.toggle`,qE=`edit.unconfigure`,JE=[KE,qE],YE=`arrange`,XE=`${Xw}draft.`;function ZE(e,t){return`${e}:${t}`}const QE={variable:WE,key:WE,member:YE},$E=Xn(QE);function eD(e){try{return UE.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function tD(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`&&eD(e))return!0;return!1}function nD(e,t){if(eT(e,t,Xw,`edit mode`),!tD(t))return;let{variables:n,actions:r}=rD();t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function rD(){return{variables:{[WE]:tr(WE,L),[GE]:tr(GE,L)},actions:{[KE]:nr(WE,YE),[qE]:{set:GE,to:L}}}}const iD=`open`;function aD(e,t,n,r){let i={variable:e,key:e,member:iD};return r.variables[e]=tr(e,L),r.actions[e]=nr(e,iD),r.segments[e]={template:Qn(e,`(?)`,`✕`),...oD(n)},Yn(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 oD(e){let[t,...n]=e;return t===void 0?{}:{when:Xn(t,...n)}}const sD=`none`;function cD(e){return Us(e,`background`)}var lD=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function uD(e,t,n,r,i){let{palette:a,tint:o,text:s}=e,c=dD(n,i),l=c!==sD,u=l?c===void 0?o:fD(a,c,`bg`):cD(a);e.bg=u;let d=dD(r,i),f=d===void 0?l?(e=>e.hex===o.hex?s:Pf(a,e,t))(u):void 0:fD(a,d,`fg`);return new G({...l&&{bgcolor:W.fromRgba(u)},...f!==void 0&&{color:W.fromRgba(f)}})}function dD(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function fD(e,t,n){try{return Us(e,t)}catch(e){throw e instanceof Hs?new lD(t,n,e.message):e}}const pD=`🔧`,mD={help:[`-h`,`--help`],version:[`-V`,`--version`]},hD=[`✚ inserts`,`✖ removes`,`${pD} configures`,`↺ resets layout`],gD=`
|
|
100
|
+
`)){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 MS(e,t,n){return jS(e,t,n)}function NS(){return{abbrev:{fn:(e,t)=>Mx(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},abbrevboth:{fn:(e,t,n)=>Nx(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},camelcase:{fn:e=>Jx(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},cat:{fn:(...e)=>Yx(...e),argTypes:[`string`],arity:{kind:`variadic`}},contains:{fn:(e,t)=>Xx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasPrefix:{fn:(e,t)=>Zx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},hasSuffix:{fn:(e,t)=>Qx(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},indent:{fn:(e,t)=>$x(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},initials:{fn:e=>eS(e),argTypes:[`string`],arity:{kind:`exact`}},join:{fn:(e,t)=>tS(e,t),argTypes:[`string`,`list`],arity:{kind:`exact`}},kebabcase:{fn:e=>rS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},lower:{fn:e=>iS(e),argTypes:[`string`],arity:{kind:`exact`}},nindent:{fn:(e,t)=>aS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},nospace:{fn:e=>oS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},plural:{fn:(e,t,n)=>sS(e,t,n),argTypes:[`string`,`string`,`int`],arity:{kind:`exact`},returnType:`string`},quote:{fn:(...e)=>cS(...e),argTypes:[`string`],arity:{kind:`variadic`}},regexQuoteMeta:{fn:e=>lS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},repeat:{fn:(e,t)=>uS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},replace:{fn:(e,t,n)=>dS(e,t,n),argTypes:[`string`,`string`,`string`],arity:{kind:`exact`}},snakecase:{fn:e=>fS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},split:{fn:(e,t)=>pS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitList:{fn:(e,t)=>mS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},splitn:{fn:(e,t,n)=>hS(e,t,n),argTypes:[`string`,`int`,`string`],arity:{kind:`exact`},returnType:`dict`},squote:{fn:(...e)=>_S(...e),argTypes:[`string`],arity:{kind:`variadic`}},substr:{fn:(e,t,n)=>vS(e,t,n),argTypes:[`int`,`int`,`string`],arity:{kind:`exact`}},swapcase:{fn:e=>yS(e),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},title:{fn:e=>SS(e),argTypes:[`string`],arity:{kind:`exact`}},trim:{fn:e=>CS(e),argTypes:[`string`],arity:{kind:`exact`}},trimAll:{fn:(e,t)=>wS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimPrefix:{fn:(e,t)=>TS(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trimSuffix:{fn:(e,t)=>ES(e,t),argTypes:[`string`,`string`],arity:{kind:`exact`}},trunc:{fn:(e,t)=>DS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},untitle:{fn:e=>OS(e),argTypes:[`string`],arity:{kind:`exact`}},upper:{fn:e=>kS(e),argTypes:[`string`],arity:{kind:`exact`}},wrap:{fn:(e,t)=>AS(e,t),argTypes:[`int`,`string`],arity:{kind:`exact`}},wrapWith:{fn:(e,t,n)=>MS(e,t,n),argTypes:[`int`,`string`,`string`],arity:{kind:`exact`}}}}function PS(e,t){if(!(e instanceof q))throw TypeError(`template function expected a RichText fragment, got ${typeof e==`object`?Object.prototype.toString.call(e):typeof e}`);let n=e.copy();return n.style=$c(e.style,t),n}function FS(e){return{fn:(t=>PS(t,e)),argTypes:[`liftable`],arity:{kind:`exact`},returnType:`T`}}function IS(e){return{fn:((t,n)=>PS(n,new G({[e]:W.parse(t)}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`}}function LS(e,t){return new G({[e]:t})}function RS(){let e={};for(let t of Kc)e[t]=FS(LS(t,!0)),e[`not_${t}`]=FS(LS(t,!1));for(let[t,n]of Object.entries(Jc))e[t]=FS(LS(n,!0));return e}const zS={fn:((e,t)=>PS(t,G.parse(e))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`},BS={fn:((e,t)=>PS(t,new G({link:e}))),argTypes:[`string`,`liftable`],arity:{kind:`exact`},returnType:`T`};function VS(){return{fg:IS(`color`),bg:IS(`bgcolor`),...RS(),link:BS,style:zS}}function HS(e,t){let n;try{n=ds(e.trim())}catch(n){throw n instanceof Yo?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 US(n,t,JSON.stringify(e))}function US(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 WS(e,t){return{fn:t,argTypes:e,arity:{kind:`exact`},returnType:`string`}}function GS(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 KS=WS([`string`,`int`],((e,t)=>Ys(HS(e,`darken`),t).hex)),qS=WS([`string`,`int`],((e,t)=>Ys(HS(e,`lighten`),-t).hex)),JS={min:0,max:100,note:`0 = from, 100 = toward`},YS=WS([`string`,`string`,`float`],((e,t,n)=>fs(HS(e,`mix`),HS(t,`mix`),GS(n,`mix`,`percentage`,JS)/100).hex)),XS={min:1,max:21,note:`4.5 = AA body text, 3 = AA large text`},ZS=WS([`string`],(e=>Zs(HS(e,`contrastOn`)).hex)),QS={depth:U.TRUECOLOR},$S=e=>WS([`string`,`string`,`float`],((t,n,r)=>{let{depth:i,terminal:a}=e();return Qs(HS(t,`readableOn`),HS(n,`readableOn`),GS(r,`readableOn`,`ratio`,XS),i,void 0,a).hex})),eC={hueShift:`shiftHue`,chromaScale:`scaleChroma`,lightnessScale:`scaleLightness`,lightnessShift:`shiftLightness`};function tC(){let e={};for(let[t,n]of Object.entries(eC)){let r=t;e[n]=WS([`string`,`float`],((e,t)=>{let i={...As,[r]:GS(t,n,`amount`)};return Vs.fromRgba(HS(e,n)).applyKey(i).toRgba().hex}))}return e}function nC(e=()=>QS){return{darken:KS,lighten:qS,mix:YS,contrastOn:ZS,readableOn:$S(e),...tC()}}function rC(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:US(Us(t,e[r+1]),`ramp`,JSON.stringify(e[r+1]))});return n}function iC(e){return{color:{fn:(t=>Us(e(),t).hex),argTypes:[`string`],arity:{kind:`exact`},returnType:`string`},ramp:{fn:((t,n,...r)=>new Fc(Vc(n),rC(r,e())).at(t).hex),argTypes:[`float`,`string`],arity:{kind:`alternating`,minimum:4},returnType:`string`}}}function aC(e){return{...VS(),...nC(e)}}new G({color:`red`,dim:!0});const oC=/^(?:(?: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,sC=/^(?<family>opus|sonnet|haiku)\s+(?<major>\d+)(?:\.(?<minor>\d))?$/i;function cC(e){if(!e)return`Claude`;let t=e.trim().replace(/\s*\([^)]*\)\s*$/,``).replace(/\s*\[[^\]]*\]\s*$/,``).trim(),n=t.match(oC);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(sC);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 lC(e){let t=e.match(sC);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 uC(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 dC(e){return e.toLocaleString()}function fC(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 pC(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 mC=[`▁`,`▂`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],hC=mC.length;function gC(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*(hC-1));o+=mC[t]}return o}function _C(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 vC(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 yC=up(),bC=[...jp];function xC(){return{basename:{fn:e=>u(e),argTypes:[`string`],arity:{kind:`exact`}},dirname:{fn:e=>d(e),argTypes:[`string`],arity:{kind:`exact`}},abbreviatePath:{fn:e=>uC(e),argTypes:[`string`],arity:{kind:`exact`}},int:{fn:e=>Math.trunc(Ig(e)),argTypes:[`value`],arity:{kind:`exact`}},string:{fn:e=>Fg(e),argTypes:[`value`],arity:{kind:`exact`}},bool:{fn:e=>Lg(e),argTypes:[`value`],arity:{kind:`exact`}},urlEncode:{fn:e=>encodeURIComponent(e),argTypes:[`string`],arity:{kind:`exact`}},themes:{fn:()=>yC,argTypes:[],arity:{kind:`exact`}},endcaps:{fn:()=>bC,argTypes:[],arity:{kind:`exact`}},sparkline:{fn:(e,t,...n)=>(vC(`sparkline`,[`width`],n),gC(_C(e),t)),argTypes:[`string`,`int`],arity:{kind:`variadic`}},cascade:{fn:(e,...t)=>pC(e,fC(t)),argTypes:[`float`,`string`],arity:{kind:`variadic`}}}}function SC(e){return{minutesUntilReset:{fn:t=>Math.round(Math.max(0,t*1e3-e().getTime())/6e4),argTypes:[`int`],arity:{kind:`exact`}},formatInteger:{fn:e=>dC(e),argTypes:[`int`],arity:{kind:`exact`}},round:{fn:e=>Math.round(e),argTypes:[`float`],arity:{kind:`exact`}},formatModelName:{fn:e=>cC(e),argTypes:[`string`],arity:{kind:`exact`}},shortenModelName:{fn:e=>lC(e),argTypes:[`string`],arity:{kind:`exact`}}}}function CC(e){let{clock:t,drawnAt:n,extraFuncs:r}=e;return Av({fromString:e=>new q(e),toString:e=>e.plain,isT:e=>e instanceof q,clock:t,missingKey:`error`,funcs:{...yb(),...NS(),...sx(),...kx(),...db(t),...ty(),...Fb(),...Nb(),...aC(n&&(()=>({depth:n()}))),...xC(),...SC(t),...r??{}}})}function wC(e){return TC(e,new Set(e.names()),``)}function TC(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`?DC(a,e.readDocument(a)):e.read(a);let o=`${a}.`;for(let n of t)if(n.startsWith(o))return TC(e,t,a)}})}function EC(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 DC(e,t){switch(t.kind){case`ok`:return t.value;case`absent`:throw Error(`variable "${e}" has no value yet: its source has not completed a scan`);case`failed`:throw Error(`variable "${e}": ${t.reason}`)}}function OC(e){return r.existsSync(l.join(e,`.git`))}function kC(e){let t=l.resolve(e);for(;;){if(OC(t))return t;let e=l.dirname(t);if(e===t)return;t=e}}function AC(e){let t=kC(e);return t===void 0?{root:l.resolve(e),git:!1}:{root:t,git:!0}}function jC(e,t){return e.kind===`absent`?R(`none`):e.kind===`failed`?e:t.kind===`failed`?t:R(t.kind===`ok`?`tracked`:`gone`)}function MC(e,t){return e.kind!==`ok`||e.value.state===`open`||t.kind===`ok`&&t.value===e.value.head?e:z}const NC={OPEN:`open`,MERGED:`merged`,CLOSED:`closed`},PC={opened:`open`,locked:`open`,merged:`merged`,closed:`closed`};function FC(e,t,n){return Object.hasOwn(t,n)?R(t[n]):B(`${e}: unknown state ${JSON.stringify(n)}`)}function IC(e,t,n){return t.ok?R(t.stdout):t.reason===`non-zero`&&n===`absent`||t.reason===`non-zero`&&n===t.exitCode?z:B(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??LC(t.stderr)].filter(Boolean).join(`, `)}`)}function LC(e){return e.trim().split(`
|
|
101
|
+
`,1)[0]??``}function RC(e,t){if(e.kind!==`ok`)return e;let n=t(e.value);return n===null?z:R(n)}function zC(e){if(e.kind!==`ok`)return e;let t=e.value.trim();return t?R(t):z}const BC=/^[A-Za-z]:[\\/]/;function VC(e){let t=e.trim();if(BC.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 HC(e){return VC(e)?.host||null}function UC(e){let t=HC(e);return t?t===`github.com`||t.endsWith(`.github.com`)?`github`:/(^|\.)gitlab\./.test(t)?`gitlab`:null:null}function WC(e){let t=new Map;for(let n of e.split(`
|
|
102
|
+
`)){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 GC(e){return e.urls.find(e=>XC(e)!==null)??e.urls[0]??null}function KC(e){return e.find(e=>e.name===`origin`)??e[0]??null}function qC(e){let t=KC(e);return t?GC(t):null}function JC(e){let t=KC(e);return t?t.urls.find(e=>UC(e)!==null)??GC(t):null}function YC(e){let t=(VC(e)?.path??e.replace(/[\\/]+$/,``)).split(`/`);return(t[t.length-1]??``).replace(/\.git$/,``)||null}function XC(e){let t=VC(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 ZC(e){let t=qC(e);return t===null?null:XC(t)}function QC(e,t,n,r){return t.ok?r(t.stdout):t.reason===`spawn-error`&&/ENOENT/i.test(t.error??``)||t.reason===`non-zero`&&n.test(t.stderr)?z:B(`${e}: ${[t.reason,t.exitCode==null?null:`exit ${t.exitCode}`,t.error??LC(t.stderr)].filter(Boolean).join(`, `)}`)}function $C(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ew(e){let t=`detached`,n=z,r=z,i=z,a=0,o=0,s=0,c=0;for(let l of e.split(`
|
|
103
|
+
`)){if(!l)continue;if(l.startsWith(`# `)){let e=l.slice(2);if(e.startsWith(`branch.oid `)){let t=e.slice(11).trim();n=t===`(initial)`?z:R(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=R(e.slice(16).trim());else if(e.startsWith(`branch.ab `)){let t=e.slice(10).trim().match(/^\+(\d+)\s+-(\d+)$/);t&&(i=R({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 tw(e){let t;try{t=JSON.parse(e)}catch(e){return B(`gh pr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!$C(t))return B(`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 B(`gh pr view: missing number/state/url/headRefOid`);let o=FC(`gh pr view`,NC,r);return o.kind===`ok`?R({number:n,state:o.value,url:i,head:a}):o}function nw(e){let t;try{t=JSON.parse(e)}catch(e){return B(`glab mr view: unparseable JSON (${e instanceof Error?e.message:String(e)})`)}if(!$C(t))return B(`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 B(`glab mr view: missing iid/state/web_url/sha`);let o=FC(`glab mr view`,PC,r);return o.kind===`ok`?R({number:n,state:o.value,url:i,head:a}):o}function rw(e){try{let t=r.statSync(e);return{key:`${t.dev}:${t.ino}`,stamp:`${t.mtimeMs}:${t.size}`}}catch{return null}}var iw=class{isGitRepo(e){return OC(e)}async execGitAsync(e,t){return O({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)?R(e):t&&this.isGitRepo(t)?R(t):this.isGitRepo(e)?R(e):this.findGitRoot(e)}async findGitRoot(e){let t=kC(e);return t===void 0?z:R(t)}async getGitInfo(e,t={},n){try{return await this.computeGitInfo(e,t,n)}catch(e){return B(`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=RC(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=RC(s,e=>this.repoNameFrom(e,r)),o.isWorktree=i),s!==void 0&&t.showRepoUrl&&(o.repoUrl=RC(s,ZC)),t.showOperation&&(o.operation=this.getOngoingOperation(r)),R(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`))?R(`MERGE`):r.existsSync(l.join(t,`CHERRY_PICK_HEAD`))?R(`CHERRY-PICK`):r.existsSync(l.join(t,`REVERT_HEAD`))?R(`REVERT`):r.existsSync(l.join(t,`BISECT_LOG`))?R(`BISECT`):r.existsSync(l.join(t,`rebase-merge`))||r.existsSync(l.join(t,`rebase-apply`))?R(`REBASE`):z}catch(e){return B(`git operation probe: ${e instanceof Error?e.message:String(e)}`)}}async getNearestTagAsync(e){return zC(IC(`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=zC(IC(`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)?B(`git log -1: unparseable timestamp "${n.value}"`):R(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`?R(0):B(`git stash reflog ${t}: ${e instanceof Error?e.message:String(e)}`)}let i=n.trim();return R(i?i.split(`
|
|
104
|
+
`).length:0)}async getRemotesAsync(e){let t=rw(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=IC(`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:R(t.kind===`ok`?WC(t.value):[])}repoNameFrom(e,t){let n=qC(e);return(n===null?null:YC(n))??l.basename(t)}async getRepoRemoteUrl(e){let t=await this.getRemotesAsync(e);if(t.kind!==`ok`)return t;let n=JC(t.value);return n===null?z:R(n)}async execForgeAsync(e,t,n){return O({bin:e,args:[...t],cwd:n.cwd,env:{...process.env},timeoutMs:n.timeout,category:`forge`})}async resolvePullRequest(e,t){let n=UC(t);return n===`github`?QC(`gh pr view`,await this.execForgeAsync(`gh`,[`pr`,`view`,`--json`,`number,state,url,headRefOid`],{cwd:e,timeout:5e3}),/no (open )?pull requests? found/i,tw):n===`gitlab`?QC(`glab mr view`,await this.execForgeAsync(`glab`,[`mr`,`view`,`--output`,`json`],{cwd:e,timeout:5e3}),/no (open )?merge requests? (found|available)/i,nw):z}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=IC(`git status --porcelain=v2 --branch`,await this.execGitAsync([`status`,`--porcelain=v2`,`--branch`],{cwd:e,timeout:2e3}),`failed`);return t.kind===`ok`?R(ew(t.value)):t}};const aw=(e,t)=>D(t);var ow=class{slots=new Map;maxWatchers;counters;logger;closed=!1;constructor(e={}){this.maxWatchers=e.maxWatchers??128,this.counters=e.counters,this.logger=e.logger??aw}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()}},sw=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 cw={showSha:!0,showStashCount:!0};function lw(e){let t=Object.keys(e).sort(),n={};for(let r of t)n[r]=e[r];return JSON.stringify(n)}function uw(e){let t=t=>{try{return r.statSync(l.join(e,t)).mtimeMs}catch{return 0}};return{head:t(`HEAD`),index:t(`index`)}}function dw(e,t){return e.head!==t.head||e.index!==t.index}function fw(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 pw=class extends iw{entries=new Map;subscribersByRepo=new Map;fetchInFlight=new Map;resolutions=new Map;prCache=new Map;prFetchInFlight=new Map;refreshes=new sw;hits=0;misses=0;invalidations=0;inner;ttlMs;maxEntries;watchers;ownsWatchers;logger;sanityTimer=null;constructor(e={}){super(),this.inner=e.inner??new iw,this.ttlMs=e.ttlMs??3e4,this.maxEntries=e.maxEntries??64,this.logger=e.logger??Nt,e.watchers?(this.watchers=e.watchers,this.ownsWatchers=!1):(this.watchers=new ow({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}|${lw(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(R(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=uw(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}`,fw(i),()=>this.invalidateRepo(e));return this.entries.set(t,{info:s,computedAt:r,mtime:a,watcher:c,repoRoot:e}),this.evictIfNeeded(),o}async getPullRequestCached(e,t){let n=await this.inner.getRepoRemoteUrl(e);if(n.kind===`failed`)return n;if(n.kind===`absent`)return z;let r=n.value,i=`${e}|${t}|${r}`,a=Date.now(),o=this.prCache.get(i);if(o){let e=o.pr.kind===`failed`?45e3:3e5;if(a-o.computedAt<e)return this.prCache.delete(i),this.prCache.set(i,o),o.pr}let s=this.prFetchInFlight.get(i);if(s)return s;let c=this.inner.resolvePullRequest(e,r).then(e=>(this.prCache.set(i,{pr:e,computedAt:Date.now()}),this.evictPrIfNeeded(),e)).finally(()=>{this.prFetchInFlight.delete(i)});return this.prFetchInFlight.set(i,c),c}evictPrIfNeeded(){for(;this.prCache.size>this.maxEntries;){let e=this.prCache.keys().next().value;if(e===void 0)break;this.prCache.delete(e)}}deliverable(e,t){return e.kind===`failed`?(this.logger(`warn`,`git fetch failed (${t}): ${e.reason}`),null):e.kind===`ok`?e.value:null}subscribe(e,t){let n=!1,r=null;return{firstDelivery:(async()=>{let i=await this.resolveEffectiveGitDir(e);if(n)return;if(i.kind!==`ok`){i.kind===`failed`&&this.logger(`warn`,`git resolve failed (subscribe ${e}): ${i.reason}`),this.safeInvoke(t,null);return}let a=i.value,o=this.subscribersByRepo.get(a);if(!o){let t=this.inner.resolveGitDir(a),n=this.watchers.acquire(`git:${a}`,fw(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,{...cw});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,{...cw}),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=uw(this.inner.resolveGitDir(t.repoRoot)),e.set(t.repoRoot,n)),dw(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 mw=/\r\n|\r|\n/g,hw=e=>R(e.replace(mw,` `).trim());function gw(e){return t=>{let n=e.exec(t)?.[1];return n===void 0?B(`regex no-match`):R(n.replace(mw,` `))}}const _w=e=>{try{return R(JSON.parse(e))}catch(e){return B(`JSON parse failed: ${e.message}`)}},vw=e=>e.getTime()/1e3,yw=e=>new Date(e*1e3);function bw(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 xw(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 Sw=`session.id`;function Cw(e,t,n){return{where:`output of "${e}" in ${t}`,read:async()=>{let r=await O({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?R(r.stdout):B(`shell "${e}" ${r.exitCode===null?[r.reason,r.error].filter(e=>e!==void 0).join(`: `):`exited with code ${r.exitCode}`} in ${t}`)}}}function ww(e,t,n){return{where:`"${e}"`,read:async()=>{try{let r=await oe(e,{encoding:`utf8`,signal:n});return R(t===`first-line`?r.split(/\r?\n/)[0]??``:r)}catch{if(n.aborted)throw n.reason;return B(`file unreadable: ${e}`)}}}}function Tw(e,t,n){if(e.kind!==`ok`)return e;let r=t(e.value);return r.kind===`failed`?B(`${r.reason} in ${n}`):r}const Ew=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Dw=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Ow=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],kw=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Aw(e,t){let n=[[`2006`,e=>String(e.getFullYear())],[`January`,e=>Ew[e.getMonth()]],[`Monday`,e=>Ow[e.getDay()]],[`Jan`,e=>Dw[e.getMonth()]],[`Mon`,e=>kw[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 jw={branch:`string`,sha:`string`,dirty:`boolean`,ahead:`number`,behind:`number`,stash:`number`};function Mw(e,t,n,r){if(e===null){if(n!==void 0)return n;let e=jw[t];try{return Bw(r,e)}catch{return Vw(e)}}switch(t){case`branch`:return e.branch===`detached`?``:e.branch;case`sha`:return li(e.sha,``);case`dirty`:return e.status!==`clean`;case`ahead`:return li(e.aheadBehind,{ahead:0,behind:0}).ahead;case`behind`:return li(e.aheadBehind,{ahead:0,behind:0}).behind;case`stash`:return li(e.stashCount,0)}}function Nw(e){try{return o(e)}catch{return e}}function Pw(e){try{return s(e).isDirectory()}catch{return!1}}function Fw(e){let t=Nw(e);return Pw(t)?{dir:t,name:null,leaf:!0}:Og(t)}const Iw=e=>`${e.dir}\0${e.name??``}`;var Lw=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:Fw(e),subscribers:new Map};return t.watcher=this.open(e,t,t.target),this.watchers.set(e,t),t}rearm(e,t){let n=Fw(e);if(t.watcher!==null&&Iw(n)===Iw(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}},Rw=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&&(le(n.timer),this.buckets.delete(e)))}dispose(){for(let{timer:e}of this.buckets.values())le(e);this.buckets.clear()}bucketCount(){return this.buckets.size}};function zw(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function Bw(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`?Fg(e):t===`number`?Ig(e):Lg(e)}function Vw(e){return e===`number`?0:e===`boolean`?!1:``}var Hw=class{inputMetas=new Map;lastErrors=new Map;watchFaults=new Map;watchMgr=new Lw;ttlMgr=new Rw;gitSubscriptions=new Map;cleanups=[];inFlight=new Map;reads=new sw;abort=new AbortController;drawn=Mg.observable.box(U.TRUECOLOR);drawnAt=()=>this.drawn.get();instant=Mg.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 yw(e)};engine=CC({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 pw({sanityIntervalMs:0}),this.ownsGitProvider=!0),this.sessionState=r}get variableStore(){return this.store}declareLiteral(e,t){this.store.defineBox(e,Pg(t),t)}declareFailedDocument(e,t){this.store.defineDocument(e,B(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,Cw(t,n.cwd,this.abort.signal),bw(e,n.cache),n.parse)}declareFile(e,t,n){this.declareSource(e,ww(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,hw,t.default,n);case`regex`:return this.scalarPublisher(e,gw(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=Tw(n,t,r);this.noteOutcome(e,a),this.store.setBox(e,li(a,i))}}documentPublisher(e,t,n){let r=t===void 0?z:R(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()===``?z:o,c=Tw(s,_w,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(wC(this.store)).map(e=>e.plain).join(``),n.varDefault)}declareTime(e,t){this.declareDerived(e,()=>Aw(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 Error(`variable "${e}": ${r}`);return n}})}declareGit(e,t){let n=jw[t.field],r=t.varDefault===void 0?Vw(n):Bw(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,Mw(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(Sw);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(Sw):``;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=zw(e,n.path),i=this.store.getType(t);if(r!==void 0)try{this.store.setBox(t,Bw(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.watchFaults.get(e);return n===void 0?t:t===void 0?n:{timestamp:t.timestamp,message:`${n.message}; ${t.message}`}}dispose(){this.abort.abort();for(let e of this.cleanups)e();this.cleanups.length=0;for(let e of this.gitSubscriptions.values())e.unsubscribe();this.gitSubscriptions.clear(),this.reads.clear(),this.watchMgr.dispose(),this.ttlMgr.dispose(),this.ownsGitProvider&&this.gitProvider.close()}registerCachePolicy(e,t,n){switch(t.kind){case`never`:break;case`ttl`:{let e=this.ttlMgr.subscribe(t.durationMs,n);this.cleanups.push(e);break}case`watch_file`:{let r=this.watchMgr.subscribe(t.path,n,t=>this.watchFaults.set(e,{timestamp:Date.now(),message:t}));this.cleanups.push(r);break}case`key`:{let e=this.engine.parse(t.template),r=(0,Mg.reaction)(()=>{let t=wC(this.store);try{return e.evaluate(t).map(e=>e.plain).join(``)}catch{return``}},n);this.cleanups.push(r);break}case`depends_on`:{let e=(0,Mg.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,Bw(this.defaultEmptyValue,t))}catch{this.store.setBox(e,Vw(t))}}defaultFor(e){try{return Bw(this.defaultEmptyValue,e)}catch{return Vw(e)}}stringInitial(e){return e===void 0?typeof this.defaultEmptyValue==`string`?this.defaultEmptyValue:``:e}recordError(e,t){this.lastErrors.set(e,{timestamp:Date.now(),message:t})}noteOutcome(e,t){t.kind===`ok`?this.lastErrors.delete(e):this.recordError(e,t.kind===`failed`?t.reason:`no value`)}};const Uw={project_dir:{kind:`input`,path:`workspace.project_dir`,default:``},[Sw]:{kind:`input`,path:`session_id`,default:``},transcript_path:{kind:`input`,path:`transcript_path`,default:``},resume_command:{kind:`input`,path:`resumeCommand`,default:``},config_path:{kind:`input`,path:`configPath`,default:``},"theme.effective":{kind:`input`,path:`theme.effective`,default:``},"style.effective":{kind:`input`,path:`style.effective`,default:``},"effect.effective":{kind:`input`,path:`effect.effective`,default:``},"preset.effective":{kind:`input`,path:`preset.effective`,default:``},"preset.customized":{kind:`input`,path:`preset.customized`,type:`boolean`,default:!1},"preset.bundled":{kind:`input`,path:`preset.bundled`,type:`boolean`,default:!0},"endcaps.effective":{kind:`input`,path:`endcaps.effective`,default:``},"variation.effective":{kind:`input`,path:`variation.effective`,default:``},"shade.effective":{kind:`input`,path:`shade.effective`,default:``},"charset.effective":{kind:`input`,path:`charset.effective`,default:``},"colorCompatibility.effective":{kind:`input`,path:`colorCompatibility.effective`,default:``},"transitions.effective":{kind:`input`,path:`transitions.effective`,type:`boolean`,default:!1},"autoWrap.effective":{kind:`input`,path:`autoWrap.effective`,type:`boolean`,default:!0},"padding.effective":{kind:`input`,path:`padding.effective`,type:`number`,default:1},"updateNotice.effective":{kind:`input`,path:`updateNotice.effective`,type:`boolean`,default:!0},"term.cols":{kind:`input`,path:`term.cols`,type:`number`,default:80},"tmux.pane":{kind:`input`,path:`tmux.pane`,default:``},"autocompact.window":{kind:`input`,path:`autocompact.window`,type:`number`,default:-1},...Object.fromEntries([`applied`,`lower`,`higher`].map(e=>[`autocompact.${e}`,{kind:`input`,path:`autocompact.${e}`,type:`number`,default:0}])),"autocompact.error":{kind:`input`,path:`autocompact.error`,default:``},"git.repoUrl":{kind:`input`,path:`git.repoUrl`,default:``}},Ww=`ne .tmux.pane ""`;function Gw(e,t,n){let r=new Set,i=e=>{for(let t of vg(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 dh(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(Sw);for(let t of Object.values(e.actions)){r.add(Sw),`copy`in t&&i(t.copy),`open`in t&&i(t.open);let e=`set`in t?va.get(t.set):void 0,n=`persist`in t?_a.get(t.persist):void 0;e!==void 0&&r.add(e),n!==void 0&&r.add(n)}return r}function Kw(e,t,n){let r=Eg({...n,variables:{...n.variables,...e.variables},segments:{...n.segments,...e.segments}}),i={};for(let a of Gw(e,t,n.helpers)){if(Tg(a,r))continue;let e=Uw[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 qw(e){return e.replace(/[^A-Za-z0-9]+/g,`_`)}var Jw=class extends Error{file;issues;warnings;constructor(e,t,n=[]){super(Qw(e,t)),this.name=`ConfigError`,this.file=e,this.issues=t,this.warnings=n}};function X(e,t){let n=0,r;for(let i of t){if(i===``||/^\d+$/.test(i))continue;let t=Yw(e,n,i);if(t===-1)return r===void 0?void 0:Xw(e,r);n=t,r=t}return r===void 0?void 0:Xw(e,r)}function Yw(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 Xw(e,t){let n=1;for(let r=0;r<t&&r<e.length;r++)e.charCodeAt(r)===10&&n++;return n}function Zw(e,t){try{return _r(t),null}catch(n){if(!(n instanceof dr))throw n;return`${e}:${Xw(t,n.offset)}: ${n.reason} — the settings menu cannot edit this file until it is fixed`}}function Qw(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(`
|
|
105
|
+
`)}const $w=`groups.`,eT=`menus.`,tT=`edit.`,Z=`candybar.`,nT=[$w,eT,tT,Z];function rT(e){return nT.some(t=>e.startsWith(t))}function iT(e){let t=qw(e);return nT.find(e=>t.startsWith(qw(e)))}function aT(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:X(e.source,[`root`])})}function oT(e){return e}function sT(e,t,n){return n===void 0?eT+qw(e)+`.`+qw(t):cT(n)}function cT(e){return eT+qw(e)}function lT(e,t){return e+`.`+t}function uT(e){return e+`.page`}const dT=[`closeOnPick`,`paged`,`key`,`distribution`],fT=e=>dT.includes(e),pT=`"closeOnPick" (bool, default false), "paged" (bool, default true), "key" (string, accordion grouping), "distribution" (one of ${lf.map(e=>`"${e}"`).join(`, `)}; default "van-der-corput")`;function mT(e){for(let t of Object.keys(e))if(!fT(t))throw Error(`unknown {{ menu }} option "${t}" — the options dict takes ${pT}`);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&&!uf(r))throw Error(`{{ menu }} option "distribution" must be one of: ${lf.join(`, `)}; got ${JSON.stringify(r)}`);return{closeOnPick:t(`closeOnPick`,!1),paged:t(`paged`,!0),key:n,distribution:ff(r)}}const hT=e=>`from`in e?e.from:e.themes;function gT(e,t,n){return e===`bool`?Zp(t)!==null:`min`in e?Qp(t,e)!==null:rg(hT(e),n).members.includes(t)}function _T(e,t){if(e===`bool`)return Yp.join(` or `);if(!(`min`in e)){let n=hT(e),{members:r}=rg(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 vT(e){return{label:e.label,domain:yT(e.domain)}}function yT(e){return e===`theme`?{themes:eg}:e===`bool`||`min`in e?e:{from:e}}function bT(e,t,n,r,i){let a=Jn(e.label),{domain:o}=e;if(o===`bool`)return{kind:`inline`,template:`{{ action "${r}" "☑ ${a}" "☐ ${a}" }}`,actions:{[r]:{set:t,cycle:[...Yp]}},variables:{}};if(`from`in o)return xT(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 xT(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 xT(e,t,n,r,i){let a={variable:n,key:n,member:t},o=lT(n,t),s=`${t}.open`,c=uT(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]:nr(n,t),[c]:{set:c,int:!0},[l]:{set:c,to:`-1`},[s]:{do:[o,l]}},variables:{[n]:tr(n,L),[c]:{kind:`state`,key:c,default:`0`}},list:{ref:a,rows:d}}}function ST(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 ${OT(i)}`,line:X(e.source,[...t.split(`.`),r])}),null)}function CT(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 ${OT(i)}`,line:X(e.source,[...t.split(`.`),`default`])});return}return i}}function wT(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 ${OT(i)}`,line:X(e.source,[...t.split(`.`),r])});return}return i}}function TT(e,t,n){let r=wT(e,t,n,`palette`);if(r!==void 0){if(!e.allowedPalettes.has(r)){e.issues.push({path:`${t}.palette`,message:`Unknown palette "${r}"${sp(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:X(e.source,[...t.split(`.`),`palette`])});return}return r}}function ET(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 ${Q(a)}`,line:X(e.source,[...t.split(`.`),r])});return}return a}}function DT(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function OT(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function Q(e){return typeof e==`string`?JSON.stringify(e):e===void 0?`undefined`:String(e)}function kT(e,t,n,r){return DT(r)?(NT(e,n,r,t.noun,new Set(Object.keys(t.fields)),AT(e,t.removed??{},n,r)),jT(e,t.fields,n,r)):(e.issues.push({path:n,message:`${n} must be an object, got ${OT(r)}`,line:X(e.source,n.split(`.`))}),null)}function AT(e,t,n,r){let i=Object.entries(t).filter(([e])=>r[e]!==void 0);for(let[t,r]of i)PT(e,`${n}.${t}`,`${n}.${t} was removed: ${r}`);return new Set(i.map(([e])=>`${n}.${e}`))}function jT(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 MT=new Set;function NT(e,t,n,r,i,a=MT){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:X(e.source,[...t.split(`.`),o])})}function PT(e,t,n){return e.issues.push({path:t,message:n,line:X(e.source,t.split(`.`))}),null}function FT(e,t,n,r){if(!DT(r))return e.issues.push({path:n,message:`${t.noun} must be an object, got ${OT(r)}`,line:X(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:X(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:X(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:X(e.source,n.split(`.`))}),null;let c=o[0];return i[c].parse(e,`${n}.${c}`,r[c])}function IT(e,t,n,r){if(!DT(r))return e.issues.push({path:n,message:`${n} must be an object, got ${OT(r)}`,line:X(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 ${OT(i)}`,line:X(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:X(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 NT(e,n,r,`${i} ${t.memberNoun} key`,o.keys,l),c}function LT(e,t,n){return{json:ZT(YT(n),e,t),keys:new Set([e,...Object.keys(n)])}}function RT(e){return(...t)=>e()(...t)}function zT(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:X(n.source,o.split(`.`))}),null}return a}}function BT(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>wT(e,t,r,n)}}function VT(){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 ${OT(i)}`,line:X(e.source,[n])});return}return i}}}}function HT(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 ${Q(o)}`,line:X(e.source,[i])});return}return o}}}}function UT(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 ${Q(a)}`,line:X(e.source,[r])});return}return a}}}}function WT(){return{required:!1,json:{type:`string`},parse:(e,t,n,r)=>TT(e,t,r)}}function GT(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>ST(e,t,r,n)??void 0}}function KT(e,t){return f(t)?null:`${e} must be an absolute path (\`~\` and relative paths are not expanded), got ${JSON.stringify(t)}`}function qT(){return{required:!0,json:{type:`string`,pattern:`^/`},parse:(e,t,n,r)=>{let i=ST(e,t,r,n);if(i===null)return;let a=KT(`${t}.${n}`,i);return a===null?i:PT(e,`${t}.${n}`,a)??void 0}}}function JT(e){return{required:!1,json:{enum:[...e]},parse:(t,n,r,i)=>ET(t,n,i,r,e)}}function YT(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 XT(e){return YT(e.fields)}function ZT(e,t,n){let r=e,i={[t]:{const:n},...r.properties},a=[t,...r.required??[]];return{...r,properties:i,required:a}}function QT(e){let t=e.arms;return{anyOf:Object.values(t).map(e=>e.json)}}function $T(e){let t=e.arms;return{anyOf:Object.entries(t).map(([e,t])=>({type:`object`,properties:{[e]:t.json},required:[e],additionalProperties:!1}))}}const eE={required:!1,json:{enum:[...zp]},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: ${zp.join(`, `)}`,line:X(e.source,[...t.split(`.`),n])});return}return ET(e,t,r,n,zp)}},tE={required:!1,json:{type:`string`},parse:(e,t,n,r)=>{let i=wT(e,t,r,n);return gp(i)?i:TT(e,t,r)}},nE={required:!1,json:{anyOf:[{enum:[...Ep]},{type:`string`,pattern:`\\{\\{`}]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&gp(i)?i:ET(e,t,r,n,Ep)}},rE=/^[^\r\n]*\S[^\r\n]*$/u,iE=RegExp(`^(?:✖|✕)[\\uFE0E\\uFE0F]?$`,`u`),aE={required:!1,json:{type:`string`,pattern:rE.source,not:{pattern:iE.source}},parse:(e,t,n,r)=>{let i=wT(e,t,r,n);if(i===void 0||rE.test(i)&&!iE.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:X(e.source,[...t.split(`.`),n])})}};function oE(e){return{spec:JT(e),domain:{from:e}}}function sE(){return{spec:VT(),domain:`bool`}}function cE(e){return{spec:e,domain:`text`}}const lE={default_empty_value:cE(BT()),default_separator:cE(BT()),palette:{spec:tE,domain:{themes:`themes`}},style:{spec:BT(),domain:{from:`styles`}},effect:{spec:nE,domain:{from:Ep}},preset:{spec:BT(),domain:{from:`presets`}},endcaps:oE(jp),variation:oE(Vp),shade:oE(Wp),autoWrap:sE(),padding:{spec:HT(Xp),domain:{...Xp,step:1}},charset:oE(Ip),updateNotice:sE(),transitions:sE(),colorCompatibility:{spec:eE,domain:{from:zp}},menuGlyph:cE(aE)},uE=Object.fromEntries(Object.entries(lE).map(([e,t])=>[e,t.spec]));function dE(e){return lE[e].domain}function fE(e){let t=dE(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 pE(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:X(e.source,[...n.split(`.`),r])})}}}function mE(e){return pE(`${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 hE(e){return pE(`${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 gE(e,t,n){return{...e,json:{...e.json,not:{pattern:`\\{\\{`}},parse:(r,i,a,o)=>{let s=o[a];if(typeof s==`string`&&gp(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:X(r.source,[...i.split(`.`),a])});return}return e.parse(r,i,a,o)}}}const _E={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)`},vE={noun:`globals key`,fields:uE,removed:_E},yE={preset:mE(`a preset`),menuGlyph:hE(`a preset`)},bE={noun:`preset globals key`,fields:{...uE,...yE},removed:_E};function xE(e){return jE(e)&&!(e in yE)}const SE=`is decided later than any rule could be settled`,CE={noun:`editGlobals key`,removed:_E,fields:{...uE,preset:mE(`the editGlobals fragment`),menuGlyph:hE(`the editGlobals fragment`),palette:gE(uE.palette,`the editGlobals fragment`,SE),style:gE(uE.style,`the editGlobals fragment`,SE),effect:gE(uE.effect,`the editGlobals fragment`,SE)}},wE={noun:`theme default key`,fields:{...Object.fromEntries(gh.map(e=>[e,uE[e]])),style:gE(uE.style,`a theme's default`,`is the look that theme wears by name`)}};function TE(e,t){if(!DT(t))return e.issues.push({path:`themeDefaults`,message:`themeDefaults must be an object mapping theme names to { shade, variation, style }, got ${OT(t)}`,line:X(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${sp(r)}. Expected one of: ${[...e.allowedPalettes].sort().join(`, `)}`,line:X(e.source,[`themeDefaults`,r])});continue}let a=kT(e,wE,t,i);a!==null&&(n[r]=a)}return n}function EE(e,t,n){return n===void 0?{}:kT(e,vE,t,n)??{}}function DE(e,t,n){return kT(e,bE,t,n)??{}}function OE(){return XT(bE)}function kE(e,t,n){return kT(e,CE,t,n)??{}}const AE=new Set(Object.keys(uE));function jE(e){return AE.has(e)}function ME(){return[...AE]}const NE={padding:1};function PE(e){let t=new Map;for(let[n,r]of Object.entries(NE)){let i=e[n];t.set(n,typeof i==`number`?i:r)}return t}const FE=/^segments\.([^.]+)\.palette$/,IE=/^presets\.(.+)\.root$/,LE=/^presets\.(.+)\.globals\.([^.]+)$/,RE=/^themeDefaults\.(.+)\.([^.]+)$/;function zE(e){return`presets.${e}.root`}function BE(e,t){return`themeDefaults.${e}.${t}`}const VE=e=>gh.includes(e);function HE(e,t){return`presets.${e}.globals.${t}`}function UE(e){if(jE(e))return{scope:`globals`,field:e};let t=FE.exec(e);if(t)return{scope:`segment-palette`,segment:t[1]};let n=LE.exec(e);if(n&&xE(n[2]))return{scope:`preset-globals`,preset:n[1],field:n[2]};let r=RE.exec(e);if(r&&VE(r[2]))return{scope:`theme-default`,theme:r[1],field:r[2]};let i=IE.exec(e);return i?{scope:`preset-root`,preset:i[1]}:null}function WE(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 GE=[`location`,`git`,`model-context`,`cost-limits`,`activity`,`session-tools`],KE=[...GE,`other`],qE={location:`location`,git:`git`,"model-context":`model & context`,"cost-limits":`cost & limits`,activity:`activity`,"session-tools":`session tools`,other:`other`},JE=Av({fromString:e=>e}),YE=`edit.mode`,XE=`edit.configure`,ZE=`edit.toggle`,QE=`edit.unconfigure`,$E=[ZE,QE],eD=`arrange`,tD=`${tT}draft.`;function nD(e,t){return`${e}:${t}`}const rD={variable:YE,key:YE,member:eD},iD=Xn(rD);function aD(e){try{return JE.parse(e).referencedCalls().some(e=>e.name===`action`&&e.args[0]===`edit.toggle`)}catch{return!1}}function oD(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`&&aD(e))return!0;return!1}function sD(e,t){if(aT(e,t,tT,`edit mode`),!oD(t))return;let{variables:n,actions:r}=cD();t.variables={...t.variables??{},...n},t.actions={...t.actions??{},...r}}function cD(){return{variables:{[YE]:tr(YE,L),[XE]:tr(XE,L)},actions:{[ZE]:nr(YE,eD),[QE]:{set:XE,to:L}}}}const lD=`open`;function uD(e,t,n,r){let i={variable:e,key:e,member:lD};return r.variables[e]=tr(e,L),r.actions[e]=nr(e,lD),r.segments[e]={template:Qn(e,`(?)`,`✕`),...dD(n)},Yn(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 dD(e){let[t,...n]=e;return t===void 0?{}:{when:Xn(t,...n)}}const fD=`none`;function pD(e){return Us(e,`background`)}var mD=class extends Error{constructor(e,t,n){super(`Invalid ${t} color ${JSON.stringify(e)}: ${n}`),this.name=`ColorSpecError`}};function hD(e,t,n,r,i){let{palette:a,tint:o,text:s}=e,c=gD(n,i),l=c!==fD,u=l?c===void 0?o:_D(a,c,`bg`):pD(a);e.bg=u;let d=gD(r,i),f=d===void 0?l?(e=>e.hex===o.hex?s:Pf(a,e,t))(u):void 0:_D(a,d,`fg`);return new G({...l&&{bgcolor:W.fromRgba(u)},...f!==void 0&&{color:W.fromRgba(f)}})}function gD(e,t){if(e!==void 0)return e.evaluate(t).map(e=>e.plain).join(``)}function _D(e,t,n){try{return Us(e,t)}catch(e){throw e instanceof Hs?new mD(t,n,e.message):e}}const vD=`🔧`,yD={help:[`-h`,`--help`],version:[`-V`,`--version`]},bD=[`✚ inserts`,`✖ removes`,`${vD} configures`,`↺ resets layout`],xD=`
|
|
106
106
|
cc-candybar - Beautiful powerline statusline for Claude Code
|
|
107
107
|
|
|
108
108
|
Usage: cc-candybar [options]
|
|
109
109
|
|
|
110
110
|
Standalone Commands:
|
|
111
|
-
${
|
|
112
|
-
${
|
|
111
|
+
${yD.help.join(`, `).padEnd(25)}Show this help
|
|
112
|
+
${yD.version.join(`, `).padEnd(25)}Print the version of this runtime (cc-candybar <version>)
|
|
113
113
|
|
|
114
114
|
Debugging:
|
|
115
115
|
CC_CANDYBAR_DEBUG=1 Enable debug logging for troubleshooting
|
|
@@ -132,7 +132,7 @@ Configuration:
|
|
|
132
132
|
failed row's [fix] to repair it (the same checks \`cc-candybar doctor\` runs).
|
|
133
133
|
|
|
134
134
|
Anywhere the bar shows (?), clicking it reveals these same instructions
|
|
135
|
-
in place. In edit mode: ${
|
|
135
|
+
in place. In edit mode: ${bD.join(`, `)}.
|
|
136
136
|
|
|
137
137
|
Subcommands:
|
|
138
138
|
install One-shot setup: stages the runtime (native render
|
|
@@ -173,15 +173,15 @@ Config tooling:
|
|
|
173
173
|
config [--json] The effective merged config. (All three query the
|
|
174
174
|
running daemon; none spawn one.)
|
|
175
175
|
|
|
176
|
-
`,
|
|
177
|
-
`).map(e=>e.trim()).filter(e=>e!==``),...e.warnings];return{ok:!1,reason:t,more:n}}case`loaded`:return bD([...e.warnings,...e.unused.map(({kind:e,name:t})=>`${e} "${t}" ${CD[e]}`)])}}},TD="re-run `cc-candybar install`";function ED(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:// — ${TD}`];let{app:t,missing:n}=e.value;return n.kind===`failed`?[`${t} opens cc-candybar://, but ${n.reason} — ${TD}`]:n.value.map(e=>`${e} is missing, and ${t} runs it — ${TD}`)}const DD=[wD,{name:`urlHandler`,label:`URL handler`,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}) — ${TD}`:`the URL handler runs cc-candybar ${e.handler}; the bar runs ${e.bar} — ${TD}`};case`lost`:return bD([...ED(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}`])}}},SD,{name:`effectRefresh`,label:`effect refresh`,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}}}}];function OD(e){return DD.map(t=>({check:t,verdict:t.probe(e)}))}function kD(e){return DD.find(t=>t.name===e)}const AD=`${Z}doctor.`;function jD(e){let t=`${AD}${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`}}function MD(e,t=[]){return t.length===0?e:`${e} (+${t.length} more — run \`cc-candybar doctor\`)`}function ND(e){return e.flatMap(({check:e,verdict:t})=>{let n=jD(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:Jp}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:MD(t.reason,t.more)},{key:n.fixable,value:t.fix===void 0?Jp:qp}]})}const PD={copySession:{copy:`{{ .session.id }}`},copyResume:{copy:`{{ .resume_command }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},openConfig:{open:`{{ .config_path }}`}};function FD(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(PD).map(([t,n])=>[`${e}${t}`,n]))}}const ID=`armed`,LD=`disarmed`,RD=`.armed`,zD=e=>e.endsWith(RD);function BD(e,t,n){let r=`${e}${RD}`,i=`${e}.arm`,a=`${e}.disarm`,o=`(eq .${e} "${ID}")`;return{template:`{{ if ${o} }}{{ action "${e}" "${t.confirm}" }} {{ action "${a}" "✕" }}{{ else }}{{ action "${i}" "${t.arm}" }}{{ end }}`,actions:{[i]:{set:r,to:ID},[a]:{set:r,to:LD},[e]:{do:[a,...n]}},armed:o,variables:{[e]:{kind:`state`,key:r,default:LD}},disarm:a}}const VD=RegExp(`^/[^\\s\\x00-\\x1f\\x7f-\\x9f/][^\\x00-\\x1f\\x7f-\\x9f]*$`);function HD(e){return typeof e==`string`&&VD.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 UD(e){let t=HD(e);if(t.kind===`refused`)throw Error(t.reason);return t.line}const WD=[`/compact`,`/model`],GD=`/clear`;function KD(e){let t=t=>`${e}${t.slice(1)}`,n=`${e}clear.slash`,r=BD(`${e}clear`,{arm:GD,confirm:`${GD} ✓ confirm`},[n]);return{template:WD.map(e=>`{{ action "${t(e)}" "${e}" }} `).join(``)+r.template,when:`{{ ${zw} }}`,actions:{...Object.fromEntries(WD.map(e=>[t(e),{slash:UD(e)}])),...r.actions,[n]:{slash:UD(GD)}},variables:r.variables,disarm:r.disarm}}const qD=Array.from({length:10},(e,t)=>(t+1)*1e5),JD=qD[0],YD=qD[qD.length-1];function XD(e){let t;try{t=oi(e)}catch(e){return B(e instanceof Error?e.message:String(e))}let n=t.autoCompactWindow;return n===void 0?R(`auto`):typeof n==`number`&&Number.isInteger(n)&&n>=JD&&n<=YD?R(n):B(`${e}: autoCompactWindow is ${JSON.stringify(n)}, not a window /autocompact accepts (${JD}–${YD} tokens)`)}function ZD(e,t){let n=Math.min(t??YD,YD),r=e===`auto`?n:Math.min(e,n);return{window:e===`auto`?0:e,applied:e===`auto`?0:r,lower:qD.filter(e=>e<r).at(-1)??0,higher:qD.find(e=>e>r&&e<=n)??0}}function QD(e,t){return{template:`{{ if ne .autocompact.error "" }}⇲ ⚠ {{ .autocompact.error }}{{ else }}⇲ {{ if eq .autocompact.window 0 }}auto{{ else }}${t(`.autocompact.applied`)}{{ end }}{{ if ${zw} }}{{ 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:UD(`/autocompact auto`)},...Object.fromEntries(qD.map(t=>[`${e}${t}`,{slash:UD(`/autocompact ${t}`)}]))}}}const $D=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 }}`,eO=`${Z}menu`,tO=`open`,nO=`${Z}edit`,rO=`${Z}toolbar`,iO=FD(Z),aO=`${Z}commands`,oO=KD(`${aO}.`),sO=`${Z}autocompact`,cO=QD(`${sO}.`,$D),lO=e=>({kind:`segment`,name:e}),uO=`${Z}tab`,dO=[{member:`session`,label:`⚡ session`},{member:`look`,label:`🎨 look`},{member:`layout`,label:`📐 layout`},{member:`config`,label:`⚙ config`},{member:`tools`,label:`🧰 tools`}],fO=e=>`${uO}.${e}`,pO=e=>`${fO(e)}.toggle`,mO=e=>({variable:uO,key:uO,member:e}),hO=`${Z}save`,gO=`${Z}preset.save`,_O=`${Z}preset.delete`,vO=e=>`${Z}${e}`,yO=e=>`${Z}apply.${e}`,bO=e=>`${Z}reset.${e}`,xO=`${Z}themeDefault.save`,SO=`${Z}themeDefault.differs`,CO=`${Z}themeDefault.theme`,wO={when:`{{ .${SO} }}`,template:`{{ action "${xO}" (printf "⤓ default for %s" .${CO}) }} {{ swatch "${yO(`theme`)}" .${CO} }}`},TO=`${Z}resetAll`,EO=`${eO}.toggle`,DO={variable:eO,key:eO,member:tO},OO=`${Z}undo`,kO=`${Z}back`,AO=`${kO}.step`,jO=`${Z}navigation.back`,MO=kO,NO={template:`{{ if gt .${jO} 0 }}{{ action "${kO}" "◁" }}{{ else }}{{ fg (${_D}) "◁" }}{{ end }}`},PO=`${Z}redo`,FO=`${Z}doctor`,IO=`${FO}.run`,LO=e=>`${FO}.fix.${e}`,RO=e=>`${FO}.${e}`,zO=rT(`${Z}pickers`),BO=`${Z}gear`,VO=`gear`,HO=`${BO}.toggle`,UO={variable:zO,key:zO,member:VO},WO=rT(`${Z}gearPickers`),GO=[{template:`{{ themePreview }}`}],KO={template:`{{ layoutPreview }}`},qO={preset:[KO,{when:`{{ not .preset.bundled }}`,template:`{{ action "${_O}" (printf "🚮 delete %s" .${pa.preset.effectiveVar}) }}`}],style:GO,variation:[KO],shade:[KO]},JO=(e,t)=>`${Z}list.${e}.${t}`,YO=e=>`${Z}resettable.${e}`,XO=e=>e.length===0?`false`:`(or ${e.map(e=>`.${YO(e)}`).join(` `)})`,ZO={preset:`door`,theme:`look`,style:`gear`,effect:`look`,variation:`gear`,shade:`gear`,endcaps:`look`,transitions:`look`,autoWrap:`layout`,padding:`layout`,updateNotice:`config`},QO=e=>e===`gear`?ZO.theme:e,$O=Object.keys(pa).map(e=>{let t=pa[e],n=sE(t.configKey),r=hT({label:t.label,domain:n},t.sessionKey,t.effectiveVar,yO(e),ZO[e]===`gear`?WO:zO);return{...t,name:e,control:r,beneath:qO[e]??[]}}),ek=e=>$O.filter(t=>ZO[t.name]===e),tk=e=>$O.filter(t=>QO(ZO[t.name])===e),nk={theme:[Yn(BO,UO,{kind:`container`,direction:`horizontal`,children:ek(`gear`).map(hk)},`drop`)]},rk=e=>ek(e).flatMap(e=>[hk(e),...nk[e.name]??[]]);new Set($O.flatMap(e=>[e.sessionKey,e.configKey]));const ik=BD(TO,{arm:`⟲`,confirm:`⟲ reset all?`},$O.map(e=>bO(e.name))),ak=[`unsaved`,`history.undo`,`history.redo`],ok=e=>`${Z}${e}`,sk=ok(`unsaved`),ck=(e,t)=>({body:t,shown:`(gt .${ok(e)} 0)`}),lk=[ck(`unsaved`,`{{ action "${hO}" (printf "💾 save %d" .${sk}) }}`),ck(`history.undo`,`{{ action "${OO}" "↶" }}`),ck(`history.redo`,`{{ action "${PO}" "↷" }}`),{body:ik.template,shown:`(or ${XO($O.map(e=>e.name))} ${ik.armed})`}],uk={when:`{{ or ${lk.map(e=>e.shown).join(` `)} }}`,template:`{{ $sep := "" }}`+lk.map(e=>`{{ if ${e.shown} }}{{ $sep }}${e.body}{{ $sep = " " }}{{ end }}`).join(``)},dk=[{step:ik,place:`door`},{step:oO,place:`session`}],fk=e=>e.map(e=>e.step.disarm),pk=fk(dk),mk=fk(dk.filter(e=>e.place!==`door`));function hk(e){let t=vO(e.name);return e.control.kind===`inline`?lO(t):Yn(t,e.control.list.ref,{kind:`container`,direction:`vertical`,children:[...e.control.list.rows,...e.beneath].map((t,n)=>lO(JO(e.name,n)))},`drop`)}function gk(e){return e===eO}function _k(e){let t=lO(eO);if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[_k(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 vk(e){return yk(e)>0?e:_k(e)}function yk(e){let t=0;for(let n of dh(e))n.kind===`segment`&&gk(n.name)&&(t+=1);return t}function bk(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&gk(e.name)||e.opens!==void 0&&bk(e.opens.body,!0):e.children.some(e=>bk(e,n))}const xk={session:{direction:`vertical`,content:[lO(rO),{kind:`container`,direction:`horizontal`,children:[lO(aO),lO(sO)]}],after:[]},look:{direction:`horizontal`,content:[],after:[lO(xO)]},layout:{direction:`horizontal`,content:[lO(gO),lO(nO)],after:[]},config:{direction:`horizontal`,content:[],after:[]},tools:{direction:`vertical`,content:[lO(FO),...DD.map(e=>lO(RO(e.name)))],after:[]}},Sk=e=>({kind:`container`,direction:xk[e].direction,children:[...xk[e].content,...rk(e),...xk[e].after]});function Ck(e){return e.kind===`segment`?gk(e.name)?Yn(e.name,DO,Tk,`above`):e:Dk(e)}function wk(){return{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[lO(MO),...rk(`door`),lO(hO)]},{kind:`container`,direction:`horizontal`,children:dO.map(({member:e})=>Yn(fO(e),mO(e),Sk(e),`drop`))}]}}const Tk=wk();function Ek(e){let t=new Map;for(let e of dh(Tk))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=`${eO}.fold.${Hw(t)}`;return e.actions[i]={set:t,to:r.default},i})}function Dk(e){return{...e,children:e.children.map(e=>Ck(e))}}function Ok(e){let t={variables:{[eO]:tr(eO,L)},actions:{[EO]:nr(eO,tO),[IO]:{doctor:`run`},[nO]:{do:[...JE]},...iO.actions,...oO.actions,...cO.actions,[hO]:{save:!0},[OO]:{undo:!0},[AO]:{back:!0},[kO]:{do:[AO,...pk]},[PO]:{redo:!0},[gO]:{preset:`save`},[xO]:{themeDefault:`save`},[_O]:{preset:`delete`,name:`{{ .${pa.preset.effectiveVar} }}`}},segments:{[eO]:{template:`{{ $door := ${$n(eO,er(e),er(`✖`))} }}{{ if ${Zn(DO)} }}{{ fg (keptOn (color "error") (bgOf)) $door }}{{ else }}{{ $door }}{{ end }}`},[rO]:{template:iO.template},[aO]:{template:oO.template,when:oO.when},[sO]:{template:cO.template,bg:cO.bg,when:cO.when},[MO]:NO,[hO]:uk,[xO]:wO,[gO]:{template:`{{ action "${gO}" "+ preset" }}`},[FO]:{template:`{{ action "${IO}" "🩺 doctor" }}`},[nO]:{template:`{{ action "${nO}" "✎ arrange" "✎ done" }}`}}};t.variables[SO]={kind:`input`,path:`themeDefault.differs`,type:`boolean`,default:!1},t.variables[CO]={kind:`input`,path:`themeDefault.theme`,type:`string`,default:``},t.variables[jO]={kind:`input`,path:`navigation.back`,type:`number`,default:0};for(let e of ak)t.variables[ok(e)]={kind:`input`,path:e,type:`number`,default:0};t.variables[uO]=tr(uO,`session`);for(let{member:e,label:n}of dO){t.actions[pO(e)]=nr(uO,e),t.actions[fO(e)]={do:[pO(e),...mk]};let r=XO(tk(e).map(e=>e.name)),i=`(ternary ${er(` •`)} "" ${r})`,a=e=>`(print ${er(e)} ${i})`;t.segments[fO(e)]={template:`{{ ${$n(fO(e),a(n),a(`▾ ${n}`))} }}`}}return Object.assign(t.variables,oO.variables,ik.variables),Ak(t),kk(t),t.actions[eO]={do:[EO,...pk,...Ek(t)]},t}function kk(e){for(let t of DD){let n=jD(t.name),r=LO(t.name);for(let t of Object.values(n))e.variables[t]={kind:`state`,key:t,default:``};e.actions[r]={doctor:`fix`,check:t.name},e.segments[RO(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${qp}" }} {{ action "${r}" "[fix]" }}{{ end }}{{ end }}`}}}function Ak(e){for(let t of $O){Object.assign(e.actions,t.control.actions);let n=bO(t.name);e.actions[n]={reset:t.configKey},e.variables[YO(t.name)]={kind:`input`,path:`resettable.${t.name}`,type:`boolean`,default:!1};let r=`{{ if .${YO(t.name)} }} {{ action "${n}" "↺" }}{{ end }}`;Object.assign(e.variables,t.control.variables),e.segments[vO(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[JO(t.name,r)]=n})}Object.assign(e.actions,ik.actions),e.actions[HO]=nr(zO,VO),e.segments[BO]={template:`{{ action "${HO}" "⚙" }}`}}function jk(e){let{variables:t,actions:n}=rD();Object.assign(e.variables,t),Object.assign(e.actions,n)}function Mk(e){let t=Ok(e.globals.menuGlyph??`🍫`);jk(t);let n={...e.presets},r=[];for(let t of qh(e.presets)){let{node:i}=Xh(e,t),a=Ck(vk(i));r.push(a),n[t]={...Yh(e.presets,t),root:a}}let i=Vw(t,r,e);return{...e,variables:{...i,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:n}}const Nk=`${Xw}live`,Pk=[`☐ live`,`☑ live`],Fk=`${Xw}done`,Ik=`${Xw}cancel`,Lk=`${Xw}rewind`,Rk=`${Xw}changes`,zk=`(gt .${Rk} 0)`,Bk=`(or ${zk} (gt .${sk} 0))`,Vk={variable:Nk,key:Nk,member:`open`};function Hk(e){return`${Xw}configuring.p${e}`}function Uk(e){return`and ${Zn(QE)} (not ${Zn(Vk)}) (ne .${Hk(e)} "true")`}function Wk(e){return{kind:`template`,template:`{{ or ${e.map(e=>`(eq .${GE} "${Jn(e)}")`).join(` `)} false }}`}}function Gk(e,t,n){return`{{ if ${Uk(e)} }}${t}{{ else }}${n}{{ end }}`}const Kk=`{{ and ${Zn(QE)} .preset.customized }}`,qk=Qw;function Jk(e){return new Map([...tg(e),...Xk(e)])}const Yk=`${Xw}addable`;function Xk(e){return new Map([[Yk,{members:Object.keys(e.segments).filter(e=>!qk(e)),library:{groups:VE.map(e=>({id:e,label:HE[e]})),entry:t=>{let n=e.segments[t];return{group:n.group??`other`,...n.description!==void 0&&{description:n.description}}}}}]])}function Zk(e,t,n){return n.segments[e]={template:t,when:$E,bg:sD},{kind:`segment`,name:e}}function Qk(e,t,n){let r=`${Xw}${e.presetIdent}.remove.${t}`;return e.artifacts.actions[r]={persist:e.rootKey,removeSegment:n},`{{ fg (${`readableOn (color "error") (bgOf) ${Nf}`}) (action "${r}" "✖") }}`}function $k(e){return`{{ if ${Zn(QE)} }}${e}{{ end }}`}function eA(e,t){return e.reduce((e,t)=>`{{ if and ${Zn(QE)} ${Zn(t)} }}true{{ else }}${e}{{ end }}`,t)}function tA(e){return e.flatMap(e=>[...dh(e)].flatMap(e=>e.kind===`segment`&&e.opens?.ref.key===`edit.configure`?[e.opens.ref]:[]))}function nA(e,t,n){return`${XE}${e}.${t}.${n}`}function rA(e,t,n,r){let i=sh(n),a=`${Xw}${e.presetIdent}`,o=ZE(e.presetIdent,i);e.configured.push(o);let s=`${a}.configure.${t}`,c=rT(s),l=`${s}.fold`;e.artifacts.actions[l]={set:c,to:L},e.artifacts.actions[s]={do:[`${s}.open`,l]},e.artifacts.actions[`${s}.open`]={set:GE,to:o};let u={},d=Object.entries(r).map(([r,o])=>{let s=nA(e.presetIdent,i,r),l=`${XE}p${e.presetIdent}.d${t}.${r}`;e.artifacts.variables[l]={kind:`state`,key:s,default:Oh(n.settings?.[r]??o.default)},u[r]={id:i,key:s,variable:l};let d=`${a}.setting.${t}.${r}`,f=hT(pT(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 Yn(d,f.list.ref,{kind:`container`,direction:`vertical`,children:p},`drop`)});return{term:`{{ action "${s}" "${pD}" }}`,ref:{variable:GE,key:GE,member:o},body:{kind:`container`,direction:`vertical`,children:d},drafts:u}}const iA=`${Xw}label:`;function aA(e){if(e.startsWith(iA)){let t=e.slice(iA.length);return t.slice(t.indexOf(`:`)+1)}return e.startsWith(`edit.`)?void 0:e}function oA(e,t,n,r){let{artifacts:i}=n,a=sh(e),o=`${iA}${a}:${e.name}`;i.segments[o]={template:`{{ "${Jn(a)}" }}`,...t.palette!==void 0&&{palette:t.palette}};let s=Object.fromEntries(Ch.flatMap(t=>{let n=e.settings?.[t];return n===void 0?[]:[[t,n]]}));return{...Yn(o,r.ref,r.body,`drop`,eA([r.ref],`{{ ${Uk(n.presetIdent)} }}`)),...Object.keys(s).length>0&&{settings:s},drafts:Object.fromEntries(Ch.map(e=>[e,r.drafts[e]]))}}function sA(e,t,n,r){let{presetIdent:i,artifacts:a}=e,o=`${Xw}${i}.insert.${t}`,s=`${Xw}${i}.insertSeg.${t}`;a.actions[o]={persist:e.rootKey,insertSegmentFrom:Yk,anchor:n,relation:r};let c=tT(o),l=nT(s,o,void 0),u=aT(l),d=iT(l,c);return a.variables[l]=tr(l,L),a.variables[u]={kind:`state`,key:u,default:`0`},a.actions[d]=nr(l,c),a.actions[u]={set:u,int:!0},{host:s,template:`{{ $m := menu "${o}" "✚" "✕" }}{{ if ${Zn({variable:l,key:l,member:c})} }}{{ $m }}{{ else }}{{ fg (${`readableOn (color "success") (bgOf) ${Nf}`}) $m }}{{ end }}`}}function cA(e,t){let n=[],r=e.children.findIndex(e=>e.kind===`segment`&&!qk(e.name)),i=e=>cA(e,t);for(let[a,o]of e.children.entries()){if(o.kind===`container`){n.push(i(o));continue}let s=uh(o,i);if(qk(o.name)){n.push(s);continue}let c=sh(o),l=a===r?[sA(t,String(t.posCounter.n++),c,`before`)]:[],u=String(t.posCounter.n++),d=sA(t,u,c,`after`),f=Qk(t,u,c),p=t.segments[o.name],m=rA(t,u,o,wh(p)),h=$k(f),g=$k(m.term),_={kind:`container`,direction:`horizontal`,children:[...l.map(e=>Zk(e.host,e.template,t.artifacts)),{...oA(o,p,t,m),lead:h,trail:g},{...s,when:Gk(t.presetIdent,`false`,o.when??`true`),lead:h,trail:g,drafts:m.drafts},Zk(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:eA(tA(n),Gk(t.presetIdent,`true`,e.when))}}}function lA(e,t,n,r,i,a,o){let s=`${Xw}${t}.resetLayout`,c=`${Xw}${t}.customized`;return r.actions[s]={reset:n},r.segments[c]={template:`{{ action "${s}" "↺ reset layout" }}`,when:Kk},{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[...i,{kind:`segment`,name:c},a]},uA(e,o)]}}function uA(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),uA(n,t)]}:{...e,children:[...e.children,t]}}function dA(e,t,n,r,i,a){let{node:o}=Xh(e,t),s={presetIdent:Hw(t),rootKey:PE(t),segments:e.segments,artifacts:n,posCounter:{n:0},configured:[]},c=cA(o,s);return n.variables[Hk(s.presetIdent)]=Wk(s.configured),lA(c,s.presetIdent,s.rootKey,n,r,i,a)}function fA(e){let t={variables:{},actions:{},segments:{}},n=aD(`${Xw}help`,hD,[QE],t);t.variables[Nk]=tr(Nk,L),t.actions[Nk]=nr(Nk,Vk.member),t.segments[Nk]={template:Qn(Nk,...Pk),when:$E};let r={kind:`segment`,name:Nk},i=n;t.variables[Rk]={kind:`input`,path:`history.sinceEdit`,type:`number`,default:0},t.actions[Fk]={do:[hO,...JE]},t.segments[Fk]={template:`{{ if ${Bk} }}{{ action "${Fk}" "✓ save" }}{{ else }}{{ action "${Fk}" "✓ done" }}{{ end }}`,when:$E},t.actions[Lk]={rewind:!0},t.actions[Ik]={do:[Lk,...JE]},t.segments[Ik]={template:`{{ action "${Ik}" "↩ cancel" }}`,when:`{{ and ${Zn(QE)} ${zk} }}`};let a=[{kind:`segment`,name:Fk},{kind:`segment`,name:Ik}],o={...e.presets},s=[];for(let n of qh(e.presets)){let c=dA(e,n,t,a,r,i);s.push(c),o[n]={...Yh(e.presets,n),root:c}}let c=Vw(t,s,e);return{...e,variables:{...c,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:o}}function pA(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function mA(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 hA(e,t,n){let r=lh(e,new Set(n.map(ch).filter(e=>e.includes(t)).flat()));return r===e?{seg:e}:{seg:e,id:r}}const gA=/^-?\d+$/;function _A(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 vA(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!gA.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 yA(e,t,n){return r=>r?gA.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 bA(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=>!gA.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 xA(e){return e===`config`?`set-config`:`set-state`}function SA(e,t,n){return t.kind===`int`?vA(`menu page "${e}"`):t.kind===`range`?yA(t.min,t.max,`${n} stepper "${e}"`):_A(t.allowed,`${n} "${e}"`,xA(n))}function CA(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:bA(e,n,t)}))}function wA(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 CA(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,SA(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 TA(e,t,n){let r=[],i=0,a=new WeakMap;return{register(n,a){let o={key:n,allowed:a};wA(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=wA(e,r,n(o),t);return a.set(o,{epoch:i,gate:c}),c}}}const EA=TA({},`config`,NA);function DA(e,t){return EA.register(e,t)}function OA(e){return EA.gateFor(e)}function kA(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:rg(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:[pA({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[pA({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:rg(e.insertSegmentFrom,t).members.map(t=>pA({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function AA(e,t){let n=kE(e).get(t);return n===void 0?null:String(n)}function jA(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?RE(n.persist):null;e?.scope===`preset-root`&&t.add(PE(e.preset))}return[...t].map(e=>({key:e,spec:{kind:`allow-list`,allowed:[]}}))}function MA(e){let t=Jk(e);return[...jA(e),...Object.values(e.actions).flatMap(e=>kA(e,t))]}function NA(e){return CA(MA(e),`config`)}function PA(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:LA(t.segments,FA(t.segments,e.segments??{})),root:Uh(e.root??Ih,t.root),actions:{...t.actions,...e.actions??{}},styles:{...t.styles,...e.styles??{}},presets:LA(t.presets,IA(t.presets,e.presets??{})),themeDefaults:LA(t.themeDefaults,e.themeDefaults??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function FA(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 IA(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 LA(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}function RA(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: ${vh.join(`, `)})`,line:X(e.source,t.split(`.`))}),null):UA(e,`${t}.cache`,n.cache)}function zA(e,t,n){if(n.cache!==void 0)return UA(e,`${t}.cache`,n.cache)??void 0}function BA(e){return{required:!0,json:WA(),parse:(t,n,r,i)=>RA(t,n,i,e)??void 0}}function VA(){return{required:!1,json:WA(),parse:(e,t,n,r)=>zA(e,t,r)}}const HA={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&KA(n)?{ttl:n}:kT(e,t,`cache.ttl must be a duration string like "5s", "100ms", "2m", "1h"; got ${Q(n)}`)},watch_file:{json:{type:`string`,pattern:`^/`},parse:(e,t,n)=>{if(typeof n!=`string`)return kT(e,t,`cache.watch_file must be a path string, got ${Q(n)}`);let r=VT(`cache.watch_file`,n);return r===null?{watch_file:n}:kT(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}:kT(e,t,`cache.depends_on must be an array of variable-name strings, got ${Q(n)}`)},key:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{key:n}:kT(e,t,`cache.key must be a non-empty template string, got ${Q(n)}`)},never:{json:{const:!0},parse:(e,t,n)=>n===!0?{never:!0}:kT(e,t,`cache.never must be the literal boolean true, got ${Q(n)}`)}}};function UA(e,t,n){return AT(e,HA,t,n)}function WA(){return JT(HA)}const GA=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function KA(e){return GA.test(e)}function qA(e,t,n){if(n===void 0)return{};if(!ST(n))return e.issues.push({path:t,message:`${t} must be an object, got ${CT(n)}`,line:X(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=jT(e,_j,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function JA(){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 ${CT(i)}`,line:X(e.source,t.split(`.`))});return}return i}}}function YA(){return{required:!0,json:{enum:[...bh]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!bh.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${bh.join(`, `)}, got ${JSON.stringify(i)}`,line:X(e.source,[...t.split(`.`),`field`])});return}return i}}}function XA(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return vT(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const ZA={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:kT(e,t,`parse.text must be the literal boolean true, got ${Q(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?QA(e,t,n):kT(e,t,`parse.regex must be a pattern string, got ${Q(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:kT(e,t,`parse.json must be the literal boolean true, got ${Q(n)}`)}}};function QA(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return kT(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:kT(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function $A(){return{required:!1,json:JT(ZA),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:X(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:AT(e,ZA,`${t}.parse`,r.parse)??void 0)}}function ej(){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)=>ST(r.parse)&&`json`in r.parse?tj(e,t,r.default):yT(e,t,r,`default`)}}function tj(e,t,n){if(n!==void 0)return nj(n)?n:kT(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${Q(n)}`)??void 0}function nj(e){return e!==null&&rj(e)}function rj(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(rj);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(rj)}default:return!1}}const ij={value:JA(),default:FT()},aj={path:BT(),type:UT([`string`,`number`,`boolean`]),default:XA()},oj={name:BT(),default:FT()},sj={path:HT(),readMode:UT([`whole`,`first-line`]),parse:$A(),cache:BA(`file`),default:ej()},cj={command:BT(),parse:$A(),cache:BA(`shell`),default:ej()},lj={template:BT(),cache:VA(),default:FT()},uj={layout:BT(),default:FT()},dj={cache:`a time variable reads the instant its render is drawn at, so it takes no cache policy — delete the key`},fj={field:YA(),default:FT()},pj={cache:`a git variable is refreshed by the daemon's own watch on the repository, so it takes no cache policy — delete the key`},mj={key:BT(),default:FT()},hj=`kind`;function gj(e,t,n={}){return{...MT(hj,e,t),parse:(r,i,a)=>{TT(r,n,i,a);let o=ET(r,t,i,a);return o===null?null:{kind:e,...o}}}}const _j={tag:hj,noun:`source kind`,memberNoun:`variable`,arms:{literal:gj(`literal`,ij),input:gj(`input`,aj),env:gj(`env`,oj),file:gj(`file`,sj),shell:gj(`shell`,cj),template:gj(`template`,lj),time:gj(`time`,uj,dj),git:gj(`git`,fj,pj),state:gj(`state`,mj)}};function vj(){return qT(_j)}function yj(){return{type:`object`,additionalProperties:vj()}}const bj=new Map([[`gitTaculous`,{kind:`built-in`,to:`gitaculous`}],[`git`,{kind:`built-in`,to:`gitaculous`}],[`settings.menu`,{kind:`built-in`,to:`candybar.menu`}],[`ticket`,{kind:`plugin`,to:`plugins.lit.ticket`,folder:`examples/plugins/lit`}]]);function xj(e){let t=bj.get(e);if(t===void 0)return``;switch(t.kind){case`built-in`:return` (the built-in segment "${e}" was renamed to "${t.to}" — update this reference)`;case`plugin`:return` (the built-in segment "${e}" became "${t.to}", a segment of the plugin in cc-candybar's ${t.folder} — install that folder in a plugin root (docs/segment-authoring.md, "Installing a plugin instead of listing it"), then update this reference)`}}const Sj=/^[A-Za-z_][A-Za-z0-9_]*$/,Cj={pattern:Sj.source},wj={anyOf:[{type:`boolean`},{type:`string`},{type:`integer`}]},Tj={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`,...Cj}}}]},default:wj}},Ej=[`label`,`domain`,`default`],Dj=[`min`,`max`,`step`,`atLeast`];function Oj(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,t.split(`.`))})}function kj(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 Oj(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 Oj(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?Oj(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(ST(n)){let{min:r,max:i,step:a=1,atLeast:o}=n;return Object.keys(n).filter(e=>!Dj.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}}:Oj(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 Oj(e,t,`domain must be "bool", a list of words, or { min, max }, got ${Q(n)}`)}function Aj(e,t,n){if(!ST(n))return Oj(e,t,`${t} must be { label, domain, default }, got ${CT(n)}`);for(let r of Object.keys(n))Ej.includes(r)||Oj(e,`${t}.${r}`,`Unknown setting key "${r}". Expected one of: ${Ej.join(`, `)}`);let{label:r}=n,i=typeof r==`string`&&r.length>0&&!/[\n\r]/.test(r);i||Oj(e,`${t}.label`,`a setting needs a one-line, non-empty "label" — the name its control shows, spliced into a synthesized template string — got ${Q(r)}`);let a=kj(e,`${t}.domain`,n.domain);if(!i||a===void 0)return;let o={label:r,domain:a,default:n.default};return!jj(n.default)||!Dh(o,n.default)?Oj(e,`${t}.default`,`default must be ${jh(o)}, got ${Q(n.default)}`):o}function jj(e){return typeof e==`boolean`||typeof e==`string`||typeof e==`number`}const Mj={theme:`its default for this segment is segments.<name>.palette, and a placement sets its own with settings: { ${xh}: "<theme>" }`,effect:`a placement follows the bar's effect, or sets its own with settings: { effect: "<effect>" }`};function Nj(e){return Ch.includes(e)}function Pj(){return{required:!1,json:{type:`object`,propertyNames:{...Cj,not:{enum:[...Ch]}},additionalProperties:Tj},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!ST(i))return Oj(e,a,`${a} must be an object of name → { label, domain, default }, got ${CT(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i)){if(!Sj.test(t)){Oj(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(Nj(t)){Oj(e,`${a}.${t}`,`setting "${t}" is one every placement already has — ${Mj[t]}`);continue}let r=Aj(e,`${a}.${t}`,n);r!==void 0&&(o[t]=r)}return o}}}const Fj=Zw.map(e=>e.replace(/\./g,`\\.`)).join(`|`);function Ij(){return{required:!1,json:{type:`string`,minLength:1,pattern:`^(?!${Fj})[^:/]+$`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return typeof i==`string`&&i.length>0&&!/[:/]/.test(i)&&!Qw(i)?i:Oj(e,`${t}.${n}`,`a placement "id" must be a non-empty string without "/" or ":", outside the reserved ${Zw.map(e=>`"${e}"`).join(`, `)} namespaces, got ${Q(i)}`)}}}function Lj(){return{required:!1,json:{type:`object`,propertyNames:Cj,additionalProperties:wj},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!ST(i))return Oj(e,a,`a placement's "settings" must be an object of setting name → value, got ${CT(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i))jj(n)?o[t]=n:Oj(e,`${a}.${t}`,`setting "${t}" must be a boolean, a word, or a number, got ${CT(n)}`);return o}}}function Rj(e){return new Set(Object.keys(e.segments).filter(e=>!Qw(e)))}function zj(e,t,n){if(t===void 0)return{};if(!ST(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${CT(t)}`,line:X(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=wT(e,n.has(i)?Gj:Wj,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function Bj(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?kT(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${xj(t.slice(9))}`)??void 0:_T(e,t,r,n)??void 0}}function Vj(){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 ${Q(i)}`,line:X(e.source,[...t.split(`.`),n])})}}}}function Hj(){return{required:!1,json:yj(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return qA(e,`${t}.${n}`,i)}}}const Uj={template:Bj(),description:FT(),group:UT(BE),width:Vj(),justify:UT(Mh),truncate:UT(Nh),bg:FT(),fg:FT(),when:FT(),palette:zT(),vars:Hj(),settings:Pj()},Wj={noun:`segment key`,fields:Uj},Gj={noun:`segment key`,fields:{...Uj,template:FT()}},Kj=`#/definitions/LayoutNode`,qj={kind:`container`,direction:`vertical`,children:[]};function Jj(e){return{required:!0,json:{const:e},parse:()=>e}}function Yj(){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 ${Q(i)}`,line:X(e.source,[`root`])}),``)}}}function Xj(){return{required:!0,json:{enum:[...ah]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&ah.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${ah.join(`, `)} (got ${JSON.stringify(i)})`,line:X(e.source,[`root`])}),`vertical`)}}}function Zj(e){return{required:!0,json:{type:`array`,items:{$ref:Kj}},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 ${CT(a)}`,line:X(t.source,[`root`])}),[])}}}const Qj={noun:`layout-node key`,fields:{kind:Jj(`segment`),name:Yj(),when:FT(),id:Ij(),settings:Lj()}},$j=()=>UT(lf),eM={noun:`layout-node key`,fields:{kind:Jj(`container`),direction:Xj(),children:Zj(NT(()=>aM)),when:FT(),distribution:$j()}};function tM(){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 ${Q(i)}`,line:X(e.source,[`root`])}),``)}}}const nM={noun:`layout-node key`,fields:{seg:tM(),when:FT(),id:Ij(),settings:Lj()}},rM={noun:`layout-node key`,fields:{h:Zj(NT(()=>aM)),when:FT(),distribution:$j()}},iM={noun:`layout-node key`,fields:{v:Zj(NT(()=>aM)),when:FT(),distribution:$j()}},aM=(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:X(e.source,[`root`])}),qj):{kind:`segment`,name:n};if(!ST(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 ${CT(n)}`,line:X(e.source,[`root`])}),qj;if(n.kind===`container`)return wT(e,eM,t,n)??qj;if(n.kind===`segment`)return wT(e,Qj,t,n)??qj;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
|
|
176
|
+
`,SD=`readableOn (mix (color "foreground") (bgOf) 60) (bgOf) 3`,CD={socket:`TMUX`,pane:`TMUX_PANE`,truecolor:`CLAUDE_CODE_TMUX_TRUECOLOR`};function wD(e){let t=e[CD.socket]??``,n=e[CD.pane]??``;if(t===``||n===``)return null;let r=e[CD.truecolor]??``;return{socket:t.split(`,`)[0],pane:n,truecolor:r===``?null:r}}function TD(e){let[t,...n]=e;return t===void 0?{ok:!0}:{ok:!1,reason:t,more:n}}const ED=CD.truecolor,DD={name:`tmuxTruecolor`,label:`tmux truecolor`,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.termfeatures.kind===`failed`)return{ok:!1,reason:`tmux could not be asked: ${e.termfeatures.reason}`};if(!e.termfeatures.value.includes(`RGB`)||e.hint.truecolor!==null)return{ok:!0};let n=t.env[ED];return typeof n==`string`&&n!==``?{ok:!1,reason:`${ED} 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`,ED],value:`1`}}}}}},OD={variable:`is never read`,action:`is never clicked`,helper:`is never called`,segment:`is in no preset`},kD={name:`config`,label:`config`,probe:({config:e})=>{switch(e.kind){case`failed`:{let[t=`the config failed to load`,...n]=[...e.error.split(`
|
|
177
|
+
`).map(e=>e.trim()).filter(e=>e!==``),...e.warnings];return{ok:!1,reason:t,more:n}}case`loaded`:return TD([...e.warnings,...e.unused.map(({kind:e,name:t})=>`${e} "${t}" ${OD[e]}`)])}}},AD="re-run `cc-candybar install`";function jD(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:// — ${AD}`];let{app:t,missing:n}=e.value;return n.kind===`failed`?[`${t} opens cc-candybar://, but ${n.reason} — ${AD}`]:n.value.map(e=>`${e} is missing, and ${t} runs it — ${AD}`)}const MD=[kD,{name:`urlHandler`,label:`URL handler`,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}) — ${AD}`:`the URL handler runs cc-candybar ${e.handler}; the bar runs ${e.bar} — ${AD}`};case`lost`:return TD([...jD(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}`])}}},DD,{name:`effectRefresh`,label:`effect refresh`,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}}}}];function ND(e){return MD.map(t=>({check:t,verdict:t.probe(e)}))}function PD(e){return MD.find(t=>t.name===e)}const FD=`${Z}doctor.`;function ID(e){let t=`${FD}${e}.`;return{verdict:`${t}verdict`,reason:`${t}reason`,fixable:`${t}fixable`}}function LD(e,t=[]){return t.length===0?e:`${e} (+${t.length} more — run \`cc-candybar doctor\`)`}function RD(e){return e.flatMap(({check:e,verdict:t})=>{let n=ID(e.name);return t.ok?[{key:n.verdict,value:`ok`},{key:n.reason,value:``},{key:n.fixable,value:Jp}]:[{key:n.verdict,value:`failed`},{key:n.reason,value:LD(t.reason,t.more)},{key:n.fixable,value:t.fix===void 0?Jp:qp}]})}const zD={copySession:{copy:`{{ .session.id }}`},copyResume:{copy:`{{ .resume_command }}`},openProject:{open:`{{ .project_dir }}`},openTranscript:{open:`{{ .transcript_path }}`},openConfig:{open:`{{ .config_path }}`}};function BD(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(zD).map(([t,n])=>[`${e}${t}`,n]))}}const VD=`armed`,HD=`disarmed`,UD=`.armed`,WD=e=>e.endsWith(UD);function GD(e,t,n){let r=`${e}${UD}`,i=`${e}.arm`,a=`${e}.disarm`,o=`(eq .${e} "${VD}")`;return{template:`{{ if ${o} }}{{ action "${e}" "${t.confirm}" }} {{ action "${a}" "✕" }}{{ else }}{{ action "${i}" "${t.arm}" }}{{ end }}`,actions:{[i]:{set:r,to:VD},[a]:{set:r,to:HD},[e]:{do:[a,...n]}},armed:o,variables:{[e]:{kind:`state`,key:r,default:HD}},disarm:a}}const KD=RegExp(`^/[^\\s\\x00-\\x1f\\x7f-\\x9f/][^\\x00-\\x1f\\x7f-\\x9f]*$`);function qD(e){return typeof e==`string`&&KD.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 JD(e){let t=qD(e);if(t.kind===`refused`)throw Error(t.reason);return t.line}const YD=[`/compact`,`/model`],XD=`/clear`;function ZD(e){let t=t=>`${e}${t.slice(1)}`,n=`${e}clear.slash`,r=GD(`${e}clear`,{arm:XD,confirm:`${XD} ✓ confirm`},[n]);return{template:YD.map(e=>`{{ action "${t(e)}" "${e}" }} `).join(``)+r.template,when:`{{ ${Ww} }}`,actions:{...Object.fromEntries(YD.map(e=>[t(e),{slash:JD(e)}])),...r.actions,[n]:{slash:JD(XD)}},variables:r.variables,disarm:r.disarm}}const QD=Array.from({length:10},(e,t)=>(t+1)*1e5),$D=QD[0],eO=QD[QD.length-1];function tO(e){let t;try{t=oi(e)}catch(e){return B(e instanceof Error?e.message:String(e))}let n=t.autoCompactWindow;return n===void 0?R(`auto`):typeof n==`number`&&Number.isInteger(n)&&n>=$D&&n<=eO?R(n):B(`${e}: autoCompactWindow is ${JSON.stringify(n)}, not a window /autocompact accepts (${$D}–${eO} tokens)`)}function nO(e,t){let n=Math.min(t??eO,eO),r=e===`auto`?n:Math.min(e,n);return{window:e===`auto`?0:e,applied:e===`auto`?0:r,lower:QD.filter(e=>e<r).at(-1)??0,higher:QD.find(e=>e>r&&e<=n)??0}}function rO(e,t){return{template:`{{ if ne .autocompact.error "" }}⇲ ⚠ {{ .autocompact.error }}{{ else }}⇲ {{ if eq .autocompact.window 0 }}auto{{ else }}${t(`.autocompact.applied`)}{{ end }}{{ if ${Ww} }}{{ 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:JD(`/autocompact auto`)},...Object.fromEntries(QD.map(t=>[`${e}${t}`,{slash:JD(`/autocompact ${t}`)}]))}}}const iO=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 }}`,aO=`${Z}menu`,oO=`open`,sO=`${Z}edit`,cO=`${Z}toolbar`,lO=BD(Z),uO=`${Z}commands`,dO=ZD(`${uO}.`),fO=`${Z}autocompact`,pO=rO(`${fO}.`,iO),mO=e=>({kind:`segment`,name:e}),hO=`${Z}tab`,gO=[{member:`session`,label:`⚡ session`},{member:`look`,label:`🎨 look`},{member:`layout`,label:`📐 layout`},{member:`config`,label:`⚙ config`},{member:`tools`,label:`🧰 tools`}],_O=e=>`${hO}.${e}`,vO=e=>`${_O(e)}.toggle`,yO=e=>({variable:hO,key:hO,member:e}),bO=`${Z}save`,xO=`${Z}preset.save`,SO=`${Z}preset.delete`,CO=e=>`${Z}${e}`,wO=e=>`${Z}apply.${e}`,TO=e=>`${Z}reset.${e}`,EO=`${Z}themeDefault.save`,DO=`${Z}themeDefault.differs`,OO=`${Z}themeDefault.theme`,kO={when:`{{ .${DO} }}`,template:`{{ action "${EO}" (printf "⤓ default for %s" .${OO}) }} {{ swatch "${wO(`theme`)}" .${OO} }}`},AO=`${Z}resetAll`,jO=`${aO}.toggle`,MO={variable:aO,key:aO,member:oO},NO=`${Z}undo`,PO=`${Z}back`,FO=`${PO}.step`,IO=`${Z}navigation.back`,LO=PO,RO={template:`{{ if gt .${IO} 0 }}{{ action "${PO}" "◁" }}{{ else }}{{ fg (${SD}) "◁" }}{{ end }}`},zO=`${Z}redo`,BO=`${Z}doctor`,VO=`${BO}.run`,HO=e=>`${BO}.fix.${e}`,UO=e=>`${BO}.${e}`,WO=cT(`${Z}pickers`),GO=`${Z}gear`,KO=`gear`,qO=`${GO}.toggle`,JO={variable:WO,key:WO,member:KO},YO=cT(`${Z}gearPickers`),XO=[{template:`{{ themePreview }}`}],ZO={template:`{{ layoutPreview }}`},QO={preset:[ZO,{when:`{{ not .preset.bundled }}`,template:`{{ action "${SO}" (printf "🚮 delete %s" .${pa.preset.effectiveVar}) }}`}],style:XO,variation:[ZO],shade:[ZO]},$O=(e,t)=>`${Z}list.${e}.${t}`,ek=e=>`${Z}resettable.${e}`,tk=e=>e.length===0?`false`:`(or ${e.map(e=>`.${ek(e)}`).join(` `)})`,nk={preset:`door`,theme:`look`,style:`gear`,effect:`look`,variation:`gear`,shade:`gear`,endcaps:`look`,transitions:`look`,autoWrap:`layout`,padding:`layout`,updateNotice:`config`},rk=e=>e===`gear`?nk.theme:e,ik=Object.keys(pa).map(e=>{let t=pa[e],n=fE(t.configKey),r=bT({label:t.label,domain:n},t.sessionKey,t.effectiveVar,wO(e),nk[e]===`gear`?YO:WO);return{...t,name:e,control:r,beneath:QO[e]??[]}}),ak=e=>ik.filter(t=>nk[t.name]===e),ok=e=>ik.filter(t=>rk(nk[t.name])===e),sk={theme:[Yn(GO,JO,{kind:`container`,direction:`horizontal`,children:ak(`gear`).map(bk)},`drop`)]},ck=e=>ak(e).flatMap(e=>[bk(e),...sk[e.name]??[]]);new Set(ik.flatMap(e=>[e.sessionKey,e.configKey]));const lk=GD(AO,{arm:`⟲`,confirm:`⟲ reset all?`},ik.map(e=>TO(e.name))),uk=[`unsaved`,`history.undo`,`history.redo`],dk=e=>`${Z}${e}`,fk=dk(`unsaved`),pk=(e,t)=>({body:t,shown:`(gt .${dk(e)} 0)`}),mk=[pk(`unsaved`,`{{ action "${bO}" (printf "💾 save %d" .${fk}) }}`),pk(`history.undo`,`{{ action "${NO}" "↶" }}`),pk(`history.redo`,`{{ action "${zO}" "↷" }}`),{body:lk.template,shown:`(or ${tk(ik.map(e=>e.name))} ${lk.armed})`}],hk={when:`{{ or ${mk.map(e=>e.shown).join(` `)} }}`,template:`{{ $sep := "" }}`+mk.map(e=>`{{ if ${e.shown} }}{{ $sep }}${e.body}{{ $sep = " " }}{{ end }}`).join(``)},gk=[{step:lk,place:`door`},{step:dO,place:`session`}],_k=e=>e.map(e=>e.step.disarm),vk=_k(gk),yk=_k(gk.filter(e=>e.place!==`door`));function bk(e){let t=CO(e.name);return e.control.kind===`inline`?mO(t):Yn(t,e.control.list.ref,{kind:`container`,direction:`vertical`,children:[...e.control.list.rows,...e.beneath].map((t,n)=>mO($O(e.name,n)))},`drop`)}function xk(e){return e===aO}function Sk(e){let t=mO(aO);if(e.kind===`container`&&e.direction===`vertical`){let[n,...r]=e.children;return e.when===void 0&&n!==void 0?{...e,children:[Sk(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 Ck(e){return wk(e)>0?e:Sk(e)}function wk(e){let t=0;for(let n of dh(e))n.kind===`segment`&&xk(n.name)&&(t+=1);return t}function Tk(e,t=!1){let n=t||e.when!==void 0;return e.kind===`segment`?n&&xk(e.name)||e.opens!==void 0&&Tk(e.opens.body,!0):e.children.some(e=>Tk(e,n))}const Ek={session:{direction:`vertical`,content:[mO(cO),{kind:`container`,direction:`horizontal`,children:[mO(uO),mO(fO)]}],after:[]},look:{direction:`horizontal`,content:[],after:[mO(EO)]},layout:{direction:`horizontal`,content:[mO(xO),mO(sO)],after:[]},config:{direction:`horizontal`,content:[],after:[]},tools:{direction:`vertical`,content:[mO(BO),...MD.map(e=>mO(UO(e.name)))],after:[]}},Dk=e=>({kind:`container`,direction:Ek[e].direction,children:[...Ek[e].content,...ck(e),...Ek[e].after]});function Ok(e){return e.kind===`segment`?xk(e.name)?Yn(e.name,MO,Ak,`above`):e:Mk(e)}function kk(){return{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[mO(LO),...ck(`door`),mO(bO)]},{kind:`container`,direction:`horizontal`,children:gO.map(({member:e})=>Yn(_O(e),yO(e),Dk(e),`drop`))}]}}const Ak=kk();function jk(e){let t=new Map;for(let e of dh(Ak))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=`${aO}.fold.${qw(t)}`;return e.actions[i]={set:t,to:r.default},i})}function Mk(e){return{...e,children:e.children.map(e=>Ok(e))}}function Nk(e){let t={variables:{[aO]:tr(aO,L)},actions:{[jO]:nr(aO,oO),[VO]:{doctor:`run`},[sO]:{do:[...$E]},...lO.actions,...dO.actions,...pO.actions,[bO]:{save:!0},[NO]:{undo:!0},[FO]:{back:!0},[PO]:{do:[FO,...vk]},[zO]:{redo:!0},[xO]:{preset:`save`},[EO]:{themeDefault:`save`},[SO]:{preset:`delete`,name:`{{ .${pa.preset.effectiveVar} }}`}},segments:{[aO]:{template:`{{ $door := ${$n(aO,er(e),er(`✖`))} }}{{ if ${Zn(MO)} }}{{ fg (keptOn (color "error") (bgOf)) $door }}{{ else }}{{ $door }}{{ end }}`},[cO]:{template:lO.template},[uO]:{template:dO.template,when:dO.when},[fO]:{template:pO.template,bg:pO.bg,when:pO.when},[LO]:RO,[bO]:hk,[EO]:kO,[xO]:{template:`{{ action "${xO}" "+ preset" }}`},[BO]:{template:`{{ action "${VO}" "🩺 doctor" }}`},[sO]:{template:`{{ action "${sO}" "✎ arrange" "✎ done" }}`}}};t.variables[DO]={kind:`input`,path:`themeDefault.differs`,type:`boolean`,default:!1},t.variables[OO]={kind:`input`,path:`themeDefault.theme`,type:`string`,default:``},t.variables[IO]={kind:`input`,path:`navigation.back`,type:`number`,default:0};for(let e of uk)t.variables[dk(e)]={kind:`input`,path:e,type:`number`,default:0};t.variables[hO]=tr(hO,`session`);for(let{member:e,label:n}of gO){t.actions[vO(e)]=nr(hO,e),t.actions[_O(e)]={do:[vO(e),...yk]};let r=tk(ok(e).map(e=>e.name)),i=`(ternary ${er(` •`)} "" ${r})`,a=e=>`(print ${er(e)} ${i})`;t.segments[_O(e)]={template:`{{ ${$n(_O(e),a(n),a(`▾ ${n}`))} }}`}}return Object.assign(t.variables,dO.variables,lk.variables),Fk(t),Pk(t),t.actions[aO]={do:[jO,...vk,...jk(t)]},t}function Pk(e){for(let t of MD){let n=ID(t.name),r=HO(t.name);for(let t of Object.values(n))e.variables[t]={kind:`state`,key:t,default:``};e.actions[r]={doctor:`fix`,check:t.name},e.segments[UO(t.name)]={when:`{{ ne .${n.verdict} "" }}`,template:`{{ if eq .${n.verdict} "ok" }}✓ ${t.label}{{ else }}✗ ${t.label} — {{ .${n.reason} }}{{ if eq .${n.fixable} "${qp}" }} {{ action "${r}" "[fix]" }}{{ end }}{{ end }}`}}}function Fk(e){for(let t of ik){Object.assign(e.actions,t.control.actions);let n=TO(t.name);e.actions[n]={reset:t.configKey},e.variables[ek(t.name)]={kind:`input`,path:`resettable.${t.name}`,type:`boolean`,default:!1};let r=`{{ if .${ek(t.name)} }} {{ action "${n}" "↺" }}{{ end }}`;Object.assign(e.variables,t.control.variables),e.segments[CO(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[$O(t.name,r)]=n})}Object.assign(e.actions,lk.actions),e.actions[qO]=nr(WO,KO),e.segments[GO]={template:`{{ action "${qO}" "⚙" }}`}}function Ik(e){let{variables:t,actions:n}=cD();Object.assign(e.variables,t),Object.assign(e.actions,n)}function Lk(e){let t=Nk(e.globals.menuGlyph??`🍫`);Ik(t);let n={...e.presets},r=[];for(let t of qh(e.presets)){let{node:i}=Xh(e,t),a=Ok(Ck(i));r.push(a),n[t]={...Yh(e.presets,t),root:a}}let i=Kw(t,r,e);return{...e,variables:{...i,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:n}}const Rk=`${tT}live`,zk=[`☐ live`,`☑ live`],Bk=`${tT}done`,Vk=`${tT}cancel`,Hk=`${tT}rewind`,Uk=`${tT}changes`,Wk=`(gt .${Uk} 0)`,Gk=`(or ${Wk} (gt .${fk} 0))`,Kk={variable:Rk,key:Rk,member:`open`};function qk(e){return`${tT}configuring.p${e}`}function Jk(e){return`and ${Zn(rD)} (not ${Zn(Kk)}) (ne .${qk(e)} "true")`}function Yk(e){return{kind:`template`,template:`{{ or ${e.map(e=>`(eq .${XE} "${Jn(e)}")`).join(` `)} false }}`}}function Xk(e,t,n){return`{{ if ${Jk(e)} }}${t}{{ else }}${n}{{ end }}`}const Zk=`{{ and ${Zn(rD)} .preset.customized }}`,Qk=rT;function $k(e){return new Map([...tg(e),...tA(e)])}const eA=`${tT}addable`;function tA(e){return new Map([[eA,{members:Object.keys(e.segments).filter(e=>!Qk(e)),library:{groups:KE.map(e=>({id:e,label:qE[e]})),entry:t=>{let n=e.segments[t];return{group:n.group??`other`,...n.description!==void 0&&{description:n.description}}}}}]])}function nA(e,t,n){return n.segments[e]={template:t,when:iD,bg:fD},{kind:`segment`,name:e}}function rA(e,t,n){let r=`${tT}${e.presetIdent}.remove.${t}`;return e.artifacts.actions[r]={persist:e.rootKey,removeSegment:n},`{{ fg (${`readableOn (color "error") (bgOf) ${Nf}`}) (action "${r}" "✖") }}`}function iA(e){return`{{ if ${Zn(rD)} }}${e}{{ end }}`}function aA(e,t){return e.reduce((e,t)=>`{{ if and ${Zn(rD)} ${Zn(t)} }}true{{ else }}${e}{{ end }}`,t)}function oA(e){return e.flatMap(e=>[...dh(e)].flatMap(e=>e.kind===`segment`&&e.opens?.ref.key===`edit.configure`?[e.opens.ref]:[]))}function sA(e,t,n){return`${tD}${e}.${t}.${n}`}function cA(e,t,n,r){let i=sh(n),a=`${tT}${e.presetIdent}`,o=nD(e.presetIdent,i);e.configured.push(o);let s=`${a}.configure.${t}`,c=cT(s),l=`${s}.fold`;e.artifacts.actions[l]={set:c,to:L},e.artifacts.actions[s]={do:[`${s}.open`,l]},e.artifacts.actions[`${s}.open`]={set:XE,to:o};let u={},d=Object.entries(r).map(([r,o])=>{let s=sA(e.presetIdent,i,r),l=`${tD}p${e.presetIdent}.d${t}.${r}`;e.artifacts.variables[l]={kind:`state`,key:s,default:Oh(n.settings?.[r]??o.default)},u[r]={id:i,key:s,variable:l};let d=`${a}.setting.${t}.${r}`,f=bT(vT(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 Yn(d,f.list.ref,{kind:`container`,direction:`vertical`,children:p},`drop`)});return{term:`{{ action "${s}" "${vD}" }}`,ref:{variable:XE,key:XE,member:o},body:{kind:`container`,direction:`vertical`,children:d},drafts:u}}const lA=`${tT}label:`;function uA(e){if(e.startsWith(lA)){let t=e.slice(lA.length);return t.slice(t.indexOf(`:`)+1)}return e.startsWith(`edit.`)?void 0:e}function dA(e,t,n,r){let{artifacts:i}=n,a=sh(e),o=`${lA}${a}:${e.name}`;i.segments[o]={template:`{{ "${Jn(a)}" }}`,...t.palette!==void 0&&{palette:t.palette}};let s=Object.fromEntries(Ch.flatMap(t=>{let n=e.settings?.[t];return n===void 0?[]:[[t,n]]}));return{...Yn(o,r.ref,r.body,`drop`,aA([r.ref],`{{ ${Jk(n.presetIdent)} }}`)),...Object.keys(s).length>0&&{settings:s},drafts:Object.fromEntries(Ch.map(e=>[e,r.drafts[e]]))}}function fA(e,t,n,r){let{presetIdent:i,artifacts:a}=e,o=`${tT}${i}.insert.${t}`,s=`${tT}${i}.insertSeg.${t}`;a.actions[o]={persist:e.rootKey,insertSegmentFrom:eA,anchor:n,relation:r};let c=oT(o),l=sT(s,o,void 0),u=uT(l),d=lT(l,c);return a.variables[l]=tr(l,L),a.variables[u]={kind:`state`,key:u,default:`0`},a.actions[d]=nr(l,c),a.actions[u]={set:u,int:!0},{host:s,template:`{{ $m := menu "${o}" "✚" "✕" }}{{ if ${Zn({variable:l,key:l,member:c})} }}{{ $m }}{{ else }}{{ fg (${`readableOn (color "success") (bgOf) ${Nf}`}) $m }}{{ end }}`}}function pA(e,t){let n=[],r=e.children.findIndex(e=>e.kind===`segment`&&!Qk(e.name)),i=e=>pA(e,t);for(let[a,o]of e.children.entries()){if(o.kind===`container`){n.push(i(o));continue}let s=uh(o,i);if(Qk(o.name)){n.push(s);continue}let c=sh(o),l=a===r?[fA(t,String(t.posCounter.n++),c,`before`)]:[],u=String(t.posCounter.n++),d=fA(t,u,c,`after`),f=rA(t,u,c),p=t.segments[o.name],m=cA(t,u,o,wh(p)),h=iA(f),g=iA(m.term),_={kind:`container`,direction:`horizontal`,children:[...l.map(e=>nA(e.host,e.template,t.artifacts)),{...dA(o,p,t,m),lead:h,trail:g},{...s,when:Xk(t.presetIdent,`false`,o.when??`true`),lead:h,trail:g,drafts:m.drafts},nA(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:aA(oA(n),Xk(t.presetIdent,`true`,e.when))}}}function mA(e,t,n,r,i,a,o){let s=`${tT}${t}.resetLayout`,c=`${tT}${t}.customized`;return r.actions[s]={reset:n},r.segments[c]={template:`{{ action "${s}" "↺ reset layout" }}`,when:Zk},{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[...i,{kind:`segment`,name:c},a]},hA(e,o)]}}function hA(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),hA(n,t)]}:{...e,children:[...e.children,t]}}function gA(e,t,n,r,i,a){let{node:o}=Xh(e,t),s={presetIdent:qw(t),rootKey:zE(t),segments:e.segments,artifacts:n,posCounter:{n:0},configured:[]},c=pA(o,s);return n.variables[qk(s.presetIdent)]=Yk(s.configured),mA(c,s.presetIdent,s.rootKey,n,r,i,a)}function _A(e){let t={variables:{},actions:{},segments:{}},n=uD(`${tT}help`,bD,[rD],t);t.variables[Rk]=tr(Rk,L),t.actions[Rk]=nr(Rk,Kk.member),t.segments[Rk]={template:Qn(Rk,...zk),when:iD};let r={kind:`segment`,name:Rk},i=n;t.variables[Uk]={kind:`input`,path:`history.sinceEdit`,type:`number`,default:0},t.actions[Bk]={do:[bO,...$E]},t.segments[Bk]={template:`{{ if ${Gk} }}{{ action "${Bk}" "✓ save" }}{{ else }}{{ action "${Bk}" "✓ done" }}{{ end }}`,when:iD},t.actions[Hk]={rewind:!0},t.actions[Vk]={do:[Hk,...$E]},t.segments[Vk]={template:`{{ action "${Vk}" "↩ cancel" }}`,when:`{{ and ${Zn(rD)} ${Wk} }}`};let a=[{kind:`segment`,name:Bk},{kind:`segment`,name:Vk}],o={...e.presets},s=[];for(let n of qh(e.presets)){let c=gA(e,n,t,a,r,i);s.push(c),o[n]={...Yh(e.presets,n),root:c}}let c=Kw(t,s,e);return{...e,variables:{...c,...e.variables,...t.variables},actions:{...e.actions,...t.actions},segments:{...e.segments,...t.segments},presets:o}}function vA(e){return e.op===`remove`?`remove:${e.target}`:`insert:${e.segment}:${e.anchor}:${e.relation}`}function yA(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 bA(e,t,n){let r=lh(e,new Set(n.map(ch).filter(e=>e.includes(t)).flat()));return r===e?{seg:e}:{seg:e,id:r}}const xA=/^-?\d+$/;function SA(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 CA(e){return t=>{if(!t)return{ok:!1,reason:`${e} value is required`};if(!xA.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 wA(e,t,n){return r=>r?xA.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 TA(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=>!xA.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 EA(e){return e===`config`?`set-config`:`set-state`}function DA(e,t,n){return t.kind===`int`?CA(`menu page "${e}"`):t.kind===`range`?wA(t.min,t.max,`${n} stepper "${e}"`):SA(t.allowed,`${n} "${e}"`,EA(n))}function OA(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:TA(e,n,t)}))}function kA(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 OA(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,DA(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 AA(e,t,n){let r=[],i=0,a=new WeakMap;return{register(n,a){let o={key:n,allowed:a};kA(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=kA(e,r,n(o),t);return a.set(o,{epoch:i,gate:c}),c}}}const jA=AA({},`config`,RA);function MA(e,t){return jA.register(e,t)}function NA(e){return jA.gateFor(e)}function PA(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:rg(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:[vA({op:`remove`,target:e.removeSegment})]}}]:`insertSegment`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:[vA({op:`insert`,segment:e.insertSegment,anchor:e.anchor,relation:e.relation})]}}]:`insertSegmentFrom`in e?[{key:e.persist,spec:{kind:`allow-list`,allowed:rg(e.insertSegmentFrom,t).members.map(t=>vA({op:`insert`,segment:t,anchor:e.anchor,relation:e.relation}))}}]:[{key:e.persist,spec:{kind:`range`,min:e.min,max:e.max}}]:[]}function FA(e,t){let n=PE(e).get(t);return n===void 0?null:String(n)}function IA(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?UE(n.persist):null;e?.scope===`preset-root`&&t.add(zE(e.preset))}return[...t].map(e=>({key:e,spec:{kind:`allow-list`,allowed:[]}}))}function LA(e){let t=$k(e);return[...IA(e),...Object.values(e.actions).flatMap(e=>PA(e,t))]}function RA(e){return OA(LA(e),`config`)}function zA(e,t){return{globals:{...t.globals,...e.globals??{}},variables:{...t.variables,...e.variables??{}},segments:HA(t.segments,BA(t.segments,e.segments??{})),root:Uh(e.root??Ih,t.root),actions:{...t.actions,...e.actions??{}},styles:{...t.styles,...e.styles??{}},presets:HA(t.presets,VA(t.presets,e.presets??{})),themeDefaults:HA(t.themeDefaults,e.themeDefaults??{}),editGlobals:{...t.editGlobals,...e.editGlobals??{}},helpers:{...t.helpers,...e.helpers??{}}}}function BA(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 VA(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 HA(e,t){return{...e,...Object.fromEntries(Object.entries(t).map(([t,n])=>[t,{...e[t],...n}]))}}function UA(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: ${vh.join(`, `)})`,line:X(e.source,t.split(`.`))}),null):JA(e,`${t}.cache`,n.cache)}function WA(e,t,n){if(n.cache!==void 0)return JA(e,`${t}.cache`,n.cache)??void 0}function GA(e){return{required:!0,json:YA(),parse:(t,n,r,i)=>UA(t,n,i,e)??void 0}}function KA(){return{required:!1,json:YA(),parse:(e,t,n,r)=>WA(e,t,r)}}const qA={noun:`cache`,arms:{ttl:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&ZA(n)?{ttl:n}:PT(e,t,`cache.ttl must be a duration string like "5s", "100ms", "2m", "1h"; got ${Q(n)}`)},watch_file:{json:{type:`string`,pattern:`^/`},parse:(e,t,n)=>{if(typeof n!=`string`)return PT(e,t,`cache.watch_file must be a path string, got ${Q(n)}`);let r=KT(`cache.watch_file`,n);return r===null?{watch_file:n}:PT(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}:PT(e,t,`cache.depends_on must be an array of variable-name strings, got ${Q(n)}`)},key:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`&&n!==``?{key:n}:PT(e,t,`cache.key must be a non-empty template string, got ${Q(n)}`)},never:{json:{const:!0},parse:(e,t,n)=>n===!0?{never:!0}:PT(e,t,`cache.never must be the literal boolean true, got ${Q(n)}`)}}};function JA(e,t,n){return FT(e,qA,t,n)}function YA(){return $T(qA)}const XA=/^(\d+(?:\.\d+)?)(ms|s|m|h)$/;function ZA(e){return XA.test(e)}function QA(e,t,n){if(n===void 0)return{};if(!DT(n))return e.issues.push({path:t,message:`${t} must be an object, got ${OT(n)}`,line:X(e.source,t.split(`.`))}),{};let r={};for(let[i,a]of Object.entries(n)){let n=IT(e,Sj,`${t}.${i}`,a);n!==null&&(r[i]=n)}return r}function $A(){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 ${OT(i)}`,line:X(e.source,t.split(`.`))});return}return i}}}function ej(){return{required:!0,json:{enum:[...bh]},parse:(e,t,n,r)=>{let i=r.field;if(typeof i!=`string`||!bh.includes(i)){e.issues.push({path:`${t}.field`,message:`git field must be one of: ${bh.join(`, `)}, got ${JSON.stringify(i)}`,line:X(e.source,[...t.split(`.`),`field`])});return}return i}}}function tj(){return{required:!1,json:{type:[`string`,`number`,`boolean`]},parse:(e,t,n,r)=>{let i=r.type;return CT(e,t,r,i===`number`||i===`boolean`||i===`string`?i:`string`)}}}const nj={noun:`parse`,arms:{text:{json:{const:!0},parse:(e,t,n)=>n===!0?{text:!0}:PT(e,t,`parse.text must be the literal boolean true, got ${Q(n)}`)},regex:{json:{type:`string`},parse:(e,t,n)=>typeof n==`string`?rj(e,t,n):PT(e,t,`parse.regex must be a pattern string, got ${Q(n)}`)},json:{json:{const:!0},parse:(e,t,n)=>n===!0?{json:!0}:PT(e,t,`parse.json must be the literal boolean true, got ${Q(n)}`)}}};function rj(e,t,n){let r;try{new RegExp(n),r=RegExp(`${n}|`).exec(``).length-1}catch(n){return PT(e,t,`parse.regex is not a valid regular expression: ${n.message}`)}return r>=1?{regex:n}:PT(e,t,`parse.regex must contain a capture group — its group 1 is the value; got ${JSON.stringify(n)}`)}function ij(){return{required:!1,json:$T(nj),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:X(e.source,[...t.split(`.`),`regex`])}),r.parse===void 0?void 0:FT(e,nj,`${t}.parse`,r.parse)??void 0)}}function aj(){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)=>DT(r.parse)&&`json`in r.parse?oj(e,t,r.default):wT(e,t,r,`default`)}}function oj(e,t,n){if(n!==void 0)return sj(n)?n:PT(e,`${t}.default`,`${t}.default must be a JSON value (a json-parsed source's document), got ${Q(n)}`)??void 0}function sj(e){return e!==null&&cj(e)}function cj(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(cj);let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Object.values(e).every(cj)}default:return!1}}const lj={value:$A(),default:BT()},uj={path:GT(),type:JT([`string`,`number`,`boolean`]),default:tj()},dj={name:GT(),default:BT()},fj={path:qT(),readMode:JT([`whole`,`first-line`]),parse:ij(),cache:GA(`file`),default:aj()},pj={command:GT(),parse:ij(),cache:GA(`shell`),default:aj()},mj={template:GT(),cache:KA(),default:BT()},hj={layout:GT(),default:BT()},gj={cache:`a time variable reads the instant its render is drawn at, so it takes no cache policy — delete the key`},_j={field:ej(),default:BT()},vj={cache:`a git variable is refreshed by the daemon's own watch on the repository, so it takes no cache policy — delete the key`},yj={key:GT(),default:BT()},bj=`kind`;function xj(e,t,n={}){return{...LT(bj,e,t),parse:(r,i,a)=>{AT(r,n,i,a);let o=jT(r,t,i,a);return o===null?null:{kind:e,...o}}}}const Sj={tag:bj,noun:`source kind`,memberNoun:`variable`,arms:{literal:xj(`literal`,lj),input:xj(`input`,uj),env:xj(`env`,dj),file:xj(`file`,fj),shell:xj(`shell`,pj),template:xj(`template`,mj),time:xj(`time`,hj,gj),git:xj(`git`,_j,vj),state:xj(`state`,yj)}};function Cj(){return QT(Sj)}function wj(){return{type:`object`,additionalProperties:Cj()}}const Tj=new Map([[`gitTaculous`,{kind:`built-in`,to:`gitaculous`}],[`git`,{kind:`built-in`,to:`gitaculous`}],[`settings.menu`,{kind:`built-in`,to:`candybar.menu`}],[`ticket`,{kind:`plugin`,to:`plugins.lit.ticket`,folder:`examples/plugins/lit`}]]);function Ej(e){let t=Tj.get(e);if(t===void 0)return``;switch(t.kind){case`built-in`:return` (the built-in segment "${e}" was renamed to "${t.to}" — update this reference)`;case`plugin`:return` (the built-in segment "${e}" became "${t.to}", a segment of the plugin in cc-candybar's ${t.folder} — install that folder in a plugin root (docs/segment-authoring.md, "Installing a plugin instead of listing it"), then update this reference)`}}const Dj=/^[A-Za-z_][A-Za-z0-9_]*$/,Oj={pattern:Dj.source},kj={anyOf:[{type:`boolean`},{type:`string`},{type:`integer`}]},Aj={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`,...Oj}}}]},default:kj}},jj=[`label`,`domain`,`default`],Mj=[`min`,`max`,`step`,`atLeast`];function Nj(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,t.split(`.`))})}function Pj(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 Nj(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 Nj(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?Nj(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(DT(n)){let{min:r,max:i,step:a=1,atLeast:o}=n;return Object.keys(n).filter(e=>!Mj.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}}:Nj(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 Nj(e,t,`domain must be "bool", a list of words, or { min, max }, got ${Q(n)}`)}function Fj(e,t,n){if(!DT(n))return Nj(e,t,`${t} must be { label, domain, default }, got ${OT(n)}`);for(let r of Object.keys(n))jj.includes(r)||Nj(e,`${t}.${r}`,`Unknown setting key "${r}". Expected one of: ${jj.join(`, `)}`);let{label:r}=n,i=typeof r==`string`&&r.length>0&&!/[\n\r]/.test(r);i||Nj(e,`${t}.label`,`a setting needs a one-line, non-empty "label" — the name its control shows, spliced into a synthesized template string — got ${Q(r)}`);let a=Pj(e,`${t}.domain`,n.domain);if(!i||a===void 0)return;let o={label:r,domain:a,default:n.default};return!Ij(n.default)||!Dh(o,n.default)?Nj(e,`${t}.default`,`default must be ${jh(o)}, got ${Q(n.default)}`):o}function Ij(e){return typeof e==`boolean`||typeof e==`string`||typeof e==`number`}const Lj={theme:`its default for this segment is segments.<name>.palette, and a placement sets its own with settings: { ${xh}: "<theme>" }`,effect:`a placement follows the bar's effect, or sets its own with settings: { effect: "<effect>" }`};function Rj(e){return Ch.includes(e)}function zj(){return{required:!1,json:{type:`object`,propertyNames:{...Oj,not:{enum:[...Ch]}},additionalProperties:Aj},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!DT(i))return Nj(e,a,`${a} must be an object of name → { label, domain, default }, got ${OT(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i)){if(!Dj.test(t)){Nj(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(Rj(t)){Nj(e,`${a}.${t}`,`setting "${t}" is one every placement already has — ${Lj[t]}`);continue}let r=Fj(e,`${a}.${t}`,n);r!==void 0&&(o[t]=r)}return o}}}const Bj=nT.map(e=>e.replace(/\./g,`\\.`)).join(`|`);function Vj(){return{required:!1,json:{type:`string`,minLength:1,pattern:`^(?!${Bj})[^:/]+$`},parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return typeof i==`string`&&i.length>0&&!/[:/]/.test(i)&&!rT(i)?i:Nj(e,`${t}.${n}`,`a placement "id" must be a non-empty string without "/" or ":", outside the reserved ${nT.map(e=>`"${e}"`).join(`, `)} namespaces, got ${Q(i)}`)}}}function Hj(){return{required:!1,json:{type:`object`,propertyNames:Oj,additionalProperties:kj},parse:(e,t,n,r)=>{let i=r[n];if(i===void 0)return;let a=`${t}.${n}`;if(!DT(i))return Nj(e,a,`a placement's "settings" must be an object of setting name → value, got ${OT(i)}`);let o=Object.create(null);for(let[t,n]of Object.entries(i))Ij(n)?o[t]=n:Nj(e,`${a}.${t}`,`setting "${t}" must be a boolean, a word, or a number, got ${OT(n)}`);return o}}}function Uj(e){return new Set(Object.keys(e.segments).filter(e=>!rT(e)))}function Wj(e,t,n){if(t===void 0)return{};if(!DT(t))return e.issues.push({path:`segments`,message:`segments must be an object, got ${OT(t)}`,line:X(e.source,[`segments`])}),{};let r={};for(let[i,a]of Object.entries(t)){let t=kT(e,n.has(i)?Xj:Yj,`segments.${i}`,a);t!==null&&(r[i]=t)}return r}function Gj(){return{required:!0,json:{type:`string`},parse:(e,t,n,r)=>r[n]===void 0?PT(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${Ej(t.slice(9))}`)??void 0:ST(e,t,r,n)??void 0}}function Kj(){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 ${Q(i)}`,line:X(e.source,[...t.split(`.`),n])})}}}}function qj(){return{required:!1,json:wj(),parse:(e,t,n,r)=>{let i=r[n];if(i!==void 0)return QA(e,`${t}.${n}`,i)}}}const Jj={template:Gj(),description:BT(),group:JT(GE),width:Kj(),justify:JT(Mh),truncate:JT(Nh),bg:BT(),fg:BT(),when:BT(),palette:WT(),vars:qj(),settings:zj()},Yj={noun:`segment key`,fields:Jj},Xj={noun:`segment key`,fields:{...Jj,template:BT()}},Zj=`#/definitions/LayoutNode`,Qj={kind:`container`,direction:`vertical`,children:[]};function $j(e){return{required:!0,json:{const:e},parse:()=>e}}function eM(){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 ${Q(i)}`,line:X(e.source,[`root`])}),``)}}}function tM(){return{required:!0,json:{enum:[...ah]},parse:(e,t,n,r)=>{let i=r[n];return typeof i==`string`&&ah.includes(i)?i:(e.issues.push({path:`${t}.${n}`,message:`a container "direction" must be one of: ${ah.join(`, `)} (got ${JSON.stringify(i)})`,line:X(e.source,[`root`])}),`vertical`)}}}function nM(e){return{required:!0,json:{type:`array`,items:{$ref:Zj}},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 ${OT(a)}`,line:X(t.source,[`root`])}),[])}}}const rM={noun:`layout-node key`,fields:{kind:$j(`segment`),name:eM(),when:BT(),id:Vj(),settings:Hj()}},iM=()=>JT(lf),aM={noun:`layout-node key`,fields:{kind:$j(`container`),direction:tM(),children:nM(RT(()=>uM)),when:BT(),distribution:iM()}};function oM(){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 ${Q(i)}`,line:X(e.source,[`root`])}),``)}}}const sM={noun:`layout-node key`,fields:{seg:oM(),when:BT(),id:Vj(),settings:Hj()}},cM={noun:`layout-node key`,fields:{h:nM(RT(()=>uM)),when:BT(),distribution:iM()}},lM={noun:`layout-node key`,fields:{v:nM(RT(()=>uM)),when:BT(),distribution:iM()}},uM=(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:X(e.source,[`root`])}),Qj):{kind:`segment`,name:n};if(!DT(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 ${OT(n)}`,line:X(e.source,[`root`])}),Qj;if(n.kind===`container`)return kT(e,aM,t,n)??Qj;if(n.kind===`segment`)return kT(e,rM,t,n)??Qj;if(n.kind===`cells`)return e.issues.push({path:t,message:`kind: "cells" is no longer supported — use the h-arm spelling instead:
|
|
178
178
|
Old: { kind: "cells", segments: ["seg1", "seg2"] }
|
|
179
|
-
New: { h: ["seg1", "seg2"] }`,line:X(e.source,[`root`])}),qj;if(n.kind===`group`){let r=wT(e,fM,t,n);return r===null?qj:(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}),mM(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:X(e.source,[`root`])}),qj}if(a){let r=wT(e,nM,t,n);return r===null?qj:{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=wT(e,rM,t,n);return r===null?qj:{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=wT(e,iM,t,n);return r===null?qj:{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:X(e.source,[`root`])}),qj};function oM(){return{required:!0,json:{type:`object`,propertyNames:{pattern:Ph.source},additionalProperties:{$ref:Kj}},parse:(e,t,n,r)=>{let i=r[n];if(!ST(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${CT(i)}`,line:X(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!Ph.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:X(e.source,[...t.split(`.`),n,r])});continue}a[r]=aM(e,`${t}.${n}.${r}`,o)}return a}}}const sM={noun:`root key`,fields:{rows:oM(),when:FT(),distribution:$j()}};function cM(e,t,n){return ST(n)&&`rows`in n?wT(e,sM,t,n)??{rows:{}}:aM(e,t,n)}function lM(){return{required:!0,json:{type:`string`,pattern:Ph.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!Ph.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 "${L}", got ${Q(i)}`,line:X(e.source,[`root`])});return}return i}}}function uM(){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 ${Q(i)}`,line:X(e.source,[`root`])});return}return i}}}}function dM(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=_T(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:X(e.source,[...t.split(`.`),n])});return}return i}}}}const fM={noun:`layout-node key`,fields:{kind:Jj(`group`),name:lM(),label:dM(),open:IT(),direction:UT(ah),key:uM(),bg:FT(),fg:FT(),when:FT(),distribution:$j(),children:Zj(NT(()=>aM))}};function pM(e){return e.key??`groups.`+e.name}function mM(e){let t=Jw+e.name;return Yn(t,{variable:t,key:pM(e),member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},`drop`,e.when)}function hM(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,[`root`])})}function gM(e,t){eT(e,t,Jw,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&hM(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}.`)&&pM(t)===pM(r)&&hM(e,t.path,`group "${t.name}" shares key "${pM(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=pM(t);if(i.has(n)||i.set(n,L),t.open===!0){let r=i.get(n);r!==`closed`&&hM(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=Jw+e.name,r=pM(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=tr(r,i.get(r)),o[t]=nr(r,e.name),s[t]={template:Qn(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 _M=`menu`,vM=`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`,yM=e=>e.kind===`call`&&e.name===`dict`,bM=e=>e.kind===`literal`&&typeof e.value!=`object`,xM=e=>Kn(``,e,2)===void 0;function SM(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&&yM(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(yM))return t(`whose options (dict …) is not its last argument — ${vM}`);if(i!==void 0&&a===void 0&&!bM(i)&&xM(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=Kn(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${vM}`);let c=a===void 0?{}:xb(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=lT(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=$w(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 "${rT(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 CM(e){let t=Av({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===_M).map(SM)}catch{return`parse-failed`}}function wM(e){let t=Av({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(_M)}catch{return!1}}function TM(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,[`root`])})}function EM(e,t){eT(e,t,Yw,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))wM(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:X(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`&&wM(i)&&TM(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 dh(Vh(t.root)))typeof n.when==`string`&&wM(n.when)&&TM(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||!wM(r))continue;let n=CM(r);if(n!==`parse-failed`)for(let r of n){let n=r.kind===`issue`?r.message:DM(r.apply);n!==void 0&&TM(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${n}.`)}}}function DM(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(tT(e)===`closed`)return`whose apply action is named "${L}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action`}function OM(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 qh(e.presets)){let a=new Map,s=new Map;for(let c of dh(Xh(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,CM(t.template));let l=i.get(c.name);if(l===`parse-failed`)continue;let u=sh(c);for(let[e,t]of l.entries()){if(t.kind===`issue`||DM(t.apply)!==void 0)continue;let{apply:i,options:l}=t,d=tT(i),f=nT(u,i,l.key),p=aT(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=iT(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]=nr(f,d),n[f]=tr(f,L),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 kM=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`back`,`rewind`,`save`,`preset`,`themeDefault`,`doctor`,`ceiling`,`slash`,`do`];function AM(e){return e.ceiling===`set`?[`set`,e.to]:[`clear`]}function jM(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function MM(e,t){if(t===void 0)return{};if(!ST(t))return $(e,`actions`,`actions must be an object, got ${CT(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=NM(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function $(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,t.split(`.`))})}function NM(e,t,n){if(!ST(n))return $(e,t,`${t} must be an action object, got ${CT(n)}`),null;if(`persistWhen`in n)return $(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=kM.filter(e=>e in n);return r.length===1?PM[r[0]](e,t,n):($(e,t,`action must declare exactly one of: ${kM.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const PM={set:(e,t,n)=>pN(e,t,n,`set`,lN),persist:(e,t,n)=>pN(e,t,n,`persist`,uN),copy:FM(`copy`),open:FM(`open`),reset:IM,undo:RM(`undo`),redo:RM(`redo`),back:RM(`back`),rewind:RM(`rewind`),save:RM(`save`),preset:zM,themeDefault:BM,doctor:VM,ceiling:HM,slash:UM,do:WM};function FM(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&$(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);let i=_T(t,n,r,e);return i===null?null:{[e]:i}}}function IM(e,t,n){for(let r of Object.keys(n))r!==`reset`&&$(e,`${t}.${r}`,`Unknown key "${r}" on a reset action. Expected only: reset`);let r=GM(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 LM={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 RM(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&$(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);return r[e]===!0?{[e]:!0}:($(t,`${n}.${e}`,`${e} must be the literal true (it takes no key — ${LM[e]}), got ${Q(r[e])}`),null)}}function zM(e,t,n){let r=n.preset,i=r===`save`?[`preset`]:[`preset`,`name`];for(let r of Object.keys(n))i.includes(r)||$(e,`${t}.${r}`,`Unknown key "${r}" on a preset action. Expected only: ${i.join(`, `)}`);if(r!==`save`&&r!==`delete`)return $(e,`${t}.preset`,`preset must be "save" or "delete", got ${Q(r)}`),null;if(r===`save`)return{preset:`save`};let a=_T(e,t,n,`name`);return a===null?null:{preset:`delete`,name:a}}function BM(e,t,n){for(let r of Object.keys(n))r!==`themeDefault`&&$(e,`${t}.${r}`,`Unknown key "${r}" on a themeDefault action. Expected only: themeDefault`);return n.themeDefault===`save`?{themeDefault:`save`}:($(e,`${t}.themeDefault`,`themeDefault must be "save" (it saves the look the session draws as the active theme's default), got ${Q(n.themeDefault)}`),null)}function VM(e,t,n){let r=n.doctor,i=r===`run`?[`doctor`]:[`doctor`,`check`];for(let r of Object.keys(n))i.includes(r)||$(e,`${t}.${r}`,`Unknown key "${r}" on a doctor action. Expected only: ${i.join(`, `)}`);if(r!==`run`&&r!==`fix`)return $(e,`${t}.doctor`,`doctor must be "run" or "fix", got ${Q(r)}`),null;if(r===`run`)return{doctor:`run`};let a=n.check;return typeof a!=`string`||kD(a)===void 0?($(e,`${t}.check`,`doctor fix must name a check (have: ${DD.map(e=>e.name).join(`, `)}), got ${Q(a)}`),null):{doctor:`fix`,check:a}}function HM(e,t,n){let r=n.ceiling,i=r===`clear`?[`ceiling`]:[`ceiling`,`to`];for(let r of Object.keys(n))i.includes(r)||$(e,`${t}.${r}`,`Unknown key "${r}" on a ceiling action. Expected only: ${i.join(`, `)}`);if(r===`clear`)return{ceiling:`clear`};if(r!==`set`)return $(e,`${t}.ceiling`,`ceiling must be "set" or "clear", got ${Q(r)}`),null;let a=n.to;return typeof a!=`string`||a.trim()===``?($(e,`${t}.to`,`ceiling set needs \`to\`: a memento ceiling value such as "+100_000", "400000" or "off", got ${Q(a)}`),null):{ceiling:`set`,to:a}}function UM(e,t,n){for(let r of Object.keys(n))r!==`slash`&&$(e,`${t}.${r}`,`Unknown key "${r}" on a slash action. Expected only: slash`);let r=HD(n.slash);return r.kind===`refused`?($(e,`${t}.slash`,r.reason),null):{slash:r.line}}function WM(e,t,n){for(let r of Object.keys(n))r!==`do`&&$(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===``)?($(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 ${Q(r)}`),null):{do:r}}function GM(e,t,n,r,i,a){let o=_T(e,t,r,n);if(o===null)return null;let s=`${t}.${n}`;return o===``?($(e,s,i),null):o.includes(`/`)?($(e,s,a(o)),null):o}const KM={set:`the SessionState key to write`,persist:`the config globals field to write`};function qM(e,t,n,r){let i=KM[r],a=GM(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 JM(e){return e===`set`?`set-state`:`set-config`}const YM={to:mN(`set`)},XM={to:mN(`persist`)},ZM={from:hN(`set`)},QM={from:hN(`persist`)},$M={min:bN(),max:bN(),by:bN()},eN={int:_N()},tN={cycle:gN(`set`)},nN={cycle:gN(`persist`)},rN={removeSegment:vN(`removeSegment`)},iN={insertSegment:vN(`insertSegment`),anchor:vN(`anchor`),relation:yN()},aN={insertSegmentFrom:hN(`persist`),anchor:vN(`anchor`),relation:yN()},oN={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},sN={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function cN(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=[e],s=(e,n,r)=>ET(e,t,n,r),c=WT(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?PT(s,...n):s}}const lN=[cN(`set`,YM),cN(`set`,ZM),cN(`set`,$M,[oN,sN]),cN(`set`,eN),cN(`set`,tN)],uN=[cN(`persist`,XM),cN(`persist`,QM),cN(`persist`,$M,[oN,sN]),cN(`persist`,nN),cN(`persist`,rN),cN(`persist`,iN,[],[`insertSegment`]),cN(`persist`,aN,[],[`insertSegmentFrom`])];function dN(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 fN(e){let t=dN(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 pN(e,t,n,r,i){let a=qM(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return $(e,t,`${fN(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)||$(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 mN(e){let t=JM(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>GM(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 hN(e){let t=JM(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===``){$(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){$(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===``)){$(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){$(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){$(n,s,`${i} array members must be unique — a duplicated value would render the same picker option twice`);return}return r}$(n,s,`${i} must be a domain name (a string) or an inline domain (an array of strings), got ${Q(o)}`)}}}function gN(e){let t=JM(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`)){$(n,s,`cycle must be an array of strings (the enumerated values a click steps through), got ${CT(o)}`);return}let c=o;if(c.length<2){$(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){$(n,s,`cycle members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}if(u.length>0){$(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){$(n,s,`cycle members must be unique — the successor of a duplicated member is ambiguous`);return}return c}}}function _N(){return{required:!0,json:{const:!0},parse:(e,t,n,r)=>{if(r[n]!==!0){$(e,`${t}.${n}`,`int must be the literal true (declares the key an unbounded integer cursor — a paged picker's page key), got ${Q(r[n])}`);return}return!0}}}function vN(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=_T(t,n,i,r);if(a===null)return;let o=`${n}.${r}`;if(a===``){$(t,o,`${e} must be non-empty (a segment name)`);return}if(a.includes(`/`)||a.includes(`:`)){$(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 yN(){return{required:!0,json:{enum:[`before`,`after`]},parse:(e,t,n,r)=>{let i=r[n];if(i!==`before`&&i!==`after`){$(e,`${t}.${n}`,`relation must be "before" or "after", got ${Q(i)}`);return}return i}}}function bN(){return{required:!0,json:{type:`integer`},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`number`||!Number.isInteger(i)){$(e,`${t}.${n}`,`${n} must be an integer, got ${Q(i)}`);return}return i}}}function xN(e,t,n){return`${e}: "${t}" is an endcaps shape, not a style — endcaps were renamed from "style" to "endcaps"; write ${n}: "${t}"`}const SN={noun:`style key`,fields:{hueShift:RT(),chromaScale:RT({min:0}),lightnessScale:RT(),lightnessShift:RT()}};function CN(e,t){if(!ST(t))return e.issues.push({path:`styles`,message:`styles must be an object mapping style names to adaptation objects, got ${CT(t)}`,line:X(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:X(e.source,[`styles`,r])});continue}if(Pp(r)){e.issues.push({path:`styles.${r}`,message:xN(`styles.${r}`,r,`globals.endcaps`),line:X(e.source,[`styles`,r])});continue}let t=wT(e,SN,`styles.${r}`,i);t!==null&&(n[r]={...As,...t})}return n}const wN={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:cM(e,`${t}.${n}`,r[n])},globals:{required:!1,json:CE(),parse:(e,t,n,r)=>r[n]===void 0?void 0:SE(e,`${t}.${n}`,r[n])}}};function TN(e,t){if(!ST(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${CT(t)}`,line:X(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:X(e.source,[`presets`,r])});continue}let t=wT(e,wN,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function EN(e,t){if(t===void 0)return{};if(!ST(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${CT(t)}`,line:X(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 ${Q(i)}`,line:X(e.source,[`helpers`,r])});continue}n[r]=i}return n}const DN=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 ON(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 kN(e){let t=DN.get(e);return t===void 0?void 0:`variables.${e} is no longer read: ${ON(t)}`}function AN(e){let t=DN.get(e);return t===void 0?``:` — ".${e}" is no longer a variable: ${ON(t)}; a "${t.segment}" template reads it as ".settings.${t.setting}"`}function jN(e,t){let n=new Map;for(let e of Object.keys(t)){let t=Hw(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:X(e.source,[`presets`])})}function MN(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||gp(i)||Object.prototype.hasOwnProperty.call(t.styles,i))continue;let r=`${n.join(`.`)}.style`;e.issues.push({path:r,message:Pp(i)?xN(r,i,a):`${r} "${i}" does not match any declared style (have: ${Object.keys(t.styles).join(`, `)})`,line:X(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:X(e.source,[`globals`,`preset`])}),jN(e,t.presets),tP(e,t);let i=Eg(t);for(let t of i.names)t!==`settings`&&!t.startsWith(FN)||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:X(e.source,[`variables`,t])});let a=(t,n,r)=>{yk(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${eO}" ${yk(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}),bk(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${eO}" 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 dh(t)){if(e.kind!==`segment`)continue;let t=sh(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=lh(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||oh[e.direction]===`cell`))}let s=(n,r)=>{for(let[a,o]of Hh(n,r)){let n=X(e.source,o.split(`.`));if(a.when!==void 0&&(qN(e,`${o}.when`,a.when,i,{line:n}),KN(e,`${o}.when`,a.when,n)),a.kind===`segment`){if(gk(a.name)){(a.id!==void 0||a.settings!==void 0)&&e.issues.push({path:o,message:`${r} gives the global settings menu anchor "${eO}" an id or settings — the anchor only marks where the menu goes, so place it as the bare name "${eO}"`,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${xj(a.name)}`,line:n}),UN(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`,Bh(t.root)]]);for(let e of qh(t.presets)){let{node:n,path:r}=Xh(t,e);c.set(r,n)}for(let[t,n]of c)a(n,t,X(e.source,t.split(`.`)));eP(e,t,i,()=>!0)}const NN=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function PN(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=X(e.source,[`actions`,n,r]);if(!qh(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${qh(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(`, `)})${xj(i)}`,line:c})},p=new Set(ch(Xh(t,a).node)),m=(r,i)=>{!bj.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${xj(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 FN=`settings.`;function IN(e,t){return{...e,names:new Set([...e.names,...Object.keys(t).map(e=>FN+e)])}}function LN(e,t,n){let r=e=>`segments.${t}.settings.${e}`,i=(n,i)=>{e.issues.push({path:r(n),message:`${r(n)}: ${i}`,line:X(e.source,[`segments`,t,`settings`,n])})},a=BN(n);for(let{setting:e,message:t}of a)i(e,t);if(!(a.length>0))for(let{setting:e,message:t}of Eh(n,zN(n)))i(e,`the defaults do not stand together: ${t}`)}function RN(e){return BN(e).length>0||Eh(e,zN(e)).length>0}function zN(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default]))}function BN(e){let t=t=>Th(VN(e,t))?.atLeast;return Object.keys(e).flatMap(n=>{let r=t(n);if(r===void 0)return[];if(r===n||Th(VN(e,r))===void 0)return[{setting:n,message:`atLeast "${r}" must name another range setting of this segment (its range settings: ${HN(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 VN(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function HN(e,t){return Object.entries(e).filter(([e,n])=>e!==t&&Th(n)!==void 0).map(([e])=>e)}function UN(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=wh(a),s=`${r}: placement "${sh(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(`, `)})`:Dh(c,a)?void 0:`sets "${t}" to ${JSON.stringify(a)}${c.domain===`theme`?sp(a):``}, but it must be ${jh(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])=>Dh(o[e],t))||RN(o)))for(let{message:t}of Eh(o,c))e.issues.push({path:r,message:`${s}: ${t}`,line:i})}function WN(e,t,n,r,i){n.kind===`template`&&qN(e,`${t}.template`,n.template,r,{segCtx:i}),yh(n)&&n.cache&&`key`in n.cache&&qN(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function GN(e,t,n,r,i){if(yh(n)&&n.cache&&`depends_on`in n.cache)for(let a=0;a<n.cache.depends_on.length;a++){let o=n.cache.depends_on[a];if(r.names.has(o))continue;let s=i===void 0?void 0:`${i}.${o}`,c=s!==void 0&&r.names.has(s)?` (segment-local vars are namespaced — write "${s}")`:``;e.issues.push({path:`${t}.cache.depends_on[${a}]`,message:`cache.depends_on references unknown variable "${o}"${c}`,line:X(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function KN(e,t,n,r){try{UE.parse(n)}catch(n){e.issues.push({path:t,message:`Template parse error in ${t}: ${n.message}`,line:r})}}function qN(e,t,n,r,i){for(let[a,o]of vg(n,r.helpers)){if(Tg(a,r))continue;if(a.startsWith(FN)){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??X(e.source,t.split(`.`))});continue}if(o!==null){JN(e,o,`Template references unknown variable ".${a}"${AN(a)}`);continue}let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,s=n!==void 0&&Tg(n,r)?` (segment-local vars are namespaced — write ".${n}")`:AN(a);e.issues.push({path:t,message:`Template references unknown variable ".${a}"${s}`,line:i?.line??X(e.source,t.split(`.`))})}}function JN(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:X(e.source,[`helpers`,t])})}function YN(e,t,n,r,i){let a=n.set,o=sE(pa[r].configKey),s=`${a} takes ${fT(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:X(e.source,[`actions`,t,`min`])});return}let c=QN(n,i);if(c===ZN){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:X(e.source,[`actions`,t,`int`])});return}let l=c.filter(e=>!dT(o,e.value,i));if(l.length!==0){if(a===pa.style.sessionKey&&(`from`in n&&n.from===`endcaps`||c.every(e=>Pp(e.value)))){let r=pa.endcaps.sessionKey;e.issues.push(`to`in n?{path:`actions.${t}.to`,message:xN(`actions.${t}.to`,n.to,`set: "${r}", to`),line:X(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:X(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<=XN?r.join(`, `):`${r.slice(0,XN).join(`, `)} and ${r.length-XN} 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:X(e.source,[`actions`,t,n])})}}}const XN=3,ZN=Symbol(`any integer`);function QN(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?rg(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)}]:ZN}function $N(e,t){return Object.entries(e).filter(([e])=>t(e))}function eP(e,t,n,r){let i=Jk(t),a=ng(i);for(let[n,o]of $N(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 ${ag(r,i)}`,line:X(e.source,[`actions`,n,t])});continue}if(!(`set`in o))continue;ga.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:X(e.source,[`actions`,n,`set`])});let s=ba.get(o.set);s!==void 0&&YN(e,n,o,s,i)}for(let[n,i]of $N(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&&jM(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:X(e.source,[`actions`,n,`do`])})});for(let[n,i]of $N(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=RE(r);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is not a config globals field (have: ${DE().join(`, `)}), a "segments.<name>.palette" target, a "presets.<name>.globals.<field>" target, a "themeDefaults.<theme>.<shade|variation|style>" target, or a "presets.<name>.root" target`,line:X(e.source,[`actions`,n,a])});continue}let s=NN.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:X(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){PN(e,t,n,a,r,o.preset,i);continue}if(o.scope===`preset-globals`&&!qh(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: ${qh(t.presets).join(`, `)})`,line:X(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${sp(o.theme)} (have: ${[...e.allowedPalettes].sort().join(`, `)})`,line:X(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(`, `)})${xj(o.segment)}`,line:X(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:X(e.source,[`actions`,n,a])})}}for(let[i,a]of $N(t.variables,r)){WN(e,`variables.${i}`,a,n);let t=kN(i);t!==void 0&&e.issues.push({path:`variables.${i}`,message:t,line:X(e.source,[`variables`,i])})}for(let[i,a]of $N(t.segments,r)){if(a.vars)for(let[t,r]of Object.entries(a.vars))WN(e,`segments.${i}.vars.${t}`,r,n,i);let r=wh(a);LN(e,i,r);let o=IN(n,r);for(let n of[`template`,`bg`,`fg`,`when`]){let s=a[n];if(typeof s==`string`){qN(e,`segments.${i}.${n}`,s,o,{segCtx:i,settings:r});for(let{name:r,site:a,via:o}of Sg(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){JN(e,o,`Template references unknown action "${r}"${s}`);continue}e.issues.push({path:`segments.${i}.${n}`,message:`${n} references unknown action "${r}"${s}`,line:X(e.source,[`segments`,i,n])})}}}}for(let[i,a]of $N(t.variables,r))GN(e,`variables.${i}`,a,n);for(let[i,a]of $N(t.segments,r))if(a.vars)for(let[t,r]of Object.entries(a.vars))GN(e,`segments.${i}.vars.${t}`,r,n,i)}function tP(e,t){let n=new Set;for(let r of qh(t.presets)){let i=Zh(t,r),a=[{},t.editGlobals];for(let o of a){let a=o.charset??i.charset??`unicode`,s=o.default_separator??i.default_separator;if(a!==`ascii`||Lp(s??``))continue;let c=o.default_separator===void 0?Yh(t.presets,r).globals?.default_separator===void 0?[`globals`]:[`presets`,r,`globals`]:[`editGlobals`],l=[...c,`default_separator`].join(`.`);n.has(l)||(n.add(l),e.issues.push({path:l,message:`${l} ${JSON.stringify(s)} is not ASCII, but charset is "ascii" — under ascii a joiner draws only ASCII; write an ASCII separator or set charset: "unicode"`,line:X(e.source,[...c,`default_separator`])}))}}}function nP(e,t,n=()=>!0){let{graph:r,nodeInfo:i}=rP(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:X(e.source,a?.linePathParts??[`variables`,r])}),!0}if(t===0&&s(c))return!0}return a.set(t,2),o.pop(),!1}}function rP(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 vg(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),yh(n)&&(n.cache&&`key`in n.cache&&i(e,n.cache.key),n.cache&&`depends_on`in n.cache))for(let i of n.cache.depends_on)t.has(i)&&r.get(e).add(i)};for(let[t,n]of Object.entries(e.variables))a(t,n);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))a(`${t}.${e}`,r);return{graph:r,nodeInfo:n}}function iP(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?h.homedir()+e.slice(1):e}function aP(e,t){return l.resolve(e,iP(t))}function oP(e,t){return typeof t==`string`&&t!==``?aP(e,t):void 0}function sP(e){return`plugin ${e.path} was not loaded: ${e.reason}`}const cP=new Set([`data`,`segments`,`helpers`,`actions`]),lP=`plugin.json5`,uP=/^[a-z][a-z0-9_]*$/;function dP(e){let t=l.basename(l.dirname(e));return uP.test(t)?t:void 0}const fP=`plugins.`;function pP(e){return`${fP}${e}.data`}function mP(e){try{return{ok:!0,value:e()}}catch(e){return{ok:!1,reason:hP(e)}}}function hP(e){return e instanceof Uw?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 gP(e,t){return e.map(e=>aP(l.dirname(t),e))}function _P(e,t,n,i){let a=new Map;return e.reduce((e,n)=>{let o=dP(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 ${lP}, and the folder's name is the plugin's: move this file to <dir>/<name>/${lP} and list that`;return s(t,o===void 0?e.config:bP(yP(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 ${uP}: 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=yP(e.config,o),d=mP(()=>{let a=r.readFileSync(n,`utf-8`),s=PA(EP(n,o,{source:a,json:ur.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,bP(u,o,f))},{config:n.config,rendering:n.rendering,loaded:[],dropped:[]})}function vP(e){let t=`${fP}${e}.`;return e=>e.startsWith(t)}function yP(e,t){let n=vP(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 bP(e,t,n){return{...e,variables:{...e.variables,[pP(t)]:{kind:`dropped`,reason:sP(n),definition:n.path}}}}function xP(e){return e.startsWith(`plugins.`)?e.slice(8).split(`.`)[0]:void 0}function SP(e,t){let n=new Set([...Object.keys(e.config.variables),...Object.keys(e.config.segments)].map(xP)),r=[...t,...e.dropped].filter(e=>e.plugin===void 0).map(e=>({definition:e.path,notice:sP(e)}));return t=>{let i=xP(t);if(i===void 0)return[];let a=e.config.variables[pP(i)];return a?.kind===`dropped`?[{definition:a.definition,notice:a.reason}]:n.has(i)?[]:r}}function CP(e,t){let n=qh(e.presets).flatMap(t=>[...dh(Xh(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,wP(e,t.map(e=>e.notice),n.filter(t=>t.name===e))])),a=t=>{let n=xP(t),r=n===void 0?void 0:e.variables[pP(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=>Sg(t,e.helpers).map(e=>e.name)),...c],e.actions),d=l(s.flatMap(t=>[...wg(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:`{{ .${pP(xP(e)??``)} }}`}]))},helpers:{...e.helpers,...Object.fromEntries(d.map(([e,t])=>[e,`{{ fail ${JSON.stringify(t.notice)} }}`]))}},reached:f}}function wP(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,TP(e,t)]));return{template:`{{ ${JSON.stringify(r)} }}`,bg:`error`,description:`stands in for a segment whose plugin did not load`,settings:a}}function TP(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 EP(e,t,{source:n,json:r},{checkout:i}){let a=[],o=()=>{throw new Uw(e,a)};if(!ST(r))return a.push({path:``,message:`a plugin definition must be an object, got ${CT(r)}`}),o();for(let e of Object.keys(r))cP.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: ${[...cP].join(`, `)}`});let s=kP(r.data,e,i,a);if(ST(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(up()),groups:[]},l=qA(c,`data`,{[pP(t)]:{kind:`file`,path:s,parse:{json:!0},cache:{watch_file:s},default:{}}});for(let[e,t]of Object.entries(r.segments))ST(t)&&`vars`in t&&a.push({path:`segments.${e}.vars`,message:`a plugin segment may not declare "vars": a plugin's only source is its data file`});let u={variables:l,segments:OP(t,zj(c,r.segments,new Set)),helpers:OP(t,EN(c,r.helpers)),actions:OP(t,MM(c,r.actions))};for(let[e,t]of DP(u))try{UE.parse(t)}catch(t){a.push({path:e,message:`Template parse error in ${e}: ${t.message}`})}return a.length>0&&o(),u}function*DP(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 OP(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[`${fP}${e}.${t}`,n]))}function kP(e,t,n,r){if(typeof e==`string`&&e!==``)return aP(l.dirname(t),e);if(ST(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(ST(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 AP(e){let t=(process.env.XDG_DATA_DIRS||jP()).split(`:`).filter(e=>e!==``),n=process.env.XDG_DATA_HOME||l.join(h.homedir(),`.local`,`share`),r=[...[...t].reverse().map(e=>l.join(e,`cc-candybar`,`plugins`)),l.join(n,`cc-candybar`,`plugins`),...e===null?[]:[l.join(e,`.cc-candybar`,`plugins`)]];return r.filter((e,t)=>r.lastIndexOf(e)===t)}function jP(){let e=`/usr/local/share:/usr/share`;return process.platform===`darwin`?`${l.join(process.env.HOMEBREW_PREFIX||`/opt/homebrew`,`share`)}:${e}`:e}function MP(e){let t=AP(e),n=new Map,r=[],i=[];for(let e of t){let t=NP(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,lP));for(let n of t.files)i.push({path:l.join(e,n),plugin:void 0,reason:`a plugin is a folder holding its ${lP}: move this file to ${l.join(e,`<name>`,lP)}`})}return{roots:t,definitions:[...n.values()],unchecked:r,strays:i}}function NP(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()||PP(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 PP(e,t){if(!t.isSymbolicLink())return!1;try{return r.statSync(l.join(e,t.name)).isDirectory()}catch{return!0}}const FP=[`json5`,`json`];function IP(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function LP(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?FP.map(t=>l.join(e,`.cc-candybar.${t}`)):[],...FP.map(e=>l.join(r,`.cc-candybar.${e}`)),...FP.map(e=>`${RP()}.${e}`)])]}function RP(){let e=process.env.XDG_CONFIG_HOME??l.join(h.homedir(),`.config`);return l.join(e,`cc-candybar`,`config`)}function zP(e,t,n){let i=[],a=new Map;for(let o of LP(e,t,n)){let e=IP(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:BP(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 BP(e){let t=RP();return e.find(e=>FP.some(n=>e===`${t}.${n}`))??`${t}.${FP[0]}`}function VP(e,t,n){let r=zP(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 HP(e){return UP(e).join(`
|
|
180
|
-
`)||null}function
|
|
179
|
+
New: { h: ["seg1", "seg2"] }`,line:X(e.source,[`root`])}),Qj;if(n.kind===`group`){let r=kT(e,_M,t,n);return r===null?Qj:(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}),yM(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:X(e.source,[`root`])}),Qj}if(a){let r=kT(e,sM,t,n);return r===null?Qj:{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=kT(e,cM,t,n);return r===null?Qj:{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=kT(e,lM,t,n);return r===null?Qj:{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:X(e.source,[`root`])}),Qj};function dM(){return{required:!0,json:{type:`object`,propertyNames:{pattern:Ph.source},additionalProperties:{$ref:Zj}},parse:(e,t,n,r)=>{let i=r[n];if(!DT(i))return e.issues.push({path:`${t}.${n}`,message:`"rows" must be an object of row name → layout node, got ${OT(i)}`,line:X(e.source,[...t.split(`.`),n])}),{};let a={};for(let[r,o]of Object.entries(i)){if(!Ph.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:X(e.source,[...t.split(`.`),n,r])});continue}a[r]=uM(e,`${t}.${n}.${r}`,o)}return a}}}const fM={noun:`root key`,fields:{rows:dM(),when:BT(),distribution:iM()}};function pM(e,t,n){return DT(n)&&`rows`in n?kT(e,fM,t,n)??{rows:{}}:uM(e,t,n)}function mM(){return{required:!0,json:{type:`string`,pattern:Ph.source},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`string`||!Ph.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 "${L}", got ${Q(i)}`,line:X(e.source,[`root`])});return}return i}}}function hM(){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 ${Q(i)}`,line:X(e.source,[`root`])});return}return i}}}}function gM(){return{required:!0,json:{type:`string`,pattern:`^[^\\n\\r]*$`},parse:(e,t,n,r)=>{let i=ST(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:X(e.source,[...t.split(`.`),n])});return}return i}}}}const _M={noun:`layout-node key`,fields:{kind:$j(`group`),name:mM(),label:gM(),open:VT(),direction:JT(ah),key:hM(),bg:BT(),fg:BT(),when:BT(),distribution:iM(),children:nM(RT(()=>uM))}};function vM(e){return e.key??`groups.`+e.name}function yM(e){let t=$w+e.name;return Yn(t,{variable:t,key:vM(e),member:e.name},{kind:`container`,direction:e.direction??`vertical`,children:e.children,...e.distribution!==void 0&&{distribution:e.distribution}},`drop`,e.when)}function bM(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,[`root`])})}function xM(e,t){aT(e,t,$w,`group nodes`);let n=e.groups;if(n.length===0)return;let r=new Set;for(let t of n)r.has(t.name)&&bM(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}.`)&&vM(t)===vM(r)&&bM(e,t.path,`group "${t.name}" shares key "${vM(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=vM(t);if(i.has(n)||i.set(n,L),t.open===!0){let r=i.get(n);r!==`closed`&&bM(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=$w+e.name,r=vM(e),c=n.filter(t=>t!==e&&e.path.startsWith(t.path+`.`)).length,l=` `.repeat(c);a[t]=tr(r,i.get(r)),o[t]=nr(r,e.name),s[t]={template:Qn(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 SM=`menu`,CM=`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`,wM=e=>e.kind===`call`&&e.name===`dict`,TM=e=>e.kind===`literal`&&typeof e.value!=`object`,EM=e=>Kn(``,e,2)===void 0;function DM(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&&wM(i)?i:void 0,o=a===void 0?r:r.slice(0,-1);if(o.some(wM))return t(`whose options (dict …) is not its last argument — ${CM}`);if(i!==void 0&&a===void 0&&!TM(i)&&EM(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=Kn(`whose trigger`,o.length,2);if(s!==void 0)return t(`${s} — ${CM}`);let c=a===void 0?{}:xb(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=mT(c)}catch(e){return t(`with invalid options — ${e.message}`)}let u=l.key;if(u!==void 0){let e=iT(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 "${cT(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 OM(e){let t=Av({fromString:e=>e});try{return t.parse(e).referencedCalls().filter(e=>e.name===SM).map(DM)}catch{return`parse-failed`}}function kM(e){let t=Av({fromString:e=>e});try{return t.parse(e).referencedFunctions().has(SM)}catch{return!1}}function AM(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,[`root`])})}function jM(e,t){aT(e,t,eT,`{{ menu }} helpers`);for(let[n,r]of Object.entries(t.helpers??{}))kM(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:X(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`&&kM(i)&&AM(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 dh(Vh(t.root)))typeof n.when==`string`&&kM(n.when)&&AM(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||!kM(r))continue;let n=OM(r);if(n!==`parse-failed`)for(let r of n){let n=r.kind===`issue`?r.message:MM(r.apply);n!==void 0&&AM(e,`segments.${t}`,`segment "${t}" has a {{ menu }} ${n}.`)}}}function MM(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(oT(e)===`closed`)return`whose apply action is named "${L}", which collides with the menu's closed-state sentinel and leaves it unopenable. Rename the action`}function NM(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 qh(e.presets)){let a=new Map,s=new Map;for(let c of dh(Xh(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,OM(t.template));let l=i.get(c.name);if(l===`parse-failed`)continue;let u=sh(c);for(let[e,t]of l.entries()){if(t.kind===`issue`||MM(t.apply)!==void 0)continue;let{apply:i,options:l}=t,d=oT(i),f=sT(u,i,l.key),p=uT(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=lT(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]=nr(f,d),n[f]=tr(f,L),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 PM=[`set`,`persist`,`copy`,`open`,`reset`,`undo`,`redo`,`back`,`rewind`,`save`,`preset`,`themeDefault`,`doctor`,`ceiling`,`slash`,`do`];function FM(e){return e.ceiling===`set`?[`set`,e.to]:[`clear`]}function IM(e){return`from`in e||`int`in e||`insertSegmentFrom`in e}function LM(e,t){if(t===void 0)return{};if(!DT(t))return $(e,`actions`,`actions must be an object, got ${OT(t)}`),{};let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=RM(e,`actions.${r}`,i);t!==null&&(n[r]=t)}return n}function $(e,t,n){e.issues.push({path:t,message:n,line:X(e.source,t.split(`.`))})}function RM(e,t,n){if(!DT(n))return $(e,t,`${t} must be an action object, got ${OT(n)}`),null;if(`persistWhen`in n)return $(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=PM.filter(e=>e in n);return r.length===1?zM[r[0]](e,t,n):($(e,t,`action must declare exactly one of: ${PM.join(`, `)}${r.length>1?` (found: ${r.join(`, `)})`:``}`),null)}const zM={set:(e,t,n)=>vN(e,t,n,`set`,mN),persist:(e,t,n)=>vN(e,t,n,`persist`,hN),copy:BM(`copy`),open:BM(`open`),reset:VM,undo:UM(`undo`),redo:UM(`redo`),back:UM(`back`),rewind:UM(`rewind`),save:UM(`save`),preset:WM,themeDefault:GM,doctor:KM,ceiling:qM,slash:JM,do:YM};function BM(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&$(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);let i=ST(t,n,r,e);return i===null?null:{[e]:i}}}function VM(e,t,n){for(let r of Object.keys(n))r!==`reset`&&$(e,`${t}.${r}`,`Unknown key "${r}" on a reset action. Expected only: reset`);let r=XM(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 HM={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 UM(e){return(t,n,r)=>{for(let i of Object.keys(r))i!==e&&$(t,`${n}.${i}`,`Unknown key "${i}" on a ${e} action. Expected only: ${e}`);return r[e]===!0?{[e]:!0}:($(t,`${n}.${e}`,`${e} must be the literal true (it takes no key — ${HM[e]}), got ${Q(r[e])}`),null)}}function WM(e,t,n){let r=n.preset,i=r===`save`?[`preset`]:[`preset`,`name`];for(let r of Object.keys(n))i.includes(r)||$(e,`${t}.${r}`,`Unknown key "${r}" on a preset action. Expected only: ${i.join(`, `)}`);if(r!==`save`&&r!==`delete`)return $(e,`${t}.preset`,`preset must be "save" or "delete", got ${Q(r)}`),null;if(r===`save`)return{preset:`save`};let a=ST(e,t,n,`name`);return a===null?null:{preset:`delete`,name:a}}function GM(e,t,n){for(let r of Object.keys(n))r!==`themeDefault`&&$(e,`${t}.${r}`,`Unknown key "${r}" on a themeDefault action. Expected only: themeDefault`);return n.themeDefault===`save`?{themeDefault:`save`}:($(e,`${t}.themeDefault`,`themeDefault must be "save" (it saves the look the session draws as the active theme's default), got ${Q(n.themeDefault)}`),null)}function KM(e,t,n){let r=n.doctor,i=r===`run`?[`doctor`]:[`doctor`,`check`];for(let r of Object.keys(n))i.includes(r)||$(e,`${t}.${r}`,`Unknown key "${r}" on a doctor action. Expected only: ${i.join(`, `)}`);if(r!==`run`&&r!==`fix`)return $(e,`${t}.doctor`,`doctor must be "run" or "fix", got ${Q(r)}`),null;if(r===`run`)return{doctor:`run`};let a=n.check;return typeof a!=`string`||PD(a)===void 0?($(e,`${t}.check`,`doctor fix must name a check (have: ${MD.map(e=>e.name).join(`, `)}), got ${Q(a)}`),null):{doctor:`fix`,check:a}}function qM(e,t,n){let r=n.ceiling,i=r===`clear`?[`ceiling`]:[`ceiling`,`to`];for(let r of Object.keys(n))i.includes(r)||$(e,`${t}.${r}`,`Unknown key "${r}" on a ceiling action. Expected only: ${i.join(`, `)}`);if(r===`clear`)return{ceiling:`clear`};if(r!==`set`)return $(e,`${t}.ceiling`,`ceiling must be "set" or "clear", got ${Q(r)}`),null;let a=n.to;return typeof a!=`string`||a.trim()===``?($(e,`${t}.to`,`ceiling set needs \`to\`: a memento ceiling value such as "+100_000", "400000" or "off", got ${Q(a)}`),null):{ceiling:`set`,to:a}}function JM(e,t,n){for(let r of Object.keys(n))r!==`slash`&&$(e,`${t}.${r}`,`Unknown key "${r}" on a slash action. Expected only: slash`);let r=qD(n.slash);return r.kind===`refused`?($(e,`${t}.slash`,r.reason),null):{slash:r.line}}function YM(e,t,n){for(let r of Object.keys(n))r!==`do`&&$(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===``)?($(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 ${Q(r)}`),null):{do:r}}function XM(e,t,n,r,i,a){let o=ST(e,t,r,n);if(o===null)return null;let s=`${t}.${n}`;return o===``?($(e,s,i),null):o.includes(`/`)?($(e,s,a(o)),null):o}const ZM={set:`the SessionState key to write`,persist:`the config globals field to write`};function QM(e,t,n,r){let i=ZM[r],a=XM(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 $M(e){return e===`set`?`set-state`:`set-config`}const eN={to:yN(`set`)},tN={to:yN(`persist`)},nN={from:bN(`set`)},rN={from:bN(`persist`)},iN={min:TN(),max:TN(),by:TN()},aN={int:SN()},oN={cycle:xN(`set`)},sN={cycle:xN(`persist`)},cN={removeSegment:CN(`removeSegment`)},lN={insertSegment:CN(`insertSegment`),anchor:CN(`anchor`),relation:wN()},uN={insertSegmentFrom:bN(`persist`),anchor:CN(`anchor`),relation:wN()},dN={ok:e=>e.min<e.max,issue:e=>({field:`min`,message:`min (${e.min}) must be less than max (${e.max})`})},fN={ok:e=>e.by!==0,issue:()=>({field:`by`,message:`by must be a non-zero integer (the per-click increment; negative steps down)`})};function pN(e,t,n=[],r){let i=Object.keys(t),a=r??i,o=[e],s=(e,n,r)=>jT(e,t,n,r),c=YT(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?zT(s,...n):s}}const mN=[pN(`set`,eN),pN(`set`,nN),pN(`set`,iN,[dN,fN]),pN(`set`,aN),pN(`set`,oN)],hN=[pN(`persist`,tN),pN(`persist`,rN),pN(`persist`,iN,[dN,fN]),pN(`persist`,sN),pN(`persist`,cN),pN(`persist`,lN,[],[`insertSegment`]),pN(`persist`,uN,[],[`insertSegmentFrom`])];function gN(e){let t=[`"to" (a literal value)`,`"from" (an option domain — a registered domain name like "themes"/"endcaps"/"styles", or an inline array of literal values)`,`"min"/"max"/"by" (a bounded step)`];return e===`set`&&t.push(`"int" (an unbounded integer cursor)`),t.push(`"cycle" (an enumerated domain stepped in order)`),e===`persist`&&t.push(`"removeSegment" (remove a named segment from the layout)`,`"insertSegment"/"anchor"/"relation" (insert a named segment before/after an existing one)`,`"insertSegmentFrom"/"anchor"/"relation" (insert a segment PICKED from an option domain before/after an existing one)`),t}function _N(e){let t=gN(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 vN(e,t,n,r,i){let a=QM(e,t,n,r),o=i.filter(e=>e.detect.some(e=>e in n));if(o.length!==1)return $(e,t,`${_N(r)}${o.length>1?` — found: ${o.map(e=>e.label).join(`, `)}`:``}`),null;let s=o[0];for(let i of Object.keys(n))s.allowed.includes(i)||$(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 yN(e){let t=$M(e);return{required:!0,json:{type:`string`},parse:(n,r,i,a)=>XM(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 bN(e){let t=$M(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===``){$(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){$(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===``)){$(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){$(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){$(n,s,`${i} array members must be unique — a duplicated value would render the same picker option twice`);return}return r}$(n,s,`${i} must be a domain name (a string) or an inline domain (an array of strings), got ${Q(o)}`)}}}function xN(e){let t=$M(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`)){$(n,s,`cycle must be an array of strings (the enumerated values a click steps through), got ${OT(o)}`);return}let c=o;if(c.length<2){$(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){$(n,s,`cycle members must be non-empty — an empty value cannot be delivered on the ${t} wire`);return}if(u.length>0){$(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){$(n,s,`cycle members must be unique — the successor of a duplicated member is ambiguous`);return}return c}}}function SN(){return{required:!0,json:{const:!0},parse:(e,t,n,r)=>{if(r[n]!==!0){$(e,`${t}.${n}`,`int must be the literal true (declares the key an unbounded integer cursor — a paged picker's page key), got ${Q(r[n])}`);return}return!0}}}function CN(e){return{required:!0,json:{type:`string`},parse:(t,n,r,i)=>{let a=ST(t,n,i,r);if(a===null)return;let o=`${n}.${r}`;if(a===``){$(t,o,`${e} must be non-empty (a segment name)`);return}if(a.includes(`/`)||a.includes(`:`)){$(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 wN(){return{required:!0,json:{enum:[`before`,`after`]},parse:(e,t,n,r)=>{let i=r[n];if(i!==`before`&&i!==`after`){$(e,`${t}.${n}`,`relation must be "before" or "after", got ${Q(i)}`);return}return i}}}function TN(){return{required:!0,json:{type:`integer`},parse:(e,t,n,r)=>{let i=r[n];if(typeof i!=`number`||!Number.isInteger(i)){$(e,`${t}.${n}`,`${n} must be an integer, got ${Q(i)}`);return}return i}}}function EN(e,t,n){return`${e}: "${t}" is an endcaps shape, not a style — endcaps were renamed from "style" to "endcaps"; write ${n}: "${t}"`}const DN={noun:`style key`,fields:{hueShift:UT(),chromaScale:UT({min:0}),lightnessScale:UT(),lightnessShift:UT()}};function ON(e,t){if(!DT(t))return e.issues.push({path:`styles`,message:`styles must be an object mapping style names to adaptation objects, got ${OT(t)}`,line:X(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:X(e.source,[`styles`,r])});continue}if(Pp(r)){e.issues.push({path:`styles.${r}`,message:EN(`styles.${r}`,r,`globals.endcaps`),line:X(e.source,[`styles`,r])});continue}let t=kT(e,DN,`styles.${r}`,i);t!==null&&(n[r]={...As,...t})}return n}const kN={noun:`preset key`,fields:{root:{required:!1,json:{$ref:`#/definitions/RootFragment`},parse:(e,t,n,r)=>r[n]===void 0?void 0:pM(e,`${t}.${n}`,r[n])},globals:{required:!1,json:OE(),parse:(e,t,n,r)=>r[n]===void 0?void 0:DE(e,`${t}.${n}`,r[n])}}};function AN(e,t){if(!DT(t))return e.issues.push({path:`presets`,message:`presets must be an object mapping preset names to config fragments, got ${OT(t)}`,line:X(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:X(e.source,[`presets`,r])});continue}let t=kT(e,kN,`presets.${r}`,i);t!==null&&(n[r]=t)}return n}function jN(e,t){if(t===void 0)return{};if(!DT(t))return e.issues.push({path:`helpers`,message:`helpers must be an object, got ${OT(t)}`,line:X(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 ${Q(i)}`,line:X(e.source,[`helpers`,r])});continue}n[r]=i}return n}const MN=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 NN(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 PN(e){let t=MN.get(e);return t===void 0?void 0:`variables.${e} is no longer read: ${NN(t)}`}function FN(e){let t=MN.get(e);return t===void 0?``:` — ".${e}" is no longer a variable: ${NN(t)}; a "${t.segment}" template reads it as ".settings.${t.setting}"`}function IN(e,t){let n=new Map;for(let e of Object.keys(t)){let t=qw(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:X(e.source,[`presets`])})}function LN(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||gp(i)||Object.prototype.hasOwnProperty.call(t.styles,i))continue;let r=`${n.join(`.`)}.style`;e.issues.push({path:r,message:Pp(i)?EN(r,i,a):`${r} "${i}" does not match any declared style (have: ${Object.keys(t.styles).join(`, `)})`,line:X(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:X(e.source,[`globals`,`preset`])}),IN(e,t.presets),oP(e,t);let i=Eg(t);for(let t of i.names)t!==`settings`&&!t.startsWith(BN)||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:X(e.source,[`variables`,t])});let a=(t,n,r)=>{wk(t)>1&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${aO}" ${wk(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}),Tk(t)&&e.issues.push({path:n,message:`${n} places the global settings menu anchor "${aO}" 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 dh(t)){if(e.kind!==`segment`)continue;let t=sh(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=lh(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||oh[e.direction]===`cell`))}let s=(n,r)=>{for(let[a,o]of Hh(n,r)){let n=X(e.source,o.split(`.`));if(a.when!==void 0&&(QN(e,`${o}.when`,a.when,i,{line:n}),ZN(e,`${o}.when`,a.when,n)),a.kind===`segment`){if(xk(a.name)){(a.id!==void 0||a.settings!==void 0)&&e.issues.push({path:o,message:`${r} gives the global settings menu anchor "${aO}" an id or settings — the anchor only marks where the menu goes, so place it as the bare name "${aO}"`,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${Ej(a.name)}`,line:n}),JN(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`,Bh(t.root)]]);for(let e of qh(t.presets)){let{node:n,path:r}=Xh(t,e);c.set(r,n)}for(let[t,n]of c)a(n,t,X(e.source,t.split(`.`)));aP(e,t,i,()=>!0)}const RN=[`removeSegment`,`insertSegment`,`insertSegmentFrom`];function zN(e,t,n,r,i,a,o){let s=`actions.${n}.${r}`,c=X(e.source,[`actions`,n,r]);if(!qh(t.presets).includes(a)){e.issues.push({path:s,message:`actions.${n}: "${i}" names preset "${a}" which is not declared (have: ${qh(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(`, `)})${Ej(i)}`,line:c})},p=new Set(ch(Xh(t,a).node)),m=(r,i)=>{!Tj.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${Ej(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 BN=`settings.`;function VN(e,t){return{...e,names:new Set([...e.names,...Object.keys(t).map(e=>BN+e)])}}function HN(e,t,n){let r=e=>`segments.${t}.settings.${e}`,i=(n,i)=>{e.issues.push({path:r(n),message:`${r(n)}: ${i}`,line:X(e.source,[`segments`,t,`settings`,n])})},a=GN(n);for(let{setting:e,message:t}of a)i(e,t);if(!(a.length>0))for(let{setting:e,message:t}of Eh(n,WN(n)))i(e,`the defaults do not stand together: ${t}`)}function UN(e){return GN(e).length>0||Eh(e,WN(e)).length>0}function WN(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default]))}function GN(e){let t=t=>Th(KN(e,t))?.atLeast;return Object.keys(e).flatMap(n=>{let r=t(n);if(r===void 0)return[];if(r===n||Th(KN(e,r))===void 0)return[{setting:n,message:`atLeast "${r}" must name another range setting of this segment (its range settings: ${qN(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 KN(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function qN(e,t){return Object.entries(e).filter(([e,n])=>e!==t&&Th(n)!==void 0).map(([e])=>e)}function JN(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=wh(a),s=`${r}: placement "${sh(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(`, `)})`:Dh(c,a)?void 0:`sets "${t}" to ${JSON.stringify(a)}${c.domain===`theme`?sp(a):``}, but it must be ${jh(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])=>Dh(o[e],t))||UN(o)))for(let{message:t}of Eh(o,c))e.issues.push({path:r,message:`${s}: ${t}`,line:i})}function YN(e,t,n,r,i){n.kind===`template`&&QN(e,`${t}.template`,n.template,r,{segCtx:i}),yh(n)&&n.cache&&`key`in n.cache&&QN(e,`${t}.cache.key`,n.cache.key,r,{segCtx:i})}function XN(e,t,n,r,i){if(yh(n)&&n.cache&&`depends_on`in n.cache)for(let a=0;a<n.cache.depends_on.length;a++){let o=n.cache.depends_on[a];if(r.names.has(o))continue;let s=i===void 0?void 0:`${i}.${o}`,c=s!==void 0&&r.names.has(s)?` (segment-local vars are namespaced — write "${s}")`:``;e.issues.push({path:`${t}.cache.depends_on[${a}]`,message:`cache.depends_on references unknown variable "${o}"${c}`,line:X(e.source,[...t.split(`.`),`cache`,`depends_on`])})}}function ZN(e,t,n,r){try{JE.parse(n)}catch(n){e.issues.push({path:t,message:`Template parse error in ${t}: ${n.message}`,line:r})}}function QN(e,t,n,r,i){for(let[a,o]of vg(n,r.helpers)){if(Tg(a,r))continue;if(a.startsWith(BN)){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??X(e.source,t.split(`.`))});continue}if(o!==null){$N(e,o,`Template references unknown variable ".${a}"${FN(a)}`);continue}let n=i?.segCtx===void 0?void 0:`${i.segCtx}.${a}`,s=n!==void 0&&Tg(n,r)?` (segment-local vars are namespaced — write ".${n}")`:FN(a);e.issues.push({path:t,message:`Template references unknown variable ".${a}"${s}`,line:i?.line??X(e.source,t.split(`.`))})}}function $N(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:X(e.source,[`helpers`,t])})}function eP(e,t,n,r,i){let a=n.set,o=fE(pa[r].configKey),s=`${a} takes ${_T(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:X(e.source,[`actions`,t,`min`])});return}let c=rP(n,i);if(c===nP){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:X(e.source,[`actions`,t,`int`])});return}let l=c.filter(e=>!gT(o,e.value,i));if(l.length!==0){if(a===pa.style.sessionKey&&(`from`in n&&n.from===`endcaps`||c.every(e=>Pp(e.value)))){let r=pa.endcaps.sessionKey;e.issues.push(`to`in n?{path:`actions.${t}.to`,message:EN(`actions.${t}.to`,n.to,`set: "${r}", to`),line:X(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:X(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<=tP?r.join(`, `):`${r.slice(0,tP).join(`, `)} and ${r.length-tP} 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:X(e.source,[`actions`,t,n])})}}}const tP=3,nP=Symbol(`any integer`);function rP(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?rg(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)}]:nP}function iP(e,t){return Object.entries(e).filter(([e])=>t(e))}function aP(e,t,n,r){let i=$k(t),a=ng(i);for(let[n,o]of iP(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 ${ag(r,i)}`,line:X(e.source,[`actions`,n,t])});continue}if(!(`set`in o))continue;ga.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:X(e.source,[`actions`,n,`set`])});let s=ba.get(o.set);s!==void 0&&eP(e,n,o,s,i)}for(let[n,i]of iP(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&&IM(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:X(e.source,[`actions`,n,`do`])})});for(let[n,i]of iP(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=UE(r);if(o===null){e.issues.push({path:`actions.${n}.${a}`,message:`actions.${n}: "${r}" is not a config globals field (have: ${ME().join(`, `)}), a "segments.<name>.palette" target, a "presets.<name>.globals.<field>" target, a "themeDefaults.<theme>.<shade|variation|style>" target, or a "presets.<name>.root" target`,line:X(e.source,[`actions`,n,a])});continue}let s=RN.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:X(e.source,[`actions`,n,a])});continue}if(o.scope===`preset-root`){zN(e,t,n,a,r,o.preset,i);continue}if(o.scope===`preset-globals`&&!qh(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: ${qh(t.presets).join(`, `)})`,line:X(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${sp(o.theme)} (have: ${[...e.allowedPalettes].sort().join(`, `)})`,line:X(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(`, `)})${Ej(o.segment)}`,line:X(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:X(e.source,[`actions`,n,a])})}}for(let[i,a]of iP(t.variables,r)){YN(e,`variables.${i}`,a,n);let t=PN(i);t!==void 0&&e.issues.push({path:`variables.${i}`,message:t,line:X(e.source,[`variables`,i])})}for(let[i,a]of iP(t.segments,r)){if(a.vars)for(let[t,r]of Object.entries(a.vars))YN(e,`segments.${i}.vars.${t}`,r,n,i);let r=wh(a);HN(e,i,r);let o=VN(n,r);for(let n of[`template`,`bg`,`fg`,`when`]){let s=a[n];if(typeof s==`string`){QN(e,`segments.${i}.${n}`,s,o,{segCtx:i,settings:r});for(let{name:r,site:a,via:o}of Sg(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){$N(e,o,`Template references unknown action "${r}"${s}`);continue}e.issues.push({path:`segments.${i}.${n}`,message:`${n} references unknown action "${r}"${s}`,line:X(e.source,[`segments`,i,n])})}}}}for(let[i,a]of iP(t.variables,r))XN(e,`variables.${i}`,a,n);for(let[i,a]of iP(t.segments,r))if(a.vars)for(let[t,r]of Object.entries(a.vars))XN(e,`segments.${i}.vars.${t}`,r,n,i)}function oP(e,t){let n=new Set;for(let r of qh(t.presets)){let i=Zh(t,r),a=[{},t.editGlobals];for(let o of a){let a=o.charset??i.charset??`unicode`,s=o.default_separator??i.default_separator;if(a!==`ascii`||Lp(s??``))continue;let c=o.default_separator===void 0?Yh(t.presets,r).globals?.default_separator===void 0?[`globals`]:[`presets`,r,`globals`]:[`editGlobals`],l=[...c,`default_separator`].join(`.`);n.has(l)||(n.add(l),e.issues.push({path:l,message:`${l} ${JSON.stringify(s)} is not ASCII, but charset is "ascii" — under ascii a joiner draws only ASCII; write an ASCII separator or set charset: "unicode"`,line:X(e.source,[...c,`default_separator`])}))}}}function sP(e,t,n=()=>!0){let{graph:r,nodeInfo:i}=cP(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:X(e.source,a?.linePathParts??[`variables`,r])}),!0}if(t===0&&s(c))return!0}return a.set(t,2),o.pop(),!1}}function cP(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 vg(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),yh(n)&&(n.cache&&`key`in n.cache&&i(e,n.cache.key),n.cache&&`depends_on`in n.cache))for(let i of n.cache.depends_on)t.has(i)&&r.get(e).add(i)};for(let[t,n]of Object.entries(e.variables))a(t,n);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))a(`${t}.${e}`,r);return{graph:r,nodeInfo:n}}function lP(e){return e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`)?h.homedir()+e.slice(1):e}function uP(e,t){return l.resolve(e,lP(t))}function dP(e,t){return typeof t==`string`&&t!==``?uP(e,t):void 0}function fP(e){return`plugin ${e.path} was not loaded: ${e.reason}`}const pP=new Set([`data`,`segments`,`helpers`,`actions`]),mP=`plugin.json5`,hP=/^[a-z][a-z0-9_]*$/;function gP(e){let t=l.basename(l.dirname(e));return hP.test(t)?t:void 0}const _P=`plugins.`;function vP(e){return`${_P}${e}.data`}function yP(e){try{return{ok:!0,value:e()}}catch(e){return{ok:!1,reason:bP(e)}}}function bP(e){return e instanceof Jw?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 xP(e,t){return e.map(e=>uP(l.dirname(t),e))}function SP(e,t,n,i){let a=new Map;return e.reduce((e,n)=>{let o=gP(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 ${mP}, and the folder's name is the plugin's: move this file to <dir>/<name>/${mP} and list that`;return s(t,o===void 0?e.config:TP(wP(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 ${hP}: 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=wP(e.config,o),d=yP(()=>{let a=r.readFileSync(n,`utf-8`),s=zA(jP(n,o,{source:a,json:ur.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,TP(u,o,f))},{config:n.config,rendering:n.rendering,loaded:[],dropped:[]})}function CP(e){let t=`${_P}${e}.`;return e=>e.startsWith(t)}function wP(e,t){let n=CP(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 TP(e,t,n){return{...e,variables:{...e.variables,[vP(t)]:{kind:`dropped`,reason:fP(n),definition:n.path}}}}function EP(e){return e.startsWith(`plugins.`)?e.slice(8).split(`.`)[0]:void 0}function DP(e,t){let n=new Set([...Object.keys(e.config.variables),...Object.keys(e.config.segments)].map(EP)),r=[...t,...e.dropped].filter(e=>e.plugin===void 0).map(e=>({definition:e.path,notice:fP(e)}));return t=>{let i=EP(t);if(i===void 0)return[];let a=e.config.variables[vP(i)];return a?.kind===`dropped`?[{definition:a.definition,notice:a.reason}]:n.has(i)?[]:r}}function OP(e,t){let n=qh(e.presets).flatMap(t=>[...dh(Xh(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,kP(e,t.map(e=>e.notice),n.filter(t=>t.name===e))])),a=t=>{let n=EP(t),r=n===void 0?void 0:e.variables[vP(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=>Sg(t,e.helpers).map(e=>e.name)),...c],e.actions),d=l(s.flatMap(t=>[...wg(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:`{{ .${vP(EP(e)??``)} }}`}]))},helpers:{...e.helpers,...Object.fromEntries(d.map(([e,t])=>[e,`{{ fail ${JSON.stringify(t.notice)} }}`]))}},reached:f}}function kP(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,AP(e,t)]));return{template:`{{ ${JSON.stringify(r)} }}`,bg:`error`,description:`stands in for a segment whose plugin did not load`,settings:a}}function AP(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 jP(e,t,{source:n,json:r},{checkout:i}){let a=[],o=()=>{throw new Jw(e,a)};if(!DT(r))return a.push({path:``,message:`a plugin definition must be an object, got ${OT(r)}`}),o();for(let e of Object.keys(r))pP.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: ${[...pP].join(`, `)}`});let s=PP(r.data,e,i,a);if(DT(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(up()),groups:[]},l=QA(c,`data`,{[vP(t)]:{kind:`file`,path:s,parse:{json:!0},cache:{watch_file:s},default:{}}});for(let[e,t]of Object.entries(r.segments))DT(t)&&`vars`in t&&a.push({path:`segments.${e}.vars`,message:`a plugin segment may not declare "vars": a plugin's only source is its data file`});let u={variables:l,segments:NP(t,Wj(c,r.segments,new Set)),helpers:NP(t,jN(c,r.helpers)),actions:NP(t,LM(c,r.actions))};for(let[e,t]of MP(u))try{JE.parse(t)}catch(t){a.push({path:e,message:`Template parse error in ${e}: ${t.message}`})}return a.length>0&&o(),u}function*MP(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 NP(e,t){return Object.fromEntries(Object.entries(t).map(([t,n])=>[`${_P}${e}.${t}`,n]))}function PP(e,t,n,r){if(typeof e==`string`&&e!==``)return uP(l.dirname(t),e);if(DT(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(DT(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 FP(e){let t=(process.env.XDG_DATA_DIRS||IP()).split(`:`).filter(e=>e!==``),n=process.env.XDG_DATA_HOME||l.join(h.homedir(),`.local`,`share`),r=[...[...t].reverse().map(e=>l.join(e,`cc-candybar`,`plugins`)),l.join(n,`cc-candybar`,`plugins`),...e===null?[]:[l.join(e,`.cc-candybar`,`plugins`)]];return r.filter((e,t)=>r.lastIndexOf(e)===t)}function IP(){let e=`/usr/local/share:/usr/share`;return process.platform===`darwin`?`${l.join(process.env.HOMEBREW_PREFIX||`/opt/homebrew`,`share`)}:${e}`:e}function LP(e){let t=FP(e),n=new Map,r=[],i=[];for(let e of t){let t=RP(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,mP));for(let n of t.files)i.push({path:l.join(e,n),plugin:void 0,reason:`a plugin is a folder holding its ${mP}: move this file to ${l.join(e,`<name>`,mP)}`})}return{roots:t,definitions:[...n.values()],unchecked:r,strays:i}}function RP(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()||zP(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 zP(e,t){if(!t.isSymbolicLink())return!1;try{return r.statSync(l.join(e,t.name)).isDirectory()}catch{return!0}}const BP=[`json5`,`json`];function VP(e){try{return r.statSync(e,{throwIfNoEntry:!1})===void 0?`absent`:`present`}catch(t){return{path:e,error:t.message}}}function HP(e,t,n){if(n!==void 0)return[n];let r=t??process.cwd();return[...new Set([...e?BP.map(t=>l.join(e,`.cc-candybar.${t}`)):[],...BP.map(e=>l.join(r,`.cc-candybar.${e}`)),...BP.map(e=>`${UP()}.${e}`)])]}function UP(){let e=process.env.XDG_CONFIG_HOME??l.join(h.homedir(),`.config`);return l.join(e,`cc-candybar`,`config`)}function WP(e,t,n){let i=[],a=new Map;for(let o of HP(e,t,n)){let e=VP(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:GP(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 GP(e){let t=UP();return e.find(e=>BP.some(n=>e===`${t}.${n}`))??`${t}.${BP[0]}`}function KP(e,t,n){let r=WP(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 qP(e){return JP(e).join(`
|
|
180
|
+
`)||null}function JP(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 YP(e,t){let n=HP(e,t).filter(e=>VP(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 XP(e,t,n,i){return e===null?{...aF,config:zA(aF.raw,t)}:QP(e,r.readFileSync(e,`utf-8`),t,n,i)}const ZP={projectDir:null,checkout:null,beneath:{dropped:[],rendering:new Map}};function QP(e,t,n,r,i){let a=cF(e,t,i,(t,a)=>{let o=SP(xP(t,e),r,{config:n,rendering:r.beneath.rendering},(t,n,r)=>rF(t,n,r,e,i)),s=DP(o,r.beneath.dropped);return{inherited:new Set([...Uj(o.config),...a.filter(e=>s(e).length>0)]),layer:{plugins:o,owning:s}}}),{plugins:o,owning:s}=a.layer,c=OP(zA(a.raw,o.config),s);return{source:t,raw:a.raw,warnings:[...a.warnings,...o.dropped.map(fP)],plugins:{loaded:o.loaded,dropped:o.dropped,reached:c.reached,rendering:o.rendering},config:c.config}}const $P=new WeakMap;function eF(e,t,n,r){let i=JSON.stringify([[...r??[]].sort(),e.map(e=>[e,tF(e)])]),a=$P.get(n)??new Map;$P.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=SP(e,t,{config:n,rendering:new Map},(e,t,n)=>rF(e,t,n,`<installed plugins>`,r));return a.set(o,{key:i,layer:c}),c}function tF(e){try{let t=r.statSync(e);return`${t.ino}:${t.size}:${t.mtimeMs}`}catch(e){return e.code??`unreadable`}}function nF(e,t,n,i,a=e=>r.readFileSync(e,`utf-8`),o){let s={projectDir:i.projectDir,checkout:i.cwd===null?null:AC(i.cwd)},c=LP(s.projectDir),l=eF(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=QP(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(fP));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:oF(XP(null,d,ZP),`<default>`,o)};try{return{layers:f,base:d,installed:_,config:oF(v,v.path,o)}}catch(e){for(let e of f.slice(0,-1))n.entered(e.path),oF(e,e.path,o);throw n.entered(v.path),e}}function rF(e,t,n,r,i){if(n){oF(iF(e),r,i);return}let a=CP(t),o=[],s={source:``,issues:o,allowedPalettes:new Set,groups:[]};if(aP(s,e,Eg(e),a),sP(s,e,a),o.length>0)throw new Jw(r,o)}function iF(e){return{config:e,raw:{root:e.root,presets:e.presets},source:``}}const aF={raw:{},source:``,warnings:[],plugins:{loaded:[],dropped:[],reached:new Set,rendering:new Map}};function oF({config:e,raw:t,source:n},r=`<config>`,i=new Set(up())){let a=[],o={source:n,issues:a,allowedPalettes:i,groups:[]};if(LN(o,e,t),sP(o,e),a.length>0)throw new Jw(r,a);let s=NM(e,a);if(a.length>0)throw new Jw(r,a);return _A(Lk(s))}function sF(e,t,n=new Set(up()),r=lF){return cF(e,t,n,()=>({inherited:r,layer:null})).raw}function cF(e,t,n,r){let i=uF(e,t),a=Zw(e,t),o=a===null?[]:[a],s=[],c={source:t,issues:s,allowedPalettes:n??new Set(up()),groups:[]};if(!DT(i))throw new Jw(e,[{path:``,message:`Config root must be an object, got ${OT(i)}`}],o);let{inherited:l,layer:u}=r(i.plugins===void 0?[]:pF({...c,issues:[]},i.plugins)??[],DT(i.segments)?Object.keys(i.segments):[]),d=dF(c,i,l);if(s.length>0)throw new Jw(e,s,o);return{raw:d,warnings:o,layer:u}}const lF=new Set;function uF(e,t){try{return ur.default.parse(t)}catch(t){let n=t;throw new Jw(e,[{path:``,message:`JSON5 syntax error: ${n.message}`,line:n.lineNumber,col:n.columnNumber}])}}function dF(e,t,n){for(let n of Object.keys(t))fF.has(n)||e.issues.push({path:n,message:`Unknown top-level key "${n}". Expected one of: ${[...fF].join(`, `)}`,line:X(e.source,[n])});let r={};return t.globals!==void 0&&(r.globals=EE(e,`globals`,t.globals)),t.variables!==void 0&&(r.variables=QA(e,`variables`,t.variables)),t.segments!==void 0&&(r.segments=Wj(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.
|
|
181
181
|
Replace: layout: [["seg1", "seg2"], ["seg3"]]
|
|
182
182
|
With: root: { v: [{ h: ["seg1", "seg2"] }, "seg3"] }
|
|
183
|
-
Single-row example: root: { h: ["seg1", "seg2"] }`,line:X(e.source,[`layout`])}),t.root!==void 0&&(r.root=cM(e,`root`,t.root)),t.actions!==void 0&&(r.actions=MM(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:X(e.source,[`looks`])}),t.styles!==void 0&&(r.styles=CN(e,t.styles)),t.themeDefaults!==void 0&&(r.themeDefaults=bE(e,t.themeDefaults)),t.presets!==void 0&&(r.presets=TN(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=wE(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=EN(e,t.helpers)),t.plugins!==void 0&&(r.plugins=cF(e,t.plugins)),gM(e,r),EM(e,r),nD(e,r),eT(e,r,Z,`the global settings menu`),r}const sF=new Set([`globals`,`variables`,`segments`,`layout`,`looks`,`root`,`actions`,`styles`,`themeDefaults`,`presets`,`editGlobals`,`helpers`,`plugins`]);function cF(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 ${CT(t)}`,line:X(e.source,[`plugins`])})}const lF={},uF=KD(`commands.`),dF=QD(`autocompact.`,e=>`{{ template "formatTokenCount" ${e} }}`),fF=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,pF=`{{ \$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 (${fF}) (basename .project_dir) (ne (${fF}) "") }}{{ end }}{{ end }}{{ action "copyDir" (abbreviatePath \$dir) }}`,mF=`{{ ${_D} }}`,hF={min:0,max:100,step:5},gF={warnAt:{label:`warning at %`,domain:hF,default:50},errorAt:{label:`error at %`,domain:{...hF,atLeast:`warnAt`},default:80}};function _F(e){return{budget:{label:`budget $`,domain:{min:0,max:1e4,step:5},default:e},warnAt:{label:`warning at %`,domain:hF,default:80}}}const vF={globals:{palette:`tokyo-night`},variables:{...uF.variables,...Rw,current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},version:{kind:`input`,path:`version`,default:``},home:{kind:`input`,path:`home`,default:``},"tmux.session":{kind:`input`,path:`tmux.session`,default:``},"host.name":{kind:`input`,path:`host.name`,default:``},"host.user":{kind:`input`,path:`host.user`,default:``},"host.ssh":{kind:`input`,path:`host.ssh`,type:`boolean`,default:!1},"git.repoName":{kind:`input`,path:`git.repoName`,default:``},"git.branch":{kind:`input`,path:`git.branch`,default:``},"git.sha":{kind:`input`,path:`git.sha`,default:``},"git.ahead":{kind:`input`,path:`git.ahead`,type:`number`,default:0},"git.behind":{kind:`input`,path:`git.behind`,type:`number`,default:0},"git.staged":{kind:`input`,path:`git.staged`,type:`number`,default:0},"git.unstaged":{kind:`input`,path:`git.unstaged`,type:`number`,default:0},"git.untracked":{kind:`input`,path:`git.untracked`,type:`number`,default:0},"git.conflicts":{kind:`input`,path:`git.conflicts`,type:`number`,default:0},"git.upstream":{kind:`input`,path:`git.upstream`,default:``},"git.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:pF},model:{group:`model-context`,description:`The active model's display name.`,template:`✱ {{ formatModelName .model.display_name }}`,when:`{{ ne .model.display_name "" }}`},sessionId:{group:`session-tools`,description:`The session id, truncated to 8 characters.`,template:`⌗{{ trunc 8 .session.id }}`,when:`{{ ne .session.id "" }}`},version:{group:`model-context`,description:`The Claude Code version reported in the hook payload.`,template:`◈ v{{ .version }}`,when:`{{ ne .version "" }}`},tmux:{group:`location`,description:`The tmux session name; hidden when not inside tmux.`,template:`tmux:{{ .tmux.session | default "none" }}`,when:`{{ ne .tmux.session "" }}`},host:{group:`location`,description:`user@host on a warning background, shown only over SSH.`,template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,when:`{{ .host.ssh }}`},gitaculous:{group:`git`,description:`The git state: a summary (branch, ahead/behind, S/U/? flags) that the arrow at its right edge expands to every fact — repo, in-progress operation, sha, upstream ±, stash count, time since the last commit.`,template:`{{ if eq .git.detail "expanded" }}{{ template "gitExpanded" . }}{{ else }}{{ template "gitCollapsed" . }}{{ end }} {{ action "gitDetail" "▸" "◂" }}`,fg:mF,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 ne .git.prUrl "" }}{{ link .git.prUrl (printf "⇆ #%v" .git.prNumber) }}{{ else }}⚠ PR{{ end }}`,when:`{{ or (ne .git.prUrl "") (ne .git.prError "") }}`},toolbar:{group:`session-tools`,description:`Quick actions: copy the session id, and open the project, transcript or repo.`,template:FD(``).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:uF.template,when:uF.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:_F(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:_F(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:gF,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:gF,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) ${Nf} }}`,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:dF.template,bg:dF.bg,when:dF.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:{...FD(``).actions,...uF.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`},...dF.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:lF,presets:{default:{},compact:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`context`}]},globals:{padding:0}},verbose:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}},zen:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`context`}]},globals:{endcaps:`plain`,style:`dim`}},git:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`activity`}]}]}},usage:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`session`},{kind:`segment`,name:`today`},{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}},dense:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`session`},{kind:`segment`,name:`activity`}]},globals:{padding:0}}},editGlobals:{endcaps:`plain`,default_separator:` | `},helpers:{gitPaint:`{{ fg (readableOn (color .color) (bgOf) ${Nf}) .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:$D(`.`),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 .)) }}`}},yF=new Set([vF.globals.palette,...Object.keys(vF.themeDefaults),...Object.values(vF.segments).map(e=>e.palette)].filter(e=>e!==void 0)),bF=PA(nF(`<default>`,JSON.stringify(vF),yF),vF),xF=qh(bF.presets);function SF(e){return xF.includes(e)}const CF=Object.freeze({});function wF(e,t){return e.kind===`decided`?t[e.name]??CF:CF}function TF(e,t){return{...e,...Object.fromEntries(gh.map(n=>[n,e[n]??t[n]]))}}function EF(e){if(!e)return``;try{return DF(s(e))}catch{return``}}function DF(e){return`${e.mtimeMs}:${e.size}`}const OF=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 kF(e){return((...t)=>OF.run(()=>e(...t)))}const AF=kF(oe),jF=kF(ae),MF=kF(se);async function NF(e,t){return OF.run(async()=>{let n=null;try{n=await E(e,`r`);let r=await n.stat(),{size:i,ino:a}=r,o=DF(r),s=t!==void 0&&(a!==t.ino||i<t.offset),c=s||t===void 0?0:t.offset;if(c>=i)return R({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 R({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`?z:B(`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 PF(e,t){return OF.run(async()=>{let n=null;try{n=await E(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 R({buf:o===a.length?a:a.subarray(0,o),fromStart:i===0})}catch(t){return t.code===`ENOENT`?z:B(`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 FF=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function IF(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 LF(e){let t=await RF(e);return t.kind===`ok`?R(Math.floor((t.value+36e5)/1e3)):t}async function RF(e){for(let t of[65536,1048576]){let n=await PF(e,t);if(n.kind!==`ok`)return n;let r=zF(n.value.buf,n.value.fromStart);if(r!=null)return R(r);if(n.value.fromStart)return z}return z}function zF(e,t){let n=e.toString(`utf8`).split(`
|
|
184
|
-
`),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!
|
|
183
|
+
Single-row example: root: { h: ["seg1", "seg2"] }`,line:X(e.source,[`layout`])}),t.root!==void 0&&(r.root=pM(e,`root`,t.root)),t.actions!==void 0&&(r.actions=LM(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:X(e.source,[`looks`])}),t.styles!==void 0&&(r.styles=ON(e,t.styles)),t.themeDefaults!==void 0&&(r.themeDefaults=TE(e,t.themeDefaults)),t.presets!==void 0&&(r.presets=AN(e,t.presets)),t.editGlobals!==void 0&&(r.editGlobals=kE(e,`editGlobals`,t.editGlobals)),t.helpers!==void 0&&(r.helpers=jN(e,t.helpers)),t.plugins!==void 0&&(r.plugins=pF(e,t.plugins)),xM(e,r),jM(e,r),sD(e,r),aT(e,r,Z,`the global settings menu`),r}const fF=new Set([`globals`,`variables`,`segments`,`layout`,`looks`,`root`,`actions`,`styles`,`themeDefaults`,`presets`,`editGlobals`,`helpers`,`plugins`]);function pF(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 ${OT(t)}`,line:X(e.source,[`plugins`])})}const mF={},hF=ZD(`commands.`),gF=rO(`autocompact.`,e=>`{{ template "formatTokenCount" ${e} }}`),_F=`trimPrefix "/" (trimPrefix .project_dir .current_dir)`,vF=`{{ \$dir := .current_dir }}{{ if and (ne .home "") (or (eq .home .current_dir) (hasPrefix (printf "%s/" .home) .current_dir)) }}{{ \$dir = printf "~%s" (trimPrefix .home .current_dir) }}{{ else }}{{ if or (eq .project_dir .current_dir) (hasPrefix (printf "%s/" .project_dir) .current_dir) }}{{ $dir = ternary (${_F}) (basename .project_dir) (ne (${_F}) "") }}{{ end }}{{ end }}{{ action "copyDir" (abbreviatePath \$dir) }}`,yF=`{{ ${SD} }}`,bF={min:0,max:100,step:5},xF={warnAt:{label:`warning at %`,domain:bF,default:50},errorAt:{label:`error at %`,domain:{...bF,atLeast:`warnAt`},default:80}};function SF(e){return{budget:{label:`budget $`,domain:{min:0,max:1e4,step:5},default:e},warnAt:{label:`warning at %`,domain:bF,default:80}}}const CF={globals:{palette:`tokyo-night`},variables:{...hF.variables,...Uw,current_dir:{kind:`input`,path:`workspace.current_dir`,default:`?`},"model.display_name":{kind:`input`,path:`model.display_name`,default:``},version:{kind:`input`,path:`version`,default:``},home:{kind:`input`,path:`home`,default:``},"tmux.session":{kind:`input`,path:`tmux.session`,default:``},"host.name":{kind:`input`,path:`host.name`,default:``},"host.user":{kind:`input`,path:`host.user`,default:``},"host.ssh":{kind:`input`,path:`host.ssh`,type:`boolean`,default:!1},"git.repoName":{kind:`input`,path:`git.repoName`,default:``},"git.branch":{kind:`input`,path:`git.branch`,default:``},"git.sha":{kind:`input`,path:`git.sha`,default:``},"git.ahead":{kind:`input`,path:`git.ahead`,type:`number`,default:0},"git.behind":{kind:`input`,path:`git.behind`,type:`number`,default:0},"git.staged":{kind:`input`,path:`git.staged`,type:`number`,default:0},"git.unstaged":{kind:`input`,path:`git.unstaged`,type:`number`,default:0},"git.untracked":{kind:`input`,path:`git.untracked`,type:`number`,default:0},"git.conflicts":{kind:`input`,path:`git.conflicts`,type:`number`,default:0},"git.upstream":{kind:`input`,path:`git.upstream`,default:``},"git.tracking":{kind:`input`,path:`git.tracking`,default:``},"git.stash":{kind:`input`,path:`git.stash`,type:`number`,default:0},"git.status":{kind:`input`,path:`git.status`,default:`clean`},"git.operation":{kind:`input`,path:`git.operation`,default:``},"git.timeSinceCommit":{kind:`input`,path:`git.timeSinceCommit`,type:`number`,default:0},"git.color.branch":{kind:`literal`,value:`primary`},"git.color.staged":{kind:`literal`,value:`success`},"git.color.unstaged":{kind:`literal`,value:`warning`},"git.color.untracked":{kind:`literal`,value:`accent`},"git.color.conflicts":{kind:`literal`,value:`error`},"git.color.ahead":{kind:`literal`,value:`success`},"git.color.behind":{kind:`literal`,value:`warning`},"git.color.stash":{kind:`literal`,value:`accent`},"git.detail":{kind:`state`,key:`git-detail`,default:`collapsed`},"git.prNumber":{kind:`input`,path:`git.prNumber`,type:`number`,default:0},"git.prState":{kind:`input`,path:`git.prState`,default:``},"git.prUrl":{kind:`input`,path:`git.prUrl`,default:``},"git.prError":{kind:`input`,path:`git.prError`,default:``},"cache.expiresAt":{kind:`input`,path:`cache.expiresAt`,type:`number`,default:0},"session.cost":{kind:`input`,path:`session.cost`,type:`number`,default:0},"session.tokens":{kind:`input`,path:`session.tokens`,type:`number`,default:0},"today.cost":{kind:`input`,path:`today.cost`,type:`number`,default:0},"today.tokens":{kind:`input`,path:`today.tokens`,type:`number`,default:0},"block.nativeUtilization":{kind:`input`,path:`block.nativeUtilization`,type:`number`,default:0},"block.resetsAt":{kind:`input`,path:`block.resetsAt`,type:`number`,default:0},"weekly.percentage":{kind:`input`,path:`weekly.percentage`,type:`number`,default:0},"weekly.resetsAt":{kind:`input`,path:`weekly.resetsAt`,type:`number`,default:0},"burn.costPerHour":{kind:`input`,path:`burn.costPerHour`,type:`number`,default:-1},"block.etaMinutes":{kind:`input`,path:`block.etaMinutes`,type:`number`,default:-1},"weekly.etaMinutes":{kind:`input`,path:`weekly.etaMinutes`,type:`number`,default:-1},"speed.input":{kind:`input`,path:`speed.input`,type:`number`,default:-1},"speed.output":{kind:`input`,path:`speed.output`,type:`number`,default:-1},"speed.total":{kind:`input`,path:`speed.total`,type:`number`,default:-1},"speed.history":{kind:`input`,path:`speed.history`,type:`string`,default:``},"context.totalTokens":{kind:`input`,path:`context.totalTokens`,type:`number`,default:0},"context.contextLeft":{kind:`input`,path:`context.contextLeft`,type:`number`,default:100},"memento.ceiling":{kind:`input`,path:`memento.ceiling`,type:`number`,default:-1},"memento.off":{kind:`input`,path:`memento.off`,type:`boolean`,default:!1},"memento.session":{kind:`input`,path:`memento.session`,default:``},"memento.error":{kind:`input`,path:`memento.error`,default:``},"metrics.lastResponseTime":{kind:`input`,path:`metrics.lastResponseTime`,type:`number`,default:0},"metrics.responseTime":{kind:`input`,path:`metrics.responseTime`,type:`number`,default:0},"metrics.sessionDuration":{kind:`input`,path:`metrics.sessionDuration`,type:`number`,default:0},"metrics.messageCount":{kind:`input`,path:`metrics.messageCount`,type:`number`,default:0},"metrics.linesAdded":{kind:`input`,path:`metrics.linesAdded`,type:`number`,default:0},"metrics.linesRemoved":{kind:`input`,path:`metrics.linesRemoved`,type:`number`,default:0},"activity.command":{kind:`input`,path:`activity.command`,type:`string`,default:``},"activity.todo.total":{kind:`input`,path:`activity.todo.total`,type:`number`,default:0},"activity.todo.completed":{kind:`input`,path:`activity.todo.completed`,type:`number`,default:0},"activity.todo.position":{kind:`input`,path:`activity.todo.position`,type:`number`,default:0},"activity.todo.active":{kind:`input`,path:`activity.todo.active`,type:`string`,default:``},"activity.tool.running":{kind:`input`,path:`activity.tool.running`,type:`string`,default:``},"activity.tool.done":{kind:`input`,path:`activity.tool.done`,type:`string`,default:``}},segments:{directory:{group:`location`,description:"The current directory, shortened fish-style — `~` under home, project-relative inside the project. Click to copy the full path.",template:vF},model:{group:`model-context`,description:`The active model's display name.`,template:`✱ {{ formatModelName .model.display_name }}`,when:`{{ ne .model.display_name "" }}`},sessionId:{group:`session-tools`,description:`The session id, truncated to 8 characters.`,template:`⌗{{ trunc 8 .session.id }}`,when:`{{ ne .session.id "" }}`},version:{group:`model-context`,description:`The Claude Code version reported in the hook payload.`,template:`◈ v{{ .version }}`,when:`{{ ne .version "" }}`},tmux:{group:`location`,description:`The tmux session name; hidden when not inside tmux.`,template:`tmux:{{ .tmux.session | default "none" }}`,when:`{{ ne .tmux.session "" }}`},host:{group:`location`,description:`user@host on a warning background, shown only over SSH.`,template:`⇄ {{ .host.user | default "?" }}@{{ .host.name | default "?" }}`,bg:`warning`,when:`{{ .host.ssh }}`},gitaculous:{group:`git`,description:`The git state: a summary (branch, ahead/behind, S/U/? flags) that the arrow at its right edge expands to every fact — repo, in-progress operation, sha, upstream ±, stash count, time since the last commit.`,template:`{{ if eq .git.detail "expanded" }}{{ template "gitExpanded" . }}{{ else }}{{ template "gitCollapsed" . }}{{ end }} {{ action "gitDetail" "▸" "◂" }}`,fg:yF,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:BD(``).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:hF.template,when:hF.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:SF(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:SF(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:xF,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:xF,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) ${Nf} }}`,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:gF.template,bg:gF.bg,when:gF.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:{...BD(``).actions,...hF.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`},...gF.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:mF,presets:{default:{},compact:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`context`}]},globals:{padding:0}},verbose:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}},zen:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`directory`},{kind:`segment`,name:`context`}]},globals:{endcaps:`plain`,style:`dim`}},git:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`gitPr`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`segment`,name:`context`},{kind:`segment`,name:`activity`}]}]}},usage:{root:{kind:`container`,direction:`vertical`,children:[{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`burnrate`}]},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`session`},{kind:`segment`,name:`today`},{kind:`segment`,name:`speed`},{kind:`segment`,name:`tokenSparkline`}]}]}},dense:{root:{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`host`},{kind:`segment`,name:`directory`},{kind:`segment`,name:`gitaculous`},{kind:`segment`,name:`model`},{kind:`container`,direction:`horizontal`,children:[{kind:`segment`,name:`context`},{kind:`segment`,name:`ceiling`},{kind:`segment`,name:`autocompact`}]},{kind:`segment`,name:`cacheTimer`},{kind:`segment`,name:`block`},{kind:`segment`,name:`weekly`},{kind:`segment`,name:`session`},{kind:`segment`,name:`activity`}]},globals:{padding:0}}},editGlobals:{endcaps:`plain`,default_separator:` | `},helpers:{gitPaint:`{{ fg (readableOn (color .color) (bgOf) ${Nf}) .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:iO(`.`),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 .)) }}`}},wF=new Set([CF.globals.palette,...Object.keys(CF.themeDefaults),...Object.values(CF.segments).map(e=>e.palette)].filter(e=>e!==void 0)),TF=zA(sF(`<default>`,JSON.stringify(CF),wF),CF),EF=qh(TF.presets);function DF(e){return EF.includes(e)}const OF=Object.freeze({});function kF(e,t){return e.kind===`decided`?t[e.name]??OF:OF}function AF(e,t){return{...e,...Object.fromEntries(gh.map(n=>[n,e[n]??t[n]]))}}function jF(e){if(!e)return``;try{return MF(s(e))}catch{return``}}function MF(e){return`${e.mtimeMs}:${e.size}`}const NF=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 PF(e){return((...t)=>NF.run(()=>e(...t)))}const FF=PF(se),IF=PF(oe),LF=PF(ce);async function RF(e,t){return NF.run(async()=>{let n=null;try{n=await T(e,`r`);let r=await n.stat(),{size:i,ino:a}=r,o=MF(r),s=t!==void 0&&(a!==t.ino||i<t.offset),c=s||t===void 0?0:t.offset;if(c>=i)return R({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 R({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`?z:B(`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 zF(e,t){return NF.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 R({buf:o===a.length?a:a.subarray(0,o),fromStart:i===0})}catch(t){return t.code===`ENOENT`?z:B(`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 BF=/"(?:cache_read_input_tokens|cache_creation_input_tokens)":[1-9]/;function VF(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 HF(e){let t=await UF(e);return t.kind===`ok`?R(Math.floor((t.value+36e5)/1e3)):t}async function UF(e){for(let t of[65536,1048576]){let n=await zF(e,t);if(n.kind!==`ok`)return n;let r=WF(n.value.buf,n.value.fromStart);if(r!=null)return R(r);if(n.value.fromStart)return z}return z}function WF(e,t){let n=e.toString(`utf8`).split(`
|
|
184
|
+
`),r=+!t;for(let e=n.length-1;e>=r;e--){let t=n[e];if(!t||!BF.test(t))continue;let r=VF(t);if(r!=null)return r}return null}function GF(e,t){return{...e,claudeConfigDir:ni(t.claudeConfigDir),env:t.mementoEnv}}const KF=l.join(`lib`,`ceiling_config.py`),qF=l.join(`skills`,`ceiling`,`bin`,`ceiling`);function JF(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 YF(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 B(`memento lookup: ${i}: ${e.message}`)}typeof e==`boolean`&&(n=e)}return R(n)}function XF(e,t){if(!r.existsSync(e))return z;let n;try{n=JF(JSON.parse(r.readFileSync(e,`utf8`)),e)}catch(e){return B(`memento lookup: ${e.message}`)}let i=n.find(e=>e.projectPath===t)??n.find(e=>e.scope===`user`);if(i===void 0)return z;let a=YF([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 z;let o=[KF,qF].filter(e=>!r.existsSync(l.join(i.installPath,e)));return o.length===0?R(i.installPath):B(`memento at ${i.installPath} has no ${o.join(` or `)} — upgrade the plugin`)}function ZF(e,t=process.env){let n=new Set([`CLAUDE_PROJECT_DIR`,`CLAUDE_CODE_SESSION_ID`,...e.env===void 0?[]:et]);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 QF(e){return e.stderr.trim()||e.error||`${e.reason}${e.exitCode===null?``:` (exit ${e.exitCode})`}`}function $F(e){let t;try{t=JSON.parse(e)}catch{return B(`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`)?R({ceiling:i,session:r}):B(`memento read: unexpected answer: ${e.trim()}`)}async function eI(e,t){let n=await O({bin:`python3`,args:[`-c`,`
|
|
185
185
|
import json, math, sys
|
|
186
186
|
sys.path.insert(0, sys.argv[1])
|
|
187
187
|
from ceiling_config import CONFIG_NAME, anchored, ceiling_in, in_force, session_directory
|
|
@@ -190,42 +190,42 @@ ceiling = in_force(directory, anchored(sys.argv[3]))
|
|
|
190
190
|
layer = ceiling_in(directory / CONFIG_NAME)
|
|
191
191
|
print(json.dumps({"ceiling": "off" if ceiling == math.inf else ceiling,
|
|
192
192
|
"session": layer.text if layer else None}))
|
|
193
|
-
`,l.join(e,`lib`),t.sessionId,t.cwd],env:
|
|
194
|
-
`).at(-1).trim();function
|
|
195
|
-
`),c=I([{verb:xn,args:[s]}]),l=t.kind===`running`?Mm(`[${i.busy}]`,c):Mm(`[${i.act}]`,I([{verb:Nn,args:[n.sessionId]}]));return[{severity:jm,message:s,lines:[[Mm(a,c),l,Mm(`[dismiss]`,I([{verb:gn,args:[n.sessionId,fL,r]}])),Mm(`[disable]`,I([{verb:Sn,args:[n.sessionId,pL,`false`]},{verb:gn,args:[n.sessionId,mL,`false`]}]))],...o.map(e=>[Mm(e,c)])]}]}function xL(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 SL(e){switch(e.kind){case`current`:return[`info`,`build: current ${gL(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${gL(e.source)}, running ${gL(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function CL(e){switch(e.kind){case`current`:return[`info`,`release: current ${fi(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${fi(e.latest)}, running ${fi(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${fi(e.installed)}, latest ${fi(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function wL(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const TL=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function EL(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=TL(e.stderr)??e.error??TL(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function DL(){let e=[DA(pL,[`false`]),aL(mL,[`false`]),aL(fL,[])];return()=>e.forEach(e=>e())}function OL(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=vL,d=null,f=wL(s),p=wL(s),m=()=>xL(c,l);function h(){let e=m(),t=e===null?null:hL(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:aL(fL,[t])})}function g(){c=Jm(t,Km),f(SL(c)),h()}async function _(){l=gi(wt,await hi(mi,a,i)),p(CL(l)),h()}return{arm(){DL(),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>bL(m(),u,e),act(){let e=m();if(e===null)throw new J(`apply-update: nothing newer is known to apply`);let t=_L(e);if(u.kind===`running`)throw new J(`apply-update: already ${t.busy}`);u=yL,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),O({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=vL,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=EL(n);u={kind:`failed`,identity:hL(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}var kL=class{static CACHE_DIR=Re();static USAGE_CACHE_DIR=l.join(this.CACHE_DIR,`usage`);static LOCKS_DIR=l.join(this.CACHE_DIR,`locks`);static isLocked(e){let t=l.join(this.LOCKS_DIR,e);if(!r.existsSync(t))return!1;try{let n=r.readFileSync(t,`utf-8`),i=parseInt(n.trim(),10);if(isNaN(i))return D(`Invalid PID in lock file ${e}, removing stale lock`),r.unlinkSync(t),!1;try{return process.kill(i,0),!0}catch(n){return n.code===`ESRCH`?(D(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(D(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return D(`Error reading lock file ${e}:`,t),!0}}static async acquireLock(e,t=5e3){await this.ensureCacheDirectories();let n=l.join(this.LOCKS_DIR,e),i=Date.now(),a=String(process.pid);for(;Date.now()-i<t;)try{return await r.promises.writeFile(n,a,{flag:`wx`}),D(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await de(50);else throw e}return D(`Failed to acquire lock for ${e} within ${t}ms`),!1}static async releaseLock(e){let t=l.join(this.LOCKS_DIR,e);try{await r.promises.unlink(t),D(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&D(`Error releasing lock for ${e}:`,t)}}static async ensureCacheDirectories(){try{await Promise.all([r.promises.mkdir(this.CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.USAGE_CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.LOCKS_DIR,{recursive:!0})])}catch(e){D(`Failed to create cache directories:`,e)}}static createProjectHash(e){return ie(`md5`).update(e).digest(`hex`).substring(0,8)}static async getUsageCache(e,t){await this.ensureCacheDirectories();let n=l.join(this.USAGE_CACHE_DIR,`${e}.json`),i=`${e}.usage.lock`;for(let a=0;a<3;a++){if(this.isLocked(i)){D(`Cache for ${e} is locked, waiting...`),await de(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(D(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(D(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return D(`No shared ${e} usage cache found`),null;D(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await de(75)}}return D(`Failed to read ${e} cache after 3 attempts.`),null}static deserializeDates(e){return Array.isArray(e)?e.map(e=>({...e,timestamp:new Date(e.timestamp)})):e}static async setUsageCache(e,t,n){let i=`${e}.usage.lock`;if(!await this.acquireLock(i)){D(`Could not acquire lock to set usage cache for ${e}`);return}try{await this.ensureCacheDirectories();let i=l.join(this.USAGE_CACHE_DIR,`${e}.json`),a=JSON.stringify({data:t,timestamp:n||Date.now()});await r.promises.writeFile(i,a,`utf-8`),D(`[CACHE-SET] ${e} disk cache stored`)}catch(t){D(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const AL={"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 jL=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 kL.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await kL.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new ee(this.GITHUB_PRICING_URL),n=ue({hostname:t.hostname,path:t.pathname,headers:{"User-Agent":`cc-candybar`,"Cache-Control":`no-cache`},timeout:5e3},t=>{if(t.statusCode!==200){D(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){D(`Response too large`),n.destroy(),e(null);return}r+=t}),t.on(`end`,()=>{try{let t=JSON.parse(r),n=t._meta,i={};for(let[e,n]of Object.entries(t))e!==`_meta`&&(i[e]=n);this.validatePricingData(i)?(D(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),D(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(D(`Invalid pricing data structure`),e(null))}catch(t){D(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{D(`Response error:`,t),e(null)})});n.on(`error`,t=>{D(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{D(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return D(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return D(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),D(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(D(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(AL).length} models`),this.executionCache=AL,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(AL).length} models`),AL)}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 ML=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function NL(e){if(typeof e==`string`)return ML.exec(e)?.[1]}function PL(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 FL(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 IL(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=PL(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`?NL(FL(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 LL(e){if(e!==void 0)return[e];let t=g();return[p(t,`.config`,`claude`),p(t,`.claude`)].filter(e=>a(e))}async function RL(e){let t=[];for(let n of e){let e=p(n,`projects`);if(a(e))try{let n=await AF(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 zL(e,t,n){let r=[],i=p(t,e,`subagents`);try{let t=(await AF(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 jF(t,`utf-8`)).split(`
|
|
196
|
-
`)[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
|
|
197
|
-
`))if(n.trim())try{let e=GL(JSON.parse(n));e&&t.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`);continue}return t}async function qL(e){return KL(await jF(e,`utf-8`))}async function JL(e,t){let n=await NF(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 R(c<0?{entries:[],cursor:{offset:i,stamp:a,ino:o},reset:s}:{entries:KL(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,stamp:a,ino:o},reset:s})}async function YL(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=fe({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=GL(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 XL=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 ZL(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 QL=new Map,$L={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},eR={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function tR(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function nR(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function rR(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function iR(e,t,n,r){let i=tR(new Date(nR())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:rR(),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 jL.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=tR(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...$L};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 aR(e){let t=0,n=0,r=rR(),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)??{...$L};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:eR,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 oR(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 sR=class{sessions=new Map;flight=new XL;seeded=new Map;seededDay=``;rescanIntervalMs;speedFlight=new XL;staleAgeMs;log;renderTally={hits:0,misses:0};sweeps=0;scans={seed:0,rescan:0};sweepTimer=null;constructor(e={}){this.log=e.logger??Nt,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:eR,i=t?.cost?.total_cost_usd??null;return R({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e,t,n){let r=tR(mw(n)),i=LL(t);try{await this.ensureSeeded(r,i,n*1e3)}catch(e){return B(`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={...$L},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??QL:QL;c||=a.has(r);let l=a.get(r)??$L;s.cost+=l.cost,s.input+=l.input,s.output+=l.output,s.cacheCreation+=l.cacheCreation,s.cacheRead+=l.cacheRead}return c?R({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}):z}async observeSpeed(e,t,n){if(!e)return z;let r=EF(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=ZL(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(),R({...s!==void 0&&{prev:s},cur:a,samples:[...o]})})}async ingest(e,t,n,r){if(!e)return z;let i=r??EF(t),a=this.see(e)?.record;if(a&&i!==``&&a.transcriptStamp===i)return n.hits++,R(a);if(!t)return a?R(a):z;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 B(`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),R(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 zL(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 JL(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 iR(r,l,s,c)),e===t&&(a=c.stamp)}return R({files:i,...aR(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=nR(),i=await RL(e),a=[];for(let e of i){let t;try{t=await AF(e)}catch{continue}for(let n of t){if(!n.endsWith(`.jsonl`))continue;let t=p(e,n),i;try{i=await MF(t)}catch{continue}i.mtimeMs<r||a.push({sessionId:n.slice(0,-6),path:t,stamp:DF(i)})}}let o={hits:0,misses:0};await oR(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()}},cR=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 WL(e);if(n.length===0)return D(`No entries in transcript`),z;let r=null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t&&t.message?.usage?.input_tokens&&t.isSidechain!==!0){r=t,D(`Context segment: Found most recent entry at ${t.timestamp.toISOString()}, stopping search`);break}}if(r?.message?.usage){let e=r.message.usage,n=(e.input_tokens||0)+(e.cache_read_input_tokens||0)+(e.cache_creation_input_tokens||0);return D(`Most recent main chain context: ${n} tokens (limit: ${t})`),R({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return D(`No main chain entries with usage data found`),z}catch(e){return B(`context transcript: ${e instanceof Error?e.message:String(e)}`)}}async getContextInfo(e){let t=this.calculateContextFromHookData(e);if(t)return R(t);let n=e.context_window?.context_window_size??2e5;return this.calculateContextTokensFromTranscript(e.transcript_path,n)}},lR=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=EF(t);if(n&&r!==``&&n.cursor.stamp===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await JL(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 uR={messageCount:0,nonPrompts:0,recent:[]},dR=new Set([`turn`,`interrupt`,`claude-code`]);function fR(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +(t.userEntry===`prompt`),nonPrompts:e.nonPrompts+ +!!dR.has(t.userEntry),recent:n.length>20?n.slice(-20):n}}function pR(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 mR=class{fold=new lR(uR,fR);async getMetricsInfo(e,t){if(D(`Getting metrics from hook data for session: ${e}`),!t.cost)return z;let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?B(`metrics (${e}): ${n.reason}`):R({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:pR(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 hR={command:null,todos:[],pending:[],done:[]};function gR(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 _R(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 vR(e,t){if(t.isSidechain)return e;let n=_R(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=gR(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 yR(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>gR(e,t.name),[]),done:e.done}}var bR=class{fold=new lR(hR,vR);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?B(`activity (${e}): ${n.reason}`):R(yR(n.value))}};function xR(e,t,n,r){return{bin:`tmux`,args:[`-S`,e.socket,...n],timeoutMs:2e3,category:t,stdinInput:r}}function SR(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 CR(e,t,n,r){return SR(Me(xR(e,t,n,r)),n)}async function wR(e,t,n){return SR(await O(xR(e,t,n)),n)}const TR=e=>`${e.socket}\n${e.pane}`;var ER=class{names=new Map;asking=new XL;constructor(e=Date.now){this.now=e}getSessionName(e){let t=TR(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 wR(t,`tmux`,[`display-message`,`-p`,`-t`,t.pane,`#S`]),r=n.kind===`ok`?n.stdout.trim():``,i=n.kind===`ok`?r?R(r):z:B(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 DR=e=>JSON.stringify([e.sessionId,e.projectDir,e.cwd,e.claudeConfigDir,e.env===void 0?null:et.map(t=>e.env?.[t]??null)]);var OR=class{readings=new Map;inFlight=new Map;constructor(e,t=Date.now){this.edge=e,this.now=t}getCeiling(e){let t=DR(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=DR(e);try{this.edge.move(n.value,e,t)}finally{this.readings.delete(r),this.inFlight.delete(r),this.fetch(r,e)}}};function kR(e){return{gitProvider:new cw({watchers:e.watchers,logger:e.logger}),usageStore:new sR({logger:e.logger}),contextProvider:new cR,metricsProvider:new mR,activityProvider:new bR,tmuxService:new ER,mementoProvider:new OR(ZF()),autoCompact:XD,log:e.logger}}function AR(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}function jR(e,t){let n=q.fromFragments(e);return n.end=``,n.overflow=`ignore`,t!==void 0&&!t.isNull&&(n.style=t),n}function MR(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:`…`}):e.cellLength<t&&e.align(n.justify,t)}function NR({lead:e,text:t,trail:n}){return[...e===void 0?[]:[e],t,...n===void 0?[]:[n]]}function PR({text:e,placement:t,lead:n,trail:r}){return{text:FR(e),placement:t,...n!==void 0&&{lead:FR(n)},...r!==void 0&&{trail:FR(r)}}}function FR(e){let t=e.blankCopy(e.plain);t.style=am(e.style).clearMetaAndLinks();for(let{start:n,end:r,style:i}of e.spans)t.stylize(am(i).clearMetaAndLinks(),n,r);return t}function IR(e){let t=NR(e);if(t.length===1)return e.text;let n=jR(t);return n.style=e.text.style,n}function LR(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=jR(e,a).pad(o),d=new q(` `.repeat(o)),f={placement:s,...c.length>0&&{lead:jR([d,...c],a)},...l.length>0&&{trail:jR([...l,d],a)}};if(n===`auto`)return[{text:u,...f}];let p={justify:r,truncate:i};return n===`fill`?[{text:u,fill:p,...f}]:(MR(u,n,p),[{text:u,...f}])}function RR(e,t){let n=()=>e.map(e=>({owner:IR(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=Dm(e.map(IR),t).split(`
|
|
198
|
-
`);if(i.length>1)return n();let a=Math.max(0,t.width-_m(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];MR(c,c.cellLength+a,n)}),n()}function zR(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=BR(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e){let e={frag:a,style:am(a.style)};if(e.style.link){i();let r=BR([e],t);r.plain.length>0&&n.push(r)}else r.push(e)}return i(),n}function BR(e,t){let n=t!==void 0&&!t.isNull?t:void 0,r=e.map(e=>VR(e.frag,n?n.add(e.style):e.style)),i=q.fromFragments(r);return i.end=``,i.overflow=`ignore`,r.length===1?i.style=r[0].style:n!==void 0&&(i.style=n),i}function VR(e,t){let n=e.copy();return n.style=t,n}function HR(e,t){if(e.look===void 0)throw Error(`${t} read the render's look before any render resolved one`);return e.look}function UR(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,WR(e,t,o,n,r,i));return i}function WR(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=rg(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=_a.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=rg(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=rg(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:qR(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:qR(e,n.open,t)};if(`reset`in n)return{kind:`reset`,key:n.reset};if(`doctor`in n)return n.doctor===`run`?{kind:`doctor-run`}:{kind:`doctor-fix`,check:n.check};if(`ceiling`in n)return{kind:`ceiling`,args:AM(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:qR(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 GR(e){return e.kind===`do`?GR(e.head):e}function KR(e){switch(GR(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`ceiling`:case`slash`:case`do`:return!1}}function qR(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function JR(e,t){return e.has(t)?Fg(e.read(t)):``}function YR(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function XR(e,t,n,r){let i=new q(e,{style:G.combine([r,new G({link:t,bold:n})])});return i.overflow=`ignore`,i.end=``,i}function ZR(e,t,n=!1){let r=new G({link:t,bold:n?!0:void 0}),i=new q(e.plain,{style:G.combine([am(e.style),r])});for(let t of e.spans)i.stylize(G.combine([am(t.style),r]),t.start,t.end);return i.overflow=`ignore`,i.end=``,i}function QR(e,t){return Math.max(e.members.indexOf(JR(t,e.stateVar)),0)}function $R(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=JR(r,e.stateVar);return{effects:[{verb:gn,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=JR(r,e.stateVar);return{effects:[{verb:gn,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=JR(r,e.stateVar);return{effects:[{verb:gn,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(QR(e,r)+1)%e.members.length];return{effects:[{verb:gn,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:N,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:_n,args:[YR(e.text,wC(r))]}],active:!1};case`open`:return{effects:[{verb:vn,args:[YR(e.target,wC(r))]}],active:!1};case`persist-literal`:{let t=JR(r,e.stateVar);return{effects:[{verb:Sn,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=JR(r,e.stateVar);return{effects:[{verb:Sn,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(QR(e,r)+1)%e.members.length];return{effects:[{verb:Sn,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Cn,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:Dn,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:kn,args:[i]}],active:!1};case`redo`:return{effects:[{verb:An,args:[i]}],active:!1};case`back`:return{effects:[{verb:jn,args:[i]}],active:!1};case`rewind`:return{effects:[{verb:Mn,args:[i]}],active:!1};case`save`:return{effects:[{verb:wn,args:[i]}],active:!1};case`preset-save`:return{effects:[{verb:P,args:[i]}],active:!1};case`theme-default-save`:return{effects:[{verb:Tn,args:[i]}],active:!1};case`preset-delete`:return{effects:[{verb:En,args:[i,YR(e.name,wC(r))]}],active:!1};case`doctor-run`:return{effects:[{verb:Pn,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Fn,args:[i,e.check]}],active:!1};case`ceiling`:return{effects:[{verb:Ln,args:[i,...e.args]}],active:!1};case`slash`:return{effects:[{verb:Rn,args:[i,e.line]}],active:!1};case`layout-op`:return{effects:[{verb:On,args:[i,e.key,pA(e.op)]}],active:!1};case`do`:{let a=$R(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>$R(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:On,args:[i,e.key,pA(r)]}],active:!1}}}}function ez(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:qn(`action "${e}"`,n,t.members.length,QR(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 tz(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}=ez(e,GR(r),t,i),s=JR(i,`session.id`),{effects:c,active:l}=$R(r,a.plain,o,i,s);return ZR(a,I(c),l)}function nz(e){return{action:{fn:(t,...n)=>tz(t,n,e),argTypes:[`string`,`liftable`],arity:{kind:`variadic`},returnType:`T`}}}function rz(e,t){return XR(`✕`,I([{verb:gn,args:[JR(e,`session.id`),t,L]}]),!1)}function iz(e,t,n){return new G({bgcolor:W.fromRgba(t),color:W.fromRgba(Pf(e,t,n))})}function az({tint:e,text:t}){return new G({bgcolor:W.fromRgba(e),color:W.fromRgba(t)})}function oz(e,t,n){return new G({color:W.fromRgba(Qs(wf(e,`warning`),t,Nf,n))})}function sz(e,t,n){return G.combine([iz(e,t,n),oz(e,t,n)])}function cz(e,t,n){return iz(e.palette,tp(e.palette,e.disclosure,[t],n),n)}function lz(e){let t=W.fromRgba(wf(e,`background`)),n=q.fromFragments(Xd.map(n=>new q(`▀`,{style:new G({color:W.fromRgba(wf(e,n)),bgcolor:t})})));return n.overflow=`ignore`,n.end=``,n}const uz=(e,t)=>{let n=typeof e==`string`?new q(e,{style:t}):e;return n.overflow=`ignore`,n.end=``,n},dz=e=>new G({bold:e});function fz(e,t,n,r,i,a){if(r===void 0)return(n,r,a,o)=>uz(a,G.combine([cz(e,{...n,distribution:t},i),dz(o)]));let o=iz(e.palette,a,i);return(e,t,i,a)=>pz(i,G.combine([o,dz(a)]),r(t,n))}const pz=(e,t,n)=>uz(q.fromFragments([uz(e,t),uz(` `,t),lz(n)]));function mz(e,t){return t===void 0?(e,t,n)=>uz(n):(n,r,i)=>pz(i,void 0,t(r,e))}function hz(e,t,n,r,i){let a=iz(e.palette,i,r);return(e,r,i,o)=>uz(q.fromFragments([uz(o?`[`:` `,a),lz(n(r,t)),uz(o?`]`:` `,a)]))}function gz(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=>_z(e.indices,8).map(t=>[{label:e.label,indices:t}])):[r]}function _z(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}function vz(e,t){return new q(e).truncate(t,{marker:`…`}).plain}function yz(e){return{current:null,drawnAt:e}}function bz(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 xz(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 Sz(e){return new q(e).cellLength}function Cz(e){return Math.max(1,e.width-e.chromeCols-2*e.padding)}function wz(e){return Math.max(1,Cz(e)-(Sz(`✕`)+2*e.padding+e.seamCols))}function Tz(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 Ez(e,t,n){let r=Sz(`←`)+1+Sz(`→`)+1,i=Tz(e,t,n);return(i.length>1?Tz(e,t,n+r):i).map(e=>[{label:``,indices:e}])}function Dz(e,t){let n=[];for(let t of e)n.length>0&&n.push(new q(` `)),n.push(t);let r=q.fromFragments(n);return r.overflow=t?`ignore`:void 0,r.end=``,r}function Oz(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 kz(e,t,n){let r=e.compiled.get(t),i=r&&GR(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 Az(e,t,n,r,i,a,o,s,c=[]){let l=a.compiled.get(e),u=a.store,d=JR(u,`session.id`),f=`stateVar`in t?JR(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`?wz(a):Cz(a):1/0,h=(r.kind===`led`?0:Sz(`✕`)+1)+c.reduce((e,t)=>e+Sz(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?Ez(_.map(e=>e.cellLength),m,h):gz(g.entries,g.groups,i),y=parseInt(JR(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=>I([{verb:gn,args:[d,n.key,String(e)]}]),w=r.kind===`led`?[]:[{verb:gn,args:[d,...r.writes.flatMap(([e,t])=>[e,t])]}],te=r.kind===`own`&&r.onPick?w:[],ne=e=>I([...$R(l,e,e,u,d).effects,...te]),re=(e,n)=>ZR(e,ne(t.options[n])),ie=r.kind===`led`?[]:[XR(`✕`,I(w),!1,s)];ie.push(...c.map(({glyph:e,option:r})=>XR(e,I([...$R(l,r,r,u,d).effects,{verb:gn,args:[d,n.key,String(b(t.options.indexOf(r)))]}]),!1))),S>0&&ie.push(XR(`←`,ee(S-1),!1));let T=S<v.length-1?[XR(`→`,ee(S+1),!1)]:[];if(g===void 0){let e=C.flatMap(e=>e.indices);return[Dz([...ie,...e.map(e=>re(_[e],e)),...T],i)]}let E=new G({bold:!0}),ae=v.length>1?` ${S+1}/${v.length}`:``,oe=C.length===1?[new q(`${C[0].label}${ae}`,{style:E})]:[],se=[Dz([...ie,...oe,...T],i)];for(let e of C){C.length>1&&se.push(Dz([new q(e.label,{style:E})],i));let n=Math.max(...e.indices.map(e=>Sz(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:Hd(a),s=` `.repeat(n-Sz(e)+2),c=o===void 0?e:`${e}${s}${o}`;se.push(Dz([re(p(r,vz(c,m)),r)],i))}}return se}function jz(e,t){return{picker:{fn:(n,r,i,a,o,...s)=>{vC(`picker "${n}"`,[`closeOnPick`,`paged`,`inBody`],s);let c=Oz(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=kz(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=xz(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]=Az(n,l,{key:c.key,stateVar:c.stateVar},o===!0?{kind:`led`}:{kind:`own`,writes:[[c.key,`-1`]],onPick:i===!0},a===!0,e,fz(u,ff(void 0),HR(e,`{{ picker }}`),l.paletteOf,t.drawnAt(),u.bg),oz(u.palette,u.bg,t.drawnAt()));return d},argTypes:[`string`,`string`,`bool`],arity:{kind:`variadic`},returnType:`T`}}}function Mz(e,t){let n=e.length,r=Math.max(e.indexOf(t),0);return e=>((r+e)%n+n)%n}function Nz(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 Pz(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=JR(o,`session.id`),{options:l}=t,u=l.length;if(u===0)return Dz([],!0);let d=JR(o,t.stateVar),f=Mz(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=I($R(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=ZR(g(e),h(e));return _.set(e,n),n},y=a===void 0?v(0):ZR(mz(HR(n,`{{ carousel }}`),t.paletteOf)({index:f(0),count:u},p(0),p(0),!1),I($R(n.compiled.get(a),p(0),void 0,o,c).effects)),b=Nz(e=>v(e).cellLength,u,Sz(`◀`)+1+y.cellLength+1+Sz(`▶`),wz(n),i),x=e=>Array.from({length:b},(t,n)=>v(e*(n+1)));return Dz([...x(-1).reverse(),XR(`◀`,h(-1),!1),y,XR(`▶`,h(1),!1),...x(1)],!0)}function Fz(e,t){return{carousel:{fn:(n,...r)=>{let[i,a,...o]=r;if(vC(`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&&KR(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=kz(e,n,`carousel`),l=xz(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 Pz(n,c,e,fz(l,ff(void 0),HR(e,`{{ carousel }}`),c.paletteOf,t.drawnAt(),l.bg),s,a)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function Iz(e,t,n){let r=kz(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 Lz(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 Rz(e,t,n,r){let i=Iz(e,t,n),a=r??JR(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,HR(e,`{{ ${n} }}`))}function zz(e,t,n){return{swatch:{fn:(t,...n)=>{let[r,...i]=n;if(vC(`swatch "${t}"`,[`option`],i),r!==void 0&&typeof r!=`string`)throw Error(`swatch "${t}": option must be text, got ${JSON.stringify(r)}`);return lz(Rz(e,t,`swatch`,r))},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`},swatches:{fn:(r,i)=>{let a=Iz(e,r,`swatches`),o=Oz(e,i,`set-int`,`an int action ({ set, int: true })`,`swatches`),s=xz(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]=Az(r,a,{key:o.key,stateVar:o.stateVar},{kind:`led`},!0,e,hz(s,HR(e,`{{ swatches }}`),a.paletteOf,c,s.bg),oz(s.palette,s.bg,c),u===0?[]:(()=>{let t=Mz(l,JR(e.store,a.stateVar));return[{glyph:`◀`,option:l[t(-1)]},{glyph:`?`,option:l[Lz(n().getTime(),u,t(0))]},{glyph:`▶`,option:l[t(1)]}]})());return d},argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`T`}}}const Bz=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function Vz(e,t,n,r){let i=Kf(e,n,r),a=(t,n)=>({text:t,colour:n,ink:Pf(e,n,r)});return[[sf(t).map((n,i)=>{let a=Tf(e,n);return{text:Bz[i%Bz.length],colour:a,ink:t.shade.text(e,n.hue,a,r)}})],[[a(`▾ open`,i.state),a(`menu`,i.plane)],[a(`warn`,wf(e,`warning`)),a(`error`,wf(e,`error`))]]]}function Hz(e,t){let n=e.flatMap((e,t)=>e.map(({text:e,colour:n,ink:r},i)=>({gap:t>0&&i===0?` `:``,cell:new q(` ${e} `,{style:az({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 q(e)),r.push(a)}return r}function Uz(e,t,n,r,i){let a=Vz(e,t,n,r).map(e=>Hz(e,i)),o=q.fromFragments(a.flatMap((e,t)=>t===0?e:[new q(`
|
|
199
|
-
`),...e]));return o.overflow=`ignore`,o.end=``,o}function
|
|
200
|
-
`),...e]));return o.overflow=`ignore`,o.end=``,o}function
|
|
193
|
+
`,l.join(e,`lib`),t.sessionId,t.cwd],env:ZF(t),timeoutMs:3e3,category:`memento.read`});return n.ok?$F(n.stdout):B(QF(n))}function tI(e,t,n){let r=Me({bin:l.join(e,qF),args:n.kind===`set`?[`set`,`session`,n.to]:[`clear`,`session`],env:ZF(t),timeoutMs:5e3,category:`memento.move`});if(!r.ok)throw Error(QF(r))}function nI(){return{locate:e=>XF(ii(e.claudeConfigDir),e.projectDir),read:eI,move:tI}}function rI(e,t,n){let r=n===void 0?``:`CLAUDE_CONFIG_DIR=${ar(n)} `,i=e.added_dirs.map(e=>` --add-dir ${ar(e)}`).join(``);return`cd ${ar(e.project_dir)} && ${r}claude --resume ${ar(t)}${i}`}function iI(e,t,n){let r=Jh(t(`preset`),e.globals.preset,e.presets),i=Zh(e,r),a=t(`edit.mode`)===`arrange`?e.editGlobals:{},o=rh(a.palette,t(`theme`),i.palette),s=AF(i,kF(o,e.themeDefaults));return{preset:r,presetCustomized:n(r),theme:o,style:Sp(a.style,t(`style`),s.style,e.styles),effect:Ap(a.effect,t(`effect`),s.effect),endcaps:Fp(a.endcaps,t(`endcaps`),s.endcaps),variation:Up(a.variation,t(`variation`),s.variation),shade:Kp(a.shade,t(`shade`),s.shade),separator:a.default_separator??s.default_separator,autoWrap:em(a.autoWrap,t(`autoWrap`),s.autoWrap),padding:rm(a.padding,t(`padding`),s.padding),charset:a.charset??s.charset??`unicode`,updateNotice:tm(a.updateNotice,t(`updateNotice`),s.updateNotice),transitions:nm(a.transitions,t(`transitions`),s.transitions),colorCompatibility:a.colorCompatibility??s.colorCompatibility??`truecolor`}}function aI(e,t){return{endcaps:e.endcaps,separator:e.separator,colorCompatibility:e.colorCompatibility,wrap:e.autoWrap,padding:e.padding,charset:e.charset,width:t}}function oI(e){return{theme:e.theme,style:e.style,effect:e.effect,preset:e.preset,variation:e.variation,shade:e.shade,transitions:e.transitions}}function sI(e){return{preset:{effective:e.preset,customized:e.presetCustomized,bundled:DF(e.preset)},endcaps:{effective:e.endcaps},variation:{effective:e.variation},shade:{effective:e.shade},charset:{effective:e.charset},colorCompatibility:{effective:e.colorCompatibility},autoWrap:{effective:e.autoWrap},padding:{effective:e.padding},updateNotice:{effective:e.updateNotice},transitions:{effective:e.transitions}}}const cI=10*1e3;function lI(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 uI(e,t){if(!(t<60))return e*3600/t}function dI(e,t,n,r){let i=r-t;if(i<50||i>cI)return;let a=n-e;if(!(a<=0))return a*1e3/i}function fI(e){let{prev:t,cur:n}=e;if(t===void 0)return;let r=dI(t.input,t.atMs,n.input,n.atMs),i=dI(t.output,t.atMs,n.output,n.atMs),a=dI(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 pI(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>cI)continue;let o=dI(r.total,r.atMs,i.total,i.atMs);n.push(o??0)}if(n.length!==0)return n.join(`,`)}function mI(e){let t=e.indexOf(`.`);return t<0?e:e.slice(0,t)}function hI(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`,()=>mI(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 gI(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=>vg(t,e.helpers).keys(),o=Zh(e,t);for(let e of hp){let t=o[e];if(gp(t))for(let e of a(t))r.push(e)}for(let n of dh(Xh(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 vI(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 _I(e){let t=new Map;return n=>{let r=t.get(n);if(r!==void 0)return r;let i=gI(e,n);return t.set(n,i),i}}function vI(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 yI(e,t){for(let n of e)if(n===t||n.startsWith(t+`.`))return!0;return!1}function bI(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},...(t(`git.prNumber`)||t(`git.prState`)||t(`git.prUrl`)||t(`git.prError`))&&{showPullRequest:!0}}}async function xI(e,t,n,r,i,a,o,{configPath:s,...c}){let l=e=>yI(i,e),u=yw(t).getTime(),d=o.tmux??null,f=(e,t,n)=>t?n().catch(t=>B(`${e}: ${String(t)}`)):Promise.resolve(z),[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,bI(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(z):n.tmuxService.getSessionName(d)),f(`cache`,l(`cache`),()=>HF(e.transcript_path)),f(`speed`,l(`speed`),()=>n.usageStore.observeSpeed(e.session_id,e.transcript_path,u)),f(`memento`,l(`memento`),()=>n.mementoProvider.getCeiling(GF({sessionId:e.session_id,projectDir:e.workspace?.project_dir??``,cwd:r??e.workspace?.current_dir??``},o))),f(`autocompact`,l(`autocompact`),()=>Promise.resolve(n.autoCompact(ri(ni(o.claudeConfigDir)))))]),ee=[],te=e=>{if(e.kind===`failed`){ee.push(e.reason);return}return e.kind===`ok`?e.value:void 0},ne=kI(p,u);ee.push(...ne.failures);let re=hI(o);ee.push(...re.failures);let ie=te(m),ae=te(h),w=te(g),T=te(_),oe=te(v),se=te(y),ce=te(b),le=wI(S);S.kind===`failed`&&ee.push(`memento: ${S.reason}`);let ue=SI(C,w?.maxTokens);C.kind===`failed`&&ee.push(`autocompact: ${C.reason}`);for(let e of ee)n.log(`warn`,`provider fetch failed: ${e}`);let E=e.rate_limits?.five_hour,de=e.rate_limits?.seven_day,fe=E?lI(E.used_percentage,E.resets_at,18e6,u):void 0,pe=de?lI(de.used_percentage,de.resets_at,6048e5,u):void 0,me=ie?.session.cost,he=T?.sessionDuration,ge=l(`burn`)&&me!=null&&he!=null?uI(me,he):void 0,_e=te(x),ve=_e===void 0?void 0:fI(_e),ye=_e===void 0?void 0:pI(_e),be=ve!==void 0||ye!==void 0?{...ve,...ye!==void 0&&{history:ye}}:void 0,xe=OI(process.env.HOME??process.env.USERPROFILE),D=e.workspace?{...e.workspace,current_dir:OI(e.workspace.current_dir)??``,project_dir:OI(e.workspace.project_dir)??``,added_dirs:(e.workspace.added_dirs??[]).map(e=>OI(e)??e)}:e.workspace,Se=ie===void 0?void 0:DI({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:DI({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:TI(oe);return{...e,...D!==void 0&&{workspace:D},...xe!==void 0&&{home:xe},...ne.git!==void 0&&{git:ne.git},...d!==null&&{tmux:{pane:d.pane,...se!==void 0&&{session:se}}},host:re.host,...sI(a),history:n.history(e.session_id),navigation:{back:n.navigation(e.session_id)},...c,...s!==null&&{configPath:s},resumeCommand:rI(D,e.session_id,o.claudeConfigDir),...Se!==void 0&&{session:Se},...Ce!==void 0&&{today:Ce},...ge!==void 0&&{burn:{costPerHour:ge}},...be!==void 0&&{speed:be},...l(`block`)&&E!==void 0&&{block:{nativeUtilization:E.used_percentage,resetsAt:E.resets_at,...fe!==void 0&&{etaMinutes:fe}}},...de!==void 0&&{weekly:{percentage:de.used_percentage,resetsAt:de.resets_at,...pe!==void 0&&{etaMinutes:pe}}},...ce!==void 0&&{cache:{expiresAt:ce}},...w!==void 0&&{context:{totalTokens:w.totalTokens,contextLeft:w.contextLeftPercentage}},...we!==void 0&&{metrics:we},...Te!==void 0&&{activity:Te},...le!==void 0&&{memento:le},...ue!==void 0&&{autocompact:ue}}}function SI(e,t){switch(e.kind){case`absent`:return;case`failed`:return{error:e.reason};case`ok`:return nO(e.value,t)}}const CI=e=>e.trim().split(`
|
|
194
|
+
`).at(-1).trim();function wI(e){switch(e.kind){case`absent`:return;case`failed`:return{error:CI(e.reason)};case`ok`:{let{ceiling:t,session:n}=e.value;return{ceiling:t===`off`?0:t,off:t===`off`,session:n??``}}}}function TI(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=EI(e.running),i=EI(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 EI(e){return e.length===0?void 0:e.map(e=>`${e.name}:${e.count}`).join(`,`)}function DI(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 OI(e){return e===void 0||e.length===0||l.sep!==`\\`?e:e.replace(/\\/g,`/`)}function kI(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`,jC(n.upstream,n.aheadBehind)),p=i(`repoName`,n.repoName),m=i(`repoUrl`,n.repoUrl),h=n.pullRequest===void 0?void 0:MC(n.pullRequest,n.head),g={};return h?.kind===`ok`?(g.prNumber=h.value.number,g.prState=h.value.state,g.prUrl=h.value.url):h?.kind===`failed`&&(r.push(`git.pr: ${h.reason}`),g.prError=h.reason),{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 AI={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?qp:Jp,autoWrap:e=>e.autoWrap?qp:Jp,padding:e=>String(e.padding),updateNotice:e=>e.updateNotice?qp:Jp},jI=Object.entries(pa),MI=new Set(ma.map(e=>e.sessionKey)),NI=()=>!1;function PI(e,t){return iI(e,e=>MI.has(e)?t(e):null,NI)}const FI=[`preset`,`theme`];function II(e,t,n){let r=new Set(FI.slice(0,n).map(e=>pa[e].sessionKey));return iI(e,e=>r.has(e)?t(e):null,NI)}function LI(e,t){let n=Array.from({length:FI.length+1},(n,r)=>II(e,t,r));return e=>{let t=FI.indexOf(e);return n[t===-1?FI.length:t]}}function RI(e,t,n,r){return e.flatMap(([e,i])=>{let a=AI[e](t);return a===null||a===AI[e](n(e))?[]:[{...i,value:a,target:r(i)}]})}function zI(e,t,n){return AI[n](PI(e,t))}function BI(e,t){let n=PI(e,t);return RI(jI,n,LI(e,t),t=>VI(e,n.preset,t.configKey))}function VI(e,t,n){return n in(Yh(e.presets,t).globals??{})?HE(t,n):n}function HI(e,t,n){let r=Jh(t(pa.preset.sessionKey),e.globals.preset,e.presets),i=UE(n);return{key:i?.scope===`globals`?VI(e,r,i.field):n,globals:Zh(e,r)}}function UI(e,t){let{preset:n}=PI(e,t);return KI(e,n).flatMap(({id:e,setting:r,key:i,decl:a,saved:o})=>{let s=t(i),c=s===null?void 0:kh(a,s);return c===void 0||Oh(c)===Oh(o)?[]:[{preset:n,id:e,setting:r,key:i,value:c}]})}function WI(e,t,n){let r=new Map(n.map(e=>[e.key,e.value]));return qh(e.presets).flatMap(n=>{let i=KI(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 Eh(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:kh(e.decl,n);return[e.setting,i??e.saved]}))).map(({message:t})=>`placement "${e}": ${t}`)})})}const GI=new WeakMap;function KI(e,t){let n=GI.get(e)??new Map;GI.set(e,n);let r=n.get(t);if(r!==void 0)return r;let i=[...dh(Xh(e,t).node)].flatMap(t=>t.kind!==`segment`||t.drafts===void 0?[]:Object.entries(t.drafts).map(([n,{id:r,key:i}])=>{let a=wh(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 qI(e,t){let n=PI(e,t);return{from:n.preset,globals:Yh(e.presets,n.preset).globals??{},picks:RI(jI.filter(([e])=>e!==`preset`),n,LI(e,t),e=>e.configKey),placements:UI(e,t)}}function JI(e,t){return iI({...e,globals:{palette:t},presets:{}},()=>null,NI)}function YI(e,t){let n=PI(e,t),r=AI.theme(n);if(r===null)return{kind:`rule`};let i=JI(e,r),a=Zh(e,n.preset),o=Object.fromEntries(gh.map(e=>[e,AI[e](a[e]===void 0?n:i)]));return{kind:`look`,theme:r,look:o,differs:gh.some(e=>o[e]!==AI[e](i))}}function XI(e){return{sessionKeys:ma.filter(t=>t.configKey===e).map(e=>e.sessionKey),fileKeys:[e,...xE(e)?EF.map(t=>HE(t,e)):[],...VE(e)?up().map(t=>BE(t,e)):[]]}}function ZI(e){return new Set(ma.map(e=>e.configKey).filter(t=>XI(t).fileKeys.some(t=>eL(e,$I(t)))))}function QI(e,t,n){let r=BI(e,n),i=new Set(r.map(e=>e.configKey)),a=ya(e=>i.has(pa[e].configKey)||t.has(pa[e].configKey)),o=YI(e,n);return{unsaved:r.length+UI(e,n).length,resettable:a,themeDefault:o.kind===`look`&&o.differs?{differs:!0,theme:o.theme}:{differs:!1}}}function $I(e){let t=UE(e);if(t===null||t.scope===`preset-root`)throw Error(`reset layer "${e}" is not a value path`);return WE(t)}function eL(e,t){let[n,...r]=t;return n===void 0?e!==void 0:typeof e==`object`&&!!e&&eL(e[n],r)}const tL=up(),nL=new Set(tL),rL=new Set(jp),iL=e=>e?nL.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown theme "${e}" (have: ${tL.join(`, `)})`}:{ok:!1,reason:`theme name is required`},aL=e=>e?rL.has(e)?{ok:!0,value:e}:{ok:!1,reason:`unknown endcaps "${e}" (have: ${jp.join(`, `)})`}:{ok:!1,reason:`endcaps name is required`},oL=new Set([`1`,`true`]),sL=new Set([`0`,`false`]),cL={endcaps:aL,theme:iL,"toolbar-expanded":e=>oL.has(e)?{ok:!0,value:`1`}:sL.has(e)?{ok:!0,value:``}:{ok:!1,reason:`expected boolean-ish (1, 0, true, false), got "${e}"`}},lL=AA(cL,`state`,gL);function uL(e,t){return lL.register(e,t)}function dL(e){return lL.gateFor(e)}function fL(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:rg(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 pL(e){return e.filter(e=>e.spec.kind!==`allow-list`||!Object.hasOwn(cL,e.key))}function mL(e,t,n){let r=ba.get(n);if(r!==void 0)return zI(e,t,r);let i=Object.values(e.variables).find(e=>e.kind===`state`&&e.key===n);return i?.kind===`state`?i.default??null:null}function hL(e){let t=$k(e);return pL(Object.values(e.actions).flatMap(e=>fL(e,t)))}function gL(e){return OA(hL(e))}const _L=`update.dismissed`,vL=`updateNotice`,yL=pa.updateNotice.sessionKey;function bL(e){return e.kind===`source`?e.newer.digest:fi(e.newer)}const xL=e=>`${e.version} [${Wm(e.digest)}]`;function SL(e){switch(e.kind){case`source`:return{headline:`Newer source`,newer:xL(e.newer),running:xL(e.running),act:`rebuild`,busy:`rebuilding…`,command:{bin:`pnpm`,args:[`build`],cwd:e.root}};case`release`:return{headline:`Newer release`,newer:fi(e.newer),running:fi(e.running),act:`upgrade`,busy:`upgrading…`,command:{bin:`pnpm`,args:[`dlx`,`${mi}@${fi(e.newer)}`,`install`]}}}}const CL={kind:`idle`},wL={kind:`running`};function TL(e,t,n){if(e===null)return[];let r=bL(e);if(!n.enabled||n.dismissed===r)return[];let i=SL(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(`
|
|
195
|
+
`),c=I([{verb:xn,args:[s]}]),l=t.kind===`running`?Mm(`[${i.busy}]`,c):Mm(`[${i.act}]`,I([{verb:Nn,args:[n.sessionId]}]));return[{severity:jm,message:s,lines:[[Mm(a,c),l,Mm(`[dismiss]`,I([{verb:gn,args:[n.sessionId,_L,r]}])),Mm(`[disable]`,I([{verb:Sn,args:[n.sessionId,vL,`false`]},{verb:gn,args:[n.sessionId,yL,`false`]}]))],...o.map(e=>[Mm(e,c)])]}]}function EL(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 DL(e){switch(e.kind){case`current`:return[`info`,`build: current ${xL(e.stamp)}`];case`stale`:return[`info`,`build: stale — source ${xL(e.source)}, running ${xL(e.running)}`];case`not-source-checkout`:return[`info`,`build: not a source checkout`];case`unchecked`:return[`warn`,`build: unchecked: ${e.reason}`]}}function OL(e){switch(e.kind){case`current`:return[`info`,`release: current ${fi(e.installed)}`];case`stale`:return[`info`,`release: stale — latest ${fi(e.latest)}, running ${fi(e.installed)}`];case`ahead`:return[`info`,`release: ahead — running ${fi(e.installed)}, latest ${fi(e.latest)}`];case`unchecked`:return[`warn`,`release: unchecked: ${e.reason}`]}}function kL(e){let t=null;return([n,r])=>{r!==t&&(t=r,e(n,r))}}const AL=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``).at(-1);function jL(e){let t=e.exitCode===null?``:` (exit ${e.exitCode})`,n=AL(e.stderr)??e.error??AL(e.stdout)??`no output`;return`${e.reason}${t}: ${n}`}function ML(){let e=[MA(vL,[`false`]),uL(yL,[`false`]),uL(_L,[])];return()=>e.forEach(e=>e())}function NL(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=CL,d=null,f=kL(s),p=kL(s),m=()=>EL(c,l);function h(){let e=m(),t=e===null?null:bL(e);(d===null?null:d.identity)!==t&&(d?.dispose(),d=t===null?null:{identity:t,dispose:uL(_L,[t])})}function g(){c=Jm(t,Km),f(DL(c)),h()}async function _(){l=gi(wt,await hi(mi,a,i)),p(OL(l)),h()}return{arm(){ML(),g(),setInterval(g,n).unref(),c.kind===`not-source-checkout`&&(_(),setInterval(()=>void _(),r).unref())},notice:e=>TL(m(),u,e),act(){let e=m();if(e===null)throw new J(`apply-update: nothing newer is known to apply`);let t=SL(e);if(u.kind===`running`)throw new J(`apply-update: already ${t.busy}`);u=wL,s(`info`,`apply-update: ${t.act} — ${t.command.bin} ${t.command.args?.join(` `)??``}`),O({...t.command,category:`update.apply`,timeoutMs:6e5}).then(n=>{if(n.ok){u=CL,s(`info`,`apply-update: ${t.act} succeeded`),g(),o();return}let r=jL(n);u={kind:`failed`,identity:bL(e),reason:r},s(`error`,`apply-update: ${t.act} failed: ${r}`)})}}}var PL=class{static CACHE_DIR=Re();static USAGE_CACHE_DIR=l.join(this.CACHE_DIR,`usage`);static LOCKS_DIR=l.join(this.CACHE_DIR,`locks`);static isLocked(e){let t=l.join(this.LOCKS_DIR,e);if(!r.existsSync(t))return!1;try{let n=r.readFileSync(t,`utf-8`),i=parseInt(n.trim(),10);if(isNaN(i))return D(`Invalid PID in lock file ${e}, removing stale lock`),r.unlinkSync(t),!1;try{return process.kill(i,0),!0}catch(n){return n.code===`ESRCH`?(D(`Removing stale lock file ${e} for dead process ${i}`),r.unlinkSync(t),!1):(D(`Error checking process ${i} for lock ${e}:`,n),!0)}}catch(t){return D(`Error reading lock file ${e}:`,t),!0}}static async acquireLock(e,t=5e3){await this.ensureCacheDirectories();let n=l.join(this.LOCKS_DIR,e),i=Date.now(),a=String(process.pid);for(;Date.now()-i<t;)try{return await r.promises.writeFile(n,a,{flag:`wx`}),D(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await de(50);else throw e}return D(`Failed to acquire lock for ${e} within ${t}ms`),!1}static async releaseLock(e){let t=l.join(this.LOCKS_DIR,e);try{await r.promises.unlink(t),D(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&D(`Error releasing lock for ${e}:`,t)}}static async ensureCacheDirectories(){try{await Promise.all([r.promises.mkdir(this.CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.USAGE_CACHE_DIR,{recursive:!0}),r.promises.mkdir(this.LOCKS_DIR,{recursive:!0})])}catch(e){D(`Failed to create cache directories:`,e)}}static createProjectHash(e){return ae(`md5`).update(e).digest(`hex`).substring(0,8)}static async getUsageCache(e,t){await this.ensureCacheDirectories();let n=l.join(this.USAGE_CACHE_DIR,`${e}.json`),i=`${e}.usage.lock`;for(let a=0;a<3;a++){if(this.isLocked(i)){D(`Cache for ${e} is locked, waiting...`),await de(75);continue}try{let i=await r.promises.readFile(n,`utf-8`),a=JSON.parse(i);return!t||a.timestamp>=t?(D(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(a.data)):(D(`${e} cache outdated: cache=${a.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return D(`No shared ${e} usage cache found`),null;D(`Attempt ${a+1} failed to read ${e} cache: ${t.message}. Retrying...`),await de(75)}}return D(`Failed to read ${e} cache after 3 attempts.`),null}static deserializeDates(e){return Array.isArray(e)?e.map(e=>({...e,timestamp:new Date(e.timestamp)})):e}static async setUsageCache(e,t,n){let i=`${e}.usage.lock`;if(!await this.acquireLock(i)){D(`Could not acquire lock to set usage cache for ${e}`);return}try{await this.ensureCacheDirectories();let i=l.join(this.USAGE_CACHE_DIR,`${e}.json`),a=JSON.stringify({data:t,timestamp:n||Date.now()});await r.promises.writeFile(i,a,`utf-8`),D(`[CACHE-SET] ${e} disk cache stored`)}catch(t){D(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(i)}}};const FL={"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 IL=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 PL.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await PL.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new ee(this.GITHUB_PRICING_URL),n=E({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(FL).length} models`),this.executionCache=FL,D(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(FL).length} models`),FL)}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 LL=/<command-name>\s*([^<\s][^<]*?)\s*<\/command-name>/;function RL(e){if(typeof e==`string`)return LL.exec(e)?.[1]}function zL(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 BL(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 VL(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=zL(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`?RL(BL(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 HL(e){if(e!==void 0)return[e];let t=g();return[p(t,`.config`,`claude`),p(t,`.claude`)].filter(e=>a(e))}async function UL(e){let t=[];for(let n of e){let e=p(n,`projects`);if(a(e))try{let n=await FF(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 WL(e,t,n){let r=[],i=p(t,e,`subagents`);try{let t=(await FF(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 IF(t,`utf-8`)).split(`
|
|
196
|
+
`)[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 GL(e){let t=e.message;if((e.type||t?.role||t?.type)!==`user`)return;if(qL(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=BL(t?.content).trimStart();return r.startsWith(`[Request interrupted by user`)?`interrupt`:e.isMeta===!0||e.isCompactSummary===!0||KL.test(r)?`claude-code`:`prompt`}const KL=/^<(?:command-name|local-command-std(?:out|err)|bash-(?:input|stdout|stderr))>/;function qL(e){let t=e?.content;return Array.isArray(t)&&typeof t[0]==`object`&&t[0]?t[0].type:void 0}const JL=new Map;async function YL(e){try{let t=await LF(e),n=t.size,r=JL.get(e);if(r&&r.mtime===t.mtimeMs&&r.size===n)return D(`[parse-cache] hit ${e}`),JL.delete(e),JL.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 eR(e)):i=await QL(e),D(`Parsed ${i.length} entries from ${e}`),n>5242880?i:(JL.delete(e),JL.size>=16&&JL.delete(JL.keys().next().value),JL.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 XL(e){if(!e.timestamp)return null;let t=e.message,n=t?.usage,r=GL(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:VL(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 ZL(e){let t=[];for(let n of e.split(`
|
|
197
|
+
`))if(n.trim())try{let e=XL(JSON.parse(n));e&&t.push(e)}catch(e){D(`Failed to parse JSONL line: ${e}`);continue}return t}async function QL(e){return ZL(await IF(e,`utf-8`))}async function $L(e,t){let n=await RF(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 R(c<0?{entries:[],cursor:{offset:i,stamp:a,ino:o},reset:s}:{entries:ZL(r.subarray(0,c+1).toString(`utf-8`)),cursor:{offset:i+c+1,stamp:a,ino:o},reset:s})}async function eR(e){return new Promise((t,n)=>{let r=[],a=i(e,{encoding:`utf8`}),o=fe({input:a,crlfDelay:1/0});o.on(`line`,e=>{let t=e.trim();if(t)try{let e=XL(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 tR=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 nR(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 rR=new Map,iR={cost:0,input:0,output:0,cacheCreation:0,cacheRead:0},aR={cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};function oR(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function sR(){let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()-1),e.getTime()}function cR(){return{input:0,output:0,cacheCreation:0,cacheRead:0}}async function lR(e,t,n,r){let i=oR(new Date(sR())),a=e&&!t?e:void 0,o=a?.entries??0,s=a?.cost??0,c=a?{...a.breakdown}:cR(),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 IL.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=oR(new Date(e.timestamp));if(r<i)continue;let a=l.get(r)??{...iR};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 uR(e){let t=0,n=0,r=cR(),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)??{...iR};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:aR,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 dR(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 fR=class{sessions=new Map;flight=new tR;seeded=new Map;seededDay=``;rescanIntervalMs;speedFlight=new tR;staleAgeMs;log;renderTally={hits:0,misses:0};sweeps=0;scans={seed:0,rescan:0};sweepTimer=null;constructor(e={}){this.log=e.logger??Nt,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:aR,i=t?.cost?.total_cost_usd??null;return R({session:{...r,cost:i??r.cost,officialCost:i}})}async getTodayInfo(e,t,n){let r=oR(yw(n)),i=HL(t);try{await this.ensureSeeded(r,i,n*1e3)}catch(e){return B(`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={...iR},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??rR:rR;c||=a.has(r);let l=a.get(r)??iR;s.cost+=l.cost,s.input+=l.input,s.output+=l.output,s.cacheCreation+=l.cacheCreation,s.cacheRead+=l.cacheRead}return c?R({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}):z}async observeSpeed(e,t,n){if(!e)return z;let r=jF(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=nR(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(),R({...s!==void 0&&{prev:s},cur:a,samples:[...o]})})}async ingest(e,t,n,r){if(!e)return z;let i=r??jF(t),a=this.see(e)?.record;if(a&&i!==``&&a.transcriptStamp===i)return n.hits++,R(a);if(!t)return a?R(a):z;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 B(`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),R(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 WL(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 $L(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 lR(r,l,s,c)),e===t&&(a=c.stamp)}return R({files:i,...uR(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=sR(),i=await UL(e),a=[];for(let e of i){let t;try{t=await FF(e)}catch{continue}for(let n of t){if(!n.endsWith(`.jsonl`))continue;let t=p(e,n),i;try{i=await LF(t)}catch{continue}i.mtimeMs<r||a.push({sessionId:n.slice(0,-6),path:t,stamp:MF(i)})}}let o={hits:0,misses:0};await dR(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()}},pR=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 YL(e);if(n.length===0)return D(`No entries in transcript`),z;let r=null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t&&t.message?.usage?.input_tokens&&t.isSidechain!==!0){r=t,D(`Context segment: Found most recent entry at ${t.timestamp.toISOString()}, stopping search`);break}}if(r?.message?.usage){let e=r.message.usage,n=(e.input_tokens||0)+(e.cache_read_input_tokens||0)+(e.cache_creation_input_tokens||0);return D(`Most recent main chain context: ${n} tokens (limit: ${t})`),R({totalTokens:n,maxTokens:t,...this.ratioPercentages(n,t)})}return D(`No main chain entries with usage data found`),z}catch(e){return B(`context transcript: ${e instanceof Error?e.message:String(e)}`)}}async getContextInfo(e){let t=this.calculateContextFromHookData(e);if(t)return R(t);let n=e.context_window?.context_window_size??2e5;return this.calculateContextTokensFromTranscript(e.transcript_path,n)}},mR=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=jF(t);if(n&&r!==``&&n.cursor.stamp===r)return this.touch(e,n),{kind:`ok`,value:n.value};let i=await $L(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 hR={messageCount:0,nonPrompts:0,recent:[]},gR=new Set([`turn`,`interrupt`,`claude-code`]);function _R(e,t){if(t.isSidechain)return e;let n=[...e.recent,t];return{messageCount:e.messageCount+ +(t.userEntry===`prompt`),nonPrompts:e.nonPrompts+ +!!gR.has(t.userEntry),recent:n.length>20?n.slice(-20):n}}function vR(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 yR=class{fold=new mR(hR,_R);async getMetricsInfo(e,t){if(D(`Getting metrics from hook data for session: ${e}`),!t.cost)return z;let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?B(`metrics (${e}): ${n.reason}`):R({responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:vR(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 bR={command:null,todos:[],pending:[],done:[]};function xR(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 SR(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 CR(e,t){if(t.isSidechain)return e;let n=SR(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=xR(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 wR(e){return{command:e.command,todos:e.todos,running:e.pending.reduce((e,t)=>xR(e,t.name),[]),done:e.done}}var TR=class{fold=new mR(bR,CR);async getActivityInfo(e,t){let n=await this.fold.read(e,t.transcript_path);return n.kind===`failed`?B(`activity (${e}): ${n.reason}`):R(wR(n.value))}};function ER(e,t,n,r){return{bin:`tmux`,args:[`-S`,e.socket,...n],timeoutMs:2e3,category:t,stdinInput:r}}function DR(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 OR(e,t,n,r){return DR(Me(ER(e,t,n,r)),n)}async function kR(e,t,n){return DR(await O(ER(e,t,n)),n)}const AR=e=>`${e.socket}\n${e.pane}`;var jR=class{names=new Map;asking=new tR;constructor(e=Date.now){this.now=e}getSessionName(e){let t=AR(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 kR(t,`tmux`,[`display-message`,`-p`,`-t`,t.pane,`#S`]),r=n.kind===`ok`?n.stdout.trim():``,i=n.kind===`ok`?r?R(r):z:B(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 MR=e=>JSON.stringify([e.sessionId,e.projectDir,e.cwd,e.claudeConfigDir,e.env===void 0?null:et.map(t=>e.env?.[t]??null)]);var NR=class{readings=new Map;inFlight=new Map;constructor(e,t=Date.now){this.edge=e,this.now=t}getCeiling(e){let t=MR(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=MR(e);try{this.edge.move(n.value,e,t)}finally{this.readings.delete(r),this.inFlight.delete(r),this.fetch(r,e)}}};function PR(e){return{gitProvider:new pw({watchers:e.watchers,logger:e.logger}),usageStore:new fR({logger:e.logger}),contextProvider:new pR,metricsProvider:new yR,activityProvider:new TR,tmuxService:new jR,mementoProvider:new NR(nI()),autoCompact:tO,log:e.logger}}function FR(e,t){return e===void 0?!0:e.evaluate(t).map(e=>e.plain).join(``)!==`false`}const IR={kind:`hidden`},LR={kind:`shown`};function RR(e,t){try{return FR(e,t)?LR:IR}catch(e){return{kind:`failed`,message:e instanceof Error?e.message:String(e)}}}function zR(e,t){let n=q.fromFragments(e);return n.end=``,n.overflow=`ignore`,t!==void 0&&!t.isNull&&(n.style=t),n}function BR(e,t,n){e.cellLength>t?e.truncate(t,{mode:n.truncate,marker:`…`}):e.cellLength<t&&e.align(n.justify,t)}function VR({lead:e,text:t,trail:n}){return[...e===void 0?[]:[e],t,...n===void 0?[]:[n]]}function HR({text:e,placement:t,lead:n,trail:r}){return{text:UR(e),placement:t,...n!==void 0&&{lead:UR(n)},...r!==void 0&&{trail:UR(r)}}}function UR(e){let t=e.blankCopy(e.plain);t.style=am(e.style).clearMetaAndLinks();for(let{start:n,end:r,style:i}of e.spans)t.stylize(am(i).clearMetaAndLinks(),n,r);return t}function WR(e){let t=VR(e);if(t.length===1)return e.text;let n=zR(t);return n.style=e.text.style,n}function GR(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=zR(e,a).pad(o),d=new q(` `.repeat(o)),f={placement:s,...c.length>0&&{lead:zR([d,...c],a)},...l.length>0&&{trail:zR([...l,d],a)}};if(n===`auto`)return[{text:u,...f}];let p={justify:r,truncate:i};return n===`fill`?[{text:u,fill:p,...f}]:(BR(u,n,p),[{text:u,...f}])}function KR(e,t){let n=()=>e.map(e=>({owner:WR(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=Dm(e.map(WR),t).split(`
|
|
198
|
+
`);if(i.length>1)return n();let a=Math.max(0,t.width-_m(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];BR(c,c.cellLength+a,n)}),n()}function qR(e,t){let n=[],r=[],i=()=>{if(!r.length)return;let e=JR(r,t);e.plain.length>0&&n.push(e),r=[]};for(let a of e){let e={frag:a,style:am(a.style)};if(e.style.link){i();let r=JR([e],t);r.plain.length>0&&n.push(r)}else r.push(e)}return i(),n}function JR(e,t){let n=t!==void 0&&!t.isNull?t:void 0,r=e.map(e=>YR(e.frag,n?n.add(e.style):e.style)),i=q.fromFragments(r);return i.end=``,i.overflow=`ignore`,r.length===1?i.style=r[0].style:n!==void 0&&(i.style=n),i}function YR(e,t){let n=e.copy();return n.style=t,n}function XR(e,t){if(e.look===void 0)throw Error(`${t} read the render's look before any render resolved one`);return e.look}function ZR(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,QR(e,t,o,n,r,i));return i}function QR(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=rg(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=_a.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=rg(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=rg(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:tz(e,n.copy,t)};if(`open`in n)return{kind:`open`,target:tz(e,n.open,t)};if(`reset`in n)return{kind:`reset`,key:n.reset};if(`doctor`in n)return n.doctor===`run`?{kind:`doctor-run`}:{kind:`doctor-fix`,check:n.check};if(`ceiling`in n)return{kind:`ceiling`,args:FM(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:tz(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 $R(e){return e.kind===`do`?$R(e.head):e}function ez(e){switch($R(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`ceiling`:case`slash`:case`do`:return!1}}function tz(e,t,n){try{return e(t)}catch(e){throw Error(`Template parse error in actions.${n}: ${e.message}`,{cause:e})}}function nz(e,t){return e.has(t)?Fg(e.read(t)):``}function rz(e,t){return e.evaluate(t).map(e=>e.plain).join(``)}function iz(e,t,n,r){let i=new q(e,{style:G.combine([r,new G({link:t,bold:n})])});return i.overflow=`ignore`,i.end=``,i}function az(e,t,n=!1){let r=new G({link:t,bold:n?!0:void 0}),i=new q(e.plain,{style:G.combine([am(e.style),r])});for(let t of e.spans)i.stylize(G.combine([am(t.style),r]),t.start,t.end);return i.overflow=`ignore`,i.end=``,i}function oz(e,t){return Math.max(e.members.indexOf(nz(t,e.stateVar)),0)}function sz(e,t,n,r,i){switch(e.kind){case`set-literal`:{let t=nz(r,e.stateVar);return{effects:[{verb:gn,args:[i,e.key,e.value]}],active:t===e.value}}case`set-option`:{let a=n??t,o=nz(r,e.stateVar);return{effects:[{verb:gn,args:[i,e.key,a]}],active:o===a}}case`set-int`:{let a=n??t,o=nz(r,e.stateVar);return{effects:[{verb:gn,args:[i,e.key,a]}],active:o===a}}case`set-cycle`:{let t=e.members[(oz(e,r)+1)%e.members.length];return{effects:[{verb:gn,args:[i,e.key,t]}],active:!1}}case`set-bounded`:return{effects:[{verb:N,args:[i,e.key,String(e.by)]}],active:!1};case`copy`:return{effects:[{verb:_n,args:[rz(e.text,wC(r))]}],active:!1};case`open`:return{effects:[{verb:vn,args:[rz(e.target,wC(r))]}],active:!1};case`persist-literal`:{let t=nz(r,e.stateVar);return{effects:[{verb:Sn,args:[i,e.key,e.value]}],active:t===e.value}}case`persist-option`:{let a=n??t,o=nz(r,e.stateVar);return{effects:[{verb:Sn,args:[i,e.key,a]}],active:o===a}}case`persist-cycle`:{let t=e.members[(oz(e,r)+1)%e.members.length];return{effects:[{verb:Sn,args:[i,e.key,t]}],active:!1}}case`persist-bounded`:return{effects:[{verb:Cn,args:[i,e.key,String(e.by)]}],active:!1};case`reset`:return{effects:[{verb:Dn,args:[i,e.key]}],active:!1};case`undo`:return{effects:[{verb:kn,args:[i]}],active:!1};case`redo`:return{effects:[{verb:An,args:[i]}],active:!1};case`back`:return{effects:[{verb:jn,args:[i]}],active:!1};case`rewind`:return{effects:[{verb:Mn,args:[i]}],active:!1};case`save`:return{effects:[{verb:wn,args:[i]}],active:!1};case`preset-save`:return{effects:[{verb:P,args:[i]}],active:!1};case`theme-default-save`:return{effects:[{verb:Tn,args:[i]}],active:!1};case`preset-delete`:return{effects:[{verb:En,args:[i,rz(e.name,wC(r))]}],active:!1};case`doctor-run`:return{effects:[{verb:Pn,args:[i]}],active:!1};case`doctor-fix`:return{effects:[{verb:Fn,args:[i,e.check]}],active:!1};case`ceiling`:return{effects:[{verb:Ln,args:[i,...e.args]}],active:!1};case`slash`:return{effects:[{verb:Rn,args:[i,e.line]}],active:!1};case`layout-op`:return{effects:[{verb:On,args:[i,e.key,vA(e.op)]}],active:!1};case`do`:{let a=sz(e.head,t,n,r,i);return{effects:[...a.effects,...e.rest.flatMap(e=>sz(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:On,args:[i,e.key,vA(r)]}],active:!1}}}}function cz(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:qn(`action "${e}"`,n,t.members.length,oz(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 lz(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}=cz(e,$R(r),t,i),s=nz(i,`session.id`),{effects:c,active:l}=sz(r,a.plain,o,i,s);return az(a,I(c),l)}function uz(e){return{action:{fn:(t,...n)=>lz(t,n,e),argTypes:[`string`,`liftable`],arity:{kind:`variadic`},returnType:`T`}}}function dz(e,t){return iz(`✕`,I([{verb:gn,args:[nz(e,`session.id`),t,L]}]),!1)}function fz(e,t,n){return new G({bgcolor:W.fromRgba(t),color:W.fromRgba(Pf(e,t,n))})}function pz({tint:e,text:t}){return new G({bgcolor:W.fromRgba(e),color:W.fromRgba(t)})}function mz(e,t,n){return new G({color:W.fromRgba(Qs(wf(e,`warning`),t,Nf,n))})}function hz(e,t,n){return G.combine([fz(e,t,n),mz(e,t,n)])}function gz(e,t,n){return fz(e.palette,tp(e.palette,e.disclosure,[t],n),n)}function _z(e){let t=W.fromRgba(wf(e,`background`)),n=q.fromFragments(Xd.map(n=>new q(`▀`,{style:new G({color:W.fromRgba(wf(e,n)),bgcolor:t})})));return n.overflow=`ignore`,n.end=``,n}const vz=(e,t)=>{let n=typeof e==`string`?new q(e,{style:t}):e;return n.overflow=`ignore`,n.end=``,n},yz=e=>new G({bold:e});function bz(e,t,n,r,i,a){if(r===void 0)return(n,r,a,o)=>vz(a,G.combine([gz(e,{...n,distribution:t},i),yz(o)]));let o=fz(e.palette,a,i);return(e,t,i,a)=>xz(i,G.combine([o,yz(a)]),r(t,n))}const xz=(e,t,n)=>vz(q.fromFragments([vz(e,t),vz(` `,t),_z(n)]));function Sz(e,t){return t===void 0?(e,t,n)=>vz(n):(n,r,i)=>xz(i,void 0,t(r,e))}function Cz(e,t,n,r,i){let a=fz(e.palette,i,r);return(e,r,i,o)=>vz(q.fromFragments([vz(o?`[`:` `,a),_z(n(r,t)),vz(o?`]`:` `,a)]))}function wz(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=>Tz(e.indices,8).map(t=>[{label:e.label,indices:t}])):[r]}function Tz(e,t){return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,(r+1)*t))}function Ez(e,t){return new q(e).truncate(t,{marker:`…`}).plain}function Dz(e){return{current:null,drawnAt:e}}function Oz(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 kz(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 Az(e){return new q(e).cellLength}function jz(e){return Math.max(1,e.width-e.chromeCols-2*e.padding)}function Mz(e){return Math.max(1,jz(e)-(Az(`✕`)+2*e.padding+e.seamCols))}function Nz(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 Pz(e,t,n){let r=Az(`←`)+1+Az(`→`)+1,i=Nz(e,t,n);return(i.length>1?Nz(e,t,n+r):i).map(e=>[{label:``,indices:e}])}function Fz(e,t){let n=[];for(let t of e)n.length>0&&n.push(new q(` `)),n.push(t);let r=q.fromFragments(n);return r.overflow=t?`ignore`:void 0,r.end=``,r}function Iz(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 Lz(e,t,n){let r=e.compiled.get(t),i=r&&$R(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 Rz(e,t,n,r,i,a,o,s,c=[]){let l=a.compiled.get(e),u=a.store,d=nz(u,`session.id`),f=`stateVar`in t?nz(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`?Mz(a):jz(a):1/0,h=(r.kind===`led`?0:Az(`✕`)+1)+c.reduce((e,t)=>e+Az(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?Pz(_.map(e=>e.cellLength),m,h):wz(g.entries,g.groups,i),y=parseInt(nz(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=>I([{verb:gn,args:[d,n.key,String(e)]}]),te=r.kind===`led`?[]:[{verb:gn,args:[d,...r.writes.flatMap(([e,t])=>[e,t])]}],ne=r.kind===`own`&&r.onPick?te:[],re=e=>I([...sz(l,e,e,u,d).effects,...ne]),ie=(e,n)=>az(e,re(t.options[n])),ae=r.kind===`led`?[]:[iz(`✕`,I(te),!1,s)];ae.push(...c.map(({glyph:e,option:r})=>iz(e,I([...sz(l,r,r,u,d).effects,{verb:gn,args:[d,n.key,String(b(t.options.indexOf(r)))]}]),!1))),S>0&&ae.push(iz(`←`,ee(S-1),!1));let w=S<v.length-1?[iz(`→`,ee(S+1),!1)]:[];if(g===void 0){let e=C.flatMap(e=>e.indices);return[Fz([...ae,...e.map(e=>ie(_[e],e)),...w],i)]}let T=new G({bold:!0}),oe=v.length>1?` ${S+1}/${v.length}`:``,se=C.length===1?[new q(`${C[0].label}${oe}`,{style:T})]:[],ce=[Fz([...ae,...se,...w],i)];for(let e of C){C.length>1&&ce.push(Fz([new q(e.label,{style:T})],i));let n=Math.max(...e.indices.map(e=>Az(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:Hd(a),s=` `.repeat(n-Az(e)+2),c=o===void 0?e:`${e}${s}${o}`;ce.push(Fz([ie(p(r,Ez(c,m)),r)],i))}}return ce}function zz(e,t){return{picker:{fn:(n,r,i,a,o,...s)=>{vC(`picker "${n}"`,[`closeOnPick`,`paged`,`inBody`],s);let c=Iz(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=Lz(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=kz(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]=Rz(n,l,{key:c.key,stateVar:c.stateVar},o===!0?{kind:`led`}:{kind:`own`,writes:[[c.key,`-1`]],onPick:i===!0},a===!0,e,bz(u,ff(void 0),XR(e,`{{ picker }}`),l.paletteOf,t.drawnAt(),u.bg),mz(u.palette,u.bg,t.drawnAt()));return d},argTypes:[`string`,`string`,`bool`],arity:{kind:`variadic`},returnType:`T`}}}function Bz(e,t){let n=e.length,r=Math.max(e.indexOf(t),0);return e=>((r+e)%n+n)%n}function Vz(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 Hz(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=nz(o,`session.id`),{options:l}=t,u=l.length;if(u===0)return Fz([],!0);let d=nz(o,t.stateVar),f=Bz(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=I(sz(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=az(g(e),h(e));return _.set(e,n),n},y=a===void 0?v(0):az(Sz(XR(n,`{{ carousel }}`),t.paletteOf)({index:f(0),count:u},p(0),p(0),!1),I(sz(n.compiled.get(a),p(0),void 0,o,c).effects)),b=Vz(e=>v(e).cellLength,u,Az(`◀`)+1+y.cellLength+1+Az(`▶`),Mz(n),i),x=e=>Array.from({length:b},(t,n)=>v(e*(n+1)));return Fz([...x(-1).reverse(),iz(`◀`,h(-1),!1),y,iz(`▶`,h(1),!1),...x(1)],!0)}function Uz(e,t){return{carousel:{fn:(n,...r)=>{let[i,a,...o]=r;if(vC(`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&&ez(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=Lz(e,n,`carousel`),l=kz(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 Hz(n,c,e,bz(l,ff(void 0),XR(e,`{{ carousel }}`),c.paletteOf,t.drawnAt(),l.bg),s,a)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function Wz(e,t,n){let r=Lz(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 Gz(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 Kz(e,t,n,r){let i=Wz(e,t,n),a=r??nz(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,XR(e,`{{ ${n} }}`))}function qz(e,t,n){return{swatch:{fn:(t,...n)=>{let[r,...i]=n;if(vC(`swatch "${t}"`,[`option`],i),r!==void 0&&typeof r!=`string`)throw Error(`swatch "${t}": option must be text, got ${JSON.stringify(r)}`);return _z(Kz(e,t,`swatch`,r))},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`},swatches:{fn:(r,i)=>{let a=Wz(e,r,`swatches`),o=Iz(e,i,`set-int`,`an int action ({ set, int: true })`,`swatches`),s=kz(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]=Rz(r,a,{key:o.key,stateVar:o.stateVar},{kind:`led`},!0,e,Cz(s,XR(e,`{{ swatches }}`),a.paletteOf,c,s.bg),mz(s.palette,s.bg,c),u===0?[]:(()=>{let t=Bz(l,nz(e.store,a.stateVar));return[{glyph:`◀`,option:l[t(-1)]},{glyph:`?`,option:l[Gz(n().getTime(),u,t(0))]},{glyph:`▶`,option:l[t(1)]}]})());return d},argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`T`}}}const Jz=[`~/code`,`main`,`opus`,`42%`,`5m`,`$1.20`];function Yz(e,t,n,r){let i=Kf(e,n,r),a=(t,n)=>({text:t,colour:n,ink:Pf(e,n,r)});return[[sf(t).map((n,i)=>{let a=Tf(e,n);return{text:Jz[i%Jz.length],colour:a,ink:t.shade.text(e,n.hue,a,r)}})],[[a(`▾ open`,i.state),a(`menu`,i.plane)],[a(`warn`,wf(e,`warning`)),a(`error`,wf(e,`error`))]]]}function Xz(e,t){let n=e.flatMap((e,t)=>e.map(({text:e,colour:n,ink:r},i)=>({gap:t>0&&i===0?` `:``,cell:new q(` ${e} `,{style:pz({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 q(e)),r.push(a)}return r}function Zz(e,t,n,r,i){let a=Yz(e,t,n,r).map(e=>Xz(e,i)),o=q.fromFragments(a.flatMap((e,t)=>t===0?e:[new q(`
|
|
199
|
+
`),...e]));return o.overflow=`ignore`,o.end=``,o}function Qz(e,t){return{themePreview:{fn:(...n)=>{let[r,...i]=n;if(vC(`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}=XR(e,`{{ themePreview }}`);return Zz(r===void 0?a:Kz(e,r,`themePreview`),o,{...kz(t,`{{ themePreview }}`).disclosure,depth:0},t.drawnAt(),Mz(e))},argTypes:[`value`],arity:{kind:`variadic`},returnType:`T`}}}const $z=e=>e.slice(e.lastIndexOf(`.`)+1),eB=(e,t)=>{let n=new q($z(e));return n.truncate(t,{marker:`…`}),n.plain};function tB(e,t){let n=e.map(e=>e.map(({name:e})=>Az($z(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 nB(e,t,n,r){let i=tB(e,r),a=e.map(e=>{let a=[],o=0;for(let{name:s,address:c,palette:l}of e){let e=new q(` ${eB(s,i)} `,{style:pz(ap(l,{kind:`bar`,decor:t,address:c},n))});if(o+=e.cellLength,o>r)break;a.push(e)}return a}),o=q.fromFragments(a.flatMap((e,t)=>t===0?e:[new q(`
|
|
200
|
+
`),...e]));return o.overflow=`ignore`,o.end=``,o}function rB(e,t){return{layoutPreview:{fn:()=>nB(e.layout(),XR(e,`{{ layoutPreview }}`).decor,t.drawnAt(),Mz(e)),argTypes:[],arity:{kind:`exact`},returnType:`T`}}}function iB(e,t,n,r){let i=kz(r.activeSegment,`{{ menu }}`),a=r.action,o=sT(i.placementId,e,n.key),s=uT(o),c=oT(e),l=nz(a.store,o)===c,u=nz(a.store,`session.id`),d=l?L:c,f=iz(qn(`{{ menu "${e}" }}`,t,2,+!!l),I([{verb:gn,args:[u,o,d,s,`0`]}]),!1);return i.drops.push(...l?(()=>{let t=r.activeSegment.drawnAt(),c=Kf(i.palette,i.disclosure,t).plane,l=Lz(a,e,`menu`);return Rz(e,l,{key:s,stateVar:s},{kind:`own`,writes:[[o,L],[s,`0`]],onPick:n.closeOnPick},n.paged,a,bz(i,n.distribution,XR(a,`{{ menu }}`),l.paletteOf,t,c),mz(i.palette,c,t))})():[]),f}const aB=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function oB(e,t){let n=t[t.length-1],r=aB(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:mT(r??{})}}function sB(e){return{menu:{fn:(t,...n)=>{let{displays:r,options:i}=oB(t,n);return iB(t,r,i,e)},argTypes:[`string`,`value`],arity:{kind:`variadic`},returnType:`T`}}}function cB(e){let{value:t,max:n,width:r,filled:i,empty:a,colourAt:o}=e,s=lB(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 q(t?i:a,{style:l===void 0?void 0:new G({color:l})}))}let l=q.fromFragments(c);return l.end=``,l.overflow=`ignore`,l}function lB(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 uB(e){let t={fn:(()=>{let t=kz(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:(()=>kz(e,`{{ tint }}`).tint.hex),argTypes:[],arity:{kind:`exact`},returnType:`string`},r={fn:((t,n)=>{let{palette:r}=kz(e,`{{ keptOn }}`),i=Us(r,t),a=Us(r,n),o=Fo(ec(i,U.TRUECOLOR),ec(a,U.TRUECOLOR)),s=Math.min(Nf,Math.max(o,3));return($s(i,e.drawnAt(),(e,t)=>Fo(e,t(a))>=s)??i).hex}),argTypes:[`string`,`string`],arity:{kind:`exact`},returnType:`string`},i=iC(()=>kz(e,`{{ color }} / {{ ramp }} / {{ gauge }}`).palette),a={fn:((e,t,n,r,a,o,...s)=>{let c=o===void 0?void 0:[o,...dB(s)];return cB({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 dB(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 fB(e){let t=[],n=[];for(let r of e){if(!r.contains(`
|
|
201
201
|
`)){n.push(r);continue}let e=r.split(`
|
|
202
|
-
`);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function aB(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 oB(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 sB(e){return{...e,cells:e.cells.map(PR)}}function cB(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,...lB(e,r)]}function lB(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 uB(e,t){let n=(e,r)=>t(e)?e.kind===`segment`?[{cells:[{name:e.name,address:r,settings:e.settings}],band:`own`,place:`flow`}]:cB(e.direction,e.children.map((t,i)=>n(t,[...r,dB(e,i)]))):[];return n(e,[]).map(e=>[...e.cells])}function dB(e,t){return{index:t,count:e.children.length,distribution:e.distribution,axis:oh[e.direction]}}const fB={compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:ff(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,fh(t.path,n)))}},render(e,t){return cB(e.direction,e.children.map((n,r)=>t.renderChild(n,t.visible,dB(e,r))))}},pB={drop:e=>e.place,above:()=>`above`},mB={drop:(e,t)=>({lead:t(),stays:e}),above:e=>({lead:e.slice(0,1).flatMap(e=>e.cells),stays:e.slice(1)})},hB={compile(e,t){return{kind:`segment`,when:t.when,name:e.name,id:sh(e),settings:t.placementSettings(e),...e.opens!==void 0&&{opens:{open:t.parse(Xn(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,ph(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,gB(e,t))};function gB(e,t){let n=t.lookupSegment(e.name);if(!n)throw Error(`Layout segment "${e.name}" has no matching segment`);let{seg:r,compiled:i}=n;if(!t.visible)return[];let a=EC(t.scope,e.settings);try{if(!AR(i.when,a))return[];let n=Zm(e.settings.theme,t.palette),o={id:e.id,effect:e.settings.effect,ground:cD(n)},s=e.opens!==void 0&&AR(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:pB[g.placement](e)})),v=iB(zR(l,m)).map((e,t)=>({cells:LR(e,{...h,lead:t===0?zR(u,m):[],trail:t===0?zR(d,m):[]}),band:`own`,place:`flow`})),y=f.map(e=>({cells:LR(zR([e],c.band),{...h,baseStyle:c.band}),band:`deeper`,place:`flow`})),b=(e,t,n)=>LR(zR([e],t),{...h,width:`auto`,baseStyle:t,padding:n}),x=_.findIndex(e=>e.band===`own`),{lead:S,stays:C}=g!==void 0&&x!==-1?mB[g.placement](v,()=>b(t.closeDisclosure(g.key),c.close,t.padding)):{lead:[],stays:v},ee=S.flatMap(e=>b(new q(` `.repeat(NR(e).reduce((e,t)=>e+t.cellLength,0))),c.trigger,0)),w=(e,t)=>e.band===`own`?t===x?S:ee:[],te=_.map((e,t)=>({cells:[...w(e,t),...e.cells],band:`deeper`,place:e.place})),ne=[...C,...y];return t.perSegmentSink!==void 0&&t.perSegmentSink.set(e.id,[...ne.flatMap(e=>e.cells),..._.flatMap(w)].flatMap(NR)),[...ne,...te]}catch(n){let r=n.message??String(n);t.onSegmentError?.(e.id,r);let i=r.replace(/\s*\n\s*/g,` `);return[{cells:LR([new q(`⚠ ${e.id}: ${i}`,{end:``})],{width:`auto`,justify:`left`,truncate:`right`,padding:0,placement:{id:e.id,effect:`bar`,ground:cD(t.palette)},lead:_B(e.lead,e,a,t),trail:_B(e.trail,e,a,t)}),band:`own`,place:`flow`}]}}function _B(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 vB={container:fB,segment:hB};function yB(e){return vB[e]}function bB(e){if(`ttl`in e)return{kind:`ttl`,durationMs:gw(e.ttl)};if(`watch_file`in e)return{kind:`watch_file`,path:e.watch_file};if(`depends_on`in e)return{kind:`depends_on`,varNames:e.depends_on};if(`key`in e)return{kind:`key`,template:e.key};if(`never`in e)return{kind:`never`};throw Error(`Unknown CacheDecl discriminator — loader invariant violated: ${JSON.stringify(e)}`)}function xB(e,t){switch(_h(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 SB(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:bB(n.cache),parse:xB(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cwd:r,cache:bB(n.cache),parse:xB(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 CB(e,t){let n=f_.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 wB=(e,t,n,r,i)=>{let a=TF(t,wF(n,e.themeDefaults));return{variation:of[r??Up(void 0,null,a.variation)],shade:rf[i??Kp(void 0,null,a.shade)]}};function TB(e,t,n){let r=n.cwd,i={store:t.variableStore,compiled:new Map,chromeCols:Tm({endcaps:`powerline`,charset:Rp}),width:80,padding:1,seamCols:Em({endcaps:`powerline`,charset:Rp}),layout:()=>[],look:void 0},a=yz(t.drawnAt),o={action:i,activeSegment:a},s=Object.keys(e.styles),c=qh(e.presets),l=Jk(e),u=CC({extraFuncs:{...nz(i),...jz(i,a),...Fz(i,a),...Wz(i,a),...zz(i,a,t.now),...Yz(i,a),...$z(o),...nB(a),styles:{fn:()=>s,argTypes:[],arity:{kind:`exact`}},presets:{fn:()=>c,argTypes:[],arity:{kind:`exact`}}},clock:t.now,drawnAt:t.drawnAt}),d=CB(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 va)n in e.variables&&h.set(t,n);for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&!h.has(n.key)&&h.set(n.key,t);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))r.kind===`state`&&!h.has(r.key)&&h.set(r.key,`${t}.${e}`);i.compiled=UR(f,e.actions,h,l);let g=[];for(let[n,i]of Object.entries(e.variables))try{SB(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{SB(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=wh(e.segments[t.name]),r=Object.create(null);for(let[e,i]of Object.entries(n))Object.defineProperty(r,e,{enumerable:!0,get:()=>Ah(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 yB(e.kind).compile(e,n)},S=new Map;for(let t of c){let{node:n,path:r}=Xh(e,t);S.set(t,x(n,r))}let C=new Map(hp.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 hp){let r=t[n];if(!gp(r))continue;let i=`${e}.${n}`,a=C.get(n),o=a.get(r);a.set(r,o===void 0?{where:i,template:EB(f,i,r)}:{where:`${o.where}, ${i}`,template:o.template})}return{segments:_,roots:S,activeSegment:a,menuRuntime:o,globalExpressions:C,loadWarnings:g}}function EB(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 DB(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 OB(e,t,n,r){try{return t.template.evaluate(n).map(e=>e.plain).join(``)}catch(n){return r({kind:`rule`,slot:e,message:Tp(t.where,e,`the rule failed — ${n instanceof Error?n.message:String(n)}`)}),wp[e]}}function kB(e,t){return e.kind===`decided`?e.name:wp[t]}function AB(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(Bp(o.colorCompatibility));let{preset:m=Gh}=c??{},h=Zh(e,m),g=c?.style??xp(`none`,e.styles),_=c?.theme??rh(void 0,null,h.palette),v=wB(e,h,_,c?.variation,c?.shade),y=c?.effect??Ap(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(kB(_,`palette`),kB(g,`style`),kB(y,`effect`))),t.menuRuntime.action.chromeCols=Tm(o),t.menuRuntime.action.padding=o.padding,t.menuRuntime.action.width=o.width,t.menuRuntime.action.seamCols=Em(o);let x=wC(n),S=vp(_,e=>{let n=DB(t,`palette`,e);return nh(OB(`palette`,n,x,f),n.where,e=>f({kind:`rule`,slot:`palette`,message:e}))}),C=vp(g,n=>xp(OB(`style`,DB(t,`style`,n),x,f),e.styles)),ee=vp(y,e=>kp(OB(`effect`,DB(t,`effect`,e),x,f)));(S!==_||C!==g||ee!==y)&&r.applyInput(b(S.name,C.name,ee.name));let w=S.value,te=$m(w,C.value);t.menuRuntime.action.look={basePalette:w,palette:te,decor:v};let ne=(c?.effects??new hm(``)).motion(ee.value,a,{transitions:c?.transitions??nm(void 0,null,h.transitions),source:{config:t,preset:m,revision:r.stateRevision(),width:o.width},returned:oB,hold:sB});l?.clear();let re=n=>{let r=e.segments[n],i=t.segments[n];return r!==void 0&&i!==void 0?{seg:r,compiled:i}:void 0},ie=(e,n,i,a,o,s)=>{try{let c=r.drawnAt(),{tint:l,text:u,disclosure:d}=ap(i,a,c),f=bz(t.activeSegment,e.name,e.id,i,d,l,u),m=uD(f,c,o.bg,o.fg,n),h=()=>Kf(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 iz(i,h().state,c)},get band(){return iz(i,h().plane,c)},get close(){return sz(i,h().state,c)},disclosure:d},fragments:g,lead:v,trail:y,drops:f.drops,open:_}}finally{t.activeSegment.current=null}},T=(e,t,r)=>{let i=t&&AR(e.when,x),a={scope:x,palette:te,visible:i,padding:o.padding,region:r,perSegmentSink:l,onSegmentError:u,evaluateSegment:ie,lookupSegment:re,renderChild:(e,t,n)=>T(e,t,rp(r,n)),renderBody:(e,t,n)=>T(e,i&&t,ip(n)),closeDisclosure:e=>rz(n,e),placed:ne.placed};return yB(e.kind).render(e,a)},E=t.roots.get(m);if(E===void 0)throw Error(`Preset "${m}" has no compiled layout — registerDslConfig compiles one per declared preset and effectivePresetName collapses unknown names to "${Gh}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);let ae=e=>{if(!AR(e.when,x))return!1;if(e.kind===`container`)return!0;if(aA(e.name)===void 0)return!1;try{return AR(t.segments[e.name].when,EC(x,e.settings))}catch{return!0}};t.menuRuntime.action.layout=()=>uB(E,ae).map(e=>e.flatMap(({name:e,address:t,settings:n})=>{let r=aA(e);return r===void 0?[]:[{name:r,address:t,palette:Zm(n.theme,te)}]}));let oe=aB(T(E,!0,np(v))).map(({line:e,row:t})=>{let n=RR(e.cells,o);return Dm(n.map(e=>e.owner),o,ne.row(t,n))}).join(`
|
|
203
|
-
`);
|
|
204
|
-
`)||null}function JB(e,t,n,r,i=()=>{}){let{layers:a,config:o,installed:s}=ZP(t.layers,bF,{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??bF,l=a.find(e=>e.path===t.home)?.raw??{},u=new HB,d=new Lw(u,o.globals.default_empty_value??``,r.gitService,r.sessionState),f;try{f=TB(o,d,{cwd:e}),n.push(...f.loadWarnings),oL(o),OA(o)}catch(e){throw d.dispose(),e}return{config:o,store:u,registry:d,compiled:f,neededInputPaths:fI(o),lastRenderCellsBySegment:new Map,authoredRoots:GB(c,l),fileHeldSettings:KI(l),unused:[...new Map(a.flatMap(e=>PB(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 YB(e,t,n,r){let i=zP(e,t,n),a={layers:i.kind===`chain`?i.layers:[],home:i.home,projectDir:e},o=[WP(e,t),HP(i)],s,c=null;try{s=JB(t,a,o,r,e=>{c=e})}catch(e){return e instanceof Uw&&o.push(...e.warnings),{layers:a.layers,home:a.home,failedFile:c,warning:qB(o),state:null,error:e instanceof Uw||e instanceof Error?e.message:String(e)}}return{layers:a.layers,home:a.home,warning:qB(o),state:s,error:null}}function XB(e,t,n){return JB(e,{layers:[],home:``,projectDir:t},[],n)}var ZB=class{entries=new Map;deps;maxEntries;observers;constructor(e,t={}){this.deps=e,this.maxEntries=t.maxEntries??256,this.observers=t.observers??{}}getOrCreate(e,t,n){let r=WB(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=YB(e,t,n,this.deps);a.state!==null&&k(`info`,UB(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??XB(t,e,this.deps),watcher:null,watcherKey:null};if(this.entries.set(r,o),this.entries.size>this.maxEntries){let e=this.entries.entries().next().value;if(e!==void 0){let[t,n]=e;n.state.registry.dispose(),n.watcher?.release(),this.entries.delete(t)}}return this.refreshWatcher(o,a),this.observers.onReload?.(o),o}reload(e,t,n){this.reloadInto(this.getOrCreate(e,t,n))}reloadInto(e){let t=YB(e.projectDir,e.cwd,e.configFile,this.deps);e.lastWarning=t.warning,e.lastError=t.error,t.state!==null&&(k(`info`,UB(t.layers,t.state)),e.state.registry.dispose(),e.state=t.state),this.refreshWatcher(e,t),this.observers.onReload?.(e)}refreshWatcher(e,t){e.configLayers=t.layers,e.configHome=t.home,e.failedFile=t.error===null?null:t.failedFile;let n=KB(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){k(`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 QB=16384;var $B=class{startedAt=new Date;requestsTotal=0;requestsErrored=0;requestsTimedOut=0;inFlight=0;watchersOpened=0;watchersClosed=0;watchersEvicted=0;subprocessTotal=0;subprocessInFlight=0;subprocessCount=new Map;subprocessHistogram=new Map;subprocessHistogramRotator=new Map;rollingTimestamps=[];rollingHead=0;launchStats={onStart:e=>{this.subprocessTotal++,this.subprocessInFlight++,this.subprocessCount.set(e,(this.subprocessCount.get(e)??0)+1),this.recordRollingNow()},onEnd:(e,t)=>{this.subprocessInFlight=Math.max(0,this.subprocessInFlight-1),this.recordDuration(e,t)}};recordRollingNow(){let e=Date.now();if(this.rollingTimestamps.length<QB){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%QB}recordDuration(e,t){let n=this.subprocessHistogram.get(e);if(n||(n=[],this.subprocessHistogram.set(e,n)),n.length<16){n.push(t);return}let r=(this.subprocessHistogramRotator.get(e)??0)%16;n[r]=t,this.subprocessHistogramRotator.set(e,r+1)}snapshotSubprocesses(){let e=Date.now()-6e4,t=0;for(let n of this.rollingTimestamps)n>=e&&t++;let n={};for(let[e,t]of this.subprocessCount)t>0&&(n[e]=t);let r={},i={};for(let[e,t]of this.subprocessHistogram){if(t.length===0)continue;let n=[...t].sort((e,t)=>e-t),a=Math.floor(n.length*.5),o=Math.min(n.length-1,Math.floor(n.length*.99)),s=n[a],c=n[o];s!==void 0&&(r[e]=s),c!==void 0&&(i[e]=c)}return{total:this.subprocessTotal,inFlight:this.subprocessInFlight,lastMinute:t,byCategory:n,p50DurationMs:r,p99DurationMs:i}}snapshot(e){let t=process.memoryUsage();return{pid:process.pid,version:wt,protocolVersion:3,startedAt:this.startedAt.toISOString(),uptimeSec:Math.floor((Date.now()-this.startedAt.getTime())/1e3),rssBytes:t.rss,heapUsedBytes:t.heapUsed,heapTotalBytes:t.heapTotal,externalBytes:t.external,arrayBuffersBytes:t.arrayBuffers,requests:{total:this.requestsTotal,errored:this.requestsErrored,timedOut:this.requestsTimedOut,inFlight:this.inFlight},gitCache:e.gitCache,usageCache:e.usageCache,renderCache:{size:e.renderCacheSize},effectCache:e.effectCache,watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null,handlerProbes:e.handlerProbes}}};function eV(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 tV={load:()=>({}),save:()=>{},flush:()=>{}};var nV=class{sessions;storage;head=0;atom=(0,Mg.createAtom)(`SessionState`);constructor(e=tV,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=new Map(Object.entries(this.storage.load()).map(([e,t])=>[e,{values:new Map(Object.entries(t)),revision:++this.head}])),this.evictOldest(),this.persist()}get(e,t){this.atom.reportObserved();let n=this.sessions.get(e);return n?(this.touch(e,n),n.values.get(t)??null):null}revision(e){return this.atom.reportObserved(),this.sessions.get(e)?.revision??0}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,Mg.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,Mg.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,Mg.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 rV(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 iV=class{timer=null;pending=null;constructor(e,t=500,n=Nt){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 rV(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 aV={default_empty_value:`string`,default_separator:`string`,palette:`string`,style:`string`,effect:`string`,preset:`string`,endcaps:`string`,variation:`string`,shade:`string`,autoWrap:`boolean`,padding:`number`,charset:`string`,updateNotice:`boolean`,transitions:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},oV=new Set([`1`,`true`]),sV=new Set([`0`,`false`,``]);function cV(e,t){let n=NV(e),r=n.scope===`segment-palette`?`string`:aV[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(oV.has(t))return`true`;if(sV.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function lV(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function uV(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(l.dirname(e),{recursive:!0}),Fe(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function dV(e){return/^\s*$/.test(e)?null:_r(e)}function fV(e,t){return e!==null&&yr(e,t)!==void 0}function pV(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(pV),...i}}return e}function mV(e){if(!Lh(e))return pV(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,pV(t)])),...n}}const hV=vF,gV=hV.segments,_V=hV.presets,vV=hV.root;function yV(e,t,n,r){if(!fV(e,t)&&n===void 0)throw new J(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function bV(e,t){let n=zE(t);return t.scope===`segment-palette`&&yV(e,[`segments`,t.segment],gV[t.segment],n.join(`.`)),n}function xV(e){return _r(Dr(e))}function SV(){return Object.entries(vV.rows).map(([e,t])=>{let n=pV(t);return{path:[`root`],fragment:xV({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function CV(e,t){let n=e===null?void 0:yr(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function wV(e,t){if(t===void 0)return null;let n=mV(t);return{path:e,fragment:xV(n),unit:{path:e,value:n}}}function TV(e,t){let n=[`presets`,t],r=[...n,`root`],i=_V[t];yV(e,n,i,r.join(`.`));let a=CV(e,r)??wV(r,i?.root);return a!==null&&Jr(a.fragment)?a:null}function EV(e,t){let n=qr(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 DV(e,t){return[...SV(),CV(e,[`root`]),TV(e,t)].filter(e=>e!==null).reduce(EV,new Map)}function OV(e,t,n){for(let{node:r,...i}of DV(e,t).values())if(Xr(r,n))return i;throw new J(`${kV(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 kV(e,t){return TV(e,t)?.path??[`root`]}function AV(e,t){return t.scope===`preset-root`?kV(e,t.preset):zE(t)}function jV(e,{unit:t}){return t===null?e:Vr(e,t.path,Dr(t.value),Tr)}function MV(e){let t=RE(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function NV(e){let t=MV(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function PV(e,t,n,r,i){i(t,n,GV(t,r)),uV(t.path,r,e.logger),e.record(t.path,n,r)}function FV(e,t,n){let r=RV(e,t,n);if(r.length>0)throw new J(`refused: ${e.above.join(`, `)} sets ${r.join(`, `)} over ${e.path}, so this click would change nothing on the bar — edit it there`)}const IV=()=>{};function LV(e,t){try{return t()}catch(t){throw!(t instanceof J)||e.above.length===0?t:new J(`${t.message} — or it is declared by ${e.above.join(`, `)}, which the bar does not edit`)}}function RV(e,t,n){let r=zV(e,t);if(r===null)return[];let i=new Set(UV(HV(r),HV(n)));return UV(VV(e,r),VV(e,n)).filter(e=>!i.has(e))}function zV(e,t){try{return BV(e,t)}catch(e){if(e instanceof Uw)return null;throw e}}function BV(e,t){return ZP(t===null?e.above:[e.path,...e.above],bF,{entered:()=>{},warned:()=>{}},{projectDir:e.projectDir,cwd:e.cwd},n=>n===e.path&&t!==null?t:r.readFileSync(n,`utf8`))}function VV(e,t){let[n]=t.layers;return n?.path===e.path?n.config:t.base}function HV(e){return e.layers.at(-1)?.config??e.base}function UV(e,t,n=``){return!WV(e)||!WV(t)?JSON.stringify(e)===JSON.stringify(t)?[]:[n]:[...new Set([...Object.keys(e),...Object.keys(t)])].flatMap(r=>UV(e[r],t[r],n===``?r:`${n}.${r}`))}function WV(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function GV(e,t){try{return BV(e,t)}catch(e){throw e instanceof Uw?new J(`refused: the config file would not load after this click — ${e.message}`):e}}function KV(e,t){let n=NV(t),r=dV(lV(e)??``),i=r===null?void 0:yr(r,zE(n));return i!==void 0&&`value`in i?i.value:void 0}function qV(e,t,n){JV(e,t,n,[])}function JV(e,t,n,r){let i=lV(t.path),a=n.reduce((e,[t,n])=>Vr(e,bV(dV(e),NV(t)),cV(t,n),Tr),i??``);PV(e,t,i,LV(t,()=>YV(a,t.path,r,e=>e)),FV)}function YV(e,t,n,r){return n.reduce((e,{preset:n,id:i,setting:a,value:o})=>{let s=r(e,n,i),c=OV(dV(s),n,i),l=ei(jV(s,c),c.path,i,a,Dr(o));if(l===null)throw new J(`${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 XV(e,t,n){let r=dV(e),i=[`presets`,t,`root`];for(let[a,{path:o,unit:s,node:c}]of DV(r,t)){if(!Xr(c,n))continue;if(i.every((e,t)=>o[t]===e))return e;let l=s===null?xr(e,c):Dr(s.value);if(a!==`#`)return Vr(e,[...i,`rows`,a],l,Tr);if(TV(r,t)!==null)throw new J(`cannot give preset "${t}" its own copy of ${o.join(`.`)}: it already stages rows of its own over that tree`);return Vr(e,i,l,Tr)}return e}function ZV(e,t){return Ur(e,t,t[0]===`presets`&&t.length>2&&!SF(t[1])?2:0)}function QV(e,t,n){let r=n.map(MV),i=lV(t.path);if(i===null)return;let a=r.reduce((e,t)=>ZV(e,AV(dV(e),t)),i);a!==i&&PV(e,t,i,a,IV)}function $V(e){let t=e===null?void 0:yr(e,[`presets`]);return t?.kind===`object`?t.entries.map(e=>e.key):[]}function eH(e,t){let n=new Set([...xF,...$V(e),...t.above.flatMap(e=>Object.keys(ur.default.parse(r.readFileSync(e,`utf8`)).presets??{}))].map(Hw));return Array.from({length:n.size+1},(e,t)=>`custom-${t+1}`).find(e=>!n.has(Hw(e)))}function tH(e,t,n,r,i,a){let o=lV(t.path),s=dV(o??``),c=eH(s,t),l=[`presets`,c],u=LV(t,()=>TV(s,n)),d=[...u===null?[]:[[[...l,`root`],u.unit===null?xr(o??``,u.fragment):Dr(u.unit.value)]],...Object.keys(r).length===0?[]:[[[...l,`globals`],Dr(r)]]],f=i.map(([e,t])=>{let n=LE(c,e);return[bV(s,NV(n)),cV(n,t)]}),p=[...d,...f].reduce((e,[t,n])=>Vr(e,t,n,Tr),Vr(o??``,l,`{}`,Tr));return PV(e,t,o,LV(t,()=>YV(p,t.path,a.map(e=>({...e,preset:c})),XV)),FV),c}function nH(e,t,n,r){let i=lV(t.path);PV(e,t,i,Vr(i??``,[`themeDefaults`,n],Dr(r),Tr),FV)}function rH(e,t,n){if(SF(n))throw new J(`cannot delete preset "${n}": it is bundled — reset its settings instead`);let r=[`presets`,n],i=lV(t.path),a=dV(i??``);if(i===null||a===null||yr(a,r)===void 0)throw new J(`cannot delete preset "${n}": ${t.path} declares no ${r.join(`.`)} — the bar you clicked is stale; it reloads on the next render`);let o=yr(a,[`globals`,`preset`]);PV(e,t,i,[r,...o?.kind===`string`&&o.value===n?[[`globals`,`preset`]]:[]].reduce((e,t)=>ZV(e,t),i),IV)}function iH(e,t,n,r){let i=MV(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=lV(t.path),o=r.op===`remove`?r.target:r.anchor,s=LV(t,()=>OV(dV(a??``),i.preset,o)),c=jV(a??``,s),{after:l,placed:u}=aH(c,s.path,r,()=>{let e=GV(t,c).config;return qh(e.presets).map(t=>Xh(e,t).node)});if(l===null)throw new J(`${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 PV(e,t,a,l,FV),u}function aH(e,t,n,r){switch(n.op){case`remove`:return{after:Qr(e,t,n.target),placed:null};case`insert`:{let i=hA(n.segment,n.anchor,r());return{after:$r(e,t,i,n.anchor,n.relation),placed:i}}}}const oH={load:()=>({}),save:()=>{}},sH=new Set(ma.map(e=>e.sessionKey)),cH=e=>sH.has(e)||e.startsWith(XE),lH=8*1024*1024,uH={past:[],future:[]},dH=e=>e.kind===`session`?`session:${e.key}`:`file:${e.file}`;var fH=class{state=new Map;constructor(e,t,n=oH){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)??uH;return{undo:t.length,redo:n.length,sinceEdit:r?.net.length??0}}history(e){return this.state.get(e)??uH}begin(){let e=new Map,t=(t,n)=>{let r=e.get(t)??new Map,i=r.get(dH(n));r.set(dH(n),i===void 0?n:{...n,before:i.before}),e.set(t,r)},n=new Map;return{sessionState:eV(this.sessionState,e=>cH(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:bH(i,n),o=r.get(e),s=o===void 0?a:wH(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 J(`undo: nothing to undo`);return this.apply(e,n,`before`,`undo`,SH(t,n)),n}rewind(e){let t=this.history(e),{savepoint:n}=t;if(n===void 0)throw new J(`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(dH)),a=n.net.filter(e=>!i.has(dH(e))),o=hH(TH(CH(t,n),i));if(this.apply(e,a,`before`,`rewind`,{past:o,future:[],savepoint:{at:o.length,net:[],below:[]}}),r.length>0)throw new J(`rewind: ${r.map(DH).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 J(`redo: nothing to redo`);let a=[...n,i],o=hH(a);return this.apply(e,i,`after`,`redo`,{past:o,future:r.slice(0,-1),..._H(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(dH)),{past:n,future:i,savepoint:a}=this.history(e);throw this.put(e,{past:TH(n,t),future:TH(i,t),...a!==void 0&&{savepoint:{at:TH([...n,...[...i].reverse()].slice(0,a.at),t).length,net:a.net.filter(e=>!t.has(dH(e))),below:TH(a.below,t)}}}),new J(`${r}: ${o.map(DH).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):lV(t.file)}write(e,t,n){t.kind===`file`?uV(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||pH(n)>lH;){let[e,t]=n.entries().next().value;n.size>1?n.delete(e):t.past.length+t.future.length>0?n.set(e,mH(t)):(this.logger(`warn`,`settings-history: edit mode's changes for session ${e} exceed ${lH} bytes; cancel is no longer available`),n.delete(e))}this.storage.save(Object.fromEntries(n)),this.state=n}};function pH(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 mH({past:e,future:t,savepoint:n}){return e.length>0?{past:e.slice(1),future:t,..._H(n,1,[])}:{past:e,future:t.slice(1),..._H(n,0,[])}}function hH(e){return e.slice(-50)}const gH=e=>e===QE.member;function _H(e,t,n){return e===void 0?{}:{savepoint:{at:Math.max(0,e.at-t),net:vH(e.net,n),below:e.below}}}function vH(e,t){let n=new Map(e.map(e=>[dH(e),e]));for(let e of t){let t=n.get(dH(e));n.set(dH(e),t===void 0?e:{...t,after:e.after})}return[...n.values()].filter(e=>e.before!==e.after)}const yH=e=>e.map(e=>({...e,before:e.after,after:e.before}));function bH(e,t){let n=[...e.past,t],r=hH(n),{savepoint:i}=e,a=i===void 0?0:Math.max(0,i.at-e.past.length);return{past:r,future:[],..._H(i&&{at:Math.min(i.at,e.past.length),net:i.net,below:[...xH(e.future,a),...i.below]},n.length-r.length,t)}}function xH(e,t){let n=Math.min(t,e.length);return e.slice(e.length-n).reverse()}function SH(e,t){return{past:e.past.slice(0,-1),future:hH([...e.future,t]),..._H(e.savepoint,0,yH(t))}}function CH(e,t){let{past:n,future:r}=e,i=n.slice(0,t.at);return[...i,...xH(r,t.at-i.length),...t.below]}function wH(e,t){if(gH(t.after)&&!gH(t.before))return{...e,savepoint:{at:e.past.length,net:[],below:[]}};if(!gH(t.after)&&gH(t.before)){let{past:t,future:n}=e;return{past:t,future:n}}return e}function TH(e,t){return e.map(e=>e.filter(e=>!t.has(dH(e)))).filter(e=>e.length>0)}function EH(e){return e.map(DH).join(`, `)}function DH(e){return e.kind===`session`?`session setting "${e.key}"`:e.file}function OH(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 kH(e){return Array.isArray(e)&&e.every(e=>Array.isArray(e)&&e.every(OH))}function AH(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(OH)&&kH(t.below)}function jH(e){if(typeof e!=`object`||!e)return!1;let t=e;return kH(t.past)&&kH(t.future)&&(t.savepoint===void 0||AH(t.savepoint))}function MH(e,t){let n=e=>e.kind===`file`||cH(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 NH(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(jH)){let n=new Set,r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,MH(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}),Fe(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 PH=e=>!cH(e)&&!zD(e)&&e!==`update.dismissed`;var FH=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:eV(e,PH,(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 J(`back: nothing to go back to${o>0?` (${o} step(s) over a view since gone, discarded)`:``}`);return(0,Mg.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)}};function IH(e){let t=CR(e,`doctor.tmux`,[`display`,`-p`,`-t`,e.pane,`#{client_termfeatures}`]);return t.kind===`ok`?{kind:`ok`,value:t.stdout.trim().split(`,`).filter(e=>e!==``)}:{kind:`failed`,reason:t.reason}}function LH(e){return{probeTmux:IH,loadConfig:e}}function RH(e){let t={layers:e.layers,warnings:e.warning===null?[]:e.warning.split(`
|
|
205
|
-
`)};return e.error===null?{...t,kind:`loaded`,unused:e.unused}:{...t,kind:`failed`,error:e.error}}function
|
|
206
|
-
`);return}t.stdout.write(
|
|
202
|
+
`);n.push(e[0]);for(let r=1;r<e.length;r++)t.push(n),n=[e[r]]}return t.push(n),t}function pB(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 mB(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 hB(e){return{...e,cells:e.cells.map(HR)}}function gB(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,..._B(e,r)]}function _B(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 vB(e,t){let n=(e,r)=>t(e)?e.kind===`segment`?[{cells:[{name:e.name,address:r,settings:e.settings}],band:`own`,place:`flow`}]:gB(e.direction,e.children.map((t,i)=>n(t,[...r,yB(e,i)]))):[];return n(e,[]).map(e=>[...e.cells])}function yB(e,t){return{index:t,count:e.children.length,distribution:e.distribution,axis:oh[e.direction]}}const bB={compile(e,t){return{kind:`container`,direction:e.direction,when:t.when,distribution:ff(e.distribution),children:e.children.map((e,n)=>t.compileChild(e,fh(t.path,n)))}},render(e,t){return t.gate.kind===`failed`&&t.gate.report(),gB(e.direction,e.children.map((n,r)=>t.renderChild(n,t.gate.kind===`shown`,yB(e,r))))}},xB={drop:e=>e.place,above:()=>`above`},SB={drop:(e,t)=>({lead:t(),stays:e}),above:e=>({lead:e.slice(0,1).flatMap(e=>e.cells),stays:e.slice(1)})},CB={compile(e,t){return{kind:`segment`,when:t.when,name:e.name,id:sh(e),settings:t.placementSettings(e),...e.opens!==void 0&&{opens:{open:t.parse(Xn(e.opens.ref),`opens`),body:t.compileChild(e.opens.body,ph(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,wB(e,t))};function wB(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=EC(t.scope,e.settings);if(t.gate.kind===`failed`)return TB(e,a,t,t.gate.message);try{if(!FR(i.when,a))return[];let n=Zm(e.settings.theme,t.palette),o={id:e.id,effect:e.settings.effect,ground:pD(n)},s=e.opens!==void 0&&FR(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:xB[g.placement](e)})),v=fB(qR(l,m)).map((e,t)=>({cells:GR(e,{...h,lead:t===0?qR(u,m):[],trail:t===0?qR(d,m):[]}),band:`own`,place:`flow`})),y=f.map(e=>({cells:GR(qR([e],c.band),{...h,baseStyle:c.band}),band:`deeper`,place:`flow`})),b=(e,t,n)=>GR(qR([e],t),{...h,width:`auto`,baseStyle:t,padding:n}),x=_.findIndex(e=>e.band===`own`),{lead:S,stays:C}=g!==void 0&&x!==-1?SB[g.placement](v,()=>b(t.closeDisclosure(g.key),c.close,t.padding)):{lead:[],stays:v},ee=S.flatMap(e=>b(new q(` `.repeat(VR(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(VR)),[...re,...ne]}catch(n){return TB(e,a,t,n.message??String(n))}}function TB(e,t,n,r){n.onSegmentError?.(e.id,r);let i=r.replace(/\s*\n\s*/g,` `);return[{cells:GR([new q(`⚠ ${e.id}: ${i}`,{end:``})],{width:`auto`,justify:`left`,truncate:`right`,padding:0,placement:{id:e.id,effect:`bar`,ground:pD(n.palette)},lead:EB(e.lead,e,t,n),trail:EB(e.trail,e,t,n)}),band:`own`,place:`flow`}]}function EB(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 DB={container:bB,segment:CB};function OB(e){return DB[e]}function kB(e){if(`ttl`in e)return{kind:`ttl`,durationMs:xw(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 AB(e,t){switch(_h(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 jB(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:kB(n.cache),parse:AB(n.parse,n.default)});break;case`shell`:e.declareShell(t,n.command,{cwd:r,cache:kB(n.cache),parse:AB(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 MB(e,t){let n=f_.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 NB=(e,t,n,r,i)=>{let a=AF(t,kF(n,e.themeDefaults));return{variation:of[r??Up(void 0,null,a.variation)],shade:rf[i??Kp(void 0,null,a.shade)]}};function PB(e,t,n){let r=n.cwd,i={store:t.variableStore,compiled:new Map,chromeCols:Tm({endcaps:`powerline`,charset:Rp}),width:80,padding:1,seamCols:Em({endcaps:`powerline`,charset:Rp}),layout:()=>[],look:void 0},a=Dz(t.drawnAt),o={action:i,activeSegment:a},s=Object.keys(e.styles),c=qh(e.presets),l=$k(e),u=CC({extraFuncs:{...uz(i),...zz(i,a),...Uz(i,a),...Qz(i,a),...qz(i,a,t.now),...rB(i,a),...sB(o),...uB(a),styles:{fn:()=>s,argTypes:[],arity:{kind:`exact`}},presets:{fn:()=>c,argTypes:[],arity:{kind:`exact`}}},clock:t.now,drawnAt:t.drawnAt}),d=MB(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 va)n in e.variables&&h.set(t,n);for(let[t,n]of Object.entries(e.variables))n.kind===`state`&&!h.has(n.key)&&h.set(n.key,t);for(let[t,n]of Object.entries(e.segments))if(n.vars)for(let[e,r]of Object.entries(n.vars))r.kind===`state`&&!h.has(r.key)&&h.set(r.key,`${t}.${e}`);i.compiled=ZR(f,e.actions,h,l);let g=[];for(let[n,i]of Object.entries(e.variables))try{jB(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{jB(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=wh(e.segments[t.name]),r=Object.create(null);for(let[e,i]of Object.entries(n))Object.defineProperty(r,e,{enumerable:!0,get:()=>Ah(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 OB(e.kind).compile(e,n)},S=new Map;for(let t of c){let{node:n,path:r}=Xh(e,t);S.set(t,x(n,r))}let C=new Map(hp.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 hp){let r=t[n];if(!gp(r))continue;let i=`${e}.${n}`,a=C.get(n),o=a.get(r);a.set(r,o===void 0?{where:i,template:FB(f,i,r)}:{where:`${o.where}, ${i}`,template:o.template})}return{segments:_,roots:S,activeSegment:a,menuRuntime:o,globalExpressions:C,loadWarnings:g}}function FB(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 IB(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 LB(e,t,n,r){try{return t.template.evaluate(n).map(e=>e.plain).join(``)}catch(n){return r({kind:`rule`,slot:e,message:Tp(t.where,e,`the rule failed — ${n instanceof Error?n.message:String(n)}`)}),wp[e]}}function RB(e,t){return e.kind===`decided`?e.name:wp[t]}function zB(e){return e.kind===`container`?e.children.flatMap(zB):[...e.name.startsWith(`edit.`)?[]:[e.id],...e.opens===void 0?[]:zB(e.opens.body)]}function BB(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(Bp(o.colorCompatibility));let{preset:m=Gh}=c??{},h=Zh(e,m),g=c?.style??xp(`none`,e.styles),_=c?.theme??rh(void 0,null,h.palette),v=NB(e,h,_,c?.variation,c?.shade),y=c?.effect??Ap(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(RB(_,`palette`),RB(g,`style`),RB(y,`effect`))),t.menuRuntime.action.chromeCols=Tm(o),t.menuRuntime.action.padding=o.padding,t.menuRuntime.action.width=o.width,t.menuRuntime.action.seamCols=Em(o);let x=wC(n),S=vp(_,e=>{let n=IB(t,`palette`,e);return nh(LB(`palette`,n,x,f),n.where,e=>f({kind:`rule`,slot:`palette`,message:e}))}),C=vp(g,n=>xp(LB(`style`,IB(t,`style`,n),x,f),e.styles)),ee=vp(y,e=>kp(LB(`effect`,IB(t,`effect`,e),x,f)));(S!==_||C!==g||ee!==y)&&r.applyInput(b(S.name,C.name,ee.name));let te=S.value,ne=$m(te,C.value);t.menuRuntime.action.look={basePalette:te,palette:ne,decor:v};let re=(c?.effects??new hm(``)).motion(ee.value,a,{transitions:c?.transitions??nm(void 0,null,h.transitions),source:{config:t,preset:m,revision:r.stateRevision(),width:o.width},returned:mB,hold:hB});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}=ap(i,a,c),f=Oz(t.activeSegment,e.name,e.id,i,d,l,u),m=hD(f,c,o.bg,o.fg,n),h=()=>Kf(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 fz(i,h().state,c)},get band(){return fz(i,h().plane,c)},get close(){return hz(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?RR(e.when,x):IR,a=i.kind===`failed`?{...i,report:()=>{let t=`when over ${zB(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,rp(r,n)),renderBody:(e,t,n)=>w(e,a.kind===`shown`&&t,ip(n)),closeDisclosure:e=>dz(n,e),placed:re.placed};return OB(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 "${Gh}"; a miss here is merge/policy drift (have: ${[...t.roots.keys()].join(`, `)})`);let oe=e=>{let n=RR(e.when,x);if(e.kind===`container`)return n.kind===`shown`;if(uA(e.name)===void 0)return!1;if(n.kind!==`shown`)return n.kind===`failed`;try{return FR(t.segments[e.name].when,EC(x,e.settings))}catch{return!0}};t.menuRuntime.action.layout=()=>vB(T,oe).map(e=>e.flatMap(({name:e,address:t,settings:n})=>{let r=uA(e);return r===void 0?[]:[{name:r,address:t,palette:Zm(n.theme,ne)}]}));let se=pB(w(T,!0,np(v))).map(({line:e,row:t})=>{let n=KR(e.cells,o);return Dm(n.map(e=>e.owner),o,re.row(t,n))}).join(`
|
|
203
|
+
`);re.drawn();for(let e of p)f({kind:`band-floor`,message:e});return se}function*VB(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*HB(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 qh(e.presets)){for(let n of dh(Xh(e,t).node))n.when!==void 0&&(yield n.when);let n=Zh(e,t);for(let e of hp){let t=n[e];gp(t)&&(yield t)}}for(let[,t]of VB(e))t.kind===`template`&&(yield t.template),yh(t)&&t.cache&&`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 UB(e,t){return e===t||t.startsWith(`${e}.`)||e.startsWith(`${t}.`)}function WB(e,t){let n=new Set,r=new Set,i=new Set;for(let e of HB(t)){for(let r of vg(e,t.helpers).keys())n.add(r);for(let{name:n}of Sg(e,t.helpers))r.add(n);for(let n of Cg(e,t.helpers))i.add(n)}for(let[,e]of VB(t))if(yh(e)&&e.cache&&`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 qh(t.presets))for(let n of dh(Xh(t,e).node))n.kind===`segment`&&s.add(n.name);let c=(e,t)=>[...n].some(t=>UB(t,e))||t.kind===`state`&&o.has(t.key),l=e=>[...e].filter(e=>!rT(e)),u=(e,t,n)=>l(t).filter(e=>!n(e)).map(t=>({kind:e,name:t})),d=new Map(VB(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 GB=class{kind=`box`;cell;lastChangedAt;constructor(e,t,n){this.name=e,this.type=t,ZB(e,t,n,`initial value`),this.cell=Mg.observable.box(n,{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){ZB(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}},KB=class{kind=`computed`;cell;constructor(e,t,n){this.name=e,this.type=t,this.cell=(0,Mg.computed)(()=>{let e=n();return ZB(this.name,this.type,e,`computed result`),e},{keepAlive:!0})}read(){return this.cell.get()}lastUpdatedMs(){return null}},qB=class{kind=`document`;cell;lastChangedAt;constructor(e,t){this.name=e,this.cell=Mg.observable.box(XB(t),{deep:!1}),this.lastChangedAt=Date.now()}read(){return this.cell.get()}set(e){let t=XB(e);YB(this.cell.get(),t)||(this.cell.set(t),this.lastChangedAt=Date.now())}lastUpdatedMs(){return this.lastChangedAt}};function JB(e){return JSON.stringify(e)}function YB(e,t){return JB(e)===JB(t)}function XB(e){return e.kind===`ok`?{kind:`ok`,value:Ng(e.value)}:e}function ZB(e,t,n,r){let i=Pg(n);if(i!==t)throw TypeError(`Variable "${e}": ${r} type ${i} does not match declared type ${t}`)}var QB=class{nodes=new Map;defineBox(e,t,n){this.assertNotDefined(e),this.nodes.set(e,new GB(e,t,n))}defineDocument(e,t){this.assertNotDefined(e),this.nodes.set(e,new qB(e,t))}defineComputed(e,t,n){this.assertNotDefined(e);let r=e=>this.read(e);this.nodes.set(e,new KB(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,Mg.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,Mg.runInAction)(()=>n.set(t))}runInAction(e){(0,Mg.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 JB(t.read());try{return String(t.read())}catch(e){return`failed:${e instanceof Error?e.message:String(e)}`}}getNode(e){let t=this.requireNode(e);return t.kind===`document`?{name:t.name,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}:{name:t.name,type:t.type,kind:t.kind,read:()=>t.read(),lastUpdatedMs:()=>t.lastUpdatedMs()}}names(){return[...this.nodes.keys()]}requireNode(e){let t=this.nodes.get(e);if(!t)throw ReferenceError(`Unknown variable "${e}"`);return t}requireVar(e){let t=this.requireNode(e);if(t.kind===`document`)throw TypeError(`Variable "${e}" is a document; read its fields by path (.${e}.<field>)`);return t}assertNotDefined(e){if(this.nodes.has(e))throw Error(`Variable "${e}" is already declared`)}};function $B(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=gP(e),r=t===void 0?void 0:n.variables[vP(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 eV(e,t,n){return e+`\0`+t+`\0`+(n??``)}function tV(e,t){return new Set(qh(e.presets).filter(n=>Xh(e,n).path===`root`?t.root!==void 0:t.presets?.[n]?.root!==void 0))}function nV(e,t){let n=new Map,{roots:r,loaded:i,dropped:a,unreached:o}=e.state.plugins;for(let t of[...HP(e.projectDir,e.cwd,e.configFile),...r,...i,...[...a,...o].map(e=>e.path)]){let{dir:e,name:r}=Og(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}=Og(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 rV(e){return e.filter(Boolean).join(`
|
|
204
|
+
`)||null}function iV(e,t,n,r,i=()=>{}){let{layers:a,config:o,installed:s}=nF(t.layers,TF,{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??TF,l=a.find(e=>e.path===t.home)?.raw??{},u=new QB,d=new Hw(u,o.globals.default_empty_value??``,r.gitService,r.sessionState),f;try{f=PB(o,d,{cwd:e}),n.push(...f.loadWarnings),dL(o),NA(o)}catch(e){throw d.dispose(),e}return{config:o,store:u,registry:d,compiled:f,neededInputPaths:_I(o),lastRenderCellsBySegment:new Map,authoredRoots:tV(c,l),fileHeldSettings:ZI(l),unused:[...new Map(a.flatMap(e=>WB(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 aV(e,t,n,r){let i=WP(e,t,n),a={layers:i.kind===`chain`?i.layers:[],home:i.home,projectDir:e},o=[YP(e,t),qP(i)],s,c=null;try{s=iV(t,a,o,r,e=>{c=e})}catch(e){return e instanceof Jw&&o.push(...e.warnings),{layers:a.layers,home:a.home,failedFile:c,warning:rV(o),state:null,error:e instanceof Jw||e instanceof Error?e.message:String(e)}}return{layers:a.layers,home:a.home,warning:rV(o),state:s,error:null}}function oV(e,t,n){return iV(e,{layers:[],home:``,projectDir:t},[],n)}var sV=class{entries=new Map;deps;maxEntries;observers;constructor(e,t={}){this.deps=e,this.maxEntries=t.maxEntries??256,this.observers=t.observers??{}}getOrCreate(e,t,n){let r=eV(e,t,n),i=this.entries.get(r);if(i)return this.entries.delete(r),this.entries.set(r,i),i;let a=aV(e,t,n,this.deps);a.state!==null&&k(`info`,$B(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??oV(t,e,this.deps),watcher:null,watcherKey:null};if(this.entries.set(r,o),this.entries.size>this.maxEntries){let e=this.entries.entries().next().value;if(e!==void 0){let[t,n]=e;n.state.registry.dispose(),n.watcher?.release(),this.entries.delete(t)}}return this.refreshWatcher(o,a),this.observers.onReload?.(o),o}reload(e,t,n){this.reloadInto(this.getOrCreate(e,t,n))}reloadInto(e){let t=aV(e.projectDir,e.cwd,e.configFile,this.deps);e.lastWarning=t.warning,e.lastError=t.error,t.state!==null&&(k(`info`,$B(t.layers,t.state)),e.state.registry.dispose(),e.state=t.state),this.refreshWatcher(e,t),this.observers.onReload?.(e)}refreshWatcher(e,t){e.configLayers=t.layers,e.configHome=t.home,e.failedFile=t.error===null?null:t.failedFile;let n=nV(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){k(`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 cV=16384;var lV=class{startedAt=new Date;requestsTotal=0;requestsErrored=0;requestsTimedOut=0;inFlight=0;watchersOpened=0;watchersClosed=0;watchersEvicted=0;subprocessTotal=0;subprocessInFlight=0;subprocessCount=new Map;subprocessHistogram=new Map;subprocessHistogramRotator=new Map;rollingTimestamps=[];rollingHead=0;launchStats={onStart:e=>{this.subprocessTotal++,this.subprocessInFlight++,this.subprocessCount.set(e,(this.subprocessCount.get(e)??0)+1),this.recordRollingNow()},onEnd:(e,t)=>{this.subprocessInFlight=Math.max(0,this.subprocessInFlight-1),this.recordDuration(e,t)}};recordRollingNow(){let e=Date.now();if(this.rollingTimestamps.length<cV){this.rollingTimestamps.push(e);return}this.rollingTimestamps[this.rollingHead]=e,this.rollingHead=(this.rollingHead+1)%cV}recordDuration(e,t){let n=this.subprocessHistogram.get(e);if(n||(n=[],this.subprocessHistogram.set(e,n)),n.length<16){n.push(t);return}let r=(this.subprocessHistogramRotator.get(e)??0)%16;n[r]=t,this.subprocessHistogramRotator.set(e,r+1)}snapshotSubprocesses(){let e=Date.now()-6e4,t=0;for(let n of this.rollingTimestamps)n>=e&&t++;let n={};for(let[e,t]of this.subprocessCount)t>0&&(n[e]=t);let r={},i={};for(let[e,t]of this.subprocessHistogram){if(t.length===0)continue;let n=[...t].sort((e,t)=>e-t),a=Math.floor(n.length*.5),o=Math.min(n.length-1,Math.floor(n.length*.99)),s=n[a],c=n[o];s!==void 0&&(r[e]=s),c!==void 0&&(i[e]=c)}return{total:this.subprocessTotal,inFlight:this.subprocessInFlight,lastMinute:t,byCategory:n,p50DurationMs:r,p99DurationMs:i}}snapshot(e){let t=process.memoryUsage();return{pid:process.pid,version:wt,protocolVersion:3,startedAt:this.startedAt.toISOString(),uptimeSec:Math.floor((Date.now()-this.startedAt.getTime())/1e3),rssBytes:t.rss,heapUsedBytes:t.heapUsed,heapTotalBytes:t.heapTotal,externalBytes:t.external,arrayBuffersBytes:t.arrayBuffers,requests:{total:this.requestsTotal,errored:this.requestsErrored,timedOut:this.requestsTimedOut,inFlight:this.inFlight},gitCache:e.gitCache,usageCache:e.usageCache,renderCache:{size:e.renderCacheSize},effectCache:e.effectCache,watchers:{active:e.watchersActive,opened:this.watchersOpened,closed:this.watchersClosed,evicted:this.watchersEvicted},subprocesses:this.snapshotSubprocesses(),nextRestartReason:e.nextRestartReason??null,handlerProbes:e.handlerProbes}}};function uV(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 dV={load:()=>({}),save:()=>{},flush:()=>{}};var fV=class{sessions;storage;head=0;atom=(0,Mg.createAtom)(`SessionState`);constructor(e=dV,t=256){this.maxSessions=t,this.storage=e,this.sessions=new Map,this.hydrateFromStorage()}useStorage(e){this.storage=e,this.hydrateFromStorage()}hydrateFromStorage(){this.sessions=new Map(Object.entries(this.storage.load()).map(([e,t])=>[e,{values:new Map(Object.entries(t)),revision:++this.head}])),this.evictOldest(),this.persist()}get(e,t){this.atom.reportObserved();let n=this.sessions.get(e);return n?(this.touch(e,n),n.values.get(t)??null):null}revision(e){return this.atom.reportObserved(),this.sessions.get(e)?.revision??0}set(e,t,n){this.setBatch(e,[{key:t,value:n}])}setBatch(e,t){t.length!==0&&(0,Mg.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,Mg.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,Mg.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 pV(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 mV=class{timer=null;pending=null;constructor(e,t=500,n=Nt){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 pV(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 hV={default_empty_value:`string`,default_separator:`string`,palette:`string`,style:`string`,effect:`string`,preset:`string`,endcaps:`string`,variation:`string`,shade:`string`,autoWrap:`boolean`,padding:`number`,charset:`string`,updateNotice:`boolean`,transitions:`boolean`,colorCompatibility:`string`,menuGlyph:`string`},gV=new Set([`1`,`true`]),_V=new Set([`0`,`false`,``]);function vV(e,t){let n=UV(e),r=n.scope===`segment-palette`?`string`:hV[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(gV.has(t))return`true`;if(_V.has(t))return`false`;throw Error(`persistValueText: "${e}" expects boolean-ish (1, 0, true, false), got "${t}"`)}function yV(e){try{return r.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return null;throw e}}function bV(e,t,n){try{if(t===null){r.rmSync(e,{force:!0});return}r.mkdirSync(l.dirname(e),{recursive:!0}),Fe(e,t)}catch(t){let r=`config write failed (${e}): ${t.message}`;throw n(`error`,r),Error(r)}}function xV(e){return/^\s*$/.test(e)?null:_r(e)}function SV(e,t){return e!==null&&yr(e,t)!==void 0}function CV(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(CV),...i}}return e}function wV(e){if(!Lh(e))return CV(e);let{rows:t,...n}=e;return{rows:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,CV(t)])),...n}}const TV=CF,EV=TV.segments,DV=TV.presets,OV=TV.root;function kV(e,t,n,r){if(!SV(e,t)&&n===void 0)throw new J(`cannot edit ${r}: neither the config file nor the bundled default declares ${t.join(`.`)}`)}function AV(e,t){let n=WE(t);return t.scope===`segment-palette`&&kV(e,[`segments`,t.segment],EV[t.segment],n.join(`.`)),n}function jV(e){return _r(Dr(e))}function MV(){return Object.entries(OV.rows).map(([e,t])=>{let n=CV(t);return{path:[`root`],fragment:jV({rows:{[e]:n}}),unit:{path:[`root`,`rows`,e],value:n}}})}function NV(e,t){let n=e===null?void 0:yr(e,t);return n===void 0?null:{path:t,fragment:n,unit:null}}function PV(e,t){if(t===void 0)return null;let n=wV(t);return{path:e,fragment:jV(n),unit:{path:e,value:n}}}function FV(e,t){let n=[`presets`,t],r=[...n,`root`],i=DV[t];kV(e,n,i,r.join(`.`));let a=NV(e,r)??PV(r,i?.root);return a!==null&&Jr(a.fragment)?a:null}function IV(e,t){let n=qr(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 LV(e,t){return[...MV(),NV(e,[`root`]),FV(e,t)].filter(e=>e!==null).reduce(IV,new Map)}function RV(e,t,n){for(let{node:r,...i}of LV(e,t).values())if(Xr(r,n))return i;throw new J(`${zV(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 zV(e,t){return FV(e,t)?.path??[`root`]}function BV(e,t){return t.scope===`preset-root`?zV(e,t.preset):WE(t)}function VV(e,{unit:t}){return t===null?e:Vr(e,t.path,Dr(t.value),Tr)}function HV(e){let t=UE(e);if(t===null)throw Error(`"${e}" is not a valid persist target`);return t}function UV(e){let t=HV(e);if(t.scope===`preset-root`)throw Error(`"${e}" names a layout, not a value`);return t}function WV(e,t,n,r,i){i(t,n,tH(t,r)),bV(t.path,r,e.logger),e.record(t.path,n,r)}function GV(e,t,n){let r=JV(e,t,n);if(r.length>0)throw new J(`refused: ${e.above.join(`, `)} sets ${r.join(`, `)} over ${e.path}, so this click would change nothing on the bar — edit it there`)}const KV=()=>{};function qV(e,t){try{return t()}catch(t){throw!(t instanceof J)||e.above.length===0?t:new J(`${t.message} — or it is declared by ${e.above.join(`, `)}, which the bar does not edit`)}}function JV(e,t,n){let r=YV(e,t);if(r===null)return[];let i=new Set($V(QV(r),QV(n)));return $V(ZV(e,r),ZV(e,n)).filter(e=>!i.has(e))}function YV(e,t){try{return XV(e,t)}catch(e){if(e instanceof Jw)return null;throw e}}function XV(e,t){return nF(t===null?e.above:[e.path,...e.above],TF,{entered:()=>{},warned:()=>{}},{projectDir:e.projectDir,cwd:e.cwd},n=>n===e.path&&t!==null?t:r.readFileSync(n,`utf8`))}function ZV(e,t){let[n]=t.layers;return n?.path===e.path?n.config:t.base}function QV(e){return e.layers.at(-1)?.config??e.base}function $V(e,t,n=``){return!eH(e)||!eH(t)?JSON.stringify(e)===JSON.stringify(t)?[]:[n]:[...new Set([...Object.keys(e),...Object.keys(t)])].flatMap(r=>$V(e[r],t[r],n===``?r:`${n}.${r}`))}function eH(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function tH(e,t){try{return XV(e,t)}catch(e){throw e instanceof Jw?new J(`refused: the config file would not load after this click — ${e.message}`):e}}function nH(e,t){let n=UV(t),r=xV(yV(e)??``),i=r===null?void 0:yr(r,WE(n));return i!==void 0&&`value`in i?i.value:void 0}function rH(e,t,n){iH(e,t,n,[])}function iH(e,t,n,r){let i=yV(t.path),a=n.reduce((e,[t,n])=>Vr(e,AV(xV(e),UV(t)),vV(t,n),Tr),i??``);WV(e,t,i,qV(t,()=>aH(a,t.path,r,e=>e)),GV)}function aH(e,t,n,r){return n.reduce((e,{preset:n,id:i,setting:a,value:o})=>{let s=r(e,n,i),c=RV(xV(s),n,i),l=ei(VV(s,c),c.path,i,a,Dr(o));if(l===null)throw new J(`${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 oH(e,t,n){let r=xV(e),i=[`presets`,t,`root`];for(let[a,{path:o,unit:s,node:c}]of LV(r,t)){if(!Xr(c,n))continue;if(i.every((e,t)=>o[t]===e))return e;let l=s===null?xr(e,c):Dr(s.value);if(a!==`#`)return Vr(e,[...i,`rows`,a],l,Tr);if(FV(r,t)!==null)throw new J(`cannot give preset "${t}" its own copy of ${o.join(`.`)}: it already stages rows of its own over that tree`);return Vr(e,i,l,Tr)}return e}function sH(e,t){return Ur(e,t,t[0]===`presets`&&t.length>2&&!DF(t[1])?2:0)}function cH(e,t,n){let r=n.map(HV),i=yV(t.path);if(i===null)return;let a=r.reduce((e,t)=>sH(e,BV(xV(e),t)),i);a!==i&&WV(e,t,i,a,KV)}function lH(e){let t=e===null?void 0:yr(e,[`presets`]);return t?.kind===`object`?t.entries.map(e=>e.key):[]}function uH(e,t){let n=new Set([...EF,...lH(e),...t.above.flatMap(e=>Object.keys(ur.default.parse(r.readFileSync(e,`utf8`)).presets??{}))].map(qw));return Array.from({length:n.size+1},(e,t)=>`custom-${t+1}`).find(e=>!n.has(qw(e)))}function dH(e,t,n,r,i,a){let o=yV(t.path),s=xV(o??``),c=uH(s,t),l=[`presets`,c],u=qV(t,()=>FV(s,n)),d=[...u===null?[]:[[[...l,`root`],u.unit===null?xr(o??``,u.fragment):Dr(u.unit.value)]],...Object.keys(r).length===0?[]:[[[...l,`globals`],Dr(r)]]],f=i.map(([e,t])=>{let n=HE(c,e);return[AV(s,UV(n)),vV(n,t)]}),p=[...d,...f].reduce((e,[t,n])=>Vr(e,t,n,Tr),Vr(o??``,l,`{}`,Tr));return WV(e,t,o,qV(t,()=>aH(p,t.path,a.map(e=>({...e,preset:c})),oH)),GV),c}function fH(e,t,n,r){let i=yV(t.path);WV(e,t,i,Vr(i??``,[`themeDefaults`,n],Dr(r),Tr),GV)}function pH(e,t,n){if(DF(n))throw new J(`cannot delete preset "${n}": it is bundled — reset its settings instead`);let r=[`presets`,n],i=yV(t.path),a=xV(i??``);if(i===null||a===null||yr(a,r)===void 0)throw new J(`cannot delete preset "${n}": ${t.path} declares no ${r.join(`.`)} — the bar you clicked is stale; it reloads on the next render`);let o=yr(a,[`globals`,`preset`]);WV(e,t,i,[r,...o?.kind===`string`&&o.value===n?[[`globals`,`preset`]]:[]].reduce((e,t)=>sH(e,t),i),KV)}function mH(e,t,n,r){let i=HV(n);if(i.scope!==`preset-root`)throw Error(`"${n}" is not a "presets.<name>.root" target`);let a=yV(t.path),o=r.op===`remove`?r.target:r.anchor,s=qV(t,()=>RV(xV(a??``),i.preset,o)),c=VV(a??``,s),{after:l,placed:u}=hH(c,s.path,r,()=>{let e=tH(t,c).config;return qh(e.presets).map(t=>Xh(e,t).node)});if(l===null)throw new J(`${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 WV(e,t,a,l,GV),u}function hH(e,t,n,r){switch(n.op){case`remove`:return{after:Qr(e,t,n.target),placed:null};case`insert`:{let i=bA(n.segment,n.anchor,r());return{after:$r(e,t,i,n.anchor,n.relation),placed:i}}}}const gH={load:()=>({}),save:()=>{}},_H=new Set(ma.map(e=>e.sessionKey)),vH=e=>_H.has(e)||e.startsWith(tD),yH=8*1024*1024,bH={past:[],future:[]},xH=e=>e.kind===`session`?`session:${e.key}`:`file:${e.file}`;var SH=class{state=new Map;constructor(e,t,n=gH){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)??bH;return{undo:t.length,redo:n.length,sinceEdit:r?.net.length??0}}history(e){return this.state.get(e)??bH}begin(){let e=new Map,t=(t,n)=>{let r=e.get(t)??new Map,i=r.get(xH(n));r.set(xH(n),i===void 0?n:{...n,before:i.before}),e.set(t,r)},n=new Map;return{sessionState:uV(this.sessionState,e=>vH(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:AH(i,n),o=r.get(e),s=o===void 0?a:PH(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 J(`undo: nothing to undo`);return this.apply(e,n,`before`,`undo`,MH(t,n)),n}rewind(e){let t=this.history(e),{savepoint:n}=t;if(n===void 0)throw new J(`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(xH)),a=n.net.filter(e=>!i.has(xH(e))),o=TH(FH(NH(t,n),i));if(this.apply(e,a,`before`,`rewind`,{past:o,future:[],savepoint:{at:o.length,net:[],below:[]}}),r.length>0)throw new J(`rewind: ${r.map(LH).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 J(`redo: nothing to redo`);let a=[...n,i],o=TH(a);return this.apply(e,i,`after`,`redo`,{past:o,future:r.slice(0,-1),...DH(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(xH)),{past:n,future:i,savepoint:a}=this.history(e);throw this.put(e,{past:FH(n,t),future:FH(i,t),...a!==void 0&&{savepoint:{at:FH([...n,...[...i].reverse()].slice(0,a.at),t).length,net:a.net.filter(e=>!t.has(xH(e))),below:FH(a.below,t)}}}),new J(`${r}: ${o.map(LH).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):yV(t.file)}write(e,t,n){t.kind===`file`?bV(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||CH(n)>yH;){let[e,t]=n.entries().next().value;n.size>1?n.delete(e):t.past.length+t.future.length>0?n.set(e,wH(t)):(this.logger(`warn`,`settings-history: edit mode's changes for session ${e} exceed ${yH} bytes; cancel is no longer available`),n.delete(e))}this.storage.save(Object.fromEntries(n)),this.state=n}};function CH(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 wH({past:e,future:t,savepoint:n}){return e.length>0?{past:e.slice(1),future:t,...DH(n,1,[])}:{past:e,future:t.slice(1),...DH(n,0,[])}}function TH(e){return e.slice(-50)}const EH=e=>e===rD.member;function DH(e,t,n){return e===void 0?{}:{savepoint:{at:Math.max(0,e.at-t),net:OH(e.net,n),below:e.below}}}function OH(e,t){let n=new Map(e.map(e=>[xH(e),e]));for(let e of t){let t=n.get(xH(e));n.set(xH(e),t===void 0?e:{...t,after:e.after})}return[...n.values()].filter(e=>e.before!==e.after)}const kH=e=>e.map(e=>({...e,before:e.after,after:e.before}));function AH(e,t){let n=[...e.past,t],r=TH(n),{savepoint:i}=e,a=i===void 0?0:Math.max(0,i.at-e.past.length);return{past:r,future:[],...DH(i&&{at:Math.min(i.at,e.past.length),net:i.net,below:[...jH(e.future,a),...i.below]},n.length-r.length,t)}}function jH(e,t){let n=Math.min(t,e.length);return e.slice(e.length-n).reverse()}function MH(e,t){return{past:e.past.slice(0,-1),future:TH([...e.future,t]),...DH(e.savepoint,0,kH(t))}}function NH(e,t){let{past:n,future:r}=e,i=n.slice(0,t.at);return[...i,...jH(r,t.at-i.length),...t.below]}function PH(e,t){if(EH(t.after)&&!EH(t.before))return{...e,savepoint:{at:e.past.length,net:[],below:[]}};if(!EH(t.after)&&EH(t.before)){let{past:t,future:n}=e;return{past:t,future:n}}return e}function FH(e,t){return e.map(e=>e.filter(e=>!t.has(xH(e)))).filter(e=>e.length>0)}function IH(e){return e.map(LH).join(`, `)}function LH(e){return e.kind===`session`?`session setting "${e.key}"`:e.file}function RH(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 zH(e){return Array.isArray(e)&&e.every(e=>Array.isArray(e)&&e.every(RH))}function BH(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(RH)&&zH(t.below)}function VH(e){if(typeof e!=`object`||!e)return!1;let t=e;return zH(t.past)&&zH(t.future)&&(t.savepoint===void 0||BH(t.savepoint))}function HH(e,t){let n=e=>e.kind===`file`||vH(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 UH(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(VH)){let n=new Set,r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,HH(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}),Fe(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 WH=e=>!vH(e)&&!WD(e)&&e!==`update.dismissed`;var GH=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:uV(e,WH,(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 J(`back: nothing to go back to${o>0?` (${o} step(s) over a view since gone, discarded)`:``}`);return(0,Mg.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)}};function KH(e){let t=OR(e,`doctor.tmux`,[`display`,`-p`,`-t`,e.pane,`#{client_termfeatures}`]);return t.kind===`ok`?{kind:`ok`,value:t.stdout.trim().split(`,`).filter(e=>e!==``)}:{kind:`failed`,reason:t.reason}}function qH(e){return{probeTmux:KH,loadConfig:e}}function JH(e){let t={layers:e.layers,warnings:e.warning===null?[]:e.warning.split(`
|
|
205
|
+
`)};return e.error===null?{...t,kind:`loaded`,unused:e.unused}:{...t,kind:`failed`,error:e.error}}function YH(e){let{env:t,statusLine:n}=oi(e);if(t!==void 0&&!si(t))throw Error(`cannot read ${e}: \`env\` is not an object`);return{path:e,env:t??{},statusLine:n===void 0?{kind:`absent`}:si(n)?{kind:`present`,refreshInterval:n.refreshInterval}:{kind:`not-an-object`,value:n}}}function XH(e,t){return t===void 0?{kind:`unreported`}:t===null?{kind:`outside`}:{kind:`inside`,hint:t,termfeatures:e.probeTmux(t)}}function ZH(e){return{kind:`arrived`,handler:e,bar:wt}}function QH(e,t,n){let r=new Map;for(let i of dh(Xh(e,t).node)){if(i.kind!==`segment`)continue;let t=wh(e.segments[i.name])[Sh],a=Ah(i,Sh,t,e=>n(e.key));a===`bar`||a===`none`||r.set(i.drafts?.effect?.id??sh(i),a)}return[...r].map(([e,t])=>({placement:e,effect:t}))}function $H(e,t,n,r){let i=e.loadConfig(n),a=iI(i.config,r,()=>!1);return{tmux:XH(e,t.tmux),config:JH(i),effect:a.effect,placementEffects:QH(i.config,a.preset,r),transitions:a.transitions,claudeSettings:YH(ri(ni(t.claudeConfigDir)))}}function eU(e,t){let n=t.claudeSettings.path;switch(e.kind){case`claude-settings`:{let i=Vr(ai(n),e.path,JSON.stringify(e.value),Er);return r.mkdirSync(l.dirname(n),{recursive:!0}),Fe(n,i),{...t,claudeSettings:YH(n)}}default:return e.kind}}const tU={connectMs:200,budgetMs:500};async function nU(e){let n=e.includes(`--json`),r=await rU();if(r.kind!==`ok`&&(t.stderr.write(`daemon-stats: ${Ct(r)}\n`),t.exit(1)),n){t.stdout.write(JSON.stringify(r.value,null,2)+`
|
|
206
|
+
`);return}t.stdout.write(sU(r.value))}function rU(){return _t({kind:`stats`},tU,e=>`stats`in e?e.stats:void 0)}function iU(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/1024/1024).toFixed(1)}MB`}function aU(e,t){let n=e+t;return n===0?`n/a`:`${(e/n*100).toFixed(1)}%`}function oU(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 sU(e){let t=[];t.push(`cc-candybar daemon stats`),t.push(``),t.push(`process`),t.push(` pid ${e.pid}`),t.push(` version ${e.version}`),t.push(` protocol ${e.protocolVersion}`),t.push(` startedAt ${e.startedAt}`),t.push(` uptime ${oU(e.uptimeSec)}`),t.push(` rss ${iU(e.rssBytes)}`),t.push(` heapUsed ${iU(e.heapUsedBytes)}`),t.push(` heapTotal ${iU(e.heapTotalBytes)}`),t.push(` external ${iU(e.externalBytes)}`),t.push(` arrayBuffers ${iU(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 ${aU(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 ${aU(e.usageCache.hits,e.usageCache.misses)} (${e.usageCache.hits} / ${e.usageCache.hits+e.usageCache.misses})`),t.push(` sweeps ${e.usageCache.sweeps}`),t.push(``),t.push(`renderCache`),t.push(` size ${e.renderCache.size}`),t.push(``),t.push(`effectCache`),t.push(` sessions ${e.effectCache.sessions}`),t.push(` effects ${e.effectCache.effects}`),t.push(``),t.push(`watchers`),t.push(` active ${e.watchers.active}`),t.push(` opened ${e.watchers.opened}`),t.push(` closed ${e.watchers.closed}`),t.push(` evicted ${e.watchers.evicted}`),t.push(``),t.push(`subprocesses`),t.push(` total ${e.subprocesses.total}`),t.push(` inFlight ${e.subprocesses.inFlight}`),t.push(` lastMinute ${e.subprocesses.lastMinute}`);let n=Object.entries(e.subprocesses.byCategory),r=n.reduce((e,[t])=>Math.max(e,t.length),13);for(let[i,a]of n){let n=e.subprocesses.p50DurationMs[i],o=e.subprocesses.p99DurationMs[i],s=n!==void 0&&o!==void 0?` (p50 ${n}ms · p99 ${o}ms)`:``;t.push(` ${i.padEnd(r)} ${a}${s}`)}return e.nextRestartReason&&(t.push(``),t.push(`nextRestart ${e.nextRestartReason}`)),t.join(`
|
|
207
207
|
`)+`
|
|
208
|
-
`}const
|
|
209
|
-
`).join(` — `));let{version:t,handlerProbes:n}=e.value;return Array.isArray(n)?
|
|
210
|
-
`);return{inMode:n!==`0`,screen:r}}function yU(e,t){let n=_U(e,`claude-input.type`,[`load-buffer`,`-b`,gU,`-`,`;`,`send-keys`,`-t`,e.pane,`C-s`,`;`,`paste-buffer`,`-p`,`-d`,`-b`,gU,`-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 bU(){return{read:vU,type:yU}}function xU(e){if(!e)throw new J(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new J(`invalid session id "${e}"`);return e}function SU(e){return CU(()=>decodeURIComponent(e))}function CU(e){try{return e()}catch(e){throw e instanceof URIError?new J(`malformed wire encoding: ${e.message}`):e}}function wU(e,t){let n=Me({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 TU=(e,t)=>wU(SU(e),t),EU=(e,t)=>{let n=Me({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,SU(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`})`)}},DU=(e,t)=>wU(SU(e),t),OU=(e,t)=>wU(SU(e),t),kU=(e,t)=>{let n=xU(SU(e));t.navigating.get(n,`toolbar-expanded`)?t.navigating.clear(n,`toolbar-expanded`):t.navigating.set(n,`toolbar-expanded`,`1`)},AU=(e,t)=>{let[n=``,...r]=CU(()=>zn(e)),i=xU(n),a=oL(HU(t,i));if(r.length===0)throw new J(`set-state: <key>/<value> is required (have keys: ${a.listKeys().join(`, `)})`);if(r.length%2!=0)throw new J(`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 J(`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 J(`set-state: pair ${e/2+1}: ${i.reason}`);o.push({key:t,value:i.value})}PU(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})`)},jU=/^-?\d+$/;function MU(e,t,n,r){let i=e+t;return i>r?e===r?n:r:i<n?e===n?r:n:i}const NU=(e,t)=>{let[n=``,r=``,i=``]=CU(()=>zn(e)),a=xU(n);if(!r)throw new J(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!jU.test(i))throw new J(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=HU(t,a),c=oL(s),l=c.rangeParamsFor(r);if(!l)throw new J(`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&&jU.test(u)?FU(l,parseInt(u,10)):IU(`step-state`,r,l,lL(s,e=>t.sessionState.get(a,e),r)),f=MU(d,o,l.min,l.max),p=c.validate(r,String(f));if(!p.ok)throw new J(`step-state: ${p.reason}`);PU(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 PU(e,t,n,r){let i=r.filter(e=>e.key.startsWith(XE));if(i.length===0)return;let a=zI(HU(e,t),n=>e.sessionState.get(t,n),i);if(a.length>0)throw new J(`${n}: refused — ${a.join(`; `)}`)}function FU(e,t){return Math.max(e.min,Math.min(e.max,t))}function IU(e,t,n,r){if(r===null)return n.min;if(!jU.test(r))throw new J(`${e}: "${t}" shows ${JSON.stringify(r)} before any click, not an integer to step`);return FU(n,parseInt(r,10))}const LU=`render-origin`;function RU(e){return JSON.stringify(e)}function zU(e){let t;try{t=JSON.parse(e)}catch{throw new J(`render origin is not JSON: ${e}`)}if(typeof t!=`object`||!t)throw new J(`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 J(`render origin has the wrong shape: ${e}`);return{projectDir:n,cwd:r,configFile:i}}function BU(e,t){let n=e.sessionState.get(t,LU);if(n===null)throw new J(`session ${t} has not rendered yet — no config to act on`);return zU(n)}function VU(e,t,n){let r=e.sessionState.get(t,LU);if(r===null)return;let i=zU(r),{path:a}=UU(i);n.some(e=>e.kind===`file`&&e.file===a)&&e.reloadConfig(i)}function HU(e,t){return e.configFor(BU(e,t))}function UU(e){return VP(e.projectDir,e.cwd,e.configFile??void 0)}function WU(e,t){return{record:(n,r,i)=>e.journal.file(t,n,r,i),logger:e.dlog}}const GU=(e,t)=>{let[n=``,r=``,i=``]=CU(()=>zn(e)),a=xU(n),o=BU(t,a),s=t.configFor(o),c=OA(s);if(!r)throw new J(`set-config: <key>/<value> is required (have keys: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new J(`set-config: ${l.reason}`);let u=UU(o),d=LI(s,e=>t.sessionState.get(a,e),r);qV(WU(t,a),u,[[d.key,l.value]]),t.reloadConfig(o),t.dlog(`info`,`set-config: ${d.key}=${l.value} → ${u.path} (session=${a})`)},KU=(e,t)=>{let[n=``,r=``,i=``]=CU(()=>zn(e)),a=xU(n);if(!r)throw new J(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!jU.test(i))throw new J(`step-config: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=BU(t,a),c=t.configFor(s),l=OA(c),u=l.rangeParamsFor(r);if(!u)throw new J(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${l.listKeys().join(`, `)})`);let d=UU(s),f=LI(c,e=>t.sessionState.get(a,e),r),p=KV(d.path,f.key),m=typeof p==`number`?FU(u,p):IU(`step-config`,r,u,AA(f.globals,r)),h=MU(m,o,u.min,u.max),g=l.validate(r,String(h));if(!g.ok)throw new J(`step-config: ${g.reason}`);qV(WU(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})`)},qU=(e,t)=>{let[n=``]=CU(()=>zn(e)),r=xU(n),i=BU(t,r),a=t.configFor(i),o=e=>t.sessionState.get(r,e),s=FI(a,o),c=RI(a,o);if(s.length+c.length===0){t.dlog(`info`,`save: nothing unsaved (session=${r})`);return}let l=oL(a),u=s.map(e=>{let t=l.validate(e.sessionKey,e.value);if(!t.ok)throw new J(`save: ${t.reason}`);return[e.target,t.value]});YU(`save`,l,c);let d=UU(i);JV(WU(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(JU)].join(` `)} → ${d.path} (session=${r})`)},JU=e=>`${e.preset}/${e.id}.settings.${e.setting}=${Oh(e.value)}`;function YU(e,t,n){for(let r of n){let n=t.validate(r.key,Oh(r.value));if(!n.ok)throw new J(`${e}: ${n.reason}`)}}const XU=(e,t)=>{let[n=``]=CU(()=>zn(e)),r=xU(n),i=BU(t,r),a=t.configFor(i),o=HI(a,e=>t.sessionState.get(r,e)),s=oL(a),c=o.picks.map(e=>{let t=s.validate(e.sessionKey,e.value);if(!t.ok)throw new J(`save-preset: ${t.reason}`);return[e.configKey,t.value]});YU(`save-preset`,s,o.placements);let l=UU(i),u=tH(WU(t,r),l,o.from,o.globals,c,o.placements);t.reloadConfig(i);for(let e of[...ma.map(e=>e.sessionKey),...o.placements.map(e=>e.key)])t.sessionState.clear(r,e);t.sessionState.set(r,pa.preset.sessionKey,u),t.dlog(`info`,`save-preset: ${[`${u} from=${o.from}`,...c.map(([e,t])=>`${e}=${t}`),...o.placements.map(JU)].join(` `)} → ${l.path} (session=${r})`)},ZU=(e,t)=>{let[n=``]=CU(()=>zn(e)),r=xU(n),i=BU(t,r),a=WI(t.configFor(i),e=>t.sessionState.get(r,e));if(a.kind===`rule`)throw new J(`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=UU(i);nH(WU(t,r),o,a.theme,a.look),t.reloadConfig(i);let s=new Set(FI(t.configFor(i),e=>t.sessionState.get(r,e)).map(e=>e.sessionKey)),c=gh.map(e=>pa[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} ${gh.map(e=>`${e}=${a.look[e]}`).join(` `)} → ${o.path} (session=${r})`)},QU=(e,t)=>{let[n=``,r=``]=CU(()=>zn(e)),i=xU(n);if(!r)throw new J(`delete-preset: <name> is required (shape: <sessionId>/<name>)`);let a=BU(t,i),o=UU(a);rH(WU(t,i),o,r),t.reloadConfig(a);let s=pa.preset.sessionKey;t.sessionState.get(i,s)===r&&t.sessionState.clear(i,s),t.dlog(`info`,`delete-preset: ${r} ← ${o.path} (session=${i})`)},$U=(e,t)=>{let[n=``,...r]=CU(()=>zn(e)),i=xU(n),a=BU(t,i),o=OA(t.configFor(a)).listKeys(),s=r.length===0?[``]:r.filter(e=>!o.includes(e));if(s.length>0)throw new J(`reset-config: unknown config key "${s.join(`", "`)}" (have: ${o.join(`, `)})`);let c=UU(a),l=r.map(GI),u=l.flatMap(e=>e.fileKeys),d=l.flatMap(e=>e.sessionKeys);QV(WU(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 eW(e,t){let n=(e,t)=>[...dh(Xh(e,t).node)].filter(e=>e.kind===`segment`),r=new Set(qh(t.presets).flatMap(e=>n(t,e).map(t=>ZE(Hw(e),sh(t)))));return qh(e.presets).flatMap(t=>n(e,t).map(e=>({member:ZE(Hw(t),sh(e)),node:e})).filter(({member:e})=>!r.has(e)))}function tW(e,t){return e.flatMap(({member:e,node:n})=>[...Object.values(n.drafts??{}).map(e=>e.key),...e===t?[GE]:[]])}const nW=(e,t)=>{let[n=``,r=``,i=``]=CU(()=>zn(e)),a=xU(n),o=BU(t,a),s=t.configFor(o),c=OA(s);if(!r)throw new J(`apply-layout-op: <key>/<op> is required (have: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new J(`apply-layout-op: ${l.reason}`);let u=mA(l.value);if(u===null)throw new J(`apply-layout-op: "${l.value}" is not a layout op token`);let d=UU(o),f=iH(WU(t,a),d,r,u);t.reloadConfig(o);let p=tW(eW(s,t.configFor(o)),t.sessionState.get(a,GE)).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})`)},rW=(e,t)=>{let[n=``]=CU(()=>zn(e)),r=xU(n);t.journal.commit();let i=t.history.undo(r);VU(t,r,i),t.dlog(`info`,`undo: restored ${EH(i)} (session=${r})`)},iW=(e,t)=>{let n=xU(SU(e)),{step:r,discarded:i}=t.navigation.back(n,t.sessionState,oL(HU(t,n))),a=r.map(e=>`${e.key}=${e.before??`∅`}`).join(` `);t.dlog(`info`,`back: ${a} discarded=${i} (session=${n})`)},aW=(e,t)=>{let n=xU(SU(e));t.journal.commit();let r=t.history.rewind(n);VU(t,n,r),t.dlog(`info`,`rewind: put back ${EH(r)||`nothing`} as edit mode found it (session=${n})`)},oW=(e,t)=>{let[n=``]=CU(()=>zn(e)),r=xU(n);t.journal.commit();let i=t.history.redo(r);VU(t,r,i),t.dlog(`info`,`redo: re-applied ${EH(i)} (session=${r})`)},sW=(e,t)=>{xU(SU(e)),t.applyUpdate()},cW=`client-hints`;function lW(e,t){let n=e.sessionState.get(t,cW);if(n===null)throw new J(`session ${t} has not rendered yet — no client facts are recorded for it`);let r;try{r=JSON.parse(n)}catch{throw new J(`client hints record is not JSON: ${n}`)}if(typeof r!=`object`||!r)throw new J(`client hints record is not an object: ${n}`);return rt(r)}function uW(e,t,n){let r=OD(n);e.sessionState.setBatch(t,ND(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed(${1+(e.verdict.more?.length??0)})`}`).join(` `)} (session=${t})`)}function dW(e,t){return{...UH(e.doctor,lW(e,t),BU(e,t),n=>e.sessionState.get(t,n)),urlHandler:VH(e.clientVersion)}}const fW=(e,t)=>{let n=xU(SU(e));uW(t,n,dW(t,n))},pW=(e,t)=>{let n=nU(SU(e));if(n===null)throw new J(`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`}`)},mW=(e,t)=>{let[n=``,r=``]=CU(()=>zn(e)),i=xU(n),a=kD(r);if(a===void 0)throw new J(`doctor-fix: unknown check "${r}"`);let o=dW(t,i),s=a.probe(o);if(s.ok||s.fix===void 0)throw new J(`doctor-fix: ${a.label} — ${s.ok?`nothing to fix`:s.reason}`);let c=WH(s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.path.join(`.`)}=${JSON.stringify(s.fix.value)} (session=${i})`),uW(t,i,c)},hW=(e,t)=>{let[n=``,...r]=CU(()=>zn(e)),i=xU(n),a=BU(t,i),o=Object.values(t.configFor(a).actions).filter(e=>`ceiling`in e).find(e=>{let t=AM(e);return t.length===r.length&&t.every((e,t)=>e===r[t])});if(o===void 0)throw new J(`ceiling: "${r.join(` `)}" is not a move this config declares`);let s=o.ceiling===`set`?{kind:`set`,to:o.to}:{kind:`clear`},c=BF({sessionId:i,projectDir:a.projectDir,cwd:a.cwd},lW(t,i));t.memento.move(c,s),t.dlog(`info`,`ceiling: ${r.join(` `)} (session=${i} claudeConfigDir=${c.claudeConfigDir})`)},gW=(e,t)=>{let[n=``,r=``]=CU(()=>zn(e)),i=xU(n),a=Object.values(t.configFor(BU(t,i)).actions).filter(e=>`slash`in e),o=a.find(e=>e.slash===r);if(o===void 0)throw new J(`${JSON.stringify(r)} is not a command this config declares (it declares: ${[...new Set(a.map(e=>e.slash))].join(`, `)||`none`})`);let s=hU(t.claudeInput,lW(t,i).tmux,o.slash);if(s.kind===`refused`)throw t.dlog(`warn`,`slash: ${r} refused — ${s.reason} (session=${i})`),new J(`${r} was not typed: ${s.reason}`);t.dlog(`info`,`slash: typed ${r} into ${s.pane} (session=${i})`)},_W=`config-override`,vW=new Map([[_n,TU],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new J(`load-config: expected <sessionId>/<path> (missing separator)`);let r=xU(CU(()=>decodeURIComponent(e.slice(0,n)))),i=CU(()=>decodeURIComponent(e.slice(n+1))).trim();if(i!==``){if(!i.startsWith(`/`))throw new J(`load-config: path must be absolute, got "${i}"`);if(!/\.(json5?|json)$/.test(i))throw new J(`load-config: path must end with .json5 or .json, got "${i}"`)}i===``?(t.sessionState.clear(r,_W),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,_W,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[vn,EU],[gn,AU],[N,NU],[Sn,GU],[Cn,KU],[Dn,$U],[wn,qU],[P,XU],[Tn,ZU],[En,QU],[On,nW],[kn,rW],[An,oW],[jn,iW],[Mn,aW],[bn,DU],[xn,OU],[yn,kU],[Nn,sW],[Pn,fW],[Fn,mW],[In,pW],[Ln,hW],[Rn,gW]]),yW=new Set([gn,N,Sn,Cn,Dn,wn,P,Tn,En,On,kn,An,jn,Mn,yn,Nn,Pn,Fn,Ln,Rn]),bW=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Hn(Bn(e))){if(!i&&yW.has(a)){let e=zn(o);e.length>0&&e[0]&&(i=e[0])}let e=vW.get(a);if(!e){n.push(`unknown effect verb "${a}"`);continue}try{e(o,t)}catch(e){e instanceof J||(r=!0),n.push(`${a}: ${e instanceof Error?e.message:String(e)}`)}}if(n.length>0){i&&t.sessionState.set(i,`click.error`,n.join(`
|
|
211
|
-
`));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new J(e)}};function xW(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 SW=new Map([...vW,[hn,bW]].map(([e,t])=>[e,xW(t)]));Object.freeze([...SW.keys()]);const CW=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`]),wW=[[`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`]],TW=[[`workspace.added_dirs`,`string-list`]];function EW(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of wW){let i=kW(n,e);if(i==null)t.missingRequired.push(e);else{let n=DW(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let[e,r]of TW){let i=kW(n,e),a=i===void 0?r:OW(i);a!==r&&t.typeMismatches.push({path:e,expected:r,got:a})}for(let e of Object.keys(n))CW.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function DW(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function OW(e){return Array.isArray(e)&&e.every(e=>DW(e)===`string`)?`string-list`:DW(e)}function kW(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 AW(e,t){switch(e){case`vars`:return{what:e,vars:jW(t)};case`segments`:return{what:e,segments:IW(t)};case`config`:return{what:e,config:BW(t)}}}function jW(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=PW(r),a=t.names().sort(),o=[];for(let e of a){let r=t.getNode(e),a=MW(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:NW(r.lastUpdatedMs())})}return o}function MW(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 NW(e){return e===null?null:Math.max(0,Date.now()-e)}function PW(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,FW(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}`,FW(i));return t}function FW(e){return e.kind}function IW(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=RW(n),o=LW(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:zW(t.template,n.helpers,i),placements:(o.get(e)??[]).map(e=>({id:e,lastRender:r.get(e)??null}))})}return s}function LW(e){let t=new Map;for(let n of qh(e.presets))for(let r of dh(Xh(e,n).node)){if(r.kind!==`segment`)continue;let e=t.get(r.name)??[],n=sh(r);e.includes(n)||t.set(r.name,[...e,n])}return t}function RW(e){let t=[],n=new Set;for(let r of dh(Bh(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 zW(e,t,n){let r=new Set;for(let i of vg(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 BW(e){return e===null?null:e.config}const VW=[`vars`,`segments`,`config`];function HW(e){return typeof e==`string`&&VW.includes(e)}function UW(e){return Math.max(1,e-2)}var WW=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 GW(e,t){for(let n of Object.entries(t))e.push(n)}const KW={ok:`info`,"bad-request":`warn`,threw:`error`};function qW(e){switch(e.kind){case`ok`:return[];case`bad-request`:return[[`problems`,e.problems.join(`; `)]];case`threw`:return[[`error`,y(e.error)]]}}const JW=/^[^\s"=\\]+$/,YW=e=>JW.test(e)?e:JSON.stringify(e);function XW(e,t,n){let r=[...e,[`took`,`${n}ms`],[`outcome`,t.kind],...qW(t)];return{level:KW[t.kind],line:`render${r.map(([e,t])=>` ${e}=${YW(t)}`).join(``)}`}}const ZW=new $B,QW=new eU;Ae(ZW.launchStats);const $W=new tw({counters:ZW,logger:k}),eG=kR({watchers:$W,logger:k}),{gitProvider:tG,usageStore:nG,mementoProvider:rG}=eG,iG=new nV,aG=new fH(iG,k),oG=new FH,sG=new gm,cG=new WW(Qe()),lG=new ZB({gitService:tG,sessionState:iG,watchers:$W},{observers:{onReload:e=>k(`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)}`)}}),uG=60*1e3;function dG(){let e=import.meta.url,n=[];e.startsWith(`file://`)&&n.push(te(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){k(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),DG(0);return}}catch(e){k(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,uG),a.unref())},checkNow:o}}const fG=dG(),pG=OL({entryUrl:import.meta.url,intervalMs:uG,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>fG.checkNow(),log:k});let mG=null,hG=null,gG=0;function _G(){t.on(`uncaughtException`,e=>{k(`error`,`uncaughtException: ${e.stack||e.message}`),DG(1)}),t.on(`unhandledRejection`,e=>{k(`error`,`unhandledRejection: ${String(e)}`),DG(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{k(`info`,`received ${e}, shutting down`),DG(0)});try{gG=Vt(t.env)}catch(e){k(`error`,`refusing to boot: ${e.message}`),DG(1);return}mG=ea(t.pid);let e=ua(fa(mG));if(!e.decision.allow){k(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),DG(1);return}hG=e.registryPath,r.mkdirSync(ze(),{recursive:!0}),Ue(Be()),iG.useStorage(new iV(Ke(),500,k)),aG.useStorage(NH(qe(),k)),ra({anchor:na(t.env),isAlive:ia,onOrphaned:e=>{k(`info`,`parent watchdog: ${e}; shutting down`),DG(0)}}),vG(S.createServer({allowHalfOpen:!1},e=>{OG(e)}),Be(),!1)}function vG(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){k(`error`,`server error: ${i.message}`),DG(1);return}if(r){k(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}yG(e,n)}),e.listen(n,()=>bG(n))}function yG(e,n){let i=Wi(Gi(We(n)),(e,t)=>$i(e,t,{readStartTime:Qi,pidAlive:ia}));if(i.kind===`attach-and-exit`){k(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}k(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){k(`error`,`cannot unlink stale socket ${n}: ${e.message}`),DG(1);return}}vG(e,n,!0)}function bG(e){let n=Ji(e);if(n.kind!==`present`){k(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),DG(0);return}wG(e);try{r.chmodSync(e,384)}catch(e){k(`warn`,`chmod socket failed: ${e.message}`)}k(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(C.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(gG/1048576)}MB`),M();let i=cG.reset();i!==null&&k(`warn`,`diagnostic dump wipe failed: ${i}`),fG.arm(),pG.arm(),CG(),xG(e,n.identity)}function xG(e,n){Zi({bound:n,myPid:t.pid,readIdentity:()=>Ji(e),readLease:()=>Gi(We(e)),shutdown:e=>DG(e),log:k}).arm()}let SG=null;function CG(){SG=Gt(Yt(ZW.startedAt.getTime(),e=>DG(e),{rssLimitBytes:gG})),SG.arm()}function wG(e){let n=Ki(We(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:mG});n!==null&&k(`warn`,`lease write failed: ${n}`)}let TG=0,EG=!1;function DG(e){if(!EG){EG=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{tG.close()}catch(e){k(`warn`,`gitService close failed: ${e.message}`)}try{nG.close()}catch(e){k(`warn`,`usageStore close failed: ${e.message}`)}try{$W.closeAll()}catch(e){k(`warn`,`watcherRegistry close failed: ${e.message}`)}try{iG.flush()}catch(e){k(`warn`,`sessionState flush failed: ${e.message}`)}qi(Ge(),t.pid),hG!==null&&da(hG,t.pid,ca,e=>r.unlinkSync(e)),t.exit(e)}}function OG(e){TG++,ZW.inFlight=TG;let t=!1,n=(n,r)=>{if(t){r!==null&&k(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>DG(r);try{e.end(mt(n),i)}catch(e){k(`warn`,`response write failed: ${e.message}`),i?.()}},r=!1,i=setTimeout(()=>{r=!0,ZW.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),a=ht(e=>{jG(e,()=>r).then(e=>n(e.resp,e.exitAfterFlush)).catch(e=>{k(`error`,`handler threw: ${y(e)}`),n(AG(e),null)})},e=>{k(`warn`,`frame parse failed: ${e.message}`),n({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)});e.on(`data`,a),e.on(`error`,e=>{k(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(i),TG=Math.max(0,TG-1),ZW.inFlight=TG})}const kG=e=>({resp:e,exitAfterFlush:null}),AG=e=>({ok:!1,error:e instanceof Error?e.message:y(e),code:`RENDER_FAILED`,daemonV:3});async function jG(e,t){if(!e||typeof e!=`object`||typeof e.v!=`number`)return kG({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?k(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):k(`info`,`version mismatch: client=${e.v} < daemon=3; client is stale — staying up`),{resp:{ok:!1,error:`protocol v${e.v} not supported (daemon at v3)`,code:`VERSION_MISMATCH`,daemonV:3},exitAfterFlush:e.v>3?0:null};if(e.kind===`shutdown`)return{resp:{ok:!0,output:``},exitAfterFlush:0};if(e.kind===`stats`)return kG({ok:!0,stats:ZW.snapshot({gitCache:tG.getStats(),usageCache:nG.getStats(),renderCacheSize:lG.size,effectCache:sG.getStats(),watchersActive:$W.size(),nextRestartReason:SG?.describeNextRestart()??null,handlerProbes:QW.list()})});if(e.kind===`render`){ZW.requestsTotal++;let n=new Date,r=pw(n),i=n.getTime(),a=[],o=await zG(e,r,a).catch(e=>({outcome:{kind:`threw`,error:e},resp:AG(e)}));o.outcome.kind!==`ok`&&ZW.requestsErrored++,GW(a,{timedOut:t()?`Y`:`N`});let{level:s,line:c}=XW(a,o.outcome,Date.now()-i);return k(s,c),kG(o.resp)}if(e.kind===`click`)return kG(RG(e.verb,e.value,ft(e.clientVersion)));if(e.kind===`debug`){if(!HW(e.what))return kG({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${VW.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=lG.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?IG(t.lastRenderCellsBySegment,t.config.globals.charset??`unicode`,t.config.globals.colorCompatibility??`truecolor`):FG};return kG({ok:!0,debug:AW(e.what,n)})}return kG({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function MG(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:oP(t,n.config),unknownFlagsError:i.length>0?`Unknown flags: ${i.join(`, `)}`:null}}const NG={sessionState:iG,dlog:k,applyUpdate:()=>pG.act(),doctor:LH(e=>{let t=[e.projectDir,e.cwd,e.configFile??void 0];lG.reload(...t);let n=lG.getOrCreate(...t);return{layers:n.configLayers,error:n.lastError,warning:n.lastWarning,unused:n.state.unused,config:n.state.config}}),probes:QW,memento:rG,claudeInput:bU(),history:aG,navigation:oG,configFor:e=>lG.getOrCreate(e.projectDir,e.cwd,e.configFile??void 0).state.config,reloadConfig:e=>lG.reload(e.projectDir,e.cwd,e.configFile??void 0)};NG.reloadConfig;const PG={endcaps:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,charset:Rp,width:1/0},FG=new Map;function IG(e,t,n){let r=new Map;for(let[i,a]of e)r.set(i,Dm(a,{...PG,charset:t,colorCompatibility:n}));return r}const LG={...eG,history:e=>aG.depth(e)};function RG(e,t,n){let r=SW.get(e);if(!r)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return r(t,{...NG,clientVersion:n}),{ok:!0,output:``}}catch(e){let t=e instanceof J?`BAD_REQUEST`:`RENDER_FAILED`;return{ok:!1,error:String(e instanceof Error?e.message:e),code:t,daemonV:3}}}async function zG(e,t,n){let{report:r}=EW(e.hookData);for(let e of r.unknownTopLevelFields)k(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let i=[];for(let e of r.missingRequired)i.push(`missing required field '${e}'`);for(let{path:e,expected:t,got:n}of r.typeMismatches)i.push(`field '${e}' expected ${t}, got ${n}`);if(f(e.cwd)||i.push(`request 'cwd' is not an absolute path: "${e.cwd}"`),i.length>0)return{outcome:{kind:`bad-request`,problems:i},resp:{ok:!1,error:`malformed hookData: ${i.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3}};GW(n,{sid:e.hookData.session_id,at:t.toFixed(3)});let a=e.hookData.workspace.project_dir,{configFile:o,unknownFlagsError:s}=MG(e.args,e.cwd),c=e.hookData.session_id,l=rt(e),u=it(e,l),d=at(u);GW(n,{termCols:String(l.termCols??`?`),termRows:String(l.termRows??`?`),refused:u.map(e=>e.hint).join(`,`)||`-`});let p=JSON.stringify(l);iG.get(c,`client-hints`)!==p&&iG.set(c,cW,p);let m=iG.get(c,`config-override`)??o??l.configEnv,h=lG.getOrCreate(a,e.cwd,m),g=RU({projectDir:a,cwd:e.cwd,configFile:m??null});iG.get(c,`render-origin`)!==g&&iG.set(c,LU,g);let _=l.termCols,v=UW(_??120),y=Om(l.termRows);GW(n,{width:String(v)});let{authoredRoots:b}=h.state,x=t=>iG.get(e.hookData.session_id,t),S=$F(h.state.config,x,e=>b.has(e)),C=await gI(e.hookData,t,{...LG,navigation:e=>oG.depth(e,iG,oL(h.state.config))},e.cwd,h.state.neededInputPaths(S.preset),S,l,{...qI(h.state.config,h.state.fileHeldSettings,x),configPath:h.configLayers.includes(h.configHome)?h.configHome:null});GW(n,{prompts:String(C.metrics?.messageCount??`-`),nonPrompts:String(C.metrics?.nonPrompts??`-`)});let ee=[],w=eI(S,v),te=sG.of(c),ne=AB(h.state.config,h.state.compiled,h.state.store,h.state.registry,C,t,w,{perSegmentSink:h.state.lastRenderCellsBySegment,onRenderWarning:e=>ee.push(e)},{...tI(S),effects:te}),re=iG.get(e.hookData.session_id,`click.error`);re&&iG.clear(e.hookData.session_id,`click.error`);let ie=[s,d,h.lastError,re].filter(Boolean).join(`
|
|
212
|
-
`),
|
|
213
|
-
`)),
|
|
214
|
-
`}}}const
|
|
215
|
-
`);return}t.stdout.write(
|
|
216
|
-
`;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?``:` ${
|
|
208
|
+
`}const cU=e=>({kind:`ok`,value:e}),lU=e=>({kind:`failed`,reason:e});var uU=class{arrivals=[];arrive(e){this.arrivals=[...this.arrivals,e].slice(-16)}list(){return this.arrivals}};const dU=/^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/;function fU(e){return dU.test(e)?e:null}function pU(e){let t=e.opener();if(t.kind===`failed`)return t;if(t.value===null)return cU(null);let n=t.value,r=e.script(n);if(r.kind===`failed`)return cU({app:n,missing:lU(`its script could not be read (${r.reason})`)});let i=Oi(r.value);return cU({app:n,missing:i===null?lU("its script is not one `cc-candybar install` wrote"):cU([i.node,i.script].filter(t=>!e.exists(t)))})}async function mU(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 hU(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(`${mn}://${In}/${n}`);return(r===null?await mU(e,n):null)??{kind:`lost`,unopened:r,opener:pU(e)}}function gU(e,t,n){let r=Me({bin:t,args:[...n],category:e,timeoutMs:5e3});return r.ok?cU(r.stdout):lU(r.stderr.trim()||r.error||r.reason)}const _U=`ObjC.import("AppKit");var u = $.NSWorkspace.sharedWorkspace.URLForApplicationToOpenURL($.NSURL.URLWithString("${mn}://probe"));u.isNil() ? "" : u.path.js`;async function vU(){let e=await rU();if(e.kind!==`ok`)return lU(Ct(e).split(`
|
|
209
|
+
`).join(` — `));let{version:t,handlerProbes:n}=e.value;return Array.isArray(n)?cU({version:t,arrivals:n}):lU(`the running daemon (${t}) predates this check`)}function yU(){return{platform:process.platform,sockets:{own:Be(),handler:Ve()},now:Date.now,nonce:w,daemon:vU,open:e=>{let t=gU(`doctor.open`,`/usr/bin/open`,[`-g`,e]);return t.kind===`ok`?null:t.reason},pause:()=>new Promise(e=>setTimeout(e,100)),opener:()=>{let e=gU(`doctor.launch-services`,`/usr/bin/osascript`,[`-l`,`JavaScript`,`-e`,_U]);if(e.kind===`failed`)return e;let t=e.value.trim();return cU(t===``?null:t)},script:e=>gU(`doctor.osadecompile`,`/usr/bin/osadecompile`,[ki(e)]),exists:r.existsSync}}const bU=/^─{20,}/,xU=/^❯(\s|$)/,SU=/›\s*stashed$/;function CU(e){if(e.inMode)return{kind:`in-mode`};let t=e.screen.map(e=>e.trimEnd()),n=t.flatMap((e,t)=>bU.test(e)?[t]:[]).at(-2);return n===void 0||!xU.test(t[n+1]??``)?{kind:`no-prompt`}:SU.test(t[n-1]??``)?{kind:`stashed`}:{kind:`ready`}}const wU={"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 TU(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=CU(e.read(t));if(r.kind!==`ready`)return{kind:`refused`,reason:wU[r.kind]};let i=e.type(t,n);return i.kind===`typed`?{kind:`typed`,pane:t.pane}:i}const EU=`cc-candybar-slash`;function DU(e,t,n,r){let i=OR(e,t,n,r);if(i.kind===`failed`)throw Error(i.reason);return i}function OU(e){let t=DU(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(`
|
|
210
|
+
`);return{inMode:n!==`0`,screen:r}}function kU(e,t){let n=DU(e,`claude-input.type`,[`load-buffer`,`-b`,EU,`-`,`;`,`send-keys`,`-t`,e.pane,`C-s`,`;`,`paste-buffer`,`-p`,`-d`,`-b`,EU,`-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 AU(){return{read:OU,type:kU}}function jU(e){if(!e)throw new J(`session id is required`);if(e.includes(`/`)||e.includes(`..`))throw new J(`invalid session id "${e}"`);return e}function MU(e){return NU(()=>decodeURIComponent(e))}function NU(e){try{return e()}catch(e){throw e instanceof URIError?new J(`malformed wire encoding: ${e.message}`):e}}function PU(e,t){let n=Me({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 FU=(e,t)=>PU(MU(e),t),IU=(e,t)=>{let n=Me({bin:`/usr/bin/open`,args:[`-a`,`Visual Studio Code`,MU(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`})`)}},LU=(e,t)=>PU(MU(e),t),RU=(e,t)=>PU(MU(e),t),zU=(e,t)=>{let n=jU(MU(e));t.navigating.get(n,`toolbar-expanded`)?t.navigating.clear(n,`toolbar-expanded`):t.navigating.set(n,`toolbar-expanded`,`1`)},BU=(e,t)=>{let[n=``,...r]=NU(()=>zn(e)),i=jU(n),a=dL(QU(t,i));if(r.length===0)throw new J(`set-state: <key>/<value> is required (have keys: ${a.listKeys().join(`, `)})`);if(r.length%2!=0)throw new J(`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 J(`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 J(`set-state: pair ${e/2+1}: ${i.reason}`);o.push({key:t,value:i.value})}WU(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})`)},VU=/^-?\d+$/;function HU(e,t,n,r){let i=e+t;return i>r?e===r?n:r:i<n?e===n?r:n:i}const UU=(e,t)=>{let[n=``,r=``,i=``]=NU(()=>zn(e)),a=jU(n);if(!r)throw new J(`step-state: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!VU.test(i))throw new J(`step-state: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=QU(t,a),c=dL(s),l=c.rangeParamsFor(r);if(!l)throw new J(`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&&VU.test(u)?GU(l,parseInt(u,10)):KU(`step-state`,r,l,mL(s,e=>t.sessionState.get(a,e),r)),f=HU(d,o,l.min,l.max),p=c.validate(r,String(f));if(!p.ok)throw new J(`step-state: ${p.reason}`);WU(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 WU(e,t,n,r){let i=r.filter(e=>e.key.startsWith(tD));if(i.length===0)return;let a=WI(QU(e,t),n=>e.sessionState.get(t,n),i);if(a.length>0)throw new J(`${n}: refused — ${a.join(`; `)}`)}function GU(e,t){return Math.max(e.min,Math.min(e.max,t))}function KU(e,t,n,r){if(r===null)return n.min;if(!VU.test(r))throw new J(`${e}: "${t}" shows ${JSON.stringify(r)} before any click, not an integer to step`);return GU(n,parseInt(r,10))}const qU=`render-origin`;function JU(e){return JSON.stringify(e)}function YU(e){let t;try{t=JSON.parse(e)}catch{throw new J(`render origin is not JSON: ${e}`)}if(typeof t!=`object`||!t)throw new J(`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 J(`render origin has the wrong shape: ${e}`);return{projectDir:n,cwd:r,configFile:i}}function XU(e,t){let n=e.sessionState.get(t,qU);if(n===null)throw new J(`session ${t} has not rendered yet — no config to act on`);return YU(n)}function ZU(e,t,n){let r=e.sessionState.get(t,qU);if(r===null)return;let i=YU(r),{path:a}=$U(i);n.some(e=>e.kind===`file`&&e.file===a)&&e.reloadConfig(i)}function QU(e,t){return e.configFor(XU(e,t))}function $U(e){return KP(e.projectDir,e.cwd,e.configFile??void 0)}function eW(e,t){return{record:(n,r,i)=>e.journal.file(t,n,r,i),logger:e.dlog}}const tW=(e,t)=>{let[n=``,r=``,i=``]=NU(()=>zn(e)),a=jU(n),o=XU(t,a),s=t.configFor(o),c=NA(s);if(!r)throw new J(`set-config: <key>/<value> is required (have keys: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new J(`set-config: ${l.reason}`);let u=$U(o),d=HI(s,e=>t.sessionState.get(a,e),r);rH(eW(t,a),u,[[d.key,l.value]]),t.reloadConfig(o),t.dlog(`info`,`set-config: ${d.key}=${l.value} → ${u.path} (session=${a})`)},nW=(e,t)=>{let[n=``,r=``,i=``]=NU(()=>zn(e)),a=jU(n);if(!r)throw new J(`step-config: <key> is required (shape: <sessionId>/<key>/<by>)`);if(!VU.test(i))throw new J(`step-config: delta must be an integer, got "${i}"`);let o=parseInt(i,10),s=XU(t,a),c=t.configFor(s),l=NA(c),u=l.rangeParamsFor(r);if(!u)throw new J(`step-config: key "${r}" is not a bounded (range) config key (have keys: ${l.listKeys().join(`, `)})`);let d=$U(s),f=HI(c,e=>t.sessionState.get(a,e),r),p=nH(d.path,f.key),m=typeof p==`number`?GU(u,p):KU(`step-config`,r,u,FA(f.globals,r)),h=HU(m,o,u.min,u.max),g=l.validate(r,String(h));if(!g.ok)throw new J(`step-config: ${g.reason}`);rH(eW(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})`)},rW=(e,t)=>{let[n=``]=NU(()=>zn(e)),r=jU(n),i=XU(t,r),a=t.configFor(i),o=e=>t.sessionState.get(r,e),s=BI(a,o),c=UI(a,o);if(s.length+c.length===0){t.dlog(`info`,`save: nothing unsaved (session=${r})`);return}let l=dL(a),u=s.map(e=>{let t=l.validate(e.sessionKey,e.value);if(!t.ok)throw new J(`save: ${t.reason}`);return[e.target,t.value]});aW(`save`,l,c);let d=$U(i);iH(eW(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(iW)].join(` `)} → ${d.path} (session=${r})`)},iW=e=>`${e.preset}/${e.id}.settings.${e.setting}=${Oh(e.value)}`;function aW(e,t,n){for(let r of n){let n=t.validate(r.key,Oh(r.value));if(!n.ok)throw new J(`${e}: ${n.reason}`)}}const oW=(e,t)=>{let[n=``]=NU(()=>zn(e)),r=jU(n),i=XU(t,r),a=t.configFor(i),o=qI(a,e=>t.sessionState.get(r,e)),s=dL(a),c=o.picks.map(e=>{let t=s.validate(e.sessionKey,e.value);if(!t.ok)throw new J(`save-preset: ${t.reason}`);return[e.configKey,t.value]});aW(`save-preset`,s,o.placements);let l=$U(i),u=dH(eW(t,r),l,o.from,o.globals,c,o.placements);t.reloadConfig(i);for(let e of[...ma.map(e=>e.sessionKey),...o.placements.map(e=>e.key)])t.sessionState.clear(r,e);t.sessionState.set(r,pa.preset.sessionKey,u),t.dlog(`info`,`save-preset: ${[`${u} from=${o.from}`,...c.map(([e,t])=>`${e}=${t}`),...o.placements.map(iW)].join(` `)} → ${l.path} (session=${r})`)},sW=(e,t)=>{let[n=``]=NU(()=>zn(e)),r=jU(n),i=XU(t,r),a=YI(t.configFor(i),e=>t.sessionState.get(r,e));if(a.kind===`rule`)throw new J(`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=$U(i);fH(eW(t,r),o,a.theme,a.look),t.reloadConfig(i);let s=new Set(BI(t.configFor(i),e=>t.sessionState.get(r,e)).map(e=>e.sessionKey)),c=gh.map(e=>pa[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} ${gh.map(e=>`${e}=${a.look[e]}`).join(` `)} → ${o.path} (session=${r})`)},cW=(e,t)=>{let[n=``,r=``]=NU(()=>zn(e)),i=jU(n);if(!r)throw new J(`delete-preset: <name> is required (shape: <sessionId>/<name>)`);let a=XU(t,i),o=$U(a);pH(eW(t,i),o,r),t.reloadConfig(a);let s=pa.preset.sessionKey;t.sessionState.get(i,s)===r&&t.sessionState.clear(i,s),t.dlog(`info`,`delete-preset: ${r} ← ${o.path} (session=${i})`)},lW=(e,t)=>{let[n=``,...r]=NU(()=>zn(e)),i=jU(n),a=XU(t,i),o=NA(t.configFor(a)).listKeys(),s=r.length===0?[``]:r.filter(e=>!o.includes(e));if(s.length>0)throw new J(`reset-config: unknown config key "${s.join(`", "`)}" (have: ${o.join(`, `)})`);let c=$U(a),l=r.map(XI),u=l.flatMap(e=>e.fileKeys),d=l.flatMap(e=>e.sessionKeys);cH(eW(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 uW(e,t){let n=(e,t)=>[...dh(Xh(e,t).node)].filter(e=>e.kind===`segment`),r=new Set(qh(t.presets).flatMap(e=>n(t,e).map(t=>nD(qw(e),sh(t)))));return qh(e.presets).flatMap(t=>n(e,t).map(e=>({member:nD(qw(t),sh(e)),node:e})).filter(({member:e})=>!r.has(e)))}function dW(e,t){return e.flatMap(({member:e,node:n})=>[...Object.values(n.drafts??{}).map(e=>e.key),...e===t?[XE]:[]])}const fW=(e,t)=>{let[n=``,r=``,i=``]=NU(()=>zn(e)),a=jU(n),o=XU(t,a),s=t.configFor(o),c=NA(s);if(!r)throw new J(`apply-layout-op: <key>/<op> is required (have: ${c.listKeys().join(`, `)})`);let l=c.validate(r,i);if(!l.ok)throw new J(`apply-layout-op: ${l.reason}`);let u=yA(l.value);if(u===null)throw new J(`apply-layout-op: "${l.value}" is not a layout op token`);let d=$U(o),f=mH(eW(t,a),d,r,u);t.reloadConfig(o);let p=dW(uW(s,t.configFor(o)),t.sessionState.get(a,XE)).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})`)},pW=(e,t)=>{let[n=``]=NU(()=>zn(e)),r=jU(n);t.journal.commit();let i=t.history.undo(r);ZU(t,r,i),t.dlog(`info`,`undo: restored ${IH(i)} (session=${r})`)},mW=(e,t)=>{let n=jU(MU(e)),{step:r,discarded:i}=t.navigation.back(n,t.sessionState,dL(QU(t,n))),a=r.map(e=>`${e.key}=${e.before??`∅`}`).join(` `);t.dlog(`info`,`back: ${a} discarded=${i} (session=${n})`)},hW=(e,t)=>{let n=jU(MU(e));t.journal.commit();let r=t.history.rewind(n);ZU(t,n,r),t.dlog(`info`,`rewind: put back ${IH(r)||`nothing`} as edit mode found it (session=${n})`)},gW=(e,t)=>{let[n=``]=NU(()=>zn(e)),r=jU(n);t.journal.commit();let i=t.history.redo(r);ZU(t,r,i),t.dlog(`info`,`redo: re-applied ${IH(i)} (session=${r})`)},_W=(e,t)=>{jU(MU(e)),t.applyUpdate()},vW=`client-hints`;function yW(e,t){let n=e.sessionState.get(t,vW);if(n===null)throw new J(`session ${t} has not rendered yet — no client facts are recorded for it`);let r;try{r=JSON.parse(n)}catch{throw new J(`client hints record is not JSON: ${n}`)}if(typeof r!=`object`||!r)throw new J(`client hints record is not an object: ${n}`);return rt(r)}function bW(e,t,n){let r=ND(n);e.sessionState.setBatch(t,RD(r)),e.dlog(`info`,`doctor: ${r.map(e=>`${e.check.name}=${e.verdict.ok?`ok`:`failed(${1+(e.verdict.more?.length??0)})`}`).join(` `)} (session=${t})`)}function xW(e,t){return{...$H(e.doctor,yW(e,t),XU(e,t),n=>e.sessionState.get(t,n)),urlHandler:ZH(e.clientVersion)}}const SW=(e,t)=>{let n=jU(MU(e));bW(t,n,xW(t,n))},CW=(e,t)=>{let n=fU(MU(e));if(n===null)throw new J(`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`}`)},wW=(e,t)=>{let[n=``,r=``]=NU(()=>zn(e)),i=jU(n),a=PD(r);if(a===void 0)throw new J(`doctor-fix: unknown check "${r}"`);let o=xW(t,i),s=a.probe(o);if(s.ok||s.fix===void 0)throw new J(`doctor-fix: ${a.label} — ${s.ok?`nothing to fix`:s.reason}`);let c=eU(s.fix,o);t.dlog(`info`,`doctor-fix: ${a.name} → ${s.fix.kind} ${s.fix.path.join(`.`)}=${JSON.stringify(s.fix.value)} (session=${i})`),bW(t,i,c)},TW=(e,t)=>{let[n=``,...r]=NU(()=>zn(e)),i=jU(n),a=XU(t,i),o=Object.values(t.configFor(a).actions).filter(e=>`ceiling`in e).find(e=>{let t=FM(e);return t.length===r.length&&t.every((e,t)=>e===r[t])});if(o===void 0)throw new J(`ceiling: "${r.join(` `)}" is not a move this config declares`);let s=o.ceiling===`set`?{kind:`set`,to:o.to}:{kind:`clear`},c=GF({sessionId:i,projectDir:a.projectDir,cwd:a.cwd},yW(t,i));t.memento.move(c,s),t.dlog(`info`,`ceiling: ${r.join(` `)} (session=${i} claudeConfigDir=${c.claudeConfigDir})`)},EW=(e,t)=>{let[n=``,r=``]=NU(()=>zn(e)),i=jU(n),a=Object.values(t.configFor(XU(t,i)).actions).filter(e=>`slash`in e),o=a.find(e=>e.slash===r);if(o===void 0)throw new J(`${JSON.stringify(r)} is not a command this config declares (it declares: ${[...new Set(a.map(e=>e.slash))].join(`, `)||`none`})`);let s=TU(t.claudeInput,yW(t,i).tmux,o.slash);if(s.kind===`refused`)throw t.dlog(`warn`,`slash: ${r} refused — ${s.reason} (session=${i})`),new J(`${r} was not typed: ${s.reason}`);t.dlog(`info`,`slash: typed ${r} into ${s.pane} (session=${i})`)},DW=`config-override`,OW=new Map([[_n,FU],[`load-config`,(e,t)=>{let n=e.indexOf(`/`);if(n===-1)throw new J(`load-config: expected <sessionId>/<path> (missing separator)`);let r=jU(NU(()=>decodeURIComponent(e.slice(0,n)))),i=NU(()=>decodeURIComponent(e.slice(n+1))).trim();if(i!==``){if(!i.startsWith(`/`))throw new J(`load-config: path must be absolute, got "${i}"`);if(!/\.(json5?|json)$/.test(i))throw new J(`load-config: path must end with .json5 or .json, got "${i}"`)}i===``?(t.sessionState.clear(r,DW),t.dlog(`info`,`load-config: override cleared (session=${r})`)):(t.sessionState.set(r,DW,i),t.dlog(`info`,`load-config: ${i} (session=${r})`))}],[vn,IU],[gn,BU],[N,UU],[Sn,tW],[Cn,nW],[Dn,lW],[wn,rW],[P,oW],[Tn,sW],[En,cW],[On,fW],[kn,pW],[An,gW],[jn,mW],[Mn,hW],[bn,LU],[xn,RU],[yn,zU],[Nn,_W],[Pn,SW],[Fn,wW],[In,CW],[Ln,TW],[Rn,EW]]),kW=new Set([gn,N,Sn,Cn,Dn,wn,P,Tn,En,On,kn,An,jn,Mn,yn,Nn,Pn,Fn,Ln,Rn]),AW=(e,t)=>{let n=[],r=!1,i=null;for(let{verb:a,value:o}of Hn(Bn(e))){if(!i&&kW.has(a)){let e=zn(o);e.length>0&&e[0]&&(i=e[0])}let e=OW.get(a);if(!e){n.push(`unknown effect verb "${a}"`);continue}try{e(o,t)}catch(e){e instanceof J||(r=!0),n.push(`${a}: ${e instanceof Error?e.message:String(e)}`)}}if(n.length>0){i&&t.sessionState.set(i,`click.error`,n.join(`
|
|
211
|
+
`));let e=`dispatch: ${n.join(`; `)}`;throw r?Error(e):new J(e)}};function jW(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 MW=new Map([...OW,[hn,AW]].map(([e,t])=>[e,jW(t)]));Object.freeze([...MW.keys()]);const NW=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`]),PW=[[`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`]],FW=[[`workspace.added_dirs`,`string-list`]];function IW(e){let t={missingRequired:[],typeMismatches:[],unknownTopLevelFields:[]},n=typeof e==`object`&&e&&!Array.isArray(e)?e:{};for(let[e,r]of PW){let i=zW(n,e);if(i==null)t.missingRequired.push(e);else{let n=LW(i);n!==r&&t.typeMismatches.push({path:e,expected:r,got:n})}}for(let[e,r]of FW){let i=zW(n,e),a=i===void 0?r:RW(i);a!==r&&t.typeMismatches.push({path:e,expected:r,got:a})}for(let e of Object.keys(n))NW.has(e)||t.unknownTopLevelFields.push(e);return{data:e,report:t}}function LW(e){return Array.isArray(e)?`array`:typeof e==`string`&&!e.isWellFormed()?`ill-formed string`:typeof e}function RW(e){return Array.isArray(e)&&e.every(e=>LW(e)===`string`)?`string-list`:LW(e)}function zW(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 BW(e,t){switch(e){case`vars`:return{what:e,vars:VW(t)};case`segments`:return{what:e,segments:KW(t)};case`config`:return{what:e,config:XW(t)}}}function VW(e){if(e===null)return[];let{store:t,registry:n,config:r}=e,i=WW(r),a=t.names().sort(),o=[];for(let e of a){let r=t.getNode(e),a=HW(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:UW(r.lastUpdatedMs())})}return o}function HW(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 UW(e){return e===null?null:Math.max(0,Date.now()-e)}function WW(e){let t=new Map;for(let[n,r]of Object.entries(e.variables))t.set(n,GW(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}`,GW(i));return t}function GW(e){return e.kind}function KW(e){if(e===null)return[];let{store:t,config:n,lastRenderBySegment:r}=e,i=new Set(t.names()),a=JW(n),o=qW(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:YW(t.template,n.helpers,i),placements:(o.get(e)??[]).map(e=>({id:e,lastRender:r.get(e)??null}))})}return s}function qW(e){let t=new Map;for(let n of qh(e.presets))for(let r of dh(Xh(e,n).node)){if(r.kind!==`segment`)continue;let e=t.get(r.name)??[],n=sh(r);e.includes(n)||t.set(r.name,[...e,n])}return t}function JW(e){let t=[],n=new Set;for(let r of dh(Bh(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 YW(e,t,n){let r=new Set;for(let i of vg(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 XW(e){return e===null?null:e.config}const ZW=[`vars`,`segments`,`config`];function QW(e){return typeof e==`string`&&ZW.includes(e)}function $W(e){return Math.max(1,e-2)}var eG=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 tG(e,t){for(let n of Object.entries(t))e.push(n)}const nG={ok:`info`,"bad-request":`warn`,threw:`error`};function rG(e){switch(e.kind){case`ok`:return[];case`bad-request`:return[[`problems`,e.problems.join(`; `)]];case`threw`:return[[`error`,y(e.error)]]}}const iG=/^[^\s"=\\]+$/,aG=e=>iG.test(e)?e:JSON.stringify(e);function oG(e,t,n){let r=[...e,[`took`,`${n}ms`],[`outcome`,t.kind],...rG(t)];return{level:nG[t.kind],line:`render${r.map(([e,t])=>` ${e}=${aG(t)}`).join(``)}`}}const sG=new lV,cG=new uU;Ae(sG.launchStats);const lG=new ow({counters:sG,logger:k}),uG=PR({watchers:lG,logger:k}),{gitProvider:dG,usageStore:fG,mementoProvider:pG}=uG,mG=new fV,hG=new SH(mG,k),gG=new GH,_G=new gm,vG=new eG(Qe()),yG=new sV({gitService:dG,sessionState:mG,watchers:lG},{observers:{onReload:e=>k(`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)}`)}}),bG=60*1e3;function xG(){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){k(`info`,`binary mtime changed (${e}); shutting down`),a&&clearInterval(a),LG(0);return}}catch(e){k(`warn`,`bin stat failed: ${e.message}`)}};return{arm(){i.size!==0&&(a=setInterval(o,bG),a.unref())},checkNow:o}}const SG=xG(),CG=NL({entryUrl:import.meta.url,intervalMs:bG,releaseIntervalMs:216e5,registryUrl:t.env.CC_CANDYBAR_REGISTRY_URL??`https://registry.npmjs.org`,fetchImpl:fetch,onApplied:()=>SG.checkNow(),log:k});let wG=null,TG=null,EG=0;function DG(){t.on(`uncaughtException`,e=>{k(`error`,`uncaughtException: ${e.stack||e.message}`),LG(1)}),t.on(`unhandledRejection`,e=>{k(`error`,`unhandledRejection: ${String(e)}`),LG(1)});for(let e of[`SIGINT`,`SIGTERM`,`SIGHUP`])t.on(e,()=>{k(`info`,`received ${e}, shutting down`),LG(0)});try{EG=Vt(t.env)}catch(e){k(`error`,`refusing to boot: ${e.message}`),LG(1);return}wG=ea(t.pid);let e=ua(fa(wG));if(!e.decision.allow){k(`warn`,`fork-bomb breaker: ${e.decision.reason}; refusing to boot`),LG(1);return}TG=e.registryPath,r.mkdirSync(ze(),{recursive:!0}),Ue(Be()),mG.useStorage(new mV(Ke(),500,k)),hG.useStorage(UH(qe(),k)),ra({anchor:na(t.env),isAlive:ia,onOrphaned:e=>{k(`info`,`parent watchdog: ${e}; shutting down`),LG(0)}}),OG(S.createServer({allowHalfOpen:!1},e=>{RG(e)}),Be(),!1)}function OG(e,n,r){e.removeAllListeners(`error`),e.removeAllListeners(`listening`),e.once(`error`,i=>{if(i.code!==`EADDRINUSE`){k(`error`,`server error: ${i.message}`),LG(1);return}if(r){k(`info`,`lost rebind race; another daemon is alive — exiting`),t.exit(0);return}kG(e,n)}),e.listen(n,()=>AG(n))}function kG(e,n){let i=Wi(Gi(We(n)),(e,t)=>$i(e,t,{readStartTime:Qi,pidAlive:ia}));if(i.kind===`attach-and-exit`){k(`info`,`EADDRINUSE: ${i.reason} — exiting`),t.exit(0);return}k(`warn`,`EADDRINUSE: ${i.reason} — unlinking stale socket and rebinding`);try{r.unlinkSync(n)}catch(e){if(e.code!==`ENOENT`){k(`error`,`cannot unlink stale socket ${n}: ${e.message}`),LG(1);return}}OG(e,n,!0)}function AG(e){let n=Ji(e);if(n.kind!==`present`){k(`warn`,`no ownable socket at bind callback (${n.kind}); exiting`),LG(0);return}PG(e);try{r.chmodSync(e,384)}catch(e){k(`warn`,`chmod socket failed: ${e.message}`)}k(`info`,`daemon up: pid=${t.pid} v=3 sock=${e} heapCap=${Math.round(C.getHeapStatistics().heap_size_limit/1048576)}MB rssLimit=${Math.round(EG/1048576)}MB`),M();let i=vG.reset();i!==null&&k(`warn`,`diagnostic dump wipe failed: ${i}`),SG.arm(),CG.arm(),NG(),jG(e,n.identity)}function jG(e,n){Zi({bound:n,myPid:t.pid,readIdentity:()=>Ji(e),readLease:()=>Gi(We(e)),shutdown:e=>LG(e),log:k}).arm()}let MG=null;function NG(){MG=Gt(Yt(sG.startedAt.getTime(),e=>LG(e),{rssLimitBytes:EG})),MG.arm()}function PG(e){let n=Ki(We(e),{pid:t.pid,version:3,binPath:t.argv[1],startTime:wG});n!==null&&k(`warn`,`lease write failed: ${n}`)}let FG=0,IG=!1;function LG(e){if(!IG){IG=!0,setTimeout(()=>t.kill(t.pid,`SIGKILL`),500);try{dG.close()}catch(e){k(`warn`,`gitService close failed: ${e.message}`)}try{fG.close()}catch(e){k(`warn`,`usageStore close failed: ${e.message}`)}try{lG.closeAll()}catch(e){k(`warn`,`watcherRegistry close failed: ${e.message}`)}try{mG.flush()}catch(e){k(`warn`,`sessionState flush failed: ${e.message}`)}qi(Ge(),t.pid),TG!==null&&da(TG,t.pid,ca,e=>r.unlinkSync(e)),t.exit(e)}}function RG(e){FG++,sG.inFlight=FG;let t=!1,n=(n,r)=>{if(t){r!==null&&k(`warn`,`exit-after-flush dropped: an earlier responder settled this socket`);return}t=!0;let i=r===null?void 0:()=>LG(r);try{e.end(mt(n),i)}catch(e){k(`warn`,`response write failed: ${e.message}`),i?.()}},r=!1,i=setTimeout(()=>{r=!0,sG.requestsTimedOut++,n({ok:!1,error:`request exceeded 200ms`,code:`TIMEOUT`,daemonV:3},null)},200),a=ht(e=>{VG(e,()=>r).then(e=>n(e.resp,e.exitAfterFlush)).catch(e=>{k(`error`,`handler threw: ${y(e)}`),n(BG(e),null)})},e=>{k(`warn`,`frame parse failed: ${e.message}`),n({ok:!1,error:e.message,code:`BAD_REQUEST`,daemonV:3},null)});e.on(`data`,a),e.on(`error`,e=>{k(`warn`,`socket error: ${e.message}`)}),e.on(`close`,()=>{clearTimeout(i),FG=Math.max(0,FG-1),sG.inFlight=FG})}const zG=e=>({resp:e,exitAfterFlush:null}),BG=e=>({ok:!1,error:e instanceof Error?e.message:y(e),code:`RENDER_FAILED`,daemonV:3});async function VG(e,t){if(!e||typeof e!=`object`||typeof e.v!=`number`)return zG({ok:!1,error:`malformed request`,code:`BAD_REQUEST`,daemonV:3});if(e.v!==3)return e.v>3?k(`info`,`version mismatch: client=${e.v} > daemon=3; binary likely upgraded — exiting after the response flushes`):k(`info`,`version mismatch: client=${e.v} < daemon=3; client is stale — staying up`),{resp:{ok:!1,error:`protocol v${e.v} not supported (daemon at v3)`,code:`VERSION_MISMATCH`,daemonV:3},exitAfterFlush:e.v>3?0:null};if(e.kind===`shutdown`)return{resp:{ok:!0,output:``},exitAfterFlush:0};if(e.kind===`stats`)return zG({ok:!0,stats:sG.snapshot({gitCache:dG.getStats(),usageCache:fG.getStats(),renderCacheSize:yG.size,effectCache:_G.getStats(),watchersActive:lG.size(),nextRestartReason:MG?.describeNextRestart()??null,handlerProbes:cG.list()})});if(e.kind===`render`){sG.requestsTotal++;let n=new Date,r=vw(n),i=n.getTime(),a=[],o=await YG(e,r,a).catch(e=>({outcome:{kind:`threw`,error:e},resp:BG(e)}));o.outcome.kind!==`ok`&&sG.requestsErrored++,tG(a,{timedOut:t()?`Y`:`N`});let{level:s,line:c}=oG(a,o.outcome,Date.now()-i);return k(s,c),zG(o.resp)}if(e.kind===`click`)return zG(JG(e.verb,e.value,ft(e.clientVersion)));if(e.kind===`debug`){if(!QW(e.what))return zG({ok:!1,error:`unknown debug 'what': ${String(e.what)} (have: ${ZW.join(`, `)})`,code:`BAD_REQUEST`,daemonV:3});let t=yG.firstState(),n=t===null?null:{store:t.store,registry:t.registry,config:t.config,compiled:t.compiled,lastRenderBySegment:e.what===`segments`?KG(t.lastRenderCellsBySegment,t.config.globals.charset??`unicode`,t.config.globals.colorCompatibility??`truecolor`):GG};return zG({ok:!0,debug:BW(e.what,n)})}return zG({ok:!1,error:`unknown kind`,code:`BAD_REQUEST`,daemonV:3})}function HG(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:dP(t,n.config),unknownFlagsError:i.length>0?`Unknown flags: ${i.join(`, `)}`:null}}const UG={sessionState:mG,dlog:k,applyUpdate:()=>CG.act(),doctor:qH(e=>{let t=[e.projectDir,e.cwd,e.configFile??void 0];yG.reload(...t);let n=yG.getOrCreate(...t);return{layers:n.configLayers,error:n.lastError,warning:n.lastWarning,unused:n.state.unused,config:n.state.config}}),probes:cG,memento:pG,claudeInput:AU(),history:hG,navigation:gG,configFor:e=>yG.getOrCreate(e.projectDir,e.cwd,e.configFile??void 0).state.config,reloadConfig:e=>yG.reload(e.projectDir,e.cwd,e.configFile??void 0)};UG.reloadConfig;const WG={endcaps:`powerline`,colorCompatibility:`truecolor`,wrap:!0,padding:1,charset:Rp,width:1/0},GG=new Map;function KG(e,t,n){let r=new Map;for(let[i,a]of e)r.set(i,Dm(a,{...WG,charset:t,colorCompatibility:n}));return r}const qG={...uG,history:e=>hG.depth(e)};function JG(e,t,n){let r=MW.get(e);if(!r)return{ok:!1,error:`unknown click verb: ${e}`,code:`BAD_REQUEST`,daemonV:3};try{return r(t,{...UG,clientVersion:n}),{ok:!0,output:``}}catch(e){let t=e instanceof J?`BAD_REQUEST`:`RENDER_FAILED`;return{ok:!1,error:String(e instanceof Error?e.message:e),code:t,daemonV:3}}}async function YG(e,t,n){let{report:r}=IW(e.hookData);for(let e of r.unknownTopLevelFields)k(`info`,`schema: unknown field '${e}' — Anthropic may have added it`);let i=[];for(let e of r.missingRequired)i.push(`missing required field '${e}'`);for(let{path:e,expected:t,got:n}of r.typeMismatches)i.push(`field '${e}' expected ${t}, got ${n}`);if(f(e.cwd)||i.push(`request 'cwd' is not an absolute path: "${e.cwd}"`),i.length>0)return{outcome:{kind:`bad-request`,problems:i},resp:{ok:!1,error:`malformed hookData: ${i.join(`; `)}`,code:`BAD_REQUEST`,daemonV:3}};tG(n,{sid:e.hookData.session_id,at:t.toFixed(3)});let a=e.hookData.workspace.project_dir,{configFile:o,unknownFlagsError:s}=HG(e.args,e.cwd),c=e.hookData.session_id,l=rt(e),u=it(e,l),d=at(u);tG(n,{termCols:String(l.termCols??`?`),termRows:String(l.termRows??`?`),refused:u.map(e=>e.hint).join(`,`)||`-`});let p=JSON.stringify(l);mG.get(c,`client-hints`)!==p&&mG.set(c,vW,p);let m=mG.get(c,`config-override`)??o??l.configEnv,h=yG.getOrCreate(a,e.cwd,m),g=JU({projectDir:a,cwd:e.cwd,configFile:m??null});mG.get(c,`render-origin`)!==g&&mG.set(c,qU,g);let _=l.termCols,v=$W(_??120),y=Om(l.termRows);tG(n,{width:String(v)});let{authoredRoots:b}=h.state,x=t=>mG.get(e.hookData.session_id,t),S=iI(h.state.config,x,e=>b.has(e)),C=await xI(e.hookData,t,{...qG,navigation:e=>gG.depth(e,mG,dL(h.state.config))},e.cwd,h.state.neededInputPaths(S.preset),S,l,{...QI(h.state.config,h.state.fileHeldSettings,x),configPath:h.configLayers.includes(h.configHome)?h.configHome:null});tG(n,{prompts:String(C.metrics?.messageCount??`-`),nonPrompts:String(C.metrics?.nonPrompts??`-`),pr:C.git?.prState??(C.git?.prError===void 0?`-`:`failed`)});let ee=[],te=aI(S,v),ne=_G.of(c),re=BB(h.state.config,h.state.compiled,h.state.store,h.state.registry,C,t,te,{perSegmentSink:h.state.lastRenderCellsBySegment,onRenderWarning:e=>ee.push(e)},{...oI(S),effects:ne}),ie=mG.get(e.hookData.session_id,`click.error`);ie&&mG.clear(e.hookData.session_id,`click.error`);let ae=[s,d,h.lastError,ie].filter(Boolean).join(`
|
|
212
|
+
`),w=CG.notice({sessionId:c,dismissed:mG.get(c,_L),enabled:S.updateNotice}),T=h.lastError===null?null:h.failedFile,oe=[...h.lastWarning===null?[]:[{kind:`load`,message:h.lastWarning}],...ee],se=Nm(ae,w,oe.map(e=>e.message).join(`
|
|
213
|
+
`)),ce=vG.sync(c,se===null?null:Fm(se));ce!==null&&k(`warn`,`diagnostic dump failed: ${ce}`);let le=Im(re,se,{fullText:ce===null?{kind:`file`,path:vG.pathFor(c)}:{kind:`unavailable`,reason:ce},failedConfigFile:T},{width:v,rowCap:y,colorCompatibility:S.colorCompatibility}),ue=dG.getStats(),E=fG.getStats(),de=ne.lastFrame(),fe=de.own.map(e=>`${e.placement}:${e.effect}@${e.t.toFixed(3)}`).join(`,`)||`-`,pe=e=>e.map(e=>`${e.placement}@${e.t.toFixed(3)}`).join(`,`)||`-`,me=oe.map(e=>{switch(e.kind){case`rule`:return`rule:${e.slot}`;case`load`:case`band-floor`:case`when`:return e.kind}}).join(`,`)||`-`;return tG(n,{git:`${ue.size}/${ue.hits}h/${ue.misses}m`,usage:`${E.size}/${E.hits}h/${E.misses}m`,effect:de.effect,effectT:de.t.toFixed(3),effectRows:`${de.made}made/${de.reused}reused`,effectOwn:fe,fadeBasis:de.basis,stateRev:String(de.revision),fades:pe(de.fades),leaves:pe(de.leaves),err:ae?`Y`:`N`,upd:String(w.length),warn:me}),{outcome:{kind:`ok`},resp:{ok:!0,output:le+`
|
|
214
|
+
`}}}const XG={connectMs:200,budgetMs:500};async function ZG(e,n){let r=n.includes(`--json`),i=await QG(e);if(i.kind!==`ok`&&(t.stderr.write(`${e}: ${Ct(i)}\n`),t.exit(1)),r){t.stdout.write(JSON.stringify(i.value,null,2)+`
|
|
215
|
+
`);return}t.stdout.write($G(i.value))}function QG(e){return _t({kind:`debug`,what:e},XG,e=>`debug`in e?e.debug:void 0)}function $G(e){switch(e.what){case`vars`:return eK(e.vars);case`segments`:return tK(e.segments);case`config`:return nK(e.config);default:return e}}function eK(e){if(e.length===0)return`no variables (DSL not active)
|
|
216
|
+
`;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?``:` ${iK(a.ageMs)}`,o=a.lastError?` ✗ ${a.lastError.message}`:``;t.push(` ${a.name.padEnd(n)} ${(a.source??`—`).padEnd(r)} ${a.type.padEnd(i)} ${rK(a.value)}${e}${o}`)}return t.join(`
|
|
217
217
|
`)+`
|
|
218
|
-
`}function
|
|
218
|
+
`}function tK(e){if(e.length===0)return`no segments (DSL not active)
|
|
219
219
|
`;let t=[`segments (${e.length})`,``];for(let n of e){t.push(` ${n.name}`),n.description!==null&&t.push(` shows ${n.description}`),t.push(` template ${n.template}`),n.referencedVars.length>0&&t.push(` vars ${n.referencedVars.join(`, `)}`);for(let{id:e,lastRender:r}of n.placements)r!==null&&t.push(` last ${e}: ${r}`)}return t.join(`
|
|
220
220
|
`)+`
|
|
221
|
-
`}function
|
|
221
|
+
`}function nK(e){return e===null?`config: DSL not active
|
|
222
222
|
`:JSON.stringify(e,null,2)+`
|
|
223
|
-
`}function
|
|
223
|
+
`}function rK(e){let t=typeof e==`string`?e:JSON.stringify(e);return t.length>60?t.slice(0,57)+`…`:t}function iK(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m`}function aK(){let e=sK();return e===null?null:r.readFileSync(e,`utf-8`)}function oK(){let e;try{e=aK()}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 sK(){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 cK(e,t){return dP(t,e.CC_CANDYBAR_CONFIG)}const lK=5e3;function uK(e,t,n){let r=`/home/tester`,i=Math.floor(n),a=`test0a1b-2c3d-4e5f-6a7b-8c9d0e1f2a3b`,o={current_dir:`${r}/code/cc-candybar/src`,project_dir:`${r}/code/cc-candybar`,added_dirs:[]};return{hook_event_name:`Status`,session_id:a,version:`1.15.0`,home:r,cwd:`${r}/code/cc-candybar/src`,transcript_path:`${r}/.claude/projects/x/test.jsonl`,model:{id:`claude-opus-4-8`,display_name:`Opus 4.8`},workspace:o,git:{repoName:`cc-candybar`,repoUrl:`https://github.com/promptctl/cc-candybar`,branch:`main`,sha:`abc1234`,ahead:2,behind:1,staged:3,unstaged:2,untracked:1,conflicts:0,upstream:`origin/main`,tracking:`tracked`,stash:1,status:`dirty`,operation:`rebase`,timeSinceCommit:780},session:{cost:.39,tokens:241400},today:{cost:12.5,tokens:34e5},context:{totalTokens:48487,contextLeft:24},metrics:{lastResponseTime:8.2,responseTime:4.2,sessionDuration:930,messageCount:8,linesAdded:512,linesRemoved:88},block:{nativeUtilization:63,resetsAt:i+2*3600},weekly:{percentage:21,resetsAt:i+5*86400},cache:{expiresAt:i+900},tmux:{pane:`%0`,session:`work`},host:{name:`tester-box`,user:`tester`,ssh:!0},autocompact:nO(4e5,1e6),...sI(e),history:{undo:1,redo:1,sinceEdit:1},navigation:{back:1},unsaved:1,resettable:ya(()=>!0),themeDefault:{differs:!0,theme:`<theme>`},resumeCommand:rI(o,a,void 0),configPath:t??`${r}/.config/cc-candybar/config.json5`}}function dK(e,t){let n=WP(e,e),r=qP(n);return r!==null&&t.push(r),n.kind===`chain`?n.layers:[]}async function fK(e,n=t.cwd()){let i=[],a=dP(n,e)??null,o=a===null?dK(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=YP(n,n);s!==null&&i.push(s);try{return{kind:`clean`,layers:o,warnings:i,rendered:await hK(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 Jw&&i.push(...e.warnings),{kind:`fatal`,layers:o,message:e instanceof Jw||e instanceof Error?e.message:String(e),warnings:i})}}async function pK(e,t,n){let r=nF(e,TF,{entered:()=>{},warned:e=>n.push(...e)},{projectDir:t,cwd:t}),{config:i}=r,a=new QB,o=new Hw(a,i.globals.default_empty_value??``,void 0,new fV);try{let s=PB(i,o,{cwd:t});n.push(...s.loadWarnings);let c=await o.settled(lK);return c.length>0&&n.push(`source${c.length===1?``:`s`} still running after ${lK} 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 mK({layers:e,config:t,compiled:n,store:r,registry:i},a,o,s){let c=new Map,l=new Set;return{rendered:BB(t,n,r,i,uK(a,e.at(-1)??null,s),s,aI(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`band-floor`:l.add(e.message);return;default:}}},oI(a)),failures:c,advisories:l}}async function hK(e,t,n){let r=await pK(e,t,n),{config:i}=r,a=vw(new Date);try{let e=ML();try{dL(i),NA(i)}finally{e()}let t=Jh(null,i.globals.preset,i.presets),o=(e,t)=>{let n=iI(i,t=>t===`preset`?e:null,()=>t),o;try{o=mK(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),...qh(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(`
|
|
224
224
|
`)]:[]];if(p.length>0||d===void 0)throw Error(p.join(`
|
|
225
|
-
`));return d}finally{r.registry.dispose()}}function
|
|
226
|
-
`,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:
|
|
225
|
+
`));return d}finally{r.registry.dispose()}}function gK(e){return e.map(e=>`warning: ${e}\n`).join(``)}function _K(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:gK(e.warnings),code:0};case`fatal`:return{stdout:``,stderr:gK(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 vK=`--render`,yK=`Usage: cc-candybar check [${vK}] [config-file]\n`;function bK(e){let t=e.filter(e=>e.startsWith(`--`)),n=e.filter(e=>!e.startsWith(`--`)),r=t.filter(e=>e!==vK);return r.length>0?{kind:`usage`,message:`check: unknown option ${r.join(` `)}\n${yK}`}:n.length>1||n[0]===``?{kind:`usage`,message:`check: expected at most one non-empty path\n${yK}`}:{kind:`run`,target:n[0],render:t.includes(vK)}}async function xK(e){let n=bK(e),r=n.kind===`usage`?{stdout:``,stderr:n.message,code:2}:_K(await fK(n.target??cK(t.env,t.cwd())),n.render);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const SK=`${Gd}${Wd}`;function CK(e){return`${SK}⚠ cc-candybar: ${wK(e)}[0m\n`}function wK(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: ${Ud(e.message,60)}`;case`render_failed`:return`render failed: ${Ud(e.message,60)}`;case`malformed_response`:return`malformed daemon response: ${Ud(e.message,60)}`}}function TK(e){switch(e.kind){case`ok`:return{output:e.value,kick:!1,debug:null};case`transient`:return{output:`
|
|
226
|
+
`,kick:!0,debug:`daemon unavailable (transient: ${e.cause}: ${e.message}) — kicking daemon`};case`permanent`:return{output:CK(e),kick:!1,debug:`daemon refused request (permanent: ${e.cause}) — not kicking`}}}function EK(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 DK=[`SSH_CONNECTION`,`SSH_CLIENT`,`SSH_TTY`];function OK(e,t,n){return{termCols:EK(e.COLUMNS,n.columns),termRows:EK(e.LINES,n.rows),ssh:DK.some(t=>(e[t]??``)!==``),tmux:wD(e),configEnv:cK(e,t),claudeConfigDir:ti(e,t),mementoEnv:tt(e,t)}}const kK=` (fix: click the settings menu (${Gn} by default) › 🧰 tools › 🩺 doctor, then [fix] on the bar)`;function AK({check:e,verdict:t}){return t.ok?`✓ ${e.label}\n`:`✗ ${e.label} — ${t.reason}${t.fix===void 0?``:kK}\n`+(t.more??[]).map(e=>` ${e}\n`).join(``)}function jK(e){let t={sessionState:new fV},n=aV(e.projectDir,e.cwd,e.configFile??void 0,t),r=n.state??oV(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 MK(e,t,n,r,i=void 0){let a;try{a={...$H(e,{tmux:wD(n),claudeConfigDir:ti(n,r)},{projectDir:r,cwd:r,configFile:dP(r,i)??cK(n,r)??null},()=>null),urlHandler:await hU(t)}}catch(e){return{stdout:``,stderr:`doctor: ${e instanceof Error?e.message:String(e)}\n`,code:2}}let o=ND(a);return{stdout:o.map(AK).join(``),stderr:``,code:+!o.every(e=>e.verdict.ok)}}async function NK(e){(e.length>1||e[0]===``||e[0]?.startsWith(`--`))&&(t.stderr.write(`doctor: expected at most one config file
|
|
227
227
|
Usage: cc-candybar doctor [config-file]
|
|
228
|
-
`),t.exit(2));let n=t.cwd(),r=await
|
|
228
|
+
`),t.exit(2));let n=t.cwd(),r=await MK(qH(jK),yU(),t.env,n,e[0]);t.stdout.write(r.stdout),t.stderr.write(r.stderr),t.exit(r.code)}const PK=e=>e.some(e=>t.argv.includes(e));function FK(){console.log(xD)}async function IK(){try{PK(yD.help)&&(FK(),t.exit(0)),PK(yD.version)&&(console.log(`cc-candybar ${wt}`),t.exit(0));let e=t.argv[2];if(e===`install`&&(await Hi(t.argv.slice(3)),t.exit(0)),e===`install-url-handler`&&(Li(),t.exit(0)),e===`url-handle`){await zi(t.argv[3]);return}if(e===`daemon`){DG();return}if(e===`daemon-stats`&&(await nU(t.argv.slice(3)),t.exit(0)),e===`check`||e===`lint`){await xK(t.argv.slice(3));return}if(e===`schema`){oK();return}if(e===`doctor`){await NK(t.argv.slice(3));return}QW(e)&&(await ZG(e,t.argv.slice(3)),t.exit(0)),t.stdin.isTTY===!0&&(console.error(`Error: This tool requires input from Claude Code
|
|
229
229
|
|
|
230
230
|
cc-candybar is designed to be used as a Claude Code statusLine command.
|
|
231
231
|
It reads hook data from stdin and outputs formatted statusline.
|
|
@@ -241,4 +241,4 @@ Add to ~/.claude/settings.json:
|
|
|
241
241
|
Run with --help for more options.
|
|
242
242
|
|
|
243
243
|
To test output manually:
|
|
244
|
-
echo '{"session_id":"test-session","workspace":{"project_dir":"/path/to/project"},"model":{"id":"claude-sonnet-4-5","display_name":"Claude"}}' | cc-candybar`),t.exit(1)),D(`Working directory: ${t.cwd()}`),D(`Process args:`,t.argv);let r=await n(t.stdin);D(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),
|
|
244
|
+
echo '{"session_id":"test-session","workspace":{"project_dir":"/path/to/project"},"model":{"id":"claude-sonnet-4-5","display_name":"Claude"}}' | cc-candybar`),t.exit(1)),D(`Working directory: ${t.cwd()}`),D(`Process args:`,t.argv);let r=await n(t.stdin);D(`Received hook data:`,JSON.stringify(r,null,2)),r||(console.error(`Error: No input data received from stdin`),FK(),t.exit(1));let i=TK(await Ot(r,t.argv,t.cwd(),OK(t.env,t.cwd(),t.stderr)));i.debug!==null&&D(i.debug),i.kick&&Xt(),t.stdout.write(i.output),t.exit(0)}catch(e){let n=e instanceof Error?e.message:String(e);console.error(`Error generating statusline:`,n),t.exit(1)}}IK();export{};
|