@owloops/claude-powerline 1.25.0 → 1.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
- package/plugin/templates/config-tui-compact.json +1 -1
- package/plugin/templates/config-tui-full.json +2 -2
- package/plugin/templates/config-tui-standard.json +2 -2
- package/src/tui/sections.ts +2 -2
- package/src/tui/types.ts +1 -1
package/dist/browser.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
function e(e){return e===null?`$0.00`:e<.01?`<$0.01`:`$${e.toFixed(2)}`}function t(e){return e===null||e===0?`0 tokens`:e>=1e6?`${(e/1e6).toFixed(1)}M tokens`:e>=1e3?`${(e/1e3).toFixed(1)}K tokens`:`${e} tokens`}function n(e){if(!e)return`0 tokens`;let t=[];if(e.input>0&&t.push(`${l(e.input)} in`),e.output>0&&t.push(`${l(e.output)} out`),e.cacheCreation>0||e.cacheRead>0){let n=e.cacheCreation+e.cacheRead;t.push(`${l(n)} cached`)}return t.length>0?t.join(` + `):`0 tokens`}function r(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:e<86400?`${Math.floor(e/3600)}h`:e<604800?`${Math.floor(e/86400)}d`:`${Math.floor(e/604800)}w`}function i(e){return e<60?`${e.toFixed(0)}s`:e<3600?`${(e/60).toFixed(0)}m`:e<86400?`${(e/3600).toFixed(1)}h`:`${(e/86400).toFixed(1)}d`}const a=/^(?:(?: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;function o(e){if(!e)return`Claude`;let t=e.trim().match(a);if(!t?.groups)return e;let{family:n,newMajor:r,newMinor:i,oldMajor:o,oldMinor:s,oldFamily:c}=t.groups,l=n||c,u=r||o,d=i||s;return l&&u?`${l.charAt(0).toUpperCase()+l.slice(1).toLowerCase()} ${d?`${u}.${d}`:u}`:e}function s(e){let t=e.includes(`/`)?`/`:`\\`,n=e.split(t);return n.map((e,t)=>t===n.length-1||e===`~`||e===``?e:e.charAt(0)).join(t)}function c(e){return e<60?`${e.toFixed(1)}s`:`${(e/60).toFixed(1)}m`}function l(e){return t(e).replace(` tokens`,``)}function u(e){return e==null||e<=0?``:e<1?`${(e*100).toFixed(0)}c/h`:`$${e.toFixed(2)}/h`}function d(e,t){let n=t??globalThis.process?.env?.HOME??globalThis.process?.env?.USERPROFILE;return n&&e.startsWith(n)?e.replace(n,`~`):e}function f(e){let t=Math.floor(e/60),n=e%60;return t>0?`${t}h ${n}m left`:`${n}m left`}function p(e){if(e>=1440){let t=Math.floor(e/1440),n=Math.floor(e%1440/60);return n>0?`${t}d ${n}h`:`${t}d`}else if(e>=60){let t=Math.floor(e/60),n=e%60;return n>0?`${t}h ${n}m`:`${t}h`}return`${e}m`}function m(e){return Math.round(Math.max(0,e*1e3-Date.now())/6e4)}function h(e,t){return!t||t<=0||e<0?null:Math.min(100,e/t*100)}function g(e,t,n=80){let r=h(e,t);if(r===null)return{percentage:null,isWarning:!1,displayText:``};let i=`${r.toFixed(0)}%`,a=r>=n,o=``;return o=a?` !${i}`:r>=50?` +${i}`:` ${i}`,{percentage:r,isWarning:a,displayText:o}}const _={ball:{filled:`─`,empty:`─`,marker:`●`},blocks:{filled:`█`,empty:`░`},"blocks-line":{filled:`█`,empty:`─`},capped:{filled:`━`,empty:`┄`,cap:`╸`},dots:{filled:`●`,empty:`○`},filled:{filled:`■`,empty:`□`},geometric:{filled:`▰`,empty:`▱`},line:{filled:`━`,empty:`┄`},squares:{filled:`◼`,empty:`◻`}};var v=class{constructor(e,t){this.config=e,this.symbols=t}renderDirectory(e,t,n){let r=e.workspace?.current_dir||e.cwd||`/`,i=e.workspace?.project_dir,a=n?.style??(n?.showBasename?`basename`:`full`);if(a===`basename`)return{text:r.split(/[\\/]/).pop()||`root`,bgColor:t.modeBg,fgColor:t.modeFg};let o=d(r),c=i&&d(i),l=this.getDisplayDirectoryName(o,c);return a===`fish`&&(l=s(l)),{text:l,bgColor:t.modeBg,fgColor:t.modeFg}}renderGit(e,t,n){if(!e)return null;let i=[];if(n?.showRepoName&&e.repoName&&(i.push(e.repoName),e.isWorktree&&i.push(this.symbols.git_worktree)),n?.showOperation&&e.operation&&i.push(`[${e.operation}]`),i.push(`${this.symbols.branch} ${e.branch}`),n?.showTag&&e.tag&&i.push(`${this.symbols.git_tag} ${e.tag}`),n?.showSha&&e.sha&&i.push(`${this.symbols.git_sha} ${e.sha}`),n?.showAheadBehind!==!1&&(e.ahead>0&&e.behind>0?i.push(`${this.symbols.git_ahead}${e.ahead}${this.symbols.git_behind}${e.behind}`):e.ahead>0?i.push(`${this.symbols.git_ahead}${e.ahead}`):e.behind>0&&i.push(`${this.symbols.git_behind}${e.behind}`)),n?.showWorkingTree){let t=[];e.staged&&e.staged>0&&t.push(`+${e.staged}`),e.unstaged&&e.unstaged>0&&t.push(`~${e.unstaged}`),e.untracked&&e.untracked>0&&t.push(`?${e.untracked}`),e.conflicts&&e.conflicts>0&&t.push(`!${e.conflicts}`),t.length>0&&i.push(`(${t.join(` `)})`)}if(n?.showUpstream&&e.upstream&&i.push(`${this.symbols.git_upstream}${e.upstream}`),n?.showStashCount&&e.stashCount&&e.stashCount>0&&i.push(`${this.symbols.git_stash} ${e.stashCount}`),n?.showTimeSinceCommit&&e.timeSinceCommit!==void 0){let t=r(e.timeSinceCommit);i.push(`${this.symbols.git_time} ${t}`)}let a=this.symbols.git_clean;return e.status===`conflicts`?a=this.symbols.git_conflicts:e.status===`dirty`&&(a=this.symbols.git_dirty),i.push(a),{text:i.join(` `),bgColor:t.gitBg,fgColor:t.gitFg}}renderModel(e,t){let n=o(e.model?.display_name||`Claude`);return{text:`${this.symbols.model} ${n}`,bgColor:t.modelBg,fgColor:t.modelFg}}renderSession(e,t,n){let r=n?.type||`cost`,i=n?.costSource,a=this.config.budget?.session,o=this.formatUsageWithBudget(i===`calculated`?e.session.calculatedCost:i===`official`?e.session.officialCost:e.session.cost,e.session.tokens,e.session.tokenBreakdown,r,a?.amount,a?.warningThreshold||80,a?.type);return{text:`${this.symbols.session_cost} ${o}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderSessionId(e,t,n){return{text:n?.showIdLabel===!1?e:`${this.symbols.session_id} ${e}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderTmux(e,t){return e?{text:`tmux:${e}`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}:{text:`tmux:none`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}}renderContext(e,t,n){let r=n?.displayStyle??`text`,i=r===`text`?`remaining`:`used`,a=n?.percentageMode??i,o=this.resolveBarStyleDef(r),s=a===`remaining`?`100%`:`0%`;if(!e)return o?{text:`${o.empty.repeat(10)} ${s}`,bgColor:t.contextBg,fgColor:t.contextFg}:{text:`${this.symbols.context_time} 0 (${s})`,bgColor:t.contextBg,fgColor:t.contextFg};let c=t.contextBg,l=t.contextFg;e.contextLeftPercentage<=20?(c=t.contextCriticalBg,l=t.contextCriticalFg):e.contextLeftPercentage<=40&&(c=t.contextWarningBg,l=t.contextWarningFg);let u=a===`remaining`?e.contextLeftPercentage:e.usablePercentage,d=Math.round(e.usablePercentage/100*10),f=10-d;if(o){let t=this.buildBar(o,d,f,10);return{text:n?.showPercentageOnly?`${t} ${u}%`:`${t} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}return{text:n?.showPercentageOnly?`${this.symbols.context_time} ${u}%`:`${this.symbols.context_time} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}buildBar(e,t,n,r){if(e.marker){let n=Math.min(t,r-1);return e.filled.repeat(n)+e.marker+e.empty.repeat(r-n-1)}return e.cap?t===0?e.cap+e.empty.repeat(r-1):t>=r?e.filled.repeat(r):e.filled.repeat(t-1)+e.cap+e.empty.repeat(n):e.filled.repeat(t)+e.empty.repeat(n)}resolveBarStyleDef(e){return e===`bar`?{filled:this.symbols.bar_filled,empty:this.symbols.bar_empty}:_[e]??null}formatPercentageWithBar(e,t,n){let r=t??`text`,i=this.resolveBarStyleDef(r);if(i){let t=Math.round(e/100*10),r=10-t,a=this.buildBar(i,t,r,10);return n?`${a} ${e}% (${n})`:`${a} ${e}%`}return n?`${e}% (${n})`:`${e}%`}renderMetrics(e,t,n){if(!e)return{text:`${this.symbols.metrics_response} new`,bgColor:t.metricsBg,fgColor:t.metricsFg};let r=[];if(n?.showLastResponseTime&&e.lastResponseTime!==null){let t=e.lastResponseTime<60?`${e.lastResponseTime.toFixed(1)}s`:`${(e.lastResponseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_last_response} ${t}`)}if(n?.showResponseTime!==!1&&e.responseTime!==null){let t=e.responseTime<60?`${e.responseTime.toFixed(1)}s`:`${(e.responseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_response} ${t}`)}if(n?.showDuration!==!1&&e.sessionDuration!==null){let t=i(e.sessionDuration);r.push(`${this.symbols.metrics_duration} ${t}`)}return n?.showMessageCount!==!1&&e.messageCount!==null&&r.push(`${this.symbols.metrics_messages} ${e.messageCount}`),n?.showLinesAdded!==!1&&e.linesAdded!==null&&e.linesAdded>0&&r.push(`${this.symbols.metrics_lines_added} ${e.linesAdded}`),n?.showLinesRemoved!==!1&&e.linesRemoved!==null&&e.linesRemoved>0&&r.push(`${this.symbols.metrics_lines_removed} ${e.linesRemoved}`),r.length===0?{text:`${this.symbols.metrics_response} active`,bgColor:t.metricsBg,fgColor:t.metricsFg}:{text:r.join(` `),bgColor:t.metricsBg,fgColor:t.metricsFg}}renderBlock(e,t,n){let r=Math.round(e.nativeUtilization),i=p(e.timeRemaining),a=this.config.budget?.block?.warningThreshold??80,o=t.blockBg,s=t.blockFg;return r>=a?(o=t.contextCriticalBg,s=t.contextCriticalFg):r>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.block_cost} ${this.formatPercentageWithBar(r,n?.displayStyle,i)}`,bgColor:o,fgColor:s}}renderWeekly(e,t,n){let r=e.rate_limits?.seven_day;if(!r)return null;let i=Math.round(r.used_percentage),a=p(m(r.resets_at)),o=t.weeklyBg,s=t.weeklyFg;return i>=80?(o=t.contextCriticalBg,s=t.contextCriticalFg):i>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.weekly_cost} ${this.formatPercentageWithBar(i,n?.displayStyle,a)}`,bgColor:o,fgColor:s}}renderToday(e,t,n=`cost`){let r=this.config.budget?.today;return{text:`${this.symbols.today_cost} ${this.formatUsageWithBudget(e.cost,e.tokens,e.tokenBreakdown,n,r?.amount,r?.warningThreshold,r?.type)}`,bgColor:t.todayBg,fgColor:t.todayFg}}getDisplayDirectoryName(e,t){return e.startsWith(`~`)?e:t&&t!==e&&e.startsWith(t)?e.slice(t.length+1)||t.split(/[\\/]/).pop()||`project`:e}formatUsageDisplay(r,i,a,o){switch(o){case`cost`:return e(r);case`tokens`:return t(i);case`both`:return`${e(r)} (${t(i)})`;case`breakdown`:return n(a);default:return e(r)}}formatUsageWithBudget(e,t,n,r,i,a=80,o){let s=this.formatUsageDisplay(e,t,n,r);if(i&&i>0){let n=null;if(o===`tokens`&&t!==null?n=t:(o===`cost`&&e!==null||!o&&e!==null)&&(n=e),n!==null)return s+g(n,i,a).displayText}return s}renderVersion(e,t,n){return e.version?{text:`${this.symbols.version} v${e.version}`,bgColor:t.versionBg,fgColor:t.versionFg}:null}renderEnv(e,t){let n=globalThis.process?.env?.[t.variable];if(!n)return null;let r=t.prefix??t.variable;return{text:r?`${this.symbols.env} ${r}: ${n}`:`${this.symbols.env} ${n}`,bgColor:e.envBg,fgColor:e.envFg}}};const y=`\x1B[0m`,b={right:``,left_rounded:``,right_rounded:``,branch:`⎇`,model:`✱`,git_clean:`✓`,git_dirty:`●`,git_conflicts:`⚠`,git_ahead:`↑`,git_behind:`↓`,git_worktree:`⧉`,git_tag:`⌂`,git_sha:`♯`,git_upstream:`→`,git_stash:`⧇`,git_time:`◷`,session_cost:`§`,block_cost:`◱`,today_cost:`☉`,context_time:`◔`,metrics_response:`⧖`,metrics_last_response:`Δ`,metrics_duration:`⧗`,metrics_messages:`◆`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`↗`,version:`◈`,bar_filled:`▪`,bar_empty:`▫`,env:`⚙`,session_id:`⌗`,weekly_cost:`◑`,dir:`📁`,activity:`⚡`},x={topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},S={topLeft:`+`,topRight:`+`,bottomLeft:`+`,bottomRight:`+`,horizontal:`-`,vertical:`|`,teeLeft:`+`,teeRight:`+`},C={rounded:x,square:{topLeft:`┌`,topRight:`┐`,bottomLeft:`└`,bottomRight:`┘`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},heavy:{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`━`,vertical:`┃`,teeLeft:`┣`,teeRight:`┫`},double:{topLeft:`╔`,topRight:`╗`,bottomLeft:`╚`,bottomRight:`╝`,horizontal:`═`,vertical:`║`,teeLeft:`╠`,teeRight:`╣`},dashed:{topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`┄`,vertical:`┊`,teeLeft:`├`,teeRight:`┤`},"heavy-dashed":{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`┅`,vertical:`┇`,teeLeft:`┣`,teeRight:`┫`},mixed:{topLeft:`┍`,topRight:`┑`,bottomLeft:`┕`,bottomRight:`┙`,horizontal:`━`,vertical:`│`,teeLeft:`┝`,teeRight:`┥`},ascii:S,invisible:{topLeft:` `,topRight:` `,bottomLeft:` `,bottomRight:` `,horizontal:` `,vertical:` `,teeLeft:` `,teeRight:` `}},w={right:``,left_rounded:``,right_rounded:``,branch:`~`,model:`M`,git_clean:`=`,git_dirty:`*`,git_conflicts:`!`,git_ahead:`^`,git_behind:`v`,git_worktree:`W`,git_tag:`T`,git_sha:`#`,git_upstream:`>>`,git_stash:`S`,git_time:`@`,session_cost:`S`,block_cost:`B`,today_cost:`D`,context_time:`C`,metrics_response:`R`,metrics_last_response:`L`,metrics_duration:`T`,metrics_messages:`#`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`~/h`,version:`V`,bar_filled:`=`,bar_empty:`-`,env:`$`,session_id:`#`,weekly_cost:`W`,dir:`D`,activity:`A`},ee=`\x1B`,T=RegExp(`\x1B\\[[0-9;]*m`,`g`),E=RegExp(`(\x1B\\[[0-9;]*m)`);function D(e){return e.replace(T,``)}function O(e){return D(e).length}function k(e,t,n){return t?`${t}${e}${n}`:e}function A(e,t){let n=O(e);return n>=t?e:e+` `.repeat(t-n)}function te(e,t){let n=O(e);return n>=t?e:` `.repeat(t-n)+e}function ne(e,t){let n=O(e);if(n>=t)return e;let r=t-n,i=Math.floor(r/2),a=r-i;return` `.repeat(i)+e+` `.repeat(a)}function j(e,t){if(D(e).length<=t)return e;let n=0,r=``,i=e.split(E);for(let e of i){if(e.startsWith(`\x1B`)){r+=e;continue}for(let i of e){if(n>=t-1)return r+=`…\x1B[0m`,r;r+=i,n++}}return r}function M(e,t,n){let r=n-2,i=A(j(t,r),r);return e.vertical+` `+i+` `+e.vertical}function N(e,t){return e.teeLeft+e.horizontal.repeat(t)+e.teeRight}function P(e,t,n,r){if(!n&&!r)return e.bottomLeft+e.horizontal.repeat(t)+e.bottomRight;let i=n?` ${n} `:``,a=r?` ${r} `:``,o=O(i),s=O(a);if(o+s>t){let e=Math.max(0,t-s);if(o>e&&(i=j(i,e),o=O(i)),o+s>t){let e=Math.max(0,t-o);a=j(a,e),s=O(a)}}let c=t-o-s;return e.bottomLeft+i+e.horizontal.repeat(Math.max(0,c))+a+e.bottomRight}function F(e,t){if(e.length===0)return``;if(e.length===1)return e[0]??``;let n=e.map(e=>O(e)),r=t-n.reduce((e,t)=>e+t,0),i=Math.max(2,Math.floor(r/(e.length-1))),a=Array.from({length:e.length});a[e.length-1]=n[e.length-1]??0;for(let t=e.length-2;t>=0;t--)a[t]=(a[t+1]??0)+(n[t]??0);let o=e[0]??``,s=n[0]??0;for(let r=1;r<e.length;r++){let c=t-s-(a[r]??0)-(e.length-1-r)*2,l=Math.max(2,Math.min(i,c));o+=` `.repeat(l)+(e[r]??``),s+=l+(n[r]??0)}return o}function I(e,t,n){if(!t)return e;if(!e)return t;let r=O(e),i=O(t),a=n-r-i;return a<2?`${e} ${t}`:e+` `.repeat(a)+t}function L(e,t,n){let r=o(t.hookData.model?.display_name||`Claude`).toLowerCase();return e.replace(/\{([^}]+)\}/g,(e,t)=>{if(n){let e=n[t];if(e!==void 0)return e}return t===`model`?r:``})}function R(e,t,n,r,i){let a=r?.left??`{model}`,o=r?.right,s=L(a,e,i),c=s?` ${s} `:``,l=O(c);if(!o){let e=n-l;return t.topLeft+c+t.horizontal.repeat(Math.max(0,e))+t.topRight}let u=L(o,e,i),d=u?` ${u} `:``,f=O(d),p=c,m=l,h=d,g=f;if(m+g>n){let e=Math.max(0,n-g);if(m>e&&(p=j(p,e),m=O(p)),m+g>n){let e=Math.max(0,n-m);h=j(h,e),g=O(h)}}let _=n-m-g;if(_<2){let e=n-m;return t.topLeft+p+t.horizontal.repeat(Math.max(0,e))+t.topRight}return t.topLeft+p+t.horizontal.repeat(_)+h+t.topRight}function z(e,t,n,r=60,i=80){return e>=i?n.contextCriticalFg:e>=r?n.contextWarningFg:t}function B(e,t,n,r,i){t=Math.max(5,t);let a=Math.max(0,Math.min(t,Math.round(e/100*t))),o=t-a;return k(n.bar_filled.repeat(a)+n.bar_empty.repeat(o),i,r)}function re(e,t){if(!e.contextInfo)return{icon:``,label:`context`,bar:``,pct:``,tokens:``};let n=e.contextInfo.usablePercentage,r=l(e.contextInfo.totalTokens),i=l(e.contextInfo.maxTokens);return{icon:t.context_time,label:`context`,bar:` `,pct:`${n}%`,tokens:`${r}/${i}`}}function ie(e,t,n,r,i,a){if(!e.contextInfo)return``;let o=e.contextInfo.usablePercentage;return B(o,t,n,r,z(o,a?.[`context.bar`]??a?.context??i.contextFg,i))}function ae(e,t,n,r,i,a,o){if(!e.blockInfo)return``;let s=e.blockInfo.nativeUtilization,c=a.budget?.block?.warningThreshold??80;return B(s,t,n,r,z(s,o?.[`block.bar`]??o?.block??i.blockFg,i,50,c))}function oe(e,t,n,r,i,a){let o=e.hookData.rate_limits?.seven_day;if(!o)return``;let s=o.used_percentage;return B(s,t,n,r,z(s,a?.[`weekly.bar`]??a?.weekly??i.weeklyFg,i))}function V(e,t,n,r,i){if(!e.contextInfo)return null;let a=e.contextInfo.usablePercentage,o=` ${a}% ${l(e.contextInfo.totalTokens)}/${l(e.contextInfo.maxTokens)}`,s=Math.max(5,t-o.length),c=Math.max(0,Math.min(s,Math.round(a/100*s))),u=s-c,d=n.bar_filled.repeat(c)+n.bar_empty.repeat(u),f=z(a,i.contextFg,i);return k(`${d}${o}`,f,r)}function se(e){return d(e.workspace?.current_dir||e.cwd||`/`)}function ce(e,t,n,r,i){let a=[];e.blockInfo&&a.push(k(G(e.blockInfo,t,n),i.blockFg,r));let o=e.hookData.rate_limits?.seven_day;o&&a.push(k(K(o,t),i.weeklyFg,r)),e.usageInfo&&a.push(k(q(e.usageInfo,t,n),i.sessionFg,r)),e.todayInfo&&a.push(k(J(e.todayInfo,t,n),i.todayFg,r));let s=H(e,t);return s.length>0&&a.push(k(s.join(` · `),i.metricsFg,r)),a}function H(e,t){let n=[];return e.metricsInfo&&(e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0&&n.push(`${t.metrics_duration} ${i(e.metricsInfo.sessionDuration)}`),e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0&&n.push(`${t.metrics_messages} ${e.metricsInfo.messageCount}`)),n}function U(e,t,n,r){let i=[],a=ve(e,t);a&&i.push(k(a,r.gitFg,n));let o=s(se(e.hookData));return i.push(k(o,r.modeFg,n)),i}function W(e,t,n,r,i){let a=[];if(e.hookData.version&&a.push(k(`${t.version} v${e.hookData.version}`,i.versionFg,r)),e.tmuxSessionId&&a.push(k(`tmux:${e.tmuxSessionId}`,i.tmuxFg,r)),e.metricsInfo){let n=[];e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0&&n.push(`${t.metrics_response} ${c(e.metricsInfo.responseTime)}`),e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0&&n.push(`${t.metrics_lines_added}${e.metricsInfo.linesAdded}`),e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0&&n.push(`${t.metrics_lines_removed}${e.metricsInfo.linesRemoved}`),n.length>0&&a.push(k(n.join(` · `),i.metricsFg,r))}let o=n.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(o&&o.variable){let e=globalThis.process?.env?.[o.variable];if(e){let t=o.prefix??o.variable;a.push(k(t?`${t}:${e}`:e,i.envFg,r))}}return a}function le(e,t,n){let r=`${Math.round(e.nativeUtilization)}%`,i=f(e.timeRemaining);return{icon:t.block_cost,label:`block`,value:r,time:i,budget:``,bar:` `}}function G(e,t,n){let r=le(e,t,n),i=`${r.icon} ${r.value}`;return r.time&&(i+=` · ${r.time}`),r.budget&&(i+=r.budget),i}function ue(e,t){let n=`${Math.round(e.used_percentage)}%`,r=p(m(e.resets_at));return{icon:t.weekly_cost,label:`weekly`,pct:n,time:r,bar:` `}}function K(e,t){let n=ue(e,t),r=`${n.icon} ${n.pct}`;return n.time&&(r+=` · ${n.time}`),r}function de(t,n,r){let i=t.session.tokens,a=i!==null&&i>0?l(i):``,o=``,s=r.budget?.session;return s?.amount&&t.session.cost!==null&&(o=g(t.session.cost,s.amount,s.warningThreshold||80).displayText),{icon:n.session_cost,label:`session`,cost:e(t.session.cost),tokens:a,budget:o}}function q(e,t,n){let r=de(e,t,n),i=`${r.icon} ${r.cost}`;return r.tokens&&(i+=` · ${r.tokens}`),r.budget&&(i+=r.budget),i}function fe(t,n,r){let i=``,a=r.budget?.today;return a?.amount&&t.cost!==null&&(i=g(t.cost,a.amount,a.warningThreshold||80).displayText),{icon:n.today_cost,cost:e(t.cost),label:`today`,budget:i}}function J(e,t,n){let r=fe(e,t,n),i=`${r.icon} ${r.cost} ${r.label}`;return r.budget&&(i+=r.budget),i}function pe(e,t){let n={response:``,responseIcon:``,responseVal:``,lastResponse:``,lastResponseIcon:``,lastResponseVal:``,added:``,addedIcon:``,addedVal:``,removed:``,removedIcon:``,removedVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0,i=r?c(e.metricsInfo.responseTime):``,a=e.metricsInfo.lastResponseTime!==null&&!isNaN(e.metricsInfo.lastResponseTime)&&e.metricsInfo.lastResponseTime>0,o=a?c(e.metricsInfo.lastResponseTime):``,s=e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0,l=s?`${e.metricsInfo.linesAdded}`:``,u=e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0,d=u?`${e.metricsInfo.linesRemoved}`:``;return{response:r?`${t.metrics_response} ${i}`:``,responseIcon:r?t.metrics_response:``,responseVal:i,lastResponse:a?`${t.metrics_last_response} ${o}`:`${t.metrics_last_response} --`,lastResponseIcon:t.metrics_last_response,lastResponseVal:a?o:`--`,added:s?`${t.metrics_lines_added}${l}`:``,addedIcon:s?t.metrics_lines_added:``,addedVal:l,removed:u?`${t.metrics_lines_removed}${d}`:``,removedIcon:u?t.metrics_lines_removed:``,removedVal:d}}function me(e,t){let n=pe(e,t),r=[n.response,n.lastResponse,n.added,n.removed].filter(Boolean);return r.length>0?r.join(` · `):``}function he(e,t){let n={icon:``,duration:``,durationIcon:``,durationVal:``,messages:``,messagesIcon:``,messagesVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0,a=r?i(e.metricsInfo.sessionDuration):``,o=e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0,s=o?`${e.metricsInfo.messageCount}`:``;return{icon:t.activity,duration:r?`${t.metrics_duration} ${a}`:``,durationIcon:r?t.metrics_duration:``,durationVal:a,messages:o?`${t.metrics_messages} ${s}`:``,messagesIcon:o?t.metrics_messages:``,messagesVal:s}}function ge(e,t){let n=he(e,t),r=[n.duration,n.messages].filter(Boolean);return r.length>0?r.join(` · `):``}function _e(e,t){if(!e.gitInfo)return{icon:``,info:``,branch:``,status:``,ahead:``,behind:``,working:``,head:``};let n;n=e.gitInfo.status===`conflicts`?t.git_conflicts:e.gitInfo.status===`dirty`?t.git_dirty:t.git_clean;let r=e.gitInfo.ahead>0?`${t.git_ahead}${e.gitInfo.ahead}`:``,i=e.gitInfo.behind>0?`${t.git_behind}${e.gitInfo.behind}`:``,a=[];e.gitInfo.staged&&e.gitInfo.staged>0&&a.push(`+${e.gitInfo.staged}`),e.gitInfo.unstaged&&e.gitInfo.unstaged>0&&a.push(`~${e.gitInfo.unstaged}`),e.gitInfo.untracked&&e.gitInfo.untracked>0&&a.push(`?${e.gitInfo.untracked}`);let o=a.length>0?`(${a.join(` `)})`:``,s=[t.branch,e.gitInfo.branch,n];r&&s.push(r),i&&s.push(i);let c=[e.gitInfo.branch,n];return r&&c.push(r),i&&c.push(i),{icon:t.branch,info:c.join(` `),branch:e.gitInfo.branch,status:n,ahead:r,behind:i,working:o,head:s.join(` `)}}function ve(e,t){let n=_e(e,t);if(!n.icon)return``;let r=`${n.icon} ${n.branch} ${n.status}`;return n.ahead&&(r+=` ${n.ahead}`),n.behind&&(r+=`${n.behind}`),n.working&&(r+=` ${n.working}`),r}function ye(e,t,n){return{icon:n.dir,value:be(e,t)}}function be(e,t){let n=se(e.hookData),r=t.display.lines.map(e=>e.segments.directory).find(e=>e?.enabled),i=r?.style??(r?.showBasename?`basename`:`fish`);if(i===`basename`){let e=n.includes(`/`)?`/`:`\\`;return n.split(e).pop()||n}return i===`full`?n:s(n)}function xe(e,t){return e.hookData.version?{icon:t.version,value:`v${e.hookData.version}`}:{icon:``,value:``}}function Se(e,t){let n=xe(e,t);return n.icon?`${n.icon} ${n.value}`:``}function Ce(e){return e.tmuxSessionId?{label:`tmux`,value:e.tmuxSessionId}:{label:``,value:``}}function we(e){let t=Ce(e);return t.label?`${t.label}:${t.value}`:``}function Te(e){let t=e.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(!t||!t.variable)return{prefix:``,value:``};let n=globalThis.process?.env?.[t.variable];return n?{prefix:(t.prefix??t.variable)||``,value:n}:{prefix:``,value:``}}function Ee(e){let t=Te(e);return t.value?t.prefix?`${t.prefix}:${t.value}`:t.value:``}function Y(e,t,n,r,i,a){for(let[o,s]of Object.entries(n)){let n=`${t}.${o}`,c=a?.[n]??a?.[t]??r;e[n]=s?k(s,c,i):``}}function De(e,t,n){let r=t.indexOf(`.`),i=r===-1?t:t.slice(0,r);return e.items.map(e=>{let t=e.match(/^\{(.+)\}$/);return t?n[`${i}.${t[1]}`]??``:e?k(e,``,``):``}).filter(Boolean)}function X(e,t,n,r){if(e.length===0)return``;if(n===`between`&&r!==void 0&&e.length>1){let n=e.reduce((e,t)=>e+O(t),0),i=Math.max(t*(e.length-1),r-n),a=Math.floor(i/(e.length-1)),o=i%(e.length-1),s=e[0];for(let t=1;t<e.length;t++)s+=` `.repeat(a+(t<=o?1:0))+e[t];return s}return e.join(` `.repeat(t))}function Oe(e,t){let{sym:n,config:r,reset:i,colors:a}=t,s=a.partFg,c=(e,t)=>e?k(e,t,i):``,l={},u=o(e.hookData.model?.display_name||`Claude`).toLowerCase(),d=s?.model??a.modelFg;if(l.model=c(`${n.model} ${u}`,d),Y(l,`model`,{icon:n.model,value:u},a.modelFg,i,s),l.context=V(e,t.contentWidth,n,i,a)??``,Y(l,`context`,re(e,n),e.contextInfo?z(e.contextInfo.usablePercentage,a.contextFg,a):a.contextFg,i,s),e.blockInfo){let t=s?.block??a.blockFg;l.block=c(G(e.blockInfo,n,r),t),Y(l,`block`,le(e.blockInfo,n,r),a.blockFg,i,s)}else l.block=``;if(e.usageInfo){let t=s?.session??a.sessionFg;l.session=c(q(e.usageInfo,n,r),t),Y(l,`session`,de(e.usageInfo,n,r),a.sessionFg,i,s)}else l.session=``;if(e.todayInfo){let t=s?.today??a.todayFg;l.today=c(J(e.todayInfo,n,r),t),Y(l,`today`,fe(e.todayInfo,n,r),a.todayFg,i,s)}else l.today=``;let f=e.hookData.rate_limits?.seven_day;if(f){let e=s?.weekly??a.weeklyFg;l.weekly=c(K(f,n),e),Y(l,`weekly`,ue(f,n),a.weeklyFg,i,s)}else l.weekly=``;let p=s?.git??a.gitFg;l.git=c(ve(e,n),p),Y(l,`git`,_e(e,n),a.gitFg,i,s);let m=s?.dir??a.modeFg;l.dir=c(be(e,r),m),Y(l,`dir`,ye(e,r,n),a.modeFg,i,s);let h=s?.version??a.versionFg;l.version=c(Se(e,n),h),Y(l,`version`,xe(e,n),a.versionFg,i,s);let g=s?.tmux??a.tmuxFg;l.tmux=c(we(e),g),Y(l,`tmux`,Ce(e),a.tmuxFg,i,s);let _=s?.metrics??a.metricsFg;l.metrics=c(me(e,n),_),Y(l,`metrics`,pe(e,n),a.metricsFg,i,s);let v=s?.activity??a.metricsFg;l.activity=c(ge(e,n),v),Y(l,`activity`,he(e,n),a.metricsFg,i,s);let y=s?.env??a.envFg;l.env=c(Ee(r),y),Y(l,`env`,Te(r),a.envFg,i,s);let b={},x=r.display.tui?.segments;if(x)for(let[e,t]of Object.entries(x)){let n=De(t,e,l),r=t.gap??1,i=t.justify??`start`;b[e]={items:n,gap:r,justify:i},l[e]=X(n,r,i===`between`?`start`:i)}return{data:l,templates:b}}function ke(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=ce(n,o,s,c,l);u.length>0&&t.push(M(r,F(u,i),a))}function Ae(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=U(n,o,c,l),d=W(n,o,s,c,l),f=u.join(` `),p=d.join(` · `);(f||p)&&(t.push(N(r,a)),t.push(M(r,I(f,p,i),a)))}function je(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=[],d=[];n.blockInfo&&u.push(k(G(n.blockInfo,o,s),l.blockFg,c));let f=n.hookData.rate_limits?.seven_day;f&&u.push(k(K(f,o),l.weeklyFg,c)),n.todayInfo&&u.push(k(J(n.todayInfo,o,s),l.todayFg,c)),n.usageInfo&&d.push(k(q(n.usageInfo,o,s),l.sessionFg,c));let p=H(n,o);p.length>0&&d.push(k(p.join(` · `),l.metricsFg,c)),u.length>0&&t.push(M(r,F(u,i),a)),d.length>0&&t.push(M(r,I(d[0]??``,d[1]??``,i),a))}function Me(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=U(n,o,c,l);u.length>0&&(t.push(N(r,a)),t.push(M(r,I(u[0]??``,u[1]??``,i),a)));let d=W(n,o,s,c,l);d.length>0&&(t.push(N(r,a)),t.push(M(r,d.join(` · `),a)))}function Ne(t){let{lines:n,data:r,box:i,contentWidth:a,innerWidth:o,sym:s,config:c,reset:l,colors:u}=t;r.blockInfo&&n.push(M(i,k(G(r.blockInfo,s,c),u.blockFg,l),o));let d=r.hookData.rate_limits?.seven_day;d&&n.push(M(i,k(K(d,s),u.weeklyFg,l),o));let f=[];r.usageInfo&&f.push(k(`${s.session_cost} ${e(r.usageInfo.session.cost)}`,u.sessionFg,l)),r.todayInfo&&f.push(k(`${s.today_cost} ${e(r.todayInfo.cost)} today`,u.todayFg,l)),f.length>0&&n.push(M(i,I(f[0]??``,f[1]??``,a),o))}function Pe(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=U(n,o,c,l);u.length>0&&(t.push(N(r,a)),t.push(M(r,I(u[0]??``,u[1]??``,i),a)));let d=W(n,o,s,c,l);d.length>0&&t.push(M(r,d.join(` · `),a))}const Fe=`---`,Ie=`.`,Le=new Set([`context`,`context.bar`,`block.bar`,`weekly.bar`]);function Z(e){return e.length===1&&e[0].segment===`---`}function Q(e){if(!e.endsWith(`fr`))return 0;let t=parseInt(e.replace(`fr`,``),10);return!isNaN(t)&&t>0?t:0}function Re(e,t,n){let r=Math.floor(e/t.length),i=e-r*t.length;for(let e of t)n[e]=n[e]+r+(i>0?1:0),i>0&&i--}function ze(e,t,n,r){let i=0;for(let r=0;r<n;r++)i+=e[t+r]??0;return n>1&&(i+=(n-1)*r),i}function Be(e,t){let n;for(let r of e)t>=r.minWidth&&(!n||r.minWidth>n.minWidth)&&(n=r);if(n)return n;let r=e[0];for(let t=1;t<e.length;t++)e[t].minWidth<r.minWidth&&(r=e[t]);return r}function Ve(e){let t=[];for(let n of e){let e=n.trim();if(e===`---`){t.push([{segment:`---`,spanStart:!0,spanSize:1}]);continue}let r=e.split(/\s+/),i=[],a=0;for(;a<r.length;){let e=r[a],t=1;for(;a+t<r.length&&r[a+t]===e;)t++;i.push({segment:e,spanStart:!0,spanSize:t});for(let n=1;n<t;n++)i.push({segment:e,spanStart:!1,spanSize:0});a+=t}t.push(i)}return t}function He(e,t){let n=e.map(e=>Z(e)?e:e.map(e=>e.segment===`.`||e.segment===`---`||t[e.segment]?e:{segment:`.`,spanStart:!0,spanSize:1})).map(e=>{if(Z(e))return e;let t=e.map(e=>e.segment),n=[],r=0;for(;r<t.length;){let e=t[r],i=1;for(;r+i<t.length&&t[r+i]===e;)i++;n.push({segment:e,spanStart:!0,spanSize:i});for(let t=1;t<i;t++)n.push({segment:e,spanStart:!1,spanSize:0});r+=i}return n}).filter(e=>Z(e)?!0:e.some(e=>e.segment!==`.`)),r=[];for(let e=0;e<n.length;e++){let t=n[e];if(!Z(t)){r.push(t);continue}r.length!==0&&(Z(r[r.length-1])||r.push(t))}return r.length>0&&Z(r[r.length-1])&&r.pop(),r}function Ue(e,t,n,r){let i=Array.from({length:e}).fill(0);for(let a of t)if(!Z(a))for(let t=0;t<a.length;t++){let o=a[t];if(!o.spanStart||o.spanSize!==1||o.segment===`.`||t>=e||r?.has(o.segment))continue;let s=O(n[o.segment]||``);s>i[t]&&(i[t]=s)}return i}function We(e,t,n,r,i,a){let o=e.length,s=Ue(o,t,n,a),c=Array.from({length:o}).fill(0);for(let t=0;t<o;t++)e[t]===`auto`&&(c[t]=s[t]);for(let t=0;t<o;t++){let n=e[t];if(n===`auto`||n.endsWith(`fr`))continue;let r=parseInt(n,10);!isNaN(r)&&r>0&&(c[t]=r)}for(let t=0;t<o;t++)c[t]<1&&!e[t].endsWith(`fr`)&&(c[t]=1);let l=Math.max(0,o-1)*i,u=c.reduce((e,t)=>e+t,0),d=Math.max(0,r-u-l),f=0;for(let t of e)f+=Q(t);if(f>0){let t=d/f,n=[],r=0;for(let i=0;i<o;i++){let a=Q(e[i]);if(a>0){let e=Math.floor(t*a);c[i]=e,r+=e,n.push(i)}}let i=d-r;for(let e=0;i>0&&e<n.length;e++)c[n[e]]+=1,i--}return c}function Ge(e,t,n,r,i,a){let o=e.length,s=Ue(o,t,n,a),c=Array.from({length:o});for(let t=0;t<o;t++){let n=e[t];if(n!==`auto`&&!n.endsWith(`fr`)){let e=parseInt(n,10);c[t]=!isNaN(e)&&e>0?e:s[t]}else c[t]=s[t]}for(let i of t)if(!Z(i))for(let t=0;t<i.length;t++){let a=i[t];if(!a.spanStart||a.spanSize<=1||a.segment===`.`)continue;let o=O(n[a.segment]||``),s=ze(c,t,a.spanSize,r);if(o>s){let n=o-s,r=[];for(let n=0;n<a.spanSize;n++)Q(e[t+n])>0&&r.push(t+n);if(r.length>0)Re(n,r,c);else{let e=[];for(let n=0;n<a.spanSize;n++)e.push(t+n);Re(n,e,c)}}}for(let e=0;e<o;e++)c[e]<1&&(c[e]=1);let l=0;for(let e=0;e<o;e++)l+=c[e];let u=Math.max(0,o-1)*r,d=2+Math.max(0,1-i)*2,f=o*i*2;return{panelWidth:l+u+d+f,colWidths:c}}function Ke(e,t,n){switch(n){case`right`:return te(e,t);case`center`:return ne(e,t);default:return A(e,t)}}function qe(e,t,n,r,i,a=0,o){let s=[],c=O(i),l=a;for(let i=0;i<e.length;i++){let a=e[i];if(!a.spanStart)continue;let u=ze(t,i,a.spanSize,c),d=i+a.spanSize-1,f=n[i]===`right`?o?.[i]??0:0,p=n[d]===`left`?o?.[d]??0:0,m=l-f,h=l-p,g=0;for(let e=i;e<d;e++){let t=n[e]===`left`?o?.[e]??0:0,r=n[e+1]===`right`?o?.[e+1]??0:0;g+=l-t+(l-r)}let _=u+g;if(a.segment===`.`)s.push(` `.repeat(_+m+h));else{let e=Ke(j(r[a.segment]||``,_),_,n[i]||`left`),t=m>0?` `.repeat(m):``,o=h>0?` `.repeat(h):``;s.push(t+e+o)}}return s.join(i)}function Je(e,t,n){let r=n||e.horizontal;return e.teeLeft+r.repeat(t)+e.teeRight}function Ye(e,t,n,r,i){let a=e.minWidth??32,o=e.maxWidth??1/0,s=e.separator?.column??` `,c=e.separator?.divider,l=O(s),u=e.fitContent??!1,d=e.padding?.horizontal??0,f=e.widthReserve??45,p=Math.min(o,Math.max(a,r-f)),m=Be(e.breakpoints,p),h;h=u?o===1/0?r:Math.min(r,o):p;let g=He(Ve(m.areas),t);if(g.length===0)return{lines:[],panelWidth:h};let _,v=new Set(Le);if(e.segments)for(let t of Object.keys(e.segments))v.add(t);if(u){let e=Ge(m.columns,g,t,l,d,v);h=Math.min(o,Math.max(a,e.panelWidth)),_=e.colWidths;let n=h-e.panelWidth;if(n>0){let e=0;for(let t of m.columns)e+=Q(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Q(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}else{let e=h-2-Math.max(0,1-d)*2-m.columns.length*d*2;_=We(m.columns,g,t,e,l,v)}let y=h-2,b=Math.max(1,d)-d,x=b>0?` `.repeat(b):``,S=y-b*2,C=m.align||m.columns.map(()=>`left`),w=Array(m.columns.length).fill(0);if(d>0){let e=Array(m.columns.length).fill(0);for(let n of g)if(!Z(n))for(let r=0;r<n.length;r++){let i=n[r];if(!i.spanStart||i.spanSize!==1||i.segment===`.`||v.has(i.segment))continue;let a=O(t[i.segment]||``);a>e[r]&&(e[r]=a)}let n=0;for(let t=0;t<m.columns.length;t++){if(Q(m.columns[t])>0||e[t]<=0)continue;let r=_[t]-e[t];r<=0||(w[t]=Math.min(d,r),n+=w[t])}if(n>0){let e=0;for(let t of m.columns)e+=Q(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Q(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}function ee(e,t){let n=0;for(let r=e;r<e+t-1;r++){let e=C[r]===`left`?w[r]??0:0,t=C[r+1]===`right`?w[r+1]??0:0;n+=d-e+(d-t)}return n}if(i){let e=new Set;for(let n of g)if(!Z(n))for(let r=0;r<n.length;r++){let a=n[r];if(!a.spanStart||a.segment===`.`||a.segment===`---`||e.has(a.segment))continue;e.add(a.segment);let o=ze(_,r,a.spanSize,l),s=ee(r,a.spanSize),c=i(a.segment,o+s);c!==void 0&&(t[a.segment]=c)}}let T=He(g,t);if(T.length===0)return{lines:[],panelWidth:h};let E=[];for(let e of T)if(Z(e))E.push(Je(n,y,c));else{let r=A(j(qe(e,_,C,t,s,d,w),S),S);E.push(n.vertical+x+r+x+n.vertical)}return{lines:E,panelWidth:h}}const Xe=`\x1B[?2026h`,Ze=`\x1B[?2026l`,Qe=`\x1B[0m`;function $e(e){return e>=80?`wide`:e>=55?`medium`:`narrow`}function et(e){return e&&e>0?Math.max(32,e):80}async function tt(e,t,n,r,i,a){let o=(i.display.charset||`unicode`)===`text`?w:b,s=e.colors;if(i.display.tui){let r=i.display.tui,c=r.terminalWidth??a?.rawTerminalWidth??120,l;l=typeof r.box==`string`?C[r.box]??t:r.box?{...t,...r.box}:t;let u=Math.max(r.minWidth??32,c-(r.widthReserve??45))-2,d=u-2,f=Oe(e,{lines:[],data:e,box:l,contentWidth:d,innerWidth:u,sym:o,config:i,reset:n,colors:s}),p=f.data,m=f.templates,h=s.partFg,g=Ye(r,p,l,c,(t,r)=>{if(t===`context`)return V(e,r,o,n,s)??``;if(t===`context.bar`)return ie(e,r,o,n,s,h);if(t===`block.bar`)return ae(e,r,o,n,s,i,h);if(t===`weekly.bar`)return oe(e,r,o,n,s,h);let a=m[t];if(a)return X(a.items,a.gap,a.justify,r)}),_=g.panelWidth-2,v=r.footer?.left?L(r.footer.left,e,p):void 0,y=r.footer?.right?L(r.footer.right,e,p):void 0,b=[];return b.push(R(e,l,_,r.title,p)),b.push(...g.lines),b.push(P(l,_,v,y)),Xe+b.map(e=>Qe+e).join(`
|
|
1
|
+
function e(e){return e===null?`$0.00`:e<.01?`<$0.01`:`$${e.toFixed(2)}`}function t(e){return e===null||e===0?`0 tokens`:e>=1e6?`${(e/1e6).toFixed(1)}M tokens`:e>=1e3?`${(e/1e3).toFixed(1)}K tokens`:`${e} tokens`}function n(e){if(!e)return`0 tokens`;let t=[];if(e.input>0&&t.push(`${l(e.input)} in`),e.output>0&&t.push(`${l(e.output)} out`),e.cacheCreation>0||e.cacheRead>0){let n=e.cacheCreation+e.cacheRead;t.push(`${l(n)} cached`)}return t.length>0?t.join(` + `):`0 tokens`}function r(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:e<86400?`${Math.floor(e/3600)}h`:e<604800?`${Math.floor(e/86400)}d`:`${Math.floor(e/604800)}w`}function i(e){return e<60?`${e.toFixed(0)}s`:e<3600?`${(e/60).toFixed(0)}m`:e<86400?`${(e/3600).toFixed(1)}h`:`${(e/86400).toFixed(1)}d`}const a=/^(?:(?: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;function o(e){if(!e)return`Claude`;let t=e.trim().match(a);if(!t?.groups)return e;let{family:n,newMajor:r,newMinor:i,oldMajor:o,oldMinor:s,oldFamily:c}=t.groups,l=n||c,u=r||o,d=i||s;return l&&u?`${l.charAt(0).toUpperCase()+l.slice(1).toLowerCase()} ${d?`${u}.${d}`:u}`:e}function s(e){let t=e.includes(`/`)?`/`:`\\`,n=e.split(t);return n.map((e,t)=>t===n.length-1||e===`~`||e===``?e:e.charAt(0)).join(t)}function c(e){return e<60?`${e.toFixed(1)}s`:`${(e/60).toFixed(1)}m`}function l(e){return t(e).replace(` tokens`,``)}function u(e){return e==null||e<=0?``:e<1?`${(e*100).toFixed(0)}c/h`:`$${e.toFixed(2)}/h`}function d(e,t){let n=t??globalThis.process?.env?.HOME??globalThis.process?.env?.USERPROFILE;return n&&e.startsWith(n)?e.replace(n,`~`):e}function f(e){let t=Math.floor(e/60),n=e%60;return t>0?`${t}h ${n}m left`:`${n}m left`}function p(e){if(e>=1440){let t=Math.floor(e/1440),n=Math.floor(e%1440/60);return n>0?`${t}d ${n}h`:`${t}d`}else if(e>=60){let t=Math.floor(e/60),n=e%60;return n>0?`${t}h ${n}m`:`${t}h`}return`${e}m`}function m(e){return Math.round(Math.max(0,e*1e3-Date.now())/6e4)}function h(e,t){return!t||t<=0||e<0?null:Math.min(100,e/t*100)}function g(e,t,n=80){let r=h(e,t);if(r===null)return{percentage:null,isWarning:!1,displayText:``};let i=`${r.toFixed(0)}%`,a=r>=n,o=``;return o=a?` !${i}`:r>=50?` +${i}`:` ${i}`,{percentage:r,isWarning:a,displayText:o}}const _={ball:{filled:`─`,empty:`─`,marker:`●`},blocks:{filled:`█`,empty:`░`},"blocks-line":{filled:`█`,empty:`─`},capped:{filled:`━`,empty:`┄`,cap:`╸`},dots:{filled:`●`,empty:`○`},filled:{filled:`■`,empty:`□`},geometric:{filled:`▰`,empty:`▱`},line:{filled:`━`,empty:`┄`},squares:{filled:`◼`,empty:`◻`}};var v=class{constructor(e,t){this.config=e,this.symbols=t}renderDirectory(e,t,n){let r=e.workspace?.current_dir||e.cwd||`/`,i=e.workspace?.project_dir,a=n?.style??(n?.showBasename?`basename`:`full`);if(a===`basename`)return{text:r.split(/[\\/]/).pop()||`root`,bgColor:t.modeBg,fgColor:t.modeFg};let o=d(r),c=i&&d(i),l=this.getDisplayDirectoryName(o,c);return a===`fish`&&(l=s(l)),{text:l,bgColor:t.modeBg,fgColor:t.modeFg}}renderGit(e,t,n){if(!e)return null;let i=[];if(n?.showRepoName&&e.repoName&&(i.push(e.repoName),e.isWorktree&&i.push(this.symbols.git_worktree)),n?.showOperation&&e.operation&&i.push(`[${e.operation}]`),i.push(`${this.symbols.branch} ${e.branch}`),n?.showTag&&e.tag&&i.push(`${this.symbols.git_tag} ${e.tag}`),n?.showSha&&e.sha&&i.push(`${this.symbols.git_sha} ${e.sha}`),n?.showAheadBehind!==!1&&(e.ahead>0&&e.behind>0?i.push(`${this.symbols.git_ahead}${e.ahead}${this.symbols.git_behind}${e.behind}`):e.ahead>0?i.push(`${this.symbols.git_ahead}${e.ahead}`):e.behind>0&&i.push(`${this.symbols.git_behind}${e.behind}`)),n?.showWorkingTree){let t=[];e.staged&&e.staged>0&&t.push(`+${e.staged}`),e.unstaged&&e.unstaged>0&&t.push(`~${e.unstaged}`),e.untracked&&e.untracked>0&&t.push(`?${e.untracked}`),e.conflicts&&e.conflicts>0&&t.push(`!${e.conflicts}`),t.length>0&&i.push(`(${t.join(` `)})`)}if(n?.showUpstream&&e.upstream&&i.push(`${this.symbols.git_upstream}${e.upstream}`),n?.showStashCount&&e.stashCount&&e.stashCount>0&&i.push(`${this.symbols.git_stash} ${e.stashCount}`),n?.showTimeSinceCommit&&e.timeSinceCommit!==void 0){let t=r(e.timeSinceCommit);i.push(`${this.symbols.git_time} ${t}`)}let a=this.symbols.git_clean;return e.status===`conflicts`?a=this.symbols.git_conflicts:e.status===`dirty`&&(a=this.symbols.git_dirty),i.push(a),{text:i.join(` `),bgColor:t.gitBg,fgColor:t.gitFg}}renderModel(e,t){let n=o(e.model?.display_name||`Claude`);return{text:`${this.symbols.model} ${n}`,bgColor:t.modelBg,fgColor:t.modelFg}}renderSession(e,t,n){let r=n?.type||`cost`,i=n?.costSource,a=this.config.budget?.session,o=this.formatUsageWithBudget(i===`calculated`?e.session.calculatedCost:i===`official`?e.session.officialCost:e.session.cost,e.session.tokens,e.session.tokenBreakdown,r,a?.amount,a?.warningThreshold||80,a?.type);return{text:`${this.symbols.session_cost} ${o}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderSessionId(e,t,n){return{text:n?.showIdLabel===!1?e:`${this.symbols.session_id} ${e}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderTmux(e,t){return e?{text:`tmux:${e}`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}:{text:`tmux:none`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}}renderContext(e,t,n){let r=n?.displayStyle??`text`,i=r===`text`?`remaining`:`used`,a=n?.percentageMode??i,o=this.resolveBarStyleDef(r),s=a===`remaining`?`100%`:`0%`;if(!e)return o?{text:`${o.empty.repeat(10)} ${s}`,bgColor:t.contextBg,fgColor:t.contextFg}:{text:`${this.symbols.context_time} 0 (${s})`,bgColor:t.contextBg,fgColor:t.contextFg};let c=t.contextBg,l=t.contextFg;e.contextLeftPercentage<=20?(c=t.contextCriticalBg,l=t.contextCriticalFg):e.contextLeftPercentage<=40&&(c=t.contextWarningBg,l=t.contextWarningFg);let u=a===`remaining`?e.contextLeftPercentage:e.usablePercentage,d=Math.round(e.usablePercentage/100*10),f=10-d;if(o){let t=this.buildBar(o,d,f,10);return{text:n?.showPercentageOnly?`${t} ${u}%`:`${t} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}return{text:n?.showPercentageOnly?`${this.symbols.context_time} ${u}%`:`${this.symbols.context_time} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}buildBar(e,t,n,r){if(e.marker){let n=Math.min(t,r-1);return e.filled.repeat(n)+e.marker+e.empty.repeat(r-n-1)}return e.cap?t===0?e.cap+e.empty.repeat(r-1):t>=r?e.filled.repeat(r):e.filled.repeat(t-1)+e.cap+e.empty.repeat(n):e.filled.repeat(t)+e.empty.repeat(n)}resolveBarStyleDef(e){return e===`bar`?{filled:this.symbols.bar_filled,empty:this.symbols.bar_empty}:_[e]??null}formatPercentageWithBar(e,t,n){let r=t??`text`,i=this.resolveBarStyleDef(r);if(i){let t=Math.round(e/100*10),r=10-t,a=this.buildBar(i,t,r,10);return n?`${a} ${e}% (${n})`:`${a} ${e}%`}return n?`${e}% (${n})`:`${e}%`}renderMetrics(e,t,n){if(!e)return{text:`${this.symbols.metrics_response} new`,bgColor:t.metricsBg,fgColor:t.metricsFg};let r=[];if(n?.showLastResponseTime&&e.lastResponseTime!==null){let t=e.lastResponseTime<60?`${e.lastResponseTime.toFixed(1)}s`:`${(e.lastResponseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_last_response} ${t}`)}if(n?.showResponseTime!==!1&&e.responseTime!==null){let t=e.responseTime<60?`${e.responseTime.toFixed(1)}s`:`${(e.responseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_response} ${t}`)}if(n?.showDuration!==!1&&e.sessionDuration!==null){let t=i(e.sessionDuration);r.push(`${this.symbols.metrics_duration} ${t}`)}return n?.showMessageCount!==!1&&e.messageCount!==null&&r.push(`${this.symbols.metrics_messages} ${e.messageCount}`),n?.showLinesAdded!==!1&&e.linesAdded!==null&&e.linesAdded>0&&r.push(`${this.symbols.metrics_lines_added} ${e.linesAdded}`),n?.showLinesRemoved!==!1&&e.linesRemoved!==null&&e.linesRemoved>0&&r.push(`${this.symbols.metrics_lines_removed} ${e.linesRemoved}`),r.length===0?{text:`${this.symbols.metrics_response} active`,bgColor:t.metricsBg,fgColor:t.metricsFg}:{text:r.join(` `),bgColor:t.metricsBg,fgColor:t.metricsFg}}renderBlock(e,t,n){let r=Math.round(e.nativeUtilization),i=p(e.timeRemaining),a=this.config.budget?.block?.warningThreshold??80,o=t.blockBg,s=t.blockFg;return r>=a?(o=t.contextCriticalBg,s=t.contextCriticalFg):r>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.block_cost} ${this.formatPercentageWithBar(r,n?.displayStyle,i)}`,bgColor:o,fgColor:s}}renderWeekly(e,t,n){let r=e.rate_limits?.seven_day;if(!r)return null;let i=Math.round(r.used_percentage),a=p(m(r.resets_at)),o=t.weeklyBg,s=t.weeklyFg;return i>=80?(o=t.contextCriticalBg,s=t.contextCriticalFg):i>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.weekly_cost} ${this.formatPercentageWithBar(i,n?.displayStyle,a)}`,bgColor:o,fgColor:s}}renderToday(e,t,n=`cost`){let r=this.config.budget?.today;return{text:`${this.symbols.today_cost} ${this.formatUsageWithBudget(e.cost,e.tokens,e.tokenBreakdown,n,r?.amount,r?.warningThreshold,r?.type)}`,bgColor:t.todayBg,fgColor:t.todayFg}}getDisplayDirectoryName(e,t){return e.startsWith(`~`)?e:t&&t!==e&&e.startsWith(t)?e.slice(t.length+1)||t.split(/[\\/]/).pop()||`project`:e}formatUsageDisplay(r,i,a,o){switch(o){case`cost`:return e(r);case`tokens`:return t(i);case`both`:return`${e(r)} (${t(i)})`;case`breakdown`:return n(a);default:return e(r)}}formatUsageWithBudget(e,t,n,r,i,a=80,o){let s=this.formatUsageDisplay(e,t,n,r);if(i&&i>0){let n=null;if(o===`tokens`&&t!==null?n=t:(o===`cost`&&e!==null||!o&&e!==null)&&(n=e),n!==null)return s+g(n,i,a).displayText}return s}renderVersion(e,t,n){return e.version?{text:`${this.symbols.version} v${e.version}`,bgColor:t.versionBg,fgColor:t.versionFg}:null}renderEnv(e,t){let n=globalThis.process?.env?.[t.variable];if(!n)return null;let r=t.prefix??t.variable;return{text:r?`${this.symbols.env} ${r}: ${n}`:`${this.symbols.env} ${n}`,bgColor:e.envBg,fgColor:e.envFg}}};const y=`\x1B[0m`,b={right:``,left_rounded:``,right_rounded:``,branch:`⎇`,model:`✱`,git_clean:`✓`,git_dirty:`●`,git_conflicts:`⚠`,git_ahead:`↑`,git_behind:`↓`,git_worktree:`⧉`,git_tag:`⌂`,git_sha:`♯`,git_upstream:`→`,git_stash:`⧇`,git_time:`◷`,session_cost:`§`,block_cost:`◱`,today_cost:`☉`,context_time:`◔`,metrics_response:`⧖`,metrics_last_response:`Δ`,metrics_duration:`⧗`,metrics_messages:`◆`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`↗`,version:`◈`,bar_filled:`▪`,bar_empty:`▫`,env:`⚙`,session_id:`⌗`,weekly_cost:`◑`,dir:`📁`,activity:`⚡`},x={topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},S={topLeft:`+`,topRight:`+`,bottomLeft:`+`,bottomRight:`+`,horizontal:`-`,vertical:`|`,teeLeft:`+`,teeRight:`+`},C={rounded:x,square:{topLeft:`┌`,topRight:`┐`,bottomLeft:`└`,bottomRight:`┘`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},heavy:{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`━`,vertical:`┃`,teeLeft:`┣`,teeRight:`┫`},double:{topLeft:`╔`,topRight:`╗`,bottomLeft:`╚`,bottomRight:`╝`,horizontal:`═`,vertical:`║`,teeLeft:`╠`,teeRight:`╣`},dashed:{topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`┄`,vertical:`┊`,teeLeft:`├`,teeRight:`┤`},"heavy-dashed":{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`┅`,vertical:`┇`,teeLeft:`┣`,teeRight:`┫`},mixed:{topLeft:`┍`,topRight:`┑`,bottomLeft:`┕`,bottomRight:`┙`,horizontal:`━`,vertical:`│`,teeLeft:`┝`,teeRight:`┥`},ascii:S,invisible:{topLeft:` `,topRight:` `,bottomLeft:` `,bottomRight:` `,horizontal:` `,vertical:` `,teeLeft:` `,teeRight:` `}},w={right:``,left_rounded:``,right_rounded:``,branch:`~`,model:`M`,git_clean:`=`,git_dirty:`*`,git_conflicts:`!`,git_ahead:`^`,git_behind:`v`,git_worktree:`W`,git_tag:`T`,git_sha:`#`,git_upstream:`>>`,git_stash:`S`,git_time:`@`,session_cost:`S`,block_cost:`B`,today_cost:`D`,context_time:`C`,metrics_response:`R`,metrics_last_response:`L`,metrics_duration:`T`,metrics_messages:`#`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`~/h`,version:`V`,bar_filled:`=`,bar_empty:`-`,env:`$`,session_id:`#`,weekly_cost:`W`,dir:`D`,activity:`A`},ee=`\x1B`,T=RegExp(`\x1B\\[[0-9;]*m`,`g`),E=RegExp(`(\x1B\\[[0-9;]*m)`);function D(e){return e.replace(T,``)}function O(e){return D(e).length}function k(e,t,n){return t?`${t}${e}${n}`:e}function A(e,t){let n=O(e);return n>=t?e:e+` `.repeat(t-n)}function te(e,t){let n=O(e);return n>=t?e:` `.repeat(t-n)+e}function ne(e,t){let n=O(e);if(n>=t)return e;let r=t-n,i=Math.floor(r/2),a=r-i;return` `.repeat(i)+e+` `.repeat(a)}function j(e,t){if(D(e).length<=t)return e;let n=0,r=``,i=e.split(E);for(let e of i){if(e.startsWith(`\x1B`)){r+=e;continue}for(let i of e){if(n>=t-1)return r+=`…\x1B[0m`,r;r+=i,n++}}return r}function M(e,t,n){let r=n-2,i=A(j(t,r),r);return e.vertical+` `+i+` `+e.vertical}function N(e,t){return e.teeLeft+e.horizontal.repeat(t)+e.teeRight}function P(e,t,n,r){if(!n&&!r)return e.bottomLeft+e.horizontal.repeat(t)+e.bottomRight;let i=n?` ${n} `:``,a=r?` ${r} `:``,o=O(i),s=O(a);if(o+s>t){let e=Math.max(0,t-s);if(o>e&&(i=j(i,e),o=O(i)),o+s>t){let e=Math.max(0,t-o);a=j(a,e),s=O(a)}}let c=t-o-s;return e.bottomLeft+i+e.horizontal.repeat(Math.max(0,c))+a+e.bottomRight}function F(e,t){if(e.length===0)return``;if(e.length===1)return e[0]??``;let n=e.map(e=>O(e)),r=t-n.reduce((e,t)=>e+t,0),i=Math.max(2,Math.floor(r/(e.length-1))),a=Array.from({length:e.length});a[e.length-1]=n[e.length-1]??0;for(let t=e.length-2;t>=0;t--)a[t]=(a[t+1]??0)+(n[t]??0);let o=e[0]??``,s=n[0]??0;for(let r=1;r<e.length;r++){let c=t-s-(a[r]??0)-(e.length-1-r)*2,l=Math.max(2,Math.min(i,c));o+=` `.repeat(l)+(e[r]??``),s+=l+(n[r]??0)}return o}function I(e,t,n){if(!t)return e;if(!e)return t;let r=O(e),i=O(t),a=n-r-i;return a<2?`${e} ${t}`:e+` `.repeat(a)+t}function L(e,t,n){let r=o(t.hookData.model?.display_name||`Claude`).toLowerCase();return e.replace(/\{([^}]+)\}/g,(e,t)=>{if(n){let e=n[t];if(e!==void 0)return e}return t===`model`?r:``})}function R(e,t,n,r,i){let a=r?.left??`{model}`,o=r?.right,s=L(a,e,i),c=s?` ${s} `:``,l=O(c);if(!o){let e=n-l;return t.topLeft+c+t.horizontal.repeat(Math.max(0,e))+t.topRight}let u=L(o,e,i),d=u?` ${u} `:``,f=O(d),p=c,m=l,h=d,g=f;if(m+g>n){let e=Math.max(0,n-g);if(m>e&&(p=j(p,e),m=O(p)),m+g>n){let e=Math.max(0,n-m);h=j(h,e),g=O(h)}}let _=n-m-g;if(_<2){let e=n-m;return t.topLeft+p+t.horizontal.repeat(Math.max(0,e))+t.topRight}return t.topLeft+p+t.horizontal.repeat(_)+h+t.topRight}function z(e,t,n,r=60,i=80){return e>=i?n.contextCriticalFg:e>=r?n.contextWarningFg:t}function B(e,t,n,r,i){t=Math.max(5,t);let a=Math.max(0,Math.min(t,Math.round(e/100*t))),o=t-a;return k(n.bar_filled.repeat(a)+n.bar_empty.repeat(o),i,r)}function re(e,t){if(!e.contextInfo)return{icon:``,label:`context`,bar:``,pct:``,tokens:``};let n=e.contextInfo.usablePercentage,r=l(e.contextInfo.totalTokens),i=l(e.contextInfo.maxTokens);return{icon:t.context_time,label:`context`,bar:` `,pct:`${n}%`,tokens:`${r}/${i}`}}function ie(e,t,n,r,i,a){if(!e.contextInfo)return``;let o=e.contextInfo.usablePercentage;return B(o,t,n,r,z(o,a?.[`context.bar`]??a?.context??i.contextFg,i))}function ae(e,t,n,r,i,a,o){if(!e.blockInfo)return``;let s=e.blockInfo.nativeUtilization,c=a.budget?.block?.warningThreshold??80;return B(s,t,n,r,z(s,o?.[`block.bar`]??o?.block??i.blockFg,i,50,c))}function oe(e,t,n,r,i,a){let o=e.hookData.rate_limits?.seven_day;if(!o)return``;let s=o.used_percentage;return B(s,t,n,r,z(s,a?.[`weekly.bar`]??a?.weekly??i.weeklyFg,i))}function V(e,t,n,r,i){if(!e.contextInfo)return null;let a=e.contextInfo.usablePercentage,o=` ${a}% ${l(e.contextInfo.totalTokens)}/${l(e.contextInfo.maxTokens)}`,s=Math.max(5,t-o.length),c=Math.max(0,Math.min(s,Math.round(a/100*s))),u=s-c,d=n.bar_filled.repeat(c)+n.bar_empty.repeat(u),f=z(a,i.contextFg,i);return k(`${d}${o}`,f,r)}function se(e){return d(e.workspace?.current_dir||e.cwd||`/`)}function ce(e,t,n,r,i){let a=[];e.blockInfo&&a.push(k(G(e.blockInfo,t,n),i.blockFg,r));let o=e.hookData.rate_limits?.seven_day;o&&a.push(k(K(o,t),i.weeklyFg,r)),e.usageInfo&&a.push(k(q(e.usageInfo,t,n),i.sessionFg,r)),e.todayInfo&&a.push(k(J(e.todayInfo,t,n),i.todayFg,r));let s=H(e,t);return s.length>0&&a.push(k(s.join(` · `),i.metricsFg,r)),a}function H(e,t){let n=[];return e.metricsInfo&&(e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0&&n.push(`${t.metrics_duration} ${i(e.metricsInfo.sessionDuration)}`),e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0&&n.push(`${t.metrics_messages} ${e.metricsInfo.messageCount}`)),n}function U(e,t,n,r){let i=[],a=ve(e,t);a&&i.push(k(a,r.gitFg,n));let o=s(se(e.hookData));return i.push(k(o,r.modeFg,n)),i}function W(e,t,n,r,i){let a=[];if(e.hookData.version&&a.push(k(`${t.version} v${e.hookData.version}`,i.versionFg,r)),e.tmuxSessionId&&a.push(k(`tmux:${e.tmuxSessionId}`,i.tmuxFg,r)),e.metricsInfo){let n=[];e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0&&n.push(`${t.metrics_response} ${c(e.metricsInfo.responseTime)}`),e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0&&n.push(`${t.metrics_lines_added}${e.metricsInfo.linesAdded}`),e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0&&n.push(`${t.metrics_lines_removed}${e.metricsInfo.linesRemoved}`),n.length>0&&a.push(k(n.join(` · `),i.metricsFg,r))}let o=n.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(o&&o.variable){let e=globalThis.process?.env?.[o.variable];if(e){let t=o.prefix??o.variable;a.push(k(t?`${t}:${e}`:e,i.envFg,r))}}return a}function le(e,t,n){let r=`${Math.round(e.nativeUtilization)}%`,i=f(e.timeRemaining);return{icon:t.block_cost,label:`block`,value:r,time:i,budget:``,bar:` `}}function G(e,t,n){let r=le(e,t,n),i=`${r.icon} ${r.value}`;return r.time&&(i+=` · ${r.time}`),r.budget&&(i+=r.budget),i}function ue(e,t){let n=`${Math.round(e.used_percentage)}%`,r=p(m(e.resets_at));return{icon:t.weekly_cost,label:`weekly`,pct:n,time:r,bar:` `}}function K(e,t){let n=ue(e,t),r=`${n.icon} ${n.pct}`;return n.time&&(r+=` · ${n.time}`),r}function de(t,n,r){let i=t.session.tokens,a=i!==null&&i>0?l(i):``,o=``,s=r.budget?.session;return s?.amount&&t.session.cost!==null&&(o=g(t.session.cost,s.amount,s.warningThreshold||80).displayText),{icon:n.session_cost,label:`session`,cost:e(t.session.cost),tokens:a,budget:o}}function q(e,t,n){let r=de(e,t,n),i=`${r.icon} ${r.cost}`;return r.tokens&&(i+=` · ${r.tokens}`),r.budget&&(i+=r.budget),i}function fe(t,n,r){let i=``,a=r.budget?.today;return a?.amount&&t.cost!==null&&(i=g(t.cost,a.amount,a.warningThreshold||80).displayText),{icon:n.today_cost,cost:e(t.cost),label:`today`,budget:i}}function J(e,t,n){let r=fe(e,t,n),i=`${r.icon} ${r.cost} ${r.label}`;return r.budget&&(i+=r.budget),i}function pe(e,t){let n={response:``,responseIcon:``,responseVal:``,lastResponse:``,lastResponseIcon:``,lastResponseVal:``,added:``,addedIcon:``,addedVal:``,removed:``,removedIcon:``,removedVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0,i=r?c(e.metricsInfo.responseTime):``,a=e.metricsInfo.lastResponseTime!==null&&!isNaN(e.metricsInfo.lastResponseTime)&&e.metricsInfo.lastResponseTime>0,o=a?c(e.metricsInfo.lastResponseTime):``,s=e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0,l=s?`${e.metricsInfo.linesAdded}`:``,u=e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0,d=u?`${e.metricsInfo.linesRemoved}`:``;return{response:r?`${t.metrics_response} ${i}`:``,responseIcon:r?t.metrics_response:``,responseVal:i,lastResponse:a?`${t.metrics_last_response} ${o}`:`${t.metrics_last_response} --`,lastResponseIcon:t.metrics_last_response,lastResponseVal:a?o:`--`,added:s?`${t.metrics_lines_added}${l}`:``,addedIcon:s?t.metrics_lines_added:``,addedVal:l,removed:u?`${t.metrics_lines_removed}${d}`:``,removedIcon:u?t.metrics_lines_removed:``,removedVal:d}}function me(e,t){let n=pe(e,t),r=[n.response,n.lastResponse,n.added,n.removed].filter(Boolean);return r.length>0?r.join(` · `):``}function he(e,t){let n={icon:``,duration:``,durationIcon:``,durationVal:``,messages:``,messagesIcon:``,messagesVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0,a=r?i(e.metricsInfo.sessionDuration):``,o=e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0,s=o?`${e.metricsInfo.messageCount}`:``;return{icon:t.activity,duration:r?`${t.metrics_duration} ${a}`:``,durationIcon:r?t.metrics_duration:``,durationVal:a,messages:o?`${t.metrics_messages} ${s}`:``,messagesIcon:o?t.metrics_messages:``,messagesVal:s}}function ge(e,t){let n=he(e,t),r=[n.duration,n.messages].filter(Boolean);return r.length>0?r.join(` · `):``}function _e(e,t){if(!e.gitInfo)return{icon:``,headVal:``,branch:``,status:``,ahead:``,behind:``,working:``,head:``};let n;n=e.gitInfo.status===`conflicts`?t.git_conflicts:e.gitInfo.status===`dirty`?t.git_dirty:t.git_clean;let r=e.gitInfo.ahead>0?`${t.git_ahead}${e.gitInfo.ahead}`:``,i=e.gitInfo.behind>0?`${t.git_behind}${e.gitInfo.behind}`:``,a=[];e.gitInfo.staged&&e.gitInfo.staged>0&&a.push(`+${e.gitInfo.staged}`),e.gitInfo.unstaged&&e.gitInfo.unstaged>0&&a.push(`~${e.gitInfo.unstaged}`),e.gitInfo.untracked&&e.gitInfo.untracked>0&&a.push(`?${e.gitInfo.untracked}`);let o=a.length>0?`(${a.join(` `)})`:``,s=[t.branch,e.gitInfo.branch,n];r&&s.push(r),i&&s.push(i);let c=[e.gitInfo.branch,n];return r&&c.push(r),i&&c.push(i),{icon:t.branch,headVal:c.join(` `),branch:e.gitInfo.branch,status:n,ahead:r,behind:i,working:o,head:s.join(` `)}}function ve(e,t){let n=_e(e,t);if(!n.icon)return``;let r=`${n.icon} ${n.branch} ${n.status}`;return n.ahead&&(r+=` ${n.ahead}`),n.behind&&(r+=`${n.behind}`),n.working&&(r+=` ${n.working}`),r}function ye(e,t,n){return{icon:n.dir,value:be(e,t)}}function be(e,t){let n=se(e.hookData),r=t.display.lines.map(e=>e.segments.directory).find(e=>e?.enabled),i=r?.style??(r?.showBasename?`basename`:`fish`);if(i===`basename`){let e=n.includes(`/`)?`/`:`\\`;return n.split(e).pop()||n}return i===`full`?n:s(n)}function xe(e,t){return e.hookData.version?{icon:t.version,value:`v${e.hookData.version}`}:{icon:``,value:``}}function Se(e,t){let n=xe(e,t);return n.icon?`${n.icon} ${n.value}`:``}function Ce(e){return e.tmuxSessionId?{label:`tmux`,value:e.tmuxSessionId}:{label:``,value:``}}function we(e){let t=Ce(e);return t.label?`${t.label}:${t.value}`:``}function Te(e){let t=e.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(!t||!t.variable)return{prefix:``,value:``};let n=globalThis.process?.env?.[t.variable];return n?{prefix:(t.prefix??t.variable)||``,value:n}:{prefix:``,value:``}}function Ee(e){let t=Te(e);return t.value?t.prefix?`${t.prefix}:${t.value}`:t.value:``}function Y(e,t,n,r,i,a){for(let[o,s]of Object.entries(n)){let n=`${t}.${o}`,c=a?.[n]??a?.[t]??r;e[n]=s?k(s,c,i):``}}function De(e,t,n){let r=t.indexOf(`.`),i=r===-1?t:t.slice(0,r);return e.items.map(e=>{let t=e.match(/^\{(.+)\}$/);return t?n[`${i}.${t[1]}`]??``:e?k(e,``,``):``}).filter(Boolean)}function X(e,t,n,r){if(e.length===0)return``;if(n===`between`&&r!==void 0&&e.length>1){let n=e.reduce((e,t)=>e+O(t),0),i=Math.max(t*(e.length-1),r-n),a=Math.floor(i/(e.length-1)),o=i%(e.length-1),s=e[0];for(let t=1;t<e.length;t++)s+=` `.repeat(a+(t<=o?1:0))+e[t];return s}return e.join(` `.repeat(t))}function Oe(e,t){let{sym:n,config:r,reset:i,colors:a}=t,s=a.partFg,c=(e,t)=>e?k(e,t,i):``,l={},u=o(e.hookData.model?.display_name||`Claude`).toLowerCase(),d=s?.model??a.modelFg;if(l.model=c(`${n.model} ${u}`,d),Y(l,`model`,{icon:n.model,value:u},a.modelFg,i,s),l.context=V(e,t.contentWidth,n,i,a)??``,Y(l,`context`,re(e,n),e.contextInfo?z(e.contextInfo.usablePercentage,a.contextFg,a):a.contextFg,i,s),e.blockInfo){let t=s?.block??a.blockFg;l.block=c(G(e.blockInfo,n,r),t),Y(l,`block`,le(e.blockInfo,n,r),a.blockFg,i,s)}else l.block=``;if(e.usageInfo){let t=s?.session??a.sessionFg;l.session=c(q(e.usageInfo,n,r),t),Y(l,`session`,de(e.usageInfo,n,r),a.sessionFg,i,s)}else l.session=``;if(e.todayInfo){let t=s?.today??a.todayFg;l.today=c(J(e.todayInfo,n,r),t),Y(l,`today`,fe(e.todayInfo,n,r),a.todayFg,i,s)}else l.today=``;let f=e.hookData.rate_limits?.seven_day;if(f){let e=s?.weekly??a.weeklyFg;l.weekly=c(K(f,n),e),Y(l,`weekly`,ue(f,n),a.weeklyFg,i,s)}else l.weekly=``;let p=s?.git??a.gitFg;l.git=c(ve(e,n),p),Y(l,`git`,_e(e,n),a.gitFg,i,s);let m=s?.dir??a.modeFg;l.dir=c(be(e,r),m),Y(l,`dir`,ye(e,r,n),a.modeFg,i,s);let h=s?.version??a.versionFg;l.version=c(Se(e,n),h),Y(l,`version`,xe(e,n),a.versionFg,i,s);let g=s?.tmux??a.tmuxFg;l.tmux=c(we(e),g),Y(l,`tmux`,Ce(e),a.tmuxFg,i,s);let _=s?.metrics??a.metricsFg;l.metrics=c(me(e,n),_),Y(l,`metrics`,pe(e,n),a.metricsFg,i,s);let v=s?.activity??a.metricsFg;l.activity=c(ge(e,n),v),Y(l,`activity`,he(e,n),a.metricsFg,i,s);let y=s?.env??a.envFg;l.env=c(Ee(r),y),Y(l,`env`,Te(r),a.envFg,i,s);let b={},x=r.display.tui?.segments;if(x)for(let[e,t]of Object.entries(x)){let n=De(t,e,l),r=t.gap??1,i=t.justify??`start`;b[e]={items:n,gap:r,justify:i},l[e]=X(n,r,i===`between`?`start`:i)}return{data:l,templates:b}}function ke(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=ce(n,o,s,c,l);u.length>0&&t.push(M(r,F(u,i),a))}function Ae(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=U(n,o,c,l),d=W(n,o,s,c,l),f=u.join(` `),p=d.join(` · `);(f||p)&&(t.push(N(r,a)),t.push(M(r,I(f,p,i),a)))}function je(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=[],d=[];n.blockInfo&&u.push(k(G(n.blockInfo,o,s),l.blockFg,c));let f=n.hookData.rate_limits?.seven_day;f&&u.push(k(K(f,o),l.weeklyFg,c)),n.todayInfo&&u.push(k(J(n.todayInfo,o,s),l.todayFg,c)),n.usageInfo&&d.push(k(q(n.usageInfo,o,s),l.sessionFg,c));let p=H(n,o);p.length>0&&d.push(k(p.join(` · `),l.metricsFg,c)),u.length>0&&t.push(M(r,F(u,i),a)),d.length>0&&t.push(M(r,I(d[0]??``,d[1]??``,i),a))}function Me(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=U(n,o,c,l);u.length>0&&(t.push(N(r,a)),t.push(M(r,I(u[0]??``,u[1]??``,i),a)));let d=W(n,o,s,c,l);d.length>0&&(t.push(N(r,a)),t.push(M(r,d.join(` · `),a)))}function Ne(t){let{lines:n,data:r,box:i,contentWidth:a,innerWidth:o,sym:s,config:c,reset:l,colors:u}=t;r.blockInfo&&n.push(M(i,k(G(r.blockInfo,s,c),u.blockFg,l),o));let d=r.hookData.rate_limits?.seven_day;d&&n.push(M(i,k(K(d,s),u.weeklyFg,l),o));let f=[];r.usageInfo&&f.push(k(`${s.session_cost} ${e(r.usageInfo.session.cost)}`,u.sessionFg,l)),r.todayInfo&&f.push(k(`${s.today_cost} ${e(r.todayInfo.cost)} today`,u.todayFg,l)),f.length>0&&n.push(M(i,I(f[0]??``,f[1]??``,a),o))}function Pe(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=U(n,o,c,l);u.length>0&&(t.push(N(r,a)),t.push(M(r,I(u[0]??``,u[1]??``,i),a)));let d=W(n,o,s,c,l);d.length>0&&t.push(M(r,d.join(` · `),a))}const Fe=`---`,Ie=`.`,Le=new Set([`context`,`context.bar`,`block.bar`,`weekly.bar`]);function Z(e){return e.length===1&&e[0].segment===`---`}function Q(e){if(!e.endsWith(`fr`))return 0;let t=parseInt(e.replace(`fr`,``),10);return!isNaN(t)&&t>0?t:0}function Re(e,t,n){let r=Math.floor(e/t.length),i=e-r*t.length;for(let e of t)n[e]=n[e]+r+(i>0?1:0),i>0&&i--}function ze(e,t,n,r){let i=0;for(let r=0;r<n;r++)i+=e[t+r]??0;return n>1&&(i+=(n-1)*r),i}function Be(e,t){let n;for(let r of e)t>=r.minWidth&&(!n||r.minWidth>n.minWidth)&&(n=r);if(n)return n;let r=e[0];for(let t=1;t<e.length;t++)e[t].minWidth<r.minWidth&&(r=e[t]);return r}function Ve(e){let t=[];for(let n of e){let e=n.trim();if(e===`---`){t.push([{segment:`---`,spanStart:!0,spanSize:1}]);continue}let r=e.split(/\s+/),i=[],a=0;for(;a<r.length;){let e=r[a],t=1;for(;a+t<r.length&&r[a+t]===e;)t++;i.push({segment:e,spanStart:!0,spanSize:t});for(let n=1;n<t;n++)i.push({segment:e,spanStart:!1,spanSize:0});a+=t}t.push(i)}return t}function He(e,t){let n=e.map(e=>Z(e)?e:e.map(e=>e.segment===`.`||e.segment===`---`||t[e.segment]?e:{segment:`.`,spanStart:!0,spanSize:1})).map(e=>{if(Z(e))return e;let t=e.map(e=>e.segment),n=[],r=0;for(;r<t.length;){let e=t[r],i=1;for(;r+i<t.length&&t[r+i]===e;)i++;n.push({segment:e,spanStart:!0,spanSize:i});for(let t=1;t<i;t++)n.push({segment:e,spanStart:!1,spanSize:0});r+=i}return n}).filter(e=>Z(e)?!0:e.some(e=>e.segment!==`.`)),r=[];for(let e=0;e<n.length;e++){let t=n[e];if(!Z(t)){r.push(t);continue}r.length!==0&&(Z(r[r.length-1])||r.push(t))}return r.length>0&&Z(r[r.length-1])&&r.pop(),r}function Ue(e,t,n,r){let i=Array.from({length:e}).fill(0);for(let a of t)if(!Z(a))for(let t=0;t<a.length;t++){let o=a[t];if(!o.spanStart||o.spanSize!==1||o.segment===`.`||t>=e||r?.has(o.segment))continue;let s=O(n[o.segment]||``);s>i[t]&&(i[t]=s)}return i}function We(e,t,n,r,i,a){let o=e.length,s=Ue(o,t,n,a),c=Array.from({length:o}).fill(0);for(let t=0;t<o;t++)e[t]===`auto`&&(c[t]=s[t]);for(let t=0;t<o;t++){let n=e[t];if(n===`auto`||n.endsWith(`fr`))continue;let r=parseInt(n,10);!isNaN(r)&&r>0&&(c[t]=r)}for(let t=0;t<o;t++)c[t]<1&&!e[t].endsWith(`fr`)&&(c[t]=1);let l=Math.max(0,o-1)*i,u=c.reduce((e,t)=>e+t,0),d=Math.max(0,r-u-l),f=0;for(let t of e)f+=Q(t);if(f>0){let t=d/f,n=[],r=0;for(let i=0;i<o;i++){let a=Q(e[i]);if(a>0){let e=Math.floor(t*a);c[i]=e,r+=e,n.push(i)}}let i=d-r;for(let e=0;i>0&&e<n.length;e++)c[n[e]]+=1,i--}return c}function Ge(e,t,n,r,i,a){let o=e.length,s=Ue(o,t,n,a),c=Array.from({length:o});for(let t=0;t<o;t++){let n=e[t];if(n!==`auto`&&!n.endsWith(`fr`)){let e=parseInt(n,10);c[t]=!isNaN(e)&&e>0?e:s[t]}else c[t]=s[t]}for(let i of t)if(!Z(i))for(let t=0;t<i.length;t++){let a=i[t];if(!a.spanStart||a.spanSize<=1||a.segment===`.`)continue;let o=O(n[a.segment]||``),s=ze(c,t,a.spanSize,r);if(o>s){let n=o-s,r=[];for(let n=0;n<a.spanSize;n++)Q(e[t+n])>0&&r.push(t+n);if(r.length>0)Re(n,r,c);else{let e=[];for(let n=0;n<a.spanSize;n++)e.push(t+n);Re(n,e,c)}}}for(let e=0;e<o;e++)c[e]<1&&(c[e]=1);let l=0;for(let e=0;e<o;e++)l+=c[e];let u=Math.max(0,o-1)*r,d=2+Math.max(0,1-i)*2,f=o*i*2;return{panelWidth:l+u+d+f,colWidths:c}}function Ke(e,t,n){switch(n){case`right`:return te(e,t);case`center`:return ne(e,t);default:return A(e,t)}}function qe(e,t,n,r,i,a=0,o){let s=[],c=O(i),l=a;for(let i=0;i<e.length;i++){let a=e[i];if(!a.spanStart)continue;let u=ze(t,i,a.spanSize,c),d=i+a.spanSize-1,f=n[i]===`right`?o?.[i]??0:0,p=n[d]===`left`?o?.[d]??0:0,m=l-f,h=l-p,g=0;for(let e=i;e<d;e++){let t=n[e]===`left`?o?.[e]??0:0,r=n[e+1]===`right`?o?.[e+1]??0:0;g+=l-t+(l-r)}let _=u+g;if(a.segment===`.`)s.push(` `.repeat(_+m+h));else{let e=Ke(j(r[a.segment]||``,_),_,n[i]||`left`),t=m>0?` `.repeat(m):``,o=h>0?` `.repeat(h):``;s.push(t+e+o)}}return s.join(i)}function Je(e,t,n){let r=n||e.horizontal;return e.teeLeft+r.repeat(t)+e.teeRight}function Ye(e,t,n,r,i){let a=e.minWidth??32,o=e.maxWidth??1/0,s=e.separator?.column??` `,c=e.separator?.divider,l=O(s),u=e.fitContent??!1,d=e.padding?.horizontal??0,f=e.widthReserve??45,p=Math.min(o,Math.max(a,r-f)),m=Be(e.breakpoints,p),h;h=u?o===1/0?r:Math.min(r,o):p;let g=He(Ve(m.areas),t);if(g.length===0)return{lines:[],panelWidth:h};let _,v=new Set(Le);if(e.segments)for(let t of Object.keys(e.segments))v.add(t);if(u){let e=Ge(m.columns,g,t,l,d,v);h=Math.min(o,Math.max(a,e.panelWidth)),_=e.colWidths;let n=h-e.panelWidth;if(n>0){let e=0;for(let t of m.columns)e+=Q(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Q(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}else{let e=h-2-Math.max(0,1-d)*2-m.columns.length*d*2;_=We(m.columns,g,t,e,l,v)}let y=h-2,b=Math.max(1,d)-d,x=b>0?` `.repeat(b):``,S=y-b*2,C=m.align||m.columns.map(()=>`left`),w=Array(m.columns.length).fill(0);if(d>0){let e=Array(m.columns.length).fill(0);for(let n of g)if(!Z(n))for(let r=0;r<n.length;r++){let i=n[r];if(!i.spanStart||i.spanSize!==1||i.segment===`.`||v.has(i.segment))continue;let a=O(t[i.segment]||``);a>e[r]&&(e[r]=a)}let n=0;for(let t=0;t<m.columns.length;t++){if(Q(m.columns[t])>0||e[t]<=0)continue;let r=_[t]-e[t];r<=0||(w[t]=Math.min(d,r),n+=w[t])}if(n>0){let e=0;for(let t of m.columns)e+=Q(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Q(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}function ee(e,t){let n=0;for(let r=e;r<e+t-1;r++){let e=C[r]===`left`?w[r]??0:0,t=C[r+1]===`right`?w[r+1]??0:0;n+=d-e+(d-t)}return n}if(i){let e=new Set;for(let n of g)if(!Z(n))for(let r=0;r<n.length;r++){let a=n[r];if(!a.spanStart||a.segment===`.`||a.segment===`---`||e.has(a.segment))continue;e.add(a.segment);let o=ze(_,r,a.spanSize,l),s=ee(r,a.spanSize),c=i(a.segment,o+s);c!==void 0&&(t[a.segment]=c)}}let T=He(g,t);if(T.length===0)return{lines:[],panelWidth:h};let E=[];for(let e of T)if(Z(e))E.push(Je(n,y,c));else{let r=A(j(qe(e,_,C,t,s,d,w),S),S);E.push(n.vertical+x+r+x+n.vertical)}return{lines:E,panelWidth:h}}const Xe=`\x1B[?2026h`,Ze=`\x1B[?2026l`,Qe=`\x1B[0m`;function $e(e){return e>=80?`wide`:e>=55?`medium`:`narrow`}function et(e){return e&&e>0?Math.max(32,e):80}async function tt(e,t,n,r,i,a){let o=(i.display.charset||`unicode`)===`text`?w:b,s=e.colors;if(i.display.tui){let r=i.display.tui,c=r.terminalWidth??a?.rawTerminalWidth??120,l;l=typeof r.box==`string`?C[r.box]??t:r.box?{...t,...r.box}:t;let u=Math.max(r.minWidth??32,c-(r.widthReserve??45))-2,d=u-2,f=Oe(e,{lines:[],data:e,box:l,contentWidth:d,innerWidth:u,sym:o,config:i,reset:n,colors:s}),p=f.data,m=f.templates,h=s.partFg,g=Ye(r,p,l,c,(t,r)=>{if(t===`context`)return V(e,r,o,n,s)??``;if(t===`context.bar`)return ie(e,r,o,n,s,h);if(t===`block.bar`)return ae(e,r,o,n,s,i,h);if(t===`weekly.bar`)return oe(e,r,o,n,s,h);let a=m[t];if(a)return X(a.items,a.gap,a.justify,r)}),_=g.panelWidth-2,v=r.footer?.left?L(r.footer.left,e,p):void 0,y=r.footer?.right?L(r.footer.right,e,p):void 0,b=[];return b.push(R(e,l,_,r.title,p)),b.push(...g.lines),b.push(P(l,_,v,y)),Xe+b.map(e=>Qe+e).join(`
|
|
2
2
|
`)+Ze}let c=et(r),l=c-2,u=l-2,d=$e(c),f=[];f.push(R(e,t,l));let p=V(e,u,o,n,s);p&&f.push(M(t,p,l));let m={lines:f,data:e,box:t,contentWidth:u,innerWidth:l,sym:o,config:i,reset:n,colors:s};return d===`wide`?(ke(m),Ae(m)):d===`medium`?(je(m),Me(m)):(Ne(m),Pe(m)),f.push(P(t,l)),Xe+f.map(e=>Qe+e).join(`
|
|
3
|
-
`)+Ze}const nt={directory:{bg:`#8b4513`,fg:`#ffffff`},git:{bg:`#404040`,fg:`#ffffff`},model:{bg:`#2d2d2d`,fg:`#ffffff`},session:{bg:`#202020`,fg:`#00ffff`},block:{bg:`#2a2a2a`,fg:`#87ceeb`},today:{bg:`#1a1a1a`,fg:`#98fb98`},tmux:{bg:`#2f4f2f`,fg:`#90ee90`},context:{bg:`#4a5568`,fg:`#cbd5e0`},contextWarning:{bg:`#92400e`,fg:`#fbbf24`},contextCritical:{bg:`#991b1b`,fg:`#fca5a5`},metrics:{bg:`#374151`,fg:`#d1d5db`},version:{bg:`#3a3a4a`,fg:`#b8b8d0`},env:{bg:`#2d2d3d`,fg:`#d0a0d0`},weekly:{bg:`#2a2a3a`,fg:`#a0c4e8`}},rt={directory:{bg:`#af5f00`,fg:`#ffffff`},git:{bg:`#444444`,fg:`#ffffff`},model:{bg:`#3a3a3a`,fg:`#ffffff`},session:{bg:`#262626`,fg:`#00ffff`},block:{bg:`#303030`,fg:`#87ceeb`},today:{bg:`#1c1c1c`,fg:`#87ff87`},tmux:{bg:`#444444`,fg:`#87ff87`},context:{bg:`#585858`,fg:`#d0d0d0`},contextWarning:{bg:`#af5f00`,fg:`#ffaf00`},contextCritical:{bg:`#870000`,fg:`#ff8787`},metrics:{bg:`#4e4e4e`,fg:`#d0d0d0`},version:{bg:`#444444`,fg:`#d7afff`},env:{bg:`#3a3a3a`,fg:`#d787d7`},weekly:{bg:`#303030`,fg:`#87afd7`}},it={directory:{bg:`#d75f00`,fg:`#ffffff`},git:{bg:`#585858`,fg:`#ffffff`},model:{bg:`#444444`,fg:`#ffffff`},session:{bg:`#303030`,fg:`#00ffff`},block:{bg:`#3a3a3a`,fg:`#5fafff`},today:{bg:`#262626`,fg:`#00ff00`},tmux:{bg:`#585858`,fg:`#00ff00`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d75f00`,fg:`#ffff00`},contextCritical:{bg:`#af0000`,fg:`#ff0000`},metrics:{bg:`#666666`,fg:`#ffffff`},version:{bg:`#585858`,fg:`#af87ff`},env:{bg:`#444444`,fg:`#ff87ff`},weekly:{bg:`#3a3a3a`,fg:`#5fafff`}},at={directory:{bg:`#ff6b47`,fg:`#ffffff`},git:{bg:`#4fb3d9`,fg:`#ffffff`},model:{bg:`#87ceeb`,fg:`#000000`},session:{bg:`#da70d6`,fg:`#ffffff`},block:{bg:`#6366f1`,fg:`#ffffff`},today:{bg:`#10b981`,fg:`#ffffff`},tmux:{bg:`#32cd32`,fg:`#ffffff`},context:{bg:`#718096`,fg:`#ffffff`},contextWarning:{bg:`#d97706`,fg:`#ffffff`},contextCritical:{bg:`#dc2626`,fg:`#ffffff`},metrics:{bg:`#6b7280`,fg:`#ffffff`},version:{bg:`#8b7dd8`,fg:`#ffffff`},env:{bg:`#d45dbf`,fg:`#ffffff`},weekly:{bg:`#4f46e5`,fg:`#ffffff`}},ot={directory:{bg:`#ff5f5f`,fg:`#ffffff`},git:{bg:`#5fafff`,fg:`#ffffff`},model:{bg:`#87d7ff`,fg:`#000000`},session:{bg:`#ff5fff`,fg:`#ffffff`},block:{bg:`#5f5fff`,fg:`#ffffff`},today:{bg:`#00d787`,fg:`#ffffff`},tmux:{bg:`#00ff5f`,fg:`#ffffff`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d78700`,fg:`#ffffff`},contextCritical:{bg:`#d70000`,fg:`#ffffff`},metrics:{bg:`#767676`,fg:`#ffffff`},version:{bg:`#af87ff`,fg:`#ffffff`},env:{bg:`#d787af`,fg:`#ffffff`},weekly:{bg:`#5f5fff`,fg:`#ffffff`}},st={directory:{bg:`#ff5f5f`,fg:`#ffffff`},git:{bg:`#5fafff`,fg:`#ffffff`},model:{bg:`#87d7ff`,fg:`#000000`},session:{bg:`#ff5fff`,fg:`#ffffff`},block:{bg:`#5f5fff`,fg:`#ffffff`},today:{bg:`#00d787`,fg:`#ffffff`},tmux:{bg:`#00ff5f`,fg:`#ffffff`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d78700`,fg:`#ffffff`},contextCritical:{bg:`#d70000`,fg:`#ffffff`},metrics:{bg:`#767676`,fg:`#ffffff`},version:{bg:`#af87ff`,fg:`#ffffff`},env:{bg:`#d787af`,fg:`#ffffff`},weekly:{bg:`#5f5fff`,fg:`#ffffff`}},ct={directory:{bg:`#434c5e`,fg:`#d8dee9`},git:{bg:`#3b4252`,fg:`#a3be8c`},model:{bg:`#4c566a`,fg:`#81a1c1`},session:{bg:`#2e3440`,fg:`#88c0d0`},block:{bg:`#3b4252`,fg:`#81a1c1`},today:{bg:`#2e3440`,fg:`#8fbcbb`},tmux:{bg:`#2e3440`,fg:`#8fbcbb`},context:{bg:`#5e81ac`,fg:`#eceff4`},contextWarning:{bg:`#d08770`,fg:`#2e3440`},contextCritical:{bg:`#bf616a`,fg:`#eceff4`},metrics:{bg:`#b48ead`,fg:`#2e3440`},version:{bg:`#434c5e`,fg:`#88c0d0`},env:{bg:`#3b4252`,fg:`#b48ead`},weekly:{bg:`#3b4252`,fg:`#88c0d0`}},lt={directory:{bg:`#5f87af`,fg:`#e4e4e4`},git:{bg:`#4e4e4e`,fg:`#87d787`},model:{bg:`#6c6c6c`,fg:`#87afd7`},session:{bg:`#3a3a3a`,fg:`#5fafaf`},block:{bg:`#4e4e4e`,fg:`#87afd7`},today:{bg:`#3a3a3a`,fg:`#5fd7d7`},tmux:{bg:`#3a3a3a`,fg:`#5fd7d7`},context:{bg:`#5f87d7`,fg:`#ffffff`},contextWarning:{bg:`#d7875f`,fg:`#3a3a3a`},contextCritical:{bg:`#d75f5f`,fg:`#ffffff`},metrics:{bg:`#d787af`,fg:`#3a3a3a`},version:{bg:`#5f87af`,fg:`#5fafaf`},env:{bg:`#4e4e4e`,fg:`#d787af`},weekly:{bg:`#4e4e4e`,fg:`#5fafaf`}},ut={directory:{bg:`#0087af`,fg:`#ffffff`},git:{bg:`#585858`,fg:`#87d700`},model:{bg:`#808080`,fg:`#87afff`},session:{bg:`#444444`,fg:`#00d7d7`},block:{bg:`#585858`,fg:`#87afff`},today:{bg:`#444444`,fg:`#00ffff`},tmux:{bg:`#444444`,fg:`#00ffff`},context:{bg:`#0087ff`,fg:`#ffffff`},contextWarning:{bg:`#d78700`,fg:`#000000`},contextCritical:{bg:`#d75f5f`,fg:`#ffffff`},metrics:{bg:`#ff87d7`,fg:`#444444`},version:{bg:`#0087af`,fg:`#00d7d7`},env:{bg:`#585858`,fg:`#ff87af`},weekly:{bg:`#585858`,fg:`#00d7d7`}},dt={directory:{bg:`#2f334d`,fg:`#82aaff`},git:{bg:`#1e2030`,fg:`#c3e88d`},model:{bg:`#191b29`,fg:`#fca7ea`},session:{bg:`#222436`,fg:`#86e1fc`},block:{bg:`#2d3748`,fg:`#7aa2f7`},today:{bg:`#1a202c`,fg:`#4fd6be`},tmux:{bg:`#191b29`,fg:`#4fd6be`},context:{bg:`#414868`,fg:`#c0caf5`},contextWarning:{bg:`#ff9e64`,fg:`#1a1b26`},contextCritical:{bg:`#f7768e`,fg:`#1a1b26`},metrics:{bg:`#3d59a1`,fg:`#c0caf5`},version:{bg:`#292e42`,fg:`#bb9af7`},env:{bg:`#24283b`,fg:`#fca7ea`},weekly:{bg:`#24283b`,fg:`#7dcfff`}},ft={directory:{bg:`#444478`,fg:`#87afff`},git:{bg:`#262640`,fg:`#afff87`},model:{bg:`#1c1c30`,fg:`#ff87ff`},session:{bg:`#3a3a50`,fg:`#5fd7ff`},block:{bg:`#4e4e68`,fg:`#5f87ff`},today:{bg:`#262640`,fg:`#00d7af`},tmux:{bg:`#1c1c30`,fg:`#00d7af`},context:{bg:`#5f5f87`,fg:`#d7d7ff`},contextWarning:{bg:`#ffaf5f`,fg:`#262626`},contextCritical:{bg:`#ff5f87`,fg:`#262626`},metrics:{bg:`#5f5faf`,fg:`#d7d7ff`},version:{bg:`#444460`,fg:`#d787ff`},env:{bg:`#303050`,fg:`#ff87ff`},weekly:{bg:`#303050`,fg:`#5fd7ff`}},pt={directory:{bg:`#5f5faf`,fg:`#87afff`},git:{bg:`#303050`,fg:`#87ff87`},model:{bg:`#262640`,fg:`#ff87ff`},session:{bg:`#444470`,fg:`#00d7ff`},block:{bg:`#666680`,fg:`#5f87ff`},today:{bg:`#303050`,fg:`#00d787`},tmux:{bg:`#262640`,fg:`#00d787`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#ffaf00`,fg:`#000000`},contextCritical:{bg:`#ff5f5f`,fg:`#000000`},metrics:{bg:`#8787d7`,fg:`#ffffff`},version:{bg:`#585870`,fg:`#d787ff`},env:{bg:`#444470`,fg:`#ff87ff`},weekly:{bg:`#444470`,fg:`#00d7ff`}},mt={directory:{bg:`#26233a`,fg:`#c4a7e7`},git:{bg:`#1f1d2e`,fg:`#9ccfd8`},model:{bg:`#191724`,fg:`#ebbcba`},session:{bg:`#26233a`,fg:`#f6c177`},block:{bg:`#2a273f`,fg:`#eb6f92`},today:{bg:`#232136`,fg:`#9ccfd8`},tmux:{bg:`#26233a`,fg:`#908caa`},context:{bg:`#393552`,fg:`#e0def4`},contextWarning:{bg:`#f6c177`,fg:`#191724`},contextCritical:{bg:`#eb6f92`,fg:`#191724`},metrics:{bg:`#524f67`,fg:`#e0def4`},version:{bg:`#2a273f`,fg:`#c4a7e7`},env:{bg:`#21202e`,fg:`#eb6f92`},weekly:{bg:`#21202e`,fg:`#c4a7e7`}},ht={directory:{bg:`#444444`,fg:`#d787d7`},git:{bg:`#262626`,fg:`#87d7d7`},model:{bg:`#1c1c1c`,fg:`#ffaf87`},session:{bg:`#444444`,fg:`#d7af5f`},block:{bg:`#4e4e4e`,fg:`#ff5f87`},today:{bg:`#3a3a3a`,fg:`#87d7d7`},tmux:{bg:`#444444`,fg:`#9e9e9e`},context:{bg:`#585858`,fg:`#e4e4e4`},contextWarning:{bg:`#d7af5f`,fg:`#1c1c1c`},contextCritical:{bg:`#ff5f87`,fg:`#1c1c1c`},metrics:{bg:`#767676`,fg:`#e4e4e4`},version:{bg:`#4e4e4e`,fg:`#d787d7`},env:{bg:`#303030`,fg:`#ff5f87`},weekly:{bg:`#303030`,fg:`#d787d7`}},gt={directory:{bg:`#585858`,fg:`#ff87ff`},git:{bg:`#303030`,fg:`#00d7d7`},model:{bg:`#262626`,fg:`#ffaf87`},session:{bg:`#585858`,fg:`#d7af00`},block:{bg:`#666666`,fg:`#ff5f87`},today:{bg:`#444444`,fg:`#00d7d7`},tmux:{bg:`#585858`,fg:`#bcbcbc`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d7af00`,fg:`#000000`},contextCritical:{bg:`#ff5f5f`,fg:`#000000`},metrics:{bg:`#a8a8a8`,fg:`#000000`},version:{bg:`#666666`,fg:`#ff87ff`},env:{bg:`#444444`,fg:`#ff5f87`},weekly:{bg:`#444444`,fg:`#ff87ff`}},_t={directory:{bg:`#504945`,fg:`#ebdbb2`},git:{bg:`#3c3836`,fg:`#b8bb26`},model:{bg:`#665c54`,fg:`#83a598`},session:{bg:`#282828`,fg:`#8ec07c`},block:{bg:`#3c3836`,fg:`#83a598`},today:{bg:`#282828`,fg:`#fabd2f`},tmux:{bg:`#282828`,fg:`#fe8019`},context:{bg:`#458588`,fg:`#ebdbb2`},contextWarning:{bg:`#d79921`,fg:`#282828`},contextCritical:{bg:`#cc241d`,fg:`#ebdbb2`},metrics:{bg:`#d3869b`,fg:`#282828`},version:{bg:`#504945`,fg:`#8ec07c`},env:{bg:`#3c3836`,fg:`#d3869b`},weekly:{bg:`#3c3836`,fg:`#8ec07c`}},vt={directory:{bg:`#585858`,fg:`#ffffaf`},git:{bg:`#444444`,fg:`#afaf00`},model:{bg:`#6c6c6c`,fg:`#87afaf`},session:{bg:`#303030`,fg:`#87af87`},block:{bg:`#444444`,fg:`#87afaf`},today:{bg:`#303030`,fg:`#ffaf00`},tmux:{bg:`#303030`,fg:`#ff8700`},context:{bg:`#5f8787`,fg:`#ffffaf`},contextWarning:{bg:`#d7af00`,fg:`#303030`},contextCritical:{bg:`#d70000`,fg:`#ffffaf`},metrics:{bg:`#d787af`,fg:`#303030`},version:{bg:`#585858`,fg:`#87af87`},env:{bg:`#444444`,fg:`#d787af`},weekly:{bg:`#444444`,fg:`#87af87`}},yt={directory:{bg:`#808080`,fg:`#ffff00`},git:{bg:`#585858`,fg:`#00ff00`},model:{bg:`#808080`,fg:`#00afff`},session:{bg:`#444444`,fg:`#00d787`},block:{bg:`#585858`,fg:`#00afff`},today:{bg:`#444444`,fg:`#ffaf00`},tmux:{bg:`#444444`,fg:`#ff8700`},context:{bg:`#008787`,fg:`#ffffff`},contextWarning:{bg:`#d7af00`,fg:`#000000`},contextCritical:{bg:`#d70000`,fg:`#ffffff`},metrics:{bg:`#ff87af`,fg:`#444444`},version:{bg:`#808080`,fg:`#00d787`},env:{bg:`#585858`,fg:`#ff87af`},weekly:{bg:`#585858`,fg:`#00d787`}},$={dark:nt,"dark-ansi256":rt,"dark-ansi":it,light:at,"light-ansi256":ot,"light-ansi":st,nord:ct,"nord-ansi256":lt,"nord-ansi":ut,"tokyo-night":dt,"tokyo-night-ansi256":ft,"tokyo-night-ansi":pt,"rose-pine":mt,"rose-pine-ansi256":ht,"rose-pine-ansi":gt,gruvbox:_t,"gruvbox-ansi256":vt,"gruvbox-ansi":yt};function bt(e,t){let n=$[e];if(!n)return null;if(t===`none`||t===`ansi`){let t=$[`${e}-ansi`];if(t)return t}if(t===`ansi256`){let t=$[`${e}-ansi256`];if(t)return t}return n}function xt(e,t){if(t&&(e.toLowerCase()===`transparent`||e.toLowerCase()===`none`))return`\x1B[49m`;let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return`\x1b[${t?`48`:`38`};2;${n};${r};${i}m`}function St(e,t=!1){if(!e||e===``)return``;let n=e.match(/48;2;(\d+);(\d+);(\d+)/);if(n)return`\x1b[38;2;${n[1]};${n[2]};${n[3]}m`;if(t)return`\x1B[37m`;if(e.includes(`\x1B[`)&&e.includes(`m`)){let t=e.match(/\[(\d+)m/);if(t&&t[1]){let e=parseInt(t[1],10);if(e>=40&&e<=47||e>=100&&e<=107)return`\x1b[${e-10}m`}}return e.replace(`48`,`38`)}function Ct(e,t){if(t&&(e.toLowerCase()===`transparent`||e.toLowerCase()===`none`))return`\x1B[49m`;let n=((e,t,n)=>e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5))(parseInt(e.slice(1,3),16),parseInt(e.slice(3,5),16),parseInt(e.slice(5,7),16));return`\x1b[${t?`48`:`38`};5;${n}m`}function wt(e,t){if(t&&(e.toLowerCase()===`transparent`||e.toLowerCase()===`none`))return`\x1B[49m`;if(t)return``;let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return r>n&&r>i&&r>120?`\x1B[32m`:n>r&&n>i&&n>120?`\x1B[31m`:i>n&&i>r&&i>120?`\x1B[34m`:(n+r+i)/3>150?`\x1B[37m`:`\x1B[90m`}function Tt(e,t){let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16),a=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return Math.sqrt((n-a)**2+(r-o)**2+(i-s)**2)}const Et={theme:`dark`,display:{style:`minimal`,charset:`unicode`,colorCompatibility:`auto`,autoWrap:!0,padding:1,lines:[{segments:{directory:{enabled:!0,style:`basename`},git:{enabled:!0,showSha:!1,showWorkingTree:!1,showOperation:!1,showTag:!1,showTimeSinceCommit:!1,showStashCount:!1,showUpstream:!1,showRepoName:!1},model:{enabled:!0},session:{enabled:!0,type:`tokens`,costSource:`calculated`},today:{enabled:!0,type:`cost`},block:{enabled:!1,type:`cost`,burnType:`cost`,displayStyle:`text`},weekly:{enabled:!1,displayStyle:`text`},version:{enabled:!1},tmux:{enabled:!1},sessionId:{enabled:!1,showIdLabel:!0},context:{enabled:!0,showPercentageOnly:!1,displayStyle:`text`,autocompactBuffer:33e3},metrics:{enabled:!1,showResponseTime:!0,showLastResponseTime:!0,showDuration:!0,showMessageCount:!0,showLinesAdded:!0,showLinesRemoved:!0}}}]},budget:{session:{warningThreshold:80},today:{warningThreshold:80,amount:50},block:{warningThreshold:80,amount:15}},modelContextLimits:{default:2e5,sonnet:2e5,opus:2e5}},Dt=new Set([`context`,`block`,`session`,`today`,`weekly`,`git`,`dir`,`model`,`version`,`tmux`,`metrics`,`activity`,`env`]),Ot={session:[`icon`,`label`,`cost`,`tokens`,`budget`],block:[`icon`,`label`,`value`,`time`,`budget`,`bar`],today:[`icon`,`cost`,`label`,`budget`],weekly:[`icon`,`label`,`pct`,`time`,`bar`],git:[`icon`,`info`,`branch`,`status`,`ahead`,`behind`,`working`,`head`],context:[`icon`,`label`,`bar`,`pct`,`tokens`],metrics:[`response`,`responseIcon`,`responseVal`,`lastResponse`,`lastResponseIcon`,`lastResponseVal`,`added`,`addedIcon`,`addedVal`,`removed`,`removedIcon`,`removedVal`],activity:[`icon`,`duration`,`durationIcon`,`durationVal`,`messages`,`messagesIcon`,`messagesVal`],model:[`icon`,`value`],version:[`icon`,`value`],tmux:[`label`,`value`],dir:[`icon`,`value`],env:[`prefix`,`value`]};function kt(e){if(e===`.`||e===`---`||Dt.has(e))return!0;let t=e.indexOf(`.`);if(t===-1)return!1;let n=e.slice(0,t),r=e.slice(t+1);if(!n||!r)return!1;let i=Ot[n];return i?i.includes(r):!1}export{x as BOX_CHARS,S as BOX_CHARS_TEXT,C as BOX_PRESETS,$ as BUILT_IN_THEMES,Et as DEFAULT_CONFIG,Fe as DIVIDER,Ie as EMPTY_CELL,ee as ESC,Le as LATE_RESOLVE_SEGMENTS,y as RESET_CODE,Ot as SEGMENT_PARTS,b as SYMBOLS,v as SegmentRenderer,w as TEXT_SYMBOLS,Dt as VALID_SEGMENT_NAMES,s as abbreviateFishStyle,P as bottomBorder,ae as buildBlockBar,ie as buildContextBar,V as buildContextLine,R as buildTitleBar,oe as buildWeeklyBar,We as calculateColumnWidths,d as collapseHome,H as collectActivityParts,W as collectFooterParts,ce as collectMetricSegments,U as collectWorkspaceParts,k as colorize,X as composeTemplate,M as contentRow,He as cullMatrix,rt as darkAnsi256Theme,it as darkAnsiTheme,nt as darkTheme,N as divider,St as extractBgToFg,u as formatBurnRate,e as formatCost,i as formatDuration,p as formatLongTimeRemaining,o as formatModelName,c as formatResponseTime,f as formatTimeRemaining,r as formatTimeSince,n as formatTokenBreakdown,l as formatTokenCount,t as formatTokens,g as getBudgetStatus,bt as getTheme,vt as gruvboxAnsi256Theme,yt as gruvboxAnsiTheme,_t as gruvboxTheme,Tt as hexColorDistance,Ct as hexTo256Ansi,xt as hexToAnsi,wt as hexToBasicAnsi,kt as isValidSegmentRef,ot as lightAnsi256Theme,st as lightAnsiTheme,at as lightTheme,m as minutesUntilReset,lt as nordAnsi256Theme,ut as nordAnsiTheme,ct as nordTheme,ne as padCenter,te as padLeft,A as padRight,Ve as parseAreas,Ye as renderGrid,Me as renderMediumBottom,je as renderMediumMetrics,Pe as renderNarrowBottom,Ne as renderNarrowMetrics,tt as renderTuiPanel,Ae as renderWideBottom,ke as renderWideMetrics,Oe as resolveSegments,L as resolveTitleToken,ht as rosePineAnsi256Theme,gt as rosePineAnsiTheme,mt as rosePineTheme,Be as selectBreakpoint,Ge as solveFitContentLayout,F as spreadEven,I as spreadTwo,D as stripAnsi,ft as tokyoNightAnsi256Theme,pt as tokyoNightAnsiTheme,dt as tokyoNightTheme,j as truncateAnsi,O as visibleLength};
|
|
3
|
+
`)+Ze}const nt={directory:{bg:`#8b4513`,fg:`#ffffff`},git:{bg:`#404040`,fg:`#ffffff`},model:{bg:`#2d2d2d`,fg:`#ffffff`},session:{bg:`#202020`,fg:`#00ffff`},block:{bg:`#2a2a2a`,fg:`#87ceeb`},today:{bg:`#1a1a1a`,fg:`#98fb98`},tmux:{bg:`#2f4f2f`,fg:`#90ee90`},context:{bg:`#4a5568`,fg:`#cbd5e0`},contextWarning:{bg:`#92400e`,fg:`#fbbf24`},contextCritical:{bg:`#991b1b`,fg:`#fca5a5`},metrics:{bg:`#374151`,fg:`#d1d5db`},version:{bg:`#3a3a4a`,fg:`#b8b8d0`},env:{bg:`#2d2d3d`,fg:`#d0a0d0`},weekly:{bg:`#2a2a3a`,fg:`#a0c4e8`}},rt={directory:{bg:`#af5f00`,fg:`#ffffff`},git:{bg:`#444444`,fg:`#ffffff`},model:{bg:`#3a3a3a`,fg:`#ffffff`},session:{bg:`#262626`,fg:`#00ffff`},block:{bg:`#303030`,fg:`#87ceeb`},today:{bg:`#1c1c1c`,fg:`#87ff87`},tmux:{bg:`#444444`,fg:`#87ff87`},context:{bg:`#585858`,fg:`#d0d0d0`},contextWarning:{bg:`#af5f00`,fg:`#ffaf00`},contextCritical:{bg:`#870000`,fg:`#ff8787`},metrics:{bg:`#4e4e4e`,fg:`#d0d0d0`},version:{bg:`#444444`,fg:`#d7afff`},env:{bg:`#3a3a3a`,fg:`#d787d7`},weekly:{bg:`#303030`,fg:`#87afd7`}},it={directory:{bg:`#d75f00`,fg:`#ffffff`},git:{bg:`#585858`,fg:`#ffffff`},model:{bg:`#444444`,fg:`#ffffff`},session:{bg:`#303030`,fg:`#00ffff`},block:{bg:`#3a3a3a`,fg:`#5fafff`},today:{bg:`#262626`,fg:`#00ff00`},tmux:{bg:`#585858`,fg:`#00ff00`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d75f00`,fg:`#ffff00`},contextCritical:{bg:`#af0000`,fg:`#ff0000`},metrics:{bg:`#666666`,fg:`#ffffff`},version:{bg:`#585858`,fg:`#af87ff`},env:{bg:`#444444`,fg:`#ff87ff`},weekly:{bg:`#3a3a3a`,fg:`#5fafff`}},at={directory:{bg:`#ff6b47`,fg:`#ffffff`},git:{bg:`#4fb3d9`,fg:`#ffffff`},model:{bg:`#87ceeb`,fg:`#000000`},session:{bg:`#da70d6`,fg:`#ffffff`},block:{bg:`#6366f1`,fg:`#ffffff`},today:{bg:`#10b981`,fg:`#ffffff`},tmux:{bg:`#32cd32`,fg:`#ffffff`},context:{bg:`#718096`,fg:`#ffffff`},contextWarning:{bg:`#d97706`,fg:`#ffffff`},contextCritical:{bg:`#dc2626`,fg:`#ffffff`},metrics:{bg:`#6b7280`,fg:`#ffffff`},version:{bg:`#8b7dd8`,fg:`#ffffff`},env:{bg:`#d45dbf`,fg:`#ffffff`},weekly:{bg:`#4f46e5`,fg:`#ffffff`}},ot={directory:{bg:`#ff5f5f`,fg:`#ffffff`},git:{bg:`#5fafff`,fg:`#ffffff`},model:{bg:`#87d7ff`,fg:`#000000`},session:{bg:`#ff5fff`,fg:`#ffffff`},block:{bg:`#5f5fff`,fg:`#ffffff`},today:{bg:`#00d787`,fg:`#ffffff`},tmux:{bg:`#00ff5f`,fg:`#ffffff`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d78700`,fg:`#ffffff`},contextCritical:{bg:`#d70000`,fg:`#ffffff`},metrics:{bg:`#767676`,fg:`#ffffff`},version:{bg:`#af87ff`,fg:`#ffffff`},env:{bg:`#d787af`,fg:`#ffffff`},weekly:{bg:`#5f5fff`,fg:`#ffffff`}},st={directory:{bg:`#ff5f5f`,fg:`#ffffff`},git:{bg:`#5fafff`,fg:`#ffffff`},model:{bg:`#87d7ff`,fg:`#000000`},session:{bg:`#ff5fff`,fg:`#ffffff`},block:{bg:`#5f5fff`,fg:`#ffffff`},today:{bg:`#00d787`,fg:`#ffffff`},tmux:{bg:`#00ff5f`,fg:`#ffffff`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d78700`,fg:`#ffffff`},contextCritical:{bg:`#d70000`,fg:`#ffffff`},metrics:{bg:`#767676`,fg:`#ffffff`},version:{bg:`#af87ff`,fg:`#ffffff`},env:{bg:`#d787af`,fg:`#ffffff`},weekly:{bg:`#5f5fff`,fg:`#ffffff`}},ct={directory:{bg:`#434c5e`,fg:`#d8dee9`},git:{bg:`#3b4252`,fg:`#a3be8c`},model:{bg:`#4c566a`,fg:`#81a1c1`},session:{bg:`#2e3440`,fg:`#88c0d0`},block:{bg:`#3b4252`,fg:`#81a1c1`},today:{bg:`#2e3440`,fg:`#8fbcbb`},tmux:{bg:`#2e3440`,fg:`#8fbcbb`},context:{bg:`#5e81ac`,fg:`#eceff4`},contextWarning:{bg:`#d08770`,fg:`#2e3440`},contextCritical:{bg:`#bf616a`,fg:`#eceff4`},metrics:{bg:`#b48ead`,fg:`#2e3440`},version:{bg:`#434c5e`,fg:`#88c0d0`},env:{bg:`#3b4252`,fg:`#b48ead`},weekly:{bg:`#3b4252`,fg:`#88c0d0`}},lt={directory:{bg:`#5f87af`,fg:`#e4e4e4`},git:{bg:`#4e4e4e`,fg:`#87d787`},model:{bg:`#6c6c6c`,fg:`#87afd7`},session:{bg:`#3a3a3a`,fg:`#5fafaf`},block:{bg:`#4e4e4e`,fg:`#87afd7`},today:{bg:`#3a3a3a`,fg:`#5fd7d7`},tmux:{bg:`#3a3a3a`,fg:`#5fd7d7`},context:{bg:`#5f87d7`,fg:`#ffffff`},contextWarning:{bg:`#d7875f`,fg:`#3a3a3a`},contextCritical:{bg:`#d75f5f`,fg:`#ffffff`},metrics:{bg:`#d787af`,fg:`#3a3a3a`},version:{bg:`#5f87af`,fg:`#5fafaf`},env:{bg:`#4e4e4e`,fg:`#d787af`},weekly:{bg:`#4e4e4e`,fg:`#5fafaf`}},ut={directory:{bg:`#0087af`,fg:`#ffffff`},git:{bg:`#585858`,fg:`#87d700`},model:{bg:`#808080`,fg:`#87afff`},session:{bg:`#444444`,fg:`#00d7d7`},block:{bg:`#585858`,fg:`#87afff`},today:{bg:`#444444`,fg:`#00ffff`},tmux:{bg:`#444444`,fg:`#00ffff`},context:{bg:`#0087ff`,fg:`#ffffff`},contextWarning:{bg:`#d78700`,fg:`#000000`},contextCritical:{bg:`#d75f5f`,fg:`#ffffff`},metrics:{bg:`#ff87d7`,fg:`#444444`},version:{bg:`#0087af`,fg:`#00d7d7`},env:{bg:`#585858`,fg:`#ff87af`},weekly:{bg:`#585858`,fg:`#00d7d7`}},dt={directory:{bg:`#2f334d`,fg:`#82aaff`},git:{bg:`#1e2030`,fg:`#c3e88d`},model:{bg:`#191b29`,fg:`#fca7ea`},session:{bg:`#222436`,fg:`#86e1fc`},block:{bg:`#2d3748`,fg:`#7aa2f7`},today:{bg:`#1a202c`,fg:`#4fd6be`},tmux:{bg:`#191b29`,fg:`#4fd6be`},context:{bg:`#414868`,fg:`#c0caf5`},contextWarning:{bg:`#ff9e64`,fg:`#1a1b26`},contextCritical:{bg:`#f7768e`,fg:`#1a1b26`},metrics:{bg:`#3d59a1`,fg:`#c0caf5`},version:{bg:`#292e42`,fg:`#bb9af7`},env:{bg:`#24283b`,fg:`#fca7ea`},weekly:{bg:`#24283b`,fg:`#7dcfff`}},ft={directory:{bg:`#444478`,fg:`#87afff`},git:{bg:`#262640`,fg:`#afff87`},model:{bg:`#1c1c30`,fg:`#ff87ff`},session:{bg:`#3a3a50`,fg:`#5fd7ff`},block:{bg:`#4e4e68`,fg:`#5f87ff`},today:{bg:`#262640`,fg:`#00d7af`},tmux:{bg:`#1c1c30`,fg:`#00d7af`},context:{bg:`#5f5f87`,fg:`#d7d7ff`},contextWarning:{bg:`#ffaf5f`,fg:`#262626`},contextCritical:{bg:`#ff5f87`,fg:`#262626`},metrics:{bg:`#5f5faf`,fg:`#d7d7ff`},version:{bg:`#444460`,fg:`#d787ff`},env:{bg:`#303050`,fg:`#ff87ff`},weekly:{bg:`#303050`,fg:`#5fd7ff`}},pt={directory:{bg:`#5f5faf`,fg:`#87afff`},git:{bg:`#303050`,fg:`#87ff87`},model:{bg:`#262640`,fg:`#ff87ff`},session:{bg:`#444470`,fg:`#00d7ff`},block:{bg:`#666680`,fg:`#5f87ff`},today:{bg:`#303050`,fg:`#00d787`},tmux:{bg:`#262640`,fg:`#00d787`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#ffaf00`,fg:`#000000`},contextCritical:{bg:`#ff5f5f`,fg:`#000000`},metrics:{bg:`#8787d7`,fg:`#ffffff`},version:{bg:`#585870`,fg:`#d787ff`},env:{bg:`#444470`,fg:`#ff87ff`},weekly:{bg:`#444470`,fg:`#00d7ff`}},mt={directory:{bg:`#26233a`,fg:`#c4a7e7`},git:{bg:`#1f1d2e`,fg:`#9ccfd8`},model:{bg:`#191724`,fg:`#ebbcba`},session:{bg:`#26233a`,fg:`#f6c177`},block:{bg:`#2a273f`,fg:`#eb6f92`},today:{bg:`#232136`,fg:`#9ccfd8`},tmux:{bg:`#26233a`,fg:`#908caa`},context:{bg:`#393552`,fg:`#e0def4`},contextWarning:{bg:`#f6c177`,fg:`#191724`},contextCritical:{bg:`#eb6f92`,fg:`#191724`},metrics:{bg:`#524f67`,fg:`#e0def4`},version:{bg:`#2a273f`,fg:`#c4a7e7`},env:{bg:`#21202e`,fg:`#eb6f92`},weekly:{bg:`#21202e`,fg:`#c4a7e7`}},ht={directory:{bg:`#444444`,fg:`#d787d7`},git:{bg:`#262626`,fg:`#87d7d7`},model:{bg:`#1c1c1c`,fg:`#ffaf87`},session:{bg:`#444444`,fg:`#d7af5f`},block:{bg:`#4e4e4e`,fg:`#ff5f87`},today:{bg:`#3a3a3a`,fg:`#87d7d7`},tmux:{bg:`#444444`,fg:`#9e9e9e`},context:{bg:`#585858`,fg:`#e4e4e4`},contextWarning:{bg:`#d7af5f`,fg:`#1c1c1c`},contextCritical:{bg:`#ff5f87`,fg:`#1c1c1c`},metrics:{bg:`#767676`,fg:`#e4e4e4`},version:{bg:`#4e4e4e`,fg:`#d787d7`},env:{bg:`#303030`,fg:`#ff5f87`},weekly:{bg:`#303030`,fg:`#d787d7`}},gt={directory:{bg:`#585858`,fg:`#ff87ff`},git:{bg:`#303030`,fg:`#00d7d7`},model:{bg:`#262626`,fg:`#ffaf87`},session:{bg:`#585858`,fg:`#d7af00`},block:{bg:`#666666`,fg:`#ff5f87`},today:{bg:`#444444`,fg:`#00d7d7`},tmux:{bg:`#585858`,fg:`#bcbcbc`},context:{bg:`#808080`,fg:`#ffffff`},contextWarning:{bg:`#d7af00`,fg:`#000000`},contextCritical:{bg:`#ff5f5f`,fg:`#000000`},metrics:{bg:`#a8a8a8`,fg:`#000000`},version:{bg:`#666666`,fg:`#ff87ff`},env:{bg:`#444444`,fg:`#ff5f87`},weekly:{bg:`#444444`,fg:`#ff87ff`}},_t={directory:{bg:`#504945`,fg:`#ebdbb2`},git:{bg:`#3c3836`,fg:`#b8bb26`},model:{bg:`#665c54`,fg:`#83a598`},session:{bg:`#282828`,fg:`#8ec07c`},block:{bg:`#3c3836`,fg:`#83a598`},today:{bg:`#282828`,fg:`#fabd2f`},tmux:{bg:`#282828`,fg:`#fe8019`},context:{bg:`#458588`,fg:`#ebdbb2`},contextWarning:{bg:`#d79921`,fg:`#282828`},contextCritical:{bg:`#cc241d`,fg:`#ebdbb2`},metrics:{bg:`#d3869b`,fg:`#282828`},version:{bg:`#504945`,fg:`#8ec07c`},env:{bg:`#3c3836`,fg:`#d3869b`},weekly:{bg:`#3c3836`,fg:`#8ec07c`}},vt={directory:{bg:`#585858`,fg:`#ffffaf`},git:{bg:`#444444`,fg:`#afaf00`},model:{bg:`#6c6c6c`,fg:`#87afaf`},session:{bg:`#303030`,fg:`#87af87`},block:{bg:`#444444`,fg:`#87afaf`},today:{bg:`#303030`,fg:`#ffaf00`},tmux:{bg:`#303030`,fg:`#ff8700`},context:{bg:`#5f8787`,fg:`#ffffaf`},contextWarning:{bg:`#d7af00`,fg:`#303030`},contextCritical:{bg:`#d70000`,fg:`#ffffaf`},metrics:{bg:`#d787af`,fg:`#303030`},version:{bg:`#585858`,fg:`#87af87`},env:{bg:`#444444`,fg:`#d787af`},weekly:{bg:`#444444`,fg:`#87af87`}},yt={directory:{bg:`#808080`,fg:`#ffff00`},git:{bg:`#585858`,fg:`#00ff00`},model:{bg:`#808080`,fg:`#00afff`},session:{bg:`#444444`,fg:`#00d787`},block:{bg:`#585858`,fg:`#00afff`},today:{bg:`#444444`,fg:`#ffaf00`},tmux:{bg:`#444444`,fg:`#ff8700`},context:{bg:`#008787`,fg:`#ffffff`},contextWarning:{bg:`#d7af00`,fg:`#000000`},contextCritical:{bg:`#d70000`,fg:`#ffffff`},metrics:{bg:`#ff87af`,fg:`#444444`},version:{bg:`#808080`,fg:`#00d787`},env:{bg:`#585858`,fg:`#ff87af`},weekly:{bg:`#585858`,fg:`#00d787`}},$={dark:nt,"dark-ansi256":rt,"dark-ansi":it,light:at,"light-ansi256":ot,"light-ansi":st,nord:ct,"nord-ansi256":lt,"nord-ansi":ut,"tokyo-night":dt,"tokyo-night-ansi256":ft,"tokyo-night-ansi":pt,"rose-pine":mt,"rose-pine-ansi256":ht,"rose-pine-ansi":gt,gruvbox:_t,"gruvbox-ansi256":vt,"gruvbox-ansi":yt};function bt(e,t){let n=$[e];if(!n)return null;if(t===`none`||t===`ansi`){let t=$[`${e}-ansi`];if(t)return t}if(t===`ansi256`){let t=$[`${e}-ansi256`];if(t)return t}return n}function xt(e,t){if(t&&(e.toLowerCase()===`transparent`||e.toLowerCase()===`none`))return`\x1B[49m`;let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return`\x1b[${t?`48`:`38`};2;${n};${r};${i}m`}function St(e,t=!1){if(!e||e===``)return``;let n=e.match(/48;2;(\d+);(\d+);(\d+)/);if(n)return`\x1b[38;2;${n[1]};${n[2]};${n[3]}m`;if(t)return`\x1B[37m`;if(e.includes(`\x1B[`)&&e.includes(`m`)){let t=e.match(/\[(\d+)m/);if(t&&t[1]){let e=parseInt(t[1],10);if(e>=40&&e<=47||e>=100&&e<=107)return`\x1b[${e-10}m`}}return e.replace(`48`,`38`)}function Ct(e,t){if(t&&(e.toLowerCase()===`transparent`||e.toLowerCase()===`none`))return`\x1B[49m`;let n=((e,t,n)=>e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5))(parseInt(e.slice(1,3),16),parseInt(e.slice(3,5),16),parseInt(e.slice(5,7),16));return`\x1b[${t?`48`:`38`};5;${n}m`}function wt(e,t){if(t&&(e.toLowerCase()===`transparent`||e.toLowerCase()===`none`))return`\x1B[49m`;if(t)return``;let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return r>n&&r>i&&r>120?`\x1B[32m`:n>r&&n>i&&n>120?`\x1B[31m`:i>n&&i>r&&i>120?`\x1B[34m`:(n+r+i)/3>150?`\x1B[37m`:`\x1B[90m`}function Tt(e,t){let n=parseInt(e.slice(1,3),16),r=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16),a=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return Math.sqrt((n-a)**2+(r-o)**2+(i-s)**2)}const Et={theme:`dark`,display:{style:`minimal`,charset:`unicode`,colorCompatibility:`auto`,autoWrap:!0,padding:1,lines:[{segments:{directory:{enabled:!0,style:`basename`},git:{enabled:!0,showSha:!1,showWorkingTree:!1,showOperation:!1,showTag:!1,showTimeSinceCommit:!1,showStashCount:!1,showUpstream:!1,showRepoName:!1},model:{enabled:!0},session:{enabled:!0,type:`tokens`,costSource:`calculated`},today:{enabled:!0,type:`cost`},block:{enabled:!1,type:`cost`,burnType:`cost`,displayStyle:`text`},weekly:{enabled:!1,displayStyle:`text`},version:{enabled:!1},tmux:{enabled:!1},sessionId:{enabled:!1,showIdLabel:!0},context:{enabled:!0,showPercentageOnly:!1,displayStyle:`text`,autocompactBuffer:33e3},metrics:{enabled:!1,showResponseTime:!0,showLastResponseTime:!0,showDuration:!0,showMessageCount:!0,showLinesAdded:!0,showLinesRemoved:!0}}}]},budget:{session:{warningThreshold:80},today:{warningThreshold:80,amount:50},block:{warningThreshold:80,amount:15}},modelContextLimits:{default:2e5,sonnet:2e5,opus:2e5}},Dt=new Set([`context`,`block`,`session`,`today`,`weekly`,`git`,`dir`,`model`,`version`,`tmux`,`metrics`,`activity`,`env`]),Ot={session:[`icon`,`label`,`cost`,`tokens`,`budget`],block:[`icon`,`label`,`value`,`time`,`budget`,`bar`],today:[`icon`,`cost`,`label`,`budget`],weekly:[`icon`,`label`,`pct`,`time`,`bar`],git:[`icon`,`headVal`,`branch`,`status`,`ahead`,`behind`,`working`,`head`],context:[`icon`,`label`,`bar`,`pct`,`tokens`],metrics:[`response`,`responseIcon`,`responseVal`,`lastResponse`,`lastResponseIcon`,`lastResponseVal`,`added`,`addedIcon`,`addedVal`,`removed`,`removedIcon`,`removedVal`],activity:[`icon`,`duration`,`durationIcon`,`durationVal`,`messages`,`messagesIcon`,`messagesVal`],model:[`icon`,`value`],version:[`icon`,`value`],tmux:[`label`,`value`],dir:[`icon`,`value`],env:[`prefix`,`value`]};function kt(e){if(e===`.`||e===`---`||Dt.has(e))return!0;let t=e.indexOf(`.`);if(t===-1)return!1;let n=e.slice(0,t),r=e.slice(t+1);if(!n||!r)return!1;let i=Ot[n];return i?i.includes(r):!1}export{x as BOX_CHARS,S as BOX_CHARS_TEXT,C as BOX_PRESETS,$ as BUILT_IN_THEMES,Et as DEFAULT_CONFIG,Fe as DIVIDER,Ie as EMPTY_CELL,ee as ESC,Le as LATE_RESOLVE_SEGMENTS,y as RESET_CODE,Ot as SEGMENT_PARTS,b as SYMBOLS,v as SegmentRenderer,w as TEXT_SYMBOLS,Dt as VALID_SEGMENT_NAMES,s as abbreviateFishStyle,P as bottomBorder,ae as buildBlockBar,ie as buildContextBar,V as buildContextLine,R as buildTitleBar,oe as buildWeeklyBar,We as calculateColumnWidths,d as collapseHome,H as collectActivityParts,W as collectFooterParts,ce as collectMetricSegments,U as collectWorkspaceParts,k as colorize,X as composeTemplate,M as contentRow,He as cullMatrix,rt as darkAnsi256Theme,it as darkAnsiTheme,nt as darkTheme,N as divider,St as extractBgToFg,u as formatBurnRate,e as formatCost,i as formatDuration,p as formatLongTimeRemaining,o as formatModelName,c as formatResponseTime,f as formatTimeRemaining,r as formatTimeSince,n as formatTokenBreakdown,l as formatTokenCount,t as formatTokens,g as getBudgetStatus,bt as getTheme,vt as gruvboxAnsi256Theme,yt as gruvboxAnsiTheme,_t as gruvboxTheme,Tt as hexColorDistance,Ct as hexTo256Ansi,xt as hexToAnsi,wt as hexToBasicAnsi,kt as isValidSegmentRef,ot as lightAnsi256Theme,st as lightAnsiTheme,at as lightTheme,m as minutesUntilReset,lt as nordAnsi256Theme,ut as nordAnsiTheme,ct as nordTheme,ne as padCenter,te as padLeft,A as padRight,Ve as parseAreas,Ye as renderGrid,Me as renderMediumBottom,je as renderMediumMetrics,Pe as renderNarrowBottom,Ne as renderNarrowMetrics,tt as renderTuiPanel,Ae as renderWideBottom,ke as renderWideMetrics,Oe as resolveSegments,L as resolveTitleToken,ht as rosePineAnsi256Theme,gt as rosePineAnsiTheme,mt as rosePineTheme,Be as selectBreakpoint,Ge as solveFitContentLayout,F as spreadEven,I as spreadTwo,D as stripAnsi,ft as tokyoNightAnsi256Theme,pt as tokyoNightAnsiTheme,dt as tokyoNightTheme,j as truncateAnsi,O as visibleLength};
|
package/dist/index.mjs
CHANGED
|
@@ -4,11 +4,11 @@ import e from"node:process";import{json as t}from"node:stream/consumers";import
|
|
|
4
4
|
`),n=null,r=`clean`,i=0,a=0,o=0,s=0;for(let e of t)if(e){if(e.startsWith(`## `)){let t=e.substring(3).split(`...`)[0];t&&t!==`HEAD (no branch)`&&(n=t);continue}if(e.length>=2){let t=e.charAt(0),n=e.charAt(1);if(t===`?`&&n===`?`){o++,r===`clean`&&(r=`dirty`);continue}let c=t+n;if([`DD`,`AU`,`UD`,`UA`,`DU`,`AA`,`UU`].includes(c)){s++,r=`conflicts`;continue}t!==` `&&t!==`?`&&(i++,r===`clean`&&(r=`dirty`)),n!==` `&&n!==`?`&&(a++,r===`clean`&&(r=`dirty`))}}return{branch:n||await this.getFallbackBranch(e),status:r,workingTree:{staged:i,unstaged:a,untracked:o,conflicts:s}}}catch(t){return O(`Git status with branch command failed in ${e}:`,t),{branch:await this.getFallbackBranch(e),status:`clean`}}}async getFallbackBranch(e){try{let t=(await this.execGitAsync(`git branch --show-current`,{cwd:e,encoding:`utf8`,timeout:2e3})).stdout.trim();if(t)return t}catch{try{let t=(await this.execGitAsync(`git symbolic-ref --short HEAD`,{cwd:e,encoding:`utf8`,timeout:2e3})).stdout.trim();if(t)return t}catch{return null}}return null}async getAheadBehindAsync(e){try{O(`[GIT-EXEC] Running git ahead/behind in ${e}`);let[t,n]=await Promise.all([this.execGitAsync(`git rev-list --count @{u}..HEAD`,{cwd:e,encoding:`utf8`,timeout:2e3}),this.execGitAsync(`git rev-list --count HEAD..@{u}`,{cwd:e,encoding:`utf8`,timeout:2e3})]);return{ahead:parseInt(t.stdout.trim())||0,behind:parseInt(n.stdout.trim())||0}}catch(t){return O(`Git ahead/behind command failed in ${e}:`,t),{ahead:0,behind:0}}}};const Se=a(r);var Ce=class{async getSessionId(){try{if(!process.env.TMUX_PANE)return O(`TMUX_PANE not set, not in tmux session`),null;O(`Getting tmux session ID, TMUX_PANE: ${process.env.TMUX_PANE}`);let e=(await Se(`tmux display-message -p '#S'`,{encoding:`utf8`,timeout:1e3})).stdout.trim();return O(`Tmux session ID: ${e||`empty`}`),e||null}catch(e){return O(`Error getting tmux session ID:`,e),null}}isInTmux(){return!!process.env.TMUX_PANE}};function we(){let e=[],t=process.env.CLAUDE_CONFIG_DIR;if(t&&t.split(`,`).forEach(t=>{let n=t.trim();c(n)&&e.push(n)}),e.length===0){let t=h(),n=d(t,`.config`,`claude`),r=d(t,`.claude`);c(n)&&e.push(n),c(r)&&e.push(r)}return e}async function Te(e){let t=[];for(let n of e){let e=d(n,`projects`);if(c(e))try{let n=await y(e,{withFileTypes:!0});for(let r of n)if(r.isDirectory()){let n=d(e,r.name);t.push(n)}}catch(t){O(`Failed to read projects directory ${e}:`,t)}}return t}async function Ee(e){let t=await Te(we());for(let n of t){let t=d(n,`${e}.jsonl`);if(c(t))return t}return null}async function De(e,t){let n=[],r=d(t,e,`subagents`);try{let t=(await y(r)).filter(e=>e.startsWith(`agent-`)&&e.endsWith(`.jsonl`));for(let i of t){let t=d(r,i);try{let r=(await v(t,`utf-8`)).split(`
|
|
5
5
|
`)[0];r&&JSON.parse(r).sessionId===e&&n.push(t)}catch{O(`Failed to check agent file ${t}`)}}}catch(e){O(`Failed to read subagents directory ${r}:`,e)}return n}async function Oe(e){try{return(await b(e)).mtime}catch{return null}}function ke(e){let t=e.message?.id||(typeof e.raw.message==`object`&&e.raw.message!==null&&`id`in e.raw.message?e.raw.message.id:void 0),n=`requestId`in e.raw?e.raw.requestId:void 0;return!t||!n?null:`${t}:${n}`}async function k(e){try{let t=(await b(e)).size,n;return t>1048576?(O(`Using streaming parser for large file ${e} (${Math.round(t/1024)}KB)`),n=await je(e)):n=await Ae(e),O(`Parsed ${n.length} entries from ${e}`),n}catch(t){return O(`Failed to read file ${e}:`,t),[]}}async function Ae(e){let t=(await v(e,`utf-8`)).trim().split(`
|
|
6
6
|
`).filter(e=>e.trim()),n=[];for(let e of t)try{let t=JSON.parse(e);if(!t.timestamp)continue;let r={timestamp:new Date(t.timestamp),message:t.message,costUSD:typeof t.costUSD==`number`?t.costUSD:void 0,isSidechain:t.isSidechain===!0,raw:t};n.push(r)}catch(e){O(`Failed to parse JSONL line: ${e}`);continue}return n}async function je(e){return new Promise((t,n)=>{let r=[],i=s(e,{encoding:`utf8`}),a=x({input:i,crlfDelay:1/0});a.on(`line`,e=>{let t=e.trim();if(t)try{let e=JSON.parse(t);if(!e.timestamp)return;let n={timestamp:new Date(e.timestamp),message:e.message,costUSD:typeof e.costUSD==`number`?e.costUSD:void 0,isSidechain:e.isSidechain===!0,raw:e};r.push(n)}catch(e){O(`Failed to parse JSONL line: ${e}`)}}),a.on(`close`,()=>{t(r)}),a.on(`error`,t=>{O(`Streaming parser error for ${e}:`,t),n(t)}),i.on(`error`,t=>{O(`File stream error for ${e}:`,t),n(t)})})}async function Me(e){try{let t=await Oe(e);return t?{filePath:e,mtime:t}:null}catch{return null}}async function Ne(e,t){try{let n=await y(e,{withFileTypes:!0}),r=n.filter(e=>!e.isDirectory()&&e.name.endsWith(`.jsonl`)).map(t=>Me(d(e,t.name))),i=n.filter(e=>e.isDirectory()).map(async t=>{let n=d(e,t.name,`subagents`);try{return(await y(n)).filter(e=>e.startsWith(`agent-`)&&e.endsWith(`.jsonl`)).map(e=>Me(d(n,e)))}catch{return[]}}),[a,o]=await Promise.all([Promise.all(r),Promise.all(i).then(e=>Promise.all(e.flat()))]);return[...a,...o].filter(e=>e!==null&&(!t||t(e.filePath,e.mtime)))}catch(t){return O(`Failed to read project directory ${e}:`,t),[]}}async function Pe(e,t,n=!1){let r=await Te(we()),i=new Set,a=r.map(e=>Ne(e,t)),o=(await Promise.all(a)).flat().filter(e=>e!==null);n&&o.sort((e,t)=>t.mtime.getTime()-e.mtime.getTime());let s=o.map(e=>e.filePath),c=[],l=s.map(async t=>(await k(t)).filter(t=>!e||e(t))),u=await Promise.all(l);for(let e of u)c.push(...e);c.sort((e,t)=>e.timestamp.getTime()-t.timestamp.getTime());let d=[];for(let e of c){let t=ke(e);t&&i.has(t)||(t&&i.add(t),d.push(e))}return d}var A=class{static CACHE_DIR=l.join(h(),`.claude`,`powerline`);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(!o.existsSync(t))return!1;try{let n=o.readFileSync(t,`utf-8`),r=parseInt(n.trim(),10);if(isNaN(r))return O(`Invalid PID in lock file ${e}, removing stale lock`),o.unlinkSync(t),!1;try{return process.kill(r,0),!0}catch(n){return n.code===`ESRCH`?(O(`Removing stale lock file ${e} for dead process ${r}`),o.unlinkSync(t),!1):(O(`Error checking process ${r} for lock ${e}:`,n),!0)}}catch(t){return O(`Error reading lock file ${e}:`,t),!0}}static async acquireLock(e,t=5e3){await this.ensureCacheDirectories();let n=l.join(this.LOCKS_DIR,e),r=Date.now(),i=String(process.pid);for(;Date.now()-r<t;)try{return await o.promises.writeFile(n,i,{flag:`wx`}),O(`Lock acquired for ${e}`),!0}catch(e){if(e.code===`EEXIST`)await _(50);else throw e}return O(`Failed to acquire lock for ${e} within ${t}ms`),!1}static async releaseLock(e){let t=l.join(this.LOCKS_DIR,e);try{await o.promises.unlink(t),O(`Lock released for ${e}`)}catch(t){t.code!==`ENOENT`&&O(`Error releasing lock for ${e}:`,t)}}static async ensureCacheDirectories(){try{await Promise.all([o.promises.mkdir(this.CACHE_DIR,{recursive:!0}),o.promises.mkdir(this.USAGE_CACHE_DIR,{recursive:!0}),o.promises.mkdir(this.LOCKS_DIR,{recursive:!0})])}catch(e){O(`Failed to create cache directories:`,e)}}static createProjectHash(e){return g(`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`),r=`${e}.usage.lock`;for(let i=0;i<3;i++){if(this.isLocked(r)){O(`Cache for ${e} is locked, waiting...`),await _(75);continue}try{let r=await o.promises.readFile(n,`utf-8`),i=JSON.parse(r);return!t||i.timestamp>=t?(O(`[CACHE-HIT] ${e} disk cache: found`),this.deserializeDates(i.data)):(O(`${e} cache outdated: cache=${i.timestamp}, latest=${t}`),null)}catch(t){if(t.code===`ENOENT`)return O(`No shared ${e} usage cache found`),null;O(`Attempt ${i+1} failed to read ${e} cache: ${t.message}. Retrying...`),await _(75)}}return O(`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 r=`${e}.usage.lock`;if(!await this.acquireLock(r)){O(`Could not acquire lock to set usage cache for ${e}`);return}try{await this.ensureCacheDirectories();let r=l.join(this.USAGE_CACHE_DIR,`${e}.json`),i=JSON.stringify({data:t,timestamp:n||Date.now()});await o.promises.writeFile(r,i,`utf-8`),O(`[CACHE-SET] ${e} disk cache stored`)}catch(t){O(`Failed to save ${e} usage cache:`,t)}finally{await this.releaseLock(r)}}static async getLatestTranscriptMtime(){try{let e=await Te(we()),t=0;for(let n of e)try{let e=(await o.promises.readdir(n)).filter(e=>e.endsWith(`.jsonl`));for(let r of e){let e=await Oe(l.join(n,r));e&&e.getTime()>t&&(t=e.getTime())}}catch(e){O(`Failed to read project directory ${n}:`,e);continue}return t}catch(e){return O(`Failed to get latest transcript mtime:`,e),Date.now()}}};const j={"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 Fe=class{static executionCache=null;static modelPricingCache=new Map;static GITHUB_PRICING_URL=`https://raw.githubusercontent.com/Owloops/claude-powerline/main/pricing.json`;static async loadDiskCache(){let e=Date.now()-1440*60*1e3;return await A.getUsageCache(`pricing`,e)}static async saveDiskCache(e){await A.setUsageCache(`pricing`,e)}static async fetchPricingData(){return new Promise(e=>{let t=new p(this.GITHUB_PRICING_URL),n=f({hostname:t.hostname,path:t.pathname,headers:{"User-Agent":`claude-powerline`,"Cache-Control":`no-cache`},timeout:5e3},t=>{if(t.statusCode!==200){O(`HTTP ${t.statusCode}: ${t.statusMessage}`),e(null);return}let r=``,i=0;t.on(`data`,t=>{if(i+=t.length,i>1048576){O(`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)?(O(`Fetched fresh pricing from GitHub for ${Object.keys(i).length} models`),O(`Pricing last updated: ${n?.updated||`unknown`}`),e(i)):(O(`Invalid pricing data structure`),e(null))}catch(t){O(`Failed to parse JSON:`,t),e(null)}}),t.on(`error`,t=>{O(`Response error:`,t),e(null)})});n.on(`error`,t=>{O(`Request error:`,t),e(null)}),n.on(`timeout`,()=>{O(`Request timeout`),n.destroy(),e(null)}),n.end()})}static async getCurrentPricing(){if(this.executionCache!==null)return O(`[CACHE-HIT] Pricing execution cache: ${Object.keys(this.executionCache).length} models`),this.executionCache;let e=await this.loadDiskCache();if(e)return O(`[CACHE-HIT] Pricing disk cache: ${Object.keys(e).length} models`),this.executionCache=e,O(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(e).length} models`),e;let t=await this.fetchPricingData();return t?(await this.saveDiskCache(t),O(`[CACHE-SET] Pricing disk cache stored: ${Object.keys(t).length} models`),this.executionCache=t,O(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(t).length} models`),t):(O(`[CACHE-FALLBACK] Using offline pricing data: ${Object.keys(j).length} models`),this.executionCache=j,O(`[CACHE-SET] Pricing execution cache stored: ${Object.keys(j).length} models`),j)}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 O(`[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),O(`[CACHE-SET] Model pricing cache: ${e}`),n}static fuzzyMatchModel(e,t){let n=e.toLowerCase();for(let[e,r]of Object.entries(t))if(e.toLowerCase()===n)return r;for(let{pattern:e,fallback:r}of[{pattern:[`opus-4-6`,`claude-opus-4-6`],fallback:`claude-opus-4-6-20260205`},{pattern:[`opus-4-5`,`claude-opus-4-5`],fallback:`claude-opus-4-5-20251101`},{pattern:[`opus-4-1`,`claude-opus-4-1`],fallback:`claude-opus-4-1-20250805`},{pattern:[`opus-4`,`claude-opus-4`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet-4-6`,`sonnet-4.6`,`claude-sonnet-4-6`],fallback:`claude-sonnet-4-6`},{pattern:[`sonnet-4.5`,`4-5-sonnet`,`sonnet-4-5`],fallback:`claude-sonnet-4-5-20250929`},{pattern:[`sonnet-4`,`claude-sonnet-4`],fallback:`claude-sonnet-4-20250514`},{pattern:[`haiku-4.5`,`4-5-haiku`,`haiku-4-5`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`haiku`],fallback:`claude-haiku-4-5-20251001`},{pattern:[`opus`],fallback:`claude-opus-4-20250514`},{pattern:[`sonnet`],fallback:`claude-sonnet-4-5-20250929`}])if(e.some(e=>n.includes(e))&&t[r])return t[r];return t[`claude-sonnet-4-5-20250929`]||{name:`${e} (Unknown Model)`,input:3,cache_write_5m:3.75,cache_write_1h:6,cache_read:.3,output:15}}static async calculateCostForEntry(e){let t=e.message?.usage;if(!t)return 0;let n=this.extractModelId(e),r=await this.getModelPricing(n),i=t.input_tokens||0,a=t.output_tokens||0,o=t.cache_creation_input_tokens||0,s=t.cache_read_input_tokens||0,c=i/1e6*r.input,l=a/1e6*r.output,u=s/1e6*r.cache_read,d=o/1e6*r.cache_write_5m;return c+l+d+u}static extractModelId(e){if(e.model&&typeof e.model==`string`)return e.model;let t=e.message;if(t?.model){let e=t.model;if(typeof e==`string`)return e;let n=e;return(typeof n?.id==`string`?n.id:null)||`claude-sonnet-4-5-20250929`}return e.model_id&&typeof e.model_id==`string`?e.model_id:`claude-sonnet-4-5-20250929`}};function Ie(e){return{timestamp:e.timestamp.toISOString(),message:{usage:{input_tokens:e.message?.usage?.input_tokens||0,output_tokens:e.message?.usage?.output_tokens||0,cache_creation_input_tokens:e.message?.usage?.cache_creation_input_tokens,cache_read_input_tokens:e.message?.usage?.cache_read_input_tokens}},costUSD:e.costUSD}}var Le=class{async getSessionUsage(e){try{let t=await Ee(e);if(!t)return O(`No transcript found for session: ${e}`),null;O(`Found transcript at: ${t}`);let n=await k(t),r=await De(e,u(t));O(`Found ${r.length} agent transcripts for session`);for(let e of r){let t=await k(e);n.push(...t)}if(n.length===0)return{totalCost:0,entries:[]};let i=[],a=0;for(let e of n)if(e.message?.usage){let t=Ie(e);if(t.costUSD!==void 0)a+=t.costUSD;else{let n=await Fe.calculateCostForEntry(e.raw);t.costUSD=n,a+=n}i.push(t)}return O(`Parsed ${i.length} usage entries, total cost: $${a.toFixed(4)}`),{totalCost:a,entries:i}}catch(t){return O(`Error reading session usage for ${e}:`,t),null}}calculateTokenBreakdown(e){return e.reduce((e,t)=>({input:e.input+(t.message.usage.input_tokens||0),output:e.output+(t.message.usage.output_tokens||0),cacheCreation:e.cacheCreation+(t.message.usage.cache_creation_input_tokens||0),cacheRead:e.cacheRead+(t.message.usage.cache_read_input_tokens||0)}),{input:0,output:0,cacheCreation:0,cacheRead:0})}async getSessionInfo(e,t){let n=await this.getSessionUsage(e);if(!n||n.entries.length===0)return{cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null};let r=this.calculateTokenBreakdown(n.entries),i=r.input+r.output+r.cacheCreation+r.cacheRead,a=n.totalCost,o=t?.cost?.total_cost_usd??null;return{cost:a??o,calculatedCost:a,officialCost:o,tokens:i,tokenBreakdown:r}}},Re=class{sessionProvider=new Le;async getUsageInfo(e,t){try{return O(`Starting usage info retrieval for session: ${e}`),{session:await this.sessionProvider.getSessionInfo(e,t)}}catch(t){return O(`Error getting usage info for session ${e}:`,t),{session:{cost:null,calculatedCost:null,officialCost:null,tokens:null,tokenBreakdown:null}}}}},ze=class{thresholds={LOW:50,MEDIUM:80};config;constructor(e){this.config=e}getContextUsageThresholds(){return this.thresholds}getContextLimit(e){let t=this.config.modelContextLimits||{default:2e5};return t[this.getModelType(e)]||t.default||2e5}getModelType(e){let t=e.toLowerCase();return t.includes(`sonnet`)?`sonnet`:t.includes(`opus`)?`opus`:`default`}calculatePercentages(e,t,n=33e3){let r=Math.min(100,Math.max(0,Math.round(e/t*100))),i=Math.max(1,t-n),a=Math.min(100,Math.max(0,Math.round(e/i*100)));return{percentage:r,usablePercentage:a,contextLeftPercentage:Math.max(0,100-a),usableTokens:i}}calculateContextFromHookData(e,t=33e3){let n=e.context_window?.current_usage;if(!n)return O(`No current_usage in hook data, falling back to transcript parsing`),null;let r=e.context_window?.context_window_size||2e5,i=(n.input_tokens||0)+(n.cache_creation_input_tokens||0)+(n.cache_read_input_tokens||0);O(`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=e.context_window?.used_percentage,o=this.calculatePercentages(i,r,t);return a!=null&&(o.percentage=Math.round(a),O(`Using native used_percentage: ${a}%`)),{totalTokens:i,maxTokens:r,...o}}async calculateContextTokensFromTranscript(e,t,n=33e3){try{O(`Calculating context tokens from transcript: ${e}`);let r=await k(e);if(r.length===0)return O(`No entries in transcript`),null;let i=null;for(let e=r.length-1;e>=0;e--){let t=r[e];if(t&&t.message?.usage?.input_tokens&&t.isSidechain!==!0){i=t,O(`Context segment: Found most recent entry at ${t.timestamp.toISOString()}, stopping search`);break}}if(i?.message?.usage){let e=i.message.usage,r=(e.input_tokens||0)+(e.cache_read_input_tokens||0)+(e.cache_creation_input_tokens||0),a=t?this.getContextLimit(t):2e5;return O(`Most recent main chain context: ${r} tokens (limit: ${a})`),{totalTokens:r,maxTokens:a,...this.calculatePercentages(r,a,n)}}return O(`No main chain entries with usage data found`),null}catch(e){return O(`Error reading transcript: ${e instanceof Error?e.message:String(e)}`),null}}async getContextInfo(e,t=33e3){return this.calculateContextFromHookData(e,t)||this.calculateContextTokensFromTranscript(e.transcript_path,e.model?.id,t)}},Be=class{async loadTranscriptEntries(e){try{let t=await Ee(e);if(!t)return O(`No transcript found for session: ${e}`),[];O(`Loading transcript from: ${t}`);let n=(await v(t,`utf-8`)).trim().split(`
|
|
7
|
-
`).filter(e=>e.trim()),r=[];for(let e of n)try{let t=JSON.parse(e);if(t.isSidechain===!0)continue;r.push(t)}catch(e){O(`Failed to parse JSONL line: ${e}`);continue}return O(`Loaded ${r.length} transcript entries`),r}catch(t){return O(`Error loading transcript for ${e}:`,t),[]}}calculateMessageCount(e){return e.filter(e=>{let t=e.type||e.message?.role||e.message?.type,n=e.type===`user`&&e.message?.content?.[0]?.type===`tool_result`;return t===`user`&&!n}).length}calculateLastResponseTime(e){if(e.length===0)return null;let t=e.slice(-20),n=null,r=null;for(let e of t)if(e.timestamp)try{let t=new Date(e.timestamp),i=e.type||e.message?.role||e.message?.type,a=e.type===`user`&&e.message?.content?.[0]?.type===`tool_result`;if(i===`user`&&!a)n=t;else if(i===`assistant`&&n){let e=(t.getTime()-n.getTime())/1e3;e>.1&&e<300&&(r=e)}}catch{continue}return r}async getMetricsInfo(e,t){try{if(O(`Getting metrics from hook data for session: ${e}`),!t.cost)return O(`No cost data available in hook data`),{responseTime:null,lastResponseTime:null,sessionDuration:null,messageCount:null,linesAdded:null,linesRemoved:null};let n=await this.loadTranscriptEntries(e),r=this.calculateMessageCount(n),i=this.calculateLastResponseTime(n);return{responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:i,sessionDuration:t.cost.total_duration_ms/1e3,messageCount:r,linesAdded:t.cost.total_lines_added,linesRemoved:t.cost.total_lines_removed}}catch(t){return O(`Error getting metrics from hook data for session ${e}:`,t),{responseTime:null,lastResponseTime:null,sessionDuration:null,messageCount:null,linesAdded:null,linesRemoved:null}}}};function M(e){return e===null?`$0.00`:e<.01?`<$0.01`:`$${e.toFixed(2)}`}function Ve(e){return e===null||e===0?`0 tokens`:e>=1e6?`${(e/1e6).toFixed(1)}M tokens`:e>=1e3?`${(e/1e3).toFixed(1)}K tokens`:`${e} tokens`}function He(e){if(!e)return`0 tokens`;let t=[];if(e.input>0&&t.push(`${N(e.input)} in`),e.output>0&&t.push(`${N(e.output)} out`),e.cacheCreation>0||e.cacheRead>0){let n=e.cacheCreation+e.cacheRead;t.push(`${N(n)} cached`)}return t.length>0?t.join(` + `):`0 tokens`}function Ue(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:e<86400?`${Math.floor(e/3600)}h`:e<604800?`${Math.floor(e/86400)}d`:`${Math.floor(e/604800)}w`}function We(e){return e<60?`${e.toFixed(0)}s`:e<3600?`${(e/60).toFixed(0)}m`:e<86400?`${(e/3600).toFixed(1)}h`:`${(e/86400).toFixed(1)}d`}const Ge=/^(?:(?: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;function Ke(e){if(!e)return`Claude`;let t=e.trim().match(Ge);if(!t?.groups)return e;let{family:n,newMajor:r,newMinor:i,oldMajor:a,oldMinor:o,oldFamily:s}=t.groups,c=n||s,l=r||a,u=i||o;return c&&l?`${c.charAt(0).toUpperCase()+c.slice(1).toLowerCase()} ${u?`${l}.${u}`:l}`:e}function qe(e){let t=e.includes(`/`)?`/`:`\\`,n=e.split(t);return n.map((e,t)=>t===n.length-1||e===`~`||e===``?e:e.charAt(0)).join(t)}function Je(e){return e<60?`${e.toFixed(1)}s`:`${(e/60).toFixed(1)}m`}function N(e){return Ve(e).replace(` tokens`,``)}function Ye(e,t){let n=t??globalThis.process?.env?.HOME??globalThis.process?.env?.USERPROFILE;return n&&e.startsWith(n)?e.replace(n,`~`):e}function Xe(e){let t=Math.floor(e/60),n=e%60;return t>0?`${t}h ${n}m left`:`${n}m left`}function Ze(e){if(e>=1440){let t=Math.floor(e/1440),n=Math.floor(e%1440/60);return n>0?`${t}d ${n}h`:`${t}d`}else if(e>=60){let t=Math.floor(e/60),n=e%60;return n>0?`${t}h ${n}m`:`${t}h`}return`${e}m`}function Qe(e){return Math.round(Math.max(0,e*1e3-Date.now())/6e4)}function $e(e,t){return!t||t<=0||e<0?null:Math.min(100,e/t*100)}function P(e,t,n=80){let r=$e(e,t);if(r===null)return{percentage:null,isWarning:!1,displayText:``};let i=`${r.toFixed(0)}%`,a=r>=n,o=``;return o=a?` !${i}`:r>=50?` +${i}`:` ${i}`,{percentage:r,isWarning:a,displayText:o}}const et={ball:{filled:`─`,empty:`─`,marker:`●`},blocks:{filled:`█`,empty:`░`},"blocks-line":{filled:`█`,empty:`─`},capped:{filled:`━`,empty:`┄`,cap:`╸`},dots:{filled:`●`,empty:`○`},filled:{filled:`■`,empty:`□`},geometric:{filled:`▰`,empty:`▱`},line:{filled:`━`,empty:`┄`},squares:{filled:`◼`,empty:`◻`}};var tt=class{constructor(e,t){this.config=e,this.symbols=t}renderDirectory(e,t,n){let r=e.workspace?.current_dir||e.cwd||`/`,i=e.workspace?.project_dir,a=n?.style??(n?.showBasename?`basename`:`full`);if(a===`basename`)return{text:r.split(/[\\/]/).pop()||`root`,bgColor:t.modeBg,fgColor:t.modeFg};let o=Ye(r),s=i&&Ye(i),c=this.getDisplayDirectoryName(o,s);return a===`fish`&&(c=qe(c)),{text:c,bgColor:t.modeBg,fgColor:t.modeFg}}renderGit(e,t,n){if(!e)return null;let r=[];if(n?.showRepoName&&e.repoName&&(r.push(e.repoName),e.isWorktree&&r.push(this.symbols.git_worktree)),n?.showOperation&&e.operation&&r.push(`[${e.operation}]`),r.push(`${this.symbols.branch} ${e.branch}`),n?.showTag&&e.tag&&r.push(`${this.symbols.git_tag} ${e.tag}`),n?.showSha&&e.sha&&r.push(`${this.symbols.git_sha} ${e.sha}`),n?.showAheadBehind!==!1&&(e.ahead>0&&e.behind>0?r.push(`${this.symbols.git_ahead}${e.ahead}${this.symbols.git_behind}${e.behind}`):e.ahead>0?r.push(`${this.symbols.git_ahead}${e.ahead}`):e.behind>0&&r.push(`${this.symbols.git_behind}${e.behind}`)),n?.showWorkingTree){let t=[];e.staged&&e.staged>0&&t.push(`+${e.staged}`),e.unstaged&&e.unstaged>0&&t.push(`~${e.unstaged}`),e.untracked&&e.untracked>0&&t.push(`?${e.untracked}`),e.conflicts&&e.conflicts>0&&t.push(`!${e.conflicts}`),t.length>0&&r.push(`(${t.join(` `)})`)}if(n?.showUpstream&&e.upstream&&r.push(`${this.symbols.git_upstream}${e.upstream}`),n?.showStashCount&&e.stashCount&&e.stashCount>0&&r.push(`${this.symbols.git_stash} ${e.stashCount}`),n?.showTimeSinceCommit&&e.timeSinceCommit!==void 0){let t=Ue(e.timeSinceCommit);r.push(`${this.symbols.git_time} ${t}`)}let i=this.symbols.git_clean;return e.status===`conflicts`?i=this.symbols.git_conflicts:e.status===`dirty`&&(i=this.symbols.git_dirty),r.push(i),{text:r.join(` `),bgColor:t.gitBg,fgColor:t.gitFg}}renderModel(e,t){let n=Ke(e.model?.display_name||`Claude`);return{text:`${this.symbols.model} ${n}`,bgColor:t.modelBg,fgColor:t.modelFg}}renderSession(e,t,n){let r=n?.type||`cost`,i=n?.costSource,a=this.config.budget?.session,o=this.formatUsageWithBudget(i===`calculated`?e.session.calculatedCost:i===`official`?e.session.officialCost:e.session.cost,e.session.tokens,e.session.tokenBreakdown,r,a?.amount,a?.warningThreshold||80,a?.type);return{text:`${this.symbols.session_cost} ${o}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderSessionId(e,t,n){return{text:n?.showIdLabel===!1?e:`${this.symbols.session_id} ${e}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderTmux(e,t){return e?{text:`tmux:${e}`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}:{text:`tmux:none`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}}renderContext(e,t,n){let r=n?.displayStyle??`text`,i=r===`text`?`remaining`:`used`,a=n?.percentageMode??i,o=this.resolveBarStyleDef(r),s=a===`remaining`?`100%`:`0%`;if(!e)return o?{text:`${o.empty.repeat(10)} ${s}`,bgColor:t.contextBg,fgColor:t.contextFg}:{text:`${this.symbols.context_time} 0 (${s})`,bgColor:t.contextBg,fgColor:t.contextFg};let c=t.contextBg,l=t.contextFg;e.contextLeftPercentage<=20?(c=t.contextCriticalBg,l=t.contextCriticalFg):e.contextLeftPercentage<=40&&(c=t.contextWarningBg,l=t.contextWarningFg);let u=a===`remaining`?e.contextLeftPercentage:e.usablePercentage,d=Math.round(e.usablePercentage/100*10),f=10-d;if(o){let t=this.buildBar(o,d,f,10);return{text:n?.showPercentageOnly?`${t} ${u}%`:`${t} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}return{text:n?.showPercentageOnly?`${this.symbols.context_time} ${u}%`:`${this.symbols.context_time} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}buildBar(e,t,n,r){if(e.marker){let n=Math.min(t,r-1);return e.filled.repeat(n)+e.marker+e.empty.repeat(r-n-1)}return e.cap?t===0?e.cap+e.empty.repeat(r-1):t>=r?e.filled.repeat(r):e.filled.repeat(t-1)+e.cap+e.empty.repeat(n):e.filled.repeat(t)+e.empty.repeat(n)}resolveBarStyleDef(e){return e===`bar`?{filled:this.symbols.bar_filled,empty:this.symbols.bar_empty}:et[e]??null}formatPercentageWithBar(e,t,n){let r=t??`text`,i=this.resolveBarStyleDef(r);if(i){let t=Math.round(e/100*10),r=10-t,a=this.buildBar(i,t,r,10);return n?`${a} ${e}% (${n})`:`${a} ${e}%`}return n?`${e}% (${n})`:`${e}%`}renderMetrics(e,t,n){if(!e)return{text:`${this.symbols.metrics_response} new`,bgColor:t.metricsBg,fgColor:t.metricsFg};let r=[];if(n?.showLastResponseTime&&e.lastResponseTime!==null){let t=e.lastResponseTime<60?`${e.lastResponseTime.toFixed(1)}s`:`${(e.lastResponseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_last_response} ${t}`)}if(n?.showResponseTime!==!1&&e.responseTime!==null){let t=e.responseTime<60?`${e.responseTime.toFixed(1)}s`:`${(e.responseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_response} ${t}`)}if(n?.showDuration!==!1&&e.sessionDuration!==null){let t=We(e.sessionDuration);r.push(`${this.symbols.metrics_duration} ${t}`)}return n?.showMessageCount!==!1&&e.messageCount!==null&&r.push(`${this.symbols.metrics_messages} ${e.messageCount}`),n?.showLinesAdded!==!1&&e.linesAdded!==null&&e.linesAdded>0&&r.push(`${this.symbols.metrics_lines_added} ${e.linesAdded}`),n?.showLinesRemoved!==!1&&e.linesRemoved!==null&&e.linesRemoved>0&&r.push(`${this.symbols.metrics_lines_removed} ${e.linesRemoved}`),r.length===0?{text:`${this.symbols.metrics_response} active`,bgColor:t.metricsBg,fgColor:t.metricsFg}:{text:r.join(` `),bgColor:t.metricsBg,fgColor:t.metricsFg}}renderBlock(e,t,n){let r=Math.round(e.nativeUtilization),i=Ze(e.timeRemaining),a=this.config.budget?.block?.warningThreshold??80,o=t.blockBg,s=t.blockFg;return r>=a?(o=t.contextCriticalBg,s=t.contextCriticalFg):r>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.block_cost} ${this.formatPercentageWithBar(r,n?.displayStyle,i)}`,bgColor:o,fgColor:s}}renderWeekly(e,t,n){let r=e.rate_limits?.seven_day;if(!r)return null;let i=Math.round(r.used_percentage),a=Ze(Qe(r.resets_at)),o=t.weeklyBg,s=t.weeklyFg;return i>=80?(o=t.contextCriticalBg,s=t.contextCriticalFg):i>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.weekly_cost} ${this.formatPercentageWithBar(i,n?.displayStyle,a)}`,bgColor:o,fgColor:s}}renderToday(e,t,n=`cost`){let r=this.config.budget?.today;return{text:`${this.symbols.today_cost} ${this.formatUsageWithBudget(e.cost,e.tokens,e.tokenBreakdown,n,r?.amount,r?.warningThreshold,r?.type)}`,bgColor:t.todayBg,fgColor:t.todayFg}}getDisplayDirectoryName(e,t){return e.startsWith(`~`)?e:t&&t!==e&&e.startsWith(t)?e.slice(t.length+1)||t.split(/[\\/]/).pop()||`project`:e}formatUsageDisplay(e,t,n,r){switch(r){case`cost`:return M(e);case`tokens`:return Ve(t);case`both`:return`${M(e)} (${Ve(t)})`;case`breakdown`:return He(n);default:return M(e)}}formatUsageWithBudget(e,t,n,r,i,a=80,o){let s=this.formatUsageDisplay(e,t,n,r);if(i&&i>0){let n=null;if(o===`tokens`&&t!==null?n=t:(o===`cost`&&e!==null||!o&&e!==null)&&(n=e),n!==null)return s+P(n,i,a).displayText}return s}renderVersion(e,t,n){return e.version?{text:`${this.symbols.version} v${e.version}`,bgColor:t.versionBg,fgColor:t.versionFg}:null}renderEnv(e,t){let n=globalThis.process?.env?.[t.variable];if(!n)return null;let r=t.prefix??t.variable;return{text:r?`${this.symbols.env} ${r}: ${n}`:`${this.symbols.env} ${n}`,bgColor:e.envBg,fgColor:e.envFg}}},nt=class{async getActiveBlockInfo(e){let t=e?.rate_limits?.five_hour;if(!t)return O(`Block segment: No native rate_limits data available`),null;let n=Qe(t.resets_at);return O(`Block segment: Using native rate_limits: ${t.used_percentage}%, resets in ${n}m`),{nativeUtilization:t.used_percentage,timeRemaining:n}}};function F(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function rt(e){return e.inputTokens+e.outputTokens+e.cacheCreationInputTokens+e.cacheReadInputTokens}function it(e){return{timestamp:e.timestamp,usage:{inputTokens:e.message?.usage?.input_tokens||0,outputTokens:e.message?.usage?.output_tokens||0,cacheCreationInputTokens:e.message?.usage?.cache_creation_input_tokens||0,cacheReadInputTokens:e.message?.usage?.cache_read_input_tokens||0},costUSD:e.costUSD||0,model:e.message?.model||`unknown`}}var at=class{async loadTodayEntries(){let e=F(new Date);O(`Today segment: Loading entries for date ${e}`);let t=await A.getLatestTranscriptMtime(),n=await A.getUsageCache(`today`,t);if(n)return O(`Using shared today usage cache`),n;let r=new Date;r.setDate(r.getDate()-1),r.setHours(0,0,0,0);let i=(e,t)=>t>=r,a=new Date;a.setHours(0,0,0,0);let o=await Pe(e=>e.timestamp>=a,i,!0),s=[],c=0;for(let t of o)if(F(t.timestamp)===e&&t.message?.usage){let e=it(t);!e.costUSD&&t.raw&&(e.costUSD=await Fe.calculateCostForEntry(t.raw)),s.push(e),c++}return O(`Today segment: Found ${c} entries for today (${e})`),await A.setUsageCache(`today`,s,t),s}async getTodayEntries(){try{return await this.loadTodayEntries()}catch(e){return O(`Error loading today's entries:`,e),[]}}async getTodayInfo(){try{let e=await this.getTodayEntries();if(e.length===0)return{cost:null,tokens:null,tokenBreakdown:null,date:F(new Date)};let t=e.reduce((e,t)=>e+t.costUSD,0),n=e.reduce((e,t)=>e+rt(t.usage),0),r=e.reduce((e,t)=>({input:e.input+t.usage.inputTokens,output:e.output+t.usage.outputTokens,cacheCreation:e.cacheCreation+t.usage.cacheCreationInputTokens,cacheRead:e.cacheRead+t.usage.cacheReadInputTokens}),{input:0,output:0,cacheCreation:0,cacheRead:0});return O(`Today segment: $${t.toFixed(2)}, ${n} tokens total`),{cost:t,tokens:n,tokenBreakdown:r,date:F(new Date)}}catch(e){return O(`Error getting today's info:`,e),{cost:null,tokens:null,tokenBreakdown:null,date:F(new Date)}}}};const ot={right:``,left_rounded:``,right_rounded:``,branch:`⎇`,model:`✱`,git_clean:`✓`,git_dirty:`●`,git_conflicts:`⚠`,git_ahead:`↑`,git_behind:`↓`,git_worktree:`⧉`,git_tag:`⌂`,git_sha:`♯`,git_upstream:`→`,git_stash:`⧇`,git_time:`◷`,session_cost:`§`,block_cost:`◱`,today_cost:`☉`,context_time:`◔`,metrics_response:`⧖`,metrics_last_response:`Δ`,metrics_duration:`⧗`,metrics_messages:`◆`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`↗`,version:`◈`,bar_filled:`▪`,bar_empty:`▫`,env:`⚙`,session_id:`⌗`,weekly_cost:`◑`,dir:`📁`,activity:`⚡`},st={topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},ct={topLeft:`+`,topRight:`+`,bottomLeft:`+`,bottomRight:`+`,horizontal:`-`,vertical:`|`,teeLeft:`+`,teeRight:`+`},I={rounded:st,square:{topLeft:`┌`,topRight:`┐`,bottomLeft:`└`,bottomRight:`┘`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},heavy:{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`━`,vertical:`┃`,teeLeft:`┣`,teeRight:`┫`},double:{topLeft:`╔`,topRight:`╗`,bottomLeft:`╚`,bottomRight:`╝`,horizontal:`═`,vertical:`║`,teeLeft:`╠`,teeRight:`╣`},dashed:{topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`┄`,vertical:`┊`,teeLeft:`├`,teeRight:`┤`},"heavy-dashed":{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`┅`,vertical:`┇`,teeLeft:`┣`,teeRight:`┫`},mixed:{topLeft:`┍`,topRight:`┑`,bottomLeft:`┕`,bottomRight:`┙`,horizontal:`━`,vertical:`│`,teeLeft:`┝`,teeRight:`┥`},ascii:ct,invisible:{topLeft:` `,topRight:` `,bottomLeft:` `,bottomRight:` `,horizontal:` `,vertical:` `,teeLeft:` `,teeRight:` `}},lt={right:``,left_rounded:``,right_rounded:``,branch:`~`,model:`M`,git_clean:`=`,git_dirty:`*`,git_conflicts:`!`,git_ahead:`^`,git_behind:`v`,git_worktree:`W`,git_tag:`T`,git_sha:`#`,git_upstream:`>>`,git_stash:`S`,git_time:`@`,session_cost:`S`,block_cost:`B`,today_cost:`D`,context_time:`C`,metrics_response:`R`,metrics_last_response:`L`,metrics_duration:`T`,metrics_messages:`#`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`~/h`,version:`V`,bar_filled:`=`,bar_empty:`-`,env:`$`,session_id:`#`,weekly_cost:`W`,dir:`D`,activity:`A`},ut=RegExp(`\x1B\\[[0-9;]*m`,`g`),dt=RegExp(`(\x1B\\[[0-9;]*m)`);function ft(e){return e.replace(ut,``)}function L(e){return ft(e).length}const pt=/^[a-zA-Z0-9/]+$/;function mt(){if(process.platform===`win32`)return null;let e=process.pid.toString();for(let t=0;t<10;t++)try{let t=i(`ps -o ppid=,tty= -p ${e}`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim().split(/\s+/),n=t[0],r=t[1];if(r&&r!==`?`&&r!==`??`&&pt.test(r))return r;if(!n||n===`1`||n===`0`)break;e=n}catch{break}return null}function ht(){try{let e=i(`mode con`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],windowsHide:!0}).match(/Columns:\s*(\d+)/i);if(e?.[1]){let t=parseInt(e[1],10);if(!isNaN(t)&&t>0)return t}}catch{}return null}function gt(){let e=mt();if(e)try{let t=i(`stty size < /dev/${e}`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],shell:`/bin/sh`}).trim().split(` `)[1];if(t){let e=parseInt(t,10);if(!isNaN(e)&&e>0)return e}}catch{}try{let e=i(`tput cols 2>/dev/null`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim(),t=parseInt(e,10);if(!isNaN(t)&&t>0)return t}catch{}return null}function _t(){let e=e=>Math.max(1,e-45),t=process.env.COLUMNS;if(t){let n=parseInt(t,10);if(!isNaN(n)&&n>0)return e(n)}if(process.stdout.columns&&process.stdout.columns>0)return e(process.stdout.columns);if(process.platform===`win32`){let t=ht();if(t)return e(t)}let n=gt();return n?e(n):null}function vt(){return process.platform===`win32`?ht():gt()}function R(e,t,n){return t?`${t}${e}${n}`:e}function z(e,t){let n=L(e);return n>=t?e:e+` `.repeat(t-n)}function yt(e,t){let n=L(e);return n>=t?e:` `.repeat(t-n)+e}function bt(e,t){let n=L(e);if(n>=t)return e;let r=t-n,i=Math.floor(r/2),a=r-i;return` `.repeat(i)+e+` `.repeat(a)}function B(e,t){if(ft(e).length<=t)return e;let n=0,r=``,i=e.split(dt);for(let e of i){if(e.startsWith(`\x1B`)){r+=e;continue}for(let i of e){if(n>=t-1)return r+=`…\x1B[0m`,r;r+=i,n++}}return r}function V(e,t,n){let r=n-2,i=z(B(t,r),r);return e.vertical+` `+i+` `+e.vertical}function H(e,t){return e.teeLeft+e.horizontal.repeat(t)+e.teeRight}function xt(e,t,n,r){if(!n&&!r)return e.bottomLeft+e.horizontal.repeat(t)+e.bottomRight;let i=n?` ${n} `:``,a=r?` ${r} `:``,o=L(i),s=L(a);if(o+s>t){let e=Math.max(0,t-s);if(o>e&&(i=B(i,e),o=L(i)),o+s>t){let e=Math.max(0,t-o);a=B(a,e),s=L(a)}}let c=t-o-s;return e.bottomLeft+i+e.horizontal.repeat(Math.max(0,c))+a+e.bottomRight}function St(e,t){if(e.length===0)return``;if(e.length===1)return e[0]??``;let n=e.map(e=>L(e)),r=t-n.reduce((e,t)=>e+t,0),i=Math.max(2,Math.floor(r/(e.length-1))),a=Array.from({length:e.length});a[e.length-1]=n[e.length-1]??0;for(let t=e.length-2;t>=0;t--)a[t]=(a[t+1]??0)+(n[t]??0);let o=e[0]??``,s=n[0]??0;for(let r=1;r<e.length;r++){let c=t-s-(a[r]??0)-(e.length-1-r)*2,l=Math.max(2,Math.min(i,c));o+=` `.repeat(l)+(e[r]??``),s+=l+(n[r]??0)}return o}function U(e,t,n){if(!t)return e;if(!e)return t;let r=L(e),i=L(t),a=n-r-i;return a<2?`${e} ${t}`:e+` `.repeat(a)+t}function W(e,t,n){let r=Ke(t.hookData.model?.display_name||`Claude`).toLowerCase();return e.replace(/\{([^}]+)\}/g,(e,t)=>{if(n){let e=n[t];if(e!==void 0)return e}return t===`model`?r:``})}function Ct(e,t,n,r,i){let a=r?.left??`{model}`,o=r?.right,s=W(a,e,i),c=s?` ${s} `:``,l=L(c);if(!o){let e=n-l;return t.topLeft+c+t.horizontal.repeat(Math.max(0,e))+t.topRight}let u=W(o,e,i),d=u?` ${u} `:``,f=L(d),p=c,m=l,h=d,g=f;if(m+g>n){let e=Math.max(0,n-g);if(m>e&&(p=B(p,e),m=L(p)),m+g>n){let e=Math.max(0,n-m);h=B(h,e),g=L(h)}}let _=n-m-g;if(_<2){let e=n-m;return t.topLeft+p+t.horizontal.repeat(Math.max(0,e))+t.topRight}return t.topLeft+p+t.horizontal.repeat(_)+h+t.topRight}function G(e,t,n,r=60,i=80){return e>=i?n.contextCriticalFg:e>=r?n.contextWarningFg:t}function K(e,t,n,r,i){t=Math.max(5,t);let a=Math.max(0,Math.min(t,Math.round(e/100*t))),o=t-a;return R(n.bar_filled.repeat(a)+n.bar_empty.repeat(o),i,r)}function wt(e,t){if(!e.contextInfo)return{icon:``,label:`context`,bar:``,pct:``,tokens:``};let n=e.contextInfo.usablePercentage,r=N(e.contextInfo.totalTokens),i=N(e.contextInfo.maxTokens);return{icon:t.context_time,label:`context`,bar:` `,pct:`${n}%`,tokens:`${r}/${i}`}}function Tt(e,t,n,r,i,a){if(!e.contextInfo)return``;let o=e.contextInfo.usablePercentage;return K(o,t,n,r,G(o,a?.[`context.bar`]??a?.context??i.contextFg,i))}function Et(e,t,n,r,i,a,o){if(!e.blockInfo)return``;let s=e.blockInfo.nativeUtilization,c=a.budget?.block?.warningThreshold??80;return K(s,t,n,r,G(s,o?.[`block.bar`]??o?.block??i.blockFg,i,50,c))}function Dt(e,t,n,r,i,a){let o=e.hookData.rate_limits?.seven_day;if(!o)return``;let s=o.used_percentage;return K(s,t,n,r,G(s,a?.[`weekly.bar`]??a?.weekly??i.weeklyFg,i))}function Ot(e,t,n,r,i){if(!e.contextInfo)return null;let a=e.contextInfo.usablePercentage,o=` ${a}% ${N(e.contextInfo.totalTokens)}/${N(e.contextInfo.maxTokens)}`,s=Math.max(5,t-o.length),c=Math.max(0,Math.min(s,Math.round(a/100*s))),l=s-c,u=n.bar_filled.repeat(c)+n.bar_empty.repeat(l),d=G(a,i.contextFg,i);return R(`${u}${o}`,d,r)}function kt(e){return Ye(e.workspace?.current_dir||e.cwd||`/`)}function At(e,t,n,r,i){let a=[];e.blockInfo&&a.push(R(q(e.blockInfo,t,n),i.blockFg,r));let o=e.hookData.rate_limits?.seven_day;o&&a.push(R(J(o,t),i.weeklyFg,r)),e.usageInfo&&a.push(R(Lt(e.usageInfo,t,n),i.sessionFg,r)),e.todayInfo&&a.push(R(zt(e.todayInfo,t,n),i.todayFg,r));let s=jt(e,t);return s.length>0&&a.push(R(s.join(` · `),i.metricsFg,r)),a}function jt(e,t){let n=[];return e.metricsInfo&&(e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0&&n.push(`${t.metrics_duration} ${We(e.metricsInfo.sessionDuration)}`),e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0&&n.push(`${t.metrics_messages} ${e.metricsInfo.messageCount}`)),n}function Mt(e,t,n,r){let i=[],a=Gt(e,t);a&&i.push(R(a,r.gitFg,n));let o=qe(kt(e.hookData));return i.push(R(o,r.modeFg,n)),i}function Nt(e,t,n,r,i){let a=[];if(e.hookData.version&&a.push(R(`${t.version} v${e.hookData.version}`,i.versionFg,r)),e.tmuxSessionId&&a.push(R(`tmux:${e.tmuxSessionId}`,i.tmuxFg,r)),e.metricsInfo){let n=[];e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0&&n.push(`${t.metrics_response} ${Je(e.metricsInfo.responseTime)}`),e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0&&n.push(`${t.metrics_lines_added}${e.metricsInfo.linesAdded}`),e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0&&n.push(`${t.metrics_lines_removed}${e.metricsInfo.linesRemoved}`),n.length>0&&a.push(R(n.join(` · `),i.metricsFg,r))}let o=n.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(o&&o.variable){let e=globalThis.process?.env?.[o.variable];if(e){let t=o.prefix??o.variable;a.push(R(t?`${t}:${e}`:e,i.envFg,r))}}return a}function Pt(e,t,n){let r=`${Math.round(e.nativeUtilization)}%`,i=Xe(e.timeRemaining);return{icon:t.block_cost,label:`block`,value:r,time:i,budget:``,bar:` `}}function q(e,t,n){let r=Pt(e,t,n),i=`${r.icon} ${r.value}`;return r.time&&(i+=` · ${r.time}`),r.budget&&(i+=r.budget),i}function Ft(e,t){let n=`${Math.round(e.used_percentage)}%`,r=Ze(Qe(e.resets_at));return{icon:t.weekly_cost,label:`weekly`,pct:n,time:r,bar:` `}}function J(e,t){let n=Ft(e,t),r=`${n.icon} ${n.pct}`;return n.time&&(r+=` · ${n.time}`),r}function It(e,t,n){let r=e.session.tokens,i=r!==null&&r>0?N(r):``,a=``,o=n.budget?.session;return o?.amount&&e.session.cost!==null&&(a=P(e.session.cost,o.amount,o.warningThreshold||80).displayText),{icon:t.session_cost,label:`session`,cost:M(e.session.cost),tokens:i,budget:a}}function Lt(e,t,n){let r=It(e,t,n),i=`${r.icon} ${r.cost}`;return r.tokens&&(i+=` · ${r.tokens}`),r.budget&&(i+=r.budget),i}function Rt(e,t,n){let r=``,i=n.budget?.today;return i?.amount&&e.cost!==null&&(r=P(e.cost,i.amount,i.warningThreshold||80).displayText),{icon:t.today_cost,cost:M(e.cost),label:`today`,budget:r}}function zt(e,t,n){let r=Rt(e,t,n),i=`${r.icon} ${r.cost} ${r.label}`;return r.budget&&(i+=r.budget),i}function Bt(e,t){let n={response:``,responseIcon:``,responseVal:``,lastResponse:``,lastResponseIcon:``,lastResponseVal:``,added:``,addedIcon:``,addedVal:``,removed:``,removedIcon:``,removedVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0,i=r?Je(e.metricsInfo.responseTime):``,a=e.metricsInfo.lastResponseTime!==null&&!isNaN(e.metricsInfo.lastResponseTime)&&e.metricsInfo.lastResponseTime>0,o=a?Je(e.metricsInfo.lastResponseTime):``,s=e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0,c=s?`${e.metricsInfo.linesAdded}`:``,l=e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0,u=l?`${e.metricsInfo.linesRemoved}`:``;return{response:r?`${t.metrics_response} ${i}`:``,responseIcon:r?t.metrics_response:``,responseVal:i,lastResponse:a?`${t.metrics_last_response} ${o}`:`${t.metrics_last_response} --`,lastResponseIcon:t.metrics_last_response,lastResponseVal:a?o:`--`,added:s?`${t.metrics_lines_added}${c}`:``,addedIcon:s?t.metrics_lines_added:``,addedVal:c,removed:l?`${t.metrics_lines_removed}${u}`:``,removedIcon:l?t.metrics_lines_removed:``,removedVal:u}}function Vt(e,t){let n=Bt(e,t),r=[n.response,n.lastResponse,n.added,n.removed].filter(Boolean);return r.length>0?r.join(` · `):``}function Ht(e,t){let n={icon:``,duration:``,durationIcon:``,durationVal:``,messages:``,messagesIcon:``,messagesVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0,i=r?We(e.metricsInfo.sessionDuration):``,a=e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0,o=a?`${e.metricsInfo.messageCount}`:``;return{icon:t.activity,duration:r?`${t.metrics_duration} ${i}`:``,durationIcon:r?t.metrics_duration:``,durationVal:i,messages:a?`${t.metrics_messages} ${o}`:``,messagesIcon:a?t.metrics_messages:``,messagesVal:o}}function Ut(e,t){let n=Ht(e,t),r=[n.duration,n.messages].filter(Boolean);return r.length>0?r.join(` · `):``}function Wt(e,t){if(!e.gitInfo)return{icon:``,info:``,branch:``,status:``,ahead:``,behind:``,working:``,head:``};let n;n=e.gitInfo.status===`conflicts`?t.git_conflicts:e.gitInfo.status===`dirty`?t.git_dirty:t.git_clean;let r=e.gitInfo.ahead>0?`${t.git_ahead}${e.gitInfo.ahead}`:``,i=e.gitInfo.behind>0?`${t.git_behind}${e.gitInfo.behind}`:``,a=[];e.gitInfo.staged&&e.gitInfo.staged>0&&a.push(`+${e.gitInfo.staged}`),e.gitInfo.unstaged&&e.gitInfo.unstaged>0&&a.push(`~${e.gitInfo.unstaged}`),e.gitInfo.untracked&&e.gitInfo.untracked>0&&a.push(`?${e.gitInfo.untracked}`);let o=a.length>0?`(${a.join(` `)})`:``,s=[t.branch,e.gitInfo.branch,n];r&&s.push(r),i&&s.push(i);let c=[e.gitInfo.branch,n];return r&&c.push(r),i&&c.push(i),{icon:t.branch,info:c.join(` `),branch:e.gitInfo.branch,status:n,ahead:r,behind:i,working:o,head:s.join(` `)}}function Gt(e,t){let n=Wt(e,t);if(!n.icon)return``;let r=`${n.icon} ${n.branch} ${n.status}`;return n.ahead&&(r+=` ${n.ahead}`),n.behind&&(r+=`${n.behind}`),n.working&&(r+=` ${n.working}`),r}function Kt(e,t,n){return{icon:n.dir,value:qt(e,t)}}function qt(e,t){let n=kt(e.hookData),r=t.display.lines.map(e=>e.segments.directory).find(e=>e?.enabled),i=r?.style??(r?.showBasename?`basename`:`fish`);if(i===`basename`){let e=n.includes(`/`)?`/`:`\\`;return n.split(e).pop()||n}return i===`full`?n:qe(n)}function Jt(e,t){return e.hookData.version?{icon:t.version,value:`v${e.hookData.version}`}:{icon:``,value:``}}function Yt(e,t){let n=Jt(e,t);return n.icon?`${n.icon} ${n.value}`:``}function Xt(e){return e.tmuxSessionId?{label:`tmux`,value:e.tmuxSessionId}:{label:``,value:``}}function Zt(e){let t=Xt(e);return t.label?`${t.label}:${t.value}`:``}function Qt(e){let t=e.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(!t||!t.variable)return{prefix:``,value:``};let n=globalThis.process?.env?.[t.variable];return n?{prefix:(t.prefix??t.variable)||``,value:n}:{prefix:``,value:``}}function $t(e){let t=Qt(e);return t.value?t.prefix?`${t.prefix}:${t.value}`:t.value:``}function Y(e,t,n,r,i,a){for(let[o,s]of Object.entries(n)){let n=`${t}.${o}`,c=a?.[n]??a?.[t]??r;e[n]=s?R(s,c,i):``}}function en(e,t,n){let r=t.indexOf(`.`),i=r===-1?t:t.slice(0,r);return e.items.map(e=>{let t=e.match(/^\{(.+)\}$/);return t?n[`${i}.${t[1]}`]??``:e?R(e,``,``):``}).filter(Boolean)}function tn(e,t,n,r){if(e.length===0)return``;if(n===`between`&&r!==void 0&&e.length>1){let n=e.reduce((e,t)=>e+L(t),0),i=Math.max(t*(e.length-1),r-n),a=Math.floor(i/(e.length-1)),o=i%(e.length-1),s=e[0];for(let t=1;t<e.length;t++)s+=` `.repeat(a+(t<=o?1:0))+e[t];return s}return e.join(` `.repeat(t))}function nn(e,t){let{sym:n,config:r,reset:i,colors:a}=t,o=a.partFg,s=(e,t)=>e?R(e,t,i):``,c={},l=Ke(e.hookData.model?.display_name||`Claude`).toLowerCase(),u=o?.model??a.modelFg;if(c.model=s(`${n.model} ${l}`,u),Y(c,`model`,{icon:n.model,value:l},a.modelFg,i,o),c.context=Ot(e,t.contentWidth,n,i,a)??``,Y(c,`context`,wt(e,n),e.contextInfo?G(e.contextInfo.usablePercentage,a.contextFg,a):a.contextFg,i,o),e.blockInfo){let t=o?.block??a.blockFg;c.block=s(q(e.blockInfo,n,r),t),Y(c,`block`,Pt(e.blockInfo,n,r),a.blockFg,i,o)}else c.block=``;if(e.usageInfo){let t=o?.session??a.sessionFg;c.session=s(Lt(e.usageInfo,n,r),t),Y(c,`session`,It(e.usageInfo,n,r),a.sessionFg,i,o)}else c.session=``;if(e.todayInfo){let t=o?.today??a.todayFg;c.today=s(zt(e.todayInfo,n,r),t),Y(c,`today`,Rt(e.todayInfo,n,r),a.todayFg,i,o)}else c.today=``;let d=e.hookData.rate_limits?.seven_day;if(d){let e=o?.weekly??a.weeklyFg;c.weekly=s(J(d,n),e),Y(c,`weekly`,Ft(d,n),a.weeklyFg,i,o)}else c.weekly=``;let f=o?.git??a.gitFg;c.git=s(Gt(e,n),f),Y(c,`git`,Wt(e,n),a.gitFg,i,o);let p=o?.dir??a.modeFg;c.dir=s(qt(e,r),p),Y(c,`dir`,Kt(e,r,n),a.modeFg,i,o);let m=o?.version??a.versionFg;c.version=s(Yt(e,n),m),Y(c,`version`,Jt(e,n),a.versionFg,i,o);let h=o?.tmux??a.tmuxFg;c.tmux=s(Zt(e),h),Y(c,`tmux`,Xt(e),a.tmuxFg,i,o);let g=o?.metrics??a.metricsFg;c.metrics=s(Vt(e,n),g),Y(c,`metrics`,Bt(e,n),a.metricsFg,i,o);let _=o?.activity??a.metricsFg;c.activity=s(Ut(e,n),_),Y(c,`activity`,Ht(e,n),a.metricsFg,i,o);let v=o?.env??a.envFg;c.env=s($t(r),v),Y(c,`env`,Qt(r),a.envFg,i,o);let y={},b=r.display.tui?.segments;if(b)for(let[e,t]of Object.entries(b)){let n=en(t,e,c),r=t.gap??1,i=t.justify??`start`;y[e]={items:n,gap:r,justify:i},c[e]=tn(n,r,i===`between`?`start`:i)}return{data:c,templates:y}}function rn(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=At(n,o,s,c,l);u.length>0&&t.push(V(r,St(u,i),a))}function an(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=Mt(n,o,c,l),d=Nt(n,o,s,c,l),f=u.join(` `),p=d.join(` · `);(f||p)&&(t.push(H(r,a)),t.push(V(r,U(f,p,i),a)))}function on(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=[],d=[];n.blockInfo&&u.push(R(q(n.blockInfo,o,s),l.blockFg,c));let f=n.hookData.rate_limits?.seven_day;f&&u.push(R(J(f,o),l.weeklyFg,c)),n.todayInfo&&u.push(R(zt(n.todayInfo,o,s),l.todayFg,c)),n.usageInfo&&d.push(R(Lt(n.usageInfo,o,s),l.sessionFg,c));let p=jt(n,o);p.length>0&&d.push(R(p.join(` · `),l.metricsFg,c)),u.length>0&&t.push(V(r,St(u,i),a)),d.length>0&&t.push(V(r,U(d[0]??``,d[1]??``,i),a))}function sn(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=Mt(n,o,c,l);u.length>0&&(t.push(H(r,a)),t.push(V(r,U(u[0]??``,u[1]??``,i),a)));let d=Nt(n,o,s,c,l);d.length>0&&(t.push(H(r,a)),t.push(V(r,d.join(` · `),a)))}function cn(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e;n.blockInfo&&t.push(V(r,R(q(n.blockInfo,o,s),l.blockFg,c),a));let u=n.hookData.rate_limits?.seven_day;u&&t.push(V(r,R(J(u,o),l.weeklyFg,c),a));let d=[];n.usageInfo&&d.push(R(`${o.session_cost} ${M(n.usageInfo.session.cost)}`,l.sessionFg,c)),n.todayInfo&&d.push(R(`${o.today_cost} ${M(n.todayInfo.cost)} today`,l.todayFg,c)),d.length>0&&t.push(V(r,U(d[0]??``,d[1]??``,i),a))}function ln(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=Mt(n,o,c,l);u.length>0&&(t.push(H(r,a)),t.push(V(r,U(u[0]??``,u[1]??``,i),a)));let d=Nt(n,o,s,c,l);d.length>0&&t.push(V(r,d.join(` · `),a))}const un=new Set([`context`,`context.bar`,`block.bar`,`weekly.bar`]);function X(e){return e.length===1&&e[0].segment===`---`}function Z(e){if(!e.endsWith(`fr`))return 0;let t=parseInt(e.replace(`fr`,``),10);return!isNaN(t)&&t>0?t:0}function dn(e,t,n){let r=Math.floor(e/t.length),i=e-r*t.length;for(let e of t)n[e]=n[e]+r+(i>0?1:0),i>0&&i--}function fn(e,t,n,r){let i=0;for(let r=0;r<n;r++)i+=e[t+r]??0;return n>1&&(i+=(n-1)*r),i}function pn(e,t){let n;for(let r of e)t>=r.minWidth&&(!n||r.minWidth>n.minWidth)&&(n=r);if(n)return n;let r=e[0];for(let t=1;t<e.length;t++)e[t].minWidth<r.minWidth&&(r=e[t]);return r}function mn(e){let t=[];for(let n of e){let e=n.trim();if(e===`---`){t.push([{segment:`---`,spanStart:!0,spanSize:1}]);continue}let r=e.split(/\s+/),i=[],a=0;for(;a<r.length;){let e=r[a],t=1;for(;a+t<r.length&&r[a+t]===e;)t++;i.push({segment:e,spanStart:!0,spanSize:t});for(let n=1;n<t;n++)i.push({segment:e,spanStart:!1,spanSize:0});a+=t}t.push(i)}return t}function hn(e,t){let n=e.map(e=>X(e)?e:e.map(e=>e.segment===`.`||e.segment===`---`||t[e.segment]?e:{segment:`.`,spanStart:!0,spanSize:1})).map(e=>{if(X(e))return e;let t=e.map(e=>e.segment),n=[],r=0;for(;r<t.length;){let e=t[r],i=1;for(;r+i<t.length&&t[r+i]===e;)i++;n.push({segment:e,spanStart:!0,spanSize:i});for(let t=1;t<i;t++)n.push({segment:e,spanStart:!1,spanSize:0});r+=i}return n}).filter(e=>X(e)?!0:e.some(e=>e.segment!==`.`)),r=[];for(let e=0;e<n.length;e++){let t=n[e];if(!X(t)){r.push(t);continue}r.length!==0&&(X(r[r.length-1])||r.push(t))}return r.length>0&&X(r[r.length-1])&&r.pop(),r}function gn(e,t,n,r){let i=Array.from({length:e}).fill(0);for(let a of t)if(!X(a))for(let t=0;t<a.length;t++){let o=a[t];if(!o.spanStart||o.spanSize!==1||o.segment===`.`||t>=e||r?.has(o.segment))continue;let s=L(n[o.segment]||``);s>i[t]&&(i[t]=s)}return i}function _n(e,t,n,r,i,a){let o=e.length,s=gn(o,t,n,a),c=Array.from({length:o}).fill(0);for(let t=0;t<o;t++)e[t]===`auto`&&(c[t]=s[t]);for(let t=0;t<o;t++){let n=e[t];if(n===`auto`||n.endsWith(`fr`))continue;let r=parseInt(n,10);!isNaN(r)&&r>0&&(c[t]=r)}for(let t=0;t<o;t++)c[t]<1&&!e[t].endsWith(`fr`)&&(c[t]=1);let l=Math.max(0,o-1)*i,u=c.reduce((e,t)=>e+t,0),d=Math.max(0,r-u-l),f=0;for(let t of e)f+=Z(t);if(f>0){let t=d/f,n=[],r=0;for(let i=0;i<o;i++){let a=Z(e[i]);if(a>0){let e=Math.floor(t*a);c[i]=e,r+=e,n.push(i)}}let i=d-r;for(let e=0;i>0&&e<n.length;e++)c[n[e]]+=1,i--}return c}function vn(e,t,n,r,i,a){let o=e.length,s=gn(o,t,n,a),c=Array.from({length:o});for(let t=0;t<o;t++){let n=e[t];if(n!==`auto`&&!n.endsWith(`fr`)){let e=parseInt(n,10);c[t]=!isNaN(e)&&e>0?e:s[t]}else c[t]=s[t]}for(let i of t)if(!X(i))for(let t=0;t<i.length;t++){let a=i[t];if(!a.spanStart||a.spanSize<=1||a.segment===`.`)continue;let o=L(n[a.segment]||``),s=fn(c,t,a.spanSize,r);if(o>s){let n=o-s,r=[];for(let n=0;n<a.spanSize;n++)Z(e[t+n])>0&&r.push(t+n);if(r.length>0)dn(n,r,c);else{let e=[];for(let n=0;n<a.spanSize;n++)e.push(t+n);dn(n,e,c)}}}for(let e=0;e<o;e++)c[e]<1&&(c[e]=1);let l=0;for(let e=0;e<o;e++)l+=c[e];let u=Math.max(0,o-1)*r,d=2+Math.max(0,1-i)*2,f=o*i*2;return{panelWidth:l+u+d+f,colWidths:c}}function yn(e,t,n){switch(n){case`right`:return yt(e,t);case`center`:return bt(e,t);default:return z(e,t)}}function bn(e,t,n,r,i,a=0,o){let s=[],c=L(i),l=a;for(let i=0;i<e.length;i++){let a=e[i];if(!a.spanStart)continue;let u=fn(t,i,a.spanSize,c),d=i+a.spanSize-1,f=n[i]===`right`?o?.[i]??0:0,p=n[d]===`left`?o?.[d]??0:0,m=l-f,h=l-p,g=0;for(let e=i;e<d;e++){let t=n[e]===`left`?o?.[e]??0:0,r=n[e+1]===`right`?o?.[e+1]??0:0;g+=l-t+(l-r)}let _=u+g;if(a.segment===`.`)s.push(` `.repeat(_+m+h));else{let e=yn(B(r[a.segment]||``,_),_,n[i]||`left`),t=m>0?` `.repeat(m):``,o=h>0?` `.repeat(h):``;s.push(t+e+o)}}return s.join(i)}function xn(e,t,n){let r=n||e.horizontal;return e.teeLeft+r.repeat(t)+e.teeRight}function Sn(e,t,n,r,i){let a=e.minWidth??32,o=e.maxWidth??1/0,s=e.separator?.column??` `,c=e.separator?.divider,l=L(s),u=e.fitContent??!1,d=e.padding?.horizontal??0,f=e.widthReserve??45,p=Math.min(o,Math.max(a,r-f)),m=pn(e.breakpoints,p),h;h=u?o===1/0?r:Math.min(r,o):p;let g=hn(mn(m.areas),t);if(g.length===0)return{lines:[],panelWidth:h};let _,v=new Set(un);if(e.segments)for(let t of Object.keys(e.segments))v.add(t);if(u){let e=vn(m.columns,g,t,l,d,v);h=Math.min(o,Math.max(a,e.panelWidth)),_=e.colWidths;let n=h-e.panelWidth;if(n>0){let e=0;for(let t of m.columns)e+=Z(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Z(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}else{let e=h-2-Math.max(0,1-d)*2-m.columns.length*d*2;_=_n(m.columns,g,t,e,l,v)}let y=h-2,b=Math.max(1,d)-d,x=b>0?` `.repeat(b):``,S=y-b*2,C=m.align||m.columns.map(()=>`left`),w=Array(m.columns.length).fill(0);if(d>0){let e=Array(m.columns.length).fill(0);for(let n of g)if(!X(n))for(let r=0;r<n.length;r++){let i=n[r];if(!i.spanStart||i.spanSize!==1||i.segment===`.`||v.has(i.segment))continue;let a=L(t[i.segment]||``);a>e[r]&&(e[r]=a)}let n=0;for(let t=0;t<m.columns.length;t++){if(Z(m.columns[t])>0||e[t]<=0)continue;let r=_[t]-e[t];r<=0||(w[t]=Math.min(d,r),n+=w[t])}if(n>0){let e=0;for(let t of m.columns)e+=Z(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Z(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}function ee(e,t){let n=0;for(let r=e;r<e+t-1;r++){let e=C[r]===`left`?w[r]??0:0,t=C[r+1]===`right`?w[r+1]??0:0;n+=d-e+(d-t)}return n}if(i){let e=new Set;for(let n of g)if(!X(n))for(let r=0;r<n.length;r++){let a=n[r];if(!a.spanStart||a.segment===`.`||a.segment===`---`||e.has(a.segment))continue;e.add(a.segment);let o=fn(_,r,a.spanSize,l),s=ee(r,a.spanSize),c=i(a.segment,o+s);c!==void 0&&(t[a.segment]=c)}}let te=hn(g,t);if(te.length===0)return{lines:[],panelWidth:h};let T=[];for(let e of te)if(X(e))T.push(xn(n,y,c));else{let r=z(B(bn(e,_,C,t,s,d,w),S),S);T.push(n.vertical+x+r+x+n.vertical)}return{lines:T,panelWidth:h}}const Cn=`\x1B[?2026h`,wn=`\x1B[?2026l`,Tn=`\x1B[0m`;function En(e){return e>=80?`wide`:e>=55?`medium`:`narrow`}function Dn(e){return e&&e>0?Math.max(32,e):80}async function On(e,t,n,r,i,a){let o=(i.display.charset||`unicode`)===`text`?lt:ot,s=e.colors;if(i.display.tui){let r=i.display.tui,c=r.terminalWidth??a?.rawTerminalWidth??120,l;l=typeof r.box==`string`?I[r.box]??t:r.box?{...t,...r.box}:t;let u=Math.max(r.minWidth??32,c-(r.widthReserve??45))-2,d=u-2,f=nn(e,{lines:[],data:e,box:l,contentWidth:d,innerWidth:u,sym:o,config:i,reset:n,colors:s}),p=f.data,m=f.templates,h=s.partFg,g=Sn(r,p,l,c,(t,r)=>{if(t===`context`)return Ot(e,r,o,n,s)??``;if(t===`context.bar`)return Tt(e,r,o,n,s,h);if(t===`block.bar`)return Et(e,r,o,n,s,i,h);if(t===`weekly.bar`)return Dt(e,r,o,n,s,h);let a=m[t];if(a)return tn(a.items,a.gap,a.justify,r)}),_=g.panelWidth-2,v=r.footer?.left?W(r.footer.left,e,p):void 0,y=r.footer?.right?W(r.footer.right,e,p):void 0,b=[];return b.push(Ct(e,l,_,r.title,p)),b.push(...g.lines),b.push(xt(l,_,v,y)),Cn+b.map(e=>Tn+e).join(`
|
|
7
|
+
`).filter(e=>e.trim()),r=[];for(let e of n)try{let t=JSON.parse(e);if(t.isSidechain===!0)continue;r.push(t)}catch(e){O(`Failed to parse JSONL line: ${e}`);continue}return O(`Loaded ${r.length} transcript entries`),r}catch(t){return O(`Error loading transcript for ${e}:`,t),[]}}calculateMessageCount(e){return e.filter(e=>{let t=e.type||e.message?.role||e.message?.type,n=e.type===`user`&&e.message?.content?.[0]?.type===`tool_result`;return t===`user`&&!n}).length}calculateLastResponseTime(e){if(e.length===0)return null;let t=e.slice(-20),n=null,r=null;for(let e of t)if(e.timestamp)try{let t=new Date(e.timestamp),i=e.type||e.message?.role||e.message?.type,a=e.type===`user`&&e.message?.content?.[0]?.type===`tool_result`;if(i===`user`&&!a)n=t;else if(i===`assistant`&&n){let e=(t.getTime()-n.getTime())/1e3;e>.1&&e<300&&(r=e)}}catch{continue}return r}async getMetricsInfo(e,t){try{if(O(`Getting metrics from hook data for session: ${e}`),!t.cost)return O(`No cost data available in hook data`),{responseTime:null,lastResponseTime:null,sessionDuration:null,messageCount:null,linesAdded:null,linesRemoved:null};let n=await this.loadTranscriptEntries(e),r=this.calculateMessageCount(n),i=this.calculateLastResponseTime(n);return{responseTime:t.cost.total_api_duration_ms/1e3,lastResponseTime:i,sessionDuration:t.cost.total_duration_ms/1e3,messageCount:r,linesAdded:t.cost.total_lines_added,linesRemoved:t.cost.total_lines_removed}}catch(t){return O(`Error getting metrics from hook data for session ${e}:`,t),{responseTime:null,lastResponseTime:null,sessionDuration:null,messageCount:null,linesAdded:null,linesRemoved:null}}}};function M(e){return e===null?`$0.00`:e<.01?`<$0.01`:`$${e.toFixed(2)}`}function Ve(e){return e===null||e===0?`0 tokens`:e>=1e6?`${(e/1e6).toFixed(1)}M tokens`:e>=1e3?`${(e/1e3).toFixed(1)}K tokens`:`${e} tokens`}function He(e){if(!e)return`0 tokens`;let t=[];if(e.input>0&&t.push(`${N(e.input)} in`),e.output>0&&t.push(`${N(e.output)} out`),e.cacheCreation>0||e.cacheRead>0){let n=e.cacheCreation+e.cacheRead;t.push(`${N(n)} cached`)}return t.length>0?t.join(` + `):`0 tokens`}function Ue(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:e<86400?`${Math.floor(e/3600)}h`:e<604800?`${Math.floor(e/86400)}d`:`${Math.floor(e/604800)}w`}function We(e){return e<60?`${e.toFixed(0)}s`:e<3600?`${(e/60).toFixed(0)}m`:e<86400?`${(e/3600).toFixed(1)}h`:`${(e/86400).toFixed(1)}d`}const Ge=/^(?:(?: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;function Ke(e){if(!e)return`Claude`;let t=e.trim().match(Ge);if(!t?.groups)return e;let{family:n,newMajor:r,newMinor:i,oldMajor:a,oldMinor:o,oldFamily:s}=t.groups,c=n||s,l=r||a,u=i||o;return c&&l?`${c.charAt(0).toUpperCase()+c.slice(1).toLowerCase()} ${u?`${l}.${u}`:l}`:e}function qe(e){let t=e.includes(`/`)?`/`:`\\`,n=e.split(t);return n.map((e,t)=>t===n.length-1||e===`~`||e===``?e:e.charAt(0)).join(t)}function Je(e){return e<60?`${e.toFixed(1)}s`:`${(e/60).toFixed(1)}m`}function N(e){return Ve(e).replace(` tokens`,``)}function Ye(e,t){let n=t??globalThis.process?.env?.HOME??globalThis.process?.env?.USERPROFILE;return n&&e.startsWith(n)?e.replace(n,`~`):e}function Xe(e){let t=Math.floor(e/60),n=e%60;return t>0?`${t}h ${n}m left`:`${n}m left`}function Ze(e){if(e>=1440){let t=Math.floor(e/1440),n=Math.floor(e%1440/60);return n>0?`${t}d ${n}h`:`${t}d`}else if(e>=60){let t=Math.floor(e/60),n=e%60;return n>0?`${t}h ${n}m`:`${t}h`}return`${e}m`}function Qe(e){return Math.round(Math.max(0,e*1e3-Date.now())/6e4)}function $e(e,t){return!t||t<=0||e<0?null:Math.min(100,e/t*100)}function P(e,t,n=80){let r=$e(e,t);if(r===null)return{percentage:null,isWarning:!1,displayText:``};let i=`${r.toFixed(0)}%`,a=r>=n,o=``;return o=a?` !${i}`:r>=50?` +${i}`:` ${i}`,{percentage:r,isWarning:a,displayText:o}}const et={ball:{filled:`─`,empty:`─`,marker:`●`},blocks:{filled:`█`,empty:`░`},"blocks-line":{filled:`█`,empty:`─`},capped:{filled:`━`,empty:`┄`,cap:`╸`},dots:{filled:`●`,empty:`○`},filled:{filled:`■`,empty:`□`},geometric:{filled:`▰`,empty:`▱`},line:{filled:`━`,empty:`┄`},squares:{filled:`◼`,empty:`◻`}};var tt=class{constructor(e,t){this.config=e,this.symbols=t}renderDirectory(e,t,n){let r=e.workspace?.current_dir||e.cwd||`/`,i=e.workspace?.project_dir,a=n?.style??(n?.showBasename?`basename`:`full`);if(a===`basename`)return{text:r.split(/[\\/]/).pop()||`root`,bgColor:t.modeBg,fgColor:t.modeFg};let o=Ye(r),s=i&&Ye(i),c=this.getDisplayDirectoryName(o,s);return a===`fish`&&(c=qe(c)),{text:c,bgColor:t.modeBg,fgColor:t.modeFg}}renderGit(e,t,n){if(!e)return null;let r=[];if(n?.showRepoName&&e.repoName&&(r.push(e.repoName),e.isWorktree&&r.push(this.symbols.git_worktree)),n?.showOperation&&e.operation&&r.push(`[${e.operation}]`),r.push(`${this.symbols.branch} ${e.branch}`),n?.showTag&&e.tag&&r.push(`${this.symbols.git_tag} ${e.tag}`),n?.showSha&&e.sha&&r.push(`${this.symbols.git_sha} ${e.sha}`),n?.showAheadBehind!==!1&&(e.ahead>0&&e.behind>0?r.push(`${this.symbols.git_ahead}${e.ahead}${this.symbols.git_behind}${e.behind}`):e.ahead>0?r.push(`${this.symbols.git_ahead}${e.ahead}`):e.behind>0&&r.push(`${this.symbols.git_behind}${e.behind}`)),n?.showWorkingTree){let t=[];e.staged&&e.staged>0&&t.push(`+${e.staged}`),e.unstaged&&e.unstaged>0&&t.push(`~${e.unstaged}`),e.untracked&&e.untracked>0&&t.push(`?${e.untracked}`),e.conflicts&&e.conflicts>0&&t.push(`!${e.conflicts}`),t.length>0&&r.push(`(${t.join(` `)})`)}if(n?.showUpstream&&e.upstream&&r.push(`${this.symbols.git_upstream}${e.upstream}`),n?.showStashCount&&e.stashCount&&e.stashCount>0&&r.push(`${this.symbols.git_stash} ${e.stashCount}`),n?.showTimeSinceCommit&&e.timeSinceCommit!==void 0){let t=Ue(e.timeSinceCommit);r.push(`${this.symbols.git_time} ${t}`)}let i=this.symbols.git_clean;return e.status===`conflicts`?i=this.symbols.git_conflicts:e.status===`dirty`&&(i=this.symbols.git_dirty),r.push(i),{text:r.join(` `),bgColor:t.gitBg,fgColor:t.gitFg}}renderModel(e,t){let n=Ke(e.model?.display_name||`Claude`);return{text:`${this.symbols.model} ${n}`,bgColor:t.modelBg,fgColor:t.modelFg}}renderSession(e,t,n){let r=n?.type||`cost`,i=n?.costSource,a=this.config.budget?.session,o=this.formatUsageWithBudget(i===`calculated`?e.session.calculatedCost:i===`official`?e.session.officialCost:e.session.cost,e.session.tokens,e.session.tokenBreakdown,r,a?.amount,a?.warningThreshold||80,a?.type);return{text:`${this.symbols.session_cost} ${o}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderSessionId(e,t,n){return{text:n?.showIdLabel===!1?e:`${this.symbols.session_id} ${e}`,bgColor:t.sessionBg,fgColor:t.sessionFg}}renderTmux(e,t){return e?{text:`tmux:${e}`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}:{text:`tmux:none`,bgColor:t.tmuxBg,fgColor:t.tmuxFg}}renderContext(e,t,n){let r=n?.displayStyle??`text`,i=r===`text`?`remaining`:`used`,a=n?.percentageMode??i,o=this.resolveBarStyleDef(r),s=a===`remaining`?`100%`:`0%`;if(!e)return o?{text:`${o.empty.repeat(10)} ${s}`,bgColor:t.contextBg,fgColor:t.contextFg}:{text:`${this.symbols.context_time} 0 (${s})`,bgColor:t.contextBg,fgColor:t.contextFg};let c=t.contextBg,l=t.contextFg;e.contextLeftPercentage<=20?(c=t.contextCriticalBg,l=t.contextCriticalFg):e.contextLeftPercentage<=40&&(c=t.contextWarningBg,l=t.contextWarningFg);let u=a===`remaining`?e.contextLeftPercentage:e.usablePercentage,d=Math.round(e.usablePercentage/100*10),f=10-d;if(o){let t=this.buildBar(o,d,f,10);return{text:n?.showPercentageOnly?`${t} ${u}%`:`${t} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}return{text:n?.showPercentageOnly?`${this.symbols.context_time} ${u}%`:`${this.symbols.context_time} ${e.totalTokens.toLocaleString()} (${u}%)`,bgColor:c,fgColor:l}}buildBar(e,t,n,r){if(e.marker){let n=Math.min(t,r-1);return e.filled.repeat(n)+e.marker+e.empty.repeat(r-n-1)}return e.cap?t===0?e.cap+e.empty.repeat(r-1):t>=r?e.filled.repeat(r):e.filled.repeat(t-1)+e.cap+e.empty.repeat(n):e.filled.repeat(t)+e.empty.repeat(n)}resolveBarStyleDef(e){return e===`bar`?{filled:this.symbols.bar_filled,empty:this.symbols.bar_empty}:et[e]??null}formatPercentageWithBar(e,t,n){let r=t??`text`,i=this.resolveBarStyleDef(r);if(i){let t=Math.round(e/100*10),r=10-t,a=this.buildBar(i,t,r,10);return n?`${a} ${e}% (${n})`:`${a} ${e}%`}return n?`${e}% (${n})`:`${e}%`}renderMetrics(e,t,n){if(!e)return{text:`${this.symbols.metrics_response} new`,bgColor:t.metricsBg,fgColor:t.metricsFg};let r=[];if(n?.showLastResponseTime&&e.lastResponseTime!==null){let t=e.lastResponseTime<60?`${e.lastResponseTime.toFixed(1)}s`:`${(e.lastResponseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_last_response} ${t}`)}if(n?.showResponseTime!==!1&&e.responseTime!==null){let t=e.responseTime<60?`${e.responseTime.toFixed(1)}s`:`${(e.responseTime/60).toFixed(1)}m`;r.push(`${this.symbols.metrics_response} ${t}`)}if(n?.showDuration!==!1&&e.sessionDuration!==null){let t=We(e.sessionDuration);r.push(`${this.symbols.metrics_duration} ${t}`)}return n?.showMessageCount!==!1&&e.messageCount!==null&&r.push(`${this.symbols.metrics_messages} ${e.messageCount}`),n?.showLinesAdded!==!1&&e.linesAdded!==null&&e.linesAdded>0&&r.push(`${this.symbols.metrics_lines_added} ${e.linesAdded}`),n?.showLinesRemoved!==!1&&e.linesRemoved!==null&&e.linesRemoved>0&&r.push(`${this.symbols.metrics_lines_removed} ${e.linesRemoved}`),r.length===0?{text:`${this.symbols.metrics_response} active`,bgColor:t.metricsBg,fgColor:t.metricsFg}:{text:r.join(` `),bgColor:t.metricsBg,fgColor:t.metricsFg}}renderBlock(e,t,n){let r=Math.round(e.nativeUtilization),i=Ze(e.timeRemaining),a=this.config.budget?.block?.warningThreshold??80,o=t.blockBg,s=t.blockFg;return r>=a?(o=t.contextCriticalBg,s=t.contextCriticalFg):r>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.block_cost} ${this.formatPercentageWithBar(r,n?.displayStyle,i)}`,bgColor:o,fgColor:s}}renderWeekly(e,t,n){let r=e.rate_limits?.seven_day;if(!r)return null;let i=Math.round(r.used_percentage),a=Ze(Qe(r.resets_at)),o=t.weeklyBg,s=t.weeklyFg;return i>=80?(o=t.contextCriticalBg,s=t.contextCriticalFg):i>=50&&(o=t.contextWarningBg,s=t.contextWarningFg),{text:`${this.symbols.weekly_cost} ${this.formatPercentageWithBar(i,n?.displayStyle,a)}`,bgColor:o,fgColor:s}}renderToday(e,t,n=`cost`){let r=this.config.budget?.today;return{text:`${this.symbols.today_cost} ${this.formatUsageWithBudget(e.cost,e.tokens,e.tokenBreakdown,n,r?.amount,r?.warningThreshold,r?.type)}`,bgColor:t.todayBg,fgColor:t.todayFg}}getDisplayDirectoryName(e,t){return e.startsWith(`~`)?e:t&&t!==e&&e.startsWith(t)?e.slice(t.length+1)||t.split(/[\\/]/).pop()||`project`:e}formatUsageDisplay(e,t,n,r){switch(r){case`cost`:return M(e);case`tokens`:return Ve(t);case`both`:return`${M(e)} (${Ve(t)})`;case`breakdown`:return He(n);default:return M(e)}}formatUsageWithBudget(e,t,n,r,i,a=80,o){let s=this.formatUsageDisplay(e,t,n,r);if(i&&i>0){let n=null;if(o===`tokens`&&t!==null?n=t:(o===`cost`&&e!==null||!o&&e!==null)&&(n=e),n!==null)return s+P(n,i,a).displayText}return s}renderVersion(e,t,n){return e.version?{text:`${this.symbols.version} v${e.version}`,bgColor:t.versionBg,fgColor:t.versionFg}:null}renderEnv(e,t){let n=globalThis.process?.env?.[t.variable];if(!n)return null;let r=t.prefix??t.variable;return{text:r?`${this.symbols.env} ${r}: ${n}`:`${this.symbols.env} ${n}`,bgColor:e.envBg,fgColor:e.envFg}}},nt=class{async getActiveBlockInfo(e){let t=e?.rate_limits?.five_hour;if(!t)return O(`Block segment: No native rate_limits data available`),null;let n=Qe(t.resets_at);return O(`Block segment: Using native rate_limits: ${t.used_percentage}%, resets in ${n}m`),{nativeUtilization:t.used_percentage,timeRemaining:n}}};function F(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function rt(e){return e.inputTokens+e.outputTokens+e.cacheCreationInputTokens+e.cacheReadInputTokens}function it(e){return{timestamp:e.timestamp,usage:{inputTokens:e.message?.usage?.input_tokens||0,outputTokens:e.message?.usage?.output_tokens||0,cacheCreationInputTokens:e.message?.usage?.cache_creation_input_tokens||0,cacheReadInputTokens:e.message?.usage?.cache_read_input_tokens||0},costUSD:e.costUSD||0,model:e.message?.model||`unknown`}}var at=class{async loadTodayEntries(){let e=F(new Date);O(`Today segment: Loading entries for date ${e}`);let t=await A.getLatestTranscriptMtime(),n=await A.getUsageCache(`today`,t);if(n)return O(`Using shared today usage cache`),n;let r=new Date;r.setDate(r.getDate()-1),r.setHours(0,0,0,0);let i=(e,t)=>t>=r,a=new Date;a.setHours(0,0,0,0);let o=await Pe(e=>e.timestamp>=a,i,!0),s=[],c=0;for(let t of o)if(F(t.timestamp)===e&&t.message?.usage){let e=it(t);!e.costUSD&&t.raw&&(e.costUSD=await Fe.calculateCostForEntry(t.raw)),s.push(e),c++}return O(`Today segment: Found ${c} entries for today (${e})`),await A.setUsageCache(`today`,s,t),s}async getTodayEntries(){try{return await this.loadTodayEntries()}catch(e){return O(`Error loading today's entries:`,e),[]}}async getTodayInfo(){try{let e=await this.getTodayEntries();if(e.length===0)return{cost:null,tokens:null,tokenBreakdown:null,date:F(new Date)};let t=e.reduce((e,t)=>e+t.costUSD,0),n=e.reduce((e,t)=>e+rt(t.usage),0),r=e.reduce((e,t)=>({input:e.input+t.usage.inputTokens,output:e.output+t.usage.outputTokens,cacheCreation:e.cacheCreation+t.usage.cacheCreationInputTokens,cacheRead:e.cacheRead+t.usage.cacheReadInputTokens}),{input:0,output:0,cacheCreation:0,cacheRead:0});return O(`Today segment: $${t.toFixed(2)}, ${n} tokens total`),{cost:t,tokens:n,tokenBreakdown:r,date:F(new Date)}}catch(e){return O(`Error getting today's info:`,e),{cost:null,tokens:null,tokenBreakdown:null,date:F(new Date)}}}};const ot={right:``,left_rounded:``,right_rounded:``,branch:`⎇`,model:`✱`,git_clean:`✓`,git_dirty:`●`,git_conflicts:`⚠`,git_ahead:`↑`,git_behind:`↓`,git_worktree:`⧉`,git_tag:`⌂`,git_sha:`♯`,git_upstream:`→`,git_stash:`⧇`,git_time:`◷`,session_cost:`§`,block_cost:`◱`,today_cost:`☉`,context_time:`◔`,metrics_response:`⧖`,metrics_last_response:`Δ`,metrics_duration:`⧗`,metrics_messages:`◆`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`↗`,version:`◈`,bar_filled:`▪`,bar_empty:`▫`,env:`⚙`,session_id:`⌗`,weekly_cost:`◑`,dir:`📁`,activity:`⚡`},st={topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},ct={topLeft:`+`,topRight:`+`,bottomLeft:`+`,bottomRight:`+`,horizontal:`-`,vertical:`|`,teeLeft:`+`,teeRight:`+`},I={rounded:st,square:{topLeft:`┌`,topRight:`┐`,bottomLeft:`└`,bottomRight:`┘`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`},heavy:{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`━`,vertical:`┃`,teeLeft:`┣`,teeRight:`┫`},double:{topLeft:`╔`,topRight:`╗`,bottomLeft:`╚`,bottomRight:`╝`,horizontal:`═`,vertical:`║`,teeLeft:`╠`,teeRight:`╣`},dashed:{topLeft:`╭`,topRight:`╮`,bottomLeft:`╰`,bottomRight:`╯`,horizontal:`┄`,vertical:`┊`,teeLeft:`├`,teeRight:`┤`},"heavy-dashed":{topLeft:`┏`,topRight:`┓`,bottomLeft:`┗`,bottomRight:`┛`,horizontal:`┅`,vertical:`┇`,teeLeft:`┣`,teeRight:`┫`},mixed:{topLeft:`┍`,topRight:`┑`,bottomLeft:`┕`,bottomRight:`┙`,horizontal:`━`,vertical:`│`,teeLeft:`┝`,teeRight:`┥`},ascii:ct,invisible:{topLeft:` `,topRight:` `,bottomLeft:` `,bottomRight:` `,horizontal:` `,vertical:` `,teeLeft:` `,teeRight:` `}},lt={right:``,left_rounded:``,right_rounded:``,branch:`~`,model:`M`,git_clean:`=`,git_dirty:`*`,git_conflicts:`!`,git_ahead:`^`,git_behind:`v`,git_worktree:`W`,git_tag:`T`,git_sha:`#`,git_upstream:`>>`,git_stash:`S`,git_time:`@`,session_cost:`S`,block_cost:`B`,today_cost:`D`,context_time:`C`,metrics_response:`R`,metrics_last_response:`L`,metrics_duration:`T`,metrics_messages:`#`,metrics_lines_added:`+`,metrics_lines_removed:`-`,metrics_burn:`~/h`,version:`V`,bar_filled:`=`,bar_empty:`-`,env:`$`,session_id:`#`,weekly_cost:`W`,dir:`D`,activity:`A`},ut=RegExp(`\x1B\\[[0-9;]*m`,`g`),dt=RegExp(`(\x1B\\[[0-9;]*m)`);function ft(e){return e.replace(ut,``)}function L(e){return ft(e).length}const pt=/^[a-zA-Z0-9/]+$/;function mt(){if(process.platform===`win32`)return null;let e=process.pid.toString();for(let t=0;t<10;t++)try{let t=i(`ps -o ppid=,tty= -p ${e}`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim().split(/\s+/),n=t[0],r=t[1];if(r&&r!==`?`&&r!==`??`&&pt.test(r))return r;if(!n||n===`1`||n===`0`)break;e=n}catch{break}return null}function ht(){try{let e=i(`mode con`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],windowsHide:!0}).match(/Columns:\s*(\d+)/i);if(e?.[1]){let t=parseInt(e[1],10);if(!isNaN(t)&&t>0)return t}}catch{}return null}function gt(){let e=mt();if(e)try{let t=i(`stty size < /dev/${e}`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],shell:`/bin/sh`}).trim().split(` `)[1];if(t){let e=parseInt(t,10);if(!isNaN(e)&&e>0)return e}}catch{}try{let e=i(`tput cols 2>/dev/null`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim(),t=parseInt(e,10);if(!isNaN(t)&&t>0)return t}catch{}return null}function _t(){let e=e=>Math.max(1,e-45),t=process.env.COLUMNS;if(t){let n=parseInt(t,10);if(!isNaN(n)&&n>0)return e(n)}if(process.stdout.columns&&process.stdout.columns>0)return e(process.stdout.columns);if(process.platform===`win32`){let t=ht();if(t)return e(t)}let n=gt();return n?e(n):null}function vt(){return process.platform===`win32`?ht():gt()}function R(e,t,n){return t?`${t}${e}${n}`:e}function z(e,t){let n=L(e);return n>=t?e:e+` `.repeat(t-n)}function yt(e,t){let n=L(e);return n>=t?e:` `.repeat(t-n)+e}function bt(e,t){let n=L(e);if(n>=t)return e;let r=t-n,i=Math.floor(r/2),a=r-i;return` `.repeat(i)+e+` `.repeat(a)}function B(e,t){if(ft(e).length<=t)return e;let n=0,r=``,i=e.split(dt);for(let e of i){if(e.startsWith(`\x1B`)){r+=e;continue}for(let i of e){if(n>=t-1)return r+=`…\x1B[0m`,r;r+=i,n++}}return r}function V(e,t,n){let r=n-2,i=z(B(t,r),r);return e.vertical+` `+i+` `+e.vertical}function H(e,t){return e.teeLeft+e.horizontal.repeat(t)+e.teeRight}function xt(e,t,n,r){if(!n&&!r)return e.bottomLeft+e.horizontal.repeat(t)+e.bottomRight;let i=n?` ${n} `:``,a=r?` ${r} `:``,o=L(i),s=L(a);if(o+s>t){let e=Math.max(0,t-s);if(o>e&&(i=B(i,e),o=L(i)),o+s>t){let e=Math.max(0,t-o);a=B(a,e),s=L(a)}}let c=t-o-s;return e.bottomLeft+i+e.horizontal.repeat(Math.max(0,c))+a+e.bottomRight}function St(e,t){if(e.length===0)return``;if(e.length===1)return e[0]??``;let n=e.map(e=>L(e)),r=t-n.reduce((e,t)=>e+t,0),i=Math.max(2,Math.floor(r/(e.length-1))),a=Array.from({length:e.length});a[e.length-1]=n[e.length-1]??0;for(let t=e.length-2;t>=0;t--)a[t]=(a[t+1]??0)+(n[t]??0);let o=e[0]??``,s=n[0]??0;for(let r=1;r<e.length;r++){let c=t-s-(a[r]??0)-(e.length-1-r)*2,l=Math.max(2,Math.min(i,c));o+=` `.repeat(l)+(e[r]??``),s+=l+(n[r]??0)}return o}function U(e,t,n){if(!t)return e;if(!e)return t;let r=L(e),i=L(t),a=n-r-i;return a<2?`${e} ${t}`:e+` `.repeat(a)+t}function W(e,t,n){let r=Ke(t.hookData.model?.display_name||`Claude`).toLowerCase();return e.replace(/\{([^}]+)\}/g,(e,t)=>{if(n){let e=n[t];if(e!==void 0)return e}return t===`model`?r:``})}function Ct(e,t,n,r,i){let a=r?.left??`{model}`,o=r?.right,s=W(a,e,i),c=s?` ${s} `:``,l=L(c);if(!o){let e=n-l;return t.topLeft+c+t.horizontal.repeat(Math.max(0,e))+t.topRight}let u=W(o,e,i),d=u?` ${u} `:``,f=L(d),p=c,m=l,h=d,g=f;if(m+g>n){let e=Math.max(0,n-g);if(m>e&&(p=B(p,e),m=L(p)),m+g>n){let e=Math.max(0,n-m);h=B(h,e),g=L(h)}}let _=n-m-g;if(_<2){let e=n-m;return t.topLeft+p+t.horizontal.repeat(Math.max(0,e))+t.topRight}return t.topLeft+p+t.horizontal.repeat(_)+h+t.topRight}function G(e,t,n,r=60,i=80){return e>=i?n.contextCriticalFg:e>=r?n.contextWarningFg:t}function K(e,t,n,r,i){t=Math.max(5,t);let a=Math.max(0,Math.min(t,Math.round(e/100*t))),o=t-a;return R(n.bar_filled.repeat(a)+n.bar_empty.repeat(o),i,r)}function wt(e,t){if(!e.contextInfo)return{icon:``,label:`context`,bar:``,pct:``,tokens:``};let n=e.contextInfo.usablePercentage,r=N(e.contextInfo.totalTokens),i=N(e.contextInfo.maxTokens);return{icon:t.context_time,label:`context`,bar:` `,pct:`${n}%`,tokens:`${r}/${i}`}}function Tt(e,t,n,r,i,a){if(!e.contextInfo)return``;let o=e.contextInfo.usablePercentage;return K(o,t,n,r,G(o,a?.[`context.bar`]??a?.context??i.contextFg,i))}function Et(e,t,n,r,i,a,o){if(!e.blockInfo)return``;let s=e.blockInfo.nativeUtilization,c=a.budget?.block?.warningThreshold??80;return K(s,t,n,r,G(s,o?.[`block.bar`]??o?.block??i.blockFg,i,50,c))}function Dt(e,t,n,r,i,a){let o=e.hookData.rate_limits?.seven_day;if(!o)return``;let s=o.used_percentage;return K(s,t,n,r,G(s,a?.[`weekly.bar`]??a?.weekly??i.weeklyFg,i))}function Ot(e,t,n,r,i){if(!e.contextInfo)return null;let a=e.contextInfo.usablePercentage,o=` ${a}% ${N(e.contextInfo.totalTokens)}/${N(e.contextInfo.maxTokens)}`,s=Math.max(5,t-o.length),c=Math.max(0,Math.min(s,Math.round(a/100*s))),l=s-c,u=n.bar_filled.repeat(c)+n.bar_empty.repeat(l),d=G(a,i.contextFg,i);return R(`${u}${o}`,d,r)}function kt(e){return Ye(e.workspace?.current_dir||e.cwd||`/`)}function At(e,t,n,r,i){let a=[];e.blockInfo&&a.push(R(q(e.blockInfo,t,n),i.blockFg,r));let o=e.hookData.rate_limits?.seven_day;o&&a.push(R(J(o,t),i.weeklyFg,r)),e.usageInfo&&a.push(R(Lt(e.usageInfo,t,n),i.sessionFg,r)),e.todayInfo&&a.push(R(zt(e.todayInfo,t,n),i.todayFg,r));let s=jt(e,t);return s.length>0&&a.push(R(s.join(` · `),i.metricsFg,r)),a}function jt(e,t){let n=[];return e.metricsInfo&&(e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0&&n.push(`${t.metrics_duration} ${We(e.metricsInfo.sessionDuration)}`),e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0&&n.push(`${t.metrics_messages} ${e.metricsInfo.messageCount}`)),n}function Mt(e,t,n,r){let i=[],a=Gt(e,t);a&&i.push(R(a,r.gitFg,n));let o=qe(kt(e.hookData));return i.push(R(o,r.modeFg,n)),i}function Nt(e,t,n,r,i){let a=[];if(e.hookData.version&&a.push(R(`${t.version} v${e.hookData.version}`,i.versionFg,r)),e.tmuxSessionId&&a.push(R(`tmux:${e.tmuxSessionId}`,i.tmuxFg,r)),e.metricsInfo){let n=[];e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0&&n.push(`${t.metrics_response} ${Je(e.metricsInfo.responseTime)}`),e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0&&n.push(`${t.metrics_lines_added}${e.metricsInfo.linesAdded}`),e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0&&n.push(`${t.metrics_lines_removed}${e.metricsInfo.linesRemoved}`),n.length>0&&a.push(R(n.join(` · `),i.metricsFg,r))}let o=n.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(o&&o.variable){let e=globalThis.process?.env?.[o.variable];if(e){let t=o.prefix??o.variable;a.push(R(t?`${t}:${e}`:e,i.envFg,r))}}return a}function Pt(e,t,n){let r=`${Math.round(e.nativeUtilization)}%`,i=Xe(e.timeRemaining);return{icon:t.block_cost,label:`block`,value:r,time:i,budget:``,bar:` `}}function q(e,t,n){let r=Pt(e,t,n),i=`${r.icon} ${r.value}`;return r.time&&(i+=` · ${r.time}`),r.budget&&(i+=r.budget),i}function Ft(e,t){let n=`${Math.round(e.used_percentage)}%`,r=Ze(Qe(e.resets_at));return{icon:t.weekly_cost,label:`weekly`,pct:n,time:r,bar:` `}}function J(e,t){let n=Ft(e,t),r=`${n.icon} ${n.pct}`;return n.time&&(r+=` · ${n.time}`),r}function It(e,t,n){let r=e.session.tokens,i=r!==null&&r>0?N(r):``,a=``,o=n.budget?.session;return o?.amount&&e.session.cost!==null&&(a=P(e.session.cost,o.amount,o.warningThreshold||80).displayText),{icon:t.session_cost,label:`session`,cost:M(e.session.cost),tokens:i,budget:a}}function Lt(e,t,n){let r=It(e,t,n),i=`${r.icon} ${r.cost}`;return r.tokens&&(i+=` · ${r.tokens}`),r.budget&&(i+=r.budget),i}function Rt(e,t,n){let r=``,i=n.budget?.today;return i?.amount&&e.cost!==null&&(r=P(e.cost,i.amount,i.warningThreshold||80).displayText),{icon:t.today_cost,cost:M(e.cost),label:`today`,budget:r}}function zt(e,t,n){let r=Rt(e,t,n),i=`${r.icon} ${r.cost} ${r.label}`;return r.budget&&(i+=r.budget),i}function Bt(e,t){let n={response:``,responseIcon:``,responseVal:``,lastResponse:``,lastResponseIcon:``,lastResponseVal:``,added:``,addedIcon:``,addedVal:``,removed:``,removedIcon:``,removedVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.responseTime!==null&&!isNaN(e.metricsInfo.responseTime)&&e.metricsInfo.responseTime>0,i=r?Je(e.metricsInfo.responseTime):``,a=e.metricsInfo.lastResponseTime!==null&&!isNaN(e.metricsInfo.lastResponseTime)&&e.metricsInfo.lastResponseTime>0,o=a?Je(e.metricsInfo.lastResponseTime):``,s=e.metricsInfo.linesAdded!==null&&e.metricsInfo.linesAdded>0,c=s?`${e.metricsInfo.linesAdded}`:``,l=e.metricsInfo.linesRemoved!==null&&e.metricsInfo.linesRemoved>0,u=l?`${e.metricsInfo.linesRemoved}`:``;return{response:r?`${t.metrics_response} ${i}`:``,responseIcon:r?t.metrics_response:``,responseVal:i,lastResponse:a?`${t.metrics_last_response} ${o}`:`${t.metrics_last_response} --`,lastResponseIcon:t.metrics_last_response,lastResponseVal:a?o:`--`,added:s?`${t.metrics_lines_added}${c}`:``,addedIcon:s?t.metrics_lines_added:``,addedVal:c,removed:l?`${t.metrics_lines_removed}${u}`:``,removedIcon:l?t.metrics_lines_removed:``,removedVal:u}}function Vt(e,t){let n=Bt(e,t),r=[n.response,n.lastResponse,n.added,n.removed].filter(Boolean);return r.length>0?r.join(` · `):``}function Ht(e,t){let n={icon:``,duration:``,durationIcon:``,durationVal:``,messages:``,messagesIcon:``,messagesVal:``};if(!e.metricsInfo)return n;let r=e.metricsInfo.sessionDuration!==null&&e.metricsInfo.sessionDuration>0,i=r?We(e.metricsInfo.sessionDuration):``,a=e.metricsInfo.messageCount!==null&&e.metricsInfo.messageCount>0,o=a?`${e.metricsInfo.messageCount}`:``;return{icon:t.activity,duration:r?`${t.metrics_duration} ${i}`:``,durationIcon:r?t.metrics_duration:``,durationVal:i,messages:a?`${t.metrics_messages} ${o}`:``,messagesIcon:a?t.metrics_messages:``,messagesVal:o}}function Ut(e,t){let n=Ht(e,t),r=[n.duration,n.messages].filter(Boolean);return r.length>0?r.join(` · `):``}function Wt(e,t){if(!e.gitInfo)return{icon:``,headVal:``,branch:``,status:``,ahead:``,behind:``,working:``,head:``};let n;n=e.gitInfo.status===`conflicts`?t.git_conflicts:e.gitInfo.status===`dirty`?t.git_dirty:t.git_clean;let r=e.gitInfo.ahead>0?`${t.git_ahead}${e.gitInfo.ahead}`:``,i=e.gitInfo.behind>0?`${t.git_behind}${e.gitInfo.behind}`:``,a=[];e.gitInfo.staged&&e.gitInfo.staged>0&&a.push(`+${e.gitInfo.staged}`),e.gitInfo.unstaged&&e.gitInfo.unstaged>0&&a.push(`~${e.gitInfo.unstaged}`),e.gitInfo.untracked&&e.gitInfo.untracked>0&&a.push(`?${e.gitInfo.untracked}`);let o=a.length>0?`(${a.join(` `)})`:``,s=[t.branch,e.gitInfo.branch,n];r&&s.push(r),i&&s.push(i);let c=[e.gitInfo.branch,n];return r&&c.push(r),i&&c.push(i),{icon:t.branch,headVal:c.join(` `),branch:e.gitInfo.branch,status:n,ahead:r,behind:i,working:o,head:s.join(` `)}}function Gt(e,t){let n=Wt(e,t);if(!n.icon)return``;let r=`${n.icon} ${n.branch} ${n.status}`;return n.ahead&&(r+=` ${n.ahead}`),n.behind&&(r+=`${n.behind}`),n.working&&(r+=` ${n.working}`),r}function Kt(e,t,n){return{icon:n.dir,value:qt(e,t)}}function qt(e,t){let n=kt(e.hookData),r=t.display.lines.map(e=>e.segments.directory).find(e=>e?.enabled),i=r?.style??(r?.showBasename?`basename`:`fish`);if(i===`basename`){let e=n.includes(`/`)?`/`:`\\`;return n.split(e).pop()||n}return i===`full`?n:qe(n)}function Jt(e,t){return e.hookData.version?{icon:t.version,value:`v${e.hookData.version}`}:{icon:``,value:``}}function Yt(e,t){let n=Jt(e,t);return n.icon?`${n.icon} ${n.value}`:``}function Xt(e){return e.tmuxSessionId?{label:`tmux`,value:e.tmuxSessionId}:{label:``,value:``}}function Zt(e){let t=Xt(e);return t.label?`${t.label}:${t.value}`:``}function Qt(e){let t=e.display.lines.map(e=>e.segments.env).find(e=>e?.enabled);if(!t||!t.variable)return{prefix:``,value:``};let n=globalThis.process?.env?.[t.variable];return n?{prefix:(t.prefix??t.variable)||``,value:n}:{prefix:``,value:``}}function $t(e){let t=Qt(e);return t.value?t.prefix?`${t.prefix}:${t.value}`:t.value:``}function Y(e,t,n,r,i,a){for(let[o,s]of Object.entries(n)){let n=`${t}.${o}`,c=a?.[n]??a?.[t]??r;e[n]=s?R(s,c,i):``}}function en(e,t,n){let r=t.indexOf(`.`),i=r===-1?t:t.slice(0,r);return e.items.map(e=>{let t=e.match(/^\{(.+)\}$/);return t?n[`${i}.${t[1]}`]??``:e?R(e,``,``):``}).filter(Boolean)}function tn(e,t,n,r){if(e.length===0)return``;if(n===`between`&&r!==void 0&&e.length>1){let n=e.reduce((e,t)=>e+L(t),0),i=Math.max(t*(e.length-1),r-n),a=Math.floor(i/(e.length-1)),o=i%(e.length-1),s=e[0];for(let t=1;t<e.length;t++)s+=` `.repeat(a+(t<=o?1:0))+e[t];return s}return e.join(` `.repeat(t))}function nn(e,t){let{sym:n,config:r,reset:i,colors:a}=t,o=a.partFg,s=(e,t)=>e?R(e,t,i):``,c={},l=Ke(e.hookData.model?.display_name||`Claude`).toLowerCase(),u=o?.model??a.modelFg;if(c.model=s(`${n.model} ${l}`,u),Y(c,`model`,{icon:n.model,value:l},a.modelFg,i,o),c.context=Ot(e,t.contentWidth,n,i,a)??``,Y(c,`context`,wt(e,n),e.contextInfo?G(e.contextInfo.usablePercentage,a.contextFg,a):a.contextFg,i,o),e.blockInfo){let t=o?.block??a.blockFg;c.block=s(q(e.blockInfo,n,r),t),Y(c,`block`,Pt(e.blockInfo,n,r),a.blockFg,i,o)}else c.block=``;if(e.usageInfo){let t=o?.session??a.sessionFg;c.session=s(Lt(e.usageInfo,n,r),t),Y(c,`session`,It(e.usageInfo,n,r),a.sessionFg,i,o)}else c.session=``;if(e.todayInfo){let t=o?.today??a.todayFg;c.today=s(zt(e.todayInfo,n,r),t),Y(c,`today`,Rt(e.todayInfo,n,r),a.todayFg,i,o)}else c.today=``;let d=e.hookData.rate_limits?.seven_day;if(d){let e=o?.weekly??a.weeklyFg;c.weekly=s(J(d,n),e),Y(c,`weekly`,Ft(d,n),a.weeklyFg,i,o)}else c.weekly=``;let f=o?.git??a.gitFg;c.git=s(Gt(e,n),f),Y(c,`git`,Wt(e,n),a.gitFg,i,o);let p=o?.dir??a.modeFg;c.dir=s(qt(e,r),p),Y(c,`dir`,Kt(e,r,n),a.modeFg,i,o);let m=o?.version??a.versionFg;c.version=s(Yt(e,n),m),Y(c,`version`,Jt(e,n),a.versionFg,i,o);let h=o?.tmux??a.tmuxFg;c.tmux=s(Zt(e),h),Y(c,`tmux`,Xt(e),a.tmuxFg,i,o);let g=o?.metrics??a.metricsFg;c.metrics=s(Vt(e,n),g),Y(c,`metrics`,Bt(e,n),a.metricsFg,i,o);let _=o?.activity??a.metricsFg;c.activity=s(Ut(e,n),_),Y(c,`activity`,Ht(e,n),a.metricsFg,i,o);let v=o?.env??a.envFg;c.env=s($t(r),v),Y(c,`env`,Qt(r),a.envFg,i,o);let y={},b=r.display.tui?.segments;if(b)for(let[e,t]of Object.entries(b)){let n=en(t,e,c),r=t.gap??1,i=t.justify??`start`;y[e]={items:n,gap:r,justify:i},c[e]=tn(n,r,i===`between`?`start`:i)}return{data:c,templates:y}}function rn(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=At(n,o,s,c,l);u.length>0&&t.push(V(r,St(u,i),a))}function an(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=Mt(n,o,c,l),d=Nt(n,o,s,c,l),f=u.join(` `),p=d.join(` · `);(f||p)&&(t.push(H(r,a)),t.push(V(r,U(f,p,i),a)))}function on(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=[],d=[];n.blockInfo&&u.push(R(q(n.blockInfo,o,s),l.blockFg,c));let f=n.hookData.rate_limits?.seven_day;f&&u.push(R(J(f,o),l.weeklyFg,c)),n.todayInfo&&u.push(R(zt(n.todayInfo,o,s),l.todayFg,c)),n.usageInfo&&d.push(R(Lt(n.usageInfo,o,s),l.sessionFg,c));let p=jt(n,o);p.length>0&&d.push(R(p.join(` · `),l.metricsFg,c)),u.length>0&&t.push(V(r,St(u,i),a)),d.length>0&&t.push(V(r,U(d[0]??``,d[1]??``,i),a))}function sn(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=Mt(n,o,c,l);u.length>0&&(t.push(H(r,a)),t.push(V(r,U(u[0]??``,u[1]??``,i),a)));let d=Nt(n,o,s,c,l);d.length>0&&(t.push(H(r,a)),t.push(V(r,d.join(` · `),a)))}function cn(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e;n.blockInfo&&t.push(V(r,R(q(n.blockInfo,o,s),l.blockFg,c),a));let u=n.hookData.rate_limits?.seven_day;u&&t.push(V(r,R(J(u,o),l.weeklyFg,c),a));let d=[];n.usageInfo&&d.push(R(`${o.session_cost} ${M(n.usageInfo.session.cost)}`,l.sessionFg,c)),n.todayInfo&&d.push(R(`${o.today_cost} ${M(n.todayInfo.cost)} today`,l.todayFg,c)),d.length>0&&t.push(V(r,U(d[0]??``,d[1]??``,i),a))}function ln(e){let{lines:t,data:n,box:r,contentWidth:i,innerWidth:a,sym:o,config:s,reset:c,colors:l}=e,u=Mt(n,o,c,l);u.length>0&&(t.push(H(r,a)),t.push(V(r,U(u[0]??``,u[1]??``,i),a)));let d=Nt(n,o,s,c,l);d.length>0&&t.push(V(r,d.join(` · `),a))}const un=new Set([`context`,`context.bar`,`block.bar`,`weekly.bar`]);function X(e){return e.length===1&&e[0].segment===`---`}function Z(e){if(!e.endsWith(`fr`))return 0;let t=parseInt(e.replace(`fr`,``),10);return!isNaN(t)&&t>0?t:0}function dn(e,t,n){let r=Math.floor(e/t.length),i=e-r*t.length;for(let e of t)n[e]=n[e]+r+(i>0?1:0),i>0&&i--}function fn(e,t,n,r){let i=0;for(let r=0;r<n;r++)i+=e[t+r]??0;return n>1&&(i+=(n-1)*r),i}function pn(e,t){let n;for(let r of e)t>=r.minWidth&&(!n||r.minWidth>n.minWidth)&&(n=r);if(n)return n;let r=e[0];for(let t=1;t<e.length;t++)e[t].minWidth<r.minWidth&&(r=e[t]);return r}function mn(e){let t=[];for(let n of e){let e=n.trim();if(e===`---`){t.push([{segment:`---`,spanStart:!0,spanSize:1}]);continue}let r=e.split(/\s+/),i=[],a=0;for(;a<r.length;){let e=r[a],t=1;for(;a+t<r.length&&r[a+t]===e;)t++;i.push({segment:e,spanStart:!0,spanSize:t});for(let n=1;n<t;n++)i.push({segment:e,spanStart:!1,spanSize:0});a+=t}t.push(i)}return t}function hn(e,t){let n=e.map(e=>X(e)?e:e.map(e=>e.segment===`.`||e.segment===`---`||t[e.segment]?e:{segment:`.`,spanStart:!0,spanSize:1})).map(e=>{if(X(e))return e;let t=e.map(e=>e.segment),n=[],r=0;for(;r<t.length;){let e=t[r],i=1;for(;r+i<t.length&&t[r+i]===e;)i++;n.push({segment:e,spanStart:!0,spanSize:i});for(let t=1;t<i;t++)n.push({segment:e,spanStart:!1,spanSize:0});r+=i}return n}).filter(e=>X(e)?!0:e.some(e=>e.segment!==`.`)),r=[];for(let e=0;e<n.length;e++){let t=n[e];if(!X(t)){r.push(t);continue}r.length!==0&&(X(r[r.length-1])||r.push(t))}return r.length>0&&X(r[r.length-1])&&r.pop(),r}function gn(e,t,n,r){let i=Array.from({length:e}).fill(0);for(let a of t)if(!X(a))for(let t=0;t<a.length;t++){let o=a[t];if(!o.spanStart||o.spanSize!==1||o.segment===`.`||t>=e||r?.has(o.segment))continue;let s=L(n[o.segment]||``);s>i[t]&&(i[t]=s)}return i}function _n(e,t,n,r,i,a){let o=e.length,s=gn(o,t,n,a),c=Array.from({length:o}).fill(0);for(let t=0;t<o;t++)e[t]===`auto`&&(c[t]=s[t]);for(let t=0;t<o;t++){let n=e[t];if(n===`auto`||n.endsWith(`fr`))continue;let r=parseInt(n,10);!isNaN(r)&&r>0&&(c[t]=r)}for(let t=0;t<o;t++)c[t]<1&&!e[t].endsWith(`fr`)&&(c[t]=1);let l=Math.max(0,o-1)*i,u=c.reduce((e,t)=>e+t,0),d=Math.max(0,r-u-l),f=0;for(let t of e)f+=Z(t);if(f>0){let t=d/f,n=[],r=0;for(let i=0;i<o;i++){let a=Z(e[i]);if(a>0){let e=Math.floor(t*a);c[i]=e,r+=e,n.push(i)}}let i=d-r;for(let e=0;i>0&&e<n.length;e++)c[n[e]]+=1,i--}return c}function vn(e,t,n,r,i,a){let o=e.length,s=gn(o,t,n,a),c=Array.from({length:o});for(let t=0;t<o;t++){let n=e[t];if(n!==`auto`&&!n.endsWith(`fr`)){let e=parseInt(n,10);c[t]=!isNaN(e)&&e>0?e:s[t]}else c[t]=s[t]}for(let i of t)if(!X(i))for(let t=0;t<i.length;t++){let a=i[t];if(!a.spanStart||a.spanSize<=1||a.segment===`.`)continue;let o=L(n[a.segment]||``),s=fn(c,t,a.spanSize,r);if(o>s){let n=o-s,r=[];for(let n=0;n<a.spanSize;n++)Z(e[t+n])>0&&r.push(t+n);if(r.length>0)dn(n,r,c);else{let e=[];for(let n=0;n<a.spanSize;n++)e.push(t+n);dn(n,e,c)}}}for(let e=0;e<o;e++)c[e]<1&&(c[e]=1);let l=0;for(let e=0;e<o;e++)l+=c[e];let u=Math.max(0,o-1)*r,d=2+Math.max(0,1-i)*2,f=o*i*2;return{panelWidth:l+u+d+f,colWidths:c}}function yn(e,t,n){switch(n){case`right`:return yt(e,t);case`center`:return bt(e,t);default:return z(e,t)}}function bn(e,t,n,r,i,a=0,o){let s=[],c=L(i),l=a;for(let i=0;i<e.length;i++){let a=e[i];if(!a.spanStart)continue;let u=fn(t,i,a.spanSize,c),d=i+a.spanSize-1,f=n[i]===`right`?o?.[i]??0:0,p=n[d]===`left`?o?.[d]??0:0,m=l-f,h=l-p,g=0;for(let e=i;e<d;e++){let t=n[e]===`left`?o?.[e]??0:0,r=n[e+1]===`right`?o?.[e+1]??0:0;g+=l-t+(l-r)}let _=u+g;if(a.segment===`.`)s.push(` `.repeat(_+m+h));else{let e=yn(B(r[a.segment]||``,_),_,n[i]||`left`),t=m>0?` `.repeat(m):``,o=h>0?` `.repeat(h):``;s.push(t+e+o)}}return s.join(i)}function xn(e,t,n){let r=n||e.horizontal;return e.teeLeft+r.repeat(t)+e.teeRight}function Sn(e,t,n,r,i){let a=e.minWidth??32,o=e.maxWidth??1/0,s=e.separator?.column??` `,c=e.separator?.divider,l=L(s),u=e.fitContent??!1,d=e.padding?.horizontal??0,f=e.widthReserve??45,p=Math.min(o,Math.max(a,r-f)),m=pn(e.breakpoints,p),h;h=u?o===1/0?r:Math.min(r,o):p;let g=hn(mn(m.areas),t);if(g.length===0)return{lines:[],panelWidth:h};let _,v=new Set(un);if(e.segments)for(let t of Object.keys(e.segments))v.add(t);if(u){let e=vn(m.columns,g,t,l,d,v);h=Math.min(o,Math.max(a,e.panelWidth)),_=e.colWidths;let n=h-e.panelWidth;if(n>0){let e=0;for(let t of m.columns)e+=Z(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Z(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}else{let e=h-2-Math.max(0,1-d)*2-m.columns.length*d*2;_=_n(m.columns,g,t,e,l,v)}let y=h-2,b=Math.max(1,d)-d,x=b>0?` `.repeat(b):``,S=y-b*2,C=m.align||m.columns.map(()=>`left`),w=Array(m.columns.length).fill(0);if(d>0){let e=Array(m.columns.length).fill(0);for(let n of g)if(!X(n))for(let r=0;r<n.length;r++){let i=n[r];if(!i.spanStart||i.spanSize!==1||i.segment===`.`||v.has(i.segment))continue;let a=L(t[i.segment]||``);a>e[r]&&(e[r]=a)}let n=0;for(let t=0;t<m.columns.length;t++){if(Z(m.columns[t])>0||e[t]<=0)continue;let r=_[t]-e[t];r<=0||(w[t]=Math.min(d,r),n+=w[t])}if(n>0){let e=0;for(let t of m.columns)e+=Z(t);if(e>0){let t=[],r=0;for(let i=0;i<_.length;i++){let a=Z(m.columns[i]);if(a>0){let o=Math.floor(n*a/e);_[i]+=o,r+=o,t.push(i)}}let i=n-r;for(let e=0;i>0&&e<t.length;e++)_[t[e]]+=1,i--}}}function ee(e,t){let n=0;for(let r=e;r<e+t-1;r++){let e=C[r]===`left`?w[r]??0:0,t=C[r+1]===`right`?w[r+1]??0:0;n+=d-e+(d-t)}return n}if(i){let e=new Set;for(let n of g)if(!X(n))for(let r=0;r<n.length;r++){let a=n[r];if(!a.spanStart||a.segment===`.`||a.segment===`---`||e.has(a.segment))continue;e.add(a.segment);let o=fn(_,r,a.spanSize,l),s=ee(r,a.spanSize),c=i(a.segment,o+s);c!==void 0&&(t[a.segment]=c)}}let te=hn(g,t);if(te.length===0)return{lines:[],panelWidth:h};let T=[];for(let e of te)if(X(e))T.push(xn(n,y,c));else{let r=z(B(bn(e,_,C,t,s,d,w),S),S);T.push(n.vertical+x+r+x+n.vertical)}return{lines:T,panelWidth:h}}const Cn=`\x1B[?2026h`,wn=`\x1B[?2026l`,Tn=`\x1B[0m`;function En(e){return e>=80?`wide`:e>=55?`medium`:`narrow`}function Dn(e){return e&&e>0?Math.max(32,e):80}async function On(e,t,n,r,i,a){let o=(i.display.charset||`unicode`)===`text`?lt:ot,s=e.colors;if(i.display.tui){let r=i.display.tui,c=r.terminalWidth??a?.rawTerminalWidth??120,l;l=typeof r.box==`string`?I[r.box]??t:r.box?{...t,...r.box}:t;let u=Math.max(r.minWidth??32,c-(r.widthReserve??45))-2,d=u-2,f=nn(e,{lines:[],data:e,box:l,contentWidth:d,innerWidth:u,sym:o,config:i,reset:n,colors:s}),p=f.data,m=f.templates,h=s.partFg,g=Sn(r,p,l,c,(t,r)=>{if(t===`context`)return Ot(e,r,o,n,s)??``;if(t===`context.bar`)return Tt(e,r,o,n,s,h);if(t===`block.bar`)return Et(e,r,o,n,s,i,h);if(t===`weekly.bar`)return Dt(e,r,o,n,s,h);let a=m[t];if(a)return tn(a.items,a.gap,a.justify,r)}),_=g.panelWidth-2,v=r.footer?.left?W(r.footer.left,e,p):void 0,y=r.footer?.right?W(r.footer.right,e,p):void 0,b=[];return b.push(Ct(e,l,_,r.title,p)),b.push(...g.lines),b.push(xt(l,_,v,y)),Cn+b.map(e=>Tn+e).join(`
|
|
8
8
|
`)+wn}let c=Dn(r),l=c-2,u=l-2,d=En(c),f=[];f.push(Ct(e,t,l));let p=Ot(e,u,o,n,s);p&&f.push(V(t,p,l));let m={lines:f,data:e,box:t,contentWidth:u,innerWidth:l,sym:o,config:i,reset:n,colors:s};return d===`wide`?(rn(m),an(m)):d===`medium`?(on(m),sn(m)):(cn(m),ln(m)),f.push(xt(t,l)),Cn+f.map(e=>Tn+e).join(`
|
|
9
9
|
`)+wn}var kn=class{symbols;_usageProvider;_blockProvider;_todayProvider;_contextProvider;_gitService;_tmuxService;_metricsProvider;_segmentRenderer;constructor(e){this.config=e,this.symbols=this.initializeSymbols()}get usageProvider(){return this._usageProvider||=new Re,this._usageProvider}get blockProvider(){return this._blockProvider||=new nt,this._blockProvider}get todayProvider(){return this._todayProvider||=new at,this._todayProvider}get contextProvider(){return this._contextProvider||=new ze(this.config),this._contextProvider}get gitService(){return this._gitService||=new xe,this._gitService}get tmuxService(){return this._tmuxService||=new Ce,this._tmuxService}get metricsProvider(){return this._metricsProvider||=new Be,this._metricsProvider}get segmentRenderer(){return this._segmentRenderer||=new tt(this.config,this.symbols),this._segmentRenderer}needsSegmentInfo(e){return this.config.display.lines.some(t=>t.segments[e]?.enabled)}async generateStatusline(e){if(this.config.display.style===`tui`)return this.generateTuiStatusline(e);let t=this.needsSegmentInfo(`session`)?await this.usageProvider.getUsageInfo(e.session_id,e):null,n=this.needsSegmentInfo(`block`)?await this.blockProvider.getActiveBlockInfo(e):null,r=this.needsSegmentInfo(`today`)?await this.todayProvider.getTodayInfo():null,i=this.config.display.lines.map(e=>e.segments.context).find(e=>e?.enabled)?.autocompactBuffer??33e3,a=this.needsSegmentInfo(`context`)?await this.contextProvider.getContextInfo(e,i):null,o=this.needsSegmentInfo(`metrics`)?await this.metricsProvider.getMetricsInfo(e.session_id,e):null;return this.config.display.autoWrap?this.generateAutoWrapStatusline(e,t,n,r,a,o):(await Promise.all(this.config.display.lines.map(i=>this.renderLine(i,e,t,n,r,a,o)))).filter(e=>e.length>0).join(`
|
|
10
10
|
`)}async generateAutoWrapStatusline(e,t,n,r,i,a){let o=this.getThemeColors(),s=e.workspace?.current_dir||e.cwd||`/`,c=_t(),l=[];for(let u of this.config.display.lines){let d=Object.entries(u.segments).filter(([e,t])=>t?.enabled).map(([e,t])=>({type:e,config:t})),f=[];for(let c of d){let l=await this.renderSegment(c,e,t,n,r,i,a,o,s);l&&f.push({type:c.type,text:l.text,bgColor:l.bgColor,fgColor:l.fgColor})}if(f.length===0)continue;if(!c||c<=0){l.push(this.buildLineFromSegments(f,o));continue}let p=[],m=0;for(let e of f){let t=this.calculateSegmentWidth(e,p.length===0);p.length>0&&m+t>c&&(l.push(this.buildLineFromSegments(p,o)),p=[],m=0),p.push(e),m+=t}p.length>0&&l.push(this.buildLineFromSegments(p,o))}return l.join(`
|
|
11
|
-
`)}async generateTuiStatusline(e){let t=this.getThemeColors(),n=_t(),r=e.workspace?.current_dir||e.cwd||`/`,i=(this.config.display.charset||`unicode`)===`text`?ct:st,a=this.config.display.lines.map(e=>e.segments.context).find(e=>e?.enabled)?.autocompactBuffer??33e3,o=await Promise.allSettled([this.usageProvider.getUsageInfo(e.session_id,e),this.blockProvider.getActiveBlockInfo(e),this.todayProvider.getTodayInfo(),this.contextProvider.getContextInfo(e,a),this.metricsProvider.getMetricsInfo(e.session_id,e),this.gitService.getGitInfo(r,{showSha:!1,showWorkingTree:!0,showOperation:!1,showTag:!1,showTimeSinceCommit:!1,showStashCount:!1,showUpstream:!1,showRepoName:!1},e.workspace?.project_dir),this.tmuxService.getSessionId()]),s=e=>e.status===`fulfilled`?e.value:null,[c,l,u,d,f,p,m]=[s(o[0]),s(o[1]),s(o[2]),s(o[3]),s(o[4]),s(o[5]),s(o[6])];return On({hookData:e,usageInfo:c,blockInfo:l,todayInfo:u,contextInfo:d,metricsInfo:f,gitInfo:p,tmuxSessionId:m,colors:t},i,t.reset,n,this.config,{rawTerminalWidth:vt()})}calculateSegmentWidth(e,t){let n=this.config.display.style===`capsule`,r=L(e.text),i=(this.config.display.padding??1)*2;return n?r+(2+i+(t?0:1)):r+(1+i)}buildLineFromSegments(e,t){let n=this.config.display.style===`capsule`,r=t.reset;for(let i=0;i<e.length;i++){let a=e[i];if(!a)continue;let o=i===0,s=i===e.length-1?null:e[i+1];n&&!o&&(r+=` `),r+=this.formatSegment(a.bgColor,a.fgColor,a.text,s?.bgColor,t)}return r}async renderLine(e,t,n,r,i,a,o){let s=this.getThemeColors(),c=t.workspace?.current_dir||t.cwd||`/`,l=Object.entries(e.segments).filter(([e,t])=>t?.enabled).map(([e,t])=>({type:e,config:t})),u=[];for(let e of l){let l=await this.renderSegment(e,t,n,r,i,a,o,s,c);l&&u.push({type:e.type,text:l.text,bgColor:l.bgColor,fgColor:l.fgColor})}return this.buildLineFromSegments(u,s)}async renderSegment(e,t,n,r,i,a,o,s,c){return e.type===`directory`?this.segmentRenderer.renderDirectory(t,s,e.config):e.type===`model`?this.segmentRenderer.renderModel(t,s):e.type===`git`?await this.renderGitSegment(e.config,t,s,c):e.type===`session`?this.renderSessionSegment(e.config,n,s):e.type===`sessionId`?t.session_id?this.segmentRenderer.renderSessionId(t.session_id,s,e.config):null:e.type===`tmux`?await this.renderTmuxSegment(s):e.type===`context`?this.renderContextSegment(e.config,a,s):e.type===`metrics`?this.renderMetricsSegment(e.config,o,r,s):e.type===`block`?this.renderBlockSegment(e.config,r,s):e.type===`today`?this.renderTodaySegment(e.config,i,s):e.type===`version`?this.renderVersionSegment(e.config,t,s):e.type===`env`?this.segmentRenderer.renderEnv(s,e.config):e.type===`weekly`?this.segmentRenderer.renderWeekly(t,s,e.config):null}async renderGitSegment(e,t,n,r){if(!this.needsSegmentInfo(`git`))return null;let i=await this.gitService.getGitInfo(r,{showSha:e?.showSha,showWorkingTree:e?.showWorkingTree,showOperation:e?.showOperation,showTag:e?.showTag,showTimeSinceCommit:e?.showTimeSinceCommit,showStashCount:e?.showStashCount,showUpstream:e?.showUpstream,showRepoName:e?.showRepoName},t.workspace?.project_dir);return i?this.segmentRenderer.renderGit(i,n,e):null}renderSessionSegment(e,t,n){return t?this.segmentRenderer.renderSession(t,n,e):null}async renderTmuxSegment(e){if(!this.needsSegmentInfo(`tmux`))return null;let t=await this.tmuxService.getSessionId();return this.segmentRenderer.renderTmux(t,e)}renderContextSegment(e,t,n){return this.needsSegmentInfo(`context`)?this.segmentRenderer.renderContext(t,n,e):null}renderMetricsSegment(e,t,n,r){return this.segmentRenderer.renderMetrics(t,r,e)}renderBlockSegment(e,t,n){return t?this.segmentRenderer.renderBlock(t,n,e):null}renderTodaySegment(e,t,n){if(!t)return null;let r=e?.type||`cost`;return this.segmentRenderer.renderToday(t,n,r)}renderVersionSegment(e,t,n){return this.segmentRenderer.renderVersion(t,n,e)}initializeSymbols(){let e=this.config.display.style,t=this.config.display.charset||`unicode`,n=e===`minimal`,r=e===`capsule`,i=t===`text`?lt:ot;return{right:n?``:r?i.right_rounded:i.right,left:r?i.left_rounded:``,branch:i.branch,model:i.model,git_clean:i.git_clean,git_dirty:i.git_dirty,git_conflicts:i.git_conflicts,git_ahead:i.git_ahead,git_behind:i.git_behind,git_worktree:i.git_worktree,git_tag:i.git_tag,git_sha:i.git_sha,git_upstream:i.git_upstream,git_stash:i.git_stash,git_time:i.git_time,session_cost:i.session_cost,block_cost:i.block_cost,today_cost:i.today_cost,context_time:i.context_time,metrics_response:i.metrics_response,metrics_last_response:i.metrics_last_response,metrics_duration:i.metrics_duration,metrics_messages:i.metrics_messages,metrics_lines_added:i.metrics_lines_added,metrics_lines_removed:i.metrics_lines_removed,metrics_burn:i.metrics_burn,version:i.version,bar_filled:i.bar_filled,bar_empty:i.bar_empty,env:i.env,session_id:i.session_id,weekly_cost:i.weekly_cost}}getThemeColors(){let e=this.config.theme,t,n=this.config.display.colorCompatibility||`auto`,r=n===`auto`?T():n;if(e===`custom`){if(t=this.config.colors?.custom,!t)throw Error(`Custom theme selected but no colors provided in configuration`)}else t=D(e,r),t||=(console.warn(`Built-in theme '${e}' not found, falling back to 'dark' theme`),D(`dark`,r));let i=(e,t)=>r===`none`?``:r===`ansi`?ee(e,t):r===`ansi256`?w(e,t):S(e,t),a=D(`dark`,r),o=this.config.display.style===`tui`,s=e===`light`?`#f0f0f0`:`#1e1e1e`,c=e=>{let n=a[e],r=t[e],c={fg:r?.fg||n.fg,bg:r?.bg||n.bg},l=c.fg;return o&&te(l,s)<60&&(l=c.bg),{bg:i(c.bg,!0),fg:i(l,!1)}},l=c(`directory`),u=c(`git`),d=c(`model`),f=c(`session`),p=c(`block`),m=c(`today`),h=c(`tmux`),g=c(`context`),_=c(`contextWarning`),v=c(`contextCritical`),y=c(`metrics`),b=c(`version`),x=c(`env`),C=c(`weekly`);return{reset:r===`none`?``:`\x1B[0m`,modeBg:l.bg,modeFg:l.fg,gitBg:u.bg,gitFg:u.fg,modelBg:d.bg,modelFg:d.fg,sessionBg:f.bg,sessionFg:f.fg,blockBg:p.bg,blockFg:p.fg,todayBg:m.bg,todayFg:m.fg,tmuxBg:h.bg,tmuxFg:h.fg,contextBg:g.bg,contextFg:g.fg,contextWarningBg:_.bg,contextWarningFg:_.fg,contextCriticalBg:v.bg,contextCriticalFg:v.fg,metricsBg:y.bg,metricsFg:y.fg,versionBg:b.bg,versionFg:b.fg,envBg:x.bg,envFg:x.fg,weeklyBg:C.bg,weeklyFg:C.fg,partFg:e===`custom`?this.resolvePartColors(i):{}}}resolvePartColors(e){let t=this.config.colors?.custom;if(!t)return{};let n={};for(let r of Object.keys(t)){let i=t[r];i?.fg&&(n[r]=e(i.fg,!1))}return n}getSegmentBgColor(e,t){switch(e){case`directory`:return t.modeBg;case`git`:return t.gitBg;case`model`:return t.modelBg;case`session`:case`sessionId`:return t.sessionBg;case`block`:return t.blockBg;case`today`:return t.todayBg;case`tmux`:return t.tmuxBg;case`context`:return t.contextBg;case`metrics`:return t.metricsBg;case`version`:return t.versionBg;case`env`:return t.envBg;case`weekly`:return t.weeklyBg;default:return t.modeBg}}formatSegment(e,t,n,r,i){let a=this.config.display.style===`capsule`,o=` `.repeat(this.config.display.padding??1);if(a){let r=this.config.display.colorCompatibility||`auto`,a=C(e,(r===`auto`?T():r)===`ansi`);return`${`${a}${this.symbols.left}${i.reset}`}${`${e}${t}${o}${n}${o}${i.reset}`}${`${a}${this.symbols.right}${i.reset}`}`}let s=`${e}${t}${o}${n}${o}`,c=this.config.display.colorCompatibility||`auto`,l=(c===`auto`?T():c)===`ansi`;if(r){let t=C(e,l);s+=`${i.reset}${r}${t}${this.symbols.right}`}else s+=`${i.reset}${C(e,l)}${this.symbols.right}${i.reset}`;return s}};const An={theme:`dark`,display:{style:`minimal`,charset:`unicode`,colorCompatibility:`auto`,autoWrap:!0,padding:1,lines:[{segments:{directory:{enabled:!0,style:`basename`},git:{enabled:!0,showSha:!1,showWorkingTree:!1,showOperation:!1,showTag:!1,showTimeSinceCommit:!1,showStashCount:!1,showUpstream:!1,showRepoName:!1},model:{enabled:!0},session:{enabled:!0,type:`tokens`,costSource:`calculated`},today:{enabled:!0,type:`cost`},block:{enabled:!1,type:`cost`,burnType:`cost`,displayStyle:`text`},weekly:{enabled:!1,displayStyle:`text`},version:{enabled:!1},tmux:{enabled:!1},sessionId:{enabled:!1,showIdLabel:!0},context:{enabled:!0,showPercentageOnly:!1,displayStyle:`text`,autocompactBuffer:33e3},metrics:{enabled:!1,showResponseTime:!0,showLastResponseTime:!0,showDuration:!0,showMessageCount:!0,showLinesAdded:!0,showLinesRemoved:!0}}}]},budget:{session:{warningThreshold:80},today:{warningThreshold:80,amount:50},block:{warningThreshold:80,amount:15}},modelContextLimits:{default:2e5,sonnet:2e5,opus:2e5}},jn=new Set([`context`,`block`,`session`,`today`,`weekly`,`git`,`dir`,`model`,`version`,`tmux`,`metrics`,`activity`,`env`]),Mn={session:[`icon`,`label`,`cost`,`tokens`,`budget`],block:[`icon`,`label`,`value`,`time`,`budget`,`bar`],today:[`icon`,`cost`,`label`,`budget`],weekly:[`icon`,`label`,`pct`,`time`,`bar`],git:[`icon`,`info`,`branch`,`status`,`ahead`,`behind`,`working`,`head`],context:[`icon`,`label`,`bar`,`pct`,`tokens`],metrics:[`response`,`responseIcon`,`responseVal`,`lastResponse`,`lastResponseIcon`,`lastResponseVal`,`added`,`addedIcon`,`addedVal`,`removed`,`removedIcon`,`removedVal`],activity:[`icon`,`duration`,`durationIcon`,`durationVal`,`messages`,`messagesIcon`,`messagesVal`],model:[`icon`,`value`],version:[`icon`,`value`],tmux:[`label`,`value`],dir:[`icon`,`value`],env:[`prefix`,`value`]};function Nn(e){if(e===`.`||e===`---`||jn.has(e))return!0;let t=e.indexOf(`.`);if(t===-1)return!1;let n=e.slice(0,t),r=e.slice(t+1);if(!n||!r)return!1;let i=Mn[n];return i?i.includes(r):!1}function Pn(e){return[`light`,`dark`,`nord`,`tokyo-night`,`rose-pine`,`gruvbox`,`custom`].includes(e)}function Fn(e){return e===`minimal`||e===`powerline`||e===`capsule`||e===`tui`}function In(e){return e===`unicode`||e===`text`}function Q(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(r===t&&n+1<e.length)return e[n+1];if(r?.startsWith(`${t}=`))return r.split(`=`)[1]}}function $(e,t){let n={...e};for(let e in t){let r=t[e];r!==void 0&&(typeof r==`object`&&r&&!Array.isArray(r)?n[e]=$(n[e]||{},r):n[e]=r)}return n}function Ln(e,t){return e?o.existsSync(e)?e:null:[...t?[l.join(t,`.claude-powerline.json`)]:[],l.join(process.cwd(),`.claude-powerline.json`),l.join(m.homedir(),`.claude`,`claude-powerline.json`),l.join(m.homedir(),`.config`,`claude-powerline`,`config.json`)].find(o.existsSync)||null}function Rn(e){try{let t=o.readFileSync(e,`utf-8`);return JSON.parse(t)}catch(t){throw Error(`Failed to load config file ${e}: ${t instanceof Error?t.message:String(t)}`)}}function zn(){let e={},t={},n=process.env.CLAUDE_POWERLINE_THEME;n&&Pn(n)&&(e.theme=n);let r=process.env.CLAUDE_POWERLINE_STYLE;return r&&(Fn(r)?t.style=r:(console.warn(`Invalid display style '${r}' from environment variable, falling back to 'minimal'`),t.style=`minimal`)),Object.keys(t).length>0&&(e.display=t),e}function Bn(){return process.env.CLAUDE_POWERLINE_CONFIG}function Vn(e){let t={},n={},r=Q(e,`--theme`);r&&Pn(r)&&(t.theme=r);let i=Q(e,`--style`);i&&(Fn(i)?n.style=i:(console.warn(`Invalid display style '${i}' from CLI argument, falling back to 'minimal'`),n.style=`minimal`));let a=Q(e,`--charset`);return a&&(In(a)?n.charset=a:(console.warn(`Invalid charset '${a}' from CLI argument, falling back to 'unicode'`),n.charset=`unicode`)),Object.keys(n).length>0&&(t.display=n),t}function Hn(e){if(typeof e.box==`string`&&!I[e.box]){let t=Object.keys(I).join(`, `);return`unknown box preset "${e.box}" (valid: ${t})`}if(!e.breakpoints||!Array.isArray(e.breakpoints)||e.breakpoints.length===0)return`grid config must have at least one breakpoint`;let t=new Set;for(let n=0;n<e.breakpoints.length;n++){let r=e.breakpoints[n],i=`breakpoint[${n}]`;if(typeof r.minWidth!=`number`||r.minWidth<0)return`${i}: minWidth must be a non-negative number`;if(t.has(r.minWidth))return`${i}: duplicate minWidth ${r.minWidth} (each breakpoint must have a unique minWidth)`;if(t.add(r.minWidth),!r.areas||!Array.isArray(r.areas)||r.areas.length===0)return`${i}: areas must be a non-empty array of strings`;if(!r.columns||!Array.isArray(r.columns)||r.columns.length===0)return`${i}: columns must be a non-empty array`;let a=r.columns.length;for(let e of r.columns){if(typeof e!=`string`)return`${i}: column definition must be a string`;if(!/^(\d+fr|\d+|auto)$/.test(e))return`${i}: invalid column definition "${e}" (use "auto", "Nfr", or a fixed integer)`}if(r.align!==void 0){if(!Array.isArray(r.align))return`${i}: align must be an array`;if(r.align.length!==a)return`${i}: align length (${r.align.length}) must match columns length (${a})`;for(let e of r.align)if(e!==`left`&&e!==`center`&&e!==`right`)return`${i}: invalid align value "${e}"`}let o=new Set;for(let t=0;t<r.areas.length;t++){let n=r.areas[t];if(n.trim()===`---`)continue;let s=n.trim().split(/\s+/);if(s.length!==a)return`${i}: row "${n}" has ${s.length} cells but expected ${a} columns`;let c=e.segments?new Set(Object.keys(e.segments)):new Set,l=``,u=``;for(let e of s){if(e!==`.`){if(!Nn(e)&&!c.has(e))return`${i}: unknown segment name "${e}"`;if(e!==u&&o.has(e))return`${i}: segment "${e}" appears on multiple rows`}e!==l&&(u=e),l=e}let d=new Map;for(let e=0;e<s.length;e++){let t=s[e];if(t===`.`||t===`---`)continue;let r=d.get(t);if(r!==void 0&&r!==e-1)return`${i}: segment "${t}" has non-contiguous span in row "${n}"`;d.set(t,e)}for(let e of s)e!==`.`&&e!==`---`&&o.add(e)}}if(e.segments)for(let[t,n]of Object.entries(e.segments)){if(!n.items||!Array.isArray(n.items))return`segments["${t}"]: items must be an array`;if(n.justify!==void 0&&n.justify!==`start`&&n.justify!==`between`)return`segments["${t}"]: invalid justify value "${n.justify}" (use "start" or "between")`}return null}function Un(e=process.argv,t){let n=JSON.parse(JSON.stringify(An)),r=Q(e,`--config`)||Bn(),i=Ln(r?.startsWith(`~`)?r.replace(`~`,m.homedir()):r,t);if(i)try{let e=Rn(i);n=$(n,e)}catch(e){console.warn(`Warning: ${e instanceof Error?e.message:String(e)}`)}n.display?.style&&!Fn(n.display.style)&&(console.warn(`Invalid display style '${n.display.style}' in config file, falling back to 'minimal'`),n.display.style=`minimal`),n.display?.charset&&!In(n.display.charset)&&(console.warn(`Invalid charset '${n.display.charset}' in config file, falling back to 'unicode'`),n.display.charset=`unicode`),n.theme&&!Pn(n.theme)&&(console.warn(`Invalid theme '${n.theme}' in config file, falling back to 'dark'`),n.theme=`dark`);let a=zn();n=$(n,a);let o=Vn(e);if(n=$(n,o),n.display?.tui){let e=Hn(n.display.tui);e&&(process.stderr.write(`Warning: invalid grid config: ${e}. Falling back to hardcoded layout.\n`),delete n.display.tui)}return n}const Wn=Un;function Gn(){console.log(`
|
|
11
|
+
`)}async generateTuiStatusline(e){let t=this.getThemeColors(),n=_t(),r=e.workspace?.current_dir||e.cwd||`/`,i=(this.config.display.charset||`unicode`)===`text`?ct:st,a=this.config.display.lines.map(e=>e.segments.context).find(e=>e?.enabled)?.autocompactBuffer??33e3,o=await Promise.allSettled([this.usageProvider.getUsageInfo(e.session_id,e),this.blockProvider.getActiveBlockInfo(e),this.todayProvider.getTodayInfo(),this.contextProvider.getContextInfo(e,a),this.metricsProvider.getMetricsInfo(e.session_id,e),this.gitService.getGitInfo(r,{showSha:!1,showWorkingTree:!0,showOperation:!1,showTag:!1,showTimeSinceCommit:!1,showStashCount:!1,showUpstream:!1,showRepoName:!1},e.workspace?.project_dir),this.tmuxService.getSessionId()]),s=e=>e.status===`fulfilled`?e.value:null,[c,l,u,d,f,p,m]=[s(o[0]),s(o[1]),s(o[2]),s(o[3]),s(o[4]),s(o[5]),s(o[6])];return On({hookData:e,usageInfo:c,blockInfo:l,todayInfo:u,contextInfo:d,metricsInfo:f,gitInfo:p,tmuxSessionId:m,colors:t},i,t.reset,n,this.config,{rawTerminalWidth:vt()})}calculateSegmentWidth(e,t){let n=this.config.display.style===`capsule`,r=L(e.text),i=(this.config.display.padding??1)*2;return n?r+(2+i+(t?0:1)):r+(1+i)}buildLineFromSegments(e,t){let n=this.config.display.style===`capsule`,r=t.reset;for(let i=0;i<e.length;i++){let a=e[i];if(!a)continue;let o=i===0,s=i===e.length-1?null:e[i+1];n&&!o&&(r+=` `),r+=this.formatSegment(a.bgColor,a.fgColor,a.text,s?.bgColor,t)}return r}async renderLine(e,t,n,r,i,a,o){let s=this.getThemeColors(),c=t.workspace?.current_dir||t.cwd||`/`,l=Object.entries(e.segments).filter(([e,t])=>t?.enabled).map(([e,t])=>({type:e,config:t})),u=[];for(let e of l){let l=await this.renderSegment(e,t,n,r,i,a,o,s,c);l&&u.push({type:e.type,text:l.text,bgColor:l.bgColor,fgColor:l.fgColor})}return this.buildLineFromSegments(u,s)}async renderSegment(e,t,n,r,i,a,o,s,c){return e.type===`directory`?this.segmentRenderer.renderDirectory(t,s,e.config):e.type===`model`?this.segmentRenderer.renderModel(t,s):e.type===`git`?await this.renderGitSegment(e.config,t,s,c):e.type===`session`?this.renderSessionSegment(e.config,n,s):e.type===`sessionId`?t.session_id?this.segmentRenderer.renderSessionId(t.session_id,s,e.config):null:e.type===`tmux`?await this.renderTmuxSegment(s):e.type===`context`?this.renderContextSegment(e.config,a,s):e.type===`metrics`?this.renderMetricsSegment(e.config,o,r,s):e.type===`block`?this.renderBlockSegment(e.config,r,s):e.type===`today`?this.renderTodaySegment(e.config,i,s):e.type===`version`?this.renderVersionSegment(e.config,t,s):e.type===`env`?this.segmentRenderer.renderEnv(s,e.config):e.type===`weekly`?this.segmentRenderer.renderWeekly(t,s,e.config):null}async renderGitSegment(e,t,n,r){if(!this.needsSegmentInfo(`git`))return null;let i=await this.gitService.getGitInfo(r,{showSha:e?.showSha,showWorkingTree:e?.showWorkingTree,showOperation:e?.showOperation,showTag:e?.showTag,showTimeSinceCommit:e?.showTimeSinceCommit,showStashCount:e?.showStashCount,showUpstream:e?.showUpstream,showRepoName:e?.showRepoName},t.workspace?.project_dir);return i?this.segmentRenderer.renderGit(i,n,e):null}renderSessionSegment(e,t,n){return t?this.segmentRenderer.renderSession(t,n,e):null}async renderTmuxSegment(e){if(!this.needsSegmentInfo(`tmux`))return null;let t=await this.tmuxService.getSessionId();return this.segmentRenderer.renderTmux(t,e)}renderContextSegment(e,t,n){return this.needsSegmentInfo(`context`)?this.segmentRenderer.renderContext(t,n,e):null}renderMetricsSegment(e,t,n,r){return this.segmentRenderer.renderMetrics(t,r,e)}renderBlockSegment(e,t,n){return t?this.segmentRenderer.renderBlock(t,n,e):null}renderTodaySegment(e,t,n){if(!t)return null;let r=e?.type||`cost`;return this.segmentRenderer.renderToday(t,n,r)}renderVersionSegment(e,t,n){return this.segmentRenderer.renderVersion(t,n,e)}initializeSymbols(){let e=this.config.display.style,t=this.config.display.charset||`unicode`,n=e===`minimal`,r=e===`capsule`,i=t===`text`?lt:ot;return{right:n?``:r?i.right_rounded:i.right,left:r?i.left_rounded:``,branch:i.branch,model:i.model,git_clean:i.git_clean,git_dirty:i.git_dirty,git_conflicts:i.git_conflicts,git_ahead:i.git_ahead,git_behind:i.git_behind,git_worktree:i.git_worktree,git_tag:i.git_tag,git_sha:i.git_sha,git_upstream:i.git_upstream,git_stash:i.git_stash,git_time:i.git_time,session_cost:i.session_cost,block_cost:i.block_cost,today_cost:i.today_cost,context_time:i.context_time,metrics_response:i.metrics_response,metrics_last_response:i.metrics_last_response,metrics_duration:i.metrics_duration,metrics_messages:i.metrics_messages,metrics_lines_added:i.metrics_lines_added,metrics_lines_removed:i.metrics_lines_removed,metrics_burn:i.metrics_burn,version:i.version,bar_filled:i.bar_filled,bar_empty:i.bar_empty,env:i.env,session_id:i.session_id,weekly_cost:i.weekly_cost}}getThemeColors(){let e=this.config.theme,t,n=this.config.display.colorCompatibility||`auto`,r=n===`auto`?T():n;if(e===`custom`){if(t=this.config.colors?.custom,!t)throw Error(`Custom theme selected but no colors provided in configuration`)}else t=D(e,r),t||=(console.warn(`Built-in theme '${e}' not found, falling back to 'dark' theme`),D(`dark`,r));let i=(e,t)=>r===`none`?``:r===`ansi`?ee(e,t):r===`ansi256`?w(e,t):S(e,t),a=D(`dark`,r),o=this.config.display.style===`tui`,s=e===`light`?`#f0f0f0`:`#1e1e1e`,c=e=>{let n=a[e],r=t[e],c={fg:r?.fg||n.fg,bg:r?.bg||n.bg},l=c.fg;return o&&te(l,s)<60&&(l=c.bg),{bg:i(c.bg,!0),fg:i(l,!1)}},l=c(`directory`),u=c(`git`),d=c(`model`),f=c(`session`),p=c(`block`),m=c(`today`),h=c(`tmux`),g=c(`context`),_=c(`contextWarning`),v=c(`contextCritical`),y=c(`metrics`),b=c(`version`),x=c(`env`),C=c(`weekly`);return{reset:r===`none`?``:`\x1B[0m`,modeBg:l.bg,modeFg:l.fg,gitBg:u.bg,gitFg:u.fg,modelBg:d.bg,modelFg:d.fg,sessionBg:f.bg,sessionFg:f.fg,blockBg:p.bg,blockFg:p.fg,todayBg:m.bg,todayFg:m.fg,tmuxBg:h.bg,tmuxFg:h.fg,contextBg:g.bg,contextFg:g.fg,contextWarningBg:_.bg,contextWarningFg:_.fg,contextCriticalBg:v.bg,contextCriticalFg:v.fg,metricsBg:y.bg,metricsFg:y.fg,versionBg:b.bg,versionFg:b.fg,envBg:x.bg,envFg:x.fg,weeklyBg:C.bg,weeklyFg:C.fg,partFg:e===`custom`?this.resolvePartColors(i):{}}}resolvePartColors(e){let t=this.config.colors?.custom;if(!t)return{};let n={};for(let r of Object.keys(t)){let i=t[r];i?.fg&&(n[r]=e(i.fg,!1))}return n}getSegmentBgColor(e,t){switch(e){case`directory`:return t.modeBg;case`git`:return t.gitBg;case`model`:return t.modelBg;case`session`:case`sessionId`:return t.sessionBg;case`block`:return t.blockBg;case`today`:return t.todayBg;case`tmux`:return t.tmuxBg;case`context`:return t.contextBg;case`metrics`:return t.metricsBg;case`version`:return t.versionBg;case`env`:return t.envBg;case`weekly`:return t.weeklyBg;default:return t.modeBg}}formatSegment(e,t,n,r,i){let a=this.config.display.style===`capsule`,o=` `.repeat(this.config.display.padding??1);if(a){let r=this.config.display.colorCompatibility||`auto`,a=C(e,(r===`auto`?T():r)===`ansi`);return`${`${a}${this.symbols.left}${i.reset}`}${`${e}${t}${o}${n}${o}${i.reset}`}${`${a}${this.symbols.right}${i.reset}`}`}let s=`${e}${t}${o}${n}${o}`,c=this.config.display.colorCompatibility||`auto`,l=(c===`auto`?T():c)===`ansi`;if(r){let t=C(e,l);s+=`${i.reset}${r}${t}${this.symbols.right}`}else s+=`${i.reset}${C(e,l)}${this.symbols.right}${i.reset}`;return s}};const An={theme:`dark`,display:{style:`minimal`,charset:`unicode`,colorCompatibility:`auto`,autoWrap:!0,padding:1,lines:[{segments:{directory:{enabled:!0,style:`basename`},git:{enabled:!0,showSha:!1,showWorkingTree:!1,showOperation:!1,showTag:!1,showTimeSinceCommit:!1,showStashCount:!1,showUpstream:!1,showRepoName:!1},model:{enabled:!0},session:{enabled:!0,type:`tokens`,costSource:`calculated`},today:{enabled:!0,type:`cost`},block:{enabled:!1,type:`cost`,burnType:`cost`,displayStyle:`text`},weekly:{enabled:!1,displayStyle:`text`},version:{enabled:!1},tmux:{enabled:!1},sessionId:{enabled:!1,showIdLabel:!0},context:{enabled:!0,showPercentageOnly:!1,displayStyle:`text`,autocompactBuffer:33e3},metrics:{enabled:!1,showResponseTime:!0,showLastResponseTime:!0,showDuration:!0,showMessageCount:!0,showLinesAdded:!0,showLinesRemoved:!0}}}]},budget:{session:{warningThreshold:80},today:{warningThreshold:80,amount:50},block:{warningThreshold:80,amount:15}},modelContextLimits:{default:2e5,sonnet:2e5,opus:2e5}},jn=new Set([`context`,`block`,`session`,`today`,`weekly`,`git`,`dir`,`model`,`version`,`tmux`,`metrics`,`activity`,`env`]),Mn={session:[`icon`,`label`,`cost`,`tokens`,`budget`],block:[`icon`,`label`,`value`,`time`,`budget`,`bar`],today:[`icon`,`cost`,`label`,`budget`],weekly:[`icon`,`label`,`pct`,`time`,`bar`],git:[`icon`,`headVal`,`branch`,`status`,`ahead`,`behind`,`working`,`head`],context:[`icon`,`label`,`bar`,`pct`,`tokens`],metrics:[`response`,`responseIcon`,`responseVal`,`lastResponse`,`lastResponseIcon`,`lastResponseVal`,`added`,`addedIcon`,`addedVal`,`removed`,`removedIcon`,`removedVal`],activity:[`icon`,`duration`,`durationIcon`,`durationVal`,`messages`,`messagesIcon`,`messagesVal`],model:[`icon`,`value`],version:[`icon`,`value`],tmux:[`label`,`value`],dir:[`icon`,`value`],env:[`prefix`,`value`]};function Nn(e){if(e===`.`||e===`---`||jn.has(e))return!0;let t=e.indexOf(`.`);if(t===-1)return!1;let n=e.slice(0,t),r=e.slice(t+1);if(!n||!r)return!1;let i=Mn[n];return i?i.includes(r):!1}function Pn(e){return[`light`,`dark`,`nord`,`tokyo-night`,`rose-pine`,`gruvbox`,`custom`].includes(e)}function Fn(e){return e===`minimal`||e===`powerline`||e===`capsule`||e===`tui`}function In(e){return e===`unicode`||e===`text`}function Q(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(r===t&&n+1<e.length)return e[n+1];if(r?.startsWith(`${t}=`))return r.split(`=`)[1]}}function $(e,t){let n={...e};for(let e in t){let r=t[e];r!==void 0&&(typeof r==`object`&&r&&!Array.isArray(r)?n[e]=$(n[e]||{},r):n[e]=r)}return n}function Ln(e,t){return e?o.existsSync(e)?e:null:[...t?[l.join(t,`.claude-powerline.json`)]:[],l.join(process.cwd(),`.claude-powerline.json`),l.join(m.homedir(),`.claude`,`claude-powerline.json`),l.join(m.homedir(),`.config`,`claude-powerline`,`config.json`)].find(o.existsSync)||null}function Rn(e){try{let t=o.readFileSync(e,`utf-8`);return JSON.parse(t)}catch(t){throw Error(`Failed to load config file ${e}: ${t instanceof Error?t.message:String(t)}`)}}function zn(){let e={},t={},n=process.env.CLAUDE_POWERLINE_THEME;n&&Pn(n)&&(e.theme=n);let r=process.env.CLAUDE_POWERLINE_STYLE;return r&&(Fn(r)?t.style=r:(console.warn(`Invalid display style '${r}' from environment variable, falling back to 'minimal'`),t.style=`minimal`)),Object.keys(t).length>0&&(e.display=t),e}function Bn(){return process.env.CLAUDE_POWERLINE_CONFIG}function Vn(e){let t={},n={},r=Q(e,`--theme`);r&&Pn(r)&&(t.theme=r);let i=Q(e,`--style`);i&&(Fn(i)?n.style=i:(console.warn(`Invalid display style '${i}' from CLI argument, falling back to 'minimal'`),n.style=`minimal`));let a=Q(e,`--charset`);return a&&(In(a)?n.charset=a:(console.warn(`Invalid charset '${a}' from CLI argument, falling back to 'unicode'`),n.charset=`unicode`)),Object.keys(n).length>0&&(t.display=n),t}function Hn(e){if(typeof e.box==`string`&&!I[e.box]){let t=Object.keys(I).join(`, `);return`unknown box preset "${e.box}" (valid: ${t})`}if(!e.breakpoints||!Array.isArray(e.breakpoints)||e.breakpoints.length===0)return`grid config must have at least one breakpoint`;let t=new Set;for(let n=0;n<e.breakpoints.length;n++){let r=e.breakpoints[n],i=`breakpoint[${n}]`;if(typeof r.minWidth!=`number`||r.minWidth<0)return`${i}: minWidth must be a non-negative number`;if(t.has(r.minWidth))return`${i}: duplicate minWidth ${r.minWidth} (each breakpoint must have a unique minWidth)`;if(t.add(r.minWidth),!r.areas||!Array.isArray(r.areas)||r.areas.length===0)return`${i}: areas must be a non-empty array of strings`;if(!r.columns||!Array.isArray(r.columns)||r.columns.length===0)return`${i}: columns must be a non-empty array`;let a=r.columns.length;for(let e of r.columns){if(typeof e!=`string`)return`${i}: column definition must be a string`;if(!/^(\d+fr|\d+|auto)$/.test(e))return`${i}: invalid column definition "${e}" (use "auto", "Nfr", or a fixed integer)`}if(r.align!==void 0){if(!Array.isArray(r.align))return`${i}: align must be an array`;if(r.align.length!==a)return`${i}: align length (${r.align.length}) must match columns length (${a})`;for(let e of r.align)if(e!==`left`&&e!==`center`&&e!==`right`)return`${i}: invalid align value "${e}"`}let o=new Set;for(let t=0;t<r.areas.length;t++){let n=r.areas[t];if(n.trim()===`---`)continue;let s=n.trim().split(/\s+/);if(s.length!==a)return`${i}: row "${n}" has ${s.length} cells but expected ${a} columns`;let c=e.segments?new Set(Object.keys(e.segments)):new Set,l=``,u=``;for(let e of s){if(e!==`.`){if(!Nn(e)&&!c.has(e))return`${i}: unknown segment name "${e}"`;if(e!==u&&o.has(e))return`${i}: segment "${e}" appears on multiple rows`}e!==l&&(u=e),l=e}let d=new Map;for(let e=0;e<s.length;e++){let t=s[e];if(t===`.`||t===`---`)continue;let r=d.get(t);if(r!==void 0&&r!==e-1)return`${i}: segment "${t}" has non-contiguous span in row "${n}"`;d.set(t,e)}for(let e of s)e!==`.`&&e!==`---`&&o.add(e)}}if(e.segments)for(let[t,n]of Object.entries(e.segments)){if(!n.items||!Array.isArray(n.items))return`segments["${t}"]: items must be an array`;if(n.justify!==void 0&&n.justify!==`start`&&n.justify!==`between`)return`segments["${t}"]: invalid justify value "${n.justify}" (use "start" or "between")`}return null}function Un(e=process.argv,t){let n=JSON.parse(JSON.stringify(An)),r=Q(e,`--config`)||Bn(),i=Ln(r?.startsWith(`~`)?r.replace(`~`,m.homedir()):r,t);if(i)try{let e=Rn(i);n=$(n,e)}catch(e){console.warn(`Warning: ${e instanceof Error?e.message:String(e)}`)}n.display?.style&&!Fn(n.display.style)&&(console.warn(`Invalid display style '${n.display.style}' in config file, falling back to 'minimal'`),n.display.style=`minimal`),n.display?.charset&&!In(n.display.charset)&&(console.warn(`Invalid charset '${n.display.charset}' in config file, falling back to 'unicode'`),n.display.charset=`unicode`),n.theme&&!Pn(n.theme)&&(console.warn(`Invalid theme '${n.theme}' in config file, falling back to 'dark'`),n.theme=`dark`);let a=zn();n=$(n,a);let o=Vn(e);if(n=$(n,o),n.display?.tui){let e=Hn(n.display.tui);e&&(process.stderr.write(`Warning: invalid grid config: ${e}. Falling back to hardcoded layout.\n`),delete n.display.tui)}return n}const Wn=Un;function Gn(){console.log(`
|
|
12
12
|
claude-powerline - Beautiful powerline statusline for Claude Code
|
|
13
13
|
|
|
14
14
|
Usage: claude-powerline [options]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owloops/claude-powerline",
|
|
3
|
-
"version": "1.25.
|
|
3
|
+
"version": "1.25.1",
|
|
4
4
|
"description": "Beautiful vim-style powerline statusline for Claude Code with real-time usage tracking, git integration, and custom themes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"right": "{metrics.lastResponse}"
|
|
20
20
|
},
|
|
21
21
|
"segments": {
|
|
22
|
-
"git.
|
|
22
|
+
"git.headVal": {
|
|
23
23
|
"items": ["{branch}", "{status}", "{ahead}", "{behind}"],
|
|
24
24
|
"gap": 1
|
|
25
25
|
}
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
{
|
|
29
29
|
"minWidth": 55,
|
|
30
30
|
"areas": [
|
|
31
|
-
"git.icon git.
|
|
31
|
+
"git.icon git.headVal git.headVal git.headVal git.working",
|
|
32
32
|
"---",
|
|
33
33
|
"context.icon context.bar context.bar context.pct context.tokens",
|
|
34
34
|
"block.icon block.bar block.bar block.value block.time",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"right": "{dir}"
|
|
16
16
|
},
|
|
17
17
|
"segments": {
|
|
18
|
-
"git.
|
|
18
|
+
"git.headVal": {
|
|
19
19
|
"items": ["{branch}", "{status}", "{ahead}", "{behind}"],
|
|
20
20
|
"gap": 1
|
|
21
21
|
}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
{
|
|
25
25
|
"minWidth": 0,
|
|
26
26
|
"areas": [
|
|
27
|
-
"git.icon git.
|
|
27
|
+
"git.icon git.headVal git.headVal git.headVal git.working",
|
|
28
28
|
"---",
|
|
29
29
|
"context.icon context.bar context.bar context.pct context.tokens",
|
|
30
30
|
"block.icon block.bar block.bar block.value block.time"
|
package/src/tui/sections.ts
CHANGED
|
@@ -659,7 +659,7 @@ function formatGitParts(data: TuiData, sym: SymbolSet): Record<string, string> {
|
|
|
659
659
|
if (!data.gitInfo)
|
|
660
660
|
return {
|
|
661
661
|
icon: "",
|
|
662
|
-
|
|
662
|
+
headVal: "",
|
|
663
663
|
branch: "",
|
|
664
664
|
status: "",
|
|
665
665
|
ahead: "",
|
|
@@ -701,7 +701,7 @@ function formatGitParts(data: TuiData, sym: SymbolSet): Record<string, string> {
|
|
|
701
701
|
|
|
702
702
|
return {
|
|
703
703
|
icon: sym.branch,
|
|
704
|
-
|
|
704
|
+
headVal: infoParts.join(" "),
|
|
705
705
|
branch: data.gitInfo.branch,
|
|
706
706
|
status: statusIcon,
|
|
707
707
|
ahead,
|